22 |
|
#include "MitCommon/MathTools/interface/MathUtils.h" |
23 |
|
#include "MitPhysics/Utils/interface/ElectronTools.h" |
24 |
|
|
25 |
+ |
// for Rho definitons |
26 |
+ |
#include "MitPhysics/Utils/interface/RhoUtilities.h" |
27 |
+ |
|
28 |
|
class TRandom3; |
29 |
|
namespace TMVA { |
30 |
|
class Reader; |
44 |
|
kIDIsoCombined, // ID variables , PFIso03 , PFIso04 |
45 |
|
kIDEGamma2012TrigV0, // EGamma certified (Spring 2012) ID-only MVA |
46 |
|
kIDEGamma2012NonTrigV0, // EGamma certified (Spring 2012) ID-only MVA |
47 |
< |
kIsoRingsV0 // Isolation MVA with IsoRings as input |
47 |
> |
kIDEGamma2012NonTrigV1, // EGamma certified (Spring 2012) ID-only MVA, "official" version |
48 |
> |
kIsoRingsV0, // Isolation MVA with IsoRings as input |
49 |
> |
kIDHWW2012TrigV0 // HWW certified (Spring 2012) ID-only MVA |
50 |
|
}; |
51 |
|
|
52 |
|
|
53 |
|
void Initialize( std::string methodName, |
54 |
|
std::string weightsfile, |
55 |
< |
ElectronIDMVA::MVAType type); |
55 |
> |
ElectronIDMVA::MVAType type, |
56 |
> |
RhoUtilities::RhoType theRhoType = RhoUtilities::DEFAULT); |
57 |
|
void Initialize( std::string methodName, |
58 |
|
ElectronIDMVA::MVAType type, |
59 |
|
Bool_t useBinnedVersion, |
60 |
< |
std::vector<std::string> weightsfiles ); |
60 |
> |
std::vector<std::string> weightsfiles, |
61 |
> |
RhoUtilities::RhoType theRhoType = RhoUtilities::DEFAULT); |
62 |
|
void Initialize(TString methodName, |
63 |
|
TString Subdet0Pt10To20Weights , |
64 |
|
TString Subdet1Pt10To20Weights , |
66 |
|
TString Subdet0Pt20ToInfWeights, |
67 |
|
TString Subdet1Pt20ToInfWeights, |
68 |
|
TString Subdet2Pt20ToInfWeights, |
69 |
< |
ElectronIDMVA::MVAType type ); |
69 |
> |
ElectronIDMVA::MVAType type, |
70 |
> |
RhoUtilities::RhoType theRhoType = RhoUtilities::DEFAULT); |
71 |
|
|
72 |
|
Bool_t IsInitialized() const { return fIsInitialized; } |
73 |
|
void bindVariables(); |
134 |
|
Double_t EleNeutralHadronIso04, |
135 |
|
Double_t EleGammaIso04, |
136 |
|
Bool_t printDebug = kFALSE ); |
137 |
< |
|
137 |
> |
Double_t MVAValue_IsoRings( Double_t ElePt, |
138 |
> |
Double_t EleSCEta, |
139 |
> |
Double_t ChargedIso_DR0p0To0p1, |
140 |
> |
Double_t ChargedIso_DR0p1To0p2, |
141 |
> |
Double_t ChargedIso_DR0p2To0p3, |
142 |
> |
Double_t ChargedIso_DR0p3To0p4, |
143 |
> |
Double_t ChargedIso_DR0p4To0p5, |
144 |
> |
Double_t GammaIso_DR0p0To0p1, |
145 |
> |
Double_t GammaIso_DR0p1To0p2, |
146 |
> |
Double_t GammaIso_DR0p2To0p3, |
147 |
> |
Double_t GammaIso_DR0p3To0p4, |
148 |
> |
Double_t GammaIso_DR0p4To0p5, |
149 |
> |
Double_t NeutralHadronIso_DR0p0To0p1, |
150 |
> |
Double_t NeutralHadronIso_DR0p1To0p2, |
151 |
> |
Double_t NeutralHadronIso_DR0p2To0p3, |
152 |
> |
Double_t NeutralHadronIso_DR0p3To0p4, |
153 |
> |
Double_t NeutralHadronIso_DR0p4To0p5, |
154 |
> |
Bool_t printDebug = kFALSE); |
155 |
> |
Double_t MVAValue_IDNonTrig( Double_t ElePt, |
156 |
> |
Double_t EleSCEta, |
157 |
> |
Double_t EleFBrem, |
158 |
> |
Double_t EleKFTrkChiSqr, |
159 |
> |
Double_t EleKFTrkNHits, |
160 |
> |
Double_t EleGsfTrackChi2OverNdof, |
161 |
> |
Double_t EleDEtaIn, |
162 |
> |
Double_t EleDPhiIn, |
163 |
> |
Double_t EledEtaCalo, |
164 |
> |
Double_t EleSigmaIEtaIEta, |
165 |
> |
Double_t EleSigmaIPhiIPhi, |
166 |
> |
Double_t EleSCEtaWidth, |
167 |
> |
Double_t EleSCPhiWidth, |
168 |
> |
Double_t EleE1x5OverE5x5, |
169 |
> |
Double_t EleR9, |
170 |
> |
Double_t EleHoverE, |
171 |
> |
Double_t EleEOverP, |
172 |
> |
Double_t EleOneOverEMinusOneOverP, |
173 |
> |
Double_t EleESeedClusterOverPout, |
174 |
> |
Double_t ElePreShowerOverRaw, |
175 |
> |
Bool_t printDebug = kFALSE); |
176 |
|
|
177 |
|
protected: |
178 |
|
std::vector<TMVA::Reader*> fTMVAReader; |
181 |
|
MVAType fMVAType; |
182 |
|
Bool_t fUseBinnedVersion; |
183 |
|
UInt_t fNMVABins; |
184 |
+ |
RhoUtilities::RhoType fTheRhoType; |
185 |
|
|
186 |
|
Float_t fMVAVar_ElePt; |
187 |
|
Float_t fMVAVar_EleEta; |