few extra options for momentum dependence v_n
[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 //class TUnuran;
23
24 #include "AliFlowEventSimple.h"  //needed as include
25     
26 class AliFlowEventSimpleMakerOnTheFly {
27
28  public:
29
30   AliFlowEventSimpleMakerOnTheFly(UInt_t);    // constructor
31   virtual ~AliFlowEventSimpleMakerOnTheFly(); // destructor
32
33   virtual void Init(); 
34   
35   AliFlowEventSimple* CreateEventOnTheFly();  // create an event on the fly
36  
37     
38   //                        *****************************
39   //                        **** SETTERS AND GETTERS ****
40   //                        *****************************
41   //................................................................................................
42   // setters and getters for global parameters:
43   void SetMultiplicityOfRP(Int_t multRP) {this->fMultiplicityOfRP = multRP;}
44   Int_t GetMultiplicityOfRP() const {return this->fMultiplicityOfRP;} 
45   
46   void SetMultiplicitySpreadOfRP(Double_t multSpreadRP) {this->fMultiplicitySpreadOfRP = multSpreadRP;}
47   Double_t GetMultiplicitySpreadOfRP() const {return this->fMultiplicitySpreadOfRP;} 
48   
49   void SetUseConstantHarmonics(Bool_t const uch) {this->fUseConstantHarmonics = uch;};
50   Bool_t GetUseConstantHarmonics() const {return this->fUseConstantHarmonics;};
51   
52   // constant harmonics:  
53   void SetV1RP(Double_t dV1RP) {this->fV1RP = dV1RP;}
54   Double_t GetV1RP() const {return this->fV1RP;} 
55   
56   void SetV1SpreadRP(Double_t dV1SpreadRP) {this->fV1SpreadRP = dV1SpreadRP;}
57   Double_t GetV1SpreadRP() const {return this->fV1SpreadRP;} 
58   
59   void SetV2RP(Double_t dV2RP) {this->fV2RP = dV2RP;}
60   Double_t GetV2RP() const {return this->fV2RP;} 
61   
62   void SetV2SpreadRP(Double_t dV2SpreadRP) {this->fV2SpreadRP = dV2SpreadRP;}
63   Double_t GetV2SpreadRP() const {return this->fV2SpreadRP;} 
64   
65   void SetV4RP(Double_t dV4RP) {this->fV4RP = dV4RP;}
66   Double_t GetV4RP() const {return this->fV4RP;} 
67   
68   void SetV4SpreadRP(Double_t dV4SpreadRP) {this->fV4SpreadRP = dV4SpreadRP;}
69   Double_t GetV4SpreadRP() const {return this->fV4SpreadRP;} 
70   
71   // (pt,eta) dependent harmonics:
72   void SetV2RPMax(Double_t dV2RPMax) {this->fV2RPMax = dV2RPMax;}
73   Double_t GetV2RPMax() const {return this->fV2RPMax;} 
74   
75   void SetPtCutOff(Double_t dPtCutOff) {this->fPtCutOff = dPtCutOff;}
76   Double_t GetPtCutOff() const {return this->fPtCutOff;} 
77   //................................................................................................
78   
79   void SetNoOfLoops(Int_t noofl) {this->fNoOfLoops = noofl;}
80   Int_t GetNoOfLoops() const {return this->fNoOfLoops;} 
81
82  private:
83  
84   AliFlowEventSimpleMakerOnTheFly(const AliFlowEventSimpleMakerOnTheFly& anAnalysis);            // copy constructor
85   AliFlowEventSimpleMakerOnTheFly& operator=(const AliFlowEventSimpleMakerOnTheFly& anAnalysis); // assignment operator
86   
87   //................................................................................................
88   // global parameters:
89   Int_t     fMultiplicityOfRP;       // multiplicity of RPs
90   Double_t  fMultiplicitySpreadOfRP; // multiplicity spread of RPs 
91   Bool_t    fUseConstantHarmonics;      // harmonics V1, V2, V4... are constant (kTRUE) or functions of pt and eta (kFALSE)     
92   // constant harmonics: 
93   Double_t  fV1RP;                   // directed flow of RPs
94   Double_t  fV1SpreadRP;             // directed flow spread of RPs
95   Double_t  fV2RP;                   // elliptic flow of RPs
96   Double_t  fV2SpreadRP;             // elliptic flow spread of RPs
97   Double_t  fV4RP;                   // harmonic V4 of RPs
98   Double_t  fV4SpreadRP;             // harmonic V4's spread of RPs
99   // (pt,eta) dependent harmonics:
100   Double_t  fV2RPMax;                // elliptic flow of RPs
101   Double_t  fPtCutOff;               // elliptic flow spread of RPs
102   //................................................................................................
103   
104   //................................................................................................
105   // equations for distributions: 
106   TF1*      fPtSpectra;  // transverse momentum distribution
107   TF1*      fPhiDistribution; // azimuthal distribution
108   //................................................................................................
109   
110   TRandom3* fMyTRandom3; // our TRandom3 generator
111   //TUnuran*  fMyUnuran;   // our TUnuran generator
112   Int_t     fCount;      // count number of events 
113   Int_t     fNoOfLoops;  // number of times to use the same particle (nonflow)
114
115   ClassDef(AliFlowEventSimpleMakerOnTheFly,0) // macro for rootcint
116 };
117  
118 #endif
119
120
121