|
Rivet analyses reference
PLUTO_1983_I191161
Measurement of average transverse momentum w.r.t thurst and Sphericity Axes for $E_{\text{CMS}}=7.7\to31.6$ GeV
Experiment: PLUTO (DORIS/Petra)
Inspire ID: 191161
Status: VALIDATED
Authors:
No references listed
Beams: e- e+
Beam energies: (3.9, 3.9); (4.7, 4.7); (6.0, 6.0); (6.5, 6.5); (8.5, 8.5); (11.0, 11.0); (13.8, 13.8); (15.4, 15.4) GeV
Run details:
Measurements of the average transverse momentum w.r.t thurst and Sphericity Axes for $E_{\text{CMS}}=7.7\to31.6$ GeV
Source code:
PLUTO_1983_I191161.cc
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
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127 | // -*- C++ -*-
#include "Rivet/Analysis.hh"
#include "Rivet/Projections/Beam.hh"
#include "Rivet/Projections/Thrust.hh"
#include "Rivet/Projections/Sphericity.hh"
#include "Rivet/Projections/FinalState.hh"
namespace Rivet {
/// @brief average pT w.r.t. thrust and sphericity axes
class PLUTO_1983_I191161 : public Analysis {
public:
/// Constructor
DEFAULT_RIVET_ANALYSIS_CTOR(PLUTO_1983_I191161);
/// @name Analysis methods
//@{
/// Book histograms and initialise projections before the run
void init() {
// Initialise and register projections
const FinalState fs;
declare(fs, "FS");
// Thrust
const Thrust thrust(fs);
declare(thrust, "Thrust");
const Sphericity sphericity(fs);
declare(sphericity, "Sphericity");
_iBin=-1;
if(fuzzyEquals(sqrtS(),7.7,1e-2))
_iBin = 0;
else if(fuzzyEquals(sqrtS(),9.4,1e-2))
_iBin = 1;
else if(fuzzyEquals(sqrtS(),12.,1e-2))
_iBin = 2;
else if(fuzzyEquals(sqrtS(),13.,1e-2))
_iBin = 3;
else if(fuzzyEquals(sqrtS(),17.,1e-2))
_iBin = 4;
else if(fuzzyEquals(sqrtS(),22.,1e-2))
_iBin = 5;
else if(fuzzyEquals(sqrtS(),27.6,1e-2))
_iBin = 6;
else if(fuzzyEquals(sqrtS(),30.8,1e-2))
_iBin = 7;
else
MSG_ERROR("Beam energy " << sqrtS() << " not supported!");
// Book histograms
book(_p_thrust_pt , 1, 1, 1);
book(_p_thrust_pt2 , 1, 1, 2);
book(_p_thrust_sum_pt , 1, 1, 3);
book(_p_thrust_sum_pt2, 1, 1, 4);
book(_p_sphere_pt , 2, 1, 1);
book(_p_sphere_pt2 , 2, 1, 2);
book(_p_sphere_sum_pt , 2, 1, 3);
book(_p_sphere_sum_pt2, 2, 1, 4);
}
/// Perform the per-event analysis
void analyze(const Event& event) {
// Sphericities
MSG_DEBUG("Calculating sphericity");
const Sphericity& sphericity = apply<Sphericity>(event, "Sphericity");
MSG_DEBUG("Calculating thrust");
const Thrust& thrust = apply<Thrust>(event, "Thrust");
const FinalState & fs = apply<FinalState>(event, "FS");
int nPart = fs.particles().size();
double pT_T_sum(0.),pT2_T_sum(0.);
double pT_S_sum(0.),pT2_S_sum(0.);
int nCharged(0);
for(const Particle & p : fs.particles()) {
const Vector3 mom3 = p.p3();
const double pTinT = dot(mom3, thrust.thrustMajorAxis());
const double pToutT = dot(mom3, thrust.thrustMinorAxis());
const double pTinS = dot(mom3, sphericity.sphericityMajorAxis());
const double pToutS = dot(mom3, sphericity.sphericityMinorAxis());
const double pT2_T = sqr(pTinT) + sqr(pToutT);
const double pT2_S = sqr(pTinS) + sqr(pToutS);
if(PID::isCharged(p.pid())) ++nCharged;
pT_T_sum += sqrt(pT2_T);
pT2_T_sum += pT2_T ;
pT_S_sum += sqrt(pT2_S);
pT2_S_sum += pT2_S ;
}
if(nCharged<4) vetoEvent;
_p_thrust_pt ->bins()[_iBin].fill(sqrtS(),pT_T_sum /nPart/MeV );
_p_thrust_pt2 ->bins()[_iBin].fill(sqrtS(),pT2_T_sum/nPart/1e3/sqr(MeV));
_p_thrust_sum_pt ->bins()[_iBin].fill(sqrtS(),pT_T_sum /GeV );
_p_thrust_sum_pt2 ->bins()[_iBin].fill(sqrtS(),pT2_T_sum/GeV );
_p_sphere_pt ->bins()[_iBin].fill(sqrtS(),pT_S_sum /nPart/MeV );
_p_sphere_pt2 ->bins()[_iBin].fill(sqrtS(),pT2_S_sum/nPart/1e3/sqr(MeV));
_p_sphere_sum_pt ->bins()[_iBin].fill(sqrtS(),pT_S_sum /GeV );
_p_sphere_sum_pt2 ->bins()[_iBin].fill(sqrtS(),pT2_S_sum/GeV );
}
/// Normalise histograms etc., after the run
void finalize() {
}
//@}
/// @name Histograms
//@{
Profile1DPtr _p_thrust_pt, _p_thrust_pt2, _p_thrust_sum_pt, _p_thrust_sum_pt2;
Profile1DPtr _p_sphere_pt, _p_sphere_pt2, _p_sphere_sum_pt, _p_sphere_sum_pt2;
unsigned int _iBin;
//@}
};
// The hook for the plugin system
DECLARE_RIVET_PLUGIN(PLUTO_1983_I191161);
}
|
|