Update rawdata format for trigger (Christian)
[u/mrichter/AliRoot.git] / TMEVSIM / TMevSim.h
CommitLineData
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 19class TMevSimPartTypeParams;
1a2762e8 20
31d87da2 21class 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
123protected:
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