]>
Commit | Line | Data |
---|---|---|
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 | ||
93417736 | 7 | /************************************ |
8 | * Create an event and perform full * | |
9 | * flow analysis 'on the fly'. * | |
10 | * * | |
11 | * author: Ante Bilandzic * | |
12 | * (abilandzic@gmail.com) * | |
13 | ************************************/ | |
93ff27bd | 14 | |
15 | #ifndef ALIFLOWEVENTSIMPLEMAKERONTHEFLY_H | |
16 | #define ALIFLOWEVENTSIMPLEMAKERONTHEFLY_H | |
17 | ||
18 | class TF1; | |
5b8dccde | 19 | class TRandom3; |
4aae2a93 | 20 | class TH3F; |
93ff27bd | 21 | |
2701c4bc | 22 | class AliFlowEventSimple; |
23 | class AliFlowTrackSimple; | |
24 | class AliFlowTrackSimpleCuts; | |
25 | ||
93417736 | 26 | class AliFlowEventSimpleMakerOnTheFly{ |
93ff27bd | 27 | public: |
93417736 | 28 | AliFlowEventSimpleMakerOnTheFly(UInt_t uiSeed = 0); // constructor |
93ff27bd | 29 | virtual ~AliFlowEventSimpleMakerOnTheFly(); // destructor |
93417736 | 30 | virtual void Init(); |
6d19c373 | 31 | Bool_t AcceptPhi(AliFlowTrackSimple *pTrack); |
32 | Bool_t AcceptPt(AliFlowTrackSimple *pTrack); | |
2701c4bc | 33 | AliFlowEventSimple* CreateEventOnTheFly(AliFlowTrackSimpleCuts const *cutsRP, AliFlowTrackSimpleCuts const *cutsPOI); |
93417736 | 34 | // Setters and getters: |
35 | void SetMinMult(Int_t iMinMult) {this->fMinMult = iMinMult;} | |
36 | Int_t GetMinMult() const {return this->fMinMult;} | |
37 | void SetMaxMult(Int_t iMaxMult) {this->fMaxMult = iMaxMult;} | |
38 | Int_t GetMaxMult() const {return this->fMaxMult;} | |
39 | void SetMass(Double_t dMass) {this->fMass = dMass;} | |
40 | Double_t GetMass() const {return this->fMass;} | |
41 | void SetTemperature(Double_t dT) {this->fTemperature = dT;} | |
42 | Double_t GetTemperature() const {return this->fTemperature;} | |
43 | void SetV1(Double_t dV1) {this->fV1 = dV1;} | |
44 | Double_t GetV1() const {return this->fV1;} | |
45 | void SetV2(Double_t dV2) {this->fV2 = dV2;} | |
46 | Double_t GetV2() const {return this->fV2;} | |
47 | void SetV3(Double_t dV3) {this->fV3 = dV3;} | |
48 | Double_t GetV3() const {return this->fV3;} | |
49 | void SetV4(Double_t dV4) {this->fV4 = dV4;} | |
50 | Double_t GetV4() const {return this->fV4;} | |
dd1d2f85 | 51 | void SetV5(Double_t dV5) {this->fV5 = dV5;} |
52 | Double_t GetV5() const {return this->fV5;} | |
53 | void SetV6(Double_t dV6) {this->fV6 = dV6;} | |
54 | Double_t GetV6() const {return this->fV6;} | |
93417736 | 55 | void SetUniformFluctuationsV2(Bool_t b) {this->fUniformFluctuationsV2 = b;} |
56 | Bool_t GetUniformFluctuationsV2() const {return this->fUniformFluctuationsV2;} | |
57 | void SetMinV2(Double_t dMinV2) {this->fMinV2 = dMinV2;} | |
58 | Double_t GetMinV2() const {return this->fMinV2;} | |
59 | void SetMaxV2(Double_t dMaxV2) {this->fMaxV2 = dMaxV2;} | |
60 | Double_t GetMaxV2() const {return this->fMaxV2;} | |
61 | void SetPtDependentV2(Bool_t b) {this->fPtDependentV2 = b;} | |
62 | Bool_t GetPtDependentV2() const {return this->fPtDependentV2;} | |
63 | void SetV2vsPtCutOff(Double_t dV2vsPtCutOff) {this->fV2vsPtCutOff = dV2vsPtCutOff;} | |
64 | Double_t GetV2vsPtCutOff() const {return this->fV2vsPtCutOff;} | |
65 | void SetV2vsPtMax(Double_t dV2vsPtMax) {this->fV2vsPtMax = dV2vsPtMax;} | |
66 | Double_t GetV2vsPtMax() const {return this->fV2vsPtMax;} | |
67 | void SetSubeventEtaRange(Double_t minA, Double_t maxA, Double_t minB, Double_t maxB) | |
68 | {this->fEtaMinA = minA;this->fEtaMaxA = maxA;this->fEtaMinB = minB;this->fEtaMaxB = maxB;}; | |
69 | void SetNTimes(Int_t nt) {this->fNTimes = nt;} | |
70 | Int_t GetNTimes() const {return this->fNTimes;} | |
71 | void SetUniformAcceptance(Bool_t ua) {this->fUniformAcceptance = ua;} | |
72 | Bool_t GetUniformAcceptance() const {return this->fUniformAcceptance;} | |
e23cbd39 | 73 | void SetFirstSectorPhiMin(Double_t dPhiMin1) {this->fPhiMin1 = dPhiMin1;} |
74 | Double_t GetFirstSectorPhiMin() const {return this->fPhiMin1;} | |
e23cbd39 | 75 | void SetFirstSectorPhiMax(Double_t dPhiMax1) {this->fPhiMax1 = dPhiMax1;} |
93417736 | 76 | Double_t GetFirstSectorPhiMax() const {return this->fPhiMax1;} |
e23cbd39 | 77 | void SetFirstSectorProbability(Double_t dProbability1) {this->fProbability1 = dProbability1;} |
93417736 | 78 | Double_t GetFirstSectorProbability() const {return this->fProbability1;} |
e23cbd39 | 79 | void SetSecondSectorPhiMin(Double_t dPhiMin2) {this->fPhiMin2 = dPhiMin2;} |
80 | Double_t GetSecondSectorPhiMin() const {return this->fPhiMin2;} | |
e23cbd39 | 81 | void SetSecondSectorPhiMax(Double_t dPhiMax2) {this->fPhiMax2 = dPhiMax2;} |
82 | Double_t GetSecondSectorPhiMax() const {return this->fPhiMax2;} | |
e23cbd39 | 83 | void SetSecondSectorProbability(Double_t dProbability2) {this->fProbability2 = dProbability2;} |
93417736 | 84 | Double_t GetSecondSectorProbability() const {return this->fProbability2;} |
6d19c373 | 85 | void SetUniformEfficiency(Bool_t ue) {this->fUniformEfficiency = ue;} |
86 | Bool_t GetUniformEfficiency() const {return this->fUniformEfficiency;} | |
87 | void SetPtMin(Double_t ptMin) {this->fPtMin = ptMin;} | |
88 | Double_t GetPtMin() const {return this->fPtMin;} | |
89 | void SetPtMax(Double_t ptMax) {this->fPtMax = ptMax;} | |
90 | Double_t GetPtMax() const {return this->fPtMax;} | |
91 | void SetPtProbability(Double_t ptp) {this->fPtProbability = ptp;} | |
92 | Double_t GetPtProbability() const {return this->fPtProbability;} | |
4aae2a93 | 93 | |
93ff27bd | 94 | private: |
93417736 | 95 | AliFlowEventSimpleMakerOnTheFly(const AliFlowEventSimpleMakerOnTheFly& anAnalysis); // copy constructor |
93ff27bd | 96 | AliFlowEventSimpleMakerOnTheFly& operator=(const AliFlowEventSimpleMakerOnTheFly& anAnalysis); // assignment operator |
93417736 | 97 | Int_t fCount; // count number of events |
98 | Int_t fMinMult; // uniformly sampled multiplicity is >= iMinMult | |
99 | Int_t fMaxMult; // uniformly sampled multiplicity is < iMaxMult | |
100 | TF1 *fPtSpectra; // transverse momentum distribution (pt is sampled from hardwired Boltzmann distribution) | |
101 | Double_t fMass; // mass in pt distribution (hardwired is Boltzmann pt distribution) | |
102 | Double_t fTemperature; // "temperature" in pt distribution (hardwired is Boltzmann pt distribution) | |
103 | TF1 *fPhiDistribution; // azimuthal distribution (phi is sampled from hardwired Fourier-like distribution) | |
104 | Double_t fV1; // harmonic v1 | |
105 | Double_t fV2; // harmonic v2 | |
106 | Double_t fV3; // harmonic v3 | |
107 | Double_t fV4; // harmonic v4 | |
dd1d2f85 | 108 | Double_t fV5; // harmonic v5 |
109 | Double_t fV6; // harmonic v6 | |
93417736 | 110 | Bool_t fUniformFluctuationsV2; // v2 is sampled uniformly for each event and for all particles from [fMinV2,fMaxV2] |
111 | Double_t fMinV2; // if v2 is sampled uniformly for each event, this is lower boundary on its value | |
112 | Double_t fMaxV2; // if v2 is sampled uniformly for each event, this is upper boundary on its value | |
113 | Bool_t fPtDependentV2; // v2 is pt-dependent | |
114 | Double_t fV2vsPtCutOff; // if v2 is pt-dependent: for v2 < fV2vsPtCutOff v2 is growing linearly, otherwise v2 = fV2vsPtMax | |
115 | Double_t fV2vsPtMax; // if v2 is pt-dependent: v2 = fV2vsPtMax for v2 >= fV2vsPtCutOff | |
116 | Double_t fEtaMinA; // minimum eta of subevent A | |
117 | Double_t fEtaMaxA; // maximum eta of subevent A | |
118 | Double_t fEtaMinB; // minimum eta of subevent B | |
119 | Double_t fEtaMaxB; // maximum eta of subevent B | |
120 | Int_t fNTimes; // number of times to use the same particle in the analysis (simulating nonflow) | |
121 | Bool_t fUniformAcceptance; // detector has uniform azimuthal acceptance or not | |
122 | Double_t fPhiMin1; // first sector with non-uniform acceptance starts at azimuth fPhiMin1 | |
123 | Double_t fPhiMax1; // first sector with non-uniform acceptance ends at azimuth fPhiMax1 | |
124 | Double_t fProbability1; // particles emitted in fPhiMin1 < phi < fPhiMax1 are taken with probability fProbability1 | |
125 | Double_t fPhiMin2; // second sector with non-uniform acceptance starts at azimuth fPhiMin2 | |
126 | Double_t fPhiMax2; // second sector with non-uniform acceptance ends at azimuth fPhiMax2 | |
127 | Double_t fProbability2; // particles emitted in fPhiMin2 < phi < fPhiMax2 are taken with probability fProbability2 | |
128 | Double_t fPi; // pi | |
6d19c373 | 129 | Bool_t fUniformEfficiency; // detector has uniform efficiency vs pT, or perhaps not... |
130 | Double_t fPtMin; // non-uniform efficiency vs pT starts at pT = fPtMin | |
131 | Double_t fPtMax; // non-uniform efficiency vs pT ends at pT = fPtMax | |
132 | Double_t fPtProbability; // particles emitted in fPtMin <= pT < fPtMax are taken with probability fPtProbability | |
4aae2a93 | 133 | |
93417736 | 134 | ClassDef(AliFlowEventSimpleMakerOnTheFly,1) // macro for rootcint |
93ff27bd | 135 | }; |
136 | ||
137 | #endif | |
138 | ||
139 | ||
140 |