4 ////////////////////////////////////////////////////////////////////////////////
6 // AliGenGeVSim is a class implementing GeVSim event generator.
8 // GeVSim is a simple Monte-Carlo event generator for testing detector and
9 // algorythm performance especialy concerning flow and event-by-event studies
11 // In this event generator particles are generated from thermal distributions
12 // without any dynamics and addicional constrains. Distribution parameters like
13 // multiplicity, particle type yields, inverse slope parameters, flow coeficients
14 // and expansion velocities are expleicite defined by the user.
16 // GeVSim contains four thermal distributions the same as
17 // MevSim event generator developed for STAR experiment.
19 // In addition custom distributions can be used be the mean
20 // either two dimensional formula (TF2), a two dimensional histogram or
21 // two one dimensional histograms.
23 // Azimuthal distribution is deconvoluted from (Pt,Y) distribution
24 // and is described by two Fourier coefficients representing
25 // Directed and Elliptic flow.
27 ////////////////////////////////////////////////////////////////////////////////
29 // To apply flow to event ganerated by an arbitraly event generator
30 // refer to AliGenAfterBurnerFlow class.
32 ////////////////////////////////////////////////////////////////////////////////
34 // For examples, parameters and testing macros refer to:
35 // http:/home.cern.ch/radomski
37 // for more detailed description refer to ALICE NOTE
38 // "GeVSim Monte-Carlo Event Generator"
39 // S.Radosmki, P. Foka.
42 // Sylwester Radomski,
47 ////////////////////////////////////////////////////////////////////////////////
49 // Updated and revised: September 2002, S. Radomski, GSI
51 ////////////////////////////////////////////////////////////////////////////////
60 class AliGeVSimParticle;
63 class AliGenGeVSim : public AliGenerator {
68 AliGenGeVSim(Float_t psi, Bool_t isMultTotal = kTRUE);
70 virtual ~AliGenGeVSim();
72 /////////////////////////////////////////////////////////////////
74 void AddParticleType(AliGeVSimParticle *part);
75 void SetMultTotal(Bool_t isTotal = kTRUE);
80 /////////////////////////////////////////////////////////////////
84 Int_t fModel; // Selected model (1-7)
85 Float_t fPsi; // Reaction Plane angle (0-2pi)
86 Bool_t fIsMultTotal; // Mode od multiplicity: total, dN/dY
88 TF1 *fPtFormula; //! Pt formula for model (1)
89 TF1 *fYFormula; //! Y formula for model (1)
90 TF2 *fPtYFormula[3]; //! Pt,Y formulae for model (2)-(4)
91 TF1 *fPhiFormula; //! phi formula
93 TFormula *fCurrentForm; //! currently used formula
94 TH1D *fHist[2]; //! two 1D histograms (fModel == 6)
95 TH2D *fPtYHist; //! two-dimensional histogram (fModel == 7)
97 TObjArray *fPartTypes; // Registered particles
100 void SetFormula(Int_t pdg);
101 void AdjustFormula();
102 void DetermineReactionPlane();
103 void GetRandomPtY(Double_t &pt, Double_t &y);
105 Float_t GetdNdYToTotal();
107 Bool_t CheckPtYPhi(Float_t pt, Float_t y, Float_t phi); // for histograms only
108 Bool_t CheckAcceptance(Float_t p[3]);
110 Float_t FindScaler(Int_t paramId, Int_t pdg);
112 /////////////////////////////////////////////////////////////////
116 ClassDef(AliGenGeVSim, 2)