bug fixes
[u/mrichter/AliRoot.git] / EVGEN / AliGeVSimParticle.h
1 #ifndef ALIGEVSIMPARTICLE_H
2 #define ALIGEVSIMPARTICLE_H
3
4 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5  * See cxx source for full Copyright notice                               */
6
7 /* $Id$ */
8
9 //////////////////////////////////////////////////////////////////////////////
10 //
11 // AliGeVSimParticle is a helper class for GeVSim (AliGenGeVSim) event generator.
12 // An object of this class represents one particle type and contain 
13 // information about particle type thermal parameters.
14 //
15 //////////////////////////////////////////////////////////////////////////////
16 //
17 // For examples, parameters and testing macros refer to:
18 // http:/home.cern.ch/radomski
19 // 
20 // for more detailed description refer to ALICE NOTE
21 // "GeVSim Monte-Carlo Event Generator"
22 // S.Radosmki, P. Foka.
23 //  
24 // Author:
25 // Sylwester Radomski,
26 // GSI, March 2002
27 //  
28 // S.Radomski@gsi.de
29 //
30 //////////////////////////////////////////////////////////////////////////////
31 //
32 // Updated and revised: September 2002, S. Radomski, GSI
33 //
34 ////////////////////////////////////////////////////////////////////////////////
35
36
37 #include "TObject.h"
38
39 class AliGeVSimParticle : public TObject {
40
41  public:
42   
43   ////////////////////////////////////////////////////////////////////////////
44
45     AliGeVSimParticle();
46     AliGeVSimParticle(Int_t pdg, Int_t model, Float_t multiplicity); 
47     AliGeVSimParticle(Int_t pdg, Int_t model, Float_t multiplicity, 
48                     Float_t T, Float_t dY = 1., Float_t exp=0.);
49   
50     ~AliGeVSimParticle() {}
51   
52   ////////////////////////////////////////////////////////////////////////////
53   
54   Int_t GetPdgCode() const {return fPDG;}
55   Int_t GetModel() const {return fModel;}
56
57   Float_t GetTemperature() const {return fT;}
58   Float_t GetSigmaY() const {return fSigmaY;}
59   Float_t GetExpansionVelocity() const {return fExpansion;}
60
61   void SetModel(Int_t model);
62   void SetTemperature(Float_t T) {fT = T;}
63   void SetSigmaY(Float_t sigma) {fSigmaY = sigma;}
64   void SetExpansionVelocity(Float_t vel) {fExpansion = vel;}
65   
66
67   // Multiplicity
68
69   void    SetMultiplicity(Float_t mult);
70   Float_t GetMultiplicity() const {return fN;}
71
72   void   SetMultTotal(Bool_t isTotal = kTRUE);
73
74   Bool_t IsMultTotal() const {return fMultTotal;}
75   Bool_t IsMultForced() const {return fIsSetMult;}
76   
77   // Flow
78   
79   void SetDirectedSimple(Float_t v1);
80   void SetEllipticSimple(Float_t v2);
81
82   void SetDirectedParam(Float_t v11, Float_t v12=0, Float_t v13=1, Float_t v14=0);
83   void SetEllipticParam(Float_t v21, Float_t pTmax, Float_t v22=0.);
84   void SetEllipticOld(Float_t v21, Float_t v22, Float_t v23);
85
86   Bool_t IsFlowSimple() const;
87
88   Float_t GetDirectedFlow(Float_t pt, Float_t y);
89   Float_t GetEllipticFlow(Float_t pt, Float_t y);
90   
91   ////////////////////////////////////////////////////////////////////////////
92   
93  private:
94   
95   Int_t fPDG;            // Particle type code
96   Int_t fModel;          // Transverse momentum model
97
98   Float_t fN;            // Multiplicity (subject to scalling)
99   Bool_t  fMultTotal;    // multiplicity mode: Total or dN/dY
100   Bool_t  fIsSetMult;    // force multiplicity mode or use from AliGenGeVSim
101
102   Float_t fT;            // Slope Parameter (subject to scalling)
103   Float_t fSigmaY;       // Rapidity Width
104   Float_t fExpansion;    // Expansion Velocity in c units (subject to scalling)
105   
106   Float_t fV1[4];        // Directed Flow coefficient parameters
107   Float_t fV2[3];        // Elliptic Flow coefficient parameters
108   
109   Bool_t fIsDirectedSimple;  // indicate use constant value for directed (v1) 
110   Bool_t fIsEllipticSimple;  // indicate use constant value for elliptic (v2)
111   Bool_t fIsEllipticOld;     // linear / quadratical pT parametrisation
112
113   ClassDef(AliGeVSimParticle, 3)
114     
115 };
116
117 ////////////////////////////////////////////////////////////////////////////////
118
119 #endif