StRoot  1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
TGeVSimParticle.h
1 #ifndef TGeVSimParticle_h
2 #define TGeVSimParticle_h
3 
5 //
6 // TGeVSimParticle is a helper class for GeVSim event generator
7 //
8 // One object of this class keep information about one particle type.
9 // Those include PDG code, momentum distribution model, and its parameter
10 // as well as Directed and Elliptic flow parameters.
11 //
12 // For documentation about GeVSim event generator and implemented
13 // momentum distributions models refer to TGeVSim
14 //
15 // Sylwester Radomski, e-mail: S.Radomski@gsi.de
16 // GSI, Dec 13, 2002
17 //
19 
20 #include "TGeVSim.h"
21 
22 class TGeVSimParticle : public TObject {
23 
24  public:
25 
27 
28  TGeVSimParticle() {}
29  TGeVSimParticle(Int_t pdg, TGeVSim::Model_t model, Float_t multiplicity);
30  TGeVSimParticle(Int_t pdg, TGeVSim::Model_t model, Float_t multiplicity,
31  Float_t T, Float_t dY = 1., Float_t param2=0.);
32 
33  ~TGeVSimParticle() {}
34 
36 
37  Int_t GetPdgCode() const {return fPDG;}
38  TGeVSim::Model_t GetModel() const {return fModel;}
39 
40  Float_t GetTemperature() const {return fT;}
41  Float_t GetSigmaY() const {return fSigmaY;}
42  Float_t GetExpansionVelocity() const;
43  Float_t GetSigmaTemp() const;
44 
45  void SetModel(TGeVSim::Model_t model);
46  void SetTemperature(Float_t T) {fT = T;}
47  void SetSigmaY(Float_t sigma) {fSigmaY = sigma;}
48  void SetExpansionVelocity(Float_t vel);
49  void SetSigmaTemp(Float_t sigT);
50 
51 
52  // Multiplicity
53 
54  void SetMultiplicity(Float_t mult);
55  Float_t GetMultiplicity() {return fN;}
56 
57  void SetMultTotal(Bool_t isTotal = kTRUE);
58 
59  Bool_t IsMultTotal() {return fMultTotal;}
60  Bool_t IsMultForced() {return fIsSetMult;}
61 
62  // Flow
63 
64  void SetDirectedSimple(Float_t v1);
65  void SetEllipticSimple(Float_t v2);
66 
67  void SetDirectedParam(Float_t v11, Float_t v12=0, Float_t v13=1, Float_t v14=0);
68  void SetEllipticParam1(Float_t v21, Float_t pTmax, Float_t v22=0.);
69  void SetEllipticParam2(Float_t v21, Float_t v22, Float_t v23);
70 
71  Bool_t IsFlowSimple();
72 
73  Float_t GetDirectedFlow(Float_t pt, Float_t y);
74  Float_t GetEllipticFlow(Float_t pt, Float_t y);
75 
76  void Print(Option_t* option="") const; // argument to remove compiler warning about overloaded virtual functions
77 
79 
80  private:
81 
82  Int_t fPDG; // Particle type code
83  TGeVSim::Model_t fModel; // Transverse momentum model
84 
85  Float_t fN; // Multiplicity (subject to scalling)
86  Bool_t fMultTotal; // multiplicity mode: Total or dN/dY
87  Bool_t fIsSetMult; // force multiplicity mode or use from TGenGeVSim
88 
89  Float_t fT; // Slope Parameter (subject to scalling)
90  Float_t fSigmaY; // Rapidity Width
91  Float_t fParam2; // Expansion Velocity in c units (subject to scalling)
92 
93  Float_t fV1[4]; // Directed Flow coefficient parameters
94  Float_t fV2[3]; // Elliptic Flow coefficient parameters
95 
96  Bool_t fIsDirectedSimple; // indicate use constant value for directed (v1)
97  Bool_t fIsEllipticSimple; // indicate use constant value for elliptic (v2)
98  Bool_t fIsEllipticOld; // linear / quadratical pT parametrisation
99 
100  public:
101 
102  ClassDef(TGeVSimParticle, 1)
103 
104 };
105 
107 
108 #endif