adding subevents onthefly
[u/mrichter/AliRoot.git] / PWG2 / FLOW / AliFlowCommon / AliFlowEventSimpleMakerOnTheFly.h
index 99f0fed..9531336 100644 (file)
@@ -19,7 +19,6 @@
 
 class TF1;
 class TRandom3;
-//class TUnuran;
 
 #include "AliFlowEventSimple.h"  //needed as include
     
@@ -40,12 +39,24 @@ class AliFlowEventSimpleMakerOnTheFly {
   //                        *****************************
   //................................................................................................
   // setters and getters for global parameters:
+  void SetMultDistrOfRPsIsGauss(Bool_t const mdorig) {this->fMultDistrOfRPsIsGauss = mdorig;};
+  Bool_t GetMultDistrOfRPsIsGauss() const {return this->fMultDistrOfRPsIsGauss;};
+  
   void SetMultiplicityOfRP(Int_t multRP) {this->fMultiplicityOfRP = multRP;}
   Int_t GetMultiplicityOfRP() const {return this->fMultiplicityOfRP;} 
   
   void SetMultiplicitySpreadOfRP(Double_t multSpreadRP) {this->fMultiplicitySpreadOfRP = multSpreadRP;}
   Double_t GetMultiplicitySpreadOfRP() const {return this->fMultiplicitySpreadOfRP;} 
   
+  void SetMinMultOfRP(Int_t minmr) {this->fMinMultOfRP = minmr;}
+  Int_t GetMinMultOfRP() const {return this->fMinMultOfRP;} 
+  
+  void SetMaxMultOfRP(Int_t maxmr) {this->fMaxMultOfRP = maxmr;}
+  Int_t GetMaxMultOfRP() const {return this->fMaxMultOfRP;} 
+  
+  void SetTemperatureOfRP(Double_t temperatureRP) {this->fTemperatureOfRP = temperatureRP;}
+  Double_t GetTemperatureOfRP() const {return this->fTemperatureOfRP;} 
+  
   void SetUseConstantHarmonics(Bool_t const uch) {this->fUseConstantHarmonics = uch;};
   Bool_t GetUseConstantHarmonics() const {return this->fUseConstantHarmonics;};
   
@@ -56,12 +67,21 @@ class AliFlowEventSimpleMakerOnTheFly {
   void SetV1SpreadRP(Double_t dV1SpreadRP) {this->fV1SpreadRP = dV1SpreadRP;}
   Double_t GetV1SpreadRP() const {return this->fV1SpreadRP;} 
   
+  void SetV2DistrOfRPsIsGauss(Bool_t const v2dorig) {this->fV2DistrOfRPsIsGauss = v2dorig;};
+  Bool_t GetV2DistrOfRPsIsGauss() const {return this->fV2DistrOfRPsIsGauss;};
+  
   void SetV2RP(Double_t dV2RP) {this->fV2RP = dV2RP;}
   Double_t GetV2RP() const {return this->fV2RP;} 
   
   void SetV2SpreadRP(Double_t dV2SpreadRP) {this->fV2SpreadRP = dV2SpreadRP;}
   Double_t GetV2SpreadRP() const {return this->fV2SpreadRP;} 
   
+  void SetMinV2RP(Double_t dMinV2RP) {this->fMinV2RP = dMinV2RP;}
+  Double_t GetMinV2RP() const {return this->fMinV2RP;} 
+  
+  void SetMaxV2RP(Double_t dMaxV2RP) {this->fMaxV2RP = dMaxV2RP;}
+  Double_t GetMaxV2RP() const {return this->fMaxV2RP;} 
+  
   void SetV4RP(Double_t dV4RP) {this->fV4RP = dV4RP;}
   Double_t GetV4RP() const {return this->fV4RP;} 
   
@@ -74,11 +94,32 @@ class AliFlowEventSimpleMakerOnTheFly {
   
   void SetPtCutOff(Double_t dPtCutOff) {this->fPtCutOff = dPtCutOff;}
   Double_t GetPtCutOff() const {return this->fPtCutOff;} 
+  
+  void SetFirstSectorPhiMin(Double_t dPhiMin1) {this->fPhiMin1 = dPhiMin1;}
+  Double_t GetFirstSectorPhiMin() const {return this->fPhiMin1;} 
+  
+  void SetFirstSectorPhiMax(Double_t dPhiMax1) {this->fPhiMax1 = dPhiMax1;}
+  Double_t GetFirstSectorPhiMax() const {return this->fPhiMax1;}
+  
+  void SetFirstSectorProbability(Double_t dProbability1) {this->fProbability1 = dProbability1;}
+  Double_t GetFirstProbability() const {return this->fProbability1;}  
+  
+  void SetSecondSectorPhiMin(Double_t dPhiMin2) {this->fPhiMin2 = dPhiMin2;}
+  Double_t GetSecondSectorPhiMin() const {return this->fPhiMin2;} 
+  
+  void SetSecondSectorPhiMax(Double_t dPhiMax2) {this->fPhiMax2 = dPhiMax2;}
+  Double_t GetSecondSectorPhiMax() const {return this->fPhiMax2;}
+  
+  void SetSecondSectorProbability(Double_t dProbability2) {this->fProbability2 = dProbability2;}
+  Double_t GetSecondProbability() const {return this->fProbability2;}  
   //................................................................................................
   
   void SetNoOfLoops(Int_t noofl) {this->fNoOfLoops = noofl;}
   Int_t GetNoOfLoops() const {return this->fNoOfLoops;} 
 
+  void SetSubeventEtaRange(Double_t minA,Double_t maxA,Double_t minB,Double_t maxB) 
+  {this->fEtaMinA = minA; this->fEtaMaxA = maxA;this->fEtaMinB = minB; this->fEtaMaxB = maxB;};
+
  private:
  
   AliFlowEventSimpleMakerOnTheFly(const AliFlowEventSimpleMakerOnTheFly& anAnalysis);            // copy constructor
@@ -86,19 +127,41 @@ class AliFlowEventSimpleMakerOnTheFly {
   
   //................................................................................................
   // global parameters:
-  Int_t     fMultiplicityOfRP;       // multiplicity of RPs
-  Double_t  fMultiplicitySpreadOfRP; // multiplicity spread of RPs 
-  Bool_t    fUseConstantHarmonics;      // harmonics V1, V2, V4... are constant (kTRUE) or functions of pt and eta (kFALSE)     
+  Bool_t    fMultDistrOfRPsIsGauss;  // 1.) if kTRUE  = multiplicitiy of RPs is sampled e-b-e from Gaussian distribution with
+                                     //                 mean = fMultiplicityOfRP and spread = fMultiplicitySpreadOfRP
+                                     // 2.) if kFALSE = multiplicitiy of RPs is sampled e-b-e uniformly from 
+                                     //                 interval [fMinMultOfRP,fMaxMultOfRP]
+  Int_t     fMultiplicityOfRP;       // mean multiplicity of RPs (if sampled from Gaussian)
+  Double_t  fMultiplicitySpreadOfRP; // multiplicity spread of RPs (if sampled from Gaussian)
+  Int_t     fMinMultOfRP;            // minimal multiplicity of RPs (if sampled uniformly)
+  Int_t     fMaxMultOfRP;            // maximum multiplicity of RPs (if sampled uniformly)
+  Double_t  fTemperatureOfRP;        // "temperature" of RPs in GeV/c (increase this parameter to get more high pt RPs) 
+  Bool_t    fUseConstantHarmonics;   // harmonics V1, V2, V4... are constant (kTRUE) or functions of pt and eta (kFALSE)     
   // constant harmonics: 
   Double_t  fV1RP;                   // directed flow of RPs
   Double_t  fV1SpreadRP;             // directed flow spread of RPs
-  Double_t  fV2RP;                   // elliptic flow of RPs
-  Double_t  fV2SpreadRP;             // elliptic flow spread of RPs
+  
+  Bool_t    fV2DistrOfRPsIsGauss;    // 1.) if kTRUE  = elliptic flow of RPs is sampled e-b-e from Gaussian distribution with
+                                     //                 mean = fV2RP and spread = fV2SpreadRP
+                                     // 2.) if kFALSE = elliptic flow of RPs is sampled e-b-e uniformly from 
+                                     //                 interval [fMinV2RP,fMaxV2RP]
+  Double_t  fV2RP;                   // mean elliptic flow of RPs (if sampled from Gaussian)
+  Double_t  fV2SpreadRP;             // elliptic flow spread of RPs (if sampled from Gaussian)
+  Double_t  fMinV2RP;                // minimal elliptic flow of RPs (if sampled uniformly)
+  Double_t  fMaxV2RP;                // minimal elliptic flow of RPs (if sampled uniformly)
+  
   Double_t  fV4RP;                   // harmonic V4 of RPs
   Double_t  fV4SpreadRP;             // harmonic V4's spread of RPs
   // (pt,eta) dependent harmonics:
   Double_t  fV2RPMax;                // elliptic flow of RPs
   Double_t  fPtCutOff;               // elliptic flow spread of RPs
+  // non-uniform acceptance:
+  Double_t  fPhiMin1;                // first non-uniform sector starts at azimuth fPhiMin1
+  Double_t  fPhiMax1;                // first non-uniform sector ends at azimuth fPhiMax1
+  Double_t  fProbability1;           // particles emitted in fPhiMin1 < phi < fPhiMax1 are taken with probability fProbability1 
+  Double_t  fPhiMin2;                // second non-uniform sector starts at azimuth fPhiMin2
+  Double_t  fPhiMax2;                // second non-uniform sector starts at azimuth fPhiMax2
+  Double_t  fProbability2;           // particles emitted in fPhiMin2 < phi < fPhiMax2 are taken with probability fProbability2
   //................................................................................................
   
   //................................................................................................
@@ -108,9 +171,12 @@ class AliFlowEventSimpleMakerOnTheFly {
   //................................................................................................
   
   TRandom3* fMyTRandom3; // our TRandom3 generator
-  //TUnuran*  fMyUnuran;   // our TUnuran generator
   Int_t     fCount;      // count number of events 
   Int_t     fNoOfLoops;  // number of times to use the same particle (nonflow)
+  Double_t  fEtaMinA;              // minimum eta of subevent A eta range
+  Double_t  fEtaMaxA;              // maximum eta of subevent A eta range
+  Double_t  fEtaMinB;              // minimum eta of subevent B eta range
+  Double_t  fEtaMaxB;              // maximum eta of subevent B eta range  
 
   ClassDef(AliFlowEventSimpleMakerOnTheFly,0) // macro for rootcint
 };