ARTEMIS-CRIB
 
Loading...
Searching...
No Matches
TParticleInfo.h
Go to the documentation of this file.
1/**
2 * @file TParticleInfo.h
3 * @brief particle information class
4 * @author Kodai Okawa <okawa@cns.s.u-tokyo.ac.jp>
5 * @date 2024-05-08 18:07:32
6 * @note last modified: 2025-01-08 10:35:12
7 * @details
8 */
9
10#ifndef _TPARTICLEINFO_H_
11#define _TPARTICLEINFO_H_
12
13#include <TLorentzVector.h>
14#include <TTrack.h>
15
16namespace art::crib {
17class TParticleInfo;
18}
19
21 public:
22 typedef enum { kID,
24 typedef enum { kASC,
26
28 ~TParticleInfo() override;
29
30 TParticleInfo(const TParticleInfo &rhs);
32
33 void SetMassNumber(Int_t val) { fMassNumber = val; }
34 Int_t GetMassNumber() const { return fMassNumber; }
35 void SetAtomicNumber(Int_t val) { fAtomicNumber = val; }
36 Int_t GetAtomicNumber() const { return fAtomicNumber; }
37 void SetCharge(Int_t val) { fCharge = val; }
38 Int_t GetCharge() const { return fCharge; }
39
40 void SetCurrentZ(Double_t val) { fCurrentZ = val; }
41 Double_t GetCurrentZ() const { return fCurrentZ; }
42 void SetEnergy(Double_t val) { fEnergy = val; }
43 Double_t GetEnergy() const { return fEnergy; }
44 void SetZeroTime() { fTime = 0; }
45 void AddTime(Double_t val) { fTime += val; }
46 Double_t GetDurationTime() const { return fTime; }
47
48 void SetLorentzVector(Double_t x, Double_t y, Double_t z, Double_t t) { fVec.SetXYZT(x, y, z, t); }
49 void SetLorentzVector(TLorentzVector val) { fVec = val; }
50 TLorentzVector GetLorentzVector() const { return fVec; }
51
52 void SetTrack(Double_t x, Double_t y, Double_t z, Double_t a, Double_t b) {
53 fTrack.SetPos(x, y, z);
54 fTrack.SetAngle(a, b);
55 }
56 TTrack GetTrack() const { return fTrack; }
57
58 void SetThetaCM(Double_t val) { fTheta_cm = val; }
59 Double_t GetThetaCM() const { return fTheta_cm; }
60 void SetPhiCM(Double_t val) { fPhi_cm = val; }
61 Double_t GetPhiCM() const { return fPhi_cm; }
62
63 void Copy(TObject &dest) const override;
64 void Clear(Option_t *opt = "") override;
65
66 protected:
69 Int_t fCharge;
70
71 Double_t fEnergy; // kinetic energy in LAB system
72 Double_t fCurrentZ; // current Z position
73 Double_t fTime; // Duration time (ns)
74
75 TTrack fTrack; // tracking information in LAB system
76 TLorentzVector fVec; // lorentz vector (px, py, pz, E) of this particle
77
78 Double_t fTheta_cm; // theta angle (deg) in CM system
79 Double_t fPhi_cm; // phi angle (deg) in CM system
80
82};
83
84#endif // end of #ifndef _TPARTICLEINFO_H_
void SetTrack(Double_t x, Double_t y, Double_t z, Double_t a, Double_t b)
Double_t GetCurrentZ() const
void SetMassNumber(Int_t val)
TLorentzVector GetLorentzVector() const
void SetLorentzVector(Double_t x, Double_t y, Double_t z, Double_t t)
void SetThetaCM(Double_t val)
void Copy(TObject &dest) const override
Double_t GetThetaCM() const
Int_t GetAtomicNumber() const
Double_t GetPhiCM() const
void Clear(Option_t *opt="") override
void SetCurrentZ(Double_t val)
TParticleInfo & operator=(const TParticleInfo &rhs)
void SetPhiCM(Double_t val)
void AddTime(Double_t val)
void SetLorentzVector(TLorentzVector val)
ClassDefOverride(TParticleInfo, 1)
Double_t GetEnergy() const
Int_t GetMassNumber() const
void SetCharge(Int_t val)
Double_t GetDurationTime() const
void SetAtomicNumber(Int_t val)
void SetEnergy(Double_t val)
return to the guide