ATLAS Offline Software
Loading...
Searching...
No Matches
TPhotonIsEMSelector.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
3*/
4
5
6// Dear emacs, this is -*-c++-*-
7
8#ifndef __TPHOTONISEMSELECTOR__
9#define __TPHOTONISEMSELECTOR__
10
11
23
24
25// Include the return object and the base class
26#include "PATCore/AcceptInfo.h"
27#include "PATCore/AcceptData.h"
31
32#include <vector>
33#include <string>
34
35
37
38namespace Root {
40
41 friend class ::AsgPhotonIsEMSelector;
42
43
44 public:
46 TPhotonIsEMSelector(const char *name = "TPhotonIsEMSelector");
47
50
51 // Main methods
53 StatusCode initialize();
54
57 // eta position in second sampling
58 float eta2,
59 // transverse energy in calorimeter (using eta position in second sampling)
60 double et,
61 // transverse energy in 1st scintillator of hadronic calorimeter/ET
62 float Rhad1,
63 // transverse energy in hadronic calorimeter/ET
64 float Rhad,
65 // E(7*7) in 2nd sampling
66 float e277,
67 // E(3*7)/E(7*7) in 2nd sampling
68 float Reta,
69 // E(3*3)/E(3*7) in 2nd sampling
70 float Rphi,
71 // shower width in 2nd sampling
72 float weta2c,
73 // fraction of energy reconstructed in strips
74 float f1,
75 // (E of 1st max in strips-E of 2nd max)/(E of 1st max+E of 2nd max)
76 float Eratio,
77 // E(2nd max)-E(min) in strips
78 float DeltaE,
79 // E of 2nd max between max and min in strips
80 // float emax2,
81 // shower width in 3 strips in 1st sampling
82 float weta1c,
83 // total shower width in strips
84 float wtot,
85 // E(+/-3)-E(+/-1)/E(+/-1)
86 float fracm,
87 // fraction of energy reconstructed in the 3rd sampling
88 float f3,
89 // E/p
90 double ep,
91 // is it a conversion
92 bool isConversion,
93 // pileup
94 float mu) ;
95
96
99
100 // calculate the isEM. (Used internally by accept)
101 unsigned int calcIsEm(
102 // eta position in second sampling
103 float eta2,
104 // transverse energy in calorimeter (using eta position in second sampling)
105 double et,
106 // transverse energy in 1st scintillator of hadronic calorimeter/ET
107 float Rhad1,
108 // transverse energy in hadronic calorimeter/ET
109 float Rhad,
110 // E(7*7) in 2nd sampling
111 float e277,
112 // E(3*7)/E(7*7) in 2nd sampling
113 float Reta,
114 // E(3*3)E(3*7) in 2nd sampling
115 float Rphi,
116 // shower width in 2nd sampling
117 float weta2c,
118 // fraction of energy reconstructed in strips
119 float f1,
120 // (E of 1st max in strips-E of 2nd max)/(E of 1st max+E of 2nd max)
121 float Eratio,
122 // E(2nd max)-E(min) in strips
123 float DeltaE,
124 // shower width in 3 strips in 1st sampling
125 // E of 2nd max between max and min in strips
126 // shower width in 3 strips in 1st sampling
127 float weta1c,
128 // total shower width in strips
129 float wtot,
130 // E(+/-3)-E(+/-1)/E(+/-1)
131 float fracm,
132 // fraction of energy reconstructed in the 3rd sampling
133 float f3,
134 // E/p
135 double ep,
136 // is it a conversion
137 bool isConversion,
138 // pileup
139 float mu) const;
140
142 unsigned int calocuts_photonsConverted(
143 // eta position in second sampling
144 float eta2,
145 // transverse energy in calorimeter
146 double et,
147 // hadronic leakage ratios
148 float Rhad1,
149 float Rhad,
150 // E(7*7) in 2nd sampling
151 float e277,
152 // ratios
153 float Reta,
154 float Rphi,
155 // shower width in 2nd sampling
156 float weta2c,
157 // fraction of energy reconstructed in strips
158 float f1,
159 // (Emax1-Emax2)/(Emax1+Emax2)
160 float Eratio,
161 // difference of energy between max and min
162 float DeltaE,
163 // parametrization of E(2nd max)
164 //float deltaemax2,
165 // shower width in 3 strips in 1st sampling
166 float weta1c,
167 // total shower width in strips
168 float wtot,
169 // E(+/-3)-E(+/-1)/E(+/-1)
170 float fracm,
171 // fraction of energy reconstructed in the 3rd sampling
172 float f3,
173 // E/p
174 double ep,
175 //
176 unsigned int iflag,
177 // pileup
178 float mu) const;
179
181 unsigned int calocuts_photonsNonConverted(
182 // eta position in second sampling
183 float eta2,
184 // transverse energy in calorimeter
185 double et,
186 // hadronic leakage ratios
187 float Rhad1,
188 float Rhad,
189 // E(7*7) in 2nd sampling
190 float e277,
191 // ratios
192 float Reta,
193 float Rphi,
194 // shower width in 2nd sampling
195 float weta2c,
196 // fraction of energy reconstructed in strips
197 float f1,
198 // (Emax1-Emax2)/(Emax1+Emax2)
199 float Eratio,
200 // difference of energy between max and min
201 float DeltaE,
202 // parametrization of E(2nd max)
203 //float deltaemax2,
204 // shower width in 3 strips in 1st sampling
205 float weta1c,
206 // total shower width in strips
207 float wtot,
208 // E(+/-3)-E(+/-1)/E(+/-1)
209 float fracm,
210 // fraction of energy reconstructed in the 3rd sampling
211 float f3,
212 //
213 unsigned int iflag,
214 // pileup
215 float mu) const;
216
218 // Public members (the cut values)
220
222 unsigned int m_isEMMask;
223
224
229
230
231 //
232 // selection for non-converted photons
233 //
241 std::vector<float> m_e277_photonsNonConverted;
249 std::vector<float> m_weta2_photonsNonConverted;
250
258 std::vector<float> m_f1_photonsNonConverted;
260 // std::vector<float> emax2r_photonsNonConverted;
266 std::vector<float> m_wtot_photonsNonConverted;
268 std::vector<float> m_fracm_photonsNonConverted;
270 std::vector<float> m_w1_photonsNonConverted;
272 std::vector<float> m_cutF3_photonsNonConverted;
273
274 //
275 // selection for converted photons
276 //
282 std::vector<float> m_cutBinMu_photonsConverted;
284 std::vector<float> m_e277_photonsConverted;
288 std::vector<float> m_Reta37_photonsConverted;
290 std::vector<float> m_Rphi33_photonsConverted;
292 std::vector<float> m_weta2_photonsConverted;
293
301 std::vector<float> m_f1_photonsConverted;
303 // std::vector<float> emax2r_photonsConverted;
305 std::vector<float> m_deltae_photonsConverted;
307 std::vector<float> m_DEmaxs1_photonsConverted;
309 std::vector<float> m_wtot_photonsConverted;
311 std::vector<float> m_fracm_photonsConverted;
313 std::vector<float> m_w1_photonsConverted;
315 std::vector<float> m_cutminEp_photonsConverted;
317 std::vector<float> m_cutmaxEp_photonsConverted;
319 std::vector<float> m_cutF3_photonsConverted;
320
322 const asg::AcceptInfo &getAcceptInfo() const { return m_acceptInfo; }
323
324 // Private members
325 private:
326
327 // would ideally be protected: only to be used by ARASelector
328 asg::AcceptData fillAccept(unsigned int isEM) const;
329
330 template<typename T>
331 bool checkVar(const std::vector <T> &vec, int choice) const;
332
335
336 // the cut positions
337
355 // int m_cutPositionClusterStripsDeltaEmax2_Photon;
376
377 // the cut names
378
396 // const std::string m_cutNameClusterStripsDeltaEmax2_Photon;
412 const std::string m_cutNameIsolation_Photon;
417
418 }; // End: class definition
419
420} // End: namespace Root
421
422#endif
std::vector< size_t > vec
Photon isEM selector.
std::vector< float > m_cutBinEnergy_photonsNonConverted
range of ET bins for photon-ID
std::vector< float > m_cutHadLeakage_photonsConverted
Cut on hadronic leakage for photons.
int m_cutPositionTrackIsolation_Photon
tracker isolation for photon selection
const std::string m_cutNameClusterIsolation_Photon
calorimetric isolation for photon selection
std::vector< float > m_e277_photonsConverted
Cut in E277 for photons.
asg::AcceptData fillAccept(unsigned int isEM) const
std::vector< float > m_DEmaxs1_photonsConverted
cut on (Emax1-Emax2)/(Emax1-Emax2) for photons
int m_cutPositionClusterBackEnergyFraction_Photon
energy fraction in the third layer
const std::string m_cutNameClusterStripsDeltaE_Photon
energy of 2nd maximum in 1st sampling ~e2tsts1/(1000+const_lumi*et)
std::vector< float > m_w1_photonsNonConverted
Cut on width in 3 strips for photons.
bool m_forceNonConvertedPhotonPID
boolean to force to test non converted photon hypothesis
std::vector< float > m_deltae_photonsNonConverted
Cut on Demax2 for photons.
const std::string m_cutNameClusterMiddleEratio33_Photon
energy ratio in 2nd sampling for photons
bool m_forceConvertedPhotonPID
boolean to force to test converted photon hypothesis
int m_cutPositionClusterStripsFracm_Photon
shower shape in shower core 1st sampling
std::vector< float > m_cutBinEta_photonsNonConverted
range of eta bins for photon-ID
int m_cutPositionClusterHadronicLeakage_Photon
cluster leakage into the hadronic calorimeter
std::vector< float > m_cutBinEtaStrips_photonsNonConverted
binning in eta in strips for photons
std::vector< float > m_cutminEp_photonsConverted
cut min on E/p for e-ID
int m_cutPositionClusterStripsEratio_Photon
fraction of energy found in 1st sampling
std::vector< float > m_f1_photonsNonConverted
Cut on fraction of energy rec.
StatusCode initialize()
Initialize this class.
int m_cutPositionClusterIsolation_Photon
calorimetric isolation for photon selection
std::vector< float > m_cutHadLeakage_photonsNonConverted
Cut on hadronic leakage for photons.
unsigned int m_isEMMask
which subset of cuts to apply
~TPhotonIsEMSelector()
Standard destructor.
asg::AcceptInfo m_acceptInfo
Accept info.
int m_cutPositionClusterEtaRange_Photon
cluster eta range
TPhotonIsEMSelector(const char *name="TPhotonIsEMSelector")
Standard constructor.
std::vector< float > m_Reta37_photonsConverted
ratio E237/E277
std::vector< float > m_Reta37_photonsNonConverted
ratio E237/E277
std::vector< float > m_fracm_photonsConverted
Cut on fraction of energy outside core for photons.
std::vector< float > m_cutBinEnergy_photonsConverted
range of ET bins for photon-ID
std::vector< float > m_f1_photonsConverted
Cut on fraction of energy rec.
std::vector< float > m_cutBinEnergyStrips_photonsNonConverted
std::vector< float > m_wtot_photonsNonConverted
Cut on total width in strips for photons.
std::vector< float > m_wtot_photonsConverted
Cut on total width in strips for photons.
int m_cutPositionClusterStripsWeta1c_Photon
shower width weighted by distance from the maximum one
std::vector< float > m_cutBinMuStrips_photonsNonConverted
binning in pielup in strips for photons
int m_cutPositionAmbiguityResolution_Photon
ambiguity resolution for photon (vs electron)
const std::string m_cutNameClusterEtaRange_Photon
cluster eta range
std::vector< float > m_DEmaxs1_photonsNonConverted
cut on (Emax1-Emax2)/(Emax1-Emax2) for photons
std::vector< float > m_cutBinMu_photonsNonConverted
range of mu bins for photon-ID
std::vector< float > m_w1_photonsConverted
Cut on width in 3 strips for photons.
std::vector< float > m_fracm_photonsNonConverted
Cut on fraction of energy outside core for photons.
const std::string m_cutNameClusterStripsWtot_Photon
shower width in 1st sampling
int m_cutPositionClusterMiddleEnergy_Photon
energy in 2nd sampling (e277)
int m_cutPositionClusterStripsDeltaE_Photon
energy of 2nd maximum in 1st sampling ~e2tsts1/(1000+const_lumi*et)
std::vector< float > m_cutBinMu_photonsConverted
range of mu bins for photon-ID
std::vector< float > m_deltae_photonsConverted
Cut on Demax2 for photons.
std::vector< float > m_Rphi33_photonsNonConverted
ratio E233/E237
const std::string m_cutNameClusterMiddleWidth_Photon
width in the second sampling
const asg::AcceptInfo & getAcceptInfo() const
accesss to the accept info object
const std::string m_cutNameClusterStripsDEmaxs1_Photon
difference between max and 2nd max in strips
std::vector< float > m_cutBinEta_photonsConverted
range of eta bins for photon-ID
std::vector< float > m_cutBinMuStrips_photonsConverted
binning in pileup in strips for photons
std::vector< float > m_weta2_photonsNonConverted
Cut on width in 2nd sampling for photons.
std::vector< float > m_cutF3_photonsNonConverted
cut values for cut on f3 or f3core
int m_cutPositionClusterMiddleWidth_Photon
width in the second sampling
std::vector< float > m_cutmaxEp_photonsConverted
cut max on E/p for e-ID
const std::string m_cutNameClusterMiddleEnergy_Photon
energy in 2nd sampling (e277)
std::vector< float > m_cutBinEnergyStrips_photonsConverted
std::vector< float > m_weta2_photonsConverted
Cut on width in 2nd sampling for photons.
asg::AcceptData accept() const
Return dummy accept with only info.
const std::string m_cutNameClusterHadronicLeakage_Photon
cluster leakage into the hadronic calorimeter
int m_cutPositionTrackMatchEoverP_Photon
energy-momentum match for photon selection
int m_cutPositionClusterStripsWtot_Photon
shower width in 1st sampling
const std::string m_cutNameTrackIsolation_Photon
tracker isolation for photon selection
const std::string m_cutNameTrackMatchEoverP_Photon
energy-momentum match for photon selection
int m_cutPositionClusterMiddleEratio37_Photon
energy ratio in 2nd sampling
std::vector< float > m_e277_photonsNonConverted
Cut in E277 for photons.
const std::string m_cutNameClusterMiddleEratio37_Photon
energy ratio in 2nd sampling
int m_cutPositionClusterStripsDEmaxs1_Photon
difference between max and 2nd max in strips
const std::string m_cutNameClusterStripsEratio_Photon
fraction of energy found in 1st sampling
unsigned int calcIsEm(float eta2, double et, float Rhad1, float Rhad, float e277, float Reta, float Rphi, float weta2c, float f1, float Eratio, float DeltaE, float weta1c, float wtot, float fracm, float f3, double ep, bool isConversion, float mu) const
const std::string m_cutNameIsolation_Photon
isolation
unsigned int calocuts_photonsConverted(float eta2, double et, float Rhad1, float Rhad, float e277, float Reta, float Rphi, float weta2c, float f1, float Eratio, float DeltaE, float weta1c, float wtot, float fracm, float f3, double ep, unsigned int iflag, float mu) const
Apply calorimeter cuts for selection of converted photons.
std::vector< float > m_Rphi33_photonsConverted
ratio E233/E237
unsigned int calocuts_photonsNonConverted(float eta2, double et, float Rhad1, float Rhad, float e277, float Reta, float Rphi, float weta2c, float f1, float Eratio, float DeltaE, float weta1c, float wtot, float fracm, float f3, unsigned int iflag, float mu) const
Apply calorimeter cuts for selection of non converted photons.
const std::string m_cutNameClusterStripsFracm_Photon
shower shape in shower core 1st sampling
bool checkVar(const std::vector< T > &vec, int choice) const
Method that check vector size.
int m_cutPositionClusterMiddleEratio33_Photon
energy ratio in 2nd sampling for photons
const std::string m_cutNameClusterBackEnergyFraction_Photon
energy fraction in the third layer
std::vector< float > m_cutBinEtaStrips_photonsConverted
binning in eta in strips for photons
const std::string m_cutNameAmbiguityResolution_Photon
ambiguity resolution for photon (vs electron)
const std::string m_cutNameClusterStripsWeta1c_Photon
shower width weighted by distance from the maximum one
std::vector< float > m_cutF3_photonsConverted
cut values for cut on f3 or f3core
Class mimicking the AthMessaging class from the offline software.
Extra patterns decribing particle interation process.