]>
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 | ||
e8d2b601 | 41 | TObjArray * ImportParticles(Option_t * option); |
42 | ||
1a2762e8 | 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); | |
31d87da2 | 115 | virtual void GetPartTypeParamsByIndex(Int_t index, TMevSimPartTypeParams *params) const; |
116 | virtual void GetPartTypeParamsByGPid(Int_t gpid, TMevSimPartTypeParams *params) const; | |
1a2762e8 | 117 | |
118 | // conversion | |
119 | ||
120 | virtual Int_t PDGFromId(Int_t gpid) const; | |
121 | virtual void DefineParticles(); | |
31d87da2 | 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 | |
1a2762e8 | 156 | |
157 | ClassDef(TMevSim,1) //Interface to MevSim Event Generator | |
158 | ||
159 | }; | |
160 | ||
161 | #endif | |
162 | ||
163 | ||
164 | ||
165 | ||
166 | ||
167 |