16 |
|
#include "MitAna/DataTree/interface/TrackFwd.h" |
17 |
|
#include "MitAna/DataTree/interface/Electron.h" |
18 |
|
#include "MitAna/DataTree/interface/ElectronCol.h" |
19 |
+ |
#include "MitAna/DataTree/interface/MuonCol.h" |
20 |
|
#include "MitAna/DataTree/interface/PFCandidateCol.h" |
21 |
|
#include "MitAna/DataTree/interface/PileupEnergyDensityCol.h" |
22 |
|
#include "MitCommon/MathTools/interface/MathUtils.h" |
23 |
+ |
#include "MitPhysics/Utils/interface/ElectronTools.h" |
24 |
|
|
25 |
|
class TRandom3; |
26 |
|
namespace TMVA { |
34 |
|
~ElectronIDMVA(); |
35 |
|
|
36 |
|
enum MVAType { |
37 |
< |
kBaseline = 0, // SigmaIEtaIEta, DEtaIn, DPhiIn, FBrem, SigmaIPhiIPhi, NBrem, OneOverEMinusOneOverP |
38 |
< |
kNoIPInfo, // kBaseline + EOverP, ESeedClusterOverPout, ESeedClusterOverPIn |
39 |
< |
kWithIPInfo, // kBaseline + d0 , IP3d, IP3dSig |
40 |
< |
kIDIsoCombined // ID variables , PFIso03 , PFIso04 |
37 |
> |
kUninitialized = 0, |
38 |
> |
kBaseline, // SigmaIEtaIEta, DEtaIn, DPhiIn, FBrem, SigmaIPhiIPhi, NBrem, OneOverEMinusOneOverP |
39 |
> |
kNoIPInfo, // kBaseline + EOverP, ESeedClusterOverPout, ESeedClusterOverPIn |
40 |
> |
kWithIPInfo, // kBaseline + d0 , IP3d, IP3dSig |
41 |
> |
kIDIsoCombined, // ID variables , PFIso03 , PFIso04 |
42 |
> |
kIDEGamma2012TrigV0, // EGamma certified (Spring 2012) ID-only MVA |
43 |
> |
kIDEGamma2012NonTrigV0, // EGamma certified (Spring 2012) ID-only MVA |
44 |
> |
kIsoRingsV0 // Isolation MVA with IsoRings as input |
45 |
|
}; |
46 |
|
|
47 |
|
|
48 |
+ |
void Initialize( std::string methodName, |
49 |
+ |
std::string weightsfile, |
50 |
+ |
ElectronIDMVA::MVAType type); |
51 |
+ |
void Initialize( std::string methodName, |
52 |
+ |
ElectronIDMVA::MVAType type, |
53 |
+ |
Bool_t useBinnedVersion, |
54 |
+ |
std::vector<std::string> weightsfiles ); |
55 |
|
void Initialize(TString methodName, |
56 |
|
TString Subdet0Pt10To20Weights , |
57 |
|
TString Subdet1Pt10To20Weights , |
62 |
|
ElectronIDMVA::MVAType type ); |
63 |
|
|
64 |
|
Bool_t IsInitialized() const { return fIsInitialized; } |
65 |
< |
Double_t MVAValue(const Electron *ele, const Vertex *vertex); |
65 |
> |
void bindVariables(); |
66 |
> |
UInt_t GetMVABin(double eta,double pt ) const; |
67 |
> |
|
68 |
> |
Double_t MVAValue(const Electron *ele, const Vertex *vertex, Bool_t printDebug = kFALSE); |
69 |
> |
Double_t MVAValue(const Electron *ele, const Vertex *vertex, |
70 |
> |
const PFCandidateCol *PFCands, |
71 |
> |
const PileupEnergyDensityCol *PileupEnergyDensity, |
72 |
> |
Double_t intRadius, |
73 |
> |
Bool_t printDebug = kFALSE); |
74 |
|
Double_t MVAValue(const Electron *ele, const Vertex *vertex, |
75 |
|
const PFCandidateCol *PFCands, |
76 |
|
const PileupEnergyDensityCol *PileupEnergyDensity, |
77 |
+ |
ElectronTools::EElectronEffectiveAreaTarget EffectiveAreaTarget, |
78 |
+ |
const ElectronCol *goodElectrons, |
79 |
+ |
const MuonCol *goodMuons, |
80 |
|
Bool_t printDebug = kFALSE); |
81 |
|
Double_t MVAValue(Double_t ElePt , Double_t EleEta, |
82 |
|
Double_t EleSigmaIEtaIEta, |
129 |
|
|
130 |
|
|
131 |
|
protected: |
132 |
< |
TMVA::Reader *fTMVAReader[6]; |
133 |
< |
TString fMethodname; |
110 |
< |
|
132 |
> |
std::vector<TMVA::Reader*> fTMVAReader; |
133 |
> |
TString fMethodname; |
134 |
|
Bool_t fIsInitialized; |
135 |
< |
|
135 |
> |
MVAType fMVAType; |
136 |
> |
Bool_t fUseBinnedVersion; |
137 |
> |
UInt_t fNMVABins; |
138 |
> |
|
139 |
> |
Float_t fMVAVar_ElePt; |
140 |
> |
Float_t fMVAVar_EleEta; |
141 |
|
Float_t fMVAVar_EleSigmaIEtaIEta; |
142 |
|
Float_t fMVAVar_EleDEtaIn; |
143 |
|
Float_t fMVAVar_EleDPhiIn; |
167 |
|
Float_t fMVAVar_EleChargedIso04OverPt; |
168 |
|
Float_t fMVAVar_EleNeutralHadronIso04OverPt; |
169 |
|
Float_t fMVAVar_EleGammaIso04OverPt; |
170 |
< |
|
170 |
> |
|
171 |
> |
Float_t fMVAVar_EleEEleClusterOverPout; |
172 |
> |
Float_t fMVAVar_EleKFTrkChiSqr; |
173 |
> |
Float_t fMVAVar_EleKFTrkNHits; |
174 |
> |
Float_t fMVAVar_EleKFTrkNLayers; |
175 |
> |
Float_t fMVAVar_EleE1x5OverE5x5; |
176 |
> |
|
177 |
> |
Float_t fMVAVar_ChargedIso_DR0p0To0p1; |
178 |
> |
Float_t fMVAVar_ChargedIso_DR0p1To0p2; |
179 |
> |
Float_t fMVAVar_ChargedIso_DR0p2To0p3; |
180 |
> |
Float_t fMVAVar_ChargedIso_DR0p3To0p4; |
181 |
> |
Float_t fMVAVar_ChargedIso_DR0p4To0p5; |
182 |
> |
Float_t fMVAVar_GammaIso_DR0p0To0p1; |
183 |
> |
Float_t fMVAVar_GammaIso_DR0p1To0p2; |
184 |
> |
Float_t fMVAVar_GammaIso_DR0p2To0p3; |
185 |
> |
Float_t fMVAVar_GammaIso_DR0p3To0p4; |
186 |
> |
Float_t fMVAVar_GammaIso_DR0p4To0p5; |
187 |
> |
Float_t fMVAVar_NeutralHadronIso_DR0p0To0p1; |
188 |
> |
Float_t fMVAVar_NeutralHadronIso_DR0p1To0p2; |
189 |
> |
Float_t fMVAVar_NeutralHadronIso_DR0p2To0p3; |
190 |
> |
Float_t fMVAVar_NeutralHadronIso_DR0p3To0p4; |
191 |
> |
Float_t fMVAVar_NeutralHadronIso_DR0p4To0p5; |
192 |
> |
|
193 |
> |
|
194 |
|
ClassDef(ElectronIDMVA, 0) // Muon tools |
195 |
|
}; |
196 |
|
} |