Rivet analyses referenceATLAS_2014_I1325553Measurement of the inclusive jet cross-section at 7 TeVExperiment: ATLAS (LHC) Inspire ID: 1325553 Status: VALIDATED Authors:
Beam energies: (3500.0, 3500.0) GeV Run details:
Measurement of the inclusive jet cross-section in proton--proton collisions at a centre-of-mass energy of 7 TeV using a data set corresponding to an integrated luminosity of 4.5/fb collected with the ATLAS detector at the Large Hadron Collider in 2011. Jets are identified using the anti-$k_t$ algorithm with radius parameter values of 0.4 and 0.6. The double-differential cross-sections are presented as a function of the jet transverse momentum and the jet rapidity, covering jet transverse momenta from 100 GeV to 2 TeV. Source code: ATLAS_2014_I1325553.cc 1// -*- C++ -*-
2#include "Rivet/Analysis.hh"
3#include "Rivet/Projections/FinalState.hh"
4#include "Rivet/Projections/FastJets.hh"
5#include "Rivet/Tools/BinnedHistogram.hh"
6
7namespace Rivet {
8
9
10 /// Jet mass as a function of ystar
11 class ATLAS_2014_I1325553 : public Analysis {
12 public:
13
14 /// Constructor
15 ATLAS_2014_I1325553()
16 : Analysis("ATLAS_2014_I1325553")
17 { }
18
19
20 /// @name Analysis methods
21 //@{
22
23 /// Book histograms and initialise projections before the run
24 void init() {
25
26 const FinalState fs;
27 declare(fs,"FinalState");
28
29 FastJets fj04(fs, FastJets::ANTIKT, 0.4);
30 fj04.useInvisibles();
31 declare(fj04, "AntiKT04");
32
33 FastJets fj06(fs, FastJets::ANTIKT, 0.6);
34 fj06.useInvisibles();
35 declare(fj06, "AntiKT06");
36
37 double ybins[] = {0.0, 0.5, 1.0, 1.5, 2.0, 2.5, 3.0};
38
39 size_t ptDsOffset(0);
40 for (size_t alg = 0; alg < 2; ++alg) {
41 for (size_t i = 0; i < 6; ++i) {
42 Histo1DPtr tmp;
43 _pt[alg].add(ybins[i], ybins[i + 1], book(tmp, 1 + ptDsOffset, 1, 1));
44 ptDsOffset += 1;
45 }
46 }
47 }
48
49
50 /// Perform the per-event analysis
51 void analyze(const Event& event) {
52 Jets jetAr[2];
53 jetAr[AKT4] = apply<FastJets>(event, "AntiKT04").jetsByPt(Cuts::pT > 100*GeV && Cuts::absrap < 3.0);
54 jetAr[AKT6] = apply<FastJets>(event, "AntiKT06").jetsByPt(Cuts::pT > 100*GeV && Cuts::absrap < 3.0);
55
56 // Loop over jet "radii" used in analysis
57 for (size_t alg = 0; alg < 2; ++alg) {
58
59 // fill the 1D pt histograms with all the jets passing the cuts
60 for (const Jet& jet : jetAr[alg]) {
61 const double absrap = jet.absrap();
62 if (absrap < 3.0) {
63 const double pt = jet.pT();
64 if (pt/GeV > 100*GeV) {
65 _pt[alg].fill(absrap, pt/GeV);
66 }
67 }
68 }
69 }
70 }
71
72
73 /// Normalise histograms etc., after the run
74 void finalize() {
75
76 /// Print summary info
77 const double xs_pb( crossSection() / picobarn );
78 const double sumW( sumOfWeights() );
79 const double xs_norm_factor( 0.5*xs_pb / sumW );
80
81 for (size_t alg = 0; alg < 2; ++alg) {
82 _pt[alg].scale(xs_norm_factor, this);
83 }
84 }
85
86 //@}
87
88
89 private:
90
91 // Data members like post-cuts event weight counters go here
92 enum Alg { AKT4=0, AKT6=1 };
93
94 /// The inclusive jet spectrum binned in rapidity for akt6 and akt4 jets (array index is jet type from enum above)
95 BinnedHistogram _pt[2];
96
97 };
98
99
100 RIVET_DECLARE_PLUGIN(ATLAS_2014_I1325553);
101
102}
|