ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/UHHAnalysis/NtupleWriter/Objects/Jet.h
Revision: 1.8
Committed: Wed Jun 19 13:28:24 2013 UTC (11 years, 10 months ago) by rkogler
Content type: text/plain
Branch: MAIN
Changes since 1.7: +6 -5 lines
Log Message:
added substructure information and jet constituents

File Contents

# User Rev Content
1 peiffer 1.1 #ifndef Jet_H
2     #define Jet_H
3    
4     #include "Particle.h"
5    
6 peiffer 1.3 /**
7     * @short jet class
8     * @author Thomas Peiffer
9     */
10 peiffer 1.1
11     class Jet : public Particle{
12    
13     public:
14    
15     Jet(){
16     m_nTracks=0;
17     m_jetArea=0;
18     m_pileup=0;
19     m_numberOfDaughters=0;
20     m_neutralEmEnergyFraction=0;
21     m_neutralHadronEnergyFraction=0;
22     m_chargedEmEnergyFraction=0;
23     m_chargedHadronEnergyFraction=0;
24     m_muonEnergyFraction=0;
25     m_photonEnergyFraction=0;
26     m_chargedMultiplicity=0;
27     m_neutralMultiplicity=0;
28     m_muonMultiplicity=0;
29     m_electronMultiplicity=0;
30     m_photonMultiplicity=0;
31     m_btag_simpleSecondaryVertexHighEff=0;
32     m_btag_simpleSecondaryVertexHighPur=0;
33     m_btag_combinedSecondaryVertex=0;
34     m_btag_combinedSecondaryVertexMVA=0;
35     m_btag_jetBProbability=0;
36     m_btag_jetProbability=0;
37     m_JEC_uncertainty=0;
38     m_JEC_factor_raw=0;
39 peiffer 1.7 m_genjet_index=-1;
40 peiffer 1.1 m_genparticles_indices.clear();
41 rkogler 1.8 m_pfconstituents_indices.clear();
42 peiffer 1.7 m_genjet=NULL;
43 peiffer 1.1 };
44    
45     ~Jet(){
46     };
47    
48 peiffer 1.2 LorentzVector genjet_v4() const{
49 peiffer 1.7
50     return genjet().v4();
51     };
52    
53     Particle genjet() const{
54     if(m_genjet)
55     return *m_genjet;
56     else{
57     //return 0 particle
58     Particle p;
59     return p;
60     }
61 peiffer 1.1 };
62    
63 rkogler 1.8 std::vector<unsigned int> pfconstituents_indices() const{return m_pfconstituents_indices;}
64 rkogler 1.6
65 rkogler 1.8 void add_pfconstituents_index(int ind){m_pfconstituents_indices.push_back(ind);}
66 rkogler 1.6
67 peiffer 1.2 int nTracks() const{return m_nTracks;}
68     float jetArea() const{return m_jetArea;}
69     float pileup() const{return m_pileup;}
70     int numberOfDaughters() const{return m_numberOfDaughters;}
71     float neutralEmEnergyFraction() const{return m_neutralEmEnergyFraction;}
72     float neutralHadronEnergyFraction() const{return m_neutralHadronEnergyFraction;}
73     float chargedEmEnergyFraction() const{return m_chargedEmEnergyFraction;}
74     float chargedHadronEnergyFraction() const{return m_chargedHadronEnergyFraction;}
75     float muonEnergyFraction() const{return m_muonEnergyFraction;}
76     float photonEnergyFraction() const{return m_photonEnergyFraction;}
77     int chargedMultiplicity() const{return m_chargedMultiplicity;}
78     int neutralMultiplicity() const{return m_neutralMultiplicity;}
79     int muonMultiplicity() const{return m_muonMultiplicity;}
80     int electronMultiplicity() const{return m_electronMultiplicity;}
81     int photonMultiplicity() const{return m_photonMultiplicity;}
82     float btag_simpleSecondaryVertexHighEff() const{return m_btag_simpleSecondaryVertexHighEff;}
83     float btag_simpleSecondaryVertexHighPur() const{return m_btag_simpleSecondaryVertexHighPur;}
84     float btag_combinedSecondaryVertex() const{return m_btag_combinedSecondaryVertex;}
85     float btag_combinedSecondaryVertexMVA() const{return m_btag_combinedSecondaryVertexMVA;}
86     float btag_jetBProbability() const{return m_btag_jetBProbability;}
87     float btag_jetProbability() const{return m_btag_jetProbability;}
88     float JEC_uncertainty() const{return m_JEC_uncertainty;}
89     float JEC_factor_raw() const{return m_JEC_factor_raw;}
90 peiffer 1.7 float genjet_pt() const{return genjet().pt();}
91     float genjet_eta() const{return genjet().eta();}
92     float genjet_phi() const{return genjet().phi();}
93     float genjet_energy() const{return genjet().energy();}
94     float genjet_index() const{return m_genjet_index;}
95 peiffer 1.2 std::vector<unsigned int> genparticles_indices() const{return m_genparticles_indices;}
96 peiffer 1.1
97     void set_nTracks(int x){m_nTracks=x;}
98     void set_jetArea(float x){m_jetArea=x;}
99     void set_pileup(float x){m_pileup=x;}
100     void set_numberOfDaughters(int x){m_numberOfDaughters=x;}
101     void set_neutralEmEnergyFraction(float x){m_neutralEmEnergyFraction=x;}
102     void set_neutralHadronEnergyFraction(float x){m_neutralHadronEnergyFraction=x;}
103     void set_chargedEmEnergyFraction(float x){m_chargedEmEnergyFraction=x;}
104     void set_chargedHadronEnergyFraction(float x){m_chargedHadronEnergyFraction=x;}
105     void set_muonEnergyFraction(float x){m_muonEnergyFraction=x;}
106     void set_photonEnergyFraction(float x){m_photonEnergyFraction=x;}
107     void set_chargedMultiplicity(int x){m_chargedMultiplicity=x;}
108     void set_neutralMultiplicity(int x){m_neutralMultiplicity=x;}
109     void set_muonMultiplicity(int x){m_muonMultiplicity=x;}
110     void set_electronMultiplicity(int x){m_electronMultiplicity=x;}
111     void set_photonMultiplicity(int x){m_photonMultiplicity=x;}
112     void set_btag_simpleSecondaryVertexHighEff(float x){m_btag_simpleSecondaryVertexHighEff=x;}
113     void set_btag_simpleSecondaryVertexHighPur(float x){m_btag_simpleSecondaryVertexHighPur=x;}
114     void set_btag_combinedSecondaryVertex(float x){m_btag_combinedSecondaryVertex=x;}
115     void set_btag_combinedSecondaryVertexMVA(float x){m_btag_combinedSecondaryVertexMVA=x;}
116     void set_btag_jetBProbability(float x){m_btag_jetBProbability=x;}
117     void set_btag_jetProbability(float x){m_btag_jetProbability=x;}
118     void set_JEC_uncertainty(float x){m_JEC_uncertainty=x;}
119     void set_JEC_factor_raw(float x){m_JEC_factor_raw=x;}
120 peiffer 1.7 void set_genjet_index(int x){m_genjet_index=x;}
121 peiffer 1.1 void add_genparticles_index(unsigned int x){m_genparticles_indices.push_back(x);}
122    
123 peiffer 1.7 bool has_genjet() const{return m_genjet_index>=0;}
124    
125     void set_genjet(std::vector<Particle>* genjets){
126     if(!genjets) return;
127     if(m_genjet_index<0 || m_genjet_index>(int)genjets->size()) return;
128     m_genjet = &genjets->at(m_genjet_index);
129     }
130 peiffer 1.4
131 peiffer 1.5 bool pfID(){
132     //pf ID has already been applied when using goodPatJets
133     if(numberOfDaughters()>1
134     && neutralHadronEnergyFraction()<0.99
135     && neutralEmEnergyFraction()<0.99){
136    
137     if(fabs(eta())>=2.4)
138     return true;
139    
140     if(chargedEmEnergyFraction()<0.99
141     && chargedHadronEnergyFraction()>0
142     && chargedMultiplicity()>0)
143     return true;
144     }
145     return false;
146     }
147    
148 peiffer 1.1 private:
149    
150     int m_nTracks;
151     float m_jetArea;
152     float m_pileup;
153     int m_numberOfDaughters;
154     float m_neutralEmEnergyFraction;
155     float m_neutralHadronEnergyFraction;
156     float m_chargedEmEnergyFraction;
157     float m_chargedHadronEnergyFraction;
158     float m_muonEnergyFraction;
159     float m_photonEnergyFraction;
160     int m_chargedMultiplicity;
161     int m_neutralMultiplicity;
162     int m_muonMultiplicity;
163     int m_electronMultiplicity;
164     int m_photonMultiplicity;
165     float m_btag_simpleSecondaryVertexHighEff;
166     float m_btag_simpleSecondaryVertexHighPur;
167     float m_btag_combinedSecondaryVertex;
168     float m_btag_combinedSecondaryVertexMVA;
169     float m_btag_jetBProbability;
170     float m_btag_jetProbability;
171     float m_JEC_uncertainty;
172     float m_JEC_factor_raw;
173 peiffer 1.7 int m_genjet_index;
174 rkogler 1.8 Particle* m_genjet;
175 peiffer 1.1
176     std::vector<unsigned int> m_genparticles_indices;
177    
178 rkogler 1.8 std::vector<unsigned int> m_pfconstituents_indices;
179    
180 rkogler 1.6
181 peiffer 1.1 };
182    
183     #endif