ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/MitPhysics/Utils/interface/MuonIDMVA.h
Revision: 1.7
Committed: Tue Apr 24 12:48:29 2012 UTC (13 years ago) by sixie
Content type: text/plain
Branch: MAIN
Changes since 1.6: +39 -3 lines
Log Message:
update electron and muon mva interfaces. add Andrews's muon ID mva.

File Contents

# User Rev Content
1 sixie 1.1 //--------------------------------------------------------------------------------------------------
2     // $Id $
3     //
4 sixie 1.6 // MuonIDMVA
5 sixie 1.1 //
6     // Helper Class for Muon Identification MVA
7     //
8     // Authors: S.Xie
9     //--------------------------------------------------------------------------------------------------
10    
11     #ifndef MITPHYSICS_UTILS_MuonIDMVA_H
12     #define MITPHYSICS_UTILS_MuonIDMVA_H
13    
14     #include "MitAna/DataTree/interface/MuonFwd.h"
15     #include "MitAna/DataTree/interface/VertexFwd.h"
16     #include "MitAna/DataTree/interface/TrackFwd.h"
17     #include "MitAna/DataTree/interface/Muon.h"
18     #include "MitAna/DataTree/interface/MuonCol.h"
19 sixie 1.6 #include "MitAna/DataTree/interface/ElectronCol.h"
20 sixie 1.3 #include "MitAna/DataTree/interface/PFCandidateCol.h"
21     #include "MitAna/DataTree/interface/PileupEnergyDensityCol.h"
22 sixie 1.1 #include "MitCommon/MathTools/interface/MathUtils.h"
23 sixie 1.3 #include "MitPhysics/Utils/interface/MuonTools.h"
24 sixie 1.1
25     class TRandom3;
26     namespace TMVA {
27     class Reader;
28     }
29    
30     namespace mithep {
31     class MuonIDMVA {
32     public:
33     MuonIDMVA();
34     ~MuonIDMVA();
35    
36     enum MVAType {
37 sixie 1.6 kUninitialized,
38 sixie 1.2 kV2,
39     kV3,
40 sixie 1.5 kV8,
41 sixie 1.6 kIDIsoCombinedDetIso,
42     kIsoRingsV0,
43 sixie 1.7 kIDIsoCombinedIsoRingsV0,
44     kIDV0
45 sixie 1.1 };
46    
47    
48 sixie 1.6 void Initialize( std::string methodName,
49     std::string weightsfile,
50     MuonIDMVA::MVAType type);
51     void Initialize( std::string methodName,
52     MuonIDMVA::MVAType type,
53     Bool_t useBinnedVersion,
54     std::vector<std::string> weightsfiles );
55 sixie 1.1 void Initialize(TString methodName,
56     TString Subdet0Pt10To14p5Weights ,
57     TString Subdet1Pt10To14p5Weights ,
58     TString Subdet0Pt14p5To20Weights,
59     TString Subdet1Pt14p5To20Weights,
60     TString Subdet0Pt20ToInfWeights,
61     TString Subdet1Pt20ToInfWeights,
62     MuonIDMVA::MVAType type);
63 sixie 1.6
64 sixie 1.1 Bool_t IsInitialized() const { return fIsInitialized; }
65 sixie 1.6 UInt_t GetMVABin(double eta,double pt,
66 sixie 1.7 Bool_t isGlobal = kTRUE, Bool_t isTrackerMuon = kTRUE ) const;
67 sixie 1.3 Double_t MVAValue(const Muon *mu, const Vertex *vertex, MuonTools *fMuonTools,
68     const PFCandidateCol *PFCands,
69 sixie 1.4 const PileupEnergyDensityCol *PileupEnergyDensity,
70     Bool_t printDebug = kFALSE);
71 sixie 1.6 Double_t MVAValue(const Muon *mu, const Vertex *vertex, MuonTools *fMuonTools,
72     const PFCandidateCol *PFCands,
73     const PileupEnergyDensityCol *PileupEnergyDensity,
74     MuonTools::EMuonEffectiveAreaTarget EffectiveAreaTarget,
75     const ElectronCol *goodElectrons,
76     const MuonCol *goodMuons,
77     Bool_t printDebug = kFALSE);
78 sixie 1.1 Double_t MVAValue( Double_t MuPt , Double_t MuEta,
79     Double_t MuTkNchi2,
80     Double_t MuGlobalNchi2,
81     Double_t MuNValidHits,
82     Double_t MuNTrackerHits,
83     Double_t MuNPixelHits,
84     Double_t MuNMatches,
85     Double_t MuD0,
86     Double_t MuIP3d,
87     Double_t MuIP3dSig,
88     Double_t MuTrkKink,
89     Double_t MuSegmentCompatibility,
90     Double_t MuCaloCompatibility,
91     Double_t MuHadEnergyOverPt,
92     Double_t MuHoEnergyOverPt,
93     Double_t MuEmEnergyOverPt,
94     Double_t MuHadS9EnergyOverPt,
95     Double_t MuHoS9EnergyOverPt,
96 sixie 1.2 Double_t MuEmS9EnergyOverPt,
97     Double_t MuChargedIso03OverPt,
98     Double_t MuNeutralIso03OverPt,
99     Double_t MuChargedIso04OverPt,
100 sixie 1.5 Double_t MuNeutralIso04OverPt,
101     Bool_t printDebug = kFALSE
102     );
103     Double_t MVAValue( Double_t MuPt , Double_t MuEta,
104     Double_t MuTkNchi2,
105     Double_t MuGlobalNchi2,
106     Double_t MuNValidHits,
107     Double_t MuNTrackerHits,
108     Double_t MuNPixelHits,
109     Double_t MuNMatches,
110     Double_t MuD0,
111     Double_t MuIP3d,
112     Double_t MuIP3dSig,
113     Double_t MuTrkKink,
114     Double_t MuSegmentCompatibility,
115     Double_t MuCaloCompatibility,
116     Double_t MuHadEnergyOverPt,
117     Double_t MuHoEnergyOverPt,
118     Double_t MuEmEnergyOverPt,
119     Double_t MuHadS9EnergyOverPt,
120     Double_t MuHoS9EnergyOverPt,
121     Double_t MuEmS9EnergyOverPt,
122     Double_t MuTrkIso03OverPt,
123     Double_t MuEMIso03OverPt,
124     Double_t MuHadIso03OverPt,
125     Double_t MuTrkIso05OverPt,
126     Double_t MuEMIso05OverPt,
127     Double_t MuHadIso05OverPt,
128 sixie 1.4 Bool_t printDebug = kFALSE
129 sixie 1.1 );
130 sixie 1.7 Double_t MVAValue_IsoRings( Double_t MuPt,
131     Double_t MuEta,
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_ID( Double_t MuPt,
149     Double_t MuEta,
150     Bool_t MuIsGlobal,
151     Bool_t MuIsTracker,
152     Double_t MuTkNchi2,
153     Double_t MuGlobalNchi2,
154     Double_t MuNValidHits,
155     Double_t MuNTrackerHits,
156     Double_t MuNPixelHits,
157     Double_t MuNMatches,
158     Double_t MuTrkKink,
159     Double_t MuSegmentCompatibility,
160     Double_t MuCaloCompatibility,
161     Double_t MuHadEnergy,
162     Double_t MuEmEnergy,
163     Double_t MuHadS9Energy,
164     Double_t MuEmS9Energy,
165     Bool_t printDebug = kFALSE);
166 sixie 1.1
167     protected:
168 sixie 1.6 std::vector<TMVA::Reader*> fTMVAReader;
169     TString fMethodname;
170 sixie 1.1 Bool_t fIsInitialized;
171 sixie 1.6 MVAType fMVAType;
172     Bool_t fUseBinnedVersion;
173     UInt_t fNMVABins;
174 sixie 1.1
175 sixie 1.6 Float_t fMVAVar_MuPt;
176     Float_t fMVAVar_MuEta;
177 sixie 1.1 Float_t fMVAVar_MuTkNchi2;
178     Float_t fMVAVar_MuGlobalNchi2;
179     Float_t fMVAVar_MuNValidHits;
180     Float_t fMVAVar_MuNTrackerHits;
181     Float_t fMVAVar_MuNPixelHits;
182     Float_t fMVAVar_MuNMatches;
183     Float_t fMVAVar_MuD0;
184     Float_t fMVAVar_MuIP3d;
185     Float_t fMVAVar_MuIP3dSig;
186     Float_t fMVAVar_MuTrkKink;
187     Float_t fMVAVar_MuSegmentCompatibility;
188     Float_t fMVAVar_MuCaloCompatibility;
189     Float_t fMVAVar_MuHadEnergyOverPt;
190     Float_t fMVAVar_MuHoEnergyOverPt;
191     Float_t fMVAVar_MuEmEnergyOverPt;
192     Float_t fMVAVar_MuHadS9EnergyOverPt;
193     Float_t fMVAVar_MuHoS9EnergyOverPt;
194     Float_t fMVAVar_MuEmS9EnergyOverPt;
195 sixie 1.6 Float_t fMVAVar_MuHadEnergy;
196     Float_t fMVAVar_MuEmEnergy;
197     Float_t fMVAVar_MuHadS9Energy;
198     Float_t fMVAVar_MuEmS9Energy;
199 sixie 1.2 Float_t fMVAVar_MuChargedIso03OverPt;
200     Float_t fMVAVar_MuNeutralIso03OverPt;
201     Float_t fMVAVar_MuChargedIso04OverPt;
202     Float_t fMVAVar_MuNeutralIso04OverPt;
203 sixie 1.5 Float_t fMVAVar_MuTrkIso03OverPt;
204     Float_t fMVAVar_MuEMIso03OverPt;
205     Float_t fMVAVar_MuHadIso03OverPt;
206     Float_t fMVAVar_MuTrkIso05OverPt;
207     Float_t fMVAVar_MuEMIso05OverPt;
208     Float_t fMVAVar_MuHadIso05OverPt;
209 sixie 1.1
210 sixie 1.6 Float_t fMVAVar_ChargedIso_DR0p0To0p1;
211     Float_t fMVAVar_ChargedIso_DR0p1To0p2;
212     Float_t fMVAVar_ChargedIso_DR0p2To0p3;
213     Float_t fMVAVar_ChargedIso_DR0p3To0p4;
214     Float_t fMVAVar_ChargedIso_DR0p4To0p5;
215     Float_t fMVAVar_ChargedIso_DR0p5To0p7;
216     Float_t fMVAVar_GammaIso_DR0p0To0p1;
217     Float_t fMVAVar_GammaIso_DR0p1To0p2;
218     Float_t fMVAVar_GammaIso_DR0p2To0p3;
219     Float_t fMVAVar_GammaIso_DR0p3To0p4;
220     Float_t fMVAVar_GammaIso_DR0p4To0p5;
221     Float_t fMVAVar_GammaIso_DR0p5To0p7;
222     Float_t fMVAVar_NeutralHadronIso_DR0p0To0p1;
223     Float_t fMVAVar_NeutralHadronIso_DR0p1To0p2;
224     Float_t fMVAVar_NeutralHadronIso_DR0p2To0p3;
225     Float_t fMVAVar_NeutralHadronIso_DR0p3To0p4;
226     Float_t fMVAVar_NeutralHadronIso_DR0p4To0p5;
227     Float_t fMVAVar_NeutralHadronIso_DR0p5To0p7;
228    
229 sixie 1.1 ClassDef(MuonIDMVA, 0) // Muon MVA
230     };
231     }
232    
233     #endif