e81faee28e2daa0fe6fdba4df4d9a1a8745c6f6b
[u/mrichter/AliRoot.git] / EVGEN / AliGenGeVSim.h
1 #ifndef ALIGENGEVSIM_H
2 #define ALIGENGEVSIM_H
3
4 #include "TObjArray.h"
5 #include "TF1.h"
6 #include "TF2.h"
7 #include "AliGenerator.h"
8 #include "AliGeVSimParticle.h"
9
10
11 class AliGenGeVSim : public AliGenerator {
12
13   Int_t   fModel;            // Selected model (1-5)
14   Float_t fPsi;              // Reaction Plane angle (0-2pi)
15
16   TF1 *fPtFormula;           // Pt formula for model (1)
17   TF1 *fYFormula;            // Y formula for model (1)
18   TF2 *fPtYFormula[4];       // Pt,Y formulae for model (2)-(4) and custom
19   TF1 *fPhiFormula;          // phi formula 
20
21   TObjArray *fPartTypes;     // Registered particles
22
23   void InitFormula();        
24   //void PlotDistributions();
25   
26   Bool_t CheckPtYPhi(Float_t pt, Float_t y, Float_t phi);
27   Bool_t CheckP(Float_t p[3]);
28
29   Float_t FindScaler(Int_t paramId, Int_t pdg);
30
31  public:
32
33   AliGenGeVSim();
34   AliGenGeVSim(Int_t model, Float_t psi);
35
36   virtual ~AliGenGeVSim();
37
38   /////////////////////////////////////////////////////////////////
39
40   void AddParticleType(AliGeVSimParticle *part);
41   
42   void Init();
43   void Generate();
44
45   /////////////////////////////////////////////////////////////////
46
47   ClassDef(AliGenGeVSim, 1)
48
49 };
50
51 #endif