ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/MitPhysics/Utils/interface/MuonIDMVA.h
(Generate patch)

Comparing UserCode/MitPhysics/Utils/interface/MuonIDMVA.h (file contents):
Revision 1.2 by sixie, Wed Dec 21 14:16:54 2011 UTC vs.
Revision 1.10 by anlevin, Sat May 12 00:06:24 2012 UTC

# Line 1 | Line 1
1   //--------------------------------------------------------------------------------------------------
2   // $Id $
3   //
4 < // ElectronIDMVA
4 > // MuonIDMVA
5   //
6   // Helper Class for Muon Identification MVA
7   //
# Line 16 | Line 16
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 {
# Line 30 | Line 37 | namespace mithep {
37        ~MuonIDMVA();
38  
39        enum MVAType {
40 +        kUninitialized,
41          kV2,
42          kV3,
43 <        kV8
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 ,
# Line 43 | Line 65 | namespace mithep {
65                            TString Subdet1Pt14p5To20Weights,
66                            TString Subdet0Pt20ToInfWeights,
67                            TString Subdet1Pt20ToInfWeights,
68 <                          MuonIDMVA::MVAType type);
69 <      
68 >                          MuonIDMVA::MVAType type,
69 >                          RhoUtilities::RhoType theRhoType = RhoUtilities::DEFAULT);
70 >
71        Bool_t   IsInitialized() const { return fIsInitialized; }
72 < //       Double_t MVAValue(const Muon *mu, const Vertex *vertex);
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,
# Line 69 | Line 104 | namespace mithep {
104                           Double_t                   MuChargedIso03OverPt,
105                           Double_t                   MuNeutralIso03OverPt,
106                           Double_t                   MuChargedIso04OverPt,
107 <                         Double_t                   MuNeutralIso04OverPt
107 >                         Double_t                   MuNeutralIso04OverPt,
108 >                         Bool_t                     printDebug = kFALSE
109          );
110 <
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 <      TMVA::Reader            *fTMVAReader[6];
178 <      TString                  fMethodname;
79 <      
177 >      std::vector<TMVA::Reader*> fTMVAReader;
178 >      TString                   fMethodname;
179        Bool_t                    fIsInitialized;
180 <      
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;
# Line 97 | Line 202 | namespace mithep {
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  
105      
248      ClassDef(MuonIDMVA, 0) // Muon MVA
249        };
250   }

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines