Rivet analyses referenceD0_2008_S7863608Measurement of differential $Z/\gamma^*$ + jet + $X$ cross sectionsExperiment: D0 (Tevatron Run 2) Inspire ID: 792812 Status: VALIDATED Authors:
Beam energies: (980.0, 980.0) GeV Run details:
Cross sections as a function of pT and rapidity of the boson and pT and rapidity of the leading jet in the di-muon channel in $p \bar{p}$ collisions at $\sqrt{s}$ = 1.96 TeV, based on an integrated luminosity of 1.0 fb$^{-1}$. Source code: D0_2008_S7863608.cc 1// -*- C++ -*-
2#include "Rivet/Analysis.hh"
3#include "Rivet/Projections/ZFinder.hh"
4#include "Rivet/Projections/FastJets.hh"
5
6namespace Rivet {
7
8
9 /// @brief D0 differential Z/\f$ \gamma^* \f$ + jet + \f$ X \f$ cross sections
10 ///
11 /// @author Gavin Hesketh, Andy Buckley, Frank Siegert
12 class D0_2008_S7863608 : public Analysis {
13 public:
14
15 RIVET_DEFAULT_ANALYSIS_CTOR(D0_2008_S7863608);
16
17
18 /// @name Analysis methods
19 /// @{
20
21 /// Book histograms
22 void init() {
23 /// @todo These clustering arguments look odd: are they ok?
24 Cut cut = Cuts::abseta < 1.7 && Cuts::pT > 15*GeV;
25 ZFinder zfinder(FinalState(), cut, PID::MUON, 65*GeV, 115*GeV, 0.2, ZFinder::ClusterPhotons::NONE, ZFinder::AddPhotons::YES);
26 declare(zfinder, "ZFinder");
27
28 FastJets conefinder(zfinder.remainingFinalState(), FastJets::D0ILCONE, 0.5);
29 declare(conefinder, "ConeFinder");
30
31 book(_sum_of_weights_inclusive, "sum_of_weights_inclusive");
32
33 book(_h_jet_pT_cross_section ,1, 1, 1);
34 book(_h_jet_pT_normalised ,1, 1, 2);
35 book(_h_jet_y_cross_section ,2, 1, 1);
36 book(_h_jet_y_normalised ,2, 1, 2);
37 book(_h_Z_pT_cross_section ,3, 1, 1);
38 book(_h_Z_pT_normalised ,3, 1, 2);
39 book(_h_Z_y_cross_section ,4, 1, 1);
40 book(_h_Z_y_normalised ,4, 1, 2);
41 book(_h_total_cross_section ,5, 1, 1);
42 }
43
44
45 // Do the analysis
46 void analyze(const Event& e) {
47 const ZFinder& zfinder = apply<ZFinder>(e, "ZFinder");
48 if (zfinder.bosons().size()==1) {
49 _sum_of_weights_inclusive->fill();
50 const JetAlg& jetpro = apply<JetAlg>(e, "ConeFinder");
51 const Jets& jets = jetpro.jetsByPt(20*GeV);
52 Jets jets_cut;
53 for (const Jet& j : jets) {
54 if (j.abseta() < 2.8) {
55 jets_cut.push_back(j);
56 }
57 }
58
59 // Return if there are no jets:
60 if(jets_cut.size()<1) {
61 MSG_DEBUG("Skipping event " << numEvents() << " because no jets pass cuts ");
62 vetoEvent;
63 }
64
65 const FourMomentum Zmom = zfinder.bosons()[0].momentum();
66
67 // In jet pT
68 _h_jet_pT_cross_section->fill( jets_cut[0].pT());
69 _h_jet_pT_normalised->fill( jets_cut[0].pT());
70 _h_jet_y_cross_section->fill( fabs(jets_cut[0].rapidity()));
71 _h_jet_y_normalised->fill( fabs(jets_cut[0].rapidity()));
72
73 // In Z pT
74 _h_Z_pT_cross_section->fill(Zmom.pT());
75 _h_Z_pT_normalised->fill(Zmom.pT());
76 _h_Z_y_cross_section->fill(Zmom.absrap());
77 _h_Z_y_normalised->fill(Zmom.absrap());
78
79 _h_total_cross_section->fill(1960);
80 }
81 }
82
83
84 /// Finalize
85 void finalize() {
86 const double invlumi = crossSection()/sumOfWeights();
87 scale(_h_total_cross_section, invlumi);
88 scale(_h_jet_pT_cross_section, invlumi);
89 scale(_h_jet_y_cross_section, invlumi);
90 scale(_h_Z_pT_cross_section, invlumi);
91 scale(_h_Z_y_cross_section, invlumi);
92
93 double factor=1/dbl(*_sum_of_weights_inclusive);
94 if (_sum_of_weights_inclusive->val() == 0) factor = 0;
95 scale(_h_jet_pT_normalised, factor);
96 scale(_h_jet_y_normalised, factor);
97 scale(_h_Z_pT_normalised, factor);
98 scale(_h_Z_y_normalised, factor);
99 }
100
101 /// @}
102
103
104 private:
105
106 /// @name Histograms
107 /// @{
108 Histo1DPtr _h_jet_pT_cross_section;
109 Histo1DPtr _h_jet_y_cross_section;
110 Histo1DPtr _h_Z_pT_cross_section;
111 Histo1DPtr _h_Z_y_cross_section;
112 Histo1DPtr _h_total_cross_section;
113 Histo1DPtr _h_jet_pT_normalised;
114 Histo1DPtr _h_jet_y_normalised;
115 Histo1DPtr _h_Z_pT_normalised;
116 Histo1DPtr _h_Z_y_normalised;
117 /// @}
118
119 CounterPtr _sum_of_weights_inclusive;
120
121 };
122
123
124
125 RIVET_DECLARE_ALIASED_PLUGIN(D0_2008_S7863608, D0_2008_I792812);
126
127}
|