-
Notifications
You must be signed in to change notification settings - Fork 0
/
StEpSimuParticle.h
147 lines (122 loc) · 3.52 KB
/
StEpSimuParticle.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
// Container for all Particles
#ifndef StEpSimuParticle_def
#define StEpSimuParticle_def
#include "TObject.h"
#include "TRefArray.h"
#include "TVector3.h"
#include "TLorentzVector.h"
//#include "TParticle.h"
#include "TClonesArray.h"
class StEpSimuJetEvent;
class StEpSimuParticle : public TObject {
public:
StEpSimuParticle();
TVector3 momentum() const;
TLorentzVector fourMomentum() const;
TVector3 momentum_hb() const;
TLorentzVector fourMomentum_hb() const;
TVector3 momentum_breit() const;
TLorentzVector fourMomentum_breit() const;
// Declare Setters
void setFourMom(Double_t px, Double_t py, Double_t pz, Double_t e);
void setFourMom_hb(Double_t px, Double_t py, Double_t pz, Double_t e); // Hadron Boson Frame
void setFourMom_breit(Double_t px, Double_t py, Double_t pz, Double_t e); // Breit Frame
void setMass(Double_t mass);
void setIndex(int id);
void setStatus(int status);
void setPdgCode(int code);
void setParentIndex(int id);
void setNChildren(int n);
void setChild1Index(int id);
void setChildNIndex(int id);
void setZ(Double_t z);
void setXF(Double_t xf);
void setThetaVsGamma(Double_t theta);
void setPtVsGamma(Double_t pt);
void setVertex(Double_t x, Double_t y, Double_t z);
// Declare and Implement Getters
Double_t pt();
Double_t eta();
Double_t phi();
Double_t rap();
// Return Kinematics in Hadron Boson Frame
Double_t pt_hb();
Double_t eta_hb();
Double_t phi_hb();
Double_t rap_hb();
// Return Kinematics in Breit Frame
Double_t pt_breit();
Double_t eta_breit();
Double_t phi_breit();
Double_t rap_breit();
Double_t mass() { return mMass; }
int index() { return mIndex; }
int status() { return mStatus; }
int pdgCode() { return mPDG; }
int parentIndex() { return mParentIndex; }
int numChildren() { return mNChildren; }
int firstChild() { return mFirstChild; }
int lastChild() { return mLastChild; }
Double_t z() { return mZ; }
Double_t xF() { return mXF; }
Double_t thetaVsGamma() { return mThetaVsGamma; }
Double_t ptVsGamma() { return mPtVsGamma; }
Double_t vx() { return mVx; }
Double_t vy() { return mVy; }
Double_t vz() { return mVz; }
private:
Double_t mPx, mPy, mPz, mE;
Double_t mPx_hb, mPy_hb, mPz_hb, mE_hb;
Double_t mPx_breit, mPy_breit, mPz_breit, mE_breit;
Double_t mMass;
int mIndex;
int mStatus;
int mPDG;
int mParentIndex;
int mNChildren;
int mFirstChild;
int mLastChild;
Double_t mZ;
Double_t mXF;
Double_t mThetaVsGamma;
Double_t mPtVsGamma;
Double_t mVx, mVy, mVz;
ClassDef(StEpSimuParticle,3);
};
inline TVector3 StEpSimuParticle::momentum() const
{
TVector3 mom;
mom.SetXYZ(mPx,mPy,mPz);
return mom;
}
inline TLorentzVector StEpSimuParticle::fourMomentum() const
{
TLorentzVector fourMom;
fourMom.SetPxPyPzE(mPx,mPy,mPz,mE);
return fourMom;
}
inline TVector3 StEpSimuParticle::momentum_hb() const
{
TVector3 mom;
mom.SetXYZ(mPx_hb,mPy_hb,mPz_hb);
return mom;
}
inline TLorentzVector StEpSimuParticle::fourMomentum_hb() const
{
TLorentzVector fourMom;
fourMom.SetPxPyPzE(mPx_hb,mPy_hb,mPz_hb,mE_hb);
return fourMom;
}
inline TVector3 StEpSimuParticle::momentum_breit() const
{
TVector3 mom;
mom.SetXYZ(mPx_breit,mPy_breit,mPz_breit);
return mom;
}
inline TLorentzVector StEpSimuParticle::fourMomentum_breit() const
{
TLorentzVector fourMom;
fourMom.SetPxPyPzE(mPx_breit,mPy_breit,mPz_breit,mE_breit);
return fourMom;
}
#endif