Update rawdata format for trigger (Christian)
[u/mrichter/AliRoot.git] / TMEVSIM / AliMevSimConfig.h
1 #ifndef ALIMEVSIMCONFIG_H
2 #define ALIMEVSIMCONFIG_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 //
12 // class AliMevSimConfig
13 //
14 // Class containing configuation inforamtion for MeVSim generator
15 // --------------------------------------------
16 // --------------------------------------------
17 // --------------------------------------------
18 // author: radomski@if.pw.edu.pl
19 //
20 //Comments taken from MevSim fortran source file (by Lanny Ray):
21 //
22 //    (3) model_type - equals 1,2,3,4,5 or 6 so far.  See comments in
23 //                     Function dNdpty to see what is calculated.
24 //                     The models included are:
25 //                   = 1, Factorized mt exponential, Gaussian rapidity model
26 //                   = 2, Pratt non-expanding, spherical thermal source model
27 //                   = 3, Bertsch non-expanding spherical thermal source model
28 //                   = 4, Pratt spherically expanding, thermally equilibrated
29 //                        source model.
30 //                   = 5, Factorized pt and eta distributions input bin-by-bin.
31 //                   = 6, Fully 2D pt,eta distributions input bin-by-bin.
32 //                        NOTE: model_type = 1-4 are functions of (pt,y)
33 //                              model_type = 5,6 are functions of (pt,eta)
34 //    (4) reac_plane_cntrl - Can be either 1,2,3 or 4 where:
35 //                         = 1 to ignore reaction plane and anisotropic flow,
36 //                             all distributions will be azimuthally symm.
37 //                         = 2 to use a fixed reaction plane angle for all
38 //                             events in the run.
39 //                         = 3 to assume a randomly varying reaction plane
40 //                             angle for each event as determined by a
41 //                             Gaussian distribution.
42 //                         = 4 to assume a randomly varying reaction plane
43 //                             for each event in the run as determined by
44 //                             a uniform distribution from 0 to 360 deg.
45 //    (5) PSIr_mean, PSIr_stdev - Reaction plane angle mean and Gaussian
46 //                                std.dev. (both are in degrees) for cases
47 //                                with reac_plane_cntrl = 2 (use mean value)
48 //                                and 3.  Note: these are read in regardless
49 //                                of the value of reac_plane_cntrl.
50 //    (6) MultFac_mean, MultFac_stdev - Overall multiplicity scaling factor
51 //                                      for all PID types; mean and std.dev.;
52 //                                      for trigger fluctuations event-to-evt.
53 //    (7) pt_cut_min,pt_cut_max - Range of transverse momentum in GeV/c.
54 //    (8) eta_cut_min,eta_cut_max - Pseudorapidity range
55 //    (9) phi_cut_min,phi_cut_max - Azimuthal angular range in degrees.
56 //   (10) n_stdev_mult - Number of standard deviations about the mean value
57 //                       of multiplicity to include in the random event-to-
58 //                       event selection process.  The maximum number of
59 //                       steps that can be covered is determined by
60 //                       parameter n_mult_max_steps in the accompanying
61 //                       include file 'Parameter_values.inc' which is
62 //                       presently set at 1000, but the true upper limit for
63 //                       this is n_mult_max_steps - 1 = 999.
64 //   (11) n_stdev_temp - Same, except for the "Temperature" parameter.
65 //   (12) n_stdev_sigma- Same, except for the rapidity width parameter.
66 //   (13) n_stdev_expvel - Same, except for the expansion velocity parameter.
67 //   (14) n_stdev_PSIr   - Same, except for the reaction plane angle
68 //   (15) n_stdev_Vn     - Same, except for the anisotropy coefficients, Vn.
69 //   (16) n_stdev_MultFac - Same, except for the multiplicity scaling factor.
70 //   (17) n_integ_pts - Number of mesh points to use in the random model
71 //                      parameter selection process.  The upper limit is
72 //                      set by parameter nmax_integ in the accompanying
73 //                      include file 'Parameter_values.inc' which is presently
74 //                      set at 100, but the true upper limit for n_integ_pts
75 //                      is nmax_integ - 1 = 99.
76 //   (18) n_scan_pts  - Number of mesh points to use to scan the (pt,y)
77 //                      dependence of the model distributions looking for
78 //                      the maximum value.  The 2-D grid has
79 //                      n_scan_pts * n_scan_pts points; no limit to size of
80 //                      n_scan_pts.
81 //
82 ////////////////////////////////////////////////////////////////////
83
84 #include "TObject.h"
85
86 class AliGenMevSim;
87
88 class AliMevSimConfig : public TObject {
89
90  protected:
91
92   static const Int_t fgkMAX_MODEL = 4; //Maximum number of available models
93   static const Int_t fgkMAX_CTRL = 4;//Maximum number of available controls
94
95   Int_t fModelType;  //current type of model
96
97   Int_t fReacPlaneCntrl; //reaction plane simulation model
98   Float_t fPsiRMean; //fPsiRMean mean psi
99   Float_t fPsiRStDev; //fPsiRStDev  psi variance
100
101   Float_t fMultFacMean;//fMultFacMean Mean multiplicity
102   Float_t fMultFacStDev;//fMultFacStDev multiplicity variance
103
104   Float_t fNStDevMult;//see (10) n_stdev_mult
105   Float_t fNStDevTemp;//(11) n_stdev_temp
106   Float_t fNStDevSigma;//see (12) n_stdev_sigma
107   Float_t fNStDevExpVel;//see (13) n_stdev_expvel
108   Float_t fNStdDevPSIr;//see (14) n_stdev_PSIr
109   Float_t fNStDevVn;//see (15) n_stdev_Vn
110   Float_t fNStDevMultFac;//see (16) n_stdev_MultFac
111
112   Int_t fNIntegPts;//see (17) n_integ_pts
113   Int_t fNScanPts;//see (18) n_scan_pts
114
115   void Init();
116
117  public:
118
119   AliMevSimConfig();
120   AliMevSimConfig(Int_t modelType);
121
122   ~AliMevSimConfig();
123
124   void SetModelType(Int_t modelType);
125   Int_t  GetModelType() const {return fModelType;}
126
127   void SetRectPlane(Int_t ctrl, Float_t psiRMean = 0, Float_t psiRStDev = 0);
128   void GetRectPlane(Int_t& ctrl, Float_t& psiRMean, Float_t& psiRStDev ) const
129    {ctrl  = fReacPlaneCntrl; psiRMean = fPsiRMean; psiRStDev = fPsiRStDev;}
130   
131   void SetMultFac(Float_t mean, Float_t stDev);
132   void GetMultFac(Float_t& mean, Float_t& stDev) const {mean = fMultFacMean ;stDev = fMultFacStDev;}
133
134   void SetStDev(Float_t mult, Float_t temp, Float_t sigma,
135                 Float_t expVel, Float_t psiR, Float_t Vn, Float_t multFac);
136   void GetStDev(Float_t& mult, Float_t& temp, Float_t& sigma,
137                 Float_t& expVel, Float_t& psiR, Float_t& Vn, Float_t& multFac) const;
138   void SetGrid(Int_t integr, Int_t scan);
139   void GetGrid(Int_t& integr, Int_t& scan) const {scan=fNScanPts;integr=fNIntegPts;}
140
141   ClassDef(AliMevSimConfig,1)
142
143 };
144
145
146 #endif