ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/MitPhysics/Utils/interface/JetIDMVA.h
Revision: 1.6
Committed: Mon May 14 09:42:26 2012 UTC (12 years, 11 months ago) by pharris
Content type: text/plain
Branch: MAIN
Changes since 1.5: +7 -2 lines
Log Message:
Added final MVA

File Contents

# Content
1 //--------------------------------------------------------------------------------------------------
2 // $Id $
3 //
4 // JetIDMVA
5 //
6 // Helper Class for Jet Id MVA
7 //
8 // Authors: P. Harris
9 //--------------------------------------------------------------------------------------------------
10
11 #ifndef MITPHYSICS_UTILS_JetIDMVA_H
12 #define MITPHYSICS_UTILS_JetIDMVA_H
13
14 #include "CondFormats/JetMETObjects/interface/FactorizedJetCorrector.h"
15 #include "MitAna/DataTree/interface/PFJetFwd.h"
16 #include "MitAna/DataTree/interface/VertexFwd.h"
17 #include "MitAna/DataTree/interface/TrackFwd.h"
18 #include "MitAna/DataTree/interface/PFJet.h"
19 #include "MitAna/DataTree/interface/PFJetCol.h"
20 #include "MitAna/DataTree/interface/PFCandidateCol.h"
21 #include "MitAna/DataTree/interface/PileupEnergyDensityCol.h"
22 #include "MitCommon/MathTools/interface/MathUtils.h"
23
24 // for Rho definitons
25 #include "MitPhysics/Utils/interface/RhoUtilities.h"
26
27 class TRandom3;
28 namespace TMVA {
29 class Reader;
30 }
31
32 namespace mithep {
33 class JetIDMVA {
34 public:
35 JetIDMVA();
36 ~JetIDMVA();
37
38 enum MVAType {
39 kBaseline = 0,
40 k42 = 1,
41 k52 = 2
42 };
43
44 enum CutType {
45 kTight = 0,
46 kMedium = 1,
47 kLoose = 2,
48 kMET = 3
49 };
50
51 void Initialize(JetIDMVA::CutType iCutType,
52 TString iLowPtWeights ="$CMSSW_BASE/src/MitPhysics/data/mva_JetID_lowpt.weights.xml",
53 TString iHighPtWeights="$CMSSW_BASE/src/MitPhysics/data/mva_JetID_highpt.weights.xml",
54 JetIDMVA::MVAType iType=kBaseline,
55 TString iCutFileName ="$CMSSW_BASE/src/MitPhysics/Utils/python/JetIdParams_cfi.py");
56
57 Bool_t IsInitialized() const { return fIsInitialized; }
58 Double_t MVAValue(
59 Float_t iNPV ,
60 Float_t iJPt1 ,
61 Float_t iJEta1 ,
62 Float_t iJPhi1 ,
63 Float_t iJD01 ,
64 Float_t iJDZ1 ,
65 Float_t iBeta ,
66 Float_t iBetaStar,
67 Float_t iNCharged,
68 Float_t iNNeutrals,
69 Float_t iDRMean ,
70 Float_t iFrac01 ,
71 Float_t iFrac02 ,
72 Float_t iFrac03 ,
73 Float_t iFrac04 ,
74 Float_t iFrac05 ,
75 Float_t iDR2Mean
76 );
77
78 //UNcorrected Jets
79 Bool_t pass(const PFJet *iJet,const Vertex *iVertex,const VertexCol *iVertices,
80 FactorizedJetCorrector *iJetCorrector,
81 const PileupEnergyDensityCol *iPileupEnergyDensity,
82 RhoUtilities::RhoType type = RhoUtilities::DEFAULT);
83
84 //Corrected Jets
85 Bool_t pass(const PFJet *iJet,const Vertex *iVertex,const VertexCol *iVertices);
86
87 //Uncorrected Jets
88 Double_t MVAValue(const PFJet *iJet,const Vertex *iVertex,const VertexCol *iVertices,
89 FactorizedJetCorrector *iJetCorrector,
90 const PileupEnergyDensityCol *iPileupEnergyDensity,
91 Bool_t printDebug=false);
92
93 //Corrected Jets
94 Double_t MVAValue(const PFJet *iJet,const Vertex *iVertex,const VertexCol *iVertices,
95 Bool_t printDebug=false);
96
97
98 double correctedPt(const PFJet *iJet, FactorizedJetCorrector *iJetCorrector,
99 const PileupEnergyDensityCol *iPUEnergyDensity,
100 RhoUtilities::RhoType type = RhoUtilities::DEFAULT);
101
102 Float_t fJetPtMin;
103 Float_t fDZCut;
104
105 protected:
106 TMVA::Reader *fReader;
107 TMVA::Reader *fLowPtReader;
108 TString fLowPtMethodName;
109 TString fHighPtMethodName;
110 MVAType fType;
111 CutType fCutType;
112 Bool_t fIsInitialized;
113 Float_t fMVACut[4][4]; //Fix the cut array
114
115 Float_t fNVtx ;
116 Float_t fJPt1 ;
117 Float_t fJEta1 ;
118 Float_t fJPhi1 ;
119 Float_t fJD01 ;
120 Float_t fJDZ1 ;
121 Float_t fBeta ;
122 Float_t fBetaStar ;
123 Float_t fNCharged ;
124 Float_t fNNeutrals;
125 Float_t fDRMean ;
126 Float_t fFrac01 ;
127 Float_t fFrac02 ;
128 Float_t fFrac03 ;
129 Float_t fFrac04 ;
130 Float_t fFrac05 ;
131 Float_t fDR2Mean ;
132
133 ClassDef(JetIDMVA,0)
134 };
135 }
136
137
138 #endif