User will overwrite this function. Histogram booking is no longer done in C++. This function is called in execute once the filters are all passed.
24 {
25 using namespace Monitored;
26
27
28
32 return StatusCode::SUCCESS;
33 }
34
35
36
37
38
39
42
43
44 auto lbNCandidates = Monitored::Scalar<u_int16_t>("LBEvoN",0);
45
46
47 auto np = Monitored::Scalar<int>(
"N",0.0);
48 auto et = Monitored::Scalar<Float_t>(
"Et",0.0);
49
50
51 auto eta = Monitored::Scalar<Double_t>(
"Eta",0.0);
52 auto phi = Monitored::Scalar<Float_t>(
"Phi",0.0);
53 auto is_pt_gt_2_5gev = Monitored::Scalar<bool>("is_pt_gt_2_5gev",false);
54 auto is_pt_gt_4gev = Monitored::Scalar<bool>("is_pt_gt_4gev",false);
55 auto is_pt_gt_20gev = Monitored::Scalar<bool>("is_pt_gt_20gev",false);
56 auto time = Monitored::Scalar<Float_t>(
"Time",0.0);
57 auto topoetcone40 = Monitored::Scalar<Float_t>(
"TopoEtCone40",0.0);
58 auto ptcone20 = Monitored::Scalar<Float_t>(
"PtCone20",0.0);
59
60
61
62
63 auto np_barrel = Monitored::Scalar<int>("NinBARREL",0.0);
64 auto et_barrel = Monitored::Scalar<Float_t>("EtinBARREL",0.0);
65 auto eta_barrel = Monitored::Scalar<Float_t>("EtainBARREL",0.0);
66 auto phi_barrel = Monitored::Scalar<Float_t>("PhiinBARREL",0.0);
67 auto time_barrel = Monitored::Scalar<Float_t>("TimeinBARREL",0.0);
68 auto ehad1_barrel = Monitored::Scalar<Float_t>("Ehad1inBARREL",0.0);
69 auto eoverp_barrel = Monitored::Scalar<Float_t>("EoverPinBARREL",0.0);
70 auto coreem_barrel = Monitored::Scalar<Float_t>("CoreEMinBARREL",0.0);
71 auto f0_barrel = Monitored::Scalar<Float_t>("F0inBARREL",0.0);
72 auto f1_barrel = Monitored::Scalar<Float_t>("F1inBARREL",0.0);
73 auto f2_barrel = Monitored::Scalar<Float_t>("F2inBARREL",0.0);
74 auto f3_barrel = Monitored::Scalar<Float_t>("F3inBARREL",0.0);
75 auto re233e237_barrel = Monitored::Scalar<Float_t>("Re233e237inBARREL",0.0);
76 auto re237e277_barrel = Monitored::Scalar<Float_t>("Re237e277inBARREL",0.0);
77 auto nofblayerhits_barrel = Monitored::Scalar<u_int8_t>("NOfBLayerHitsinBARREL",0);
78 auto nofpixelhits_barrel = Monitored::Scalar<u_int8_t>("NOfPixelHitsinBARREL",0);
79 auto nofscthits_barrel = Monitored::Scalar<u_int8_t>("NOfSCTHitsinBARREL",0);
80 auto noftrthits_barrel = Monitored::Scalar<u_int8_t>("NOfTRTHitsinBARREL",0);
81 auto noftrthighthresholdhits_barrel = Monitored::Scalar<u_int8_t>("NOfTRTHighThresholdHitsinBARREL",0);
82 auto deltaeta1_barrel = Monitored::Scalar<Float_t>("DeltaEta1inBARREL",0.0);
83 auto deltaphi2_barrel = Monitored::Scalar<Float_t>("DeltaPhi2inBARREL",0.0);
84 auto trackd0_barrel = Monitored::Scalar<Float_t>("Trackd0inBARREL",0.0);
85
86
87 auto np_endcap = Monitored::Scalar<int>("NinENDCAP",0.0);
88 auto et_endcap = Monitored::Scalar<Float_t>("EtinENDCAP",0.0);
89 auto eta_endcap = Monitored::Scalar<Float_t>("EtainENDCAP",0.0);
90 auto phi_endcap = Monitored::Scalar<Float_t>("PhiinENDCAP",0.0);
91 auto time_endcap = Monitored::Scalar<Float_t>("TimeinENDCAP",0.0);
92 auto ehad1_endcap = Monitored::Scalar<Float_t>("Ehad1inENDCAP",0.0);
93 auto eoverp_endcap = Monitored::Scalar<Float_t>("EoverPinENDCAP",0.0);
94 auto coreem_endcap = Monitored::Scalar<Float_t>("CoreEMinENDCAP",0.0);
95 auto f0_endcap = Monitored::Scalar<Float_t>("F0inENDCAP",0.0);
96 auto f1_endcap = Monitored::Scalar<Float_t>("F1inENDCAP",0.0);
97 auto f2_endcap = Monitored::Scalar<Float_t>("F2inENDCAP",0.0);
98 auto f3_endcap = Monitored::Scalar<Float_t>("F3inENDCAP",0.0);
99 auto re233e237_endcap = Monitored::Scalar<Float_t>("Re233e237inENDCAP",0.0);
100 auto re237e277_endcap = Monitored::Scalar<Float_t>("Re237e277inENDCAP",0.0);
101 auto nofblayerhits_endcap = Monitored::Scalar<u_int8_t>("NOfBLayerHitsinENDCAP",0);
102 auto nofpixelhits_endcap = Monitored::Scalar<u_int8_t>("NOfPixelHitsinENDCAP",0);
103 auto nofscthits_endcap = Monitored::Scalar<u_int8_t>("NOfSCTHitsinENDCAP",0);
104 auto noftrthits_endcap = Monitored::Scalar<u_int8_t>("NOfTRTHitsinENDCAP",0);
105 auto noftrthighthresholdhits_endcap = Monitored::Scalar<u_int8_t>("NOfTRTHighThresholdHitsinENDCAP",0);
106 auto deltaeta1_endcap = Monitored::Scalar<Float_t>("DeltaEta1inENDCAP",0.0);
107 auto deltaphi2_endcap = Monitored::Scalar<Float_t>("DeltaPhi2inENDCAP",0.0);
108 auto trackd0_endcap = Monitored::Scalar<Float_t>("Trackd0inENDCAP",0.0);
109
110
111 auto np_crack = Monitored::Scalar<int>("NinCRACK",0.0);
112 auto et_crack = Monitored::Scalar<Float_t>("EtinCRACK",0.0);
113 auto eta_crack = Monitored::Scalar<Float_t>("EtainCRACK",0.0);
114 auto phi_crack = Monitored::Scalar<Float_t>("PhiinCRACK",0.0);
115 auto time_crack = Monitored::Scalar<Float_t>("TimeinCRACK",0.0);
116 auto ehad1_crack = Monitored::Scalar<Float_t>("Ehad1inCRACK",0.0);
117 auto eoverp_crack = Monitored::Scalar<Float_t>("EoverPinCRACK",0.0);
118 auto coreem_crack = Monitored::Scalar<Float_t>("CoreEMinCRACK",0.0);
119 auto f0_crack = Monitored::Scalar<Float_t>("F0inCRACK",0.0);
120 auto f1_crack = Monitored::Scalar<Float_t>("F1inCRACK",0.0);
121 auto f2_crack = Monitored::Scalar<Float_t>("F2inCRACK",0.0);
122 auto f3_crack = Monitored::Scalar<Float_t>("F3inCRACK",0.0);
123 auto re233e237_crack = Monitored::Scalar<Float_t>("Re233e237inCRACK",0.0);
124 auto re237e277_crack = Monitored::Scalar<Float_t>("Re237e277inCRACK",0.0);
125 auto nofblayerhits_crack = Monitored::Scalar<u_int8_t>("NOfBLayerHitsinCRACK",0);
126 auto nofpixelhits_crack = Monitored::Scalar<u_int8_t>("NOfPixelHitsinCRACK",0);
127 auto nofscthits_crack = Monitored::Scalar<u_int8_t>("NOfSCTHitsinCRACK",0);
128 auto noftrthits_crack = Monitored::Scalar<u_int8_t>("NOfTRTHitsinCRACK",0);
129 auto noftrthighthresholdhits_crack = Monitored::Scalar<u_int8_t>("NOfTRTHighThresholdHitsinCRACK",0);
130 auto deltaeta1_crack = Monitored::Scalar<Float_t>("DeltaEta1inCRACK",0.0);
131 auto deltaphi2_crack = Monitored::Scalar<Float_t>("DeltaPhi2inCRACK",0.0);
132 auto trackd0_crack = Monitored::Scalar<Float_t>("Trackd0inCRACK",0.0);
133
134
135 auto is_pt_gt_4gev_barrel = Monitored::Scalar<bool>("is_pt_gt_4gevBARREL",false);
136 auto is_pt_gt_4gev_endcap = Monitored::Scalar<bool>("is_pt_gt_4gevENDCAP",false);
137 auto is_pt_gt_4gev_crack = Monitored::Scalar<bool>("is_pt_gt_4gevCRACK",false);
138
139 auto is_pt_gt_2_5gev_barrel = Monitored::Scalar<bool>("is_pt_gt_2_5gevBARREL",false);
140 auto is_pt_gt_2_5gev_endcap = Monitored::Scalar<bool>("is_pt_gt_2_5gevENDCAP",false);
141 auto is_pt_gt_2_5gev_crack = Monitored::Scalar<bool>("is_pt_gt_2_5gevCRACK",false);
142
143 auto is_pt_gt_20gev_barrel = Monitored::Scalar<bool>("is_pt_gt_20gevBARREL",false);
144 auto is_pt_gt_20gev_endcap = Monitored::Scalar<bool>("is_pt_gt_20gevENDCAP",false);
145 auto is_pt_gt_20gev_crack = Monitored::Scalar<bool>("is_pt_gt_20gevCRACK",false);
146
147
148
150 lbNCandidates = mylb;
151
152 u_int16_t mynp = 0;
153 u_int16_t mynp_barrel = 0;
154 u_int16_t mynp_crack = 0;
155 u_int16_t mynp_endcap = 0;
156
157 for (const auto *const e_iter : *electrons) {
158
159
160 bool isGood;
161 if (! e_iter->passSelection(isGood,
m_RecoName)) {
163 break;
164 }
165 if(isGood) {
166 mynp++;
167
168 Double_t myetaloc = e_iter->eta();
171 switch(regionloc){
173 mynp_barrel++;
174 break;
176 mynp_crack++;
177 break;
179 mynp_endcap++;
180 break;
182 ATH_MSG_DEBUG(
"Found an electron out the acceptance region : " << regionloc);
183 break;
184 }
185 }
186 else continue;
187
188
189
190 Float_t myet = e_iter->pt();
191
192 Double_t myeta = e_iter->eta();
193 Float_t myphi = e_iter->phi();
194
195 bool myis_pt_gt_2_5gev = myet > 2500. ;
196 bool myis_pt_gt_4gev = myet > 4000. ;
197 bool myis_pt_gt_20gev = myet > 20000. ;
198
199 is_pt_gt_2_5gev = myis_pt_gt_2_5gev ;
200 is_pt_gt_4gev = myis_pt_gt_4gev ;
201 is_pt_gt_20gev = myis_pt_gt_20gev ;
202
203 is_pt_gt_4gev_barrel = myis_pt_gt_4gev ;
204 is_pt_gt_4gev_endcap = myis_pt_gt_4gev ;
205 is_pt_gt_4gev_crack = myis_pt_gt_4gev ;
206
207 is_pt_gt_2_5gev_barrel = myis_pt_gt_2_5gev ;
208 is_pt_gt_2_5gev_endcap = myis_pt_gt_2_5gev ;
209 is_pt_gt_2_5gev_crack = myis_pt_gt_2_5gev ;
210
211 is_pt_gt_20gev_barrel = myis_pt_gt_20gev ;
212 is_pt_gt_20gev_endcap = myis_pt_gt_20gev ;
213 is_pt_gt_20gev_crack = myis_pt_gt_20gev ;
214
215
216 Float_t mytopoetcone40 = -999.;
219
220 Float_t myptcone20 = -999.;
223
224 Float_t mytime=0.0;
225
226
227 Float_t myehad1 = 0.0;
228 Float_t myecore = 0.0;
229 Float_t myf0 = 0.0;
230 Float_t myf1 = 0.0;
231 Float_t myf2 = 0.0;
232 Float_t myf3 = 0.0;
236 Float_t myre233e237 = 0.0;
237 Float_t myre237e277 = 0.0;
238
241
245
246 if (e237!=0) myre233e237 =
e233 /
e237;
247 if (e277!=0) myre237e277 =
e237 /
e277;
248
249
250
251 Float_t mydeltaeta1 = -999.0;
253 Float_t mydeltaphi2 = -999.0;
255
256 Float_t myeoverp = -999.0;
257 Float_t mytrackd0 = -999.0;
258
259
261 double trackp = 0;
262 u_int8_t mynofblayerhits=-1;
263 u_int8_t mynofpixelhits=-1;
264 u_int8_t mynofscthits=-1;
265 u_int8_t mynoftrthits=-1;
266 u_int8_t mynoftrthighthresholdhits=-1;
267
268 if(t) {
269 trackp =
t->pt()*cosh(
t->eta());
270
277 }
278 else
279 ATH_MSG_DEBUG(
"Error attempting to retrieve associated track");
280
281
282
283
285 if (aCluster) {
286 mytime = aCluster->
time();
288
289 double ec = aCluster->
et()*cosh(aCluster->
eta());
290 if (ec!=0) myf0 = aCluster->
energyBE(0)/ec;
291 if (ec!=0) myf1 = aCluster->
energyBE(1)/ec;
292 if (ec!=0) myf2 = aCluster->
energyBE(2)/ec;
293 if (ec!=0) myf3 = aCluster->
energyBE(3)/ec;
294
295 if(trackp !=0) myeoverp = aCluster->
e()/trackp;
296
297
298 }
299
300
302
303
304
305 switch(region){
306
308 nofblayerhits_barrel = mynofblayerhits ; nofpixelhits_barrel = mynofpixelhits ; nofscthits_barrel = mynofscthits ;
309 noftrthits_barrel = mynoftrthits ; noftrthighthresholdhits_barrel = mynoftrthighthresholdhits;
310 deltaeta1_barrel = mydeltaeta1; deltaphi2_barrel = mydeltaphi2; trackd0_barrel = mytrackd0;
311 eoverp_barrel = myeoverp;
312 et_barrel = myet ; eta_barrel = myeta ; phi_barrel = myphi ;
313 time_barrel = mytime; ehad1_barrel = myehad1; coreem_barrel = myecore;
314 f0_barrel = myf0; f1_barrel = myf1; f2_barrel = myf2; f3_barrel = myf3; re233e237_barrel = myre233e237; re237e277_barrel = myre237e277;
315 fill(
"MonitorElectron",np_barrel, nofblayerhits_barrel, nofpixelhits_barrel, nofscthits_barrel, noftrthits_barrel, noftrthighthresholdhits_barrel,
316 deltaeta1_barrel, deltaphi2_barrel,trackd0_barrel,eoverp_barrel,
317 et_barrel,eta_barrel,phi_barrel, time_barrel, ehad1_barrel,coreem_barrel, f0_barrel,f1_barrel,f2_barrel, f3_barrel,
318 re233e237_barrel,re237e277_barrel,is_pt_gt_4gev_barrel,is_pt_gt_2_5gev_barrel,is_pt_gt_20gev_barrel);
319 break;
320
322 nofblayerhits_endcap = mynofblayerhits; nofpixelhits_endcap = mynofpixelhits ; nofscthits_endcap = mynofscthits ;
323 noftrthits_endcap = mynoftrthits ; noftrthighthresholdhits_endcap = mynoftrthighthresholdhits;
324 deltaeta1_endcap = mydeltaeta1; deltaphi2_endcap = mydeltaphi2; trackd0_endcap = mytrackd0;
325 eoverp_endcap = myeoverp;
326 et_endcap = myet ; eta_endcap = myeta ; phi_endcap = myphi ;
327 time_endcap = mytime; ehad1_endcap = myehad1; coreem_endcap = myecore;
328 f0_endcap = myf0; f1_endcap = myf1; f2_endcap = myf2; f3_endcap = myf3; re233e237_endcap = myre233e237; re237e277_endcap = myre237e277;
329 fill(
"MonitorElectron",np_endcap,nofblayerhits_endcap,nofpixelhits_endcap,nofscthits_endcap,noftrthits_endcap,noftrthighthresholdhits_endcap,
330 deltaeta1_endcap, deltaphi2_endcap,trackd0_endcap,eoverp_endcap,et_endcap,eta_endcap,phi_endcap,
331 time_endcap, ehad1_endcap,coreem_endcap,
332 f0_endcap,f1_endcap,f2_endcap,f3_endcap,re233e237_endcap,re237e277_endcap,is_pt_gt_4gev_endcap,is_pt_gt_2_5gev_endcap,is_pt_gt_20gev_endcap);
333 break;
334
336 nofblayerhits_crack = mynofblayerhits; nofpixelhits_crack = mynofpixelhits ; nofscthits_crack = mynofscthits ;
337 noftrthits_crack = mynoftrthits ; noftrthighthresholdhits_crack = mynoftrthighthresholdhits;
338 deltaeta1_crack = mydeltaeta1; deltaphi2_crack = mydeltaphi2; trackd0_crack = mytrackd0;
339 eoverp_crack = myeoverp;
340 et_crack = myet ; eta_crack = myeta ; phi_crack = myphi ;
341 time_crack = mytime; ehad1_crack = myehad1; coreem_crack = myecore;
342 f0_crack = myf0; f1_crack = myf1; f2_crack = myf2; f3_crack = myf3; re233e237_crack = myre233e237; re237e277_crack = myre237e277;
343 fill(
"MonitorElectron",np_crack,nofblayerhits_crack, nofpixelhits_crack,nofscthits_crack,noftrthits_crack,noftrthighthresholdhits_crack,
344 deltaeta1_crack, deltaphi2_crack,trackd0_crack,eoverp_crack,et_crack,eta_crack,phi_crack,
345 time_crack, ehad1_crack,coreem_crack,f0_crack,f1_crack,f2_crack,f3_crack,re233e237_crack,re237e277_crack,is_pt_gt_4gev_crack,is_pt_gt_2_5gev_crack,is_pt_gt_20gev_crack);
346 break;
347
349 ATH_MSG_DEBUG(
"found an electron outside the |eta| > 2.47 acceptance");
350 break;
351 }
352
353 et = myet ;
eta = myeta ;
phi = myphi ;
354 fill(
"MonitorElectron",
et,
eta,
phi,time,ptcone20,topoetcone40,lbNCandidates,
355 is_pt_gt_2_5gev, is_pt_gt_4gev, is_pt_gt_20gev);
356
357
358 }
359
361 np_barrel = mynp_barrel;
362 np_endcap = mynp_endcap;
363 np_crack = mynp_crack;
364
365 fill(
"MonitorElectron",np,np_barrel,np_endcap,np_crack);
366
367 return StatusCode::SUCCESS;
368}
Scalar eta() const
pseudorapidity method
Scalar phi() const
phi method
#define ATH_CHECK
Evaluate an expression and check for errors.
float et(const xAOD::jFexSRJetRoI *j)
SG::ReadHandle< xAOD::EventInfo > GetEventInfo(const EventContext &) const
Return a ReadHandle for an EventInfo object (get run/event numbers, etc.)
SG::ReadHandleKey< xAOD::ElectronContainer > m_ParticleContainerKey
Gaudi::Property< std::string > m_RecoName
Regions GetRegion(Float_t eta) const
flt_t time() const
Access cluster time.
virtual double eta() const
The pseudorapidity ( ) of the particle.
virtual double e() const
The total energy of the particle.
float energyBE(const unsigned layer) const
Get the energy in one layer of the EM Calo.
@ LAr
The LAr calorimeter.
EventFlagErrorState
States that a given sub-detector could be in.
@ Error
The sub-detector issued an error.
void fill(const ToolHandle< GenericMonitoringTool > &groupHandle, std::vector< std::reference_wrapper< Monitored::IMonitoredVariable > > &&variables) const
Fills a vector of variables to a group by reference.
time(flags, cells_name, *args, **kw)
@ deltaPhi2
difference between the cluster phi (second sampling) and the phi of the track extrapolated to the sec...
@ deltaEta1
difference between the cluster eta (first sampling) and the eta of the track extrapolated to the firs...
@ e277
uncalibrated energy (sum of cells) of the middle sampling in a rectangle of size 7x7
@ e237
uncalibrated energy (sum of cells) of the middle sampling in a rectangle of size 3x7
@ ecore
core energy in em calo E(core) = E0(3x3) + E1(15x2) + E2(5x5) + E3(3x5)
@ ehad1
E leakage into 1st sampling of had calo (CaloSampling::HEC0 + CaloSampling::TileBar0 + CaloSampling::...
@ e233
uncalibrated energy (sum of cells) of the middle sampling in a rectangle of size 3x3 (in cell units e...
@ ptcone20
Track isolation.
CaloCluster_v1 CaloCluster
Define the latest version of the calorimeter cluster class.
TrackParticle_v1 TrackParticle
Reference the current persistent version:
@ numberOfTRTHits
number of TRT hits [unit8_t].
@ numberOfSCTHits
number of hits in SCT [unit8_t].
@ numberOfInnermostPixelLayerHits
these are the hits in the 0th pixel barrel layer
@ numberOfPixelHits
these are the pixel hits, including the b-layer [unit8_t].
@ numberOfTRTHighThresholdHits
number of TRT hits which pass the high threshold (only xenon counted) [unit8_t].