eic-smear  1.0.3
A collection of ROOT classes for Monte Carlo events and a fast-smearing code simulating detector effects for the Electron-Ion Collider task force
ParticleMCS.h
Go to the documentation of this file.
1 
10 #ifndef INCLUDE_EICSMEAR_SMEAR_PARTICLEMCS_H_
11 #define INCLUDE_EICSMEAR_SMEAR_PARTICLEMCS_H_
12 
13 #include <cmath>
14 
15 #include <TLorentzVector.h>
16 
17 #include "eicsmear/erhic/Pid.h"
19 
20 namespace Smear {
21 
22 class Event;
23 
28  public:
32  virtual ~ParticleMCS();
33 
39  ParticleMCS();
40 
44  ParticleMCS(const TLorentzVector&, int pdg, int status);
45 
49  virtual Double_t GetPx() const;
50 
54  virtual Double_t GetPy() const;
55 
59  virtual Double_t GetPz() const;
60 
64  virtual Double_t GetE() const;
65 
69  virtual TLorentzVector Get4Vector() const;
70 
74  virtual TLorentzVector PxPyPzE() const { return Get4Vector(); }
75 
85  virtual Double_t GetM() const;
86 
91  virtual Double_t GetPt() const;
92 
97  virtual TVector3 GetVertex() const;
98 
102  virtual Double_t GetP() const;
103 
107  virtual Double_t GetTheta() const;
108 
112  virtual Double_t GetPhi() const;
113 
117  virtual Double_t GetRapidity() const;
118 
122  virtual Double_t GetEta() const;
123 
128  virtual UShort_t GetStatus() const;
129 
133  virtual ::erhic::Pid Id() const;
134 
135  virtual void SetE(Double_t);
136 
137  virtual void SetP(Double_t);
138 
139  virtual void SetPt(Double_t);
140 
141  virtual void SetPz(Double_t);
142 
143  virtual void SetPhi(Double_t);
144 
145  virtual void SetTheta(Double_t);
146 
150  void Set4Vector(const TLorentzVector&) { }
151 
152  virtual void SetId(Int_t);
153 
154  virtual void SetStatus(Int_t);
155 
156  virtual UShort_t GetParentIndex() const { return 0; }
157 
162  virtual void Print(Option_t* = "") const;
163 
168  virtual void SetVertex(const TVector3&) { }
169 
170 // protected:
171  UShort_t status;
172  Int_t id;
173  Double32_t px;
174  Double32_t py;
175  Double32_t pz;
176  Double32_t E;
177  Double32_t pt;
178  Double32_t p;
179  Double32_t theta;
180  Double32_t phi;
181 
182  ClassDef(Smear::ParticleMCS, 1)
183 };
184 
185 inline Double_t ParticleMCS::GetPx() const {
186  return p * sin(theta) * cos(phi);
187 }
188 
189 inline Double_t ParticleMCS::GetPy() const {
190  return p * sin(theta) * sin(phi);
191 }
192 
193 inline Double_t ParticleMCS::GetPz() const {
194  return pz;
195 }
196 
197 inline Double_t ParticleMCS::GetE() const {
198  return E;
199 }
200 
201 inline Double_t ParticleMCS::GetM() const {
202  return sqrt(pow(E, 2.) - pow(p, 2.));
203 }
204 
205 inline Double_t ParticleMCS::GetPt() const {
206  return pt;
207 }
208 
209 inline TVector3 ParticleMCS::GetVertex() const {
210  return TVector3();
211 }
212 
213 inline Double_t ParticleMCS::GetP() const {
214  return p;
215 }
216 
217 inline Double_t ParticleMCS::GetTheta() const {
218  return theta;
219 }
220 
221 inline Double_t ParticleMCS::GetPhi() const {
222  return phi;
223 }
224 
225 inline UShort_t ParticleMCS::GetStatus() const {
226  return status;
227 }
228 
229 inline void ParticleMCS::SetE(Double_t e) {
230  E = e;
231 }
232 
233 inline void ParticleMCS::SetP(Double_t momentum) {
234  p = momentum;
235 }
236 
237 inline void ParticleMCS::SetPt(Double_t momentum) {
238  pt = momentum;
239 }
240 
241 inline void ParticleMCS::SetPz(Double_t momentum) {
242  pz = momentum;
243 }
244 
245 inline void ParticleMCS::SetPhi(Double_t value) {
246  phi = value;
247 }
248 
249 inline void ParticleMCS::SetTheta(Double_t value) {
250  theta = value;
251 }
252 
253 inline void ParticleMCS::SetId(Int_t i) {
254  id = i;
255 }
256 
257 inline void ParticleMCS::SetStatus(Int_t i) {
258  status = i;
259 }
260 
261 inline erhic::Pid ParticleMCS::Id() const {
262  return ::erhic::Pid(id);
263 }
264 
265 } // namespace Smear
266 
267 #endif // INCLUDE_EICSMEAR_SMEAR_PARTICLEMCS_H_
Pid.h
Smear::ParticleMCS::GetM
virtual Double_t GetM() const
Returns the apparent mass of the smeared particle.
Definition: ParticleMCS.h:201
Smear::ParticleMCS::p
Double32_t p
Total momentum of particle.
Definition: ParticleMCS.h:178
Smear::ParticleMCS::Set4Vector
void Set4Vector(const TLorentzVector &)
Dummy one; just need to compile;.
Definition: ParticleMCS.h:150
Smear
Definition: Acceptance.cxx:16
Smear::ParticleMCS::pt
Double32_t pt
Transverse momentum of particle.
Definition: ParticleMCS.h:177
erhic::Pid
Particle identity.
Definition: Pid.h:22
Smear::ParticleMCS::pz
Double32_t pz
z component of particle momentum
Definition: ParticleMCS.h:175
Smear::ParticleMCS::SetPhi
virtual void SetPhi(Double_t)
Definition: ParticleMCS.h:245
Smear::ParticleMCS::SetPt
virtual void SetPt(Double_t)
Definition: ParticleMCS.h:237
Smear::ParticleMCS::SetPz
virtual void SetPz(Double_t)
Definition: ParticleMCS.h:241
Smear::ParticleMCS::GetVertex
virtual TVector3 GetVertex() const
Returns the origin point of the particle (cm).
Definition: ParticleMCS.h:209
Smear::ParticleMCS::GetP
virtual Double_t GetP() const
Returns the total momentum (GeV).
Definition: ParticleMCS.h:213
Smear::ParticleMCS::PxPyPzE
virtual TLorentzVector PxPyPzE() const
Returns the (E,p) 4-vector in the lab frame.
Definition: ParticleMCS.h:74
Smear::ParticleMCS::GetParentIndex
virtual UShort_t GetParentIndex() const
Returns the index of the parent particle.
Definition: ParticleMCS.h:156
Smear::ParticleMCS::ParticleMCS
ParticleMCS()
Default constructor.
Definition: ParticleMCS.cxx:19
Smear::ParticleMCS::phi
Double32_t phi
Azimuthal angle.
Definition: ParticleMCS.h:180
Smear::ParticleMCS::py
Double32_t py
y component of particle momentum
Definition: ParticleMCS.h:174
Smear::ParticleMCS::GetE
virtual Double_t GetE() const
Returns the energy of the particle in the lab frame.
Definition: ParticleMCS.h:197
Smear::ParticleMCS::id
Int_t id
PDG particle code.
Definition: ParticleMCS.h:172
Smear::ParticleMCS::SetP
virtual void SetP(Double_t)
Definition: ParticleMCS.h:233
Smear::ParticleMCS::SetE
virtual void SetE(Double_t)
Definition: ParticleMCS.h:229
Smear::ParticleMCS::SetVertex
virtual void SetVertex(const TVector3 &)
Sets the origin coordinates.
Definition: ParticleMCS.h:168
Smear::ParticleMCS::GetPz
virtual Double_t GetPz() const
Returns the z component of 3-momentum.
Definition: ParticleMCS.h:193
Smear::ParticleMCS::~ParticleMCS
virtual ~ParticleMCS()
Destructor.
Definition: ParticleMCS.cxx:45
Smear::ParticleMCS::GetPhi
virtual Double_t GetPhi() const
Returns the polar angle in the range [0,2pi] radians.
Definition: ParticleMCS.h:221
Smear::ParticleMCS::SetStatus
virtual void SetStatus(Int_t)
Definition: ParticleMCS.h:257
VirtualParticle.h
erhic::VirtualParticle
Abstract base class for a general particle.
Definition: VirtualParticle.h:23
Smear::ParticleMCS::GetPy
virtual Double_t GetPy() const
Returns the y component of 3-momentum.
Definition: ParticleMCS.h:189
Smear::ParticleMCS::Id
virtual ::erhic::Pid Id() const
Returns the ID of the particle.
Definition: ParticleMCS.h:261
Smear::ParticleMCS::GetTheta
virtual Double_t GetTheta() const
Returns the polar angle in the range [0,pi] radians.
Definition: ParticleMCS.h:217
Smear::ParticleMCS
A smeared Monte Carlo particle.
Definition: ParticleMCS.h:27
Smear::ParticleMCS::SetTheta
virtual void SetTheta(Double_t)
Definition: ParticleMCS.h:249
Smear::ParticleMCS::theta
Double32_t theta
Polar angle.
Definition: ParticleMCS.h:179
Smear::ParticleMCS::Print
virtual void Print(Option_t *="") const
Prints the attributes of this particle to standard output.
Definition: ParticleMCS.cxx:52
Smear::ParticleMCS::GetRapidity
virtual Double_t GetRapidity() const
Returns the rapidity.
Definition: ParticleMCS.cxx:81
Smear::ParticleMCS::Get4Vector
virtual TLorentzVector Get4Vector() const
Returns the (E,p) 4-vector in the lab frame.
Definition: ParticleMCS.cxx:48
Smear::ParticleMCS::SetId
virtual void SetId(Int_t)
Definition: ParticleMCS.h:253
Smear::ParticleMCS::GetEta
virtual Double_t GetEta() const
Returns the pseudorapidity.
Definition: ParticleMCS.cxx:70
Smear::ParticleMCS::E
Double32_t E
Energy of particle.
Definition: ParticleMCS.h:176
Smear::ParticleMCS::GetStatus
virtual UShort_t GetStatus() const
Returns a status code following the PYTHIA defintion, where 21 indicates an initial-state particle an...
Definition: ParticleMCS.h:225
Smear::ParticleMCS::GetPx
virtual Double_t GetPx() const
Returns the x component of 3-momentum.
Definition: ParticleMCS.h:185
Smear::ParticleMCS::status
UShort_t status
Status code.
Definition: ParticleMCS.h:171
Smear::ParticleMCS::px
Double32_t px
x component of particle momentum
Definition: ParticleMCS.h:173
Smear::ParticleMCS::GetPt
virtual Double_t GetPt() const
Returns momentum transverse to the beam direction.
Definition: ParticleMCS.h:205