00001
00002
00003
00004 #ifndef __TPHOTONISEMSELECTOR__
00005 #define __TPHOTONISEMSELECTOR__
00006
00019
00020 #include <TString.h>
00021
00022
00023 #include "PATCore/TAccept.h"
00024 #include "PATCore/TSelectorToolBase.h"
00025 #include "ElectronPhotonSelectorTools/egammaPIDdefs.h"
00026 #include "AsgTools/AsgMessaging.h"
00027
00028 #include <vector>
00029
00030
00031 class AsgPhotonIsEMSelector;
00032
00033 namespace Root {
00034 class TPhotonIsEMSelector : public TSelectorToolBase,public asg::AsgMessaging
00035 {
00036
00037 friend class ::AsgPhotonIsEMSelector;
00038
00039
00040 public:
00042 TPhotonIsEMSelector(const char* name="TPhotonIsEMSelector");
00043
00045 ~TPhotonIsEMSelector();
00046
00047
00049 int initialize();
00050
00052 inline int finalize() { return 1; };
00053
00054
00056 const Root::TAccept& accept(
00057
00058 float eta2,
00059
00060 double et,
00061
00062 float Rhad1,
00063
00064 float Rhad,
00065
00066 float e277,
00067
00068 float Reta,
00069
00070 float Rphi,
00071
00072 float weta2c,
00073
00074 float f1,
00075
00076 float Eratio,
00077
00078 float DeltaE,
00079
00080
00081
00082 float weta1c,
00083
00084 float wtot,
00085
00086 float fracm,
00087
00088 float f3,
00089
00090 double ep,
00091
00092 bool isConversion) ;
00093
00094
00095 unsigned int calcIsEm(
00096
00097 float eta2,
00098
00099 double et,
00100
00101 float Rhad1,
00102
00103 float Rhad,
00104
00105 float e277,
00106
00107 float Reta,
00108
00109 float Rphi,
00110
00111 float weta2c,
00112
00113 float f1,
00114
00115 float Eratio,
00116
00117 float DeltaE,
00118
00119
00120
00121 float weta1c,
00122
00123 float wtot,
00124
00125 float fracm,
00126
00127 float f3,
00128
00129 double ep,
00130
00131 bool isConversion ) const ;
00132
00134 unsigned int calocuts_photonsConverted(
00135
00136 float eta2,
00137
00138 double et,
00139
00140 float Rhad1,
00141 float Rhad,
00142
00143 float e277,
00144
00145 float Reta,
00146 float Rphi,
00147
00148 float weta2c,
00149
00150 float f1,
00151
00152 float Eratio,
00153
00154 float DeltaE,
00155
00156
00157
00158 float weta1c,
00159
00160 float wtot,
00161
00162 float fracm,
00163
00164 float f3,
00165
00166 double ep,
00167 unsigned int iflag) const;
00168
00170 unsigned int calocuts_photonsNonConverted(
00171
00172 float eta2,
00173
00174 double et,
00175
00176 float Rhad1,
00177 float Rhad,
00178
00179 float e277,
00180
00181 float Reta,
00182 float Rphi,
00183
00184 float weta2c,
00185
00186 float f1,
00187
00188 float Eratio,
00189
00190 float DeltaE,
00191
00192
00193
00194 float weta1c,
00195
00196 float wtot,
00197
00198 float fracm,
00199
00200 float f3,
00201 unsigned int iflag) const;
00202
00203
00204 unsigned int isEM() const {return m_isEM; };
00205
00206
00207
00209
00211
00213 unsigned int isEMMask;
00214
00215
00217 bool forceConvertedPhotonPID;
00219 bool forceNonConvertedPhotonPID;
00220
00221
00222
00223
00224
00226 std::vector<float> CutBinEta_photonsNonConverted;
00228 std::vector<float> CutBinEnergy_photonsNonConverted;
00230 std::vector<float> e277_photonsNonConverted;
00232 std::vector<float> CutHadLeakage_photonsNonConverted;
00234 std::vector<float> Reta37_photonsNonConverted;
00236 std::vector<float> Rphi33_photonsNonConverted;
00238 std::vector<float> weta2_photonsNonConverted;
00239
00241 std::vector<float> CutBinEtaStrips_photonsNonConverted;
00243 std::vector<float> CutBinEnergyStrips_photonsNonConverted;
00245 std::vector<float> f1_photonsNonConverted;
00247
00249 std::vector<float> deltae_photonsNonConverted;
00251 std::vector<float> DEmaxs1_photonsNonConverted;
00253 std::vector<float> wtot_photonsNonConverted;
00255 std::vector<float> fracm_photonsNonConverted;
00257 std::vector<float> w1_photonsNonConverted;
00259 std::vector<float> CutF3_photonsNonConverted;
00260
00261
00262
00263
00265 std::vector<float> CutBinEta_photonsConverted;
00267 std::vector<float> CutBinEnergy_photonsConverted;
00269 std::vector<float> e277_photonsConverted;
00271 std::vector<float> CutHadLeakage_photonsConverted;
00273 std::vector<float> Reta37_photonsConverted;
00275 std::vector<float> Rphi33_photonsConverted;
00277 std::vector<float> weta2_photonsConverted;
00278
00280 std::vector<float> CutBinEtaStrips_photonsConverted;
00282 std::vector<float> CutBinEnergyStrips_photonsConverted;
00284 std::vector<float> f1_photonsConverted;
00286
00288 std::vector<float> deltae_photonsConverted;
00290 std::vector<float> DEmaxs1_photonsConverted;
00292 std::vector<float> wtot_photonsConverted;
00294 std::vector<float> fracm_photonsConverted;
00296 std::vector<float> w1_photonsConverted;
00298 std::vector<float> CutminEp_photonsConverted;
00300 std::vector<float> CutmaxEp_photonsConverted;
00302 std::vector<float> CutF3_photonsConverted;
00303
00304
00305
00306
00307 private:
00308
00309
00310 void setIsEM(unsigned int isEM) { m_isEM = isEM; };
00311 const Root::TAccept& fillAccept();
00312
00313 bool CheckVar(std::vector<float> vec, int choice) const;
00314 bool CheckVar(std::vector<int> vec, int choice) const;
00315
00316 unsigned int m_isEM;
00317
00318
00319
00321 int m_cutPositionClusterEtaRange_Photon;
00323 int m_cutPositionClusterBackEnergyFraction_Photon;
00325 int m_cutPositionClusterHadronicLeakage_Photon;
00327 int m_cutPositionClusterMiddleEnergy_Photon;
00329 int m_cutPositionClusterMiddleEratio37_Photon;
00331 int m_cutPositionClusterMiddleEratio33_Photon;
00333 int m_cutPositionClusterMiddleWidth_Photon;
00335 int m_cutPositionClusterStripsEratio_Photon;
00337
00339 int m_cutPositionClusterStripsDeltaE_Photon;
00341 int m_cutPositionClusterStripsWtot_Photon;
00343 int m_cutPositionClusterStripsFracm_Photon;
00345 int m_cutPositionClusterStripsWeta1c_Photon;
00347 int m_cutPositionClusterStripsDEmaxs1_Photon;
00349 int m_cutPositionTrackMatchEoverP_Photon;
00351 int m_cutPositionAmbiguityResolution_Photon;
00353 int m_cutPositionIsolation_Photon;
00355 int m_cutPositionClusterIsolation_Photon;
00357 int m_cutPositionTrackIsolation_Photon;
00358
00359
00360
00362 const TString m_cutNameClusterEtaRange_Photon;
00364 const TString m_cutNameClusterBackEnergyFraction_Photon;
00366 const TString m_cutNameClusterHadronicLeakage_Photon;
00368 const TString m_cutNameClusterMiddleEnergy_Photon;
00370 const TString m_cutNameClusterMiddleEratio37_Photon;
00372 const TString m_cutNameClusterMiddleEratio33_Photon;
00374 const TString m_cutNameClusterMiddleWidth_Photon;
00376 const TString m_cutNameClusterStripsEratio_Photon;
00378
00380 const TString m_cutNameClusterStripsDeltaE_Photon;
00382 const TString m_cutNameClusterStripsWtot_Photon;
00384 const TString m_cutNameClusterStripsFracm_Photon;
00386 const TString m_cutNameClusterStripsWeta1c_Photon;
00388 const TString m_cutNameClusterStripsDEmaxs1_Photon;
00390 const TString m_cutNameTrackMatchEoverP_Photon;
00392 const TString m_cutNameAmbiguityResolution_Photon;
00394 const TString m_cutNameIsolation_Photon;
00396 const TString m_cutNameClusterIsolation_Photon;
00398 const TString m_cutNameTrackIsolation_Photon;
00399
00400 };
00401
00402 }
00403
00404 #endif