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.13 by vdutta, Wed Jun 13 01:50:48 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 > #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 {
# Line 33 | Line 36 | namespace mithep {
36        ElectronIDMVA();
37        ~ElectronIDMVA();
38  
39 +      enum MVAType {
40 +        kUninitialized = 0,
41 +        kBaseline,           // SigmaIEtaIEta, DEtaIn, DPhiIn, FBrem, SigmaIPhiIPhi, NBrem, OneOverEMinusOneOverP
42 +        kNoIPInfo,              // kBaseline + EOverP, ESeedClusterOverPout, ESeedClusterOverPIn
43 +        kWithIPInfo,            // kBaseline + d0 , IP3d, IP3dSig
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 +        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,
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,
61 +                           RhoUtilities::RhoType theRhoType = RhoUtilities::DEFAULT);
62        void     Initialize(TString methodName,
63                            TString Subdet0Pt10To20Weights ,
64                            TString Subdet1Pt10To20Weights ,
# Line 40 | Line 66 | namespace mithep {
66                            TString Subdet0Pt20ToInfWeights,
67                            TString Subdet1Pt20ToInfWeights,
68                            TString Subdet2Pt20ToInfWeights,
69 <                          ElectronLikelihood *LH );
69 >                          ElectronIDMVA::MVAType type,
70 >                          RhoUtilities::RhoType theRhoType = RhoUtilities::DEFAULT);
71        
72        Bool_t   IsInitialized() const { return fIsInitialized; }
73 <      Double_t MVAValue(const Electron *ele, const Vertex *vertex);
74 <      
73 >      void     bindVariables();
74 >      UInt_t   GetMVABin(double eta,double pt ) const;
75 >
76 >      Double_t MVAValue(const Electron *ele, const Vertex *vertex, Bool_t printDebug = kFALSE);
77 >      Double_t MVAValue(const Electron *ele, const Vertex *vertex,
78 >                        const PFCandidateCol *PFCands,
79 >                        const PileupEnergyDensityCol *PileupEnergyDensity,
80 >                        Double_t intRadius,
81 >                        Bool_t printDebug = kFALSE);
82 >      Double_t MVAValue(const Electron *ele, const Vertex *vertex,
83 >                        const PFCandidateCol *PFCands,
84 >                        const PileupEnergyDensityCol *PileupEnergyDensity,
85 >                        ElectronTools::EElectronEffectiveAreaTarget EffectiveAreaTarget,
86 >                        const ElectronCol *goodElectrons,
87 >                        const MuonCol *goodMuons,                      
88 >                        Bool_t printDebug = kFALSE);
89 >      Double_t MVAValue(Double_t ElePt , Double_t EleEta,
90 >                        Double_t EleSigmaIEtaIEta,
91 >                        Double_t EleDEtaIn,
92 >                        Double_t EleDPhiIn,
93 >                        Double_t EleHoverE,
94 >                        Double_t EleD0,
95 >                        Double_t EleDZ,
96 >                        Double_t EleFBrem,
97 >                        Double_t EleEOverP,
98 >                        Double_t EleESeedClusterOverPout,
99 >                        Double_t EleSigmaIPhiIPhi,
100 >                        Double_t EleNBrem,
101 >                        Double_t EleOneOverEMinusOneOverP,
102 >                        Double_t EleESeedClusterOverPIn,
103 >                        Double_t EleIP3d,
104 >                        Double_t EleIP3dSig);
105 >      Double_t MVAValue(Double_t ElePt , Double_t EleEta,
106 >                        Double_t PileupEnergyDensity,
107 >                        Double_t EleSigmaIEtaIEta,
108 >                        Double_t EleDEtaIn,
109 >                        Double_t EleDPhiIn,
110 >                        Double_t EleHoverE,
111 >                        Double_t EleD0,
112 >                        Double_t EleDZ,
113 >                        Double_t EleFBrem,
114 >                        Double_t EleEOverP,
115 >                        Double_t EleESeedClusterOverPout,
116 >                        Double_t EleSigmaIPhiIPhi,
117 >                        Double_t EleNBrem,
118 >                        Double_t EleOneOverEMinusOneOverP,
119 >                        Double_t EleESeedClusterOverPIn,
120 >                        Double_t EleIP3d,
121 >                        Double_t EleIP3dSig,
122 >                        Double_t EleGsfTrackChi2OverNdof,
123 >                        Double_t EledEtaCalo,
124 >                        Double_t EledPhiCalo,
125 >                        Double_t EleR9,
126 >                        Double_t EleSCEtaWidth,
127 >                        Double_t EleSCPhiWidth,
128 >                        Double_t EleCovIEtaIPhi,
129 >                        Double_t ElePreShowerOverRaw,
130 >                        Double_t EleChargedIso03,
131 >                        Double_t EleNeutralHadronIso03,
132 >                        Double_t EleGammaIso03,
133 >                        Double_t EleChargedIso04,
134 >                        Double_t EleNeutralHadronIso04,
135 >                        Double_t EleGammaIso04,
136 >                        Bool_t printDebug = kFALSE );
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 <      TMVA::Reader            *fTMVAReader[6];
179 <      TString                  fMethodname;
51 <      
52 <      ElectronLikelihood       *fLH;                     //Likelihood
178 >      std::vector<TMVA::Reader*> fTMVAReader;
179 >      TString                   fMethodname;
180        Bool_t                    fIsInitialized;
181 <      
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;
188        Float_t                   fMVAVar_EleSigmaIEtaIEta;
189        Float_t                   fMVAVar_EleDEtaIn;
190        Float_t                   fMVAVar_EleDPhiIn;
# Line 67 | Line 200 | namespace mithep {
200        Float_t                   fMVAVar_EleESeedClusterOverPIn;
201        Float_t                   fMVAVar_EleIP3d;
202        Float_t                   fMVAVar_EleIP3dSig;
203 <      Float_t                   fMVAVar_EleStandardLikelihood;
204 <      
205 <      
203 >      Float_t                   fMVAVar_EleGsfTrackChi2OverNdof;
204 >      Float_t                   fMVAVar_EledEtaCalo;
205 >      Float_t                   fMVAVar_EledPhiCalo;
206 >      Float_t                   fMVAVar_EleR9;
207 >      Float_t                   fMVAVar_EleSCEtaWidth;
208 >      Float_t                   fMVAVar_EleSCPhiWidth;
209 >      Float_t                   fMVAVar_EleCovIEtaIPhi;
210 >      Float_t                   fMVAVar_ElePreShowerOverRaw;
211 >      Float_t                   fMVAVar_EleChargedIso03OverPt;
212 >      Float_t                   fMVAVar_EleNeutralHadronIso03OverPt;
213 >      Float_t                   fMVAVar_EleGammaIso03OverPt;
214 >      Float_t                   fMVAVar_EleChargedIso04OverPt;
215 >      Float_t                   fMVAVar_EleNeutralHadronIso04OverPt;
216 >      Float_t                   fMVAVar_EleGammaIso04OverPt;
217 >
218 >      Float_t                   fMVAVar_EleEEleClusterOverPout;
219 >      Float_t                   fMVAVar_EleKFTrkChiSqr;
220 >      Float_t                   fMVAVar_EleKFTrkNHits;
221 >      Float_t                   fMVAVar_EleKFTrkNLayers;
222 >      Float_t                   fMVAVar_EleE1x5OverE5x5;
223 >
224 >      Float_t                   fMVAVar_ChargedIso_DR0p0To0p1;
225 >      Float_t                   fMVAVar_ChargedIso_DR0p1To0p2;
226 >      Float_t                   fMVAVar_ChargedIso_DR0p2To0p3;
227 >      Float_t                   fMVAVar_ChargedIso_DR0p3To0p4;
228 >      Float_t                   fMVAVar_ChargedIso_DR0p4To0p5;
229 >      Float_t                   fMVAVar_GammaIso_DR0p0To0p1;
230 >      Float_t                   fMVAVar_GammaIso_DR0p1To0p2;
231 >      Float_t                   fMVAVar_GammaIso_DR0p2To0p3;
232 >      Float_t                   fMVAVar_GammaIso_DR0p3To0p4;
233 >      Float_t                   fMVAVar_GammaIso_DR0p4To0p5;
234 >      Float_t                   fMVAVar_NeutralHadronIso_DR0p0To0p1;
235 >      Float_t                   fMVAVar_NeutralHadronIso_DR0p1To0p2;
236 >      Float_t                   fMVAVar_NeutralHadronIso_DR0p2To0p3;
237 >      Float_t                   fMVAVar_NeutralHadronIso_DR0p3To0p4;
238 >      Float_t                   fMVAVar_NeutralHadronIso_DR0p4To0p5;
239 >
240 >
241      ClassDef(ElectronIDMVA, 0) // Muon tools
242        };
243   }

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines