]> git.uio.no Git - u/mrichter/AliRoot.git/blame - EVGEN/AliGenGeVSim.h
More exact rounding function, but also much slower.
[u/mrichter/AliRoot.git] / EVGEN / AliGenGeVSim.h
CommitLineData
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
37class TFormula;
38class TF1;
39class TF2;
40class TObjArray;
41class AliGeVSimParticle;
7816887f 42
43
44class 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