rivet is hosted by Hepforge, IPPP Durham

Rivet analyses reference

CMS_2019_I1753720

Measurement of the ttbb production cross section in the all-jet final state in proton-proton collisions at centre-of-mass energy of 13 TeV with 35.9 fb^-1 of data collected in 2016.
Experiment: CMS (LHC)
Inspire ID: 1753720
Status: VALIDATED
Authors:
  • cms-pag-conveners-top@cern.ch
  • Sebastien Wertz
References: Beams: p+ p+
Beam energies: (6500.0, 6500.0) GeV
Run details:
  • ttbar events at sqrt(s) = 13 TeV

Measurement in the fiducial phase space for $t\bar{t}b\bar{b}$ production in the all-jet final state of the top quark pair decays. No explicit lepton veto or decay channel requirements are applied, so one should use inclusive top quark decays. Fiducial phase space is defined as $\geq 8$ jets, of which $\geq 4$ are b jets, with jet $p_\perp > 20 \text{GeV}$ and $|\eta| < 2.4$. Of those jets, at least six are required to have $p_\perp > 30 \text{GeV}$. B jets are defined using ghost-matching of B hadrons with no requirement on hadron $p_\perp$. No requirement is applied on the origin of of the b jets, i.e. the phase space definition is independent from simulated parton content.

Source code: CMS_2019_I1753720.cc
 1// -*- C++ -*-
 2#include "Rivet/Analysis.hh"
 3#include "Rivet/Projections/FinalState.hh"
 4#include "Rivet/Projections/FastJets.hh"
 5
 6namespace Rivet {
 7
 8
 9  /// @brief ttbb cross section all-jet 2016 data
10  class CMS_2019_I1753720 : public Analysis {
11    public:
12
13    /// Constructor
14    RIVET_DEFAULT_ANALYSIS_CTOR(CMS_2019_I1753720);
15
16
17    /// @name Analysis methods
18    /// @{
19
20    /// Book histograms and initialise projections before the run
21    void init() {
22      // Jets
23      // Only use visible particles with |eta|<6 (miniAOD content)
24      declare(FastJets(VisibleFinalState(Cuts::abseta < 6.), JetAlg::ANTIKT, 0.4), "Jets");
25
26      // Book xsec histo
27      book(_hist_xsec_fid, "d01-x01-y01");
28    }
29
30
31    /// Perform the per-event analysis
32    void analyze(const Event& event) {
33       const Jets jets = apply<JetFinder>(event, "Jets").jetsByPt(Cuts::abseta < 2.4 && Cuts::pT > 20*GeV);
34       const Jets jets_30 = select(jets, [](const Jet& j) { return j.pT() > 30*GeV; } );
35       const Jets bjets = select(jets, [](const Jet& j) { return j.bTagged(); } );
36
37       if (jets.size() >= 8 && jets_30.size() >= 6 && bjets.size() >= 4) {
38           _hist_xsec_fid->fill(1.);
39       }
40    }
41
42
43    /// Normalise histograms etc., after the run
44    void finalize() {
45
46      scale(_hist_xsec_fid, crossSection()/picobarn/sumOfWeights());
47
48    }
49
50    /// @}
51    
52  private:
53
54    /// Histogram for fiducial cross section
55    Histo1DPtr _hist_xsec_fid;
56
57  };
58
59
60  RIVET_DECLARE_PLUGIN(CMS_2019_I1753720);
61
62}