8 |
|
|
9 |
|
#ifndef MITPHYSICS_UTILS_MVAMet_H |
10 |
|
#define MITPHYSICS_UTILS_MVAMet_H |
11 |
< |
|
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" |
25 |
|
#include "MitCommon/MathTools/interface/MathUtils.h" |
26 |
|
|
27 |
|
#include "MitPhysics/Utils/interface/RecoilTools.h" |
28 |
< |
#include "MitPhysics/Utils/interface/GBRForest.h" |
28 |
> |
#include "MitPhysics/Utils/interface/MetLeptonTools.h" |
29 |
> |
#include "CondFormats/EgammaObjects/interface/GBRForest.h" |
30 |
|
|
31 |
|
class TRandom3; |
32 |
+ |
class GBRForest; |
33 |
|
|
34 |
|
namespace mithep { |
35 |
|
class MVAMet { |
53 |
|
TString iJetCutFile ="$CMSSW_BASE/src/MitPhysics/data/mva_RecoilPhiRegress_baseline.weights.xml", |
54 |
|
TString iU1Weights ="$CMSSW_BASE/src/MitPhysics/data/gbrmet.root", |
55 |
|
TString iPhiWeights ="$CMSSW_BASE/src/MitPhysics/data/gbrmetphi.root", |
56 |
+ |
TString iCovU1Weights ="$CMSSW_BASE/src/MitPhysics/data/gbrcovu1_52.root", |
57 |
+ |
TString iCovU2Weights ="$CMSSW_BASE/src/MitPhysics/data/gbrcovu2_52.root", |
58 |
|
MVAMet::MVAType iType=kBaseline); |
59 |
|
|
60 |
|
Bool_t IsInitialized() const { return fIsInitialized; } |
61 |
+ |
Float_t* getVals(); |
62 |
|
Double_t evaluatePhi(); |
63 |
|
Double_t evaluateU1(); |
64 |
+ |
Double_t evaluateCovU1(); |
65 |
+ |
Double_t evaluateCovU2(); |
66 |
|
Double_t MVAValue( bool iPhi, |
67 |
|
Float_t iPFSumEt, |
68 |
|
Float_t iU , |
89 |
|
Float_t iNAllJet, |
90 |
|
Float_t iNPV ); |
91 |
|
|
92 |
< |
Met GetMet( Bool_t iPhi,Float_t iPtVis,Float_t iPhiVis,Float_t iSumEtVis, |
92 |
> |
Met GetMet( Bool_t iPhi, |
93 |
> |
Float_t iPtVis,Float_t iPhiVis,Float_t iSumEtVis, |
94 |
> |
Float_t iPtQ ,Float_t iPhiQ ,Float_t iSumEtQ, |
95 |
|
const PFMet *iMet , |
96 |
|
const PFCandidateCol *iCands, |
97 |
|
const Vertex *iVertex,const VertexCol *iVertices, |
101 |
|
int iNPV, |
102 |
|
Bool_t printDebug=false); |
103 |
|
|
104 |
< |
Met GetMet( Bool_t iPhi,Float_t iPtVis,Float_t iPhiVis,Float_t iSumEtVis, |
104 |
> |
Met GetMet( Bool_t iPhi, |
105 |
> |
Float_t iPtVis,Float_t iPhiVis,Float_t iSumEtVis, |
106 |
> |
Float_t iPtQ ,Float_t iPhiQ ,Float_t iSumEtQ, |
107 |
|
const PFMet *iMet , |
108 |
|
const PFCandidateCol *iCands, |
109 |
< |
const Vertex *iVertex,const VertexCol *iVertices, |
109 |
> |
const Vertex *iVertex,const VertexCol *iVertices,Double_t iRho, |
110 |
|
const PFJetCol *iJets , |
111 |
|
int iNPV, |
112 |
|
Bool_t printDebug=false); |
113 |
|
|
114 |
|
Met GetMet( Bool_t iPhi, |
115 |
< |
Float_t iPt1,Float_t iPhi1,Float_t iEta1, |
116 |
< |
Float_t iPt2,Float_t iPhi2,Float_t iEta2, |
115 |
> |
Float_t iPt1,Float_t iPhi1,Float_t iEta1,Float_t iChargedFrac1, |
116 |
> |
Float_t iPt2,Float_t iPhi2,Float_t iEta2,Float_t iChargedFrac2, |
117 |
|
const PFMet *iMet , |
118 |
|
const PFCandidateCol *iCands, |
119 |
|
const Vertex *iVertex,const VertexCol *iVertices, |
121 |
|
FactorizedJetCorrector *iJetCorrector, |
122 |
|
const PileupEnergyDensityCol *iPUEnergyDensity, |
123 |
|
int iNPV, |
124 |
< |
Bool_t printDebug); |
124 |
> |
Bool_t printDebug=false); |
125 |
|
|
126 |
|
Met GetMet( Bool_t iPhi, |
127 |
< |
Float_t iPt1,Float_t iPhi1,Float_t iEta1, |
128 |
< |
Float_t iPt2,Float_t iPhi2,Float_t iEta2, |
127 |
> |
Float_t iPt1,Float_t iPhi1,Float_t iEta1,Float_t iChargedFrac1, |
128 |
> |
Float_t iPt2,Float_t iPhi2,Float_t iEta2,Float_t iChargedFrac2, |
129 |
|
const PFMet *iMet , |
130 |
|
const PFCandidateCol *iCands, |
131 |
< |
const Vertex *iVertex,const VertexCol *iVertices, |
131 |
> |
const Vertex *iVertex,const VertexCol *iVertices,Double_t iRho, |
132 |
|
const PFJetCol *iJets , |
133 |
|
int iNPV, |
134 |
< |
Bool_t printDebug); |
135 |
< |
|
134 |
> |
Bool_t printDebug=false); |
135 |
> |
|
136 |
> |
Met GetMet( const MuonCol *iMuons,const ElectronCol *iElectrons,const PFTauCol *iTaus, |
137 |
> |
const PFCandidateCol *iCands,const PFJetCol *iJets,const Vertex *iPV,const VertexCol *iVertices,const PFMetCol *iPFMet, |
138 |
> |
FactorizedJetCorrector *iJetCorrector,const PileupEnergyDensityCol* iPUEnergyDensity); |
139 |
> |
|
140 |
> |
TMatrixD* GetMetCovariance() { return fCov; } |
141 |
> |
Float_t GetSignificance () { return fSignificance;} |
142 |
> |
Float_t GetUncertainty () { return fUncertainty;} |
143 |
|
RecoilTools *fRecoilTools; |
144 |
|
|
145 |
|
protected: |
146 |
|
TString fPhiMethodName; |
147 |
|
TString fU1MethodName; |
148 |
+ |
TString fCovU1MethodName; |
149 |
+ |
TString fCovU2MethodName; |
150 |
|
Bool_t fIsInitialized; |
151 |
|
MVAType fType; |
152 |
+ |
Bool_t f42; |
153 |
|
|
154 |
+ |
Float_t fSumEt ; |
155 |
|
Float_t fU ; |
156 |
|
Float_t fUPhi ; |
157 |
|
Float_t fTKSumEt; |
176 |
|
Float_t fNAllJet; |
177 |
|
Float_t fNPV ; |
178 |
|
Float_t fUPhiMVA; |
179 |
+ |
Float_t fUMVA; |
180 |
|
|
181 |
|
Float_t* fPhiVals; |
182 |
|
Float_t* fU1Vals; |
183 |
< |
|
183 |
> |
Float_t* fCovVals; |
184 |
|
|
185 |
|
GBRForest *fPhiReader; |
186 |
|
GBRForest *fU1Reader; |
187 |
+ |
GBRForest *fCovU1Reader; |
188 |
+ |
GBRForest *fCovU2Reader; |
189 |
+ |
|
190 |
+ |
Float_t fSignificance; |
191 |
+ |
Float_t fUncertainty; |
192 |
+ |
TMatrixD *fCov; |
193 |
+ |
|
194 |
+ |
Int_t fNMuons; |
195 |
+ |
Int_t fNElectrons; |
196 |
+ |
Int_t fNTaus; |
197 |
+ |
|
198 |
+ |
MetLeptonTools *fMetLeptonTools; |
199 |
|
//TMVA::Reader* fPhiReader; |
200 |
|
//TMVA::Reader* fU1Reader; |
201 |
|
ClassDef(MVAMet,0) |