Rivet analyses referenceCMS_2019_I1753720Measurement 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:
Beam energies: (6500.0, 6500.0) GeV Run details:
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("$\\sigma$ [PB]"s);
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 BinnedHistoPtr<string> _hist_xsec_fid;
56
57 };
58
59
60 RIVET_DECLARE_PLUGIN(CMS_2019_I1753720);
61
62}
|