]> git.uio.no Git - u/mrichter/AliRoot.git/commitdiff
covariances back as default + support plotting single event flow
authorsnelling <snelling@f7af4fe6-9843-0410-8265-dc069ae4e863>
Fri, 19 Nov 2010 23:18:06 +0000 (23:18 +0000)
committersnelling <snelling@f7af4fe6-9843-0410-8265-dc069ae4e863>
Fri, 19 Nov 2010 23:18:06 +0000 (23:18 +0000)
PWG2/FLOW/AliFlowCommon/AliFlowAnalysisWithQCumulants.cxx
PWG2/FLOW/AliFlowCommon/AliFlowAnalysisWithQCumulants.h
PWG2/FLOW/AliFlowTasks/AliAnalysisTaskQCumulants.cxx
PWG2/FLOW/AliFlowTasks/AliAnalysisTaskQCumulants.h

index 29c05b0aa84482d334586f295d78b16e9cd6c0e0..584774b601585d7d272bb95d20686a794a60db5c 100644 (file)
@@ -118,13 +118,15 @@ AliFlowAnalysisWithQCumulants::AliFlowAnalysisWithQCumulants():
  fPropagateErrorAlsoFromNIT(kFALSE), 
  fCalculateCumulantsVsM(kTRUE), 
  fMinimumBiasReferenceFlow(kTRUE), 
- fForgetAboutCovariances(kTRUE), 
+ fForgetAboutCovariances(kFALSE), 
+ fStorePhiDistributionForOneEvent(kFALSE),
  fReQ(NULL),
  fImQ(NULL),
  fSMpk(NULL),
  fIntFlowCorrelationsEBE(NULL),
  fIntFlowEventWeightsForCorrelationsEBE(NULL),
  fIntFlowCorrelationsAllEBE(NULL),
+ fReferenceMultiplicityEBE(0.),  
  fAvMultiplicity(NULL),
  fIntFlowCorrelationsPro(NULL),
  fIntFlowCorrelationsAllPro(NULL),
@@ -153,6 +155,9 @@ AliFlowAnalysisWithQCumulants::AliFlowAnalysisWithQCumulants():
  fDistributionsList(NULL),
  fDistributionsFlags(NULL),
  fStoreDistributions(kFALSE),
+ // 6.) various:
+ fVariousList(NULL),
+ fPhiDistributionForOneEvent(NULL),
  // x.) debugging and cross-checking:
  fNestedLoopsList(NULL),
  fEvaluateIntFlowNestedLoops(kFALSE),
@@ -185,6 +190,7 @@ AliFlowAnalysisWithQCumulants::AliFlowAnalysisWithQCumulants():
   this->InitializeArraysForIntFlow();
   this->InitializeArraysForDiffFlow();
   this->InitializeArraysForDistributions();
+  this->InitializeArraysForVarious();
   this->InitializeArraysForNestedLoops();
   
  } // end of constructor
@@ -231,6 +237,7 @@ void AliFlowAnalysisWithQCumulants::Init()
  this->BookEverythingForIntegratedFlow(); 
  this->BookEverythingForDifferentialFlow(); 
  this->BookEverythingForDistributions();
+ this->BookEverythingForVarious();
  this->BookEverythingForNestedLoops();
  // d) Store flags for integrated and differential flow:
  this->StoreIntFlowFlags();
@@ -258,8 +265,9 @@ void AliFlowAnalysisWithQCumulants::Make(AliFlowEventSimple* anEvent)
  // e) Call all the methods which calculate correlations for reference flow;
  // f) Call all the methods which calculate correlations for differential flow;
  // g) Distributions of correlations;
- // h) Debugging and cross-checking (evaluate nested loops);
- // i) Reset all event-by-event quantities. 
+ // h) Store phi distribution for one event to illustrate flow;
+ // i) Debugging and cross-checking (evaluate nested loops);
+ // j) Reset all event-by-event quantities. 
  
  // a) Check all pointers used in this method:
  this->CheckPointersUsedInMake();
