ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/MitPhysics/Utils/interface/MuonIDMVA.h
Revision: 1.8
Committed: Fri May 4 21:47:03 2012 UTC (12 years, 11 months ago) by ceballos
Content type: text/plain
Branch: MAIN
Changes since 1.7: +11 -1 lines
Log Message:
new dr iso

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 ceballos 1.8 kIDV0,
45     kIsoDeltaR
46 sixie 1.1 };
47    
48    
49 sixie 1.6 void Initialize( std::string methodName,
50     std::string weightsfile,
51     MuonIDMVA::MVAType type);
52     void Initialize( std::string methodName,
53     MuonIDMVA::MVAType type,
54     Bool_t useBinnedVersion,
55     std::vector<std::string> weightsfiles );
56 sixie 1.1 void Initialize(TString methodName,
57     TString Subdet0Pt10To14p5Weights ,
58     TString Subdet1Pt10To14p5Weights ,
59     TString Subdet0Pt14p5To20Weights,
60     TString Subdet1Pt14p5To20Weights,
61     TString Subdet0Pt20ToInfWeights,
62     TString Subdet1Pt20ToInfWeights,
63     MuonIDMVA::MVAType type);
64 sixie 1.6
65 sixie 1.1 Bool_t IsInitialized() const { return fIsInitialized; }
66 sixie 1.6 UInt_t GetMVABin(double eta,double pt,
67 sixie 1.7 Bool_t isGlobal = kTRUE, Bool_t isTrackerMuon = kTRUE ) const;
68 sixie 1.3 Double_t MVAValue(const Muon *mu, const Vertex *vertex, MuonTools *fMuonTools,
69     const PFCandidateCol *PFCands,
70 sixie 1.4 const PileupEnergyDensityCol *PileupEnergyDensity,
71     Bool_t printDebug = kFALSE);
72 sixie 1.6 Double_t MVAValue(const Muon *mu, const Vertex *vertex, MuonTools *fMuonTools,
73     const PFCandidateCol *PFCands,
74     const PileupEnergyDensityCol *PileupEnergyDensity,
75     MuonTools::EMuonEffectiveAreaTarget EffectiveAreaTarget,
76     const ElectronCol *goodElectrons,
77     const MuonCol *goodMuons,
78     Bool_t printDebug = kFALSE);
79 sixie 1.1 Double_t MVAValue( Double_t MuPt , Double_t MuEta,
80     Double_t MuTkNchi2,
81     Double_t MuGlobalNchi2,
82     Double_t MuNValidHits,
83     Double_t MuNTrackerHits,
84     Double_t MuNPixelHits,
85     Double_t MuNMatches,
86     Double_t MuD0,
87     Double_t MuIP3d,
88     Double_t MuIP3dSig,
89     Double_t MuTrkKink,
90     Double_t MuSegmentCompatibility,
91     Double_t MuCaloCompatibility,
92     Double_t MuHadEnergyOverPt,
93     Double_t MuHoEnergyOverPt,
94     Double_t MuEmEnergyOverPt,
95     Double_t MuHadS9EnergyOverPt,
96     Double_t MuHoS9EnergyOverPt,
97 sixie 1.2 Double_t MuEmS9EnergyOverPt,
98     Double_t MuChargedIso03OverPt,
99     Double_t MuNeutralIso03OverPt,
100     Double_t MuChargedIso04OverPt,
101 sixie 1.5 Double_t MuNeutralIso04OverPt,
102     Bool_t printDebug = kFALSE
103     );
104     Double_t MVAValue( Double_t MuPt , Double_t MuEta,
105     Double_t MuTkNchi2,
106     Double_t MuGlobalNchi2,
107     Double_t MuNValidHits,
108     Double_t MuNTrackerHits,
109     Double_t MuNPixelHits,
110     Double_t MuNMatches,
111     Double_t MuD0,
112     Double_t MuIP3d,
113     Double_t MuIP3dSig,
114     Double_t MuTrkKink,
115     Double_t MuSegmentCompatibility,
116     Double_t MuCaloCompatibility,
117     Double_t MuHadEnergyOverPt,
118     Double_t MuHoEnergyOverPt,
119     Double_t MuEmEnergyOverPt,
120     Double_t MuHadS9EnergyOverPt,
121     Double_t MuHoS9EnergyOverPt,
122     Double_t MuEmS9EnergyOverPt,
123     Double_t MuTrkIso03OverPt,
124     Double_t MuEMIso03OverPt,
125     Double_t MuHadIso03OverPt,
126     Double_t MuTrkIso05OverPt,
127     Double_t MuEMIso05OverPt,
128     Double_t MuHadIso05OverPt,
129 sixie 1.4 Bool_t printDebug = kFALSE
130 sixie 1.1 );
131 sixie 1.7 Double_t MVAValue_IsoRings( Double_t MuPt,
132     Double_t MuEta,
133     Double_t ChargedIso_DR0p0To0p1,
134     Double_t ChargedIso_DR0p1To0p2,
135     Double_t ChargedIso_DR0p2To0p3,
136     Double_t ChargedIso_DR0p3To0p4,
137     Double_t ChargedIso_DR0p4To0p5,
138     Double_t GammaIso_DR0p0To0p1,
139     Double_t GammaIso_DR0p1To0p2,
140     Double_t GammaIso_DR0p2To0p3,
141     Double_t GammaIso_DR0p3To0p4,
142     Double_t GammaIso_DR0p4To0p5,
143     Double_t NeutralHadronIso_DR0p0To0p1,
144     Double_t NeutralHadronIso_DR0p1To0p2,
145     Double_t NeutralHadronIso_DR0p2To0p3,
146     Double_t NeutralHadronIso_DR0p3To0p4,
147     Double_t NeutralHadronIso_DR0p4To0p5,
148     Bool_t printDebug = kFALSE);
149     Double_t MVAValue_ID( Double_t MuPt,
150     Double_t MuEta,
151     Bool_t MuIsGlobal,
152     Bool_t MuIsTracker,
153     Double_t MuTkNchi2,
154     Double_t MuGlobalNchi2,
155     Double_t MuNValidHits,
156     Double_t MuNTrackerHits,
157     Double_t MuNPixelHits,
158     Double_t MuNMatches,
159     Double_t MuTrkKink,
160     Double_t MuSegmentCompatibility,
161     Double_t MuCaloCompatibility,
162     Double_t MuHadEnergy,
163     Double_t MuEmEnergy,
164     Double_t MuHadS9Energy,
165     Double_t MuEmS9Energy,
166     Bool_t printDebug = kFALSE);
167 sixie 1.1
168     protected:
169 sixie 1.6 std::vector<TMVA::Reader*> fTMVAReader;
170     TString fMethodname;
171 sixie 1.1 Bool_t fIsInitialized;
172 sixie 1.6 MVAType fMVAType;
173     Bool_t fUseBinnedVersion;
174     UInt_t fNMVABins;
175 sixie 1.1
176 sixie 1.6 Float_t fMVAVar_MuPt;
177     Float_t fMVAVar_MuEta;
178 sixie 1.1 Float_t fMVAVar_MuTkNchi2;
179     Float_t fMVAVar_MuGlobalNchi2;
180     Float_t fMVAVar_MuNValidHits;
181     Float_t fMVAVar_MuNTrackerHits;
182     Float_t fMVAVar_MuNPixelHits;
183     Float_t fMVAVar_MuNMatches;
184     Float_t fMVAVar_MuD0;
185     Float_t fMVAVar_MuIP3d;
186     Float_t fMVAVar_MuIP3dSig;
187     Float_t fMVAVar_MuTrkKink;
188     Float_t fMVAVar_MuSegmentCompatibility;
189     Float_t fMVAVar_MuCaloCompatibility;
190     Float_t fMVAVar_MuHadEnergyOverPt;
191     Float_t fMVAVar_MuHoEnergyOverPt;
192     Float_t fMVAVar_MuEmEnergyOverPt;
193     Float_t fMVAVar_MuHadS9EnergyOverPt;
194     Float_t fMVAVar_MuHoS9EnergyOverPt;
195     Float_t fMVAVar_MuEmS9EnergyOverPt;
196 sixie 1.6 Float_t fMVAVar_MuHadEnergy;
197     Float_t fMVAVar_MuEmEnergy;
198     Float_t fMVAVar_MuHadS9Energy;
199     Float_t fMVAVar_MuEmS9Energy;
200 sixie 1.2 Float_t fMVAVar_MuChargedIso03OverPt;
201     Float_t fMVAVar_MuNeutralIso03OverPt;
202     Float_t fMVAVar_MuChargedIso04OverPt;
203     Float_t fMVAVar_MuNeutralIso04OverPt;
204 sixie 1.5 Float_t fMVAVar_MuTrkIso03OverPt;
205     Float_t fMVAVar_MuEMIso03OverPt;
206     Float_t fMVAVar_MuHadIso03OverPt;
207     Float_t fMVAVar_MuTrkIso05OverPt;
208     Float_t fMVAVar_MuEMIso05OverPt;
209     Float_t fMVAVar_MuHadIso05OverPt;
210 sixie 1.1
211 sixie 1.6 Float_t fMVAVar_ChargedIso_DR0p0To0p1;
212     Float_t fMVAVar_ChargedIso_DR0p1To0p2;
213     Float_t fMVAVar_ChargedIso_DR0p2To0p3;
214     Float_t fMVAVar_ChargedIso_DR0p3To0p4;
215     Float_t fMVAVar_ChargedIso_DR0p4To0p5;
216     Float_t fMVAVar_ChargedIso_DR0p5To0p7;
217     Float_t fMVAVar_GammaIso_DR0p0To0p1;
218     Float_t fMVAVar_GammaIso_DR0p1To0p2;
219     Float_t fMVAVar_GammaIso_DR0p2To0p3;
220     Float_t fMVAVar_GammaIso_DR0p3To0p4;
221     Float_t fMVAVar_GammaIso_DR0p4To0p5;
222     Float_t fMVAVar_GammaIso_DR0p5To0p7;
223     Float_t fMVAVar_NeutralHadronIso_DR0p0To0p1;
224     Float_t fMVAVar_NeutralHadronIso_DR0p1To0p2;
225     Float_t fMVAVar_NeutralHadronIso_DR0p2To0p3;
226     Float_t fMVAVar_NeutralHadronIso_DR0p3To0p4;
227     Float_t fMVAVar_NeutralHadronIso_DR0p4To0p5;
228     Float_t fMVAVar_NeutralHadronIso_DR0p5To0p7;
229    
230 ceballos 1.8 // isolation variables II
231     Float_t fMVAVar_MuRelIsoPFCharged;
232     Float_t fMVAVar_MuRelIsoPFNeutral;
233     Float_t fMVAVar_MuRelIsoPFPhotons;
234     Float_t fMVAVar_MuDeltaRMean;
235     Float_t fMVAVar_MuDeltaRSum;
236     Float_t fMVAVar_MuDensity;
237    
238    
239 sixie 1.1 ClassDef(MuonIDMVA, 0) // Muon MVA
240     };
241     }
242    
243     #endif