ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/MitPhysics/Utils/interface/MVAMet.h
Revision: 1.12
Committed: Thu Aug 9 13:15:42 2012 UTC (12 years, 8 months ago) by pharris
Content type: text/plain
Branch: MAIN
Changes since 1.11: +11 -0 lines
Log Message:
Added New MVA Met

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