]>
Commit | Line | Data |
---|---|---|
7816887f | 1 | #ifndef ALIGENGEVSIM_H |
2 | #define ALIGENGEVSIM_H | |
3 | ||
4966b266 | 4 | //////////////////////////////////////////////////////////////////////////////// |
5 | // | |
6 | // AliGenGeVSim is a class implementing simple Monte-Carlo event generator for | |
7 | // testing algorythms and detector performance. | |
8 | // | |
9 | // In this event generator particles are generated from thermal distributions | |
10 | // without any dynamics and addicional constrains. Distribution parameters like | |
11 | // multiplicity, particle type yields, inverse slope parameters, flow coeficients | |
12 | // and expansion velocities are expleicite defined by the user. | |
13 | // | |
14 | // GeVSim contains four thermal distributions the same as | |
15 | // MevSim event generator developed for STAR experiment. | |
16 | // | |
17 | // In addition custom distributions can be used be the mean of TF2 function | |
18 | // named "gevsimPtY". | |
19 | // | |
20 | // Azimuthal distribution is deconvoluted from (Pt,Y) distribution | |
21 | // and is described by two Fourier coefficients representing | |
22 | // Directed and Elliptical flow. | |
23 | // | |
24 | // To apply flow to event ganerated by an arbitraly event generator | |
25 | // refer to AliGenAfterBurnerFlow class. | |
26 | // For examples, parameters and testing macros refer to: | |
27 | // http:/home.cern.ch/radomski | |
28 | // | |
29 | // Author: | |
30 | // Sylwester Radomski, | |
31 | // GSI, March 2002 | |
32 | // | |
33 | // S.Radomski@gsi.de | |
34 | // | |
35 | //////////////////////////////////////////////////////////////////////////////// | |
36 | ||
37 | class TFormula; | |
38 | class TF1; | |
39 | class TF2; | |
40 | class TObjArray; | |
41 | class AliGeVSimParticle; | |
7816887f | 42 | |
43 | ||
44 | class AliGenGeVSim : public AliGenerator { | |
45 | ||
4966b266 | 46 | public: |
47 | ||
48 | AliGenGeVSim(); | |
49 | AliGenGeVSim(Int_t model, Float_t psi); | |
50 | ||
51 | virtual ~AliGenGeVSim(); | |
52 | ||
53 | ///////////////////////////////////////////////////////////////// | |
54 | ||
55 | void AddParticleType(AliGeVSimParticle *part); | |
56 | ||
57 | void Init(); | |
58 | void Generate(); | |
59 | ||
60 | ///////////////////////////////////////////////////////////////// | |
61 | ||
62 | private: | |
63 | ||
7816887f | 64 | Int_t fModel; // Selected model (1-5) |
65 | Float_t fPsi; // Reaction Plane angle (0-2pi) | |
4966b266 | 66 | |
7816887f | 67 | TF1 *fPtFormula; // Pt formula for model (1) |
68 | TF1 *fYFormula; // Y formula for model (1) | |
69 | TF2 *fPtYFormula[4]; // Pt,Y formulae for model (2)-(4) and custom | |
70 | TF1 *fPhiFormula; // phi formula | |
4966b266 | 71 | |
7816887f | 72 | TObjArray *fPartTypes; // Registered particles |
4966b266 | 73 | |
7816887f | 74 | void InitFormula(); |
4966b266 | 75 | void DetermineReactionPlane(); |
76 | ||
77 | TFormula* DetermineModel(); | |
78 | ||
7816887f | 79 | //void PlotDistributions(); |
80 | ||
81 | Bool_t CheckPtYPhi(Float_t pt, Float_t y, Float_t phi); | |
82 | Bool_t CheckP(Float_t p[3]); | |
4966b266 | 83 | |
7816887f | 84 | Float_t FindScaler(Int_t paramId, Int_t pdg); |
7816887f | 85 | |
7816887f | 86 | ///////////////////////////////////////////////////////////////// |
87 | ||
4966b266 | 88 | public: |
89 | ||
7816887f | 90 | ClassDef(AliGenGeVSim, 1) |
91 | ||
92 | }; | |
93 | ||
94 | #endif |