Part of Reset() moved to base class.
[u/mrichter/AliRoot.git] / TMEVSIM / TMevSimPartTypeParams.h
1 #ifndef ROOT_TMevSimPartTypeParams
2 #define ROOT_TMevSimPartTypeParams
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice                               */
5
6 /* $Id$ */
7
8 //////////////////////////////////////////////////////////////////////////
9 //                                                                      //
10 // TMevSimPartTypeParams                                                //
11 //                                                                      //
12 // This class is a helper class for TMevSim interface. It stores        //
13 // (and writes out on demand) the properties of a single particle       //
14 // type.                                                                //
15 //                                                                      //
16 //////////////////////////////////////////////////////////////////////////
17
18 #ifndef ROOT_TObject
19 #include <TObject.h>
20 #endif
21
22 #include "MevSimCommon.h"
23
24 class TMevSimPartTypeParams : public TObject {
25
26  public:
27   
28    // Constructors and destructors
29    
30    TMevSimPartTypeParams();
31    TMevSimPartTypeParams(Int_t agpid, Int_t amultmean, Int_t amultvc, 
32                          Float_t atempmean, Float_t atempstdev, Float_t asigmamean,
33                          Float_t asigmastdev, Float_t aexpvelmean, Float_t aexpvelstdev);
34    virtual ~TMevSimPartTypeParams();
35    
36    // Copy and assignment operators;
37    
38    TMevSimPartTypeParams (const TMevSimPartTypeParams& pars);                    // copy constructor
39    TMevSimPartTypeParams& operator=(const TMevSimPartTypeParams& pars);  // assignment operator 
40    
41    // Parameters of the particle type
42    
43    virtual void        SetGPid(Int_t gpid);
44    virtual Int_t       GetGPid() const;
45    
46    virtual void        SetMultMean(Int_t multmean);
47    virtual Int_t       GetMultMean() const;
48    
49    virtual void        SetMultVarianceControl(Int_t multvc);
50    virtual Int_t       GetMultVarianceControl() const;
51    
52    virtual void        SetTempParams(Float_t tempmean, Float_t tempstdev);
53    virtual Float_t     GetTempMean() const;
54    virtual Float_t     GetTempStDev() const;
55    
56    virtual void        SetSigmaPrams(Float_t sigmamean, Float_t sigmastdev);
57    virtual Float_t     GetSigmaMean() const;
58    virtual Float_t     GetSigmaStDev() const;
59    
60    virtual void        SetExpVelParams(Float_t expvelmean, Float_t expvelstdev);
61    virtual Float_t     GetExpVelMean() const;
62    virtual Float_t     GetExpVelStDev() const;
63    
64    virtual void        SetVnMeanComponent(Int_t nComponent, Float_t mean1, Float_t mean2, 
65                                           Float_t mean3, Float_t mean4);
66    virtual void        SetVnStDevComponent(Int_t nComponent, Float_t stdev1, Float_t stdev2, 
67                                            Float_t stdev3, Float_t stdev4);
68                                            
69    virtual void        SetVnMeanComponent (Int_t nComponent, Float_t mean[4]); 
70    virtual void        SetVnStDevComponent(Int_t nComponent, Float_t stdev[4]);                    
71                                            
72    virtual Float_t     GetVnMeanComponent(Int_t nComponent, Int_t nMean) const;
73    virtual Float_t     GetVnStDevComponent(Int_t nComponent, Int_t nStDev) const;
74    
75
76  protected:
77   
78   Int_t       fGPid;                  //PID 
79   Int_t       fMultMean;              //mean multiplicy control   
80   Int_t       fMultVarianceControl;   //mean variance 
81   Float_t     fTempMean;//Temperature parameter mean (in GeV) (Gaussian distribution assumed) 
82   Float_t     fTempStDev;//Temperature parameter standard deviation (in GeV) (Gaussian distribution assumed) 
83   Float_t     fSigmaMean;// Rapidity distribution width (sigma) (Gaussian distribution assumed) 
84   Float_t     fSigmaStDev;// Rapidity distribution standard deviation  (Gaussian distribution assumed) 
85   Float_t     fExpVelMean;// Expansion velocity ala Scott Pratt (in units of c)   mean 
86   Float_t     fExpVelStDev;//Expansion velocity ala Scott Pratt (in units of c)  standard deviation 
87   Float_t     fVnMean[NFLOWTERMS][4];// Anisotropic flow parameters for Fourier components NFLOWTERMS=1,6 mean 
88   Float_t     fVnStDev[NFLOWTERMS][4];//Anisotropic flow parameters for Fourier components NFLOWTERMS=1,6  standard deviation
89  
90   // GPid : particle ID ala geant3
91   // MultMean, MultVarianceControl: mean multiplicy and variance control
92   //           MultVarianceControl 0; for no variance in multiplicity
93   //           MultVarianceControl 1; to allow Poisson distribution for particle multiplicities 
94   // TempMean, TempStDev: Temperature parameter (in GeV)
95   //           mean and standard deviation (Gaussian distribution assumed) 
96   // SigmaMean, SigmaStDev: Rapidity distribution width (sigma)  
97   //           mean and standard deviation (Gaussian distribution assumed) 
98   // ExpVelMean, ExpVelStDev: Expansion velocity ala Scott Pratt (in units of c)  
99   //           mean and standard deviation (Gaussian distribution assumed) 
100   // VnMean VnStDev: Anisotropic flow parameters for Fourier components NFLOWTERMS=1,6
101   //                 mean and standard deviation
102   //                 include all 6 sets of parameters, set them to 0 if not used                                
103
104
105    ClassDef(TMevSimPartTypeParams,1)            //Parameters of the type of particle for MevSim event generator
106
107      
108 };
109 #endif
110
111
112
113
114
115
116
117
118
119
120
121