Rivet analyses referenceCMS_2014_I1298810Ratios of jet pT spectra, which relate to the ratios of inclusive, differential jet cross sectionsExperiment: CMS (LHC) Inspire ID: 1298810 Status: VALIDATED Authors:
Beam energies: (3500.0, 3500.0) GeV Run details:
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}
|