Getting the trigger descriptors from CDB
[u/mrichter/AliRoot.git] / TMEVSIM / TMevSim.h
1 #ifndef TMEVSIM_H
2 #define TMEVSIM_H
3
4 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5  * See cxx source for full Copyright notice                               */
6
7 /* $Id$ */
8
9 //////////////////////////////////////////////////////////////////////////
10 //                                                                      //
11 // TMevSim                                                              //
12 //                                                                      //
13 // This class implements an interface to the MevSim event generator.    //
14 //                                                                      //
15 //////////////////////////////////////////////////////////////////////////
16
17 #include "TGenerator.h"
18
19 class TMevSimPartTypeParams;
20
21 class TMevSim : public TGenerator {
22
23  public:   
24    // Constructors and destructors
25    
26    TMevSim(Int_t nEvents = 1, Int_t modelType=1, Int_t reacPlaneCntrl=4,
27            Float_t psiRMean=0.0, Float_t psiRStDev=0.0, Float_t multFacMean=1.0, Float_t multFacStDev=0.05,
28            Float_t ptCutMin = 0.01, Float_t ptCutMax = 3.0, Float_t etaCutMin=(-4.5), Float_t etaCutMax = 4.5, 
29            Float_t phiCutMin=0.0, Float_t phiCutMax=360.0, Int_t irand=87266);
30
31    TMevSim(TMevSim& mevsim);                    // copy constructor
32    TMevSim& operator=(const TMevSim& mevsim);
33    virtual            ~TMevSim();
34    
35    // Mandatory TGenerator functions
36    
37    virtual void        Initialize();
38
39    virtual void        GenerateEvent();
40
41    TObjArray *         ImportParticles(Option_t * option);
42
43    virtual Int_t       ImportParticles(TClonesArray *particles, Option_t *option="");
44
45    //Parameters for the generation:
46    
47    virtual void        SetNEvents(Int_t nEvents );
48    virtual Int_t       GetNEvents() const;
49
50    virtual Int_t       GetNPidTypes() const;
51  
52    virtual void        SetModelType(Int_t modelType);
53    virtual Int_t       GetModelType() const;
54
55    virtual void        SetReacPlaneCntrl(Int_t reacPlaneCntrl);
56    virtual Int_t       GetReacPlaneCntrl() const;
57
58    virtual void        SetPsiRParams(Float_t psiRMean,  Float_t psiRStDev);
59    virtual Float_t     GetPsiRMean() const;
60     virtual Float_t     GetPsiRStDev() const;
61
62    virtual void        SetMultFacParams(Float_t multFacMean,  Float_t multFacStDev);
63    virtual Float_t     GetMultFacMean() const;
64    virtual Float_t     GetMultFacStDev() const;
65
66    // Pt and geometry cut
67
68    virtual void        SetPtCutRange(Float_t ptCutMin,  Float_t ptCutMax);
69    virtual Float_t     GetPtCutMin() const;
70    virtual Float_t     GetPtCutMax() const;
71
72    virtual void        SetEtaCutRange(Float_t etaCutMin,  Float_t etaCutMax);
73    virtual Float_t     GetEtaCutMin() const;
74    virtual Float_t     GetEtaCutMax() const;
75
76    virtual void        SetPhiCutRange(Float_t phiCutMin,  Float_t phiCutMax);
77    virtual Float_t     GetPhiCutMin() const;
78    virtual Float_t     GetPhiCutMax() const;
79
80    // StDev
81
82    virtual void        SetNStDevMult(Float_t nStDevMult);
83    virtual Float_t       GetNStDevMult() const;
84
85    virtual void        SetNStDevTemp(Float_t nStDevTemp);
86    virtual Float_t       GetNStDevTemp() const;
87
88    virtual void        SetNStDevSigma(Float_t nStDevSigma);
89    virtual Float_t       GetNStDevSigma() const;
90
91    virtual void        SetNStDevExpVel(Float_t nStDevExpVel);
92    virtual Float_t       GetNStDevExpVel() const;
93
94    virtual void        SetNStDevPSIr(Float_t nStDevPSIr);
95    virtual Float_t       GetNStDevPSIr() const;
96
97    virtual void        SetNStDevVn(Float_t nStDevVn);
98    virtual Float_t       GetNStDevVn() const;
99
100    virtual void        SetNStDevMultFac(Float_t nStDevMultFac);
101    virtual Float_t       GetNStDevMultFac() const;
102
103    // grid
104
105    virtual void        SetNIntegPts(Int_t nIntegPts);
106    virtual Int_t       GetNintegPts() const;
107
108    virtual void        SetNScanPts(Int_t nScanPts);
109    virtual Int_t       GetNScanPts() const;
110
111    // adding particles
112
113    virtual void        AddPartTypeParams(TMevSimPartTypeParams *params);
114    virtual void        SetPartTypeParams(Int_t index, TMevSimPartTypeParams *params);
115    virtual void        GetPartTypeParamsByIndex(Int_t index, TMevSimPartTypeParams *params) const;
116    virtual void        GetPartTypeParamsByGPid(Int_t gpid, TMevSimPartTypeParams *params) const;
117
118    // conversion   
119
120    virtual Int_t       PDGFromId(Int_t gpid) const;
121    virtual void        DefineParticles();
122
123 protected:
124
125    Int_t fNEvents; // number of events to generate
126    Int_t fModelType;// type of the model  (see class descr at .cxx)
127    Int_t fReacPlaneCntrl;//reaction plane constrol switch (see class descr at .cxx)
128    Float_t fPsiRMean; //Reaction plane angle mean (degrees) (see class descr at .cxx)
129    Float_t fPsiRStDev;//Reaction plane angle variance (degrees) (see class descr at .cxx)
130    Float_t fMultFacMean;// Mean of Overall multiplicity scaling factor  (see class descr at .cxx)
131    Float_t fMultFacStDev;//Variance of Overall multiplicity scaling factor (see class descr at .cxx)
132    Float_t fPtCutMin; //Min Range of transverse momentum in GeV/c  (see class descr at .cxx)
133    Float_t fPtCutMax;//Max Range of transverse momentum in GeV/c (see class descr at .cxx)
134    Float_t fEtaCutMin; //Min Pseudorapidity range(see class descr at .cxx)
135    Float_t fEtaCutMax;//Max Pseudorapidity range(see class descr at .cxx)
136    Float_t fPhiCutMin; //Min of Azimuthal angular range in degrees.(see class descr at .cxx)
137    Float_t fPhiCutMax;//Max  of Azimuthal angular range in degrees. (see class descr at .cxx)
138    Float_t fNStDevMult; //Number of standard deviations  the mean value of multiplicity(see class descr at .cxx)
139    Float_t fNStDevTemp; //Number of standard deviations  the mean value of temperature
140    Float_t fNStDevSigma; //Number of standard deviations  the mean value of rapidity
141    Float_t fNStDevExpVel; //Number of standard deviations  the mean value of expansion velocity 
142    Float_t fNStdDevPSIr; //Number of standard deviations  the mean value of reaction plane angle
143    Float_t fNStDevVn; ////Number of standard deviations  the mean value of 
144    Float_t fNStDevMultFac;////Number of standard deviations  the mean value of multiplicity scaling factor
145    Int_t fNIntegPts;//Number of mesh points to use in the random model
146    Int_t fNScanPts;//Number of mesh points to use to scan the (pt,y)
147    Int_t firand; //seed of RNG
148    TClonesArray *fParticleTypeParameters;//pointer to particle parameters
149
150  // Copied from AliGeant
151    enum {kMaxParticles = 35};
152
153    Int_t fNPDGCodes;               // Number of PDG codes known by G3
154
155    Int_t fPDGCode[kMaxParticles];  // Translation table of PDG codes
156
157    ClassDef(TMevSim,1)  //Interface to MevSim Event Generator
158      
159 };
160
161 #endif
162
163
164
165
166
167