]> git.uio.no Git - u/mrichter/AliRoot.git/blob - TMEVSIM/TMevSim.h
Stand-alone library for ESD. Possibility to use only root and lidESD.so for analysis...
[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    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);
113    virtual void        GetPartTypeParamsByIndex(Int_t index, TMevSimPartTypeParams *params) const;
114    virtual void        GetPartTypeParamsByGPid(Int_t gpid, TMevSimPartTypeParams *params) const;
115
116    // conversion   
117
118    virtual Int_t       PDGFromId(Int_t gpid) const;
119    virtual void        DefineParticles();
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
154
155    ClassDef(TMevSim,1)  //Interface to MevSim Event Generator
156      
157 };
158
159 #endif
160
161
162
163
164
165