ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/UHHAnalysis/NtupleWriter/Objects/Jet.h
Revision: 1.7
Committed: Thu Jun 6 07:38:30 2013 UTC (11 years, 11 months ago) by peiffer
Content type: text/plain
Branch: MAIN
Changes since 1.6: +29 -23 lines
Log Message:
new genjet structure

File Contents

# Content
1 #ifndef Jet_H
2 #define Jet_H
3
4 #include "Particle.h"
5
6 /**
7 * @short jet class
8 * @author Thomas Peiffer
9 */
10
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 m_genjet_index=-1;
40 m_genparticles_indices.clear();
41 m_pfconstituents.clear();
42 m_genjet=NULL;
43 };
44
45 ~Jet(){
46 };
47
48 LorentzVector genjet_v4() const{
49
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 };
62
63 std::vector<Particle> pfconstituents() const{return m_pfconstituents;}
64
65 void add_pfconstituents(Particle p){m_pfconstituents.push_back(p);}
66
67 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 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 std::vector<unsigned int> genparticles_indices() const{return m_genparticles_indices;}
96
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 void set_genjet_index(int x){m_genjet_index=x;}
121 void add_genparticles_index(unsigned int x){m_genparticles_indices.push_back(x);}
122
123 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
131 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 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 int m_genjet_index;
174 Particle* m_genjet; //!
175
176 std::vector<unsigned int> m_genparticles_indices;
177
178 std::vector<Particle> m_pfconstituents;
179
180 };
181
182 #endif