@@ -272,6 +280,7 @@ void AliFlowAnalysisWithQCumulants::Make(AliFlowEventSimple* anEvent)
  Double_t wPt  = 1.; // pt weight
  Double_t wEta = 1.; // eta weight
  Int_t nRP = anEvent->GetEventNSelTracksRP(); // number of RPs (i.e. number of particles used to determine the reaction plane)
+ fReferenceMultiplicityEBE = anEvent->GetReferenceMultiplicity(); // reference multiplicity for current event
   
  // c) Fill the common control histograms and call the method to fill fAvMultiplicity:
  this->FillCommonControlHistograms(anEvent);                                                               
@@ -594,11 +603,11 @@ void AliFlowAnalysisWithQCumulants::Make(AliFlowEventSimple* anEvent)
   } // end of if(fCalculate2DFlow)
   */
   
- // g) Distributions of correlations;
- if(fStoreDistributions)
- {
-  this->StoreDistributionsOfCorrelations();
- }
+ // g) Distributions of correlations:
+ if(fStoreDistributions){this->StoreDistributionsOfCorrelations();}
+ // h) Store phi distribution for one event to illustrate flow: 
if(fStorePhiDistributionForOneEvent){this->StorePhiDistributionForOneEvent(anEvent);}
   
  // h) Debugging and cross-checking (evaluate nested loops):
  //  h1) cross-checking results for integrated flow:
@@ -753,7 +762,8 @@ void AliFlowAnalysisWithQCumulants::Finish()
  fPropagateErrorAlsoFromNIT = (Bool_t)fIntFlowFlags->GetBinContent(9);  
  fCalculateCumulantsVsM = (Bool_t)fIntFlowFlags->GetBinContent(10); 
  fMinimumBiasReferenceFlow = (Bool_t)fIntFlowFlags->GetBinContent(11); 
- fForgetAboutCovariances = (Bool_t)fIntFlowFlags->GetBinContent(12); 
+ fForgetAboutCovariances = (Bool_t)fIntFlowFlags->GetBinContent(12);
+ fStorePhiDistributionForOneEvent = (Bool_t)fIntFlowFlags->GetBinContent(13);
  fEvaluateIntFlowNestedLoops = (Bool_t)fEvaluateNestedLoops->GetBinContent(1);
  fEvaluateDiffFlowNestedLoops = (Bool_t)fEvaluateNestedLoops->GetBinContent(2); 
  fCrossCheckInPtBinNo = (Int_t)fEvaluateNestedLoops->GetBinContent(3);
@@ -1474,9 +1484,9 @@ void AliFlowAnalysisWithQCumulants::BookAndFillWeightsHistograms()
 void AliFlowAnalysisWithQCumulants::BookEverythingForIntegratedFlow()
 {
  // Book all objects for integrated flow:
- //  a) Book profile to hold all flags for integrated flow.
- //  b) Book event-by-event quantities.
- //  c) Book profiles. // to be improved (comment)
+ //  a) Book profile to hold all flags for integrated flow;
+ //  b) Book event-by-event quantities;
+ //  c) Book profiles; // to be improved (comment)
  //  d) Book histograms holding the final results.
  
  TString sinCosFlag[2] = {"sin","cos"}; // to be improved (should I promote this to data members?)
@@ -1485,7 +1495,7 @@ void AliFlowAnalysisWithQCumulants::BookEverythingForIntegratedFlow()
  // a) Book profile to hold all flags for integrated flow:
  TString intFlowFlagsName = "fIntFlowFlags";
  intFlowFlagsName += fAnalysisLabel->Data();
- fIntFlowFlags = new TProfile(intFlowFlagsName.Data(),"Flags for Integrated Flow",12,0,12);
+ fIntFlowFlags = new TProfile(intFlowFlagsName.Data(),"Flags for Integrated Flow",13,0,13);
  fIntFlowFlags->SetTickLength(-0.01,"Y");
  fIntFlowFlags->SetMarkerStyle(25);
  fIntFlowFlags->SetLabelSize(0.05);
@@ -1502,6 +1512,7 @@ void AliFlowAnalysisWithQCumulants::BookEverythingForIntegratedFlow()
  fIntFlowFlags->GetXaxis()->SetBinLabel(10,"Calculate cumulants vs M");
  fIntFlowFlags->GetXaxis()->SetBinLabel(11,"fMinimumBiasReferenceFlow");
  fIntFlowFlags->GetXaxis()->SetBinLabel(12,"fForgetAboutCovariances");
+ fIntFlowFlags->GetXaxis()->SetBinLabel(13,"fStorePhiDistributionForOneEvent");
  fIntFlowList->Add(fIntFlowFlags);
 
  // b) Book event-by-event quantities:
@@ -2909,9 +2920,39 @@ void AliFlowAnalysisWithQCumulants::CalculateIntFlowCorrelations()
  
 } // end of AliFlowAnalysisWithQCumulants::CalculateIntFlowCorrelations()
 
