ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/MitPhysics/Utils/interface/MVAMet.h
Revision: 1.15
Committed: Mon Jun 17 22:16:34 2013 UTC (11 years, 10 months ago) by pharris
Content type: text/plain
Branch: MAIN
CVS Tags: HEAD
Changes since 1.14: +4 -2 lines
Log Message:
Updated 42 MVAMet

File Contents

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