3 |
|
|
4 |
|
#include "Particle.h" |
5 |
|
|
6 |
+ |
/** |
7 |
+ |
* @short jet class |
8 |
+ |
* @author Thomas Peiffer |
9 |
+ |
*/ |
10 |
|
|
11 |
|
class Jet : public Particle{ |
12 |
|
|
46 |
|
~Jet(){ |
47 |
|
}; |
48 |
|
|
49 |
< |
LorentzVector genjet_v4(){ |
49 |
> |
LorentzVector genjet_v4() const{ |
50 |
|
LorentzVector v4; |
51 |
|
v4.SetPt(m_genjet_pt); |
52 |
|
v4.SetEta(m_genjet_eta); |
55 |
|
return v4; |
56 |
|
}; |
57 |
|
|
58 |
< |
int nTracks(){return m_nTracks;} |
59 |
< |
float jetArea(){return m_jetArea;} |
60 |
< |
float pileup(){return m_pileup;} |
61 |
< |
int numberOfDaughters(){return m_numberOfDaughters;} |
62 |
< |
float neutralEmEnergyFraction(){return m_neutralEmEnergyFraction;} |
63 |
< |
float neutralHadronEnergyFraction(){return m_neutralHadronEnergyFraction;} |
64 |
< |
float chargedEmEnergyFraction(){return m_chargedEmEnergyFraction;} |
65 |
< |
float chargedHadronEnergyFraction(){return m_chargedHadronEnergyFraction;} |
66 |
< |
float muonEnergyFraction(){return m_muonEnergyFraction;} |
67 |
< |
float photonEnergyFraction(){return m_photonEnergyFraction;} |
68 |
< |
int chargedMultiplicity(){return m_chargedMultiplicity;} |
69 |
< |
int neutralMultiplicity(){return m_neutralMultiplicity;} |
70 |
< |
int muonMultiplicity(){return m_muonMultiplicity;} |
71 |
< |
int electronMultiplicity(){return m_electronMultiplicity;} |
72 |
< |
int photonMultiplicity(){return m_photonMultiplicity;} |
73 |
< |
float btag_simpleSecondaryVertexHighEff(){return m_btag_simpleSecondaryVertexHighEff;} |
74 |
< |
float btag_simpleSecondaryVertexHighPur(){return m_btag_simpleSecondaryVertexHighPur;} |
75 |
< |
float btag_combinedSecondaryVertex(){return m_btag_combinedSecondaryVertex;} |
76 |
< |
float btag_combinedSecondaryVertexMVA(){return m_btag_combinedSecondaryVertexMVA;} |
77 |
< |
float btag_jetBProbability(){return m_btag_jetBProbability;} |
78 |
< |
float btag_jetProbability(){return m_btag_jetProbability;} |
79 |
< |
float JEC_uncertainty(){return m_JEC_uncertainty;} |
80 |
< |
float JEC_factor_raw(){return m_JEC_factor_raw;} |
81 |
< |
float genjet_pt(){return m_genjet_pt;} |
82 |
< |
float genjet_eta(){return m_genjet_eta;} |
83 |
< |
float genjet_phi(){return m_genjet_phi;} |
84 |
< |
float genjet_energy(){return m_genjet_energy;} |
85 |
< |
std::vector<unsigned int> genparticles_indices(){return m_genparticles_indices;} |
58 |
> |
int nTracks() const{return m_nTracks;} |
59 |
> |
float jetArea() const{return m_jetArea;} |
60 |
> |
float pileup() const{return m_pileup;} |
61 |
> |
int numberOfDaughters() const{return m_numberOfDaughters;} |
62 |
> |
float neutralEmEnergyFraction() const{return m_neutralEmEnergyFraction;} |
63 |
> |
float neutralHadronEnergyFraction() const{return m_neutralHadronEnergyFraction;} |
64 |
> |
float chargedEmEnergyFraction() const{return m_chargedEmEnergyFraction;} |
65 |
> |
float chargedHadronEnergyFraction() const{return m_chargedHadronEnergyFraction;} |
66 |
> |
float muonEnergyFraction() const{return m_muonEnergyFraction;} |
67 |
> |
float photonEnergyFraction() const{return m_photonEnergyFraction;} |
68 |
> |
int chargedMultiplicity() const{return m_chargedMultiplicity;} |
69 |
> |
int neutralMultiplicity() const{return m_neutralMultiplicity;} |
70 |
> |
int muonMultiplicity() const{return m_muonMultiplicity;} |
71 |
> |
int electronMultiplicity() const{return m_electronMultiplicity;} |
72 |
> |
int photonMultiplicity() const{return m_photonMultiplicity;} |
73 |
> |
float btag_simpleSecondaryVertexHighEff() const{return m_btag_simpleSecondaryVertexHighEff;} |
74 |
> |
float btag_simpleSecondaryVertexHighPur() const{return m_btag_simpleSecondaryVertexHighPur;} |
75 |
> |
float btag_combinedSecondaryVertex() const{return m_btag_combinedSecondaryVertex;} |
76 |
> |
float btag_combinedSecondaryVertexMVA() const{return m_btag_combinedSecondaryVertexMVA;} |
77 |
> |
float btag_jetBProbability() const{return m_btag_jetBProbability;} |
78 |
> |
float btag_jetProbability() const{return m_btag_jetProbability;} |
79 |
> |
float JEC_uncertainty() const{return m_JEC_uncertainty;} |
80 |
> |
float JEC_factor_raw() const{return m_JEC_factor_raw;} |
81 |
> |
float genjet_pt() const{return m_genjet_pt;} |
82 |
> |
float genjet_eta() const{return m_genjet_eta;} |
83 |
> |
float genjet_phi() const{return m_genjet_phi;} |
84 |
> |
float genjet_energy() const{return m_genjet_energy;} |
85 |
> |
std::vector<unsigned int> genparticles_indices() const{return m_genparticles_indices;} |
86 |
|
|
87 |
|
void set_nTracks(int x){m_nTracks=x;} |
88 |
|
void set_jetArea(float x){m_jetArea=x;} |
113 |
|
void set_genjet_energy(float x){m_genjet_energy=x;} |
114 |
|
void add_genparticles_index(unsigned int x){m_genparticles_indices.push_back(x);} |
115 |
|
|
116 |
+ |
bool has_genjet() const{return m_genjet_pt>0;} |
117 |
+ |
|
118 |
+ |
bool pfID(){ |
119 |
+ |
//pf ID has already been applied when using goodPatJets |
120 |
+ |
if(numberOfDaughters()>1 |
121 |
+ |
&& neutralHadronEnergyFraction()<0.99 |
122 |
+ |
&& neutralEmEnergyFraction()<0.99){ |
123 |
+ |
|
124 |
+ |
if(fabs(eta())>=2.4) |
125 |
+ |
return true; |
126 |
+ |
|
127 |
+ |
if(chargedEmEnergyFraction()<0.99 |
128 |
+ |
&& chargedHadronEnergyFraction()>0 |
129 |
+ |
&& chargedMultiplicity()>0) |
130 |
+ |
return true; |
131 |
+ |
} |
132 |
+ |
return false; |
133 |
+ |
} |
134 |
+ |
|
135 |
|
private: |
136 |
|
|
137 |
|
int m_nTracks; |