-
 //================================================================================================================================
 
+void AliFlowAnalysisWithQCumulants::StorePhiDistributionForOneEvent(AliFlowEventSimple *anEvent)
+{
+ // Store phi distribution for one event to illustrate flow.
+ if(fPhiDistributionForOneEvent->GetEntries()>0){return;} // store only phi distribution for one event
+ Double_t vMin = fPhiDistributionForOneEventSettings[0]; 
+ Double_t vMax = fPhiDistributionForOneEventSettings[1]; 
+ Double_t refMultMin = fPhiDistributionForOneEventSettings[2]; 
+ Double_t refMultMax = fPhiDistributionForOneEventSettings[3]; 
+ Double_t vEBE = 0.;
+ Double_t cumulant4thEBE = fIntFlowCorrelationsEBE->GetBinContent(2)-2.*pow(fIntFlowCorrelationsEBE->GetBinContent(1),2.);
+ if(cumulant4thEBE<0.)
+ {
+  vEBE = pow(-1.*cumulant4thEBE,0.25);
+  if((vEBE>vMin && vEBE<vMax) && (fReferenceMultiplicityEBE>refMultMin && fReferenceMultiplicityEBE<refMultMax))
+  {
+   for(Int_t p=0;p<anEvent->NumberOfTracks();p++)
+   {
+    if(anEvent->GetTrack(p)->InRPSelection())
+    {
+     fPhiDistributionForOneEvent->Fill(anEvent->GetTrack(p)->Phi());
+    }
+   } // end of for(Int_t p=0;p<anEvent->NumberOfTracks();p++)
+  }
+ } // end of if(cumulant4thEBE<0.)
+} // end of void AliFlowAnalysisWithQCumulants::StorePhiDistributionForOneEvent(AliFlowEventSimple *anEvent)
+
+//================================================================================================================================
 
 void AliFlowAnalysisWithQCumulants::CalculateIntFlowProductOfCorrelations()
 {
@@ -4770,7 +4811,7 @@ void AliFlowAnalysisWithQCumulants::InitializeArraysForIntFlow()
   fIntFlowCovariancesVsM[pi] = NULL;
   fIntFlowSumOfProductOfEventWeightsVsM[pi] = NULL;
  } 
-  
 } // end of void AliFlowAnalysisWithQCumulants::InitializeArraysForIntFlow()
 
 //================================================================================================================================
@@ -5728,10 +5769,8 @@ void AliFlowAnalysisWithQCumulants::CalculateFinalResultsForRPandPOIIntegratedFl
            
 } // end of AliFlowAnalysisWithQCumulants::CalculateFinalResultsForRPandPOIIntegratedFlow(TString type)
 
-
 //================================================================================================================================
 
-
 void AliFlowAnalysisWithQCumulants::InitializeArraysForDistributions()
 {
  // Initialize all arrays used for distributions.
@@ -5758,9 +5797,20 @@ void AliFlowAnalysisWithQCumulants::InitializeArraysForDistributions()
  
 } // end of void AliFlowAnalysisWithQCumulants::InitializeArraysForDistributions()
 
-
 //================================================================================================================================
 
+void AliFlowAnalysisWithQCumulants::InitializeArraysForVarious()
+{
+ // Initialize all arrays used for various unclassified objects.
+ for(Int_t p=0;p<4;p++) // [v_min,v_max,refMult_min,refMult_max]
+ {
+  fPhiDistributionForOneEventSettings[p] = 0.;
+ } 
+   
+} //  end of void AliFlowAnalysisWithQCumulants::InitializeArraysForVarious()
+
+//================================================================================================================================
 
 void AliFlowAnalysisWithQCumulants::BookEverythingForDistributions()
 {
@@ -5803,9 +5853,24 @@ void AliFlowAnalysisWithQCumulants::BookEverythingForDistributions()
  
 } // end of void AliFlowAnalysisWithQCumulants::BookEverythingForDistributions()
 
-
 //================================================================================================================================
 
+void AliFlowAnalysisWithQCumulants::BookEverythingForVarious()
+{
+ // Book all objects for various unclassified quantities.
+ if(!fStorePhiDistributionForOneEvent){return;}
+ // a) Book histogram holding phi distribution for single event to illustrate flow.
+ // a) Book histogram holding phi distribution for single event to illustrate flow:
+ fPhiDistributionForOneEvent = new TH1D("fPhiDistributionForOneEvent","",360,0.,TMath::TwoPi());
+ fPhiDistributionForOneEvent->GetXaxis()->SetTitle("#phi");
+ fVariousList->Add(fPhiDistributionForOneEvent);
+} // end of void AliFlowAnalysisWithQCumulants::BookEverythingForVarious()
+
+//================================================================================================================================
 
 void AliFlowAnalysisWithQCumulants::StoreFlagsForDistributions()
 {
@@ -5857,10 +5922,8 @@ void AliFlowAnalysisWithQCumulants::StoreDistributionsOfCorrelations()
 
 } // end of void AliFlowAnalysisWithQCumulants::StoreDistributionsOfCorrelations()
 
-
 //================================================================================================================================
 
-
 void AliFlowAnalysisWithQCumulants::BookAndNestAllLists()
 {
  // Book and nest all lists nested in the base list fHistList.
@@ -5868,7 +5931,8 @@ void AliFlowAnalysisWithQCumulants::BookAndNestAllLists()
  //  b) Book and nest lists for differential flow;
  //  c) Book and nest list for particle weights;
  //  d) Book and nest list for distributions;
- //  e) Book and nest list for nested loops;
+ //  e) Book and nest list for various unclassified objects; 
+ //  f) Book and nest list for nested loops.
  
  // a) Book and nest all lists for integrated flow:
  // base list for integrated flow:
@@ -5977,7 +6041,16 @@ void AliFlowAnalysisWithQCumulants::BookAndNestAllLists()
  fDistributionsList->SetOwner(kTRUE);
  fHistList->Add(fDistributionsList);
  
- // e) Book and nest list for nested loops:
+ // e) Book and nest list for various unclassified objects:
+ if(fStorePhiDistributionForOneEvent)
+ {
+  fVariousList = new TList();
+  fVariousList->SetName("Various");
+  fVariousList->SetOwner(kTRUE);
+  fHistList->Add(fVariousList);
+ }
+  
+ // f) Book and nest list for nested loops:
  fNestedLoopsList = new TList();
  fNestedLoopsList->SetName("Nested Loops");
  fNestedLoopsList->SetOwner(kTRUE);
@@ -7367,7 +7440,7 @@ void AliFlowAnalysisWithQCumulants::StoreIntFlowFlags()
  fIntFlowFlags->Fill(9.5,(Int_t)fCalculateCumulantsVsM);
  fIntFlowFlags->Fill(10.5,(Int_t)fMinimumBiasReferenceFlow);
  fIntFlowFlags->Fill(11.5,(Int_t)fForgetAboutCovariances);
+ fIntFlowFlags->Fill(12.5,(Int_t)fStorePhiDistributionForOneEvent); 
 } // end of void AliFlowAnalysisWithQCumulants::StoreIntFlowFlags()
 
 //================================================================================================================================
index 93d9d3c2fadfb581093156abca69d2f2b17a7210..98134687993a147ceff121ea16e9abc2dcd47572 100644 (file)
@@ -45,6 +45,7 @@ class AliFlowAnalysisWithQCumulants{
   virtual void InitializeArraysForIntFlow();
   virtual void InitializeArraysForDiffFlow();
   virtual void InitializeArraysForDistributions();
+  virtual void InitializeArraysForVarious();
   virtual void InitializeArraysForNestedLoops();
   // 1.) method Init() and methods called within Init():
   virtual void Init();
@@ -55,7 +56,8 @@ class AliFlowAnalysisWithQCumulants{
     virtual void BookAndFillWeightsHistograms();
     virtual void BookEverythingForIntegratedFlow();
     virtual void BookEverythingForDifferentialFlow();
-    virtual void BookEverythingForDistributions();  
+    virtual void BookEverythingForDistributions(); 
+    virtual void BookEverythingForVarious();
     virtual void BookEverythingForNestedLoops();   
     virtual void StoreIntFlowFlags();
     virtual void StoreDiffFlowFlags();
@@ -104,6 +106,8 @@ class AliFlowAnalysisWithQCumulants{
     virtual void EvaluateDiffFlowCorrectionTermsForNUAWithNestedLoopsUsingParticleWeights(AliFlowEventSimple* const anEvent, TString type, TString ptOrEta);
     // 2d.) distributions of correlations:
     virtual void StoreDistributionsOfCorrelations();
+    // 2e.) store phi distibution for one event to vizualize flow:
+    virtual void StorePhiDistributionForOneEvent(AliFlowEventSimple* const anEvent);    
   // 3.) method Finish() and methods called within Finish():
   virtual void Finish();
     virtual void CheckPointersUsedInFinish();     
@@ -226,7 +230,12 @@ class AliFlowAnalysisWithQCumulants{
   void SetMinimumBiasReferenceFlow(Bool_t const mmrf) {this->fMinimumBiasReferenceFlow = mmrf;};
   Bool_t GetMinimumBiasReferenceFlow() const {return this->fMinimumBiasReferenceFlow;};  
   void SetForgetAboutCovariances(Bool_t const fac) {this->fForgetAboutCovariances = fac;};
-  Bool_t GetForgetAboutCovariances() const {return this->fForgetAboutCovariances;};  
+  Bool_t GetForgetAboutCovariances() const {return this->fForgetAboutCovariances;};
+  void SetStorePhiDistributionForOneEvent(Bool_t const spdfoe) {this->fStorePhiDistributionForOneEvent = spdfoe;};
+  Bool_t GetStorePhiDistributionForOneEvent() const {return this->fStorePhiDistributionForOneEvent;};
+  void SetPhiDistributionForOneEventSettings(Double_t const pdfoes, Int_t const i) {this->fPhiDistributionForOneEventSettings[i] = pdfoes;};
+  Double_t GetPhiDistributionForOneEventSettings(Int_t const i) const {return this->fPhiDistributionForOneEventSettings[i];};
+
   // Reference flow profiles:
   void SetAvMultiplicity(TProfile* const avMultiplicity) {this->fAvMultiplicity = avMultiplicity;};
   TProfile* GetAvMultiplicity() const {return this->fAvMultiplicity;};
@@ -437,6 +446,8 @@ class AliFlowAnalysisWithQCumulants{
   Bool_t fCalculateCumulantsVsM; // calculate cumulants versus multiplicity  
   Bool_t fMinimumBiasReferenceFlow; // store as reference flow in AliFlowCommonHistResults the minimum bias result (kFALSE by default)   
   Bool_t fForgetAboutCovariances; // when propagating error forget about the covariances  
+  Bool_t fStorePhiDistributionForOneEvent; // store phi distribution for one event to illustrate flow
+  Double_t fPhiDistributionForOneEventSettings[4]; // [v_min,v_max,refMult_min,refMult_max]
   //  3c.) event-by-event quantities:
   TMatrixD *fReQ; // fReQ[m][k] = sum_{i=1}^{M} w_{i}^{k} cos(m*phi_{i})
   TMatrixD *fImQ; // fImQ[m][k] = sum_{i=1}^{M} w_{i}^{k} sin(m*phi_{i})
@@ -446,6 +457,7 @@ class AliFlowAnalysisWithQCumulants{
   TH1D *fIntFlowCorrelationsAllEBE; // to be improved (add comment)
   TH1D *fIntFlowCorrectionTermsForNUAEBE[2]; // [0=sin terms,1=cos terms], NUA = non-uniform acceptance
   TH1D *fIntFlowEventWeightForCorrectionTermsForNUAEBE[2]; // [0=sin terms,1=cos terms], NUA = non-uniform acceptance 
+  Double_t fReferenceMultiplicityEBE; // reference multiplicity 
   //  3d.) profiles:
   TProfile *fAvMultiplicity; // profile to hold average multiplicities and number of events for events with nRP>=0, nRP>=1, ... , and nRP>=8
   TProfile *fIntFlowCorrelationsPro; // average correlations <<2>>, <<4>>, <<6>> and <<8>> (with wrong errors!) 
@@ -547,6 +559,10 @@ class AliFlowAnalysisWithQCumulants{
   TH1D *fDistributions[4]; // [0=distribution of <2>,1=distribution of <4>,2=distribution of <6>,3=distribution of <8>]
   Double_t fMinValueOfCorrelation[4]; // min values of <2>, <4>, <6> and <8>
   Double_t fMaxValueOfCorrelation[4]; // max values of <2>, <4>, <6> and <8>
+  
+  // 6.) various:
+  TList *fVariousList; // list to hold various unclassified objects
+  TH1D *fPhiDistributionForOneEvent; // store phi distribution for one event to illustrate flow
     
   // x.) debugging and cross-checking:
   TList *fNestedLoopsList; // list to hold all profiles filled with nested loops
index 337eccae1134e9f81ce1983142785920682da9fe..a7b085b6cfcc720305b8343f01f838bcd2be36e4 100644 (file)
@@ -50,7 +50,8 @@ AliAnalysisTaskQCumulants::AliAnalysisTaskQCumulants(const char *name, Bool_t us
  fStoreDistributions(kFALSE),
  fCalculateCumulantsVsM(kTRUE), 
  fMinimumBiasReferenceFlow(kTRUE), 
- fForgetAboutCovariances(kTRUE),  
+ fForgetAboutCovariances(kFALSE),  
+ fStorePhiDistributionForOneEvent(kFALSE),
  fnBinsMult(10000),
  fMinMult(0.),  
  fMaxMult(10000.), 
@@ -78,6 +79,13 @@ AliAnalysisTaskQCumulants::AliAnalysisTaskQCumulants(const char *name, Bool_t us
  
  // Event weights:
  fMultiplicityWeight = new TString("combinations");
+ // Store phi distribution for one event to illustrate flow:
+ for(Int_t p=0;p<4;p++) // [v_min,v_max,refMult_min,refMult_max]
+ {
+  fPhiDistributionForOneEventSettings[p] = 0.;
+ } 
+  
 }
 
 AliAnalysisTaskQCumulants::AliAnalysisTaskQCumulants(): 
@@ -94,6 +102,7 @@ AliAnalysisTaskQCumulants::AliAnalysisTaskQCumulants():
  fCalculateCumulantsVsM(kFALSE),  
  fMinimumBiasReferenceFlow(kFALSE), 
  fForgetAboutCovariances(kFALSE), 
+ fStorePhiDistributionForOneEvent(kFALSE), 
  fnBinsMult(0),
  fMinMult(0.),  
  fMaxMult(0.), 
@@ -106,6 +115,13 @@ AliAnalysisTaskQCumulants::AliAnalysisTaskQCumulants():
 {
  // Dummy constructor
  cout<<"AliAnalysisTaskQCumulants::AliAnalysisTaskQCumulants()"<<endl;
+ // Store phi distribution for one event to illustrate flow:
+ for(Int_t p=0;p<4;p++) // [v_min,v_max,refMult_min,refMult_max]
+ {
+  fPhiDistributionForOneEventSettings[p] = 0.;
+ } 
 }
 
 //================================================================================================================
@@ -153,6 +169,13 @@ void AliAnalysisTaskQCumulants::UserCreateOutputObjects()
   fQC->SetMultiplicityWeight(fMultiplicityWeight->Data());
  }
 
+ // Store phi distribution for one event to illustrate flow:
+ fQC->SetStorePhiDistributionForOneEvent(fStorePhiDistributionForOneEvent);
+ for(Int_t i=0;i<4;i++)
+ {
+  fQC->SetPhiDistributionForOneEventSettings(fPhiDistributionForOneEventSettings[i],i);
+ }
+  
  fQC->Init();
  
  if(fQC->GetHistList()) 
index b0b23b1273ccbb570d8f6c00eb8473248e34d1db..7733a18548a43c03b882804f00ad33de18053e8e 100644 (file)
@@ -55,7 +55,12 @@ class AliAnalysisTaskQCumulants : public AliAnalysisTaskSE{
   void SetMinimumBiasReferenceFlow(Bool_t const mmrf) {this->fMinimumBiasReferenceFlow = mmrf;};
   Bool_t GetMinimumBiasReferenceFlow() const {return this->fMinimumBiasReferenceFlow;};     
   void SetForgetAboutCovariances(Bool_t const fac) {this->fForgetAboutCovariances = fac;};
-  Bool_t GetForgetAboutCovariances() const {return this->fForgetAboutCovariances;};       
+  Bool_t GetForgetAboutCovariances() const {return this->fForgetAboutCovariances;};   
+  void SetStorePhiDistributionForOneEvent(Bool_t const spdfoe) {this->fStorePhiDistributionForOneEvent = spdfoe;};
+  Bool_t GetStorePhiDistributionForOneEvent() const {return this->fStorePhiDistributionForOneEvent;};
+  void SetPhiDistributionForOneEventSettings(Double_t const pdfoes, Int_t const i) {this->fPhiDistributionForOneEventSettings[i] = pdfoes;};
+  Double_t GetPhiDistributionForOneEventSettings(Int_t const i) const {return this->fPhiDistributionForOneEventSettings[i];};  
   // Multiparticle correlations vs multiplicity:
   void SetnBinsMult(Int_t const nbm) {this->fnBinsMult = nbm;};
   Int_t GetnBinsMult() const {return this->fnBinsMult;};  
@@ -90,6 +95,8 @@ class AliAnalysisTaskQCumulants : public AliAnalysisTaskSE{
   Bool_t fCalculateCumulantsVsM;     // calculate cumulants versus multiplicity  
   Bool_t fMinimumBiasReferenceFlow;  // store as reference flow in AliFlowCommonHistResults the minimum bias result (kFALSE by default)     
   Bool_t fForgetAboutCovariances;    // when propagating error forget about the covariances  
+  Bool_t fStorePhiDistributionForOneEvent; // store phi distribution for one event to illustrate flow
+  Double_t fPhiDistributionForOneEventSettings[4]; // [v_min,v_max,refMult_min,refMult_max]        
   // Multiparticle correlations vs multiplicity:
   Int_t fnBinsMult;                   // number of multiplicity bins for flow analysis versus multiplicity  
   Double_t fMinMult;                  // minimal multiplicity for flow analysis versus multiplicity