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; |
28 |
|
m_phi=0; |
29 |
|
m_energy=0; |
30 |
|
}; |
31 |
< |
|
31 |
> |
/// Default destructor |
32 |
|
~Particle(){ |
33 |
|
}; |
34 |
|
|
35 |
< |
LorentzVector v4(){ |
35 |
> |
/// four-momentum |
36 |
> |
LorentzVector v4() const{ |
37 |
|
LorentzVector v4; |
38 |
|
v4.SetPt(m_pt); |
39 |
|
v4.SetEta(m_eta); |
41 |
|
v4.SetE(m_energy); |
42 |
|
return v4; |
43 |
|
}; |
44 |
< |
|
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 |
< |
double deltaPhi(Particle p2){ |
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 |
< |
double deltaR(Particle p2){ |
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 |
|
} |