]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWG2/FLOW/AliFlowCommon/AliFlowEventSimpleMakerOnTheFly.h
restore event cuts and change couts and printf's to alilog
[u/mrichter/AliRoot.git] / PWG2 / FLOW / AliFlowCommon / AliFlowEventSimpleMakerOnTheFly.h
CommitLineData
93ff27bd 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
20class TF1;
5b8dccde 21class TRandom3;
93ff27bd 22
23#include "AliFlowEventSimple.h" //needed as include
e1911c19 24#include "AliFlowTrackSimpleCuts.h"
93ff27bd 25
26class AliFlowEventSimpleMakerOnTheFly {
27
28 public:
29
5b8dccde 30 AliFlowEventSimpleMakerOnTheFly(UInt_t); // constructor
93ff27bd 31 virtual ~AliFlowEventSimpleMakerOnTheFly(); // destructor
32
4d603348 33 virtual void Init();
34
e1911c19 35 AliFlowEventSimple* CreateEventOnTheFly(AliFlowTrackSimpleCuts *cutsRP, AliFlowTrackSimpleCuts *cutsPOI); // create an event on the fly
93ff27bd 36
37
38 // *****************************
39 // **** SETTERS AND GETTERS ****
40 // *****************************
41 //................................................................................................
42 // setters and getters for global parameters:
678f8252 43 void SetMultDistrOfRPsIsGauss(Bool_t const mdorig) {this->fMultDistrOfRPsIsGauss = mdorig;};
44 Bool_t GetMultDistrOfRPsIsGauss() const {return this->fMultDistrOfRPsIsGauss;};
45
93ff27bd 46 void SetMultiplicityOfRP(Int_t multRP) {this->fMultiplicityOfRP = multRP;}
47 Int_t GetMultiplicityOfRP() const {return this->fMultiplicityOfRP;}
93ff27bd 48
93ff27bd 49 void SetMultiplicitySpreadOfRP(Double_t multSpreadRP) {this->fMultiplicitySpreadOfRP = multSpreadRP;}
50 Double_t GetMultiplicitySpreadOfRP() const {return this->fMultiplicitySpreadOfRP;}
4d603348 51
678f8252 52 void SetMinMultOfRP(Int_t minmr) {this->fMinMultOfRP = minmr;}
53 Int_t GetMinMultOfRP() const {return this->fMinMultOfRP;}
54
55 void SetMaxMultOfRP(Int_t maxmr) {this->fMaxMultOfRP = maxmr;}
56 Int_t GetMaxMultOfRP() const {return this->fMaxMultOfRP;}
57
cf90787f 58 void SetTemperatureOfRP(Double_t temperatureRP) {this->fTemperatureOfRP = temperatureRP;}
59 Double_t GetTemperatureOfRP() const {return this->fTemperatureOfRP;}
60
bdb5c432 61 void SetPtDependentHarmonicV1(Bool_t const pdhV1) {this->fPtDependentHarmonicV1 = pdhV1;};
62 Bool_t GetPtDependentHarmonicV1() const {return this->fPtDependentHarmonicV1;};
524798bf 63
bdb5c432 64 void SetEtaDependentHarmonicV1(Bool_t const edhV1) {this->fEtaDependentHarmonicV1 = edhV1;};
65 Bool_t GetEtaDependentHarmonicV1() const {return this->fEtaDependentHarmonicV1;};
66
67 void SetPtDependentHarmonicV2(Bool_t const pdhV2) {this->fPtDependentHarmonicV2 = pdhV2;};
68 Bool_t GetPtDependentHarmonicV2() const {return this->fPtDependentHarmonicV2;};
69
70 void SetEtaDependentHarmonicV2(Bool_t const edhV2) {this->fEtaDependentHarmonicV2 = edhV2;};
71 Bool_t GetEtaDependentHarmonicV2() const {return this->fEtaDependentHarmonicV2;};
72
73 void SetPtDependentHarmonicV4(Bool_t const pdhV4) {this->fPtDependentHarmonicV4 = pdhV4;};
74 Bool_t GetPtDependentHarmonicV4() const {return this->fPtDependentHarmonicV4;};
75
76 void SetEtaDependentHarmonicV4(Bool_t const edhV4) {this->fEtaDependentHarmonicV4 = edhV4;};
77 Bool_t GetEtaDependentHarmonicV4() const {return this->fEtaDependentHarmonicV4;};
4d603348 78
79 // constant harmonics:
e8c7e66c 80 void SetV1RP(Double_t dV1RP) {this->fV1RP = dV1RP;}
81 Double_t GetV1RP() const {return this->fV1RP;}
82
83 void SetV1SpreadRP(Double_t dV1SpreadRP) {this->fV1SpreadRP = dV1SpreadRP;}
84 Double_t GetV1SpreadRP() const {return this->fV1SpreadRP;}
85
524798bf 86 void SetConstantV2IsSampledFromGauss(Bool_t const cV2isfg) {this->fConstantV2IsSampledFromGauss = cV2isfg;};
87 Bool_t GetConstantV2IsSampledFromGauss() const {return this->fConstantV2IsSampledFromGauss;};
55381065 88
e8c7e66c 89 void SetV2RP(Double_t dV2RP) {this->fV2RP = dV2RP;}
90 Double_t GetV2RP() const {return this->fV2RP;}
91
92 void SetV2SpreadRP(Double_t dV2SpreadRP) {this->fV2SpreadRP = dV2SpreadRP;}
93 Double_t GetV2SpreadRP() const {return this->fV2SpreadRP;}
4d603348 94
55381065 95 void SetMinV2RP(Double_t dMinV2RP) {this->fMinV2RP = dMinV2RP;}
96 Double_t GetMinV2RP() const {return this->fMinV2RP;}
97
98 void SetMaxV2RP(Double_t dMaxV2RP) {this->fMaxV2RP = dMaxV2RP;}
99 Double_t GetMaxV2RP() const {return this->fMaxV2RP;}
100
4d603348 101 void SetV4RP(Double_t dV4RP) {this->fV4RP = dV4RP;}
102 Double_t GetV4RP() const {return this->fV4RP;}
103
104 void SetV4SpreadRP(Double_t dV4SpreadRP) {this->fV4SpreadRP = dV4SpreadRP;}
105 Double_t GetV4SpreadRP() const {return this->fV4SpreadRP;}
106
bdb5c432 107 void SetV1vsPtEtaMax(Double_t dV1vsPtEtaMax) {this->fV1vsPtEtaMax = dV1vsPtEtaMax;}
108 Double_t GetV1vsPtEtaMax() const {return this->fV1vsPtEtaMax;}
109
110 void SetV1PtCutOff(Double_t dV1PtCutOff) {this->fV1PtCutOff = dV1PtCutOff;}
111 Double_t GetV1PtCutOff() const {return this->fV1PtCutOff;}
524798bf 112
113 void SetV2vsPtEtaMax(Double_t dV2vsPtEtaMax) {this->fV2vsPtEtaMax = dV2vsPtEtaMax;}
114 Double_t GetV2vsPtEtaMax() const {return this->fV2vsPtEtaMax;}
4d603348 115
bdb5c432 116 void SetV2PtCutOff(Double_t dV2PtCutOff) {this->fV2PtCutOff = dV2PtCutOff;}
117 Double_t GetV2PtCutOff() const {return this->fV2PtCutOff;}
e23cbd39 118
524798bf 119 void SetV2vsEtaSpread(Double_t dV2vsEtaSpread) {this->fV2vsEtaSpread = dV2vsEtaSpread;}
120 Double_t GetV2vsEtaSpread() const {return this->fV2vsEtaSpread;}
121
e23cbd39 122 void SetFirstSectorPhiMin(Double_t dPhiMin1) {this->fPhiMin1 = dPhiMin1;}
123 Double_t GetFirstSectorPhiMin() const {return this->fPhiMin1;}
124
125 void SetFirstSectorPhiMax(Double_t dPhiMax1) {this->fPhiMax1 = dPhiMax1;}
126 Double_t GetFirstSectorPhiMax() const {return this->fPhiMax1;}
127
128 void SetFirstSectorProbability(Double_t dProbability1) {this->fProbability1 = dProbability1;}
129 Double_t GetFirstProbability() const {return this->fProbability1;}
130
131 void SetSecondSectorPhiMin(Double_t dPhiMin2) {this->fPhiMin2 = dPhiMin2;}
132 Double_t GetSecondSectorPhiMin() const {return this->fPhiMin2;}
133
134 void SetSecondSectorPhiMax(Double_t dPhiMax2) {this->fPhiMax2 = dPhiMax2;}
135 Double_t GetSecondSectorPhiMax() const {return this->fPhiMax2;}
136
137 void SetSecondSectorProbability(Double_t dProbability2) {this->fProbability2 = dProbability2;}
138 Double_t GetSecondProbability() const {return this->fProbability2;}
e8c7e66c 139 //................................................................................................
140
aaa62cf0 141 void SetNoOfLoops(Int_t noofl) {this->fNoOfLoops = noofl;}
142 Int_t GetNoOfLoops() const {return this->fNoOfLoops;}
524798bf 143 void SetPhiRange(Double_t phr) {this->fPhiRange = phr;}
144 Double_t GetPhiRange() const {return this->fPhiRange;}
2a54d329 145 void SetPtRange(Double_t pr) {this->fPtRange = pr;}
146 Double_t GetPtRange() const {return this->fPtRange;}
147 void SetEtaRange(Double_t er) {this->fEtaRange = er;}
148 Double_t GetEtaRange() const {return this->fEtaRange;}
e1911c19 149 void SetNonflowSectorMin(Double_t nsMin) {this->fNonflowSectorMin = nsMin;}
150 Double_t GetNonflowSectorMin() const {return this->fNonflowSectorMin;}
151 void SetNonflowSectorMax(Double_t nsMax) {this->fNonflowSectorMax = nsMax;}
152 Double_t GetNonflowSectorMax() const {return this->fNonflowSectorMax;}
809f4e8b 153 void SetSubeventEtaRange(Double_t minA,Double_t maxA,Double_t minB,Double_t maxB)
154 {this->fEtaMinA = minA; this->fEtaMaxA = maxA;this->fEtaMinB = minB; this->fEtaMaxB = maxB;};
155
93ff27bd 156 private:
157
158 AliFlowEventSimpleMakerOnTheFly(const AliFlowEventSimpleMakerOnTheFly& anAnalysis); // copy constructor
159 AliFlowEventSimpleMakerOnTheFly& operator=(const AliFlowEventSimpleMakerOnTheFly& anAnalysis); // assignment operator
160
161 //................................................................................................
162 // global parameters:
678f8252 163 Bool_t fMultDistrOfRPsIsGauss; // 1.) if kTRUE = multiplicitiy of RPs is sampled e-b-e from Gaussian distribution with
164 // mean = fMultiplicityOfRP and spread = fMultiplicitySpreadOfRP
165 // 2.) if kFALSE = multiplicitiy of RPs is sampled e-b-e uniformly from
166 // interval [fMinMultOfRP,fMaxMultOfRP]
167 Int_t fMultiplicityOfRP; // mean multiplicity of RPs (if sampled from Gaussian)
168 Double_t fMultiplicitySpreadOfRP; // multiplicity spread of RPs (if sampled from Gaussian)
169 Int_t fMinMultOfRP; // minimal multiplicity of RPs (if sampled uniformly)
170 Int_t fMaxMultOfRP; // maximum multiplicity of RPs (if sampled uniformly)
cf90787f 171 Double_t fTemperatureOfRP; // "temperature" of RPs in GeV/c (increase this parameter to get more high pt RPs)
bdb5c432 172 Bool_t fPtDependentHarmonicV1; // harmonic V1 is a function of pt
173 Bool_t fEtaDependentHarmonicV1; // harmonic V1 is a function of eta
174 Bool_t fPtDependentHarmonicV2; // harmonic V2 is a function of pt
175 Bool_t fEtaDependentHarmonicV2; // harmonic V2 is a function of eta
176 Bool_t fPtDependentHarmonicV4; // harmonic V4 is a function of pt
177 Bool_t fEtaDependentHarmonicV4; // harmonic V4 is a function of eta
178
4d603348 179 // constant harmonics:
aaa62cf0 180 Double_t fV1RP; // directed flow of RPs
181 Double_t fV1SpreadRP; // directed flow spread of RPs
55381065 182
524798bf 183 Bool_t fConstantV2IsSampledFromGauss; // 1.) if kTRUE = elliptic flow of RPs is sampled e-b-e from Gaussian distribution with
184 // mean = fV2RP and spread = fV2SpreadRP
185 // 2.) if kFALSE = elliptic flow of RPs is sampled e-b-e uniformly from
186 // interval [fMinV2RP,fMaxV2RP]
55381065 187 Double_t fV2RP; // mean elliptic flow of RPs (if sampled from Gaussian)
188 Double_t fV2SpreadRP; // elliptic flow spread of RPs (if sampled from Gaussian)
189 Double_t fMinV2RP; // minimal elliptic flow of RPs (if sampled uniformly)
190 Double_t fMaxV2RP; // minimal elliptic flow of RPs (if sampled uniformly)
191
4d603348 192 Double_t fV4RP; // harmonic V4 of RPs
193 Double_t fV4SpreadRP; // harmonic V4's spread of RPs
bdb5c432 194 // (pt,eta) dependent harmonic V1:
195 Double_t fV1vsPtEtaMax; // max value of (pt,eta) dependent V1
196 Double_t fV1PtCutOff; // V1(pt) is linear up to pt = dV1PtCutOff and for pt > dV1PtCutOff it is constant, V1(pt) = dV1vsPtEtaMax
197 // (pt,eta) dependent harmonic V2:
524798bf 198 Double_t fV2vsPtEtaMax; // max value of (pt,eta) dependent V2
bdb5c432 199 Double_t fV2PtCutOff; // V2(pt) is linear up to pt = dV2PtCutOff and for pt > dV2PtCutOff it is constant, V2(pt) = dV2vsPtEtaMax
524798bf 200 Double_t fV2vsEtaSpread; // V2(eta) is Gaussian centered at midrapidity (eta=0) with spread = dV2vsEtaSpread
e23cbd39 201 // non-uniform acceptance:
202 Double_t fPhiMin1; // first non-uniform sector starts at azimuth fPhiMin1
203 Double_t fPhiMax1; // first non-uniform sector ends at azimuth fPhiMax1
204 Double_t fProbability1; // particles emitted in fPhiMin1 < phi < fPhiMax1 are taken with probability fProbability1
205 Double_t fPhiMin2; // second non-uniform sector starts at azimuth fPhiMin2
206 Double_t fPhiMax2; // second non-uniform sector starts at azimuth fPhiMax2
207 Double_t fProbability2; // particles emitted in fPhiMin2 < phi < fPhiMax2 are taken with probability fProbability2
93ff27bd 208 //................................................................................................
209
210 //................................................................................................
211 // equations for distributions:
aaa62cf0 212 TF1* fPtSpectra; // transverse momentum distribution
213 TF1* fPhiDistribution; // azimuthal distribution
93ff27bd 214 //................................................................................................
215
e1911c19 216 TRandom3* fMyTRandom3; // our TRandom3 generator
217 Int_t fCount; // count number of events
218 Int_t fNoOfLoops; // number of times to use the same particle (nonflow)
219 Double_t fPhiRange; // splitted track phi range (+/- from original track's phi) for uniform sampling
220 Double_t fPtRange; // splitted track pt range (+/- from original track's pt) for uniform sampling
221 Double_t fEtaRange; // splitted track eta range (+/- from original track's eta) for uniform sampling
222 Double_t fNonflowSectorMin; // detector's sector in which tracks are splitted starts at angle fNonflowSectorMin
223 Double_t fNonflowSectorMax; // detector's sector in which tracks are splitted ends at angle fNonflowSectorMin
224 Double_t fEtaMinA; // minimum eta of subevent A eta range
225 Double_t fEtaMaxA; // maximum eta of subevent A eta range
226 Double_t fEtaMinB; // minimum eta of subevent B eta range
227 Double_t fEtaMaxB; // maximum eta of subevent B eta range
809f4e8b 228
93ff27bd 229 ClassDef(AliFlowEventSimpleMakerOnTheFly,0) // macro for rootcint
230};
231
232#endif
233
234
235