ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/MitPhysics/Utils/interface/ElectronIDMVA.h
(Generate patch)

Comparing UserCode/MitPhysics/Utils/interface/ElectronIDMVA.h (file contents):
Revision 1.1 by sixie, Sun Sep 25 10:08:11 2011 UTC vs.
Revision 1.9 by sixie, Mon Apr 16 11:09:41 2012 UTC

# Line 16 | Line 16
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/ElectronLikelihood/interface/ElectronLikelihood.h"
21 < #include "MitPhysics/ElectronLikelihood/interface/LikelihoodSwitches.h"
22 < #include "MitPhysics/ElectronLikelihood/interface/LikelihoodMeasurements.h"
23 <
23 > #include "MitPhysics/Utils/interface/ElectronTools.h"
24  
25   class TRandom3;
26   namespace TMVA {
# Line 33 | Line 33 | namespace mithep {
33        ElectronIDMVA();
34        ~ElectronIDMVA();
35  
36 +      enum MVAType {
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 ,
# Line 40 | Line 59 | namespace mithep {
59                            TString Subdet0Pt20ToInfWeights,
60                            TString Subdet1Pt20ToInfWeights,
61                            TString Subdet2Pt20ToInfWeights,
62 <                          ElectronLikelihood *LH );
62 >                          ElectronIDMVA::MVAType type );
63        
64        Bool_t   IsInitialized() const { return fIsInitialized; }
65 <      Double_t MVAValue(const Electron *ele, const Vertex *vertex);
66 <      
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,
83 >                        Double_t EleDEtaIn,
84 >                        Double_t EleDPhiIn,
85 >                        Double_t EleHoverE,
86 >                        Double_t EleD0,
87 >                        Double_t EleDZ,
88 >                        Double_t EleFBrem,
89 >                        Double_t EleEOverP,
90 >                        Double_t EleESeedClusterOverPout,
91 >                        Double_t EleSigmaIPhiIPhi,
92 >                        Double_t EleNBrem,
93 >                        Double_t EleOneOverEMinusOneOverP,
94 >                        Double_t EleESeedClusterOverPIn,
95 >                        Double_t EleIP3d,
96 >                        Double_t EleIP3dSig);
97 >      Double_t MVAValue(Double_t ElePt , Double_t EleEta,
98 >                        Double_t PileupEnergyDensity,
99 >                        Double_t EleSigmaIEtaIEta,
100 >                        Double_t EleDEtaIn,
101 >                        Double_t EleDPhiIn,
102 >                        Double_t EleHoverE,
103 >                        Double_t EleD0,
104 >                        Double_t EleDZ,
105 >                        Double_t EleFBrem,
106 >                        Double_t EleEOverP,
107 >                        Double_t EleESeedClusterOverPout,
108 >                        Double_t EleSigmaIPhiIPhi,
109 >                        Double_t EleNBrem,
110 >                        Double_t EleOneOverEMinusOneOverP,
111 >                        Double_t EleESeedClusterOverPIn,
112 >                        Double_t EleIP3d,
113 >                        Double_t EleIP3dSig,
114 >                        Double_t EleGsfTrackChi2OverNdof,
115 >                        Double_t EledEtaCalo,
116 >                        Double_t EledPhiCalo,
117 >                        Double_t EleR9,
118 >                        Double_t EleSCEtaWidth,
119 >                        Double_t EleSCPhiWidth,
120 >                        Double_t EleCovIEtaIPhi,
121 >                        Double_t ElePreShowerOverRaw,
122 >                        Double_t EleChargedIso03,
123 >                        Double_t EleNeutralHadronIso03,
124 >                        Double_t EleGammaIso03,
125 >                        Double_t EleChargedIso04,
126 >                        Double_t EleNeutralHadronIso04,
127 >                        Double_t EleGammaIso04,
128 >                        Bool_t printDebug = kFALSE );
129 >
130 >
131      protected:      
132 <      TMVA::Reader            *fTMVAReader[6];
133 <      TString                  fMethodname;
51 <      
52 <      ElectronLikelihood       *fLH;                     //Likelihood
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;
# Line 67 | Line 153 | namespace mithep {
153        Float_t                   fMVAVar_EleESeedClusterOverPIn;
154        Float_t                   fMVAVar_EleIP3d;
155        Float_t                   fMVAVar_EleIP3dSig;
156 <      Float_t                   fMVAVar_EleStandardLikelihood;
157 <      
158 <      
156 >      Float_t                   fMVAVar_EleGsfTrackChi2OverNdof;
157 >      Float_t                   fMVAVar_EledEtaCalo;
158 >      Float_t                   fMVAVar_EledPhiCalo;
159 >      Float_t                   fMVAVar_EleR9;
160 >      Float_t                   fMVAVar_EleSCEtaWidth;
161 >      Float_t                   fMVAVar_EleSCPhiWidth;
162 >      Float_t                   fMVAVar_EleCovIEtaIPhi;
163 >      Float_t                   fMVAVar_ElePreShowerOverRaw;
164 >      Float_t                   fMVAVar_EleChargedIso03OverPt;
165 >      Float_t                   fMVAVar_EleNeutralHadronIso03OverPt;
166 >      Float_t                   fMVAVar_EleGammaIso03OverPt;
167 >      Float_t                   fMVAVar_EleChargedIso04OverPt;
168 >      Float_t                   fMVAVar_EleNeutralHadronIso04OverPt;
169 >      Float_t                   fMVAVar_EleGammaIso04OverPt;
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   }

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines