rivet is hosted by Hepforge, IPPP Durham

Rivet analyses reference

CMS_2014_I1298810

Ratios of jet pT spectra, which relate to the ratios of inclusive, differential jet cross sections
Experiment: CMS (LHC)
Inspire ID: 1298810
Status: VALIDATED
Authors:
  • Markus Radziej
References:
  • arXiv: 1406.0324
  • CMS-SMP-13-002
  • CERN-PH-EP-2014-068
  • Accepted by Phys. Rev. D
Beams: p+ p+
Beam energies: (3500.0, 3500.0) GeV
Run details:
  • Hard QCD events with $\hat{p}_{\text{T}} > 40\,\text{GeV}$ at $\sqrt{s} = 7\,\text{TeV}$. Either a $\hat{p}_{\text{T}}$-binned approach or a 'flat' spectrum is recommended, to generate sufficient events in the high $p_{\text{T}}$ region.

Ratios of jet transverse momentum spectra. The jets objects are defined using the anti-$k_{\text{T}}$ algorithm with radii of R = 0.5 and R = 0.7. The ratios are given for six 0.5 wide rapidity regions ranging from 0.0 to 3.0 and relate the ratio of inclusive, differential jet cross sections.

Source code: CMS_2014_I1298810.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  /// Ratios of jet pT spectra, related to ratios of differential jet cross sections
 10  class CMS_2014_I1298810 : public Analysis {
 11  public:
 12
 13    /// Constructor
 14    CMS_2014_I1298810()
 15      : Analysis("CMS_2014_I1298810")
 16    {    }
 17
 18
 19    /// @name Analysis methods
 20    //@{
 21
 22    void init() {
 23      // Projections
 24      FastJets jetsak5(FinalState(), FastJets::ANTIKT, 0.5);
 25      declare(jetsak5, "JetsAK5");
 26      FastJets jetsak7(FinalState(), FastJets::ANTIKT, 0.7);
 27      declare(jetsak7, "JetsAK7");
 28
 29      // Histograms
 30      book(_h_pt_05_ak5    ,1, 1, 1);
 31      book(_h_pt_05_10_ak5 ,2, 1, 1);
 32      book(_h_pt_10_15_ak5 ,3, 1, 1);
 33      book(_h_pt_15_20_ak5 ,4, 1, 1);
 34      book(_h_pt_20_25_ak5 ,5, 1, 1);
 35      book(_h_pt_25_30_ak5 ,6, 1, 1);
 36
 37      book(_h_pt_05_ak7    ,7, 1, 1);
 38      book(_h_pt_05_10_ak7 ,8, 1, 1);
 39      book(_h_pt_10_15_ak7 ,9, 1, 1);
 40      book(_h_pt_15_20_ak7 ,10, 1, 1);
 41      book(_h_pt_20_25_ak7 ,11, 1, 1);
 42      book(_h_pt_25_30_ak7 ,12, 1, 1);
 43
 44      book(_h_pt_05_ratio   , 13, 1, 1);
 45      book(_h_pt_05_10_ratio, 14, 1, 1);
 46      book(_h_pt_10_15_ratio, 15, 1, 1);
 47      book(_h_pt_15_20_ratio, 16, 1, 1);
 48      book(_h_pt_20_25_ratio, 17, 1, 1);
 49      book(_h_pt_25_30_ratio, 18, 1, 1);
 50    }
 51
 52
 53    /// Perform the per-event analysis
 54    void analyze(const Event& event) {
 55
 56      const Jets& jetsak5 = apply<FastJets>(event, "JetsAK5").jetsByPt(56*GeV);
 57      const Jets& jetsak7 = apply<FastJets>(event, "JetsAK7").jetsByPt(56*GeV);
 58      if (jetsak5.size() < 1 && jetsak7.size() < 1) vetoEvent;
 59
 60      const double weight = 1.0;
 61
 62      // Filling R = 0.5 jets
 63      for(const Jet& jet : jetsak5) {
 64        if (jet.absrapidity() < 0.5) {
 65          _h_pt_05_ak5->fill(jet.pT()/GeV, weight);
 66        } else if (jet.absrapidity() < 1.0) {
 67          _h_pt_05_10_ak5->fill(jet.pT()/GeV, weight);
 68        } else if (jet.absrapidity() < 1.5) {
 69          _h_pt_10_15_ak5->fill(jet.pT()/GeV, weight);
 70        } else if (jet.absrapidity() < 2.0) {
 71          _h_pt_15_20_ak5->fill(jet.pT()/GeV, weight);
 72        } else if (jet.absrapidity() < 2.5) {
 73          _h_pt_20_25_ak5->fill(jet.pT()/GeV, weight);
 74        } else if (jet.absrapidity() < 3.0) {
 75          _h_pt_25_30_ak5->fill(jet.pT()/GeV, weight);
 76        }
 77      }
 78
 79
 80      // Filling R = 0.7 jets
 81      for(const Jet& jet : jetsak7) {
 82        if (jet.absrapidity() < 0.5) {
 83          _h_pt_05_ak7->fill(jet.pT() * GeV, weight);
 84        } else if (jet.absrapidity() < 1.0) {
 85          _h_pt_05_10_ak7->fill(jet.pT() * GeV, weight);
 86        } else if (jet.absrapidity() < 1.5) {
 87          _h_pt_10_15_ak7->fill(jet.pT() * GeV, weight);
 88        } else if (jet.absrapidity() < 2.0) {
 89          _h_pt_15_20_ak7->fill(jet.pT() * GeV, weight);
 90        } else if (jet.absrapidity() < 2.5) {
 91          _h_pt_20_25_ak7->fill(jet.pT() * GeV, weight);
 92        } else if (jet.absrapidity() < 3.0) {
 93          _h_pt_25_30_ak7->fill(jet.pT() * GeV, weight);
 94        }
 95      }
 96
 97    }
 98
 99
100    /// Normalise histograms etc., after the run
101    void finalize() {
102      scale(_h_pt_05_ak5,    crossSection()/sumOfWeights());
103      scale(_h_pt_05_10_ak5, crossSection()/sumOfWeights());
104      scale(_h_pt_10_15_ak5, crossSection()/sumOfWeights());
105      scale(_h_pt_15_20_ak5, crossSection()/sumOfWeights());
106      scale(_h_pt_20_25_ak5, crossSection()/sumOfWeights());
107      scale(_h_pt_25_30_ak5, crossSection()/sumOfWeights());
108
109      scale(_h_pt_05_ak7,    crossSection()/sumOfWeights());
110      scale(_h_pt_05_10_ak7, crossSection()/sumOfWeights());
111      scale(_h_pt_10_15_ak7, crossSection()/sumOfWeights());
112      scale(_h_pt_15_20_ak7, crossSection()/sumOfWeights());
113      scale(_h_pt_20_25_ak7, crossSection()/sumOfWeights());
114      scale(_h_pt_25_30_ak7, crossSection()/sumOfWeights());
115
116      divide(_h_pt_05_ak5,    _h_pt_05_ak7,    _h_pt_05_ratio);
117      divide(_h_pt_05_10_ak5, _h_pt_05_10_ak7, _h_pt_05_10_ratio);
118      divide(_h_pt_10_15_ak5, _h_pt_10_15_ak7, _h_pt_10_15_ratio);
119      divide(_h_pt_15_20_ak5, _h_pt_15_20_ak7, _h_pt_15_20_ratio);
120      divide(_h_pt_20_25_ak5, _h_pt_20_25_ak7, _h_pt_20_25_ratio);
121      divide(_h_pt_25_30_ak5, _h_pt_25_30_ak7, _h_pt_25_30_ratio);
122    }
123
124    //@}
125
126
127  private:
128
129    /// @name Histograms
130    //@{
131    Histo1DPtr _h_pt_05_ak5, _h_pt_05_10_ak5, _h_pt_10_15_ak5, _h_pt_15_20_ak5, _h_pt_20_25_ak5, _h_pt_25_30_ak5;
132    Histo1DPtr _h_pt_05_ak7, _h_pt_05_10_ak7, _h_pt_10_15_ak7, _h_pt_15_20_ak7, _h_pt_20_25_ak7, _h_pt_25_30_ak7;
133    Scatter2DPtr _h_pt_05_ratio, _h_pt_05_10_ratio, _h_pt_10_15_ratio, _h_pt_15_20_ratio, _h_pt_20_25_ratio, _h_pt_25_30_ratio;
134    //@}
135
136  };
137
138
139  // The hook for the plugin system
140  RIVET_DECLARE_PLUGIN(CMS_2014_I1298810);
141
142}