ATLAS Offline Software
Loading...
Searching...
No Matches
MonitorElectronAlgorithm.cxx
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
3
4 Author : B. Laforge (laforge@lpnhe.in2p3.fr)
5 4 May 2020
6*/
7
9
10MonitorElectronAlgorithm::MonitorElectronAlgorithm( const std::string& name, ISvcLocator* pSvcLocator )
11:AthMonitorAlgorithm(name,pSvcLocator)
12{
13}
14
16 using namespace Monitored;
18 ATH_CHECK( m_ParticleContainerKey.initialize() );
19 ATH_CHECK( m_ElectronIsolationKey.initialize() );
20
21 return StatusCode::SUCCESS;
22}
23
24StatusCode MonitorElectronAlgorithm::fillHistograms( const EventContext& ctx ) const {
25 using namespace Monitored;
26
27 // Only monitor good LAr Events :
28
30 if (error_state==xAOD::EventInfo::Error) {
31 ATH_MSG_DEBUG("LAr event data integrity error");
32 return StatusCode::SUCCESS;
33 }
34
35 //
36 // now, fill the specific Electron information
37 //
38 // get the Electron container
39
41 ATH_CHECK(electrons.isValid());
42
43 // Event variables to be monitored
44 auto lbNCandidates = Monitored::Scalar<u_int16_t>("LBEvoN",0);
45
46 // Particle variables to be monitored
47 auto np = Monitored::Scalar<int>("N",0.0);
48 auto et = Monitored::Scalar<Float_t>("Et",0.0);
49 // Check if small differences between old and new monitoring are related to rounding effects
50 // auto eta = Monitored::Scalar<Float_t>("Eta",0.0);
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 // Particle variables per Region
61
62 // BARREL
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 // ENDCAP
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 // CRACK
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 // Set the values of the monitored variables for the event
148
149 u_int16_t mylb = GetEventInfo(ctx)->lumiBlock();
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 // Check that the electron meets our requirements
160 bool isGood;
161 if (! e_iter->passSelection(isGood,m_RecoName)) {
162 ATH_MSG_WARNING("Misconfiguration: " << m_RecoName << " is not a valid working point for electrons");
163 break; // no point in continuing
164 }
165 if(isGood) {
166 mynp++;
167 //Float_t myetaloc = e_iter->eta();
168 Double_t myetaloc = e_iter->eta();
169 auto regionloc = GetRegion(myetaloc);
170 ATH_MSG_DEBUG("Test electron in region : " << regionloc);
171 switch(regionloc){
172 case BARREL :
173 mynp_barrel++;
174 break;
175 case CRACK :
176 mynp_crack++;
177 break;
178 case ENDCAP :
179 mynp_endcap++;
180 break;
181 default :
182 ATH_MSG_DEBUG("Found an electron out the acceptance region : " << regionloc);
183 break;
184 }
185 }
186 else continue;
187
188 // do specific stuff with electrons
189
190 Float_t myet = e_iter->pt(); // in MeV (/Gaudi::Units::GeV; // in GeV)
191 //Float_t myeta = e_iter->eta();
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 // Isolation Energy
216 Float_t mytopoetcone40 = -999.;
217 e_iter->isolationValue(mytopoetcone40,xAOD::Iso::topoetcone40);
218 topoetcone40 = mytopoetcone40;
219
220 Float_t myptcone20 = -999.;
221 e_iter->isolationValue(myptcone20,xAOD::Iso::ptcone20);
222 ptcone20 = myptcone20;
223
224 Float_t mytime=0.0;
225
226 // Shower shape variable details
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;
233 Float_t e233 = 0.0;
234 Float_t e237 = 0.0;
235 Float_t e277 = 0.0;
236 Float_t myre233e237 = 0.0;
237 Float_t myre237e277 = 0.0;
238
239 e_iter->showerShapeValue(myehad1, xAOD::EgammaParameters::ehad1);
240 e_iter->showerShapeValue(myecore, xAOD::EgammaParameters::ecore);
241
242 e_iter->showerShapeValue(e237, xAOD::EgammaParameters::e237);
243 e_iter->showerShapeValue(e233, xAOD::EgammaParameters::e233);
244 e_iter->showerShapeValue(e277, xAOD::EgammaParameters::e277);
245
246 if (e237!=0) myre233e237 = e233 / e237;
247 if (e277!=0) myre237e277 = e237 / e277;
248
249
250 // Cluster track match details
251 Float_t mydeltaeta1 = -999.0;
252 e_iter->trackCaloMatchValue(mydeltaeta1, xAOD::EgammaParameters::deltaEta1);
253 Float_t mydeltaphi2 = -999.0;
254 e_iter->trackCaloMatchValue(mydeltaphi2, xAOD::EgammaParameters::deltaPhi2);
255
256 Float_t myeoverp = -999.0;
257 Float_t mytrackd0 = -999.0;
258
259 // associated track details
260 const xAOD::TrackParticle *t = e_iter->trackParticle();
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 // retrieve track summary information
271 t->summaryValue(mynofblayerhits,xAOD::numberOfInnermostPixelLayerHits);
272 t->summaryValue(mynofpixelhits,xAOD::numberOfPixelHits);
273 t->summaryValue(mynofscthits,xAOD::numberOfSCTHits);
274 t->summaryValue(mynoftrthits,xAOD::numberOfTRTHits);
275 t->summaryValue(mynoftrthighthresholdhits,xAOD::numberOfTRTHighThresholdHits);
276 mytrackd0 = t->d0();
277 }
278 else
279 ATH_MSG_DEBUG("Error attempting to retrieve associated track");
280
281
282 // Associated cluster details
283
284 const xAOD::CaloCluster *aCluster = e_iter->caloCluster();
285 if (aCluster) {
286 mytime = aCluster->time();
287 time = mytime ;
288 // Shower shape variable details
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 //ATH_MSG_WARNING("Test eoverp : " << myeoverp);
298 }
299
300 // Fill per region histograms
301 auto region = GetRegion(myeta);
302
303 //ATH_MSG_INFO("Test electron in region : " << region);
304
305 switch(region){
306
307 case BARREL :
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
321 case ENDCAP :
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
335 case CRACK :
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
348 default :
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 // Fill. First argument is the tool name, all others are the variables to be histogramed
358 }
359
360 np = mynp;
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.
#define ATH_MSG_WARNING(x)
#define ATH_MSG_DEBUG(x)
virtual StatusCode initialize() override
initialize
SG::ReadHandle< xAOD::EventInfo > GetEventInfo(const EventContext &) const
Return a ReadHandle for an EventInfo object (get run/event numbers, etc.)
AthMonitorAlgorithm(const std::string &name, ISvcLocator *pSvcLocator)
Constructor.
SG::ReadHandleKey< xAOD::ElectronContainer > m_ParticleContainerKey
StatusCode fillHistograms(const EventContext &ctx) const override
adds event to the monitoring histograms
Gaudi::Property< std::string > m_RecoName
Regions GetRegion(Float_t eta) const
virtual StatusCode initialize() override
initialize
SG::ReadDecorHandleKeyArray< xAOD::ElectronContainer > m_ElectronIsolationKey
MonitorElectronAlgorithm(const std::string &name, ISvcLocator *pSvcLocator)
Declare a monitored scalar variable.
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.
Generic monitoring tool for athena components.
@ 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
Definition EgammaEnums.h:81
@ e237
uncalibrated energy (sum of cells) of the middle sampling in a rectangle of size 3x7
Definition EgammaEnums.h:78
@ 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::...
Definition EgammaEnums.h:49
@ e233
uncalibrated energy (sum of cells) of the middle sampling in a rectangle of size 3x3 (in cell units e...
Definition EgammaEnums.h:69
@ 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].
Extra patterns decribing particle interation process.