better pt dependence simulation
[u/mrichter/AliRoot.git] / PWG2 / FLOW / AliFlowCommon / AliFlowEventSimpleMakerOnTheFly.h
1 /* 
2  * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. 
3  * See cxx source for full Copyright notice 
4  * $Id$ 
5  */
6
7 /********************************** 
8  * create an event and perform    *
9  * flow analysis 'on the fly'     * 
10  *                                * 
11  * authors: Raimond Snellings     *
12  *           (snelling@nikhef.nl) * 
13  *          Ante Bilandzic        * 
14  *           (anteb@nikhef.nl)    *
15  *********************************/ 
16
17 #ifndef ALIFLOWEVENTSIMPLEMAKERONTHEFLY_H
18 #define ALIFLOWEVENTSIMPLEMAKERONTHEFLY_H
19
20 class TF1;
21 class TRandom3;
22
23 #include "AliFlowEventSimple.h"  //needed as include
24     
25 class AliFlowEventSimpleMakerOnTheFly {
26
27  public:
28
29   AliFlowEventSimpleMakerOnTheFly(UInt_t);    // constructor
30   virtual ~AliFlowEventSimpleMakerOnTheFly(); // destructor
31
32   virtual void Init(); 
33   
34   AliFlowEventSimple* CreateEventOnTheFly();  // create an event on the fly
35  
36     
37   //                        *****************************
38   //                        **** SETTERS AND GETTERS ****
39   //                        *****************************
40   //................................................................................................
41   // setters and getters for global parameters:
42   void SetMultiplicityOfRP(Int_t multRP) {this->fMultiplicityOfRP = multRP;}
43   Int_t GetMultiplicityOfRP() const {return this->fMultiplicityOfRP;} 
44   
45   void SetMultiplicitySpreadOfRP(Double_t multSpreadRP) {this->fMultiplicitySpreadOfRP = multSpreadRP;}
46   Double_t GetMultiplicitySpreadOfRP() const {return this->fMultiplicitySpreadOfRP;} 
47   
48   void SetTemperatureOfRP(Double_t temperatureRP) {this->fTemperatureOfRP = temperatureRP;}
49   Double_t GetTemperatureOfRP() const {return this->fTemperatureOfRP;} 
50   
51   void SetUseConstantHarmonics(Bool_t const uch) {this->fUseConstantHarmonics = uch;};
52   Bool_t GetUseConstantHarmonics() const {return this->fUseConstantHarmonics;};
53   
54   // constant harmonics:  
55   void SetV1RP(Double_t dV1RP) {this->fV1RP = dV1RP;}
56   Double_t GetV1RP() const {return this->fV1RP;} 
57   
58   void SetV1SpreadRP(Double_t dV1SpreadRP) {this->fV1SpreadRP = dV1SpreadRP;}
59   Double_t GetV1SpreadRP() const {return this->fV1SpreadRP;} 
60   
61   void SetV2RP(Double_t dV2RP) {this->fV2RP = dV2RP;}
62   Double_t GetV2RP() const {return this->fV2RP;} 
63   
64   void SetV2SpreadRP(Double_t dV2SpreadRP) {this->fV2SpreadRP = dV2SpreadRP;}
65   Double_t GetV2SpreadRP() const {return this->fV2SpreadRP;} 
66   
67   void SetV4RP(Double_t dV4RP) {this->fV4RP = dV4RP;}
68   Double_t GetV4RP() const {return this->fV4RP;} 
69   
70   void SetV4SpreadRP(Double_t dV4SpreadRP) {this->fV4SpreadRP = dV4SpreadRP;}
71   Double_t GetV4SpreadRP() const {return this->fV4SpreadRP;} 
72   
73   // (pt,eta) dependent harmonics:
74   void SetV2RPMax(Double_t dV2RPMax) {this->fV2RPMax = dV2RPMax;}
75   Double_t GetV2RPMax() const {return this->fV2RPMax;} 
76   
77   void SetPtCutOff(Double_t dPtCutOff) {this->fPtCutOff = dPtCutOff;}
78   Double_t GetPtCutOff() const {return this->fPtCutOff;} 
79   //................................................................................................
80   
81   void SetNoOfLoops(Int_t noofl) {this->fNoOfLoops = noofl;}
82   Int_t GetNoOfLoops() const {return this->fNoOfLoops;} 
83
84  private:
85  
86   AliFlowEventSimpleMakerOnTheFly(const AliFlowEventSimpleMakerOnTheFly& anAnalysis);            // copy constructor
87   AliFlowEventSimpleMakerOnTheFly& operator=(const AliFlowEventSimpleMakerOnTheFly& anAnalysis); // assignment operator
88   
89   //................................................................................................
90   // global parameters:
91   Int_t     fMultiplicityOfRP;       // multiplicity of RPs
92   Double_t  fMultiplicitySpreadOfRP; // multiplicity spread of RPs 
93   Double_t  fTemperatureOfRP;        // "temperature" of RPs in GeV/c (increase this parameter to get more high pt RPs) 
94   Bool_t    fUseConstantHarmonics;   // harmonics V1, V2, V4... are constant (kTRUE) or functions of pt and eta (kFALSE)     
95   // constant harmonics: 
96   Double_t  fV1RP;                   // directed flow of RPs
97   Double_t  fV1SpreadRP;             // directed flow spread of RPs
98   Double_t  fV2RP;                   // elliptic flow of RPs
99   Double_t  fV2SpreadRP;             // elliptic flow spread of RPs
100   Double_t  fV4RP;                   // harmonic V4 of RPs
101   Double_t  fV4SpreadRP;             // harmonic V4's spread of RPs
102   // (pt,eta) dependent harmonics:
103   Double_t  fV2RPMax;                // elliptic flow of RPs
104   Double_t  fPtCutOff;               // elliptic flow spread of RPs
105   //................................................................................................
106   
107   //................................................................................................
108   // equations for distributions: 
109   TF1*      fPtSpectra;  // transverse momentum distribution
110   TF1*      fPhiDistribution; // azimuthal distribution
111   //................................................................................................
112   
113   TRandom3* fMyTRandom3; // our TRandom3 generator
114   Int_t     fCount;      // count number of events 
115   Int_t     fNoOfLoops;  // number of times to use the same particle (nonflow)
116
117   ClassDef(AliFlowEventSimpleMakerOnTheFly,0) // macro for rootcint
118 };
119  
120 #endif
121
122
123