ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/MitPhysics/Utils/interface/MuonIDMVA.h
Revision: 1.9
Committed: Mon May 7 18:06:07 2012 UTC (12 years, 11 months ago) by ceballos
Content type: text/plain
Branch: MAIN
Changes since 1.8: +11 -4 lines
Log Message:
new rhos

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     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_ID( Double_t MuPt,
156     Double_t MuEta,
157     Bool_t MuIsGlobal,
158     Bool_t MuIsTracker,
159     Double_t MuTkNchi2,
160     Double_t MuGlobalNchi2,
161     Double_t MuNValidHits,
162     Double_t MuNTrackerHits,
163     Double_t MuNPixelHits,
164     Double_t MuNMatches,
165     Double_t MuTrkKink,
166     Double_t MuSegmentCompatibility,
167     Double_t MuCaloCompatibility,
168     Double_t MuHadEnergy,
169     Double_t MuEmEnergy,
170     Double_t MuHadS9Energy,
171     Double_t MuEmS9Energy,
172     Bool_t printDebug = kFALSE);
173 sixie 1.1
174     protected:
175 sixie 1.6 std::vector<TMVA::Reader*> fTMVAReader;
176     TString fMethodname;
177 sixie 1.1 Bool_t fIsInitialized;
178 sixie 1.6 MVAType fMVAType;
179     Bool_t fUseBinnedVersion;
180     UInt_t fNMVABins;
181 ceballos 1.9 RhoUtilities::RhoType fTheRhoType;
182    
183 sixie 1.6 Float_t fMVAVar_MuPt;
184     Float_t fMVAVar_MuEta;
185 sixie 1.1 Float_t fMVAVar_MuTkNchi2;
186     Float_t fMVAVar_MuGlobalNchi2;
187     Float_t fMVAVar_MuNValidHits;
188     Float_t fMVAVar_MuNTrackerHits;
189     Float_t fMVAVar_MuNPixelHits;
190     Float_t fMVAVar_MuNMatches;
191     Float_t fMVAVar_MuD0;
192     Float_t fMVAVar_MuIP3d;
193     Float_t fMVAVar_MuIP3dSig;
194     Float_t fMVAVar_MuTrkKink;
195     Float_t fMVAVar_MuSegmentCompatibility;
196     Float_t fMVAVar_MuCaloCompatibility;
197     Float_t fMVAVar_MuHadEnergyOverPt;
198     Float_t fMVAVar_MuHoEnergyOverPt;
199     Float_t fMVAVar_MuEmEnergyOverPt;
200     Float_t fMVAVar_MuHadS9EnergyOverPt;
201     Float_t fMVAVar_MuHoS9EnergyOverPt;
202     Float_t fMVAVar_MuEmS9EnergyOverPt;
203 sixie 1.6 Float_t fMVAVar_MuHadEnergy;
204     Float_t fMVAVar_MuEmEnergy;
205     Float_t fMVAVar_MuHadS9Energy;
206     Float_t fMVAVar_MuEmS9Energy;
207 sixie 1.2 Float_t fMVAVar_MuChargedIso03OverPt;
208     Float_t fMVAVar_MuNeutralIso03OverPt;
209     Float_t fMVAVar_MuChargedIso04OverPt;
210     Float_t fMVAVar_MuNeutralIso04OverPt;
211 sixie 1.5 Float_t fMVAVar_MuTrkIso03OverPt;
212     Float_t fMVAVar_MuEMIso03OverPt;
213     Float_t fMVAVar_MuHadIso03OverPt;
214     Float_t fMVAVar_MuTrkIso05OverPt;
215     Float_t fMVAVar_MuEMIso05OverPt;
216     Float_t fMVAVar_MuHadIso05OverPt;
217 sixie 1.1
218 sixie 1.6 Float_t fMVAVar_ChargedIso_DR0p0To0p1;
219     Float_t fMVAVar_ChargedIso_DR0p1To0p2;
220     Float_t fMVAVar_ChargedIso_DR0p2To0p3;
221     Float_t fMVAVar_ChargedIso_DR0p3To0p4;
222     Float_t fMVAVar_ChargedIso_DR0p4To0p5;
223     Float_t fMVAVar_ChargedIso_DR0p5To0p7;
224     Float_t fMVAVar_GammaIso_DR0p0To0p1;
225     Float_t fMVAVar_GammaIso_DR0p1To0p2;
226     Float_t fMVAVar_GammaIso_DR0p2To0p3;
227     Float_t fMVAVar_GammaIso_DR0p3To0p4;
228     Float_t fMVAVar_GammaIso_DR0p4To0p5;
229     Float_t fMVAVar_GammaIso_DR0p5To0p7;
230     Float_t fMVAVar_NeutralHadronIso_DR0p0To0p1;
231     Float_t fMVAVar_NeutralHadronIso_DR0p1To0p2;
232     Float_t fMVAVar_NeutralHadronIso_DR0p2To0p3;
233     Float_t fMVAVar_NeutralHadronIso_DR0p3To0p4;
234     Float_t fMVAVar_NeutralHadronIso_DR0p4To0p5;
235     Float_t fMVAVar_NeutralHadronIso_DR0p5To0p7;
236    
237 ceballos 1.8 // isolation variables II
238     Float_t fMVAVar_MuRelIsoPFCharged;
239     Float_t fMVAVar_MuRelIsoPFNeutral;
240     Float_t fMVAVar_MuRelIsoPFPhotons;
241     Float_t fMVAVar_MuDeltaRMean;
242     Float_t fMVAVar_MuDeltaRSum;
243     Float_t fMVAVar_MuDensity;
244    
245    
246 sixie 1.1 ClassDef(MuonIDMVA, 0) // Muon MVA
247     };
248     }
249    
250     #endif