ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/UHHAnalysis/NtupleWriter/Objects/Particle.h
Revision: 1.5
Committed: Wed Jun 13 09:38:29 2012 UTC (12 years, 11 months ago) by peiffer
Content type: text/plain
Branch: MAIN
CVS Tags: v1-00, Feb-15-2013-v1, Feb-14-2013, Feb-07-2013-v1, Jan-17-2013-v2, Jan-17-2013-v1, Jan-16-2012-v1, Jan-09-2012-v2, Jan-09-2012-v1, Dec-26-2012-v1, Dec-20-2012-v1, Dec-17-2012-v1, Dec-05-2012-v1, Nov-30-2012-v3, Nov-30-2012-v2, Nov-30-2012-v1, HEAD
Changes since 1.4: +22 -2 lines
Log Message:
doxygen info comments

File Contents

# User Rev Content
1 peiffer 1.1 #ifndef Particle_H
2     #define Particle_H
3    
4     #include <vector>
5     #include "Math/LorentzVector.h"
6     #include "Math/PtEtaPhiE4D.h"
7     #include "TObject.h"
8    
9    
10     #ifndef PI
11     #define PI 3.14159265358979323846264338328
12     #endif
13    
14     typedef ROOT::Math::LorentzVector< ROOT::Math::PtEtaPhiE4D< Double32_t > > LorentzVector;
15    
16 peiffer 1.5 /**
17     * @short generic particle class
18     * @author Thomas Peiffer
19     */
20    
21 peiffer 1.1 class Particle{
22     public:
23 peiffer 1.5 /// Default constructor
24 peiffer 1.1 Particle(){
25     m_charge=0;
26     m_pt=0;
27     m_eta=0;
28     m_phi=0;
29     m_energy=0;
30     };
31 peiffer 1.5 /// Default destructor
32 peiffer 1.1 ~Particle(){
33     };
34    
35 peiffer 1.5 /// four-momentum
36 peiffer 1.3 LorentzVector v4() const{
37 peiffer 1.1 LorentzVector v4;
38     v4.SetPt(m_pt);
39     v4.SetEta(m_eta);
40     v4.SetPhi(m_phi);
41     v4.SetE(m_energy);
42     return v4;
43     };
44 peiffer 1.5
45     /// charge
46 peiffer 1.2 float charge() const{return m_charge;}
47 peiffer 1.5 /// transverse momentum
48 peiffer 1.2 float pt() const {return m_pt;}
49 peiffer 1.5 /// pseudo-rapidity
50 peiffer 1.2 float eta() const{return m_eta;}
51 peiffer 1.5 /// phi
52 peiffer 1.2 float phi() const{return m_phi;}
53 peiffer 1.5 ///energy
54 peiffer 1.2 float energy() const{return m_energy;}
55 peiffer 1.1
56 peiffer 1.5 /// set charge
57 peiffer 1.1 void set_charge(float charge){m_charge=charge;}
58 peiffer 1.5 /// set transverse momentum
59 peiffer 1.1 void set_pt(float pt){m_pt=pt;}
60 peiffer 1.5 /// set pseudo-rapidity
61 peiffer 1.1 void set_eta(float eta){m_eta=eta;}
62 peiffer 1.5 /// set phi
63 peiffer 1.1 void set_phi(float phi){m_phi=phi;}
64 peiffer 1.5 /// set energy
65 peiffer 1.1 void set_energy(float energy){m_energy=energy;}
66    
67 peiffer 1.5 /// set four-momentum
68 peiffer 1.3 void set_v4(LorentzVector v4){
69     set_pt(v4.Pt());
70     set_eta(v4.Eta());
71     set_phi(v4.Phi());
72     set_energy(v4.E());
73     }
74    
75 peiffer 1.5 /// distance in phi to particle p2
76 peiffer 1.4 double deltaPhi(const Particle p2) const{
77 peiffer 1.1 double deltaphi = fabs(this->phi() - p2.phi());
78     if(deltaphi > PI) deltaphi = 2* PI - deltaphi;
79     return deltaphi;
80     }
81 peiffer 1.5 /// distance in eta-phi plane to particle p2
82 peiffer 1.4 double deltaR(const Particle p2) const{
83 peiffer 1.1 double deltaeta = this->eta() - p2.eta();
84     return sqrt(deltaeta*deltaeta+deltaPhi(p2)*deltaPhi(p2));
85     }
86    
87     private:
88    
89     float m_charge;
90     float m_pt;
91     float m_eta;
92     float m_phi;
93     float m_energy;
94    
95     };
96    
97     #endif