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.3 by sixie, Mon Oct 3 16:32:08 2011 UTC vs.
Revision 1.11 by ceballos, Sat Apr 28 07:11:17 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/Utils/interface/ElectronTools.h"
24  
25   class TRandom3;
26   namespace TMVA {
# Line 30 | Line 34 | namespace mithep {
34        ~ElectronIDMVA();
35  
36        enum MVAType {
37 <        kBaseline = 0,      // SigmaIEtaIEta, DEtaIn, DPhiIn, FBrem, SigmaIPhiIPhi, NBrem, OneOverEMinusOneOverP
38 <        kV1,                // kBaseline + EOverP, HoverE, ESeedClusterOverPout, ESeedClusterOverPIn
39 <        kV2                 // kV2 + d0 , IP3d, IP3dSig
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 >        kIDHWW2012TrigV0        // HWW certified (Spring 2012) ID-only MVA
46        };
47  
48  
49 +      void     Initialize( std::string methodName,
50 +                           std::string weightsfile,
51 +                           ElectronIDMVA::MVAType type);
52 +      void     Initialize( std::string methodName,
53 +                           ElectronIDMVA::MVAType type,
54 +                           Bool_t useBinnedVersion,
55 +                           std::vector<std::string> weightsfiles );
56        void     Initialize(TString methodName,
57                            TString Subdet0Pt10To20Weights ,
58                            TString Subdet1Pt10To20Weights ,
# Line 46 | Line 63 | namespace mithep {
63                            ElectronIDMVA::MVAType type );
64        
65        Bool_t   IsInitialized() const { return fIsInitialized; }
66 <      Double_t MVAValue(const Electron *ele, const Vertex *vertex);
67 <      Double_t MVAValue(Double_t ElePt , Double_t EleSCEta,
66 >      void     bindVariables();
67 >      UInt_t   GetMVABin(double eta,double pt ) const;
68 >
69 >      Double_t MVAValue(const Electron *ele, const Vertex *vertex, Bool_t printDebug = kFALSE);
70 >      Double_t MVAValue(const Electron *ele, const Vertex *vertex,
71 >                        const PFCandidateCol *PFCands,
72 >                        const PileupEnergyDensityCol *PileupEnergyDensity,
73 >                        Double_t intRadius,
74 >                        Bool_t printDebug = kFALSE);
75 >      Double_t MVAValue(const Electron *ele, const Vertex *vertex,
76 >                        const PFCandidateCol *PFCands,
77 >                        const PileupEnergyDensityCol *PileupEnergyDensity,
78 >                        ElectronTools::EElectronEffectiveAreaTarget EffectiveAreaTarget,
79 >                        const ElectronCol *goodElectrons,
80 >                        const MuonCol *goodMuons,                      
81 >                        Bool_t printDebug = kFALSE);
82 >      Double_t MVAValue(Double_t ElePt , Double_t EleEta,
83                          Double_t EleSigmaIEtaIEta,
84                          Double_t EleDEtaIn,
85                          Double_t EleDPhiIn,
# Line 62 | Line 94 | namespace mithep {
94                          Double_t EleOneOverEMinusOneOverP,
95                          Double_t EleESeedClusterOverPIn,
96                          Double_t EleIP3d,
97 <                        Double_t EleIP3dSig );
98 <
97 >                        Double_t EleIP3dSig);
98 >      Double_t MVAValue(Double_t ElePt , Double_t EleEta,
99 >                        Double_t PileupEnergyDensity,
100 >                        Double_t EleSigmaIEtaIEta,
101 >                        Double_t EleDEtaIn,
102 >                        Double_t EleDPhiIn,
103 >                        Double_t EleHoverE,
104 >                        Double_t EleD0,
105 >                        Double_t EleDZ,
106 >                        Double_t EleFBrem,
107 >                        Double_t EleEOverP,
108 >                        Double_t EleESeedClusterOverPout,
109 >                        Double_t EleSigmaIPhiIPhi,
110 >                        Double_t EleNBrem,
111 >                        Double_t EleOneOverEMinusOneOverP,
112 >                        Double_t EleESeedClusterOverPIn,
113 >                        Double_t EleIP3d,
114 >                        Double_t EleIP3dSig,
115 >                        Double_t EleGsfTrackChi2OverNdof,
116 >                        Double_t EledEtaCalo,
117 >                        Double_t EledPhiCalo,
118 >                        Double_t EleR9,
119 >                        Double_t EleSCEtaWidth,
120 >                        Double_t EleSCPhiWidth,
121 >                        Double_t EleCovIEtaIPhi,
122 >                        Double_t ElePreShowerOverRaw,
123 >                        Double_t EleChargedIso03,
124 >                        Double_t EleNeutralHadronIso03,
125 >                        Double_t EleGammaIso03,
126 >                        Double_t EleChargedIso04,
127 >                        Double_t EleNeutralHadronIso04,
128 >                        Double_t EleGammaIso04,
129 >                        Bool_t printDebug = kFALSE );
130 >      Double_t MVAValue_IsoRings( Double_t ElePt,
131 >                                  Double_t EleSCEta,
132 >                                  Double_t ChargedIso_DR0p0To0p1,
133 >                                  Double_t ChargedIso_DR0p1To0p2,
134 >                                  Double_t ChargedIso_DR0p2To0p3,
135 >                                  Double_t ChargedIso_DR0p3To0p4,
136 >                                  Double_t ChargedIso_DR0p4To0p5,
137 >                                  Double_t GammaIso_DR0p0To0p1,
138 >                                  Double_t GammaIso_DR0p1To0p2,
139 >                                  Double_t GammaIso_DR0p2To0p3,
140 >                                  Double_t GammaIso_DR0p3To0p4,
141 >                                  Double_t GammaIso_DR0p4To0p5,
142 >                                  Double_t NeutralHadronIso_DR0p0To0p1,
143 >                                  Double_t NeutralHadronIso_DR0p1To0p2,
144 >                                  Double_t NeutralHadronIso_DR0p2To0p3,
145 >                                  Double_t NeutralHadronIso_DR0p3To0p4,
146 >                                  Double_t NeutralHadronIso_DR0p4To0p5,
147 >                                  Bool_t printDebug = kFALSE);
148 >      Double_t MVAValue_IDNonTrig( Double_t ElePt,
149 >                                   Double_t EleSCEta,
150 >                                   Double_t EleFBrem,
151 >                                   Double_t EleKFTrkChiSqr,
152 >                                   Double_t EleKFTrkNHits,
153 >                                   Double_t EleGsfTrackChi2OverNdof,
154 >                                   Double_t EleDEtaIn,
155 >                                   Double_t EleDPhiIn,
156 >                                   Double_t EledEtaCalo,
157 >                                   Double_t EleSigmaIEtaIEta,
158 >                                   Double_t EleSigmaIPhiIPhi,
159 >                                   Double_t EleSCEtaWidth,
160 >                                   Double_t EleSCPhiWidth,
161 >                                   Double_t EleE1x5OverE5x5,
162 >                                   Double_t EleR9,
163 >                                   Double_t EleHoverE,
164 >                                   Double_t EleEOverP,
165 >                                   Double_t EleOneOverEMinusOneOverP,
166 >                                   Double_t EleESeedClusterOverPout,
167 >                                   Double_t ElePreShowerOverRaw,
168 >                                   Bool_t printDebug = kFALSE);
169  
170      protected:      
171 <      TMVA::Reader            *fTMVAReader[6];
172 <      TString                  fMethodname;
71 <      
171 >      std::vector<TMVA::Reader*> fTMVAReader;
172 >      TString                   fMethodname;
173        Bool_t                    fIsInitialized;
174 <      
174 >      MVAType                   fMVAType;
175 >      Bool_t                    fUseBinnedVersion;
176 >      UInt_t                    fNMVABins;
177 >
178 >      Float_t                   fMVAVar_ElePt;
179 >      Float_t                   fMVAVar_EleEta;
180        Float_t                   fMVAVar_EleSigmaIEtaIEta;
181        Float_t                   fMVAVar_EleDEtaIn;
182        Float_t                   fMVAVar_EleDPhiIn;
# Line 86 | Line 192 | namespace mithep {
192        Float_t                   fMVAVar_EleESeedClusterOverPIn;
193        Float_t                   fMVAVar_EleIP3d;
194        Float_t                   fMVAVar_EleIP3dSig;
195 <      
196 <      
195 >      Float_t                   fMVAVar_EleGsfTrackChi2OverNdof;
196 >      Float_t                   fMVAVar_EledEtaCalo;
197 >      Float_t                   fMVAVar_EledPhiCalo;
198 >      Float_t                   fMVAVar_EleR9;
199 >      Float_t                   fMVAVar_EleSCEtaWidth;
200 >      Float_t                   fMVAVar_EleSCPhiWidth;
201 >      Float_t                   fMVAVar_EleCovIEtaIPhi;
202 >      Float_t                   fMVAVar_ElePreShowerOverRaw;
203 >      Float_t                   fMVAVar_EleChargedIso03OverPt;
204 >      Float_t                   fMVAVar_EleNeutralHadronIso03OverPt;
205 >      Float_t                   fMVAVar_EleGammaIso03OverPt;
206 >      Float_t                   fMVAVar_EleChargedIso04OverPt;
207 >      Float_t                   fMVAVar_EleNeutralHadronIso04OverPt;
208 >      Float_t                   fMVAVar_EleGammaIso04OverPt;
209 >
210 >      Float_t                   fMVAVar_EleEEleClusterOverPout;
211 >      Float_t                   fMVAVar_EleKFTrkChiSqr;
212 >      Float_t                   fMVAVar_EleKFTrkNHits;
213 >      Float_t                   fMVAVar_EleKFTrkNLayers;
214 >      Float_t                   fMVAVar_EleE1x5OverE5x5;
215 >
216 >      Float_t                   fMVAVar_ChargedIso_DR0p0To0p1;
217 >      Float_t                   fMVAVar_ChargedIso_DR0p1To0p2;
218 >      Float_t                   fMVAVar_ChargedIso_DR0p2To0p3;
219 >      Float_t                   fMVAVar_ChargedIso_DR0p3To0p4;
220 >      Float_t                   fMVAVar_ChargedIso_DR0p4To0p5;
221 >      Float_t                   fMVAVar_GammaIso_DR0p0To0p1;
222 >      Float_t                   fMVAVar_GammaIso_DR0p1To0p2;
223 >      Float_t                   fMVAVar_GammaIso_DR0p2To0p3;
224 >      Float_t                   fMVAVar_GammaIso_DR0p3To0p4;
225 >      Float_t                   fMVAVar_GammaIso_DR0p4To0p5;
226 >      Float_t                   fMVAVar_NeutralHadronIso_DR0p0To0p1;
227 >      Float_t                   fMVAVar_NeutralHadronIso_DR0p1To0p2;
228 >      Float_t                   fMVAVar_NeutralHadronIso_DR0p2To0p3;
229 >      Float_t                   fMVAVar_NeutralHadronIso_DR0p3To0p4;
230 >      Float_t                   fMVAVar_NeutralHadronIso_DR0p4To0p5;
231 >
232 >
233      ClassDef(ElectronIDMVA, 0) // Muon tools
234        };
235   }

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines