ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/MitPhysics/Utils/interface/MVAMet.h
Revision: 1.8
Committed: Tue Apr 24 15:37:14 2012 UTC (13 years ago) by bendavid
Content type: text/plain
Branch: MAIN
Changes since 1.7: +1 -1 lines
Log Message:
Migrate to 52x version of GBRForest and Tree

File Contents

# Content
1 //--------------------------------------------------------------------------------------------------
2 // $Id $
3 //
4 // Met Regression
5 //
6 // Authors: P. Harris
7 //--------------------------------------------------------------------------------------------------
8
9 #ifndef MITPHYSICS_UTILS_MVAMet_H
10 #define MITPHYSICS_UTILS_MVAMet_H
11 #include <TMatrixD.h>
12 #include "MitAna/DataTree/interface/PFJetFwd.h"
13 #include "MitAna/DataTree/interface/VertexFwd.h"
14 #include "MitAna/DataTree/interface/TrackFwd.h"
15 #include "MitAna/DataTree/interface/Met.h"
16 #include "MitAna/DataTree/interface/PFMet.h"
17 #include "MitAna/DataTree/interface/PFMetCol.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 #include "MitPhysics/Utils/interface/RecoilTools.h"
25
26 class TRandom3;
27 class GBRForest;
28
29 namespace mithep {
30 class MVAMet {
31 public:
32 MVAMet();
33 ~MVAMet();
34 enum MVAType {
35 kBaseline = 0
36 };
37
38 //void setVariables(TMVA::Reader *iReader,bool iScale);
39 //void Initialize( TString iU1MethodName="U1MVA",
40 // TString iPhiMethodName="PhiMVA",
41 // TString iJetMVAFile="$CMSSW_BASE/src/MitPhysics/data/mva_RecoilPhiRegress_baseline.weights.xml",
42 // TString iU1Weights="$CMSSW_BASE/src/MitPhysics/data/mva_RecoilRegress_baseline.weights.xml",
43 // TString iPhiWeights="$CMSSW_BASE/src/MitPhysics/data/mva_JetID.weights.xml",
44 // MVAType iType=kBaseline);
45 void Initialize(
46 TString iJetLowPtFile ="$CMSSW_BASE/src/MitPhysics/data/mva_RecoilPhiRegress_baseline.weights.xml",
47 TString iJetHighPtFile="$CMSSW_BASE/src/MitPhysics/data/mva_RecoilPhiRegress_baseline.weights.xml",
48 TString iJetCutFile ="$CMSSW_BASE/src/MitPhysics/data/mva_RecoilPhiRegress_baseline.weights.xml",
49 TString iU1Weights ="$CMSSW_BASE/src/MitPhysics/data/gbrmet.root",
50 TString iPhiWeights ="$CMSSW_BASE/src/MitPhysics/data/gbrmetphi.root",
51 TString iCovU1Weights ="$CMSSW_BASE/src/MitPhysics/data/gbrcovu1_52.root",
52 TString iCovU2Weights ="$CMSSW_BASE/src/MitPhysics/data/gbrcovu2_52.root",
53 MVAMet::MVAType iType=kBaseline);
54
55 Bool_t IsInitialized() const { return fIsInitialized; }
56 Double_t evaluatePhi();
57 Double_t evaluateU1();
58 Double_t evaluateCovU1();
59 Double_t evaluateCovU2();
60 Double_t MVAValue( bool iPhi,
61 Float_t iPFSumEt,
62 Float_t iU ,
63 Float_t iUPhi ,
64 Float_t iTKSumEt,
65 Float_t iTKU ,
66 Float_t iTKUPhi ,
67 Float_t iNPSumEt,
68 Float_t iNPU ,
69 Float_t iNPUPhi ,
70 Float_t iPUSumEt,
71 Float_t iPUMet ,
72 Float_t iPUMetPhi,
73 Float_t iPCSumEt,
74 Float_t iPCU ,
75 Float_t iPCUPhi ,
76 Float_t iJSPt1 ,
77 Float_t iJSEta1 ,
78 Float_t iJSPhi1 ,
79 Float_t iJSPt2 ,
80 Float_t iJSEta2 ,
81 Float_t iJSPhi2 ,
82 Float_t iNJet ,
83 Float_t iNAllJet,
84 Float_t iNPV );
85
86 Met GetMet( Bool_t iPhi,Float_t iPtVis,Float_t iPhiVis,Float_t iSumEtVis,
87 const PFMet *iMet ,
88 const PFCandidateCol *iCands,
89 const Vertex *iVertex,const VertexCol *iVertices,
90 const PFJetCol *iJets ,
91 FactorizedJetCorrector *iJetCorrector,
92 const PileupEnergyDensityCol *iPileupEnergyDensity,
93 int iNPV,
94 Bool_t printDebug=false);
95
96 Met GetMet( Bool_t iPhi,Float_t iPtVis,Float_t iPhiVis,Float_t iSumEtVis,
97 const PFMet *iMet ,
98 const PFCandidateCol *iCands,
99 const Vertex *iVertex,const VertexCol *iVertices,
100 const PFJetCol *iJets ,
101 int iNPV,
102 Bool_t printDebug=false);
103
104 Met GetMet( Bool_t iPhi,
105 Float_t iPt1,Float_t iPhi1,Float_t iEta1,
106 Float_t iPt2,Float_t iPhi2,Float_t iEta2,
107 const PFMet *iMet ,
108 const PFCandidateCol *iCands,
109 const Vertex *iVertex,const VertexCol *iVertices,
110 const PFJetCol *iJets ,
111 FactorizedJetCorrector *iJetCorrector,
112 const PileupEnergyDensityCol *iPUEnergyDensity,
113 int iNPV,
114 Bool_t printDebug=false);
115
116 Met GetMet( Bool_t iPhi,
117 Float_t iPt1,Float_t iPhi1,Float_t iEta1,
118 Float_t iPt2,Float_t iPhi2,Float_t iEta2,
119 const PFMet *iMet ,
120 const PFCandidateCol *iCands,
121 const Vertex *iVertex,const VertexCol *iVertices,
122 const PFJetCol *iJets ,
123 int iNPV,
124 Bool_t printDebug=false);
125
126 TMatrixD* GetMetCovariance() { return fCov; }
127 double GetSignificance () { return fSignificance;}
128 RecoilTools *fRecoilTools;
129
130 protected:
131 TString fPhiMethodName;
132 TString fU1MethodName;
133 TString fCovU1MethodName;
134 TString fCovU2MethodName;
135 Bool_t fIsInitialized;
136 MVAType fType;
137
138 Float_t fSumEt ;
139 Float_t fU ;
140 Float_t fUPhi ;
141 Float_t fTKSumEt;
142 Float_t fTKU ;
143 Float_t fTKUPhi ;
144 Float_t fNPSumEt;
145 Float_t fNPU ;
146 Float_t fNPUPhi ;
147 Float_t fPUSumEt;
148 Float_t fPUMet ;
149 Float_t fPUMetPhi ;
150 Float_t fPCSumEt;
151 Float_t fPCU ;
152 Float_t fPCUPhi ;
153 Float_t fJSPt1 ;
154 Float_t fJSEta1 ;
155 Float_t fJSPhi1 ;
156 Float_t fJSPt2 ;
157 Float_t fJSEta2 ;
158 Float_t fJSPhi2 ;
159 Float_t fNJet ;
160 Float_t fNAllJet;
161 Float_t fNPV ;
162 Float_t fUPhiMVA;
163 Float_t fUMVA;
164
165 Float_t* fPhiVals;
166 Float_t* fU1Vals;
167 Float_t* fCovVals;
168
169 GBRForest *fPhiReader;
170 GBRForest *fU1Reader;
171 GBRForest *fCovU1Reader;
172 GBRForest *fCovU2Reader;
173
174 Float_t fSignificance;
175 TMatrixD *fCov;
176
177 //TMVA::Reader* fPhiReader;
178 //TMVA::Reader* fU1Reader;
179 ClassDef(MVAMet,0)
180 };
181 }
182 #endif