ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/MitAna/DataTree/interface/Jet.h
Revision: 1.21
Committed: Wed Mar 18 15:44:32 2009 UTC (16 years, 1 month ago) by loizides
Content type: text/plain
Branch: MAIN
CVS Tags: Mit_009c, Mit_009b, Mit_009a, Mit_009, Mit_008
Changes since 1.20: +100 -98 lines
Log Message:
Introduced Double32_t [0,0,14] consistently. Updated class descriptions.

File Contents

# User Rev Content
1 loizides 1.1 //--------------------------------------------------------------------------------------------------
2 loizides 1.21 // $Id: Jet.h,v 1.20 2009/03/11 18:11:18 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 loizides 1.21 #include "MitCommon/DataFormats/interface/Vect4M.h"
15 loizides 1.1 #include "MitAna/DataTree/interface/Particle.h"
16    
17     namespace mithep
18     {
19     class Jet : public Particle
20     {
21     public:
22 bendavid 1.17 enum ECorr {
23     L1 = 0,
24     L2,
25     L3,
26     L4,
27     L5,
28     L6,
29     L7,
30     Custom
31     };
32    
33 loizides 1.18 Jet() :
34 bendavid 1.20 fAlpha(0), fBeta(0), fMatchedMCFlavor(0),
35 loizides 1.18 fJetProbabilityBJetTagsDisc(0), fJetBProbabilityBJetTagsDisc(0),
36     fSimpleSecondaryVertexBJetTagsDisc(0), fCombinedSecondaryVertexBJetTagsDisc(0),
37     fCombinedSecondaryVertexMVABJetTagsDisc(0), fImpactParameterMVABJetTagsDisc(0),
38     fTrackCountingHighEffBJetTagsDisc(0), fTrackCountingHighPurBJetTagsDisc(0),
39     fSoftMuonBJetTagsDisc(0), fSoftMuonNoIPBJetTagsDisc(0),
40     fSoftElectronBJetTagsDisc(0), fL2RelativeCorrectionScale(0),
41     fL3AbsoluteCorrectionScale(0), fL4EMFCorrectionScale(0),
42 bendavid 1.19 fL5FlavorCorrectionScale(0), fL7PartonCorrectionScale(0),
43     fCustomCorrectionScale(0) {}
44 loizides 1.18 Jet(Double_t px, Double_t py, Double_t pz, Double_t e) :
45     fRawMom(FourVector(px,py,pz,e)),
46 bendavid 1.20 fAlpha(0), fBeta(0), fMatchedMCFlavor(0),
47 loizides 1.18 fJetProbabilityBJetTagsDisc(0), fJetBProbabilityBJetTagsDisc(0),
48     fSimpleSecondaryVertexBJetTagsDisc(0), fCombinedSecondaryVertexBJetTagsDisc(0),
49     fCombinedSecondaryVertexMVABJetTagsDisc(0), fImpactParameterMVABJetTagsDisc(0),
50     fTrackCountingHighEffBJetTagsDisc(0), fTrackCountingHighPurBJetTagsDisc(0),
51     fSoftMuonBJetTagsDisc(0), fSoftMuonNoIPBJetTagsDisc(0),
52     fSoftElectronBJetTagsDisc(0), fL2RelativeCorrectionScale(0),
53     fL3AbsoluteCorrectionScale(0), fL4EMFCorrectionScale(0),
54 bendavid 1.19 fL5FlavorCorrectionScale(0), fL7PartonCorrectionScale(0),
55     fCustomCorrectionScale(0) {}
56 loizides 1.1
57 loizides 1.21 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 CustomCorrectionScale() const { return fCustomCorrectionScale; }
64     void DisableCorrection(ECorr c) { fCorrections.ClearBit(c); ClearMom(); }
65     void DisableCorrections() { fCorrections.Clear(); ClearMom(); }
66     void EnableCorrection(ECorr c) { fCorrections.SetBit(c); ClearMom(); }
67     Bool_t CorrectionActive(ECorr c) const { return fCorrections.TestBit(c); }
68     Double_t ImpactParameterMVABJetTagsDisc() const
69     { return fImpactParameterMVABJetTagsDisc; }
70     Double_t JetProbabilityBJetTagsDisc() const
71     { return fJetProbabilityBJetTagsDisc; }
72     Double_t JetBProbabilityBJetTagsDisc() const
73     { return fJetBProbabilityBJetTagsDisc; }
74     Int_t MatchedMCFlavor() const { return fMatchedMCFlavor; }
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 SoftMuonNoIPBJetTagsDisc() const
89     { return fSoftMuonNoIPBJetTagsDisc; }
90     Double_t SoftElectronBJetTagsDisc() const
91     { return fSoftElectronBJetTagsDisc; }
92     Double_t TrackCountingHighEffBJetTagsDisc() const
93     { return fTrackCountingHighEffBJetTagsDisc; }
94     Double_t TrackCountingHighPurBJetTagsDisc() const
95     { return fTrackCountingHighPurBJetTagsDisc; }
96     FourVectorM RawMom() const { return fRawMom.V(); }
97     void SetAlpha(Double_t val) { fAlpha = val; }
98     void SetBeta(Double_t val) { fBeta = val; }
99     void SetCombinedSecondaryVertexBJetTagsDisc(Double_t d)
100     { fCombinedSecondaryVertexBJetTagsDisc = d; }
101     void SetCombinedSecondaryVertexMVABJetTagsDisc(Double_t d)
102     { fCombinedSecondaryVertexMVABJetTagsDisc = d; }
103     void SetImpactParameterMVABJetTagsDisc (Double_t d)
104     { fImpactParameterMVABJetTagsDisc = d; }
105     void SetJetProbabilityBJetTagsDisc(Double_t d)
106     { fJetProbabilityBJetTagsDisc = d; }
107     void SetJetBProbabilityBJetTagsDisc(Double_t d)
108     { fJetBProbabilityBJetTagsDisc = d; }
109     void SetRawMom(const FourVectorM &mom) { fRawMom = mom; ClearMom(); }
110     void SetMatchedMCFlavor(Int_t flavor) { fMatchedMCFlavor = flavor; }
111     void SetL2RelativeCorrectionScale(Double_t s )
112     { fL2RelativeCorrectionScale = s; ClearMom(); }
113     void SetL3AbsoluteCorrectionScale(Double_t s )
114     { fL3AbsoluteCorrectionScale = s; ClearMom(); }
115     void SetL4EMFCorrectionScale(Double_t s )
116     { fL4EMFCorrectionScale = s; ClearMom(); }
117     void SetL5FlavorCorrectionScale(Double_t s )
118     { fL5FlavorCorrectionScale = s; ClearMom(); }
119     void SetL7PartonCorrectionScale(Double_t s )
120     { fL7PartonCorrectionScale = s; ClearMom(); }
121     void SetCustomCorrectionScale(Double_t s)
122     { fCustomCorrectionScale = s; ClearMom(); }
123     void SetSimpleSecondaryVertexBJetTagsDisc(Double_t d)
124     { fSimpleSecondaryVertexBJetTagsDisc = d; }
125     void SetSoftMuonBJetTagsDisc(Double_t d) { fSoftMuonBJetTagsDisc = d; }
126     void SetSoftMuonNoIPBJetTagsDisc(Double_t d) { fSoftMuonNoIPBJetTagsDisc = d; }
127     void SetSoftElectronBJetTagsDisc(Double_t d) { fSoftElectronBJetTagsDisc = d; }
128     void SetTrackCountingHighEffBJetTagsDisc(Double_t d)
129     { fTrackCountingHighEffBJetTagsDisc = d; }
130     void SetTrackCountingHighPurBJetTagsDisc(Double_t d)
131     { fTrackCountingHighPurBJetTagsDisc = d; }
132 sixie 1.9
133 loizides 1.2 protected:
134 loizides 1.18 void GetMom() const;
135 loizides 1.15
136 loizides 1.21 Vect4M fRawMom; //uncorrected four momentum of jet
137     Double32_t fAlpha; //[0,0,14]jet vertex alpha variable
138     Double32_t fBeta; //[0,0,14]jet vertex beta variable
139     Int_t fMatchedMCFlavor; //[0,0,14]pdg of matched quark flavor
140     Double32_t fJetProbabilityBJetTagsDisc; //[0,0,14]discriminants b-tagging algos
141     Double32_t fJetBProbabilityBJetTagsDisc; //[0,0,14]discriminants b-tagging algos
142     Double32_t fSimpleSecondaryVertexBJetTagsDisc; //[0,0,14]discriminants b-tagging algos
143     Double32_t fCombinedSecondaryVertexBJetTagsDisc; //[0,0,14]discriminants b-tagging algos
144     Double32_t fCombinedSecondaryVertexMVABJetTagsDisc; //[0,0,14]discriminants b-tagging algos
145     Double32_t fImpactParameterMVABJetTagsDisc; //[0,0,14]discriminants b-tagging algos
146     Double32_t fTrackCountingHighEffBJetTagsDisc; //[0,0,14]discriminants b-tagging algos
147     Double32_t fTrackCountingHighPurBJetTagsDisc; //[0,0,14]discriminants b-tagging algos
148     Double32_t fSoftMuonBJetTagsDisc; //[0,0,14]discriminants b-tagging algos
149     Double32_t fSoftMuonNoIPBJetTagsDisc; //[0,0,14]discriminants b-tagging algos
150     Double32_t fSoftElectronBJetTagsDisc; //[0,0,14]discriminants b-tagging algos
151     Double32_t fL2RelativeCorrectionScale; //[0,0,14]L2 correction scale
152     Double32_t fL3AbsoluteCorrectionScale; //[0,0,14]L3 correction scale
153     Double32_t fL4EMFCorrectionScale; //[0,0,14]L4 correction scale
154     Double32_t fL5FlavorCorrectionScale; //[0,0,14]L5 correction scale
155     Double32_t fL7PartonCorrectionScale; //[0,0,14]L7 correction scale
156     Double32_t fCustomCorrectionScale; //[0,0,14]custom correction scale
157 bendavid 1.20 BitMask8 fCorrections; //mask of corrections to be applied
158 loizides 1.2
159 loizides 1.1 ClassDef(Jet, 1) // Jet class
160     };
161     }
162 loizides 1.15
163     //--------------------------------------------------------------------------------------------------
164     inline void mithep::Jet::GetMom() const
165     {
166 bendavid 1.20 // Get raw momentum values from stored values and apply all enabled corrections.
167 loizides 1.15
168 loizides 1.21 fCachedMom.SetCoordinates(fRawMom.Pt(),fRawMom.Eta(),fRawMom.Phi(),fRawMom.M());
169    
170 bendavid 1.17 if (CorrectionActive(L2))
171     fCachedMom *= fL2RelativeCorrectionScale;
172    
173     if (CorrectionActive(L3))
174     fCachedMom *= fL3AbsoluteCorrectionScale;
175    
176     if (CorrectionActive(L4))
177     fCachedMom *= fL4EMFCorrectionScale;
178    
179     if (CorrectionActive(L5))
180     fCachedMom *= fL5FlavorCorrectionScale;
181    
182     if (CorrectionActive(L7))
183     fCachedMom *= fL7PartonCorrectionScale;
184    
185     if (CorrectionActive(Custom))
186     fCachedMom *= fCustomCorrectionScale;
187 loizides 1.15 }
188 loizides 1.1 #endif