1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
| // -*- C++ -*-
#include "Rivet/Analysis.hh"
#include "Rivet/Projections/FinalState.hh"
#include "Rivet/Projections/ZFinder.hh"
namespace Rivet {
/// @brief D0 Run II Z \f$ p_\perp \f$ differential cross-section shape
///
/// @author Andy Buckley
/// @author Gavin Hesketh
/// @author Frank Siegert
class D0_2008_S7554427 : public Analysis {
public:
RIVET_DEFAULT_ANALYSIS_CTOR(D0_2008_S7554427);
/// @name Analysis methods
/// @{
/// Book histograms
void init() {
FinalState fs;
ZFinder zfinder(fs, Cuts::open(), PID::ELECTRON,
40*GeV, 200*GeV, 0.2, ZFinder::ClusterPhotons::NODECAY, ZFinder::AddPhotons::YES);
declare(zfinder, "ZFinder");
book(_h_ZpT ,1, 1, 1);
book(_h_forward_ZpT ,3, 1, 1);
}
/// Do the analysis
void analyze(const Event& e) {
const ZFinder& zfinder = apply<ZFinder>(e, "ZFinder");
if (zfinder.bosons().size() != 1) {
MSG_DEBUG("No unique lepton pair found.");
vetoEvent;
}
const double yZ = fabs(zfinder.bosons()[0].rapidity());
const double pTZ = zfinder.bosons()[0].pT();
_h_ZpT->fill(pTZ);
if (yZ > 2) _h_forward_ZpT->fill(pTZ);
}
// Finalize
void finalize() {
normalize(_h_ZpT);
normalize(_h_forward_ZpT);
}
/// @}
private:
/// @name Histograms
/// @{
Histo1DPtr _h_ZpT, _h_forward_ZpT;
/// @}
};
RIVET_DECLARE_ALIASED_PLUGIN(D0_2008_S7554427, D0_2008_I769689);
}
|