ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/MitAna/DataTree/interface/Jet.h
Revision: 1.20
Committed: Wed Mar 11 18:11:18 2009 UTC (16 years, 1 month ago) by bendavid
Content type: text/plain
Branch: MAIN
CVS Tags: Mit_008pre2
Changes since 1.19: +20 -77 lines
Log Message:
Split Jet into Jet base class and CaloJet inheriting class

File Contents

# User Rev Content
1 loizides 1.1 //--------------------------------------------------------------------------------------------------
2 bendavid 1.20 // $Id: Jet.h,v 1.19 2009/03/05 10:55:21 bendavid Exp $
3 loizides 1.1 //
4     // Jet
5     //
6 bendavid 1.20 // Base jet class to hold reconstructed jet information.
7 loizides 1.1 //
8 bendavid 1.20 // Authors: S.Xie, C.Loizides, J.Bendavid
9 loizides 1.1 //--------------------------------------------------------------------------------------------------
10    
11 loizides 1.8 #ifndef MITANA_DATATREE_JET_H
12     #define MITANA_DATATREE_JET_H
13 loizides 1.1
14     #include "MitAna/DataTree/interface/Particle.h"
15    
16     namespace mithep
17     {
18     class Jet : public Particle
19     {
20     public:
21 bendavid 1.17 enum ECorr {
22     L1 = 0,
23     L2,
24     L3,
25     L4,
26     L5,
27     L6,
28     L7,
29     Custom
30     };
31    
32 loizides 1.18 Jet() :
33 bendavid 1.20 fAlpha(0), fBeta(0), fMatchedMCFlavor(0),
34 loizides 1.18 fJetProbabilityBJetTagsDisc(0), fJetBProbabilityBJetTagsDisc(0),
35     fSimpleSecondaryVertexBJetTagsDisc(0), fCombinedSecondaryVertexBJetTagsDisc(0),
36     fCombinedSecondaryVertexMVABJetTagsDisc(0), fImpactParameterMVABJetTagsDisc(0),
37     fTrackCountingHighEffBJetTagsDisc(0), fTrackCountingHighPurBJetTagsDisc(0),
38     fSoftMuonBJetTagsDisc(0), fSoftMuonNoIPBJetTagsDisc(0),
39     fSoftElectronBJetTagsDisc(0), fL2RelativeCorrectionScale(0),
40     fL3AbsoluteCorrectionScale(0), fL4EMFCorrectionScale(0),
41 bendavid 1.19 fL5FlavorCorrectionScale(0), fL7PartonCorrectionScale(0),
42     fCustomCorrectionScale(0) {}
43 loizides 1.18 Jet(Double_t px, Double_t py, Double_t pz, Double_t e) :
44     fRawMom(FourVector(px,py,pz,e)),
45 bendavid 1.20 fAlpha(0), fBeta(0), fMatchedMCFlavor(0),
46 loizides 1.18 fJetProbabilityBJetTagsDisc(0), fJetBProbabilityBJetTagsDisc(0),
47     fSimpleSecondaryVertexBJetTagsDisc(0), fCombinedSecondaryVertexBJetTagsDisc(0),
48     fCombinedSecondaryVertexMVABJetTagsDisc(0), fImpactParameterMVABJetTagsDisc(0),
49     fTrackCountingHighEffBJetTagsDisc(0), fTrackCountingHighPurBJetTagsDisc(0),
50     fSoftMuonBJetTagsDisc(0), fSoftMuonNoIPBJetTagsDisc(0),
51     fSoftElectronBJetTagsDisc(0), fL2RelativeCorrectionScale(0),
52     fL3AbsoluteCorrectionScale(0), fL4EMFCorrectionScale(0),
53 bendavid 1.19 fL5FlavorCorrectionScale(0), fL7PartonCorrectionScale(0),
54     fCustomCorrectionScale(0) {}
55 loizides 1.1
56 loizides 1.18 Double_t Alpha() const { return fAlpha; }
57     Double_t Beta() const { return fBeta; }
58 loizides 1.12 Double_t CombinedSecondaryVertexBJetTagsDisc() const
59     { return fCombinedSecondaryVertexBJetTagsDisc; }
60     Double_t CombinedSecondaryVertexMVABJetTagsDisc() const
61     { return fCombinedSecondaryVertexMVABJetTagsDisc; }
62 loizides 1.18 Double_t CustomCorrectionScale() const { return fCustomCorrectionScale; }
63 bendavid 1.17 void DisableCorrection(ECorr c) { fCorrections.ClearBit(c); ClearMom(); }
64 loizides 1.18 void DisableCorrections() { fCorrections.Clear(); ClearMom(); }
65     void EnableCorrection(ECorr c) { fCorrections.SetBit(c); ClearMom(); }
66     Bool_t CorrectionActive(ECorr c) const { return fCorrections.TestBit(c); }
67 loizides 1.12 Double_t ImpactParameterMVABJetTagsDisc() const
68 loizides 1.18 { return fImpactParameterMVABJetTagsDisc; }
69 loizides 1.12 Double_t JetProbabilityBJetTagsDisc() const
70 loizides 1.18 { return fJetProbabilityBJetTagsDisc; }
71 loizides 1.12 Double_t JetBProbabilityBJetTagsDisc() const
72 loizides 1.18 { return fJetBProbabilityBJetTagsDisc; }
73 loizides 1.12 Int_t MatchedMCFlavor() const { return fMatchedMCFlavor; }
74 bendavid 1.20 virtual UInt_t NConstituents() const { return 0; }
75     UInt_t N() const { return NConstituents(); }
76 loizides 1.12 Double_t L2RelativeCorrectionScale() const { return fL2RelativeCorrectionScale; }
77     Double_t L3AbsoluteCorrectionScale() const { return fL3AbsoluteCorrectionScale; }
78     Double_t L4EMFCorrectionScale() const { return fL4EMFCorrectionScale; }
79     Double_t L5FlavorCorrectionScale() const { return fL5FlavorCorrectionScale; }
80     Double_t L7PartonCorrectionScale() const { return fL7PartonCorrectionScale; }
81 loizides 1.15 EObjType ObjType() const { return kJet; }
82 loizides 1.12 Double_t SimpleSecondaryVertexBJetTagsDisc() const
83 loizides 1.15 { return fSimpleSecondaryVertexBJetTagsDisc; }
84 loizides 1.12 Double_t SoftMuonBJetTagsDisc() const
85 loizides 1.15 { return fSoftMuonBJetTagsDisc; }
86 loizides 1.12 Double_t SoftMuonNoIPBJetTagsDisc() const
87 loizides 1.15 { return fSoftMuonNoIPBJetTagsDisc; }
88 loizides 1.12 Double_t SoftElectronBJetTagsDisc() const
89 loizides 1.15 { return fSoftElectronBJetTagsDisc; }
90 loizides 1.12 Double_t TrackCountingHighEffBJetTagsDisc() const
91 loizides 1.15 { return fTrackCountingHighEffBJetTagsDisc; }
92 loizides 1.12 Double_t TrackCountingHighPurBJetTagsDisc() const
93 loizides 1.15 { return fTrackCountingHighPurBJetTagsDisc; }
94 bendavid 1.17 const FourVectorM &RawMom() const { return fRawMom; }
95 loizides 1.12 void SetAlpha(Double_t val) { fAlpha = val; }
96     void SetBeta(Double_t val) { fBeta = val; }
97     void SetCombinedSecondaryVertexBJetTagsDisc(Double_t d)
98 loizides 1.18 { fCombinedSecondaryVertexBJetTagsDisc = d; }
99 loizides 1.12 void SetCombinedSecondaryVertexMVABJetTagsDisc(Double_t d)
100 loizides 1.18 { fCombinedSecondaryVertexMVABJetTagsDisc = d; }
101 loizides 1.12 void SetImpactParameterMVABJetTagsDisc (Double_t d)
102 loizides 1.18 { fImpactParameterMVABJetTagsDisc = d; }
103     void SetJetProbabilityBJetTagsDisc(Double_t d)
104     { fJetProbabilityBJetTagsDisc = d; }
105     void SetJetBProbabilityBJetTagsDisc(Double_t d)
106     { fJetBProbabilityBJetTagsDisc = d; }
107     void SetRawMom(const FourVectorM &mom) { fRawMom = mom; ClearMom(); }
108 loizides 1.12 void SetMatchedMCFlavor(Int_t flavor) { fMatchedMCFlavor = flavor; }
109 loizides 1.18 void SetL2RelativeCorrectionScale(Double_t s )
110     { fL2RelativeCorrectionScale = s; ClearMom(); }
111     void SetL3AbsoluteCorrectionScale(Double_t s )
112     { fL3AbsoluteCorrectionScale = s; ClearMom(); }
113     void SetL4EMFCorrectionScale(Double_t s )
114     { fL4EMFCorrectionScale = s; ClearMom(); }
115     void SetL5FlavorCorrectionScale(Double_t s )
116     { fL5FlavorCorrectionScale = s; ClearMom(); }
117     void SetL7PartonCorrectionScale(Double_t s )
118     { fL7PartonCorrectionScale = s; ClearMom(); }
119     void SetCustomCorrectionScale(Double_t s)
120     { fCustomCorrectionScale = s; ClearMom(); }
121 loizides 1.12 void SetSimpleSecondaryVertexBJetTagsDisc(Double_t d)
122 loizides 1.18 { fSimpleSecondaryVertexBJetTagsDisc = d; }
123 loizides 1.15 void SetSoftMuonBJetTagsDisc(Double_t d) { fSoftMuonBJetTagsDisc = d; }
124     void SetSoftMuonNoIPBJetTagsDisc(Double_t d) { fSoftMuonNoIPBJetTagsDisc = d; }
125     void SetSoftElectronBJetTagsDisc(Double_t d) { fSoftElectronBJetTagsDisc = d; }
126     void SetTrackCountingHighEffBJetTagsDisc(Double_t d)
127 loizides 1.12 { fTrackCountingHighEffBJetTagsDisc = d; }
128     void SetTrackCountingHighPurBJetTagsDisc(Double_t d)
129     { fTrackCountingHighPurBJetTagsDisc = d; }
130 sixie 1.9
131 loizides 1.2 protected:
132 loizides 1.18 void GetMom() const;
133 loizides 1.15
134 bendavid 1.20 FourVectorM32 fRawMom; //uncorrected four momentum of jet
135     Double32_t fAlpha; //jet vertex association alpha variable
136     Double32_t fBeta; //jet vertex association beta variable
137     Int_t fMatchedMCFlavor; //pdg of the quark flavor that the jet matched to
138 loizides 1.18 Double32_t fJetProbabilityBJetTagsDisc; //discriminants from b-tagging algos
139     Double32_t fJetBProbabilityBJetTagsDisc; //discriminants from b-tagging algos
140     Double32_t fSimpleSecondaryVertexBJetTagsDisc; //discriminants from b-tagging algos
141     Double32_t fCombinedSecondaryVertexBJetTagsDisc; //discriminants from b-tagging algos
142     Double32_t fCombinedSecondaryVertexMVABJetTagsDisc; //discriminants from b-tagging algos
143     Double32_t fImpactParameterMVABJetTagsDisc; //discriminants from b-tagging algos
144     Double32_t fTrackCountingHighEffBJetTagsDisc; //discriminants from b-tagging algos
145     Double32_t fTrackCountingHighPurBJetTagsDisc; //discriminants from b-tagging algos
146     Double32_t fSoftMuonBJetTagsDisc; //discriminants from b-tagging algos
147 bendavid 1.20 Double32_t fSoftMuonNoIPBJetTagsDisc; //discriminants from b-tagging algos
148 loizides 1.18 Double32_t fSoftElectronBJetTagsDisc; //discriminants from b-tagging algos
149 bendavid 1.20 Double32_t fL2RelativeCorrectionScale; //L2 correction scale
150     Double32_t fL3AbsoluteCorrectionScale; //L3 correction scale
151     Double32_t fL4EMFCorrectionScale; //L4 correction scale
152     Double32_t fL5FlavorCorrectionScale; //L5 correction scale
153     Double32_t fL7PartonCorrectionScale; //L7 correction scale
154     Double32_t fCustomCorrectionScale; //custom correction scale
155     BitMask8 fCorrections; //mask of corrections to be applied
156 loizides 1.2
157 loizides 1.1 ClassDef(Jet, 1) // Jet class
158     };
159     }
160 loizides 1.15
161     //--------------------------------------------------------------------------------------------------
162     inline void mithep::Jet::GetMom() const
163     {
164 bendavid 1.20 // Get raw momentum values from stored values and apply all enabled corrections.
165 loizides 1.15
166 bendavid 1.17 fCachedMom = fRawMom;
167    
168     if (CorrectionActive(L2))
169     fCachedMom *= fL2RelativeCorrectionScale;
170    
171     if (CorrectionActive(L3))
172     fCachedMom *= fL3AbsoluteCorrectionScale;
173    
174     if (CorrectionActive(L4))
175     fCachedMom *= fL4EMFCorrectionScale;
176    
177     if (CorrectionActive(L5))
178     fCachedMom *= fL5FlavorCorrectionScale;
179    
180     if (CorrectionActive(L7))
181     fCachedMom *= fL7PartonCorrectionScale;
182    
183     if (CorrectionActive(Custom))
184     fCachedMom *= fCustomCorrectionScale;
185 loizides 1.15 }
186 loizides 1.1 #endif