ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/MitAna/DataTree/interface/Jet.h
Revision: 1.25
Committed: Fri Mar 26 14:31:31 2010 UTC (15 years, 1 month ago) by sixie
Content type: text/plain
Branch: MAIN
CVS Tags: Mit_013d, Mit_013c, Mit_013b, Mit_013a
Changes since 1.24: +2 -2 lines
Log Message:
increment class ID by 1 from addition of jet moments

File Contents

# Content
1 //--------------------------------------------------------------------------------------------------
2 // $Id: Jet.h,v 1.24 2010/03/26 14:17:54 sixie Exp $
3 //
4 // Jet
5 //
6 // Base jet class to hold reconstructed jet information.
7 //
8 // Authors: S.Xie, C.Loizides, J.Bendavid
9 //--------------------------------------------------------------------------------------------------
10
11 #ifndef MITANA_DATATREE_JET_H
12 #define MITANA_DATATREE_JET_H
13
14 #include "MitCommon/DataFormats/interface/Vect4M.h"
15 #include "MitAna/DataTree/interface/Particle.h"
16
17 namespace mithep
18 {
19 class Jet : public Particle
20 {
21 public:
22 enum ECorr {
23 L1 = 0,
24 L2,
25 L3,
26 L4,
27 L5,
28 L6,
29 L7,
30 Custom
31 };
32
33 Jet() :
34 fAlpha(0), fBeta(0), fMatchedMCFlavor(0),
35 fJetProbabilityBJetTagsDisc(0), fJetBProbabilityBJetTagsDisc(0),
36 fSimpleSecondaryVertexBJetTagsDisc(0), fCombinedSecondaryVertexBJetTagsDisc(0),
37 fCombinedSecondaryVertexMVABJetTagsDisc(0), fTrackCountingHighEffBJetTagsDisc(0),
38 fTrackCountingHighPurBJetTagsDisc(0), fSoftMuonBJetTagsDisc(0),
39 fSoftMuonByIP3dBJetTagsDisc(0), fSoftMuonByPtBJetTagsDisc(0),
40 fSoftElectronByIP3dBJetTagsDisc(0), fSoftElectronByPtBJetTagsDisc(0),
41 fL2RelativeCorrectionScale(0), fL3AbsoluteCorrectionScale(0),
42 fL4EMFCorrectionScale(0), fL5FlavorCorrectionScale(0), fL7PartonCorrectionScale(0),
43 fCustomCorrectionScale(0) {}
44 Jet(Double_t px, Double_t py, Double_t pz, Double_t e) :
45 fRawMom(FourVector(px,py,pz,e)),
46 fAlpha(0), fBeta(0), fMatchedMCFlavor(0),
47 fJetProbabilityBJetTagsDisc(0), fJetBProbabilityBJetTagsDisc(0),
48 fSimpleSecondaryVertexBJetTagsDisc(0), fCombinedSecondaryVertexBJetTagsDisc(0),
49 fCombinedSecondaryVertexMVABJetTagsDisc(0), fTrackCountingHighEffBJetTagsDisc(0),
50 fTrackCountingHighPurBJetTagsDisc(0), fSoftMuonBJetTagsDisc(0),
51 fSoftMuonByIP3dBJetTagsDisc(0), fSoftMuonByPtBJetTagsDisc(0),
52 fSoftElectronByIP3dBJetTagsDisc(0), fSoftElectronByPtBJetTagsDisc(0),
53 fL2RelativeCorrectionScale(0), fL3AbsoluteCorrectionScale(0),
54 fL4EMFCorrectionScale(0), fL5FlavorCorrectionScale(0), fL7PartonCorrectionScale(0),
55 fCustomCorrectionScale(0) {}
56
57 Double_t Alpha() const { return fAlpha; }
58 Double_t Beta() const { return fBeta; }
59 Double_t CombinedSecondaryVertexBJetTagsDisc() const
60 { return fCombinedSecondaryVertexBJetTagsDisc; }
61 Double_t CombinedSecondaryVertexMVABJetTagsDisc() const
62 { return fCombinedSecondaryVertexMVABJetTagsDisc; }
63 Double_t CombinedCorrectionScale() const;
64 Double_t CustomCorrectionScale() const { return fCustomCorrectionScale; }
65 void DisableCorrection(ECorr c) { fCorrections.ClearBit(c); ClearMom(); }
66 void DisableCorrections() { fCorrections.Clear(); ClearMom(); }
67 void EnableCorrection(ECorr c) { fCorrections.SetBit(c); ClearMom(); }
68 Bool_t CorrectionActive(ECorr c) const { return fCorrections.TestBit(c); }
69 Double_t JetProbabilityBJetTagsDisc() const
70 { return fJetProbabilityBJetTagsDisc; }
71 Double_t JetBProbabilityBJetTagsDisc() const
72 { return fJetBProbabilityBJetTagsDisc; }
73 Int_t MatchedMCFlavor() const { return fMatchedMCFlavor; }
74 virtual Jet *MakeCopy() const { return new Jet(*this); }
75 virtual
76 UInt_t NConstituents() const { return 0; }
77 UInt_t N() const { return NConstituents(); }
78 Double_t L2RelativeCorrectionScale() const { return fL2RelativeCorrectionScale; }
79 Double_t L3AbsoluteCorrectionScale() const { return fL3AbsoluteCorrectionScale; }
80 Double_t L4EMFCorrectionScale() const { return fL4EMFCorrectionScale; }
81 Double_t L5FlavorCorrectionScale() const { return fL5FlavorCorrectionScale; }
82 Double_t L7PartonCorrectionScale() const { return fL7PartonCorrectionScale; }
83 EObjType ObjType() const { return kJet; }
84 Double_t SimpleSecondaryVertexBJetTagsDisc() const
85 { return fSimpleSecondaryVertexBJetTagsDisc; }
86 Double_t SoftMuonBJetTagsDisc() const
87 { return fSoftMuonBJetTagsDisc; }
88 Double_t SoftMuonByIP3dBJetTagsDisc() const
89 { return fSoftMuonByIP3dBJetTagsDisc; }
90 Double_t SoftMuonByPtBJetTagsDisc() const
91 { return fSoftMuonByPtBJetTagsDisc; }
92 Double_t SoftElectronByIP3dBJetTagsDisc() const
93 { return fSoftElectronByIP3dBJetTagsDisc; }
94 Double_t SoftElectronByPtBJetTagsDisc() const
95 { return fSoftElectronByPtBJetTagsDisc; }
96 Double_t TrackCountingHighEffBJetTagsDisc() const
97 { return fTrackCountingHighEffBJetTagsDisc; }
98 Double_t TrackCountingHighPurBJetTagsDisc() const
99 { return fTrackCountingHighPurBJetTagsDisc; }
100 FourVectorM RawMom() const { return fRawMom.V(); }
101 Double_t SigmaEta() const { return fSigmaEta; }
102 Double_t SigmaPhi() const { return fSigmaPhi; }
103 void SetAlpha(Double_t val) { fAlpha = val; }
104 void SetBeta(Double_t val) { fBeta = val; }
105 void SetSigmaEta(Double_t val) { fSigmaEta = val; }
106 void SetSigmaPhi(Double_t val) { fSigmaPhi = val; }
107 void SetCombinedSecondaryVertexBJetTagsDisc(Double_t d)
108 { fCombinedSecondaryVertexBJetTagsDisc = d; }
109 void SetCombinedSecondaryVertexMVABJetTagsDisc(Double_t d)
110 { fCombinedSecondaryVertexMVABJetTagsDisc = d; }
111 void SetJetProbabilityBJetTagsDisc(Double_t d)
112 { fJetProbabilityBJetTagsDisc = d; }
113 void SetJetBProbabilityBJetTagsDisc(Double_t d)
114 { fJetBProbabilityBJetTagsDisc = d; }
115 void SetRawMom(const FourVectorM &mom) { fRawMom = mom; ClearMom(); }
116 void SetMatchedMCFlavor(Int_t flavor) { fMatchedMCFlavor = flavor; }
117 void SetL2RelativeCorrectionScale(Double_t s )
118 { fL2RelativeCorrectionScale = s; ClearMom(); }
119 void SetL3AbsoluteCorrectionScale(Double_t s )
120 { fL3AbsoluteCorrectionScale = s; ClearMom(); }
121 void SetL4EMFCorrectionScale(Double_t s )
122 { fL4EMFCorrectionScale = s; ClearMom(); }
123 void SetL5FlavorCorrectionScale(Double_t s )
124 { fL5FlavorCorrectionScale = s; ClearMom(); }
125 void SetL7PartonCorrectionScale(Double_t s )
126 { fL7PartonCorrectionScale = s; ClearMom(); }
127 void SetCustomCorrectionScale(Double_t s)
128 { fCustomCorrectionScale = s; ClearMom(); }
129 void SetSimpleSecondaryVertexBJetTagsDisc(Double_t d)
130 { fSimpleSecondaryVertexBJetTagsDisc = d; }
131 void SetSoftMuonBJetTagsDisc(Double_t d) { fSoftMuonBJetTagsDisc = d; }
132 void SetSoftMuonByIP3dBJetTagsDisc(Double_t d) { fSoftMuonByIP3dBJetTagsDisc = d; }
133 void SetSoftMuonByPtBJetTagsDisc(Double_t d) { fSoftMuonByPtBJetTagsDisc = d; }
134 void SetSoftElectronByIP3dBJetTagsDisc(Double_t d) { fSoftElectronByIP3dBJetTagsDisc = d; }
135 void SetSoftElectronByPtBJetTagsDisc(Double_t d) { fSoftElectronByPtBJetTagsDisc = d; }
136 void SetTrackCountingHighEffBJetTagsDisc(Double_t d)
137 { fTrackCountingHighEffBJetTagsDisc = d; }
138 void SetTrackCountingHighPurBJetTagsDisc(Double_t d)
139 { fTrackCountingHighPurBJetTagsDisc = d; }
140
141 protected:
142 void GetMom() const;
143
144 Vect4M fRawMom; //uncorrected four momentum of jet
145 Double32_t fAlpha; //[0,0,14]jet vertex alpha variable
146 Double32_t fBeta; //[0,0,14]jet vertex beta variable
147 Int_t fMatchedMCFlavor; //[0,0,14]pdg of matched quark flavor
148 Double32_t fSigmaEta; //[0,0,14]sqrt(etaetaMoment)
149 Double32_t fSigmaPhi; //[0,0,14]sqrt(phiphiMoment)
150 Double32_t fJetProbabilityBJetTagsDisc; //[0,0,14]discriminants b-tagging algos
151 Double32_t fJetBProbabilityBJetTagsDisc; //[0,0,14]discriminants b-tagging algos
152 Double32_t fSimpleSecondaryVertexBJetTagsDisc; //[0,0,14]discriminants b-tagging algos
153 Double32_t fCombinedSecondaryVertexBJetTagsDisc; //[0,0,14]discriminants b-tagging algos
154 Double32_t fCombinedSecondaryVertexMVABJetTagsDisc; //[0,0,14]discriminants b-tagging algos
155 Double32_t fTrackCountingHighEffBJetTagsDisc; //[0,0,14]discriminants b-tagging algos
156 Double32_t fTrackCountingHighPurBJetTagsDisc; //[0,0,14]discriminants b-tagging algos
157 Double32_t fSoftMuonBJetTagsDisc; //[0,0,14]discriminants b-tagging algos
158 Double32_t fSoftMuonByIP3dBJetTagsDisc; //[0,0,14]discriminants b-tagging algos
159 Double32_t fSoftMuonByPtBJetTagsDisc; //[0,0,14]discriminants b-tagging algos
160 Double32_t fSoftElectronByIP3dBJetTagsDisc; //[0,0,14]discriminants b-tagging algos
161 Double32_t fSoftElectronByPtBJetTagsDisc; //[0,0,14]discriminants b-tagging algos
162 Double32_t fL2RelativeCorrectionScale; //[0,0,14]L2 correction scale
163 Double32_t fL3AbsoluteCorrectionScale; //[0,0,14]L3 correction scale
164 Double32_t fL4EMFCorrectionScale; //[0,0,14]L4 correction scale
165 Double32_t fL5FlavorCorrectionScale; //[0,0,14]L5 correction scale
166 Double32_t fL7PartonCorrectionScale; //[0,0,14]L7 correction scale
167 Double32_t fCustomCorrectionScale; //[0,0,14]custom correction scale
168 BitMask8 fCorrections; //mask of corrections to be applied
169
170 ClassDef(Jet, 3) // Jet class
171 };
172 }
173
174 //--------------------------------------------------------------------------------------------------
175 inline Double_t mithep::Jet::CombinedCorrectionScale() const
176 {
177 // compute combined correction scale from all enabled corrections
178 Double_t scale = 1.0;
179
180 if (CorrectionActive(L2))
181 scale *= fL2RelativeCorrectionScale;
182
183 if (CorrectionActive(L3))
184 scale *= fL3AbsoluteCorrectionScale;
185
186 if (CorrectionActive(L4))
187 scale *= fL4EMFCorrectionScale;
188
189 if (CorrectionActive(L5))
190 scale *= fL5FlavorCorrectionScale;
191
192 if (CorrectionActive(L7))
193 scale *= fL7PartonCorrectionScale;
194
195 if (CorrectionActive(Custom))
196 scale *= fCustomCorrectionScale;
197
198 return scale;
199 }
200
201 //--------------------------------------------------------------------------------------------------
202 inline void mithep::Jet::GetMom() const
203 {
204 // Get raw momentum values from stored values and apply all enabled corrections.
205
206 fCachedMom.SetCoordinates(fRawMom.Pt(),fRawMom.Eta(),fRawMom.Phi(),fRawMom.M());
207
208 fCachedMom *= CombinedCorrectionScale();
209
210 }
211 #endif