ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/MitPhysics/Utils/interface/RecoilTools.h
Revision: 1.7
Committed: Fri May 18 17:02:14 2012 UTC (12 years, 11 months ago) by pharris
Content type: text/plain
Branch: MAIN
CVS Tags: Mit_028a
Changes since 1.6: +33 -2 lines
Log Message:
updated regression MET for Tau

File Contents

# Content
1 //--------------------------------------------------------------------------------------------------
2 // $Id $
3 //
4 // Recoil Tools
5 //
6 // Helper Class for Recoil Tools
7 //
8 // Authors: P. Harris
9 //--------------------------------------------------------------------------------------------------
10
11 #ifndef MITPHYSICS_UTILS_RecoilTools_H
12 #define MITPHYSICS_UTILS_RecoilTools_H
13
14 #include "MitAna/DataTree/interface/PFJetFwd.h"
15 #include "MitAna/DataTree/interface/VertexFwd.h"
16 #include "MitAna/DataTree/interface/TrackFwd.h"
17 #include "MitAna/DataTree/interface/PFMet.h"
18 #include "MitAna/DataTree/interface/PFMetCol.h"
19 #include "MitAna/DataTree/interface/PFJet.h"
20 #include "MitAna/DataTree/interface/PFJetCol.h"
21 #include "MitAna/DataTree/interface/PFCandidateCol.h"
22 #include "MitAna/DataTree/interface/PileupEnergyDensityCol.h"
23 #include "MitCommon/MathTools/interface/MathUtils.h"
24
25 #include "MitPhysics/Utils/interface/JetIDMVA.h"
26
27 class TRandom3;
28
29 namespace mithep {
30 class RecoilTools {
31 public:
32 RecoilTools(TString iJetLowPtMVAFile ="$CMSSW_BASE/src/MitPhysics/data/mva_JetID_lowpt.weights.xml",
33 TString iJetHighPtMVAFile="$CMSSW_BASE/src/MitPhysics/data/mva_JetID_highpt.weights.xml",
34 TString iCutFile ="$CMSSW_BASE/src/MitPhysics/Utils/python/JetIdParams_cfi.py");
35 ~RecoilTools();
36 JetIDMVA *fJetIDMVA;
37
38 Met pfRecoil(Double_t iVisPt,Double_t iVisPhi,Double_t iVisSumEt,const PFCandidateCol *iCands);
39 //Candidate filtered
40 Met pfRecoil(double iPhi1,double iEta1,double iPhi2,double iEta2,const PFCandidateCol *iCands);
41
42 Met trackMet(const PFCandidateCol *iCands,const Vertex *iVertex,Double_t iDZCut=0.1);
43
44 //Candidate filtered
45 Met trackRecoil(double iPhi1,double iEta1,double iPhi2,double iEta2,
46 const PFCandidateCol *iCands,const Vertex *iVertex,Double_t iDZCut=0.1);
47
48 Met trackRecoil(Double_t iVisPt,Double_t iVisPhi,Double_t iVisSumEt,
49 const PFCandidateCol *iCands,const Vertex *iVertex,double iDZCut=0.1);
50
51 bool filter (const PFJet *iJet,Double_t iPhi1,Double_t iEta1,Double_t iPhi2,Double_t iEta2);
52
53 bool filter(const PFCandidate *iCand,Double_t iPhi1,Double_t iEta1,Double_t iPhi2,Double_t iEta2);
54 //Uncorrected Jets
55 void addNeut(const PFJet *iJet,FourVectorM &iVec,Double_t &iSumEt,
56 FactorizedJetCorrector *iJetCorrector,const PileupEnergyDensityCol *iPUEnergyDensity,
57 int iSign=1);
58
59 //Corrected Jets
60 void addNeut(const PFJet *iJet,FourVectorM &iVec,Double_t &iSumEt,Double_t iRho,
61 int iSign=1);
62
63 //Uncorrected Jets
64 Met NoPUMet( const PFJetCol *iJets,FactorizedJetCorrector *iJetCorrector,
65 const PileupEnergyDensityCol *iPileupEnergyDensity,
66 const PFCandidateCol *iCands,const Vertex *iVertex,const VertexCol *iVertices,
67 Double_t iPhi1=1000,Double_t iEta1=1000,Double_t iPhi2=1000,Double_t iEta2=1000,
68 Double_t iDZCut=0.1);
69 //Corrected Jets
70 Met NoPUMet( const PFJetCol *iJets,
71 const PFCandidateCol *iCands,const Vertex *iVertex,const VertexCol *iVertices,Double_t iRho,
72 Double_t iPhi1=1000,Double_t iEta1=1000,Double_t iPhi2=1000,Double_t iEta2=1000,
73 Double_t iDZCut=0.1);
74
75 //Candidate filtered
76 Met NoPURecoil(Double_t iPhi1,Double_t iEta1,Double_t iPhi2,Double_t iEta2,
77 const PFJetCol *iJets,
78 const PFCandidateCol *iCands ,
79 const Vertex *iVertex,const VertexCol *iVertices,
80 FactorizedJetCorrector *iJetCorrector=0,
81 const PileupEnergyDensityCol *iPileupEnergyDensity=0,Double_t iDZCut=0.1);
82 //UnCorrrected Jets
83 Met NoPURecoil(Double_t iVisPt,Double_t iVisPhi,Double_t iVisSumEt,
84 const PFJetCol *iJets,FactorizedJetCorrector *iJetCorrector,
85 const PileupEnergyDensityCol *iPileupEnergyDensity,
86 const PFCandidateCol *iCands,const Vertex *iVertex,const VertexCol *iVertices,
87 Double_t iPhi1=1000,Double_t iEta1=1000,Double_t iPhi2=1000,Double_t iEta2=1000,
88 Double_t iDZCut=0.1);
89
90 //Corrrected Jets
91 Met NoPURecoil(Double_t iVisPt,Double_t iVisPhi,Double_t iVisSumEt,
92 const PFJetCol *iJets,
93 const PFCandidateCol *iCands,const Vertex *iVertex,const VertexCol *iVertices,Double_t iRho,
94 Double_t iPhi1=1000,Double_t iEta1=1000,Double_t iPhi2=1000,Double_t iEta2=1000,
95 Double_t iDZCut=0.1);
96
97 //Uncorrected Jets
98 Met PUCMet( const PFJetCol *iJets,FactorizedJetCorrector *iJetCorrector,
99 const PileupEnergyDensityCol *iPileupEnergyDensity,
100 const PFCandidateCol *iCands,const Vertex *iVertex,const VertexCol *iVertices,
101 Double_t iPhi1=1000,Double_t iEta1=1000,Double_t iPhi2=1000,Double_t iEta2=1000,
102 Double_t iDZCut=0.1);
103
104 //Corrected Jets
105 Met PUCMet( const PFJetCol *iJets,
106 const PFCandidateCol *iCands,const Vertex *iVertex,const VertexCol *iVertices,Double_t iRho,
107 Double_t iPhi1=1000,Double_t iEta1=1000,Double_t iPhi2=1000,Double_t iEta2=1000,
108 Double_t iDZCut=0.1);
109
110 //Candidate Filtered
111 Met PUCRecoil( Double_t iPhi1,Double_t iEta1,Double_t iPhi2,Double_t iEta2,
112 const PFJetCol *iJets,
113 const PFCandidateCol *iCands,
114 const Vertex *iVertex,const VertexCol *iVertices,
115 FactorizedJetCorrector *iJetCorrector=0,
116 const PileupEnergyDensityCol *iPileupEnergyDensity=0,Double_t iDZCut=0.1);
117
118 //Uncorrected Jets
119 Met PUCRecoil(Double_t iVisPt,Double_t iVisPhi,Double_t iVisSumEt,
120 const PFJetCol *iJets,FactorizedJetCorrector *iJetCorrector,
121 const PileupEnergyDensityCol *iPileupEnergyDensity,
122 const PFCandidateCol *iCands,const Vertex *iVertex,const VertexCol *iVertices,
123 Double_t iPhi1=1000,Double_t iEta1=1000,Double_t iPhi2=1000,Double_t iEta2=1000,
124 Double_t iDZCut=0.1);
125
126 //Corrected Jets
127 Met PUCRecoil(Double_t iVisPt,Double_t iVisPhi,Double_t iVisSumEt,
128 const PFJetCol *iJets,
129 const PFCandidateCol *iCands,const Vertex *iVertex,const VertexCol *iVertices,Double_t iRho,
130 Double_t iPhi1=1000,Double_t iEta1=1000,Double_t iPhi2=1000,Double_t iEta2=1000,
131 Double_t iDZCut=0.1);
132
133 //Uncorrected Jets
134 Met PUMet( const PFJetCol *iJets,FactorizedJetCorrector *iJetCorrector,
135 const PileupEnergyDensityCol *iPileupEnergyDensity,
136 const PFCandidateCol *iCands,const Vertex *iVertex,const VertexCol *iVertices,
137 Double_t iPhi1=1000,Double_t iEta1=1000,Double_t iPhi2=1000,Double_t iEta2=1000,
138 Double_t iDZCut=0.2);
139
140 //Corrected Jets
141 Met PUMet( const PFJetCol *iJets,
142 const PFCandidateCol *iCands,const Vertex *iVertex,const VertexCol *iVertices,Double_t iRho,
143 Double_t iPhi1=1000,Double_t iEta1=1000,Double_t iPhi2=1000,Double_t iEta2=1000,
144 Double_t iDZCut=0.2);
145
146 //Candidate Filtered
147 Met PUMet( Double_t iPhi1,Double_t iEta1,Double_t iPhi2,Double_t iEta2,
148 const PFJetCol *iJets,
149 const PFCandidateCol *iCands,
150 const Vertex *iVertex,const VertexCol *iVertices,
151 FactorizedJetCorrector *iJetCorrector=0,
152 const PileupEnergyDensityCol *iPileupEnergyDensity=0,Double_t iDZCut=0.2);
153
154 //Uncorrected Jets
155 Met PURecoil(Double_t iVisPt,Double_t iVisPhi,Double_t iVisSumEt,
156 const PFJetCol *iJets,FactorizedJetCorrector *iJetCorrector,
157 const PileupEnergyDensityCol *iPileupEnergyDensity,
158 const PFCandidateCol *iCands,const Vertex *iVertex,const VertexCol *iVertices,
159 Double_t iPhi1=1000,Double_t iEta1=1000,Double_t iPhi2=1000,Double_t iEta2=1000,
160 Double_t iDZCut=0.1);
161
162 //Corrected Jets
163 Met PURecoil(Double_t iVisPt,Double_t iVisPhi,Double_t iVisSumEt,
164 const PFJetCol *iJets,
165 const PFCandidateCol *iCands,const Vertex *iVertex,const VertexCol *iVertices,Double_t iRho,
166 Double_t iPhi1=1000,Double_t iEta1=1000,Double_t iPhi2=1000,Double_t iEta2=1000,
167 Double_t iDZCut=0.1);
168
169 ClassDef(RecoilTools, 0) // Recoil tools
170 };
171 }
172 #endif