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
Error occurred while calculating annotation data.
Log Message:
doxygen info comments

File Contents

# Content
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 /**
17 * @short generic particle class
18 * @author Thomas Peiffer
19 */
20
21 class Particle{
22 public:
23 /// Default constructor
24 Particle(){
25 m_charge=0;
26 m_pt=0;
27 m_eta=0;
28 m_phi=0;
29 m_energy=0;
30 };
31 /// Default destructor
32 ~Particle(){
33 };
34
35 /// four-momentum
36 LorentzVector v4() const{
37 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
45 /// charge
46 float charge() const{return m_charge;}
47 /// transverse momentum
48 float pt() const {return m_pt;}
49 /// pseudo-rapidity
50 float eta() const{return m_eta;}
51 /// phi
52 float phi() const{return m_phi;}
53 ///energy
54 float energy() const{return m_energy;}
55
56 /// set charge
57 void set_charge(float charge){m_charge=charge;}
58 /// set transverse momentum
59 void set_pt(float pt){m_pt=pt;}
60 /// set pseudo-rapidity
61 void set_eta(float eta){m_eta=eta;}
62 /// set phi
63 void set_phi(float phi){m_phi=phi;}
64 /// set energy
65 void set_energy(float energy){m_energy=energy;}
66
67 /// set four-momentum
68 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 /// distance in phi to particle p2
76 double deltaPhi(const Particle p2) const{
77 double deltaphi = fabs(this->phi() - p2.phi());
78 if(deltaphi > PI) deltaphi = 2* PI - deltaphi;
79 return deltaphi;
80 }
81 /// distance in eta-phi plane to particle p2
82 double deltaR(const Particle p2) const{
83 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