ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/MitAna/DataTree/interface/Jet.h
Revision: 1.22
Committed: Tue Jul 7 08:30:28 2009 UTC (15 years, 10 months ago) by bendavid
Content type: text/plain
Branch: MAIN
CVS Tags: Mit_011, Mit_010a, Mit_010
Changes since 1.21: +30 -27 lines
Log Message:
Update b-tag variables for 31x

File Contents

# User Rev Content
1 loizides 1.1 //--------------------------------------------------------------------------------------------------
2 bendavid 1.22 // $Id: Jet.h,v 1.21 2009/03/18 15:44:32 loizides 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 bendavid 1.22 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 bendavid 1.19 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 bendavid 1.22 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 bendavid 1.19 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 JetProbabilityBJetTagsDisc() const
69     { return fJetProbabilityBJetTagsDisc; }
70     Double_t JetBProbabilityBJetTagsDisc() const
71     { return fJetBProbabilityBJetTagsDisc; }
72     Int_t MatchedMCFlavor() const { return fMatchedMCFlavor; }
73     virtual
74     UInt_t NConstituents() const { return 0; }
75     UInt_t N() const { return NConstituents(); }
76     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     EObjType ObjType() const { return kJet; }
82     Double_t SimpleSecondaryVertexBJetTagsDisc() const
83     { return fSimpleSecondaryVertexBJetTagsDisc; }
84     Double_t SoftMuonBJetTagsDisc() const
85     { return fSoftMuonBJetTagsDisc; }
86 bendavid 1.22 Double_t SoftMuonByIP3dBJetTagsDisc() const
87     { return fSoftMuonByIP3dBJetTagsDisc; }
88     Double_t SoftMuonByPtBJetTagsDisc() const
89     { return fSoftMuonByPtBJetTagsDisc; }
90     Double_t SoftElectronByIP3dBJetTagsDisc() const
91     { return fSoftElectronByIP3dBJetTagsDisc; }
92     Double_t SoftElectronByPtBJetTagsDisc() const
93     { return fSoftElectronByPtBJetTagsDisc; }
94 loizides 1.21 Double_t TrackCountingHighEffBJetTagsDisc() const
95     { return fTrackCountingHighEffBJetTagsDisc; }
96     Double_t TrackCountingHighPurBJetTagsDisc() const
97     { return fTrackCountingHighPurBJetTagsDisc; }
98     FourVectorM RawMom() const { return fRawMom.V(); }
99     void SetAlpha(Double_t val) { fAlpha = val; }
100     void SetBeta(Double_t val) { fBeta = val; }
101     void SetCombinedSecondaryVertexBJetTagsDisc(Double_t d)
102     { fCombinedSecondaryVertexBJetTagsDisc = d; }
103     void SetCombinedSecondaryVertexMVABJetTagsDisc(Double_t d)
104     { fCombinedSecondaryVertexMVABJetTagsDisc = 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 bendavid 1.22 void SetSoftMuonByIP3dBJetTagsDisc(Double_t d) { fSoftMuonByIP3dBJetTagsDisc = d; }
127     void SetSoftMuonByPtBJetTagsDisc(Double_t d) { fSoftMuonByPtBJetTagsDisc = d; }
128     void SetSoftElectronByIP3dBJetTagsDisc(Double_t d) { fSoftElectronByIP3dBJetTagsDisc = d; }
129     void SetSoftElectronByPtBJetTagsDisc(Double_t d) { fSoftElectronByPtBJetTagsDisc = d; }
130 loizides 1.21 void SetTrackCountingHighEffBJetTagsDisc(Double_t d)
131     { fTrackCountingHighEffBJetTagsDisc = d; }
132     void SetTrackCountingHighPurBJetTagsDisc(Double_t d)
133     { fTrackCountingHighPurBJetTagsDisc = d; }
134 sixie 1.9
135 loizides 1.2 protected:
136 loizides 1.18 void GetMom() const;
137 loizides 1.15
138 loizides 1.21 Vect4M fRawMom; //uncorrected four momentum of jet
139     Double32_t fAlpha; //[0,0,14]jet vertex alpha variable
140     Double32_t fBeta; //[0,0,14]jet vertex beta variable
141     Int_t fMatchedMCFlavor; //[0,0,14]pdg of matched quark flavor
142     Double32_t fJetProbabilityBJetTagsDisc; //[0,0,14]discriminants b-tagging algos
143     Double32_t fJetBProbabilityBJetTagsDisc; //[0,0,14]discriminants b-tagging algos
144     Double32_t fSimpleSecondaryVertexBJetTagsDisc; //[0,0,14]discriminants b-tagging algos
145     Double32_t fCombinedSecondaryVertexBJetTagsDisc; //[0,0,14]discriminants b-tagging algos
146     Double32_t fCombinedSecondaryVertexMVABJetTagsDisc; //[0,0,14]discriminants b-tagging algos
147     Double32_t fTrackCountingHighEffBJetTagsDisc; //[0,0,14]discriminants b-tagging algos
148     Double32_t fTrackCountingHighPurBJetTagsDisc; //[0,0,14]discriminants b-tagging algos
149     Double32_t fSoftMuonBJetTagsDisc; //[0,0,14]discriminants b-tagging algos
150 bendavid 1.22 Double32_t fSoftMuonByIP3dBJetTagsDisc; //[0,0,14]discriminants b-tagging algos
151     Double32_t fSoftMuonByPtBJetTagsDisc; //[0,0,14]discriminants b-tagging algos
152     Double32_t fSoftElectronByIP3dBJetTagsDisc; //[0,0,14]discriminants b-tagging algos
153     Double32_t fSoftElectronByPtBJetTagsDisc; //[0,0,14]discriminants b-tagging algos
154 loizides 1.21 Double32_t fL2RelativeCorrectionScale; //[0,0,14]L2 correction scale
155     Double32_t fL3AbsoluteCorrectionScale; //[0,0,14]L3 correction scale
156     Double32_t fL4EMFCorrectionScale; //[0,0,14]L4 correction scale
157     Double32_t fL5FlavorCorrectionScale; //[0,0,14]L5 correction scale
158     Double32_t fL7PartonCorrectionScale; //[0,0,14]L7 correction scale
159     Double32_t fCustomCorrectionScale; //[0,0,14]custom correction scale
160 bendavid 1.20 BitMask8 fCorrections; //mask of corrections to be applied
161 loizides 1.2
162 bendavid 1.22 ClassDef(Jet, 2) // Jet class
163 loizides 1.1 };
164     }
165 loizides 1.15
166     //--------------------------------------------------------------------------------------------------
167     inline void mithep::Jet::GetMom() const
168     {
169 bendavid 1.20 // Get raw momentum values from stored values and apply all enabled corrections.
170 loizides 1.15
171 loizides 1.21 fCachedMom.SetCoordinates(fRawMom.Pt(),fRawMom.Eta(),fRawMom.Phi(),fRawMom.M());
172    
173 bendavid 1.17 if (CorrectionActive(L2))
174     fCachedMom *= fL2RelativeCorrectionScale;
175    
176     if (CorrectionActive(L3))
177     fCachedMom *= fL3AbsoluteCorrectionScale;
178    
179     if (CorrectionActive(L4))
180     fCachedMom *= fL4EMFCorrectionScale;
181    
182     if (CorrectionActive(L5))
183     fCachedMom *= fL5FlavorCorrectionScale;
184    
185     if (CorrectionActive(L7))
186     fCachedMom *= fL7PartonCorrectionScale;
187    
188     if (CorrectionActive(Custom))
189     fCachedMom *= fCustomCorrectionScale;
190 loizides 1.15 }
191 loizides 1.1 #endif