ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/MitPhysics/Utils/interface/MuonIDMVA.h
Revision: 1.10
Committed: Sat May 12 00:06:24 2012 UTC (12 years, 11 months ago) by anlevin
Content type: text/plain
Branch: MAIN
CVS Tags: Mit_029c, Mit_029b, Mit_029a, Mit_028a, Mit_028, Mit_027, Mit_027a, HEAD
Changes since 1.9: +2 -0 lines
Log Message:
fixed a problem with the MuonIDMVA get bin function

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