1 |
|
#ifndef Jet_H |
2 |
|
#define Jet_H |
3 |
|
|
4 |
< |
#include "Particle.h" |
4 |
> |
#include "FlavorParticle.h" |
5 |
|
|
6 |
|
/** |
7 |
|
* @short jet class |
8 |
|
* @author Thomas Peiffer |
9 |
|
*/ |
10 |
|
|
11 |
< |
class Jet : public Particle{ |
11 |
> |
class Jet : public FlavorParticle{ |
12 |
|
|
13 |
|
public: |
14 |
|
|
15 |
|
Jet(){ |
16 |
|
m_nTracks=0; |
17 |
|
m_jetArea=0; |
18 |
– |
m_pileup=0; |
18 |
|
m_numberOfDaughters=0; |
19 |
|
m_neutralEmEnergyFraction=0; |
20 |
|
m_neutralHadronEnergyFraction=0; |
33 |
|
m_btag_combinedSecondaryVertexMVA=0; |
34 |
|
m_btag_jetBProbability=0; |
35 |
|
m_btag_jetProbability=0; |
37 |
– |
m_JEC_uncertainty=0; |
36 |
|
m_JEC_factor_raw=0; |
37 |
< |
m_genjet_pt=0; |
38 |
< |
m_genjet_eta=0; |
39 |
< |
m_genjet_phi=0; |
42 |
< |
m_genjet_energy=0; |
43 |
< |
m_genparticles_indices.clear(); |
44 |
< |
m_pfconstituents.clear(); |
37 |
> |
m_genjet_index=-1; |
38 |
> |
m_pfconstituents_indices.clear(); |
39 |
> |
m_genjet=NULL; |
40 |
|
}; |
41 |
|
|
42 |
|
~Jet(){ |
43 |
|
}; |
44 |
|
|
45 |
|
LorentzVector genjet_v4() const{ |
46 |
< |
LorentzVector v4; |
47 |
< |
v4.SetPt(m_genjet_pt); |
53 |
< |
v4.SetEta(m_genjet_eta); |
54 |
< |
v4.SetPhi(m_genjet_phi); |
55 |
< |
v4.SetE(m_genjet_energy); |
56 |
< |
return v4; |
46 |
> |
|
47 |
> |
return genjet().v4(); |
48 |
|
}; |
49 |
|
|
50 |
< |
std::vector<Particle> pfconstituents() const{return m_pfconstituents;} |
50 |
> |
Particle genjet() const{ |
51 |
> |
if(m_genjet) |
52 |
> |
return *m_genjet; |
53 |
> |
else{ |
54 |
> |
//return 0 particle |
55 |
> |
Particle p; |
56 |
> |
return p; |
57 |
> |
} |
58 |
> |
}; |
59 |
> |
|
60 |
> |
std::vector<unsigned int> pfconstituents_indices() const{return m_pfconstituents_indices;} |
61 |
|
|
62 |
< |
void add_pfconstituents(Particle p){m_pfconstituents.push_back(p);} |
62 |
> |
void add_pfconstituents_index(int ind){m_pfconstituents_indices.push_back(ind);} |
63 |
|
|
64 |
|
int nTracks() const{return m_nTracks;} |
65 |
|
float jetArea() const{return m_jetArea;} |
65 |
– |
float pileup() const{return m_pileup;} |
66 |
|
int numberOfDaughters() const{return m_numberOfDaughters;} |
67 |
|
float neutralEmEnergyFraction() const{return m_neutralEmEnergyFraction;} |
68 |
|
float neutralHadronEnergyFraction() const{return m_neutralHadronEnergyFraction;} |
81 |
|
float btag_combinedSecondaryVertexMVA() const{return m_btag_combinedSecondaryVertexMVA;} |
82 |
|
float btag_jetBProbability() const{return m_btag_jetBProbability;} |
83 |
|
float btag_jetProbability() const{return m_btag_jetProbability;} |
84 |
– |
float JEC_uncertainty() const{return m_JEC_uncertainty;} |
84 |
|
float JEC_factor_raw() const{return m_JEC_factor_raw;} |
85 |
< |
float genjet_pt() const{return m_genjet_pt;} |
86 |
< |
float genjet_eta() const{return m_genjet_eta;} |
87 |
< |
float genjet_phi() const{return m_genjet_phi;} |
88 |
< |
float genjet_energy() const{return m_genjet_energy;} |
89 |
< |
std::vector<unsigned int> genparticles_indices() const{return m_genparticles_indices;} |
85 |
> |
float genjet_pt() const{return genjet().pt();} |
86 |
> |
float genjet_eta() const{return genjet().eta();} |
87 |
> |
float genjet_phi() const{return genjet().phi();} |
88 |
> |
float genjet_energy() const{return genjet().energy();} |
89 |
> |
float genjet_index() const{return m_genjet_index;} |
90 |
|
|
91 |
|
void set_nTracks(int x){m_nTracks=x;} |
92 |
|
void set_jetArea(float x){m_jetArea=x;} |
94 |
– |
void set_pileup(float x){m_pileup=x;} |
93 |
|
void set_numberOfDaughters(int x){m_numberOfDaughters=x;} |
94 |
|
void set_neutralEmEnergyFraction(float x){m_neutralEmEnergyFraction=x;} |
95 |
|
void set_neutralHadronEnergyFraction(float x){m_neutralHadronEnergyFraction=x;} |
108 |
|
void set_btag_combinedSecondaryVertexMVA(float x){m_btag_combinedSecondaryVertexMVA=x;} |
109 |
|
void set_btag_jetBProbability(float x){m_btag_jetBProbability=x;} |
110 |
|
void set_btag_jetProbability(float x){m_btag_jetProbability=x;} |
113 |
– |
void set_JEC_uncertainty(float x){m_JEC_uncertainty=x;} |
111 |
|
void set_JEC_factor_raw(float x){m_JEC_factor_raw=x;} |
112 |
< |
void set_genjet_pt(float x){m_genjet_pt=x;} |
116 |
< |
void set_genjet_eta(float x){m_genjet_eta=x;} |
117 |
< |
void set_genjet_phi(float x){m_genjet_phi=x;} |
118 |
< |
void set_genjet_energy(float x){m_genjet_energy=x;} |
119 |
< |
void add_genparticles_index(unsigned int x){m_genparticles_indices.push_back(x);} |
112 |
> |
void set_genjet_index(int x){m_genjet_index=x;} |
113 |
|
|
114 |
< |
bool has_genjet() const{return m_genjet_pt>0;} |
114 |
> |
bool has_genjet() const{return m_genjet_index>=0;} |
115 |
> |
|
116 |
> |
void set_genjet(std::vector<Particle>* genjets){ |
117 |
> |
if(!genjets) return; |
118 |
> |
if(m_genjet_index<0 || m_genjet_index>(int)genjets->size()) return; |
119 |
> |
m_genjet = &genjets->at(m_genjet_index); |
120 |
> |
} |
121 |
|
|
122 |
|
bool pfID(){ |
123 |
|
//pf ID has already been applied when using goodPatJets |
140 |
|
|
141 |
|
int m_nTracks; |
142 |
|
float m_jetArea; |
144 |
– |
float m_pileup; |
143 |
|
int m_numberOfDaughters; |
144 |
|
float m_neutralEmEnergyFraction; |
145 |
|
float m_neutralHadronEnergyFraction; |
158 |
|
float m_btag_combinedSecondaryVertexMVA; |
159 |
|
float m_btag_jetBProbability; |
160 |
|
float m_btag_jetProbability; |
163 |
– |
float m_JEC_uncertainty; |
161 |
|
float m_JEC_factor_raw; |
162 |
< |
float m_genjet_pt; |
163 |
< |
float m_genjet_eta; |
167 |
< |
float m_genjet_phi; |
168 |
< |
float m_genjet_energy; |
162 |
> |
int m_genjet_index; |
163 |
> |
Particle* m_genjet; |
164 |
|
|
165 |
< |
std::vector<unsigned int> m_genparticles_indices; |
165 |
> |
std::vector<unsigned int> m_pfconstituents_indices; |
166 |
|
|
172 |
– |
std::vector<Particle> m_pfconstituents; |
167 |
|
|
168 |
|
}; |
169 |
|
|