AliPhysics  1c9c77b (1c9c77b)
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
AliFlowEventSimpleMakerOnTheFly.h
Go to the documentation of this file.
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 full *
9  * flow analysis 'on the fly'. *
10  * *
11  * author: Ante Bilandzic *
12  * (abilandzic@gmail.com) *
13  ************************************/
14 
15 #ifndef ALIFLOWEVENTSIMPLEMAKERONTHEFLY_H
16 #define ALIFLOWEVENTSIMPLEMAKERONTHEFLY_H
17 
18 class TF1;
19 class TRandom3;
20 class TH3F;
21 
22 class AliFlowEventSimple;
23 class AliFlowTrackSimple;
25 
27  public:
28  AliFlowEventSimpleMakerOnTheFly(UInt_t uiSeed = 0); // constructor
29  virtual ~AliFlowEventSimpleMakerOnTheFly(); // destructor
30  virtual void Init();
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;}
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;}
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;}
73  void SetFirstSectorPhiMin(Double_t dPhiMin1) {this->fPhiMin1 = dPhiMin1;}
74  Double_t GetFirstSectorPhiMin() const {return this->fPhiMin1;}
75  void SetFirstSectorPhiMax(Double_t dPhiMax1) {this->fPhiMax1 = dPhiMax1;}
76  Double_t GetFirstSectorPhiMax() const {return this->fPhiMax1;}
77  void SetFirstSectorProbability(Double_t dProbability1) {this->fProbability1 = dProbability1;}
79  void SetSecondSectorPhiMin(Double_t dPhiMin2) {this->fPhiMin2 = dPhiMin2;}
80  Double_t GetSecondSectorPhiMin() const {return this->fPhiMin2;}
81  void SetSecondSectorPhiMax(Double_t dPhiMax2) {this->fPhiMax2 = dPhiMax2;}
82  Double_t GetSecondSectorPhiMax() const {return this->fPhiMax2;}
83  void SetSecondSectorProbability(Double_t dProbability2) {this->fProbability2 = dProbability2;}
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;}
93 
94  private:
95  AliFlowEventSimpleMakerOnTheFly(const AliFlowEventSimpleMakerOnTheFly& anAnalysis); // copy constructor
96  AliFlowEventSimpleMakerOnTheFly& operator=(const AliFlowEventSimpleMakerOnTheFly& anAnalysis); // assignment operator
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
108  Double_t fV5; // harmonic v5
109  Double_t fV6; // harmonic v6
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
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
133 
134  ClassDef(AliFlowEventSimpleMakerOnTheFly,1) // macro for rootcint
135 };
136 
137 #endif
138 
139 
140 
void SetFirstSectorProbability(Double_t dProbability1)
double Double_t
Definition: External.C:58
Definition: External.C:260
AliFlowEventSimpleMakerOnTheFly & operator=(const AliFlowEventSimpleMakerOnTheFly &anAnalysis)
Bool_t AcceptPt(AliFlowTrackSimple *pTrack)
Double_t ptMin
int Int_t
Definition: External.C:63
unsigned int UInt_t
Definition: External.C:33
void SetSubeventEtaRange(Double_t minA, Double_t maxA, Double_t minB, Double_t maxB)
AliFlowEventSimpleMakerOnTheFly(UInt_t uiSeed=0)
void SetSecondSectorProbability(Double_t dProbability2)
AliFlowEventSimple * CreateEventOnTheFly(AliFlowTrackSimpleCuts const *cutsRP, AliFlowTrackSimpleCuts const *cutsPOI)
Bool_t AcceptPhi(AliFlowTrackSimple *pTrack)
void SetV2vsPtCutOff(Double_t dV2vsPtCutOff)
bool Bool_t
Definition: External.C:53
Double_t ptMax