Rivet analyses referenceATLAS_2019_I1736531Underlying event in inclusive Z boson productionExperiment: ATLAS (LHC) Inspire ID: 1736531 Status: VALIDATED Authors:
Beam energies: (6500.0, 6500.0) GeV Run details:
This paper presents measurements of charged-particle distributions sensitive to the properties of the underlying event in events containing a Z boson decaying into a muon pair.The data were obtained using the ATLAS detector at the LHC in proton-proton collisions at a centre-of-mass energy of 13 TeV with an integrated luminosity of 3.2 fb$^{-1}$. Distributions of the charged-particle multiplicity and of the charged-particle transverse momentum are measured in regions of the azimuth defined relative to the Z boson direction. The measured distributions are compared with the predictions of various Monte Carlo generators which implement different underlying-event models. The Monte Carlo model predictions qualitatively describe the data well, but with some significant discrepancies. Source code: ATLAS_2019_I1736531.cc 1// -*- C++ -*-
2#include "Rivet/Analysis.hh"
3#include "Rivet/Projections/Thrust.hh"
4#include "Rivet/Projections/FinalState.hh"
5#include "Rivet/Projections/ChargedFinalState.hh"
6#include "Rivet/Projections/DileptonFinder.hh"
7
8namespace Rivet {
9
10 /// @brief Underlying event in Z events
11 class ATLAS_2019_I1736531 : public Analysis {
12 public:
13
14 /// Constructor
15 RIVET_DEFAULT_ANALYSIS_CTOR(ATLAS_2019_I1736531);
16
17 void init() {
18
19 // Get options from the new option system
20 PdgId flav = (getOption("LMODE") == "EL") ? PID::ELECTRON : PID::MUON;
21
22 //Projections
23 DileptonFinder zfinder(91.2*GeV, 0.1, Cuts::abseta < 2.4 && Cuts::pT > 25*GeV &&
24 Cuts::abspid == flav, Cuts::massIn(66*GeV, 116*GeV));
25 declare(zfinder, "DileptonFinder");
26 ChargedFinalState cfs(zfinder.remainingFinalState() );
27 declare(cfs, "cfs");
28
29 //Histograms
30
31 book(_p["pTsum_tow_zpt"] , 1, 1, 1);
32 book(_p["pTsum_trv_zpt"] , 2, 1, 1);
33 book(_p["pTsum_tmin_zpt"] , 3, 1, 1);
34 book(_p["pTsum_tmax_zpt"] , 4, 1, 1);
35 book(_p["pTsum_away_zpt"] , 5, 1, 1);
36 book(_p["nch_tow_zpt"] , 6, 1, 1);
37 book(_p["nch_trv_zpt"] , 7, 1, 1);
38 book(_p["nch_tmin_zpt"] , 8, 1, 1);
39 book(_p["nch_tmax_zpt"] , 9, 1, 1);
40 book(_p["nch_away_zpt"] , 10, 1, 1);
41 book(_p["pTmean_tow_zpt"] , 11, 1, 1);
42 book(_p["pTmean_trv_zpt"] , 12, 1, 1);
43 book(_p["pTmean_tmin_zpt"] , 13, 1, 1);
44 book(_p["pTmean_tmax_zpt"] , 14, 1, 1);
45 book(_p["pTmean_away_zpt"] , 15, 1, 1);
46 book(_p["pTsum_tow_zpt_tlow"] , 16, 1, 1);
47 book(_p["pTsum_trv_zpt_tlow"] , 17, 1, 1);
48 book(_p["pTsum_tmin_zpt_tlow"] , 18, 1, 1);
49 book(_p["pTsum_tmax_zpt_tlow"] , 19, 1, 1);
50 book(_p["pTsum_away_zpt_tlow"] , 20, 1, 1);
51 book(_p["nch_tow_zpt_tlow"] , 21, 1, 1);
52 book(_p["nch_trv_zpt_tlow"] , 22, 1, 1);
53 book(_p["nch_tmin_zpt_tlow"] , 23, 1, 1);
54 book(_p["nch_tmax_zpt_tlow"] , 24, 1, 1);
55 book(_p["nch_away_zpt_tlow"] , 25, 1, 1);
56 book(_p["pTmean_tow_zpt_tlow"] , 26, 1, 1);
57 book(_p["pTmean_trv_zpt_tlow"] , 27, 1, 1);
58 book(_p["pTmean_tmin_zpt_tlow"] , 28, 1, 1);
59 book(_p["pTmean_tmax_zpt_tlow"] , 29, 1, 1);
60 book(_p["pTmean_away_zpt_tlow"] , 30, 1, 1);
61 book(_p["pTsum_tow_zpt_thi"] , 31, 1, 1);
62 book(_p["pTsum_trv_zpt_thi"] , 32, 1, 1);
63 book(_p["pTsum_tmin_zpt_thi"] , 33, 1, 1);
64 book(_p["pTsum_tmax_zpt_thi"] , 34, 1, 1);
65 book(_p["pTsum_away_zpt_thi"] , 35, 1, 1);
66 book(_p["nch_tow_zpt_thi"] , 36, 1, 1);
67 book(_p["nch_trv_zpt_thi"] , 37, 1, 1);
68 book(_p["nch_tmin_zpt_thi"] , 38, 1, 1);
69 book(_p["nch_tmax_zpt_thi"] , 39, 1, 1);
70 book(_p["nch_away_zpt_thi"] , 40, 1, 1);
71 book(_p["pTmean_tow_zpt_thi"] , 41, 1, 1);
72 book(_p["pTmean_trv_zpt_thi"] , 42, 1, 1);
73 book(_p["pTmean_tmin_zpt_thi"] , 43, 1, 1);
74 book(_p["pTmean_tmax_zpt_thi"] , 44, 1, 1);
75 book(_p["pTmean_away_zpt_thi"] , 45, 1, 1);
76
77 for (size_t i_bin = 0; i_bin < 8; ++i_bin) {
78
79 book(_h["pT[0]"+to_str(i_bin)] , 46 + i_bin, 1, 1);
80 book(_h["pT[1]"+to_str(i_bin)] , 54 + i_bin, 1, 1);
81 book(_h["pT[2]"+to_str(i_bin)] , 62 + i_bin, 1, 1);
82 book(_h["pT[3]"+to_str(i_bin)] , 70 + i_bin, 1, 1);
83 book(_h["pT[4]"+to_str(i_bin)] , 78 + i_bin, 1, 1);
84 book(_h["nch[0]"+to_str(i_bin)] , 86 + i_bin, 1, 1);
85 book(_h["nch[1]"+to_str(i_bin)] , 94 + i_bin, 1, 1);
86 book(_h["nch[2]"+to_str(i_bin)] , 102 + i_bin, 1, 1);
87 book(_h["nch[3]"+to_str(i_bin)] , 110 + i_bin, 1, 1);
88 book(_h["nch[4]"+to_str(i_bin)] , 118 + i_bin, 1, 1);
89 book(_h["pTsum[0]"+to_str(i_bin)] , 126 + i_bin, 1, 1);
90 book(_h["pTsum[1]"+to_str(i_bin)] , 134 + i_bin, 1, 1);
91 book(_h["pTsum[2]"+to_str(i_bin)] , 142 + i_bin, 1, 1);
92 book(_h["pTsum[3]"+to_str(i_bin)] , 150 + i_bin, 1, 1);
93 book(_h["pTsum[4]"+to_str(i_bin)] , 158 + i_bin, 1, 1);
94 book(_h["pTmean[0]"+to_str(i_bin)] , 166 + i_bin, 1, 1);
95 book(_h["pTmean[1]"+to_str(i_bin)] , 174 + i_bin, 1, 1);
96 book(_h["pTmean[2]"+to_str(i_bin)] , 182 + i_bin, 1, 1);
97 book(_h["pTmean[3]"+to_str(i_bin)] , 190 + i_bin, 1, 1);
98 book(_h["pTmean[4]"+to_str(i_bin)] , 198 + i_bin, 1, 1);
99 book(_h["pT_tlow[0]"+to_str(i_bin)] , 206 + i_bin, 1, 1);
100 book(_h["pT_tlow[1]"+to_str(i_bin)] , 214 + i_bin, 1, 1);
101 book(_h["pT_tlow[2]"+to_str(i_bin)] , 222 + i_bin, 1, 1);
102 book(_h["pT_tlow[3]"+to_str(i_bin)] , 230 + i_bin, 1, 1);
103 book(_h["pT_tlow[4]"+to_str(i_bin)] , 238 + i_bin, 1, 1);
104 book(_h["nch_tlow[0]"+to_str(i_bin)] , 246 + i_bin, 1, 1);
105 book(_h["nch_tlow[1]"+to_str(i_bin)] , 254 + i_bin, 1, 1);
106 book(_h["nch_tlow[2]"+to_str(i_bin)] , 262 + i_bin, 1, 1);
107 book(_h["nch_tlow[3]"+to_str(i_bin)] , 270 + i_bin, 1, 1);
108 book(_h["nch_tlow[4]"+to_str(i_bin)] , 278 + i_bin, 1, 1);
109 book(_h["pTsum_tlow[0]"+to_str(i_bin)] , 286 + i_bin, 1, 1);
110 book(_h["pTsum_tlow[1]"+to_str(i_bin)] , 294 + i_bin, 1, 1);
111 book(_h["pTsum_tlow[2]"+to_str(i_bin)] , 302 + i_bin, 1, 1);
112 book(_h["pTsum_tlow[3]"+to_str(i_bin)] , 310 + i_bin, 1, 1);
113 book(_h["pTsum_tlow[4]"+to_str(i_bin)] , 318 + i_bin, 1, 1);
114 book(_h["pTmean_tlow[0]"+to_str(i_bin)] , 326 + i_bin, 1, 1);
115 book(_h["pTmean_tlow[1]"+to_str(i_bin)] , 334 + i_bin, 1, 1);
116 book(_h["pTmean_tlow[2]"+to_str(i_bin)] , 342 + i_bin, 1, 1);
117 book(_h["pTmean_tlow[3]"+to_str(i_bin)] , 350 + i_bin, 1, 1);
118 book(_h["pTmean_tlow[4]"+to_str(i_bin)] , 358 + i_bin, 1, 1);
119 book(_h["pT_thi[0]"+to_str(i_bin)] , 366 + i_bin, 1, 1);
120 book(_h["pT_thi[1]"+to_str(i_bin)] , 374 + i_bin, 1, 1);
121 book(_h["pT_thi[2]"+to_str(i_bin)] , 382 + i_bin, 1, 1);
122 book(_h["pT_thi[3]"+to_str(i_bin)] , 390 + i_bin, 1, 1);
123 book(_h["pT_thi[4]"+to_str(i_bin)] , 398 + i_bin, 1, 1);
124 book(_h["nch_thi[0]"+to_str(i_bin)] , 406 + i_bin, 1, 1);
125 book(_h["nch_thi[1]"+to_str(i_bin)] , 414 + i_bin, 1, 1);
126 book(_h["nch_thi[2]"+to_str(i_bin)] , 422 + i_bin, 1, 1);
127 book(_h["nch_thi[3]"+to_str(i_bin)] , 430 + i_bin, 1, 1);
128 book(_h["nch_thi[4]"+to_str(i_bin)] , 438 + i_bin, 1, 1);
129 book(_h["pTsum_thi[0]"+to_str(i_bin)] , 446 + i_bin, 1, 1);
130 book(_h["pTsum_thi[1]"+to_str(i_bin)] , 454 + i_bin, 1, 1);
131 book(_h["pTsum_thi[2]"+to_str(i_bin)] , 462 + i_bin, 1, 1);
132 book(_h["pTsum_thi[3]"+to_str(i_bin)] , 470 + i_bin, 1, 1);
133 book(_h["pTsum_thi[4]"+to_str(i_bin)] , 478 + i_bin, 1, 1);
134 book(_h["pTmean_thi[0]"+to_str(i_bin)] , 486 + i_bin, 1, 1);
135 book(_h["pTmean_thi[1]"+to_str(i_bin)] , 494 + i_bin, 1, 1);
136 book(_h["pTmean_thi[2]"+to_str(i_bin)] , 502 + i_bin, 1, 1);
137 book(_h["pTmean_thi[3]"+to_str(i_bin)] , 510 + i_bin, 1, 1);
138 book(_h["pTmean_thi[4]"+to_str(i_bin)] , 518 + i_bin, 1, 1);
139 }
140
141 }
142
143
144 // Perform the per-event analysis
145 void analyze(const Event& event) {
146
147 const double area = 5.*2./3.*M_PI;
148 const DileptonFinder& zfinder = apply<DileptonFinder>(event, "DileptonFinder");
149
150 if (zfinder.bosons().size() != 1) vetoEvent;
151 double Zpt = zfinder.bosons()[0].momentum().pT()/GeV;
152 double Zphi = zfinder.bosons()[0].momentum().phi();
153
154 // Determine Zpt region histo to fill
155
156 int i_bin(0);
157 if (inRange(Zpt,0,10)) i_bin=0;
158 if (inRange(Zpt,10,20)) i_bin=1;
159 if (inRange(Zpt,20,40)) i_bin=2;
160 if (inRange(Zpt,40,60)) i_bin=3;
161 if (inRange(Zpt,60,80)) i_bin=4;
162 if (inRange(Zpt,80,120)) i_bin=5;
163 if (inRange(Zpt,120,200)) i_bin=6;
164 if (Zpt>200) i_bin=7;
165
166
167 // Initialization
168 int nTow(0), nTrans(0), nTransmin(0), nTransmax(0), nAway(0), nLeft(0), nRight(0);
169 double pTsumTow(0.0), pTsumTrans(0.0), pTsumTransmin(0.0), pTsumTransmax(0.0), pTsumAway(0.0), pTsumLeft(0.0), pTsumRight(0.0);
170 // double pTmeanTow(0.0), pTmeanTrans(0.0), pTmeanTransmin(0.0), pTmeanTransmax(0.0), pTmeanAway(0.0);
171 std::vector<double> leftpt;
172 std::vector<double> rightpt;
173
174 const Cut& pcut = ( (Cuts::abspid != PID::SIGMAMINUS) && (Cuts::abspid != PID::SIGMAPLUS) &&
175 (Cuts::abspid != PID::XIMINUS) && (Cuts::abspid != PID::OMEGAMINUS) );
176
177 Particles particles = apply<ChargedFinalState>(event, "cfs").particlesByPt(Cuts::pT > 0.5*GeV && Cuts::abseta <2.5 && pcut);
178
179
180 //Calculate thrust
181 vector<Vector3> momenta;
182 for(const Particle& p : particles) {
183 Vector3 mom = p.momentum().vector3();
184 mom.setZ(0.0);
185 momenta.push_back(mom);
186 }
187
188 if (momenta.size() == 2) {
189 momenta.push_back(Vector3(1e-10*MeV, 0., 0.));
190 }
191
192 Thrust thrustC;
193 thrustC.calc(momenta);
194 double thrust = thrustC.thrust();
195
196 // Loop over charged particles
197
198 for(const Particle& p : particles) {
199 double dphi = p.momentum().phi() - Zphi;
200 double pT = p.momentum().pT();
201 for(; std::fabs(dphi) > M_PI; dphi += (dphi > 0. ? -2.*M_PI : 2.*M_PI) );
202
203 // Towards region
204 if( std::fabs(dphi) < M_PI/3. ) {
205 nTow++;
206 pTsumTow += pT;
207 _h["pT[0]"+to_str(i_bin)]->fill(pT);
208 if(thrust < 0.75) _h["pT_tlow[0]"+to_str(i_bin)]->fill(pT);
209 if(thrust > 0.75) _h["pT_thi[0]"+to_str(i_bin)]->fill(pT);
210 }
211
212
213 // Transverse region
214 else if( std::fabs(dphi) < 2.*M_PI/3. ) {
215 nTrans++;
216 pTsumTrans += pT;
217 _h["pT[1]"+to_str(i_bin)]->fill(pT);
218 if(thrust < 0.75) _h["pT_tlow[1]"+to_str(i_bin)]->fill(pT);
219 if(thrust > 0.75) _h["pT_thi[1]"+to_str(i_bin)]->fill(pT);
220 if(dphi > 0.) {
221 nRight++;
222 pTsumRight += pT;
223 rightpt.push_back(pT);
224 }
225 else {
226 nLeft++;
227 pTsumLeft += pT;
228 leftpt.push_back(pT);
229 }
230
231 }
232
233
234 // Away region
235 else {
236 nAway++;
237 pTsumAway += pT;
238 _h["pT[4]"+to_str(i_bin)]->fill(pT);
239 if(thrust < 0.75) _h["pT_tlow[4]"+to_str(i_bin)]->fill(pT);
240 if(thrust > 0.75) _h["pT_thi[4]"+to_str(i_bin)]->fill(pT);
241 }
242 }
243
244 // TransMAX, TransMIN regions
245 if (pTsumLeft > pTsumRight) {
246 pTsumTransmax = pTsumLeft;
247 pTsumTransmin = pTsumRight;
248 nTransmax = nLeft;
249 nTransmin = nRight;
250
251 for (auto x: rightpt) {
252 _h["pT[2]"+to_str(i_bin)]->fill(x);
253 if(thrust < 0.75) _h["pT_tlow[2]"+to_str(i_bin)]->fill(x);
254 if(thrust > 0.75) _h["pT_thi[2]"+to_str(i_bin)]->fill(x);
255 }
256 for (auto x: rightpt) {
257 _h["pT[3]"+to_str(i_bin)]->fill(x);
258 if(thrust < 0.75) _h["pT_tlow[3]"+to_str(i_bin)]->fill(x);
259 if(thrust > 0.75) _h["pT_thi[3]"+to_str(i_bin)]->fill(x);
260 }
261 }
262
263 else {
264 pTsumTransmax = pTsumRight;
265 pTsumTransmin = pTsumLeft;
266 nTransmax = nRight;
267 nTransmin = nLeft;
268
269 for (auto x: leftpt) {
270 _h["pT[2]"+to_str(i_bin)]->fill(x);
271 if(thrust < 0.75) _h["pT_tlow[2]"+to_str(i_bin)]->fill(x);
272 if(thrust > 0.75) _h["pT_thi[2]"+to_str(i_bin)]->fill(x);
273 }
274
275 for (auto x: leftpt) {
276 _h["pT[3]"+to_str(i_bin)]->fill(x);
277 if(thrust < 0.75) _h["pT_tlow[3]"+to_str(i_bin)]->fill(x);
278 if(thrust > 0.75) _h["pT_thi[3]"+to_str(i_bin)]->fill(x);
279 }
280 }
281
282 // Fill rest of the histogtams
283
284
285 _p["pTsum_tow_zpt"]->fill(Zpt, pTsumTow/area);
286 _p["pTsum_trv_zpt"]->fill(Zpt, pTsumTrans/area);
287 _p["pTsum_away_zpt"]->fill(Zpt, pTsumAway/area);
288 _p["pTsum_tmin_zpt"]->fill(Zpt, pTsumTransmin/(0.5*area));
289 _p["pTsum_tmax_zpt"]->fill(Zpt, pTsumTransmax/(0.5*area));
290 _p["nch_tow_zpt"]->fill(Zpt, nTow/area);
291 _p["nch_trv_zpt"]->fill(Zpt, nTrans/area);
292 _p["nch_away_zpt"]->fill(Zpt, nAway/area);
293 _p["nch_tmin_zpt"]->fill(Zpt, nTransmin/(0.5*area));
294 _p["nch_tmax_zpt"]->fill(Zpt, nTransmax/(0.5*area));
295
296 if(nTow > 0)_p["pTmean_tow_zpt"]->fill(Zpt, pTsumTow/nTow);
297 if(nTrans > 0)_p["pTmean_trv_zpt"]->fill(Zpt, pTsumTrans/nTrans);
298 if(nAway > 0)_p["pTmean_away_zpt"]->fill(Zpt, pTsumAway/nAway);
299 if(nTransmin > 0)_p["pTmean_tmin_zpt"]->fill(Zpt, pTsumTransmin/nTransmin);
300 if(nTransmax > 0)_p["pTmean_tmax_zpt"]->fill(Zpt, pTsumTransmax/nTransmax);
301
302 if(thrust < 0.75){
303 _p["pTsum_tow_zpt_tlow"]->fill(Zpt, pTsumTow/area);
304 _p["pTsum_trv_zpt_tlow"]->fill(Zpt, pTsumTrans/area);
305 _p["pTsum_away_zpt_tlow"]->fill(Zpt, pTsumAway/area);
306 _p["pTsum_tmin_zpt_tlow"]->fill(Zpt, pTsumTransmin/(0.5*area));
307 _p["pTsum_tmax_zpt_tlow"]->fill(Zpt, pTsumTransmax/(0.5*area));
308 _p["nch_tow_zpt_tlow"]->fill(Zpt, nTow/area);
309 _p["nch_trv_zpt_tlow"]->fill(Zpt, nTrans/area);
310 _p["nch_away_zpt_tlow"]->fill(Zpt, nAway/area);
311 _p["nch_tmin_zpt_tlow"]->fill(Zpt, nTransmin/(0.5*area));
312 _p["nch_tmax_zpt_tlow"]->fill(Zpt, nTransmax/(0.5*area));
313
314 if(nTow > 0)_p["pTmean_tow_zpt_tlow"]->fill(Zpt, pTsumTow/nTow);
315 if(nTrans > 0)_p["pTmean_trv_zpt_tlow"]->fill(Zpt, pTsumTrans/nTrans);
316 if(nAway > 0)_p["pTmean_away_zpt_tlow"]->fill(Zpt, pTsumAway/nAway);
317 if(nTransmin > 0)_p["pTmean_tmin_zpt_tlow"]->fill(Zpt, pTsumTransmin/nTransmin);
318 if(nTransmax > 0)_p["pTmean_tmax_zpt_tlow"]->fill(Zpt, pTsumTransmax/nTransmax);
319 }
320
321 if(thrust > 0.75){
322 _p["pTsum_tow_zpt_thi"]->fill(Zpt, pTsumTow/area);
323 _p["pTsum_trv_zpt_thi"]->fill(Zpt, pTsumTrans/area);
324 _p["pTsum_away_zpt_thi"]->fill(Zpt, pTsumAway/area);
325 _p["pTsum_tmin_zpt_thi"]->fill(Zpt, pTsumTransmin/(0.5*area));
326 _p["pTsum_tmax_zpt_thi"]->fill(Zpt, pTsumTransmax/(0.5*area));
327 _p["nch_tow_zpt_thi"]->fill(Zpt, nTow/area);
328 _p["nch_trv_zpt_thi"]->fill(Zpt, nTrans/area);
329 _p["nch_away_zpt_thi"]->fill(Zpt, nAway/area);
330 _p["nch_tmin_zpt_thi"]->fill(Zpt, nTransmin/(0.5*area));
331 _p["nch_tmax_zpt_thi"]->fill(Zpt, nTransmax/(0.5*area));
332
333 if(nTow > 0)_p["pTmean_tow_zpt_thi"]->fill(Zpt, pTsumTow/nTow);
334 if(nTrans > 0)_p["pTmean_trv_zpt_thi"]->fill(Zpt, pTsumTrans/nTrans);
335 if(nAway > 0)_p["pTmean_away_zpt_thi"]->fill(Zpt, pTsumAway/nAway);
336 if(nTransmin > 0)_p["pTmean_tmin_zpt_thi"]->fill(Zpt, pTsumTransmin/nTransmin);
337 if(nTransmax > 0)_p["pTmean_tmax_zpt_thi"]->fill(Zpt, pTsumTransmax/nTransmax);
338
339 }
340
341 _h["nch[0]"+to_str(i_bin)]->fill(nTow/area);
342 _h["nch[1]"+to_str(i_bin)]->fill(nTrans/area);
343 _h["nch[4]"+to_str(i_bin)]->fill(nAway/area);
344 _h["nch[2]"+to_str(i_bin)]->fill(nTransmin/(0.5*area));
345 _h["nch[3]"+to_str(i_bin)]->fill(nTransmax/(0.5*area));
346 _h["pTsum[0]"+to_str(i_bin)]->fill(pTsumTow/area);
347 _h["pTsum[1]"+to_str(i_bin)]->fill(pTsumTrans/area);
348 _h["pTsum[4]"+to_str(i_bin)]->fill(pTsumAway/area);
349 _h["pTsum[2]"+to_str(i_bin)]->fill(pTsumTransmin/(0.5*area));
350 _h["pTsum[3]"+to_str(i_bin)]->fill(pTsumTransmax/(0.5*area));
351
352 if(nTow > 0) _h["pTmean[0]"+to_str(i_bin)]->fill(pTsumTow/nTow);
353 if(nTrans > 0)_h["pTmean[1]"+to_str(i_bin)]->fill(pTsumTrans/nTrans);
354 if(nAway > 0)_h["pTmean[4]"+to_str(i_bin)]->fill(pTsumAway/nAway);
355 if(nTransmin > 0)_h["pTmean[2]"+to_str(i_bin)]->fill(pTsumTransmin/nTransmin);
356 if(nTransmax > 0)_h["pTmean[3]"+to_str(i_bin)]->fill(pTsumTransmax/nTransmax);
357
358 if(thrust < 0.75){
359 _h["nch_tlow[0]"+to_str(i_bin)]->fill(nTow/area);
360 _h["nch_tlow[1]"+to_str(i_bin)]->fill(nTrans/area);
361 _h["nch_tlow[4]"+to_str(i_bin)]->fill(nAway/area);
362 _h["nch_tlow[2]"+to_str(i_bin)]->fill(nTransmin/(0.5*area));
363 _h["nch_tlow[3]"+to_str(i_bin)]->fill(nTransmax/(0.5*area));
364 _h["pTsum_tlow[0]"+to_str(i_bin)]->fill(pTsumTow/area);
365 _h["pTsum_tlow[1]"+to_str(i_bin)]->fill(pTsumTrans/area);
366 _h["pTsum_tlow[4]"+to_str(i_bin)]->fill(pTsumAway/area);
367 _h["pTsum_tlow[2]"+to_str(i_bin)]->fill(pTsumTransmin/(0.5*area));
368 _h["pTsum_tlow[3]"+to_str(i_bin)]->fill(pTsumTransmax/(0.5*area));
369
370 if(nTow > 0) _h["pTmean_tlow[0]"+to_str(i_bin)]->fill(pTsumTow/nTow);
371 if(nTrans > 0)_h["pTmean_tlow[1]"+to_str(i_bin)]->fill(pTsumTrans/nTrans);
372 if(nAway > 0)_h["pTmean_tlow[4]"+to_str(i_bin)]->fill(pTsumAway/nAway);
373 if(nTransmin > 0)_h["pTmean_tlow[2]"+to_str(i_bin)]->fill(pTsumTransmin/nTransmin);
374 if(nTransmax > 0)_h["pTmean_tlow[3]"+to_str(i_bin)]->fill(pTsumTransmax/nTransmax);
375 }
376
377 if(thrust > 0.75){
378 _h["nch_thi[0]"+to_str(i_bin)]->fill(nTow/area);
379 _h["nch_thi[1]"+to_str(i_bin)]->fill(nTrans/area);
380 _h["nch_thi[4]"+to_str(i_bin)]->fill(nAway/area);
381 _h["nch_thi[2]"+to_str(i_bin)]->fill(nTransmin/(0.5*area));
382 _h["nch_thi[3]"+to_str(i_bin)]->fill(nTransmax/(0.5*area));
383 _h["pTsum_thi[0]"+to_str(i_bin)]->fill(pTsumTow/area);
384 _h["pTsum_thi[1]"+to_str(i_bin)]->fill(pTsumTrans/area);
385 _h["pTsum_thi[4]"+to_str(i_bin)]->fill(pTsumAway/area);
386 _h["pTsum_thi[2]"+to_str(i_bin)]->fill(pTsumTransmin/(0.5*area));
387 _h["pTsum_thi[3]"+to_str(i_bin)]->fill(pTsumTransmax/(0.5*area));
388
389 if(nTow > 0) _h["pTmean_thi[0]"+to_str(i_bin)]->fill(pTsumTow/nTow);
390 if(nTrans > 0)_h["pTmean_thi[1]"+to_str(i_bin)]->fill(pTsumTrans/nTrans);
391 if(nAway > 0)_h["pTmean_thi[4]"+to_str(i_bin)]->fill(pTsumAway/nAway);
392 if(nTransmin > 0)_h["pTmean_thi[2]"+to_str(i_bin)]->fill(pTsumTransmin/nTransmin);
393 if(nTransmax > 0)_h["pTmean_thi[3]"+to_str(i_bin)]->fill(pTsumTransmax/nTransmax);
394 }
395
396 }
397
398
399 void finalize() {
400
401 normalize(_h);
402
403 }
404
405 private:
406 map<string, Histo1DPtr> _h;
407 map<string, Profile1DPtr> _p;
408 };
409
410 RIVET_DECLARE_PLUGIN(ATLAS_2019_I1736531);
411
412}
|