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