Rivet analyses referenceATLAS_2011_I928289_ZZ inclusive cross sections at 7 TeVExperiment: ATLAS (LHC) Inspire ID: 928289 Status: VALIDATED Authors:
Beam energies: (3500.0, 3500.0) GeV Run details:
The production cross sections of the inclusive Drell-Yan process $Z/\gamma^\ast \rightarrow \ell\ell$ ($\ell = e, \mu$) are measured in proton-proton collisions at $\sqrt{s} = 7$ TeV with the ATLAS detector. The cross sections are evaluated differentially as a function of the $Z$ boson rapidity based on an integrated luminosity of about 35 $\text{pb}^{-1}$ collected in 2010. Source code: ATLAS_2011_I928289_Z.cc 1// -*- C++ -*-
2#include "Rivet/Analysis.hh"
3#include "Rivet/Projections/FinalState.hh"
4#include "Rivet/Projections/ZFinder.hh"
5
6namespace Rivet {
7
8
9 class ATLAS_2011_I928289_Z : public Analysis {
10 public:
11
12 /// Constructor
13 ATLAS_2011_I928289_Z()
14 : Analysis("ATLAS_2011_I928289_Z")
15 {
16
17 }
18
19
20 /// @name Analysis methods
21 //@{
22
23 /// Book histograms and initialise projections before the run
24 void init() {
25
26 FinalState fs;
27
28 Cut cut = (Cuts::pT >= 20.0*GeV);
29
30 ZFinder zfinder_ee_bare( fs, cut, PID::ELECTRON, 66.0*GeV, 116.0*GeV, 0.0, ZFinder::ClusterPhotons::NODECAY, ZFinder::AddPhotons::NO);
31 ZFinder zfinder_ee_dressed(fs, cut, PID::ELECTRON, 66.0*GeV, 116.0*GeV, 0.1, ZFinder::ClusterPhotons::NODECAY, ZFinder::AddPhotons::NO);
32 ZFinder zfinder_mm_bare( fs, cut, PID::MUON , 66.0*GeV, 116.0*GeV, 0.0, ZFinder::ClusterPhotons::NODECAY, ZFinder::AddPhotons::NO);
33 ZFinder zfinder_mm_dressed(fs, cut, PID::MUON , 66.0*GeV, 116.0*GeV, 0.1, ZFinder::ClusterPhotons::NODECAY, ZFinder::AddPhotons::NO);
34
35 declare(zfinder_ee_bare , "ZFinder_ee_bare" );
36 declare(zfinder_ee_dressed, "ZFinder_ee_dressed");
37 declare(zfinder_mm_bare , "ZFinder_mm_bare" );
38 declare(zfinder_mm_dressed, "ZFinder_mm_dressed");
39
40 // y(Z) cross-section dependence
41 book(_h_Z_y_ee_bare ,1, 1, 1);
42 book(_h_Z_y_ee_dressed ,1, 1, 2);
43 book(_h_Z_y_mm_bare ,1, 1, 3);
44 book(_h_Z_y_mm_dressed ,1, 1, 4);
45
46 }
47
48
49 /// Perform the per-event analysis
50 void analyze(const Event& event) {
51
52 const ZFinder& zfinder_ee_bare = apply<ZFinder>(event, "ZFinder_ee_bare" );
53 const ZFinder& zfinder_ee_dressed = apply<ZFinder>(event, "ZFinder_ee_dressed");
54 const ZFinder& zfinder_mm_bare = apply<ZFinder>(event, "ZFinder_mm_bare" );
55 const ZFinder& zfinder_mm_dressed = apply<ZFinder>(event, "ZFinder_mm_dressed");
56
57 fillPlots1D(zfinder_ee_bare , _h_Z_y_ee_bare);
58 fillPlots1D(zfinder_ee_dressed, _h_Z_y_ee_dressed);
59 fillPlots1D(zfinder_mm_bare , _h_Z_y_mm_bare);
60 fillPlots1D(zfinder_mm_dressed, _h_Z_y_mm_dressed);
61
62 }
63
64
65 void fillPlots1D(const ZFinder& zfinder, Histo1DPtr hist) {
66 if (zfinder.bosons().size() != 1) return;
67 const FourMomentum zmom = zfinder.bosons()[0].momentum();
68 hist->fill(zmom.absrap());
69 }
70
71
72 /// Normalise histograms etc., after the run
73 void finalize() {
74
75 // Print summary info
76 const double xs_pb(crossSection() / picobarn);
77 const double sumw(sumOfWeights());
78
79 // Normalise, scale and otherwise manipulate histograms here
80 const double sf(0.5 * xs_pb / sumw); // 0.5 accounts for rapidity bin width
81 scale(_h_Z_y_ee_bare , sf);
82 scale(_h_Z_y_ee_dressed, sf);
83 scale(_h_Z_y_mm_bare , sf);
84 scale(_h_Z_y_mm_dressed, sf);
85
86 }
87
88 //@}
89
90
91 private:
92
93 /// @name Histograms
94 //@{
95 Histo1DPtr _h_Z_y_ee_bare;
96 Histo1DPtr _h_Z_y_ee_dressed;
97 Histo1DPtr _h_Z_y_mm_bare;
98 Histo1DPtr _h_Z_y_mm_dressed;
99 //@}
100
101 };
102
103
104 // The hook for the plugin system
105 RIVET_DECLARE_PLUGIN(ATLAS_2011_I928289_Z);
106
107}
|