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.4 by peiffer, Fri Jun 22 09:54:32 2012 UTC vs.
Revision 1.9 by peiffer, Wed Jun 19 16:02:37 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  
# Line 36 | Line 36 | class Jet : public Particle{
36       m_btag_jetProbability=0;
37       m_JEC_uncertainty=0;
38       m_JEC_factor_raw=0;
39 <     m_genjet_pt=0;
40 <     m_genjet_eta=0;
41 <     m_genjet_phi=0;
42 <     m_genjet_energy=0;
39 >     m_genjet_index=-1;
40       m_genparticles_indices.clear();
41 +     m_pfconstituents_indices.clear();
42 +     m_genjet=NULL;
43    };
44  
45    ~Jet(){
46    };
47  
48    LorentzVector genjet_v4() const{
49 <    LorentzVector v4;
50 <    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;
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<unsigned int> pfconstituents_indices() const{return m_pfconstituents_indices;}
64 +
65 +  void add_pfconstituents_index(int ind){m_pfconstituents_indices.push_back(ind);}
66 +
67    int nTracks() const{return m_nTracks;}
68    float jetArea() const{return m_jetArea;}
69    float pileup() const{return m_pileup;}
# Line 78 | Line 87 | class Jet : public Particle{
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 m_genjet_pt;}
91 <  float genjet_eta() const{return m_genjet_eta;}
92 <  float genjet_phi() const{return m_genjet_phi;}
93 <  float genjet_energy() const{return m_genjet_energy;}
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;}
# Line 107 | Line 117 | class Jet : public Particle{
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_pt(float x){m_genjet_pt=x;}
111 <  void set_genjet_eta(float x){m_genjet_eta=x;}
112 <  void set_genjet_phi(float x){m_genjet_phi=x;}
113 <  void set_genjet_energy(float x){m_genjet_energy=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_pt>0;}
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    
# Line 140 | Line 170 | class Jet : public Particle{
170    float m_btag_jetProbability;
171    float m_JEC_uncertainty;
172    float m_JEC_factor_raw;
173 <  float m_genjet_pt;
174 <  float m_genjet_eta;
145 <  float m_genjet_phi;
146 <  float m_genjet_energy;
173 >  int m_genjet_index;
174 >  Particle* m_genjet;
175  
176    std::vector<unsigned int> m_genparticles_indices;
177  
178 +  std::vector<unsigned int> m_pfconstituents_indices;
179 +
180 +
181   };
182  
183   #endif

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines