ATLAS Offline Software
Loading...
Searching...
No Matches
MonitorPhotonAlgorithm.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
10MonitorPhotonAlgorithm::MonitorPhotonAlgorithm( 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_PhotonIsolationKey.initialize() );
20 return StatusCode::SUCCESS;
21}
22
23StatusCode MonitorPhotonAlgorithm::fillHistograms( const EventContext& ctx ) const {
24 using namespace Monitored;
25
26 // Only monitor good LAr Events :
27
29 if (error_state==xAOD::EventInfo::Error) {
30 ATH_MSG_DEBUG("LAr event data integrity error");
31 return StatusCode::SUCCESS;
32 }
33 //
34 // now, fill the Photon information
35 // get the Photon container
36
38 ATH_CHECK(photons.isValid());
39
40 // Specific Photon variables to be monitored
41
42 u_int16_t mylb = GetEventInfo(ctx)->lumiBlock();
43
44 // Event variables to be monitored
45 auto lbNCandidates = Monitored::Scalar<u_int16_t>("LBEvoN",0);
46
47 // Particle variables to be monitored
48 auto np = Monitored::Scalar<int>("N",0.0);
49 auto et = Monitored::Scalar<Float_t>("Et",0.0);
50 auto eta = Monitored::Scalar<Float_t>("Eta",0.0);
51 auto phi = Monitored::Scalar<Float_t>("Phi",0.0);
52 auto is_pt_gt_2_5gev = Monitored::Scalar<bool>("is_pt_gt_2_5gev",false);
53 auto is_pt_gt_2_5gev_barrel = Monitored::Scalar<bool>("is_pt_gt_2_5gevBARREL",false);
54 auto is_pt_gt_2_5gev_endcap = Monitored::Scalar<bool>("is_pt_gt_2_5gevENDCAP",false);
55 auto is_pt_gt_2_5gev_crack = Monitored::Scalar<bool>("is_pt_gt_2_5gevCRACK",false);
56
57 auto is_pt_gt_4gev = Monitored::Scalar<bool>("is_pt_gt_4gev",false);
58 auto is_pt_gt_4gev_barrel = Monitored::Scalar<bool>("is_pt_gt_4gevBARREL",false);
59 auto is_pt_gt_4gev_endcap = Monitored::Scalar<bool>("is_pt_gt_4gevENDCAP",false);
60 auto is_pt_gt_4gev_crack = Monitored::Scalar<bool>("is_pt_gt_4gevCRACK",false);
61
62 auto is_pt_gt_20gev = Monitored::Scalar<bool>("is_pt_gt_20gev",false);
63 auto is_pt_gt_20gev_crack = Monitored::Scalar<bool>("is_pt_gt_20gevCRACK",false);
64 auto is_pt_gt_20gev_barrel = Monitored::Scalar<bool>("is_pt_gt_20gevBARREL",false);
65 auto is_pt_gt_20gev_endcap = Monitored::Scalar<bool>("is_pt_gt_20gevENDCAP",false);
66
67 auto time = Monitored::Scalar<Float_t>("Time",0.0);
68 auto topoetcone40 = Monitored::Scalar<Float_t>("TopoEtCone40",0.0);
69 auto ptcone20 = Monitored::Scalar<Float_t>("PtCone20",0.0);
70
71 // Particle variables per Region
72
73 // BARREL
74 auto et_barrel = Monitored::Scalar<Float_t>("EtinBARREL",0.0);
75 auto eta_barrel = Monitored::Scalar<Float_t>("EtainBARREL",0.0);
76 auto phi_barrel = Monitored::Scalar<Float_t>("PhiinBARREL",0.0);
77 auto time_barrel = Monitored::Scalar<Float_t>("TimeinBARREL",0.0);
78 auto ehad1_barrel = Monitored::Scalar<Float_t>("Ehad1inBARREL",0.0);
79 auto eoverp_barrel = Monitored::Scalar<Float_t>("EoverPinBARREL",0.0);
80 auto coreem_barrel = Monitored::Scalar<Float_t>("CoreEMinBARREL",0.0);
81 auto f0_barrel = Monitored::Scalar<Float_t>("F0inBARREL",0.0);
82 auto f1_barrel = Monitored::Scalar<Float_t>("F1inBARREL",0.0);
83 auto f2_barrel = Monitored::Scalar<Float_t>("F2inBARREL",0.0);
84 auto f3_barrel = Monitored::Scalar<Float_t>("F3inBARREL",0.0);
85 auto re233e237_barrel = Monitored::Scalar<Float_t>("Re233e237inBARREL",0.0);
86 auto re237e277_barrel = Monitored::Scalar<Float_t>("Re237e277inBARREL",0.0);
87
88 // ENDCAP
89 auto et_endcap = Monitored::Scalar<Float_t>("EtinENDCAP",0.0);
90 auto eta_endcap = Monitored::Scalar<Float_t>("EtainENDCAP",0.0);
91 auto phi_endcap = Monitored::Scalar<Float_t>("PhiinENDCAP",0.0);
92 auto time_endcap = Monitored::Scalar<Float_t>("TimeinENDCAP",0.0);
93 auto ehad1_endcap = Monitored::Scalar<Float_t>("Ehad1inENDCAP",0.0);
94 auto eoverp_endcap = Monitored::Scalar<Float_t>("EoverPinENDCAP",0.0);
95 auto coreem_endcap = Monitored::Scalar<Float_t>("CoreEMinENDCAP",0.0);
96 auto f0_endcap = Monitored::Scalar<Float_t>("F0inENDCAP",0.0);
97 auto f1_endcap = Monitored::Scalar<Float_t>("F1inENDCAP",0.0);
98 auto f2_endcap = Monitored::Scalar<Float_t>("F2inENDCAP",0.0);
99 auto f3_endcap = Monitored::Scalar<Float_t>("F3inENDCAP",0.0);
100 auto re233e237_endcap = Monitored::Scalar<Float_t>("Re233e237inENDCAP",0.0);
101 auto re237e277_endcap = Monitored::Scalar<Float_t>("Re237e277inENDCAP",0.0);
102
103 // CRACK
104 auto np_crack = Monitored::Scalar<int>("NinCRACK",0.0);
105 auto et_crack = Monitored::Scalar<Float_t>("EtinCRACK",0.0);
106 auto eta_crack = Monitored::Scalar<Float_t>("EtainCRACK",0.0);
107 auto phi_crack = Monitored::Scalar<Float_t>("PhiinCRACK",0.0);
108 auto time_crack = Monitored::Scalar<Float_t>("TimeinCRACK",0.0);
109 auto ehad1_crack = Monitored::Scalar<Float_t>("Ehad1inCRACK",0.0);
110 auto eoverp_crack = Monitored::Scalar<Float_t>("EoverPinCRACK",0.0);
111 auto coreem_crack = Monitored::Scalar<Float_t>("CoreEMinCRACK",0.0);
112 auto f0_crack = Monitored::Scalar<Float_t>("F0inCRACK",0.0);
113 auto f1_crack = Monitored::Scalar<Float_t>("F1inCRACK",0.0);
114 auto f2_crack = Monitored::Scalar<Float_t>("F2inCRACK",0.0);
115 auto f3_crack = Monitored::Scalar<Float_t>("F3inCRACK",0.0);
116 auto re233e237_crack = Monitored::Scalar<Float_t>("Re233e237inCRACK",0.0);
117 auto re237e277_crack = Monitored::Scalar<Float_t>("Re237e277inCRACK",0.0);
118
119 // Specific Photon variables
120
121 auto npconv = Monitored::Scalar<int>("NConv",0.0);
122 auto etconv = Monitored::Scalar<Float_t>("EtConv",0.0);
123 auto etaconv = Monitored::Scalar<Float_t>("EtaConv",0.0);
124 auto phiconv = Monitored::Scalar<Float_t>("PhiConv",0.0);
125
126 auto npunconv = Monitored::Scalar<int>("NUnconv",0.0);
127 auto etunconv = Monitored::Scalar<Float_t>("EtUnconv",0.0);
128 auto etaunconv = Monitored::Scalar<Float_t>("EtaUnconv",0.0);
129 auto phiunconv = Monitored::Scalar<Float_t>("PhiUnconv",0.0);
130
131 auto lb = Monitored::Scalar<u_int16_t>("LB",0);
132
133 auto is_pt_gt_2_5gevandconv = Monitored::Scalar<bool>("is_pt_gt_2_5gevandconv",false);
134 auto is_pt_gt_2_5gevandunconv = Monitored::Scalar<bool>("is_pt_gt_2_5gevandunconv",false);
135
136 auto is_pt_gt_4gevandconv = Monitored::Scalar<bool>("is_pt_gt_4gevandconv",false);
137 auto is_pt_gt_4gevandunconv = Monitored::Scalar<bool>("is_pt_gt_4gevandunconv",false);
138
139 auto is_pt_gt_20gevandconv = Monitored::Scalar<bool>("is_pt_gt_20gevandconv",false);
140 auto is_pt_gt_20gevandunconv = Monitored::Scalar<bool>("is_pt_gt_20gevandunconv",false);
141
142 auto lbevonphotonsunconv = Monitored::Scalar<u_int16_t>("LBEvoNPhotonsUnconv",0);
143 auto lbevonphotonsconv = Monitored::Scalar<u_int16_t>("LBEvoNPhotonsConv",0);
144
145 // Specific Photon variables per Region
146
147 // BARREL
148
149 auto rconv_barrel = Monitored::Scalar<Float_t>("RConvinBARREL",0.0);
150 auto convtype_barrel = Monitored::Scalar<xAOD::EgammaParameters::ConversionType>("ConvTypeinBARREL",nullptr);
151 auto contrkmatch1_barrel = Monitored::Scalar<u_int8_t>("ConvTrkMatch1inBARREL",0);
152 auto contrkmatch2_barrel = Monitored::Scalar<u_int8_t>("ConvTrkMatch2inBARREL",0);
153
154 // ENDCAP
155 auto rconv_endcap = Monitored::Scalar<Float_t>("RConvinENDCAP",0.0);
156 auto convtype_endcap = Monitored::Scalar<xAOD::EgammaParameters::ConversionType>("ConvTypeinENDCAP",nullptr);
157 auto contrkmatch1_endcap = Monitored::Scalar<u_int8_t>("ConvTrkMatch1inENDCAP",0);
158 auto contrkmatch2_endcap = Monitored::Scalar<u_int8_t>("ConvTrkMatch2inENDCAP",0);
159
160 // CRACK
161 auto rconv_crack = Monitored::Scalar<Float_t>("RConvinCRACK",0.0);
162 auto convtype_crack = Monitored::Scalar<xAOD::EgammaParameters::ConversionType>("ConvTypeinCRACK",nullptr);
163 auto contrkmatch1_crack = Monitored::Scalar<u_int8_t>("ConvTrkMatch1inCRACK",0);
164 auto contrkmatch2_crack = Monitored::Scalar<u_int8_t>("ConvTrkMatch2inCRACK",0);
165
166 // Set the values of the monitored variables for the event
167
168 u_int16_t mynp=0;
169 u_int16_t mynpconv = 0;
170 u_int16_t mynpunconv = 0;
171
172 Float_t myet = 0.;
173 Float_t myeta = 0.;
174 Float_t myphi = 0.;
175
176 for (const auto *const p_iter : *photons) {
177 // Check that the electron meets our requirements
178 bool isGood;
179 if (! p_iter->passSelection(isGood,m_RecoName)) {
180 ATH_MSG_WARNING("Misconfiguration: " << m_RecoName << " is not a valid working point for photons");
181 break; // no point in continuing
182 }
183
184 if(isGood) {
185 mynp++;
186 Float_t myetaloc = p_iter->eta();
187 auto regionloc = GetRegion(myetaloc);
188 ATH_MSG_DEBUG("Test photon in region : " << regionloc);
189
190 switch(regionloc){
191 case BARREL :
192 break;
193 case CRACK :
194 break;
195 case ENDCAP :
196 break;
197 default :
198 ATH_MSG_DEBUG("Found a photon out the acceptance region : " << regionloc);
199 break;
200 }
201 }
202 else continue;
203
204 myet = p_iter->pt(); // in MeV (/Gaudi::Units::GeV; // in GeV)
205 myeta = p_iter->eta();
206 myphi = p_iter->phi();
207 et = myet ; eta = myeta ; phi = myphi ;
208
209 bool myis_pt_gt_2_5gev = myet > 2500. ;
210 bool myis_pt_gt_4gev = myet > 4000. ;
211 bool myis_pt_gt_20gev = myet > 20000. ;
212
213 is_pt_gt_2_5gev = myis_pt_gt_2_5gev ;
214 is_pt_gt_4gev = myis_pt_gt_4gev ;
215 is_pt_gt_20gev = myis_pt_gt_20gev ;
216
217 is_pt_gt_4gev_barrel = myis_pt_gt_4gev ;
218 is_pt_gt_4gev_endcap = myis_pt_gt_4gev ;
219 is_pt_gt_4gev_crack = myis_pt_gt_4gev ;
220
221 is_pt_gt_2_5gev_barrel = myis_pt_gt_2_5gev ;
222 is_pt_gt_2_5gev_endcap = myis_pt_gt_2_5gev ;
223 is_pt_gt_2_5gev_crack = myis_pt_gt_2_5gev ;
224
225 is_pt_gt_20gev_barrel = myis_pt_gt_20gev ;
226 is_pt_gt_20gev_endcap = myis_pt_gt_20gev ;
227 is_pt_gt_20gev_crack = myis_pt_gt_20gev ;
228
229 // Isolation Energy
230 Float_t mytopoetcone40 = -999.;
231 p_iter->isolationValue(mytopoetcone40,xAOD::Iso::topoetcone40);
232 topoetcone40 = mytopoetcone40;
233
234 Float_t myptcone20 = -999.;
235 p_iter->isolationValue(myptcone20,xAOD::Iso::ptcone20);
236 ptcone20 = myptcone20;
237
238 Float_t mytime=0.0;
239
240 // Shower shape variable details
241 Float_t myehad1 = 0.0;
242 Float_t myecore = 0.0;
243 Float_t myf0 = 0.0;
244 Float_t myf1 = 0.0;
245 Float_t myf2 = 0.0;
246 Float_t myf3 = 0.0;
247 Float_t e233 = 0.0;
248 Float_t e237 = 0.0;
249 Float_t e277 = 0.0;
250 Float_t myre233e237 = 0.0;
251 Float_t myre237e277 = 0.0;
252
253 p_iter->showerShapeValue(myehad1, xAOD::EgammaParameters::ehad1);
254 p_iter->showerShapeValue(myecore, xAOD::EgammaParameters::ecore);
255
256 p_iter->showerShapeValue(e237, xAOD::EgammaParameters::e237);
257 p_iter->showerShapeValue(e233, xAOD::EgammaParameters::e233);
258 p_iter->showerShapeValue(e277, xAOD::EgammaParameters::e277);
259
260 if (e237!=0) myre233e237 = e233 / e237;
261 if (e277!=0) myre237e277 = e237 / e277;
262
263 // Associated cluster details
264 const xAOD::CaloCluster *aCluster = p_iter->caloCluster();
265 if (aCluster) {
266 mytime = aCluster->time();
267 time = mytime ;
268 // Shower shape variable details
269 double ec = aCluster->et()*cosh(aCluster->eta());
270 if (ec!=0) myf0 = aCluster->energyBE(0)/ec;
271 if (ec!=0) myf1 = aCluster->energyBE(1)/ec;
272 if (ec!=0) myf2 = aCluster->energyBE(2)/ec;
273 if (ec!=0) myf3 = aCluster->energyBE(3)/ec;
274
275 }
276
277 // do specific stuff with photons
278
279 // Conversion details
281 bool isUnconverted = (myconvtype==xAOD::EgammaParameters::ConversionType::unconverted) ;
282
283 if (isUnconverted) {
284 mynpunconv++;
285 etconv = -1.;
286 etaconv = -6.;
287 phiconv = -6.;
288 etunconv = myet;
289 etaunconv = myeta;
290 phiunconv = myphi;
291 }
292 else {
293 mynpconv++;
294 etunconv = -1.;
295 etaunconv = -6.;
296 phiunconv = -6.;
297 etconv = myet;
298 etaconv = myeta;
299 phiconv = myphi;
300 }
301
302 is_pt_gt_2_5gevandconv = myis_pt_gt_2_5gev && !isUnconverted ;
303 is_pt_gt_2_5gevandunconv = myis_pt_gt_2_5gev && isUnconverted ;
304
305 is_pt_gt_4gevandconv = myis_pt_gt_4gev && !isUnconverted ;
306 is_pt_gt_4gevandunconv = myis_pt_gt_4gev && isUnconverted ;
307
308 is_pt_gt_20gevandconv = myis_pt_gt_20gev && !isUnconverted ;
309 is_pt_gt_20gevandunconv = myis_pt_gt_20gev && isUnconverted ;
310
311 lb = mylb;
312 lbevonphotonsconv = mylb;
313 lbevonphotonsunconv = mylb;
314
315 Float_t myrconv = 0.0;
317
318 Float_t mycontrkmatch1 = 0.0;
319 (p_iter)->vertexCaloMatchValue(mycontrkmatch1, xAOD::EgammaParameters::convMatchDeltaPhi1);
320 Float_t mycontrkmatch2 = 0.0;
321 (p_iter)->vertexCaloMatchValue(mycontrkmatch2, xAOD::EgammaParameters::convMatchDeltaPhi2);
322
323 // Fill per region histograms
324 auto region = GetRegion(myeta);
325 switch(region){
326 case BARREL :
327 et_barrel = myet ; eta_barrel = myeta ; phi_barrel = myphi ;
328 time_barrel = mytime; ehad1_barrel = myehad1; coreem_barrel = myecore;
329 f0_barrel = myf0; f1_barrel = myf1; f2_barrel = myf2; f3_barrel = myf3; re233e237_barrel = myre233e237; re237e277_barrel = myre237e277;
330 rconv_barrel = myrconv ; convtype_barrel = myconvtype ; contrkmatch1_barrel = mycontrkmatch1 ; contrkmatch2_barrel = mycontrkmatch2 ;
331 fill("MonitorPhoton", et_barrel,eta_barrel,phi_barrel, time_barrel, ehad1_barrel,coreem_barrel,
332 f0_barrel,f1_barrel,f2_barrel, f3_barrel,re233e237_barrel,re237e277_barrel,
333 rconv_barrel,convtype_barrel,contrkmatch1_barrel,contrkmatch2_barrel,is_pt_gt_4gev_barrel,is_pt_gt_2_5gev_barrel,is_pt_gt_20gev_barrel);
334 break;
335
336 case ENDCAP :
337 et_endcap = myet ; eta_endcap = myeta ; phi_endcap = myphi ;
338 time_endcap = mytime; ehad1_endcap = myehad1; coreem_endcap = myecore;
339 f0_endcap = myf0; f1_endcap = myf1; f2_endcap = myf2; f3_endcap = myf3; re233e237_endcap = myre233e237; re237e277_endcap = myre237e277;
340 rconv_endcap = myrconv ; convtype_endcap = myconvtype ; contrkmatch1_endcap = mycontrkmatch1 ; contrkmatch2_endcap = mycontrkmatch2 ;
341 fill("MonitorPhoton",et_endcap,eta_endcap,phi_endcap,
342 time_endcap, ehad1_endcap,coreem_endcap,
343 f0_endcap,f1_endcap,f2_endcap,f3_endcap,re233e237_endcap,re237e277_endcap,
344 rconv_endcap,convtype_endcap,contrkmatch1_endcap,contrkmatch2_endcap,is_pt_gt_4gev_endcap,is_pt_gt_2_5gev_endcap,is_pt_gt_20gev_endcap);
345 break;
346
347 case CRACK :
348 et_crack = myet ; eta_crack = myeta ; phi_crack = myphi ;
349 time_crack = mytime; ehad1_crack = myehad1; coreem_crack = myecore;
350 f0_crack = myf0; f1_crack = myf1; f2_crack = myf2; f3_crack = myf3; re233e237_crack = myre233e237; re237e277_crack = myre237e277;
351 rconv_crack = myrconv ; convtype_crack = myconvtype ; contrkmatch1_crack = mycontrkmatch1 ; contrkmatch2_crack = mycontrkmatch2 ;
352 fill("MonitorPhoton",et_crack,eta_crack,phi_crack,time_crack, ehad1_crack,coreem_crack,
353 f0_crack,f1_crack,f2_crack,f3_crack,re233e237_crack,re237e277_crack,
354 rconv_crack,convtype_crack,contrkmatch1_crack,contrkmatch2_crack,is_pt_gt_4gev_crack,is_pt_gt_2_5gev_crack,is_pt_gt_20gev_crack);
355 break;
356
357 default :
358 ATH_MSG_DEBUG("found an photon outside the |eta| > 2.47 acceptance");
359 break;
360 }
361 // Fill. First argument is the tool name, all others are the variables to be histogramed
362
363 lb = mylb; lbevonphotonsunconv = mylb ; lbevonphotonsconv = mylb; lbNCandidates = mylb;
364 fill("MonitorPhoton",
365 lbevonphotonsconv,lbevonphotonsunconv,lb,lbNCandidates,
366 et,eta,phi,time,ptcone20,topoetcone40,
367 etconv,etaconv,phiconv,
368 etunconv,etaunconv,phiunconv,
369 is_pt_gt_4gev,is_pt_gt_20gev,is_pt_gt_2_5gev,
370 is_pt_gt_2_5gevandconv,is_pt_gt_2_5gevandunconv,
371 is_pt_gt_4gevandconv,is_pt_gt_4gevandunconv,
372 is_pt_gt_20gevandconv,is_pt_gt_20gevandunconv);
373 }
374
375 np = mynp;
376 npconv = mynpconv;
377 npunconv = mynpunconv;
378
379 fill("MonitorPhoton",np,npconv,npunconv);
380
381 return StatusCode::SUCCESS;
382}
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.
Gaudi::Property< std::string > m_RecoName
Regions GetRegion(Float_t eta) const
SG::ReadHandleKey< xAOD::PhotonContainer > m_ParticleContainerKey
MonitorPhotonAlgorithm(const std::string &name, ISvcLocator *pSvcLocator)
StatusCode fillHistograms(const EventContext &ctx) const override
adds event to the monitoring histograms
SG::ReadDecorHandleKeyArray< xAOD::PhotonContainer > m_PhotonIsolationKey
virtual StatusCode initialize() override
initialize
Declare a monitored scalar variable.
virtual bool isValid() override final
Can the handle be successfully dereferenced?
flt_t time() const
Access cluster time.
virtual double eta() const
The pseudorapidity ( ) 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.
int lb
Definition globals.cxx:23
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.
xAOD::EgammaParameters::ConversionType conversionType(const xAOD::Photon *ph)
return the photon conversion type (see EgammaEnums)
float conversionRadius(const xAOD::Vertex *vx)
return the conversion radius or 9999.
@ convMatchDeltaPhi1
difference between the cluster phi and the phi of the first track of the vertex extrapolated to the s...
@ convMatchDeltaPhi2
difference between the cluster phi and the phi of the second track of the vertex extrapolated to the ...
@ unconverted
unconverted photon
@ 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.
Extra patterns decribing particle interation process.