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.5 by sixie, Mon Jan 23 20:05:20 2012 UTC vs.
Revision 1.9 by ceballos, Mon May 7 18:06:07 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 {
30    class Reader;
# Line 33 | Line 37 | namespace mithep {
37        ~MuonIDMVA();
38  
39        enum MVAType {
40 +        kUninitialized,
41          kV2,
42          kV3,
43          kV8,
44 <        kIDIsoCombinedDetIso
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 47 | 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 +      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,
# Line 106 | Line 134 | namespace mithep {
134                           Double_t                   MuHadIso05OverPt,
135                           Bool_t                     printDebug = kFALSE
136          );
137 <
137 >      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  
174      protected:      
175 <      TMVA::Reader            *fTMVAReader[6];
176 <      TString                  fMethodname;
114 <      
175 >      std::vector<TMVA::Reader*> fTMVAReader;
176 >      TString                   fMethodname;
177        Bool_t                    fIsInitialized;
178 <      
178 >      MVAType                   fMVAType;
179 >      Bool_t                    fUseBinnedVersion;
180 >      UInt_t                    fNMVABins;
181 >      RhoUtilities::RhoType     fTheRhoType;
182 >
183 >      Float_t                   fMVAVar_MuPt;
184 >      Float_t                   fMVAVar_MuEta;
185        Float_t                   fMVAVar_MuTkNchi2;
186        Float_t                   fMVAVar_MuGlobalNchi2;
187        Float_t                   fMVAVar_MuNValidHits;
# Line 132 | Line 200 | namespace mithep {
200        Float_t                   fMVAVar_MuHadS9EnergyOverPt;
201        Float_t                   fMVAVar_MuHoS9EnergyOverPt;
202        Float_t                   fMVAVar_MuEmS9EnergyOverPt;
203 +      Float_t                   fMVAVar_MuHadEnergy;
204 +      Float_t                   fMVAVar_MuEmEnergy;
205 +      Float_t                   fMVAVar_MuHadS9Energy;
206 +      Float_t                   fMVAVar_MuEmS9Energy;
207        Float_t                   fMVAVar_MuChargedIso03OverPt;
208        Float_t                   fMVAVar_MuNeutralIso03OverPt;
209        Float_t                   fMVAVar_MuChargedIso04OverPt;
# Line 143 | Line 215 | namespace mithep {
215        Float_t                   fMVAVar_MuEMIso05OverPt;
216        Float_t                   fMVAVar_MuHadIso05OverPt;
217  
218 <      
218 >      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 >    // 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      ClassDef(MuonIDMVA, 0) // Muon MVA
247        };
248   }

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines