ATTPCROOT  0.3.0-alpha
A ROOT-based framework for analyzing data from active target detectors
AtTPCIonGenerator.h
Go to the documentation of this file.
1 // -------------------------------------------------------------------------
2 // ----- AtTPCIonGenerator header file -----
3 // ----- Based on FairIonGenerator -----
4 // ----- Created 30/01/15 by Y. Ayyad -----
5 // -------------------------------------------------------------------------
6 
9 #ifndef AtTPCIONGENERAtOR_H
10 #define AtTPCIONGENERAtOR_H
11 
12 #include <FairGenerator.h>
13 
14 #include <Rtypes.h>
15 
16 class FairPrimaryGenerator;
17 class FairIon;
18 class TBuffer;
19 class TClass;
20 class TMemberInspector;
21 
22 class AtTPCIonGenerator : public FairGenerator {
23 protected:
24  static Int_t fgNIon;
25  Int_t fMult; //< Multiplicity per event
26  Double_t fPx, fPy, fPz; //< Momentum components [GeV] per nucleon
27 
28  Double32_t fR, fz, fOffsetX, fOffsetY; //< beam Spot radius [cm], z source, y source, x source
29  Double_t fVx, fVy, fVz; //< Vertex coordinates [cm]
30 
31  FairIon *fIon; //< Pointer to the FairIon to be generated
32  Int_t fQ; //< Electric charge [e]
33  Int_t fNomEner{};
34  Double_t fMaxEnLoss{}; //< Max energy loss before reation happens
35 
36  Bool_t fDoReact{true};
37 
39  virtual void SetVertexCoordinates();
40 
41 public:
44 
54  AtTPCIonGenerator(const Char_t *ionName, Int_t mult, Double_t px, Double_t py, Double_t pz);
55 
70  AtTPCIonGenerator(const char *name, Int_t z, Int_t a, Int_t q, Int_t mult, Double_t px, Double_t py, Double_t pz,
71  Double_t Ex, Double_t m, Double_t ener, Double_t eLoss = -1);
72 
74  virtual ~AtTPCIonGenerator() = default;
75 
77  void SetCharge(Int_t charge) { fQ = charge; }
78  void SetExcitationEnergy(Double_t eExc);
79  void SetMass(Double_t mass);
80 
81  void SetSpotRadius(Double32_t r = 0, Double32_t z = 0, Double32_t offx = 0, Double32_t offy = 0);
82 
83  void SetDoReaction(Bool_t doReact) { fDoReact = doReact; }
84 
89  virtual Bool_t ReadEvent(FairPrimaryGenerator *primGen);
90 
91  ClassDef(AtTPCIonGenerator, 2)
92 };
93 
94 #endif
AtTPCIonGenerator::fgNIon
static Int_t fgNIon
Definition: AtTPCIonGenerator.h:24
AtTPCIonGenerator::fQ
Int_t fQ
Definition: AtTPCIonGenerator.h:32
AtTPCIonGenerator::fR
Double32_t fR
Definition: AtTPCIonGenerator.h:28
AtTPCIonGenerator::fPx
Double_t fPx
Definition: AtTPCIonGenerator.h:26
AtTPCIonGenerator::SetMass
void SetMass(Double_t mass)
Definition: AtTPCIonGenerator.cxx:117
AtTPCIonGenerator::fMult
Int_t fMult
Number of the instance of this class.
Definition: AtTPCIonGenerator.h:25
AtTPCIonGenerator::fMaxEnLoss
Double_t fMaxEnLoss
Definition: AtTPCIonGenerator.h:34
AtTPCIonGenerator::fPz
Double_t fPz
Definition: AtTPCIonGenerator.h:26
AtTPCIonGenerator::SetSpotRadius
void SetSpotRadius(Double32_t r=0, Double32_t z=0, Double32_t offx=0, Double32_t offy=0)
Definition: AtTPCIonGenerator.cxx:121
AtTPCIonGenerator::fOffsetX
Double32_t fOffsetX
Definition: AtTPCIonGenerator.h:28
AtTPCIonGenerator::ReadEvent
virtual Bool_t ReadEvent(FairPrimaryGenerator *primGen)
Definition: AtTPCIonGenerator.cxx:139
AtTPCIonGenerator::fVz
Double_t fVz
Definition: AtTPCIonGenerator.h:29
AtTPCIonGenerator::fOffsetY
Double32_t fOffsetY
Definition: AtTPCIonGenerator.h:28
AtTPCIonGenerator::fIon
FairIon * fIon
Definition: AtTPCIonGenerator.h:31
AtTPCIonGenerator::SetExcitationEnergy
void SetExcitationEnergy(Double_t eExc)
Definition: AtTPCIonGenerator.cxx:113
AtTPCIonGenerator::fPy
Double_t fPy
Definition: AtTPCIonGenerator.h:26
AtTPCIonGenerator::SetCharge
void SetCharge(Int_t charge)
Definition: AtTPCIonGenerator.h:77
AtTPCIonGenerator::SetDoReaction
void SetDoReaction(Bool_t doReact)
Definition: AtTPCIonGenerator.h:83
AtTPCIonGenerator::fVx
Double_t fVx
Definition: AtTPCIonGenerator.h:29
AtTPCIonGenerator::fz
Double32_t fz
Definition: AtTPCIonGenerator.h:28
AtTPCIonGenerator
Definition: AtTPCIonGenerator.h:22
AtTPCIonGenerator::fNomEner
Int_t fNomEner
Definition: AtTPCIonGenerator.h:33
AtTPCIonGenerator::fVy
Double_t fVy
Definition: AtTPCIonGenerator.h:29
AtTPCIonGenerator::SetVertexCoordinates
virtual void SetVertexCoordinates()
Sets fVx, fVy, fVz depending on the type of ion generator.
Definition: AtTPCIonGenerator.cxx:129
AtTPCIonGenerator::AtTPCIonGenerator
AtTPCIonGenerator()
Definition: AtTPCIonGenerator.cxx:41
AtTPCIonGenerator::~AtTPCIonGenerator
virtual ~AtTPCIonGenerator()=default
AtTPCIonGenerator::fDoReact
Bool_t fDoReact
Definition: AtTPCIonGenerator.h:36