]>
Commit | Line | Data |
---|---|---|
7816887f | 1 | #ifndef ALIGENGEVSIM_H |
2 | #define ALIGENGEVSIM_H | |
0af12c00 | 3 | /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * |
4 | * See cxx source for full Copyright notice */ | |
5 | ||
6 | /* $Id$ */ | |
7816887f | 7 | |
4966b266 | 8 | //////////////////////////////////////////////////////////////////////////////// |
9 | // | |
7e4131fc | 10 | // AliGenGeVSim is a class implementing GeVSim event generator. |
11 | // | |
12 | // GeVSim is a simple Monte-Carlo event generator for testing detector and | |
13 | // algorythm performance especialy concerning flow and event-by-event studies | |
4966b266 | 14 | // |
15 | // In this event generator particles are generated from thermal distributions | |
16 | // without any dynamics and addicional constrains. Distribution parameters like | |
17 | // multiplicity, particle type yields, inverse slope parameters, flow coeficients | |
18 | // and expansion velocities are expleicite defined by the user. | |
19 | // | |
20 | // GeVSim contains four thermal distributions the same as | |
21 | // MevSim event generator developed for STAR experiment. | |
22 | // | |
7e4131fc | 23 | // In addition custom distributions can be used be the mean |
24 | // either two dimensional formula (TF2), a two dimensional histogram or | |
25 | // two one dimensional histograms. | |
4966b266 | 26 | // |
27 | // Azimuthal distribution is deconvoluted from (Pt,Y) distribution | |
28 | // and is described by two Fourier coefficients representing | |
7e4131fc | 29 | // Directed and Elliptic flow. |
4966b266 | 30 | // |
7e4131fc | 31 | //////////////////////////////////////////////////////////////////////////////// |
32 | // | |
4966b266 | 33 | // To apply flow to event ganerated by an arbitraly event generator |
34 | // refer to AliGenAfterBurnerFlow class. | |
7e4131fc | 35 | // |
36 | //////////////////////////////////////////////////////////////////////////////// | |
37 | // | |
4966b266 | 38 | // For examples, parameters and testing macros refer to: |
39 | // http:/home.cern.ch/radomski | |
7e4131fc | 40 | // |
41 | // for more detailed description refer to ALICE NOTE | |
42 | // "GeVSim Monte-Carlo Event Generator" | |
43 | // S.Radosmki, P. Foka. | |
4966b266 | 44 | // |
45 | // Author: | |
46 | // Sylwester Radomski, | |
47 | // GSI, March 2002 | |
48 | // | |
49 | // S.Radomski@gsi.de | |
50 | // | |
51 | //////////////////////////////////////////////////////////////////////////////// | |
7e4131fc | 52 | // |
53 | // Updated and revised: September 2002, S. Radomski, GSI | |
54 | // | |
55 | //////////////////////////////////////////////////////////////////////////////// | |
56 | ||
4966b266 | 57 | |
58 | class TFormula; | |
59 | class TF1; | |
60 | class TF2; | |
7e4131fc | 61 | class TH1D; |
62 | class TH2D; | |
4966b266 | 63 | class TObjArray; |
64 | class AliGeVSimParticle; | |
7816887f | 65 | |
116cbefd | 66 | #include "AliGenerator.h" |
67 | ||
7816887f | 68 | |
69 | class AliGenGeVSim : public AliGenerator { | |
70 | ||
4966b266 | 71 | public: |
72 | ||
73 | AliGenGeVSim(); | |
7e4131fc | 74 | AliGenGeVSim(Float_t psi, Bool_t isMultTotal = kTRUE); |
4966b266 | 75 | |
76 | virtual ~AliGenGeVSim(); | |
77 | ||
78 | ///////////////////////////////////////////////////////////////// | |
79 | ||
80 | void AddParticleType(AliGeVSimParticle *part); | |
7e4131fc | 81 | void SetMultTotal(Bool_t isTotal = kTRUE); |
4966b266 | 82 | |
83 | void Init(); | |
84 | void Generate(); | |
85 | ||
86 | ///////////////////////////////////////////////////////////////// | |
87 | ||
88 | private: | |
ac3faee4 | 89 | |
1c56e311 | 90 | AliGenGeVSim(const AliGenGeVSim & ggs); |
93a2041b | 91 | AliGenGeVSim & operator=(const AliGenGeVSim & /*ggs*/); |
92 | ||
ac3faee4 | 93 | |
7e4131fc | 94 | Int_t fModel; // Selected model (1-7) |
7816887f | 95 | Float_t fPsi; // Reaction Plane angle (0-2pi) |
7e4131fc | 96 | Bool_t fIsMultTotal; // Mode od multiplicity: total, dN/dY |
97 | ||
98 | TF1 *fPtFormula; //! Pt formula for model (1) | |
99 | TF1 *fYFormula; //! Y formula for model (1) | |
a3d75961 | 100 | TF2 *fPtYFormula[4]; //! Pt,Y formulae for model (2)-(4) |
7e4131fc | 101 | TF1 *fPhiFormula; //! phi formula |
4966b266 | 102 | |
7e4131fc | 103 | TFormula *fCurrentForm; //! currently used formula |
104 | TH1D *fHist[2]; //! two 1D histograms (fModel == 6) | |
105 | TH2D *fPtYHist; //! two-dimensional histogram (fModel == 7) | |
106 | ||
7816887f | 107 | TObjArray *fPartTypes; // Registered particles |
4966b266 | 108 | |
7e4131fc | 109 | void InitFormula(); |
110 | void SetFormula(Int_t pdg); | |
111 | void AdjustFormula(); | |
4966b266 | 112 | void DetermineReactionPlane(); |
7e4131fc | 113 | void GetRandomPtY(Double_t &pt, Double_t &y); |
114 | ||
115 | Float_t GetdNdYToTotal(); | |
7816887f | 116 | |
0af12c00 | 117 | Bool_t CheckPtYPhi(Float_t pt, Float_t y, Float_t phi) const; // for histograms only |
7e4131fc | 118 | Bool_t CheckAcceptance(Float_t p[3]); |
4966b266 | 119 | |
7816887f | 120 | Float_t FindScaler(Int_t paramId, Int_t pdg); |
7816887f | 121 | |
7816887f | 122 | ///////////////////////////////////////////////////////////////// |
123 | ||
4966b266 | 124 | |
7e4131fc | 125 | ClassDef(AliGenGeVSim, 2) |
7816887f | 126 | |
127 | }; | |
128 | ||
129 | #endif |