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

# Content
1 //--------------------------------------------------------------------------------------------------
2 // $Id $
3 //
4 // MuonIDMVA
5 //
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 #include "MitAna/DataTree/interface/ElectronCol.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/MuonTools.h"
24
25 // for Rho definitons
26 #include "MitPhysics/Utils/interface/RhoUtilities.h"
27
28 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 kUninitialized,
41 kV2,
42 kV3,
43 kV8,
44 kIDIsoCombinedDetIso,
45 kIsoRingsV0,
46 kIDIsoCombinedIsoRingsV0,
47 kIDV0,
48 kIsoDeltaR
49 };
50
51
52 void Initialize( std::string methodName,
53 std::string weightsfile,
54 MuonIDMVA::MVAType type,
55 RhoUtilities::RhoType theRhoType = RhoUtilities::DEFAULT);
56 void Initialize( std::string methodName,
57 MuonIDMVA::MVAType type,
58 Bool_t useBinnedVersion,
59 std::vector<std::string> weightsfiles,
60 RhoUtilities::RhoType theRhoType = RhoUtilities::DEFAULT);
61 void Initialize(TString methodName,
62 TString Subdet0Pt10To14p5Weights ,
63 TString Subdet1Pt10To14p5Weights ,
64 TString Subdet0Pt14p5To20Weights,
65 TString Subdet1Pt14p5To20Weights,
66 TString Subdet0Pt20ToInfWeights,
67 TString Subdet1Pt20ToInfWeights,
68 MuonIDMVA::MVAType type,
69 RhoUtilities::RhoType theRhoType = RhoUtilities::DEFAULT);
70
71 Bool_t IsInitialized() const { return fIsInitialized; }
72 UInt_t GetMVABin(double eta,double pt,
73 Bool_t isGlobal = kTRUE, Bool_t isTrackerMuon = kTRUE ) const;
74 Double_t MVAValue(const Muon *mu, const Vertex *vertex, MuonTools *fMuonTools,
75 const PFCandidateCol *PFCands,
76 const PileupEnergyDensityCol *PileupEnergyDensity,
77 Bool_t printDebug = kFALSE);
78 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 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 Double_t MuEmS9EnergyOverPt,
104 Double_t MuChargedIso03OverPt,
105 Double_t MuNeutralIso03OverPt,
106 Double_t MuChargedIso04OverPt,
107 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 Bool_t printDebug = kFALSE
136 );
137 Double_t MVAValue_IsoRings( Double_t MuPt,
138 Double_t MuEta,
139 Bool_t MuIsGlobal,
140 Bool_t MuIsTracker,
141 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
176 protected:
177 std::vector<TMVA::Reader*> fTMVAReader;
178 TString fMethodname;
179 Bool_t fIsInitialized;
180 MVAType fMVAType;
181 Bool_t fUseBinnedVersion;
182 UInt_t fNMVABins;
183 RhoUtilities::RhoType fTheRhoType;
184
185 Float_t fMVAVar_MuPt;
186 Float_t fMVAVar_MuEta;
187 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 Float_t fMVAVar_MuHadEnergy;
206 Float_t fMVAVar_MuEmEnergy;
207 Float_t fMVAVar_MuHadS9Energy;
208 Float_t fMVAVar_MuEmS9Energy;
209 Float_t fMVAVar_MuChargedIso03OverPt;
210 Float_t fMVAVar_MuNeutralIso03OverPt;
211 Float_t fMVAVar_MuChargedIso04OverPt;
212 Float_t fMVAVar_MuNeutralIso04OverPt;
213 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
220 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 // 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 ClassDef(MuonIDMVA, 0) // Muon MVA
249 };
250 }
251
252 #endif