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