ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/UHHAnalysis/NtupleWriter/Objects/Jet.h
(Generate patch)

Comparing UserCode/UHHAnalysis/NtupleWriter/Objects/Jet.h (file contents):
Revision 1.3 by peiffer, Wed Jun 13 09:38:28 2012 UTC vs.
Revision 1.10 by rkogler, Wed Jun 19 22:08:51 2013 UTC

# Line 1 | Line 1
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;
# Line 34 | Line 33 | class Jet : public Particle{
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();
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);
52 <    v4.SetEta(m_genjet_eta);
53 <    v4.SetPhi(m_genjet_phi);
54 <    v4.SetE(m_genjet_energy);
55 <    return v4;
46 >  
47 >    return genjet().v4();
48    };
49  
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_index(int ind){m_pfconstituents_indices.push_back(ind);}
63 +
64    int nTracks() const{return m_nTracks;}
65    float jetArea() const{return m_jetArea;}
60  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;}
# Line 76 | Line 81 | class Jet : public Particle{
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;}
79  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;}
89  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;}
# Line 105 | Line 108 | class Jet : public Particle{
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;}
108  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;}
113 <  void set_genjet_eta(float x){m_genjet_eta=x;}
114 <  void set_genjet_phi(float x){m_genjet_phi=x;}
115 <  void set_genjet_energy(float x){m_genjet_energy=x;}
116 <  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_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
124 >    if(numberOfDaughters()>1
125 >       && neutralHadronEnergyFraction()<0.99
126 >       && neutralEmEnergyFraction()<0.99){
127 >      
128 >      if(fabs(eta())>=2.4)
129 >        return true;
130 >      
131 >      if(chargedEmEnergyFraction()<0.99
132 >         && chargedHadronEnergyFraction()>0
133 >         && chargedMultiplicity()>0)
134 >        return true;  
135 >    }
136 >    return false;
137 >  }
138  
139   private:
140    
141    int m_nTracks;
142    float m_jetArea;
120  float m_pileup;
143    int m_numberOfDaughters;
144    float m_neutralEmEnergyFraction;
145    float m_neutralHadronEnergyFraction;
# Line 136 | Line 158 | class Jet : public Particle{
158    float m_btag_combinedSecondaryVertexMVA;
159    float m_btag_jetBProbability;
160    float m_btag_jetProbability;
139  float m_JEC_uncertainty;
161    float m_JEC_factor_raw;
162 <  float m_genjet_pt;
163 <  float m_genjet_eta;
164 <  float m_genjet_phi;
165 <  float m_genjet_energy;
162 >  int m_genjet_index;
163 >  Particle* m_genjet;
164 >
165 >  std::vector<unsigned int> m_pfconstituents_indices;
166  
146  std::vector<unsigned int> m_genparticles_indices;
167  
168   };
169  

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines