ATTPCROOT  0.3.0-alpha
A ROOT-based framework for analyzing data from active target detectors
AtVertexPropagator.h
Go to the documentation of this file.
1 #ifndef AtVertexPropagator_H
2 #define AtVertexPropagator_H
3 
4 #include <Rtypes.h>
5 #include <TObject.h>
6 #include <TVector3.h>
7 
8 #include <map>
9 #include <memory>
10 
11 class TBuffer;
12 class TClass;
13 class TMemberInspector;
14 
15 class AtVertexPropagator : public TObject {
16 
17 private:
18  static std::unique_ptr<AtVertexPropagator> fInstance;
19 
20  Int_t fGlobalEvtCnt;
21  Int_t fBeamEvtCnt;
22  Int_t fDecayEvtCnt;
23 
24  std::map<int, double> fTrackEn;
25  std::map<int, double> fTrackAngle;
26 
27  Double_t fVx;
28  Double_t fVy;
29  Double_t fVz;
30  Double_t fPx;
31  Double_t fPy;
32  Double_t fPz;
33  Double_t fE;
34  Double_t fBeamMass;
35  Double_t fRndELoss;
36  Double_t fBeamNomE;
37  Double_t fInVx;
38  Double_t fInVy;
39  Double_t fInVz;
40 
41  Double_t fRecoilE;
42  Double_t fRecoilA;
43  Double_t fScatterE;
44  Double_t fScatterA;
45  Double_t fBURes1E;
46  Double_t fBURes1A;
47  Double_t fBURes2E;
48  Double_t fBURes2A;
49 
50  Bool_t fIsValidKine;
51  Bool_t fIsd2HeEvt;
52  Int_t fAiso;
53  Int_t fZiso;
54  TVector3 fScatP;
55  TVector3 fd2HeVtx;
56  Double_t fExEjectile;
57 
58 protected:
60 
61 public:
62  virtual ~AtVertexPropagator() = default;
63 
64  static AtVertexPropagator *Instance();
65 
66  void SetVertex(Double_t vx, Double_t vy, Double_t vz, Double_t invx, Double_t invy, Double_t invz, Double_t px,
67  Double_t py, Double_t pz, Double_t E);
68  void SetBeamMass(Double_t m);
69 
70  void SetTrackEnergy(int trackID, double energy);
71  void SetTrackAngle(int trackID, double angle);
72 
73  /* void SetRecoilE(Double_t val);
74  void SetRecoilA(Double_t val);
75  void SetScatterE(Double_t val);
76  void SetScatterA(Double_t val);
77  void SetBURes1E(Double_t val); // Recoil(Scatt) breaks up. Residual 1
78  void SetBURes1A(Double_t val);
79  void SetBURes2E(Double_t val); // Recoil(Scatt) breaks up. Residual 2
80  void SetBURes2A(Double_t val);
81  */
82 
83  void SetRndELoss(Double_t eloss);
84  void SetBeamNomE(Double_t ener);
85  void ResetVertex();
86  void SetMassNum(Int_t mnum);
87  void SetAtomicNum(Int_t anum);
88  void SetScatterP(TVector3 val);
89  void SetScatterEx(Double_t val);
90  void Setd2HeVtx(TVector3 val);
91  void Setd2HeVtx(Double_t x0, Double_t y0, Double_t theta, Double_t phi);
92 
93  Int_t GetGlobalEvtCnt();
94  Int_t GetBeamEvtCnt();
95  Int_t GetDecayEvtCnt();
96  Double_t GetBeamMass();
97  Double_t GetVx();
98  Double_t GetVy();
99  Double_t GetVz();
100  Double_t GetInVx();
101  Double_t GetInVy();
102  Double_t GetInVz();
103  Double_t GetPx();
104  Double_t GetPy();
105  Double_t GetPz();
106  Double_t GetEnergy();
107  Double_t GetRndELoss();
108  Double_t GetBeamNomE();
109 
110  Double_t GetTrackAngle(int trackID);
111  Double_t GetTrackEnergy(int trackID);
112 
113  /*
114  Double_t GetRecoilE();
115  Double_t GetRecoilA();
116  Double_t GetScatterE();
117  Double_t GetScatterA();
118  Double_t GetBURes1E(); // Recoil(Scatt) breaks up. Residual 1
119  Double_t GetBURes1A();
120  Double_t GetBURes2E(); // Recoil(Scatt) breaks up. Residual 2
121  Double_t GetBURes2A();
122  */
123 
124  Int_t GetMassNum();
125  Int_t GetAtomicNum();
126  TVector3 GetScatterP();
127  Double_t GetScatterEx();
128  TVector3 Getd2HeVtx();
129 
130  void IncGlobalEvtCnt();
131  void IncBeamEvtCnt();
132  void IncDecayEvtCnt();
133 
134  void SetValidKine(Bool_t val);
135  Bool_t GetValidKine();
136  Bool_t Getd2HeEvt();
137 
138  ClassDef(AtVertexPropagator, 2)
139 };
140 
141 #endif
AtVertexPropagator
Definition: AtVertexPropagator.h:15
AtVertexPropagator::SetValidKine
void SetValidKine(Bool_t val)
Definition: AtVertexPropagator.cxx:325
AtVertexPropagator::GetVx
Double_t GetVx()
Definition: AtVertexPropagator.cxx:196
AtVertexPropagator::GetVz
Double_t GetVz()
Definition: AtVertexPropagator.cxx:204
AtVertexPropagator::GetPx
Double_t GetPx()
Definition: AtVertexPropagator.cxx:220
AtVertexPropagator::GetPz
Double_t GetPz()
Definition: AtVertexPropagator.cxx:228
AtVertexPropagator::GetPy
Double_t GetPy()
Definition: AtVertexPropagator.cxx:224
AtVertexPropagator::GetScatterEx
Double_t GetScatterEx()
Definition: AtVertexPropagator.cxx:304
AtVertexPropagator::GetDecayEvtCnt
Int_t GetDecayEvtCnt()
Definition: AtVertexPropagator.cxx:192
AtVertexPropagator::ResetVertex
void ResetVertex()
Definition: AtVertexPropagator.cxx:65
AtVertexPropagator::GetAtomicNum
Int_t GetAtomicNum()
Definition: AtVertexPropagator.cxx:296
AtVertexPropagator::GetGlobalEvtCnt
Int_t GetGlobalEvtCnt()
Definition: AtVertexPropagator.cxx:184
AtVertexPropagator::SetScatterP
void SetScatterP(TVector3 val)
Definition: AtVertexPropagator.cxx:161
AtVertexPropagator::GetValidKine
Bool_t GetValidKine()
Definition: AtVertexPropagator.cxx:288
AtVertexPropagator::IncGlobalEvtCnt
void IncGlobalEvtCnt()
Definition: AtVertexPropagator.cxx:313
AtVertexPropagator::GetBeamEvtCnt
Int_t GetBeamEvtCnt()
Definition: AtVertexPropagator.cxx:188
AtVertexPropagator::Getd2HeEvt
Bool_t Getd2HeEvt()
Definition: AtVertexPropagator.cxx:284
AtVertexPropagator::GetVy
Double_t GetVy()
Definition: AtVertexPropagator.cxx:200
AtVertexPropagator::Setd2HeVtx
void Setd2HeVtx(TVector3 val)
Definition: AtVertexPropagator.cxx:169
AtVertexPropagator::Getd2HeVtx
TVector3 Getd2HeVtx()
Definition: AtVertexPropagator.cxx:308
AtVertexPropagator::GetEnergy
Double_t GetEnergy()
Definition: AtVertexPropagator.cxx:232
AtVertexPropagator::GetInVx
Double_t GetInVx()
Definition: AtVertexPropagator.cxx:208
AtVertexPropagator::GetInVz
Double_t GetInVz()
Definition: AtVertexPropagator.cxx:216
AtVertexPropagator::SetAtomicNum
void SetAtomicNum(Int_t anum)
Definition: AtVertexPropagator.cxx:157
AtVertexPropagator::SetTrackEnergy
void SetTrackEnergy(int trackID, double energy)
Definition: AtVertexPropagator.cxx:92
AtVertexPropagator::SetBeamMass
void SetBeamMass(Double_t m)
Definition: AtVertexPropagator.cxx:87
AtVertexPropagator::AtVertexPropagator
AtVertexPropagator()
Definition: AtVertexPropagator.cxx:25
AtVertexPropagator::GetMassNum
Int_t GetMassNum()
Definition: AtVertexPropagator.cxx:292
AtVertexPropagator::GetBeamMass
Double_t GetBeamMass()
Definition: AtVertexPropagator.cxx:236
AtVertexPropagator::SetVertex
void SetVertex(Double_t vx, Double_t vy, Double_t vz, Double_t invx, Double_t invy, Double_t invz, Double_t px, Double_t py, Double_t pz, Double_t E)
Definition: AtVertexPropagator.cxx:40
AtVertexPropagator::GetRndELoss
Double_t GetRndELoss()
Definition: AtVertexPropagator.cxx:240
AtVertexPropagator::SetMassNum
void SetMassNum(Int_t mnum)
Definition: AtVertexPropagator.cxx:153
AtVertexPropagator::SetTrackAngle
void SetTrackAngle(int trackID, double angle)
Definition: AtVertexPropagator.cxx:96
AtVertexPropagator::GetScatterP
TVector3 GetScatterP()
Definition: AtVertexPropagator.cxx:300
AtVertexPropagator::SetBeamNomE
void SetBeamNomE(Double_t ener)
Definition: AtVertexPropagator.cxx:60
AtVertexPropagator::SetScatterEx
void SetScatterEx(Double_t val)
Definition: AtVertexPropagator.cxx:165
AtVertexPropagator::Instance
static AtVertexPropagator * Instance()
Definition: AtVertexPropagator.cxx:18
AtVertexPropagator::~AtVertexPropagator
virtual ~AtVertexPropagator()=default
AtVertexPropagator::GetTrackEnergy
Double_t GetTrackEnergy(int trackID)
Definition: AtVertexPropagator.cxx:109
AtVertexPropagator::SetRndELoss
void SetRndELoss(Double_t eloss)
Definition: AtVertexPropagator.cxx:55
AtVertexPropagator::GetInVy
Double_t GetInVy()
Definition: AtVertexPropagator.cxx:212
AtVertexPropagator::IncBeamEvtCnt
void IncBeamEvtCnt()
Definition: AtVertexPropagator.cxx:317
AtVertexPropagator::IncDecayEvtCnt
void IncDecayEvtCnt()
Definition: AtVertexPropagator.cxx:321
AtVertexPropagator::GetTrackAngle
Double_t GetTrackAngle(int trackID)
Definition: AtVertexPropagator.cxx:101
AtVertexPropagator::GetBeamNomE
Double_t GetBeamNomE()
Definition: AtVertexPropagator.cxx:244