1 #ifndef ALIGEVSIMPARTICLE_H
2 #define ALIGEVSIMPARTICLE_H
4 ////////////////////////////////////////////////////////////////////////////////
6 // AliGeVSimParticle is a helper class for GeVSim (AliGenGeVSim) event generator.
7 // An object of this class represents one particle type and contain
8 // information about particle type thermal parameters.
10 ////////////////////////////////////////////////////////////////////////////////
12 // For examples, parameters and testing macros refer to:
13 // http:/home.cern.ch/radomski
15 // for more detailed description refer to ALICE NOTE
16 // "GeVSim Monte-Carlo Event Generator"
17 // S.Radosmki, P. Foka.
20 // Sylwester Radomski,
25 ////////////////////////////////////////////////////////////////////////////////
27 // Updated and revised: September 2002, S. Radomski, GSI
29 ////////////////////////////////////////////////////////////////////////////////
34 class AliGeVSimParticle : public TObject {
38 ////////////////////////////////////////////////////////////////////////////
40 AliGeVSimParticle() {}
41 AliGeVSimParticle(Int_t pdg, Int_t model, Float_t multiplicity);
42 AliGeVSimParticle(Int_t pdg, Int_t model, Float_t multiplicity,
43 Float_t T, Float_t dY = 1., Float_t exp=0.);
45 ~AliGeVSimParticle() {}
47 ////////////////////////////////////////////////////////////////////////////
49 Int_t GetPdgCode() const {return fPDG;}
50 Int_t GetModel() const {return fModel;}
52 Float_t GetTemperature() const {return fT;}
53 Float_t GetSigmaY() const {return fSigmaY;}
54 Float_t GetExpansionVelocity() const {return fExpansion;}
56 void SetModel(Int_t model);
57 void SetTemperature(Float_t T) {fT = T;}
58 void SetSigmaY(Float_t sigma) {fSigmaY = sigma;}
59 void SetExpansionVelocity(Float_t vel) {fExpansion = vel;}
64 void SetMultiplicity(Float_t mult);
65 Float_t GetMultiplicity() {return fN;}
67 void SetMultTotal(Bool_t isTotal = kTRUE);
69 Bool_t IsMultTotal() {return fMultTotal;}
70 Bool_t IsMultForced() {return fIsSetMult;}
74 void SetDirectedSimple(Float_t v1);
75 void SetEllipticSimple(Float_t v2);
77 void SetDirectedParam(Float_t v11, Float_t v12=0, Float_t v13=1, Float_t v14=0);
78 void SetEllipticParam(Float_t v21, Float_t pTmax, Float_t v22=0.);
79 void SetEllipticOld(Float_t v21, Float_t v22, Float_t v23);
81 Bool_t IsFlowSimple();
83 Float_t GetDirectedFlow(Float_t pt, Float_t y);
84 Float_t GetEllipticFlow(Float_t pt, Float_t y);
86 ////////////////////////////////////////////////////////////////////////////
90 Int_t fPDG; // Particle type code
91 Int_t fModel; // Transverse momentum model
93 Float_t fN; // Multiplicity (subject to scalling)
94 Bool_t fMultTotal; // multiplicity mode: Total or dN/dY
95 Bool_t fIsSetMult; // force multiplicity mode or use from AliGenGeVSim
97 Float_t fT; // Slope Parameter (subject to scalling)
98 Float_t fSigmaY; // Rapidity Width
99 Float_t fExpansion; // Expansion Velocity in c units (subject to scalling)
101 Float_t fV1[4]; // Directed Flow coefficient parameters
102 Float_t fV2[3]; // Elliptic Flow coefficient parameters
104 Bool_t fIsDirectedSimple; // indicate use constant value for directed (v1)
105 Bool_t fIsEllipticSimple; // indicate use constant value for elliptic (v2)
106 Bool_t fIsEllipticOld; // linear / quadratical pT parametrisation
110 ClassDef(AliGeVSimParticle, 3)
114 ////////////////////////////////////////////////////////////////////////////////