]> git.uio.no Git - u/mrichter/AliRoot.git/commitdiff
running local for SP and LYZEP and new histograms for QC
authorsnelling <snelling@f7af4fe6-9843-0410-8265-dc069ae4e863>
Thu, 22 Jan 2009 18:34:00 +0000 (18:34 +0000)
committersnelling <snelling@f7af4fe6-9843-0410-8265-dc069ae4e863>
Thu, 22 Jan 2009 18:34:00 +0000 (18:34 +0000)
PWG2/FLOW/AliAnalysisTaskQCumulants.cxx
PWG2/FLOW/AliFlowAnalysisWithLYZEventPlane.cxx
PWG2/FLOW/AliFlowAnalysisWithLYZEventPlane.h
PWG2/FLOW/AliFlowAnalysisWithQCumulants.cxx
PWG2/FLOW/AliFlowAnalysisWithQCumulants.h
PWG2/FLOW/AliFlowAnalysisWithScalarProduct.cxx
PWG2/FLOW/AliFlowAnalysisWithScalarProduct.h
PWG2/FLOW/AliQCumulantsFunctions.cxx
PWG2/FLOW/AliQCumulantsFunctions.h
PWG2/FLOW/macros/runFlowAnalysisOnKine.C

index 55b1fef64ca97bbd9975646da04a228ac64b6c7e..bdc4c45ed4142792db02bd026b7b5a1aef8be347 100644 (file)
@@ -240,7 +240,7 @@ void AliAnalysisTaskQCumulants::Exec(Option_t *)
     Printf("There are %d tracks in this event", fESD->GetNumberOfTracks());
     
     //Q-cumulant analysis    
-    AliFlowEventSimple* fEvent = fEventMaker->FillTracks(fESD,fCFManager1,fCFManager2);
+    AliFlowEventSimple* fEvent = fEventMaker->FillTracks(fESD,fCFManager1,fCFManager2);//cuts
     //AliFlowEventSimple* fEvent = fEventMaker->FillTracks(fESD);
     
     fQCA->Make(fEvent); 
@@ -344,12 +344,34 @@ void AliAnalysisTaskQCumulants::Terminate(Option_t *)
   //average of products: 1st bin: <2*4>, 2nd bin: <2*6>, ...
   TProfile *QProduct = dynamic_cast<TProfile*>(fListHistos->FindObject("fQProduct"));
   
-  //average 2-, 3- and 4-particle correlations per bin 
-  TProfile *binned2p1n1n = dynamic_cast<TProfile*>(fListHistos->FindObject("f2PerBin1n1n"));
-  TProfile *binned2p2n2n = dynamic_cast<TProfile*>(fListHistos->FindObject("f2PerBin2n2n"));
-  TProfile *binned3p2n1n1n = dynamic_cast<TProfile*>(fListHistos->FindObject("f3PerBin2n1n1n"));
-  TProfile *binned3p1n1n2n = dynamic_cast<TProfile*>(fListHistos->FindObject("f3PerBin1n1n2n"));
-  TProfile *binned4p1n1n1n1n = dynamic_cast<TProfile*>(fListHistos->FindObject("f4PerBin1n1n1n1n"));
+  //average 2-, 3- and 4-particle correlations per pt-bin 
+  TProfile *binnedPt2p1n1nRP = dynamic_cast<TProfile*>(fListHistos->FindObject("f2PerPtBin1n1nRP"));
+  TProfile *binnedPt2p2n2nRP = dynamic_cast<TProfile*>(fListHistos->FindObject("f2PerPtBin2n2nRP"));
+  TProfile *binnedPt3p2n1n1nRP = dynamic_cast<TProfile*>(fListHistos->FindObject("f3PerPtBin2n1n1nRP"));
+  TProfile *binnedPt3p1n1n2nRP = dynamic_cast<TProfile*>(fListHistos->FindObject("f3PerPtBin1n1n2nRP"));
+  TProfile *binnedPt4p1n1n1n1nRP = dynamic_cast<TProfile*>(fListHistos->FindObject("f4PerPtBin1n1n1n1nRP"));
+  
+  //average 2-, 3- and 4-particle correlations per eta-bin 
+  TProfile *binnedEta2p1n1nRP = dynamic_cast<TProfile*>(fListHistos->FindObject("f2PerEtaBin1n1nRP"));
+  TProfile *binnedEta2p2n2nRP = dynamic_cast<TProfile*>(fListHistos->FindObject("f2PerEtaBin2n2nRP"));
+  TProfile *binnedEta3p2n1n1nRP = dynamic_cast<TProfile*>(fListHistos->FindObject("f3PerEtaBin2n1n1nRP"));
+  TProfile *binnedEta3p1n1n2nRP = dynamic_cast<TProfile*>(fListHistos->FindObject("f3PerEtaBin1n1n2nRP"));
+  TProfile *binnedEta4p1n1n1n1nRP = dynamic_cast<TProfile*>(fListHistos->FindObject("f4PerEtaBin1n1n1n1nRP"));  
+  
+  //average 2-, 3- and 4-particle correlations per pt-bin 
+  TProfile *binnedPt2p1n1nPOI = dynamic_cast<TProfile*>(fListHistos->FindObject("f2PerPtBin1n1nPOI"));
+  TProfile *binnedPt2p2n2nPOI = dynamic_cast<TProfile*>(fListHistos->FindObject("f2PerPtBin2n2nPOI"));
+  TProfile *binnedPt3p2n1n1nPOI = dynamic_cast<TProfile*>(fListHistos->FindObject("f3PerPtBin2n1n1nPOI"));
+  TProfile *binnedPt3p1n1n2nPOI = dynamic_cast<TProfile*>(fListHistos->FindObject("f3PerPtBin1n1n2nPOI"));
+  TProfile *binnedPt4p1n1n1n1nPOI = dynamic_cast<TProfile*>(fListHistos->FindObject("f4PerPtBin1n1n1n1nPOI"));
+  
+  //average 2-, 3- and 4-particle correlations per eta-bin 
+  TProfile *binnedEta2p1n1nPOI = dynamic_cast<TProfile*>(fListHistos->FindObject("f2PerEtaBin1n1nPOI"));
+  TProfile *binnedEta2p2n2nPOI = dynamic_cast<TProfile*>(fListHistos->FindObject("f2PerEtaBin2n2nPOI"));
+  TProfile *binnedEta3p2n1n1nPOI = dynamic_cast<TProfile*>(fListHistos->FindObject("f3PerEtaBin2n1n1nPOI"));
+  TProfile *binnedEta3p1n1n2nPOI = dynamic_cast<TProfile*>(fListHistos->FindObject("f3PerEtaBin1n1n2nPOI"));
+  TProfile *binnedEta4p1n1n1n1nPOI = dynamic_cast<TProfile*>(fListHistos->FindObject("f4PerEtaBin1n1n1n1nPOI")); 
+  
   
   //average values of Q-vector components (1st bin: <Q_x>, 2nd bin: <Q_y>, 3rd bin: <(Q_x)^2>, 4th bin: <(Q_y)^2>) 
   TProfile *QVectorComponents = dynamic_cast<TProfile*>(fListHistos->FindObject("fQvectorComponents"));
@@ -376,11 +398,29 @@ void AliAnalysisTaskQCumulants::Terminate(Option_t *)
   fQCA->SetQProduct(QProduct);
   fQCA->SetQVectorComponents(QVectorComponents);
  
-  fQCA->SetTwo1n1nPerBin(binned2p1n1n);
-  fQCA->SetTwo2n2nPerBin(binned2p2n2n);
-  fQCA->SetThree2n1n1nPerBin(binned3p2n1n1n);
-  fQCA->SetThree1n1n2nPerBin(binned3p1n1n2n);
-  fQCA->SetFour1n1n1n1nPerBin(binned4p1n1n1n1n);
+  fQCA->SetTwo1n1nPerPtBinRP(binnedPt2p1n1nRP);
+  fQCA->SetTwo2n2nPerPtBinRP(binnedPt2p2n2nRP);
+  fQCA->SetThree2n1n1nPerPtBinRP(binnedPt3p2n1n1nRP);
+  fQCA->SetThree1n1n2nPerPtBinRP(binnedPt3p1n1n2nRP);
+  fQCA->SetFour1n1n1n1nPerPtBinRP(binnedPt4p1n1n1n1nRP);
+  
+  fQCA->SetTwo1n1nPerEtaBinRP(binnedEta2p1n1nRP);
+  fQCA->SetTwo2n2nPerEtaBinRP(binnedEta2p2n2nRP);
+  fQCA->SetThree2n1n1nPerEtaBinRP(binnedEta3p2n1n1nRP);
+  fQCA->SetThree1n1n2nPerEtaBinRP(binnedEta3p1n1n2nRP);
+  fQCA->SetFour1n1n1n1nPerEtaBinRP(binnedEta4p1n1n1n1nRP); 
+  
+  fQCA->SetTwo1n1nPerPtBinPOI(binnedPt2p1n1nPOI);
+  fQCA->SetTwo2n2nPerPtBinPOI(binnedPt2p2n2nPOI);
+  fQCA->SetThree2n1n1nPerPtBinPOI(binnedPt3p2n1n1nPOI);
+  fQCA->SetThree1n1n2nPerPtBinPOI(binnedPt3p1n1n2nPOI);
+  fQCA->SetFour1n1n1n1nPerPtBinPOI(binnedPt4p1n1n1n1nPOI);
+  
+  fQCA->SetTwo1n1nPerEtaBinPOI(binnedEta2p1n1nPOI);
+  fQCA->SetTwo2n2nPerEtaBinPOI(binnedEta2p2n2nPOI);
+  fQCA->SetThree2n1n1nPerEtaBinPOI(binnedEta3p2n1n1nPOI);
+  fQCA->SetThree1n1n2nPerEtaBinPOI(binnedEta3p1n1n2nPOI);
+  fQCA->SetFour1n1n1n1nPerEtaBinPOI(binnedEta4p1n1n1n1nPOI);    
  
   fQCA->SetDirectCorrelations(DirectCorrelations);
  
index 3710c04484dc9ae4e53cb1197de5eefd38ae2bcd..3ab0377306b182ddfea943eb5fa41ddc1a3a970f 100644 (file)
@@ -99,6 +99,17 @@ ClassImp(AliFlowAnalysisWithLYZEventPlane)
  }
  
 
+//-----------------------------------------------------------------------
+
+void AliFlowAnalysisWithLYZEventPlane::WriteHistograms(TString* outputFileName)
+{
+ //store the final results in output .root file
+
+  TFile *output = new TFile(outputFileName->Data(),"RECREATE");
+  output->WriteObject(fHistList, "cobjLYZEP","SingleKey");
+  delete output;
+}
+
 //-----------------------------------------------------------------------
 void AliFlowAnalysisWithLYZEventPlane::Init() {
 
index e6b0b7cd5d26192f0ba1e2351cae16f77ee5331b..29d9eed214a31e9f9ac47f24e136bc85832745e0 100644 (file)
@@ -35,6 +35,7 @@ class AliFlowAnalysisWithLYZEventPlane {
   virtual void   Init();
   virtual void   Make(AliFlowEventSimple* fEvent, AliFlowLYZEventPlane* fLYZEP);
   virtual void   Finish();
+  void           WriteHistograms(TString* outputFileName);
 
   void      SetEventNumber(Int_t n)      { this->fEventNumber = n; }
   Int_t     GetEventNumber() const       { return this->fEventNumber; }
index 1412a2a5a6861162649314a4e3f089b266e07847..1273cdc34f5e26c97da441bdca0efbefa356c7fe 100644 (file)
@@ -35,6 +35,7 @@
 #include "TProfile.h"
 #include "TProfile2D.h" 
 #include "TProfile3D.h"
+#include "TMath.h"
 #include "AliFlowEventSimple.h"
 #include "AliFlowTrackSimple.h"
 #include "AliFlowAnalysisWithQCumulants.h"
@@ -72,15 +73,42 @@ AliFlowAnalysisWithQCumulants::AliFlowAnalysisWithQCumulants():
  fQCorrelations(NULL),
  fQProduct(NULL),
  fDirectCorrelations(NULL),
- fReq1n(NULL),
- fImq1n(NULL),
- fReq2n(NULL),
- fImq2n(NULL),
- f2PerBin1n1n(NULL),
- f2PerBin2n2n(NULL),
- f3PerBin2n1n1n(NULL),
- f3PerBin1n1n2n(NULL),
- f4PerBin1n1n1n1n(NULL),
+ fPtReq1nRP(NULL),
+ fPtImq1nRP(NULL),
+ fPtReq2nRP(NULL),
+ fPtImq2nRP(NULL),
+ f2PerPtBin1n1nRP(NULL),
+ f2PerPtBin2n2nRP(NULL),
+ f3PerPtBin2n1n1nRP(NULL),
+ f3PerPtBin1n1n2nRP(NULL),
+ f4PerPtBin1n1n1n1nRP(NULL),
+ fEtaReq1nRP(NULL),
+ fEtaImq1nRP(NULL),
+ fEtaReq2nRP(NULL),
+ fEtaImq2nRP(NULL),
+ f2PerEtaBin1n1nRP(NULL),
+ f2PerEtaBin2n2nRP(NULL),
+ f3PerEtaBin2n1n1nRP(NULL),
+ f3PerEtaBin1n1n2nRP(NULL),
+ f4PerEtaBin1n1n1n1nRP(NULL),
+ fPtReq1nPOI(NULL),
+ fPtImq1nPOI(NULL),
+ fPtReq2nPOI(NULL),
+ fPtImq2nPOI(NULL),
+ f2PerPtBin1n1nPOI(NULL),
+ f2PerPtBin2n2nPOI(NULL),
+ f3PerPtBin2n1n1nPOI(NULL),
+ f3PerPtBin1n1n2nPOI(NULL),
+ f4PerPtBin1n1n1n1nPOI(NULL),
+ fEtaReq1nPOI(NULL),
+ fEtaImq1nPOI(NULL),
+ fEtaReq2nPOI(NULL),
+ fEtaImq2nPOI(NULL),
+ f2PerEtaBin1n1nPOI(NULL),
+ f2PerEtaBin2n2nPOI(NULL),
+ f3PerEtaBin2n1n1nPOI(NULL),
+ f3PerEtaBin1n1n2nPOI(NULL),
+ f4PerEtaBin1n1n1n1nPOI(NULL), 
  fCommonHists2nd(NULL),
  fCommonHists4th(NULL),
  fCommonHists6th(NULL),
@@ -95,7 +123,10 @@ AliFlowAnalysisWithQCumulants::AliFlowAnalysisWithQCumulants():
  f8pDistribution(NULL),
  fnBinsPt(0),
  fPtMin(0),
- fPtMax(0)
+ fPtMax(0),
+ fnBinsEta(0),
+ fEtaMin(0),
+ fEtaMax(0)
 {
  //constructor 
  fHistList = new TList(); 
@@ -104,6 +135,9 @@ AliFlowAnalysisWithQCumulants::AliFlowAnalysisWithQCumulants():
  fPtMin   = AliFlowCommonConstants::GetPtMin();             
  fPtMax   = AliFlowCommonConstants::GetPtMax();
  
+ fnBinsEta = AliFlowCommonConstants::GetNbinsEta();
+ fEtaMin   = AliFlowCommonConstants::GetEtaMin();           
+ fEtaMax   = AliFlowCommonConstants::GetEtaMax();
 }
 
 AliFlowAnalysisWithQCumulants::~AliFlowAnalysisWithQCumulants()
@@ -117,7 +151,7 @@ AliFlowAnalysisWithQCumulants::~AliFlowAnalysisWithQCumulants()
 void AliFlowAnalysisWithQCumulants::CreateOutputObjects()
 {
  //various output histograms
-
  //avarage multiplicity 
  fAvMultIntFlowQC = new TProfile("fAvMultIntFlowQC","Average Multiplicity",1,0,1,"s");
  fAvMultIntFlowQC->SetXTitle("");
@@ -239,59 +273,221 @@ void AliFlowAnalysisWithQCumulants::CreateOutputObjects()
  fDirectCorrelations->SetYTitle("correlations");
  fHistList->Add(fDirectCorrelations);
  
- //fReq1n
- fReq1n = new TProfile("fReq1n","Re[q_n]",fnBinsPt,fPtMin,fPtMax,"s");
- fReq1n->SetXTitle("p_{t} [GeV]");
- fReq1n->SetYTitle("Re[q_n]");
- //fHistList->Add(fReq1n);
- //fImq1n
- fImq1n = new TProfile("fImq1n","Im[q_n]",fnBinsPt,fPtMin,fPtMax,"s");
- fImq1n->SetXTitle("p_{t} [GeV]");
- fImq1n->SetYTitle("Im[q_n]");
- //fHistList->Add(fImq1n);
- //fReq2n
- fReq2n = new TProfile("fReq2n","Re[q_2n]",fnBinsPt,fPtMin,fPtMax,"s");
- fReq2n->SetXTitle("p_{t} [GeV]");
- fReq2n->SetYTitle("Im[D]");
- //fHistList->Add(fReq2n);
- //fImq2n
- fImq2n = new TProfile("fImq2n","Im[q_2n]",fnBinsPt,fPtMin,fPtMax,"s");
- fImq2n->SetXTitle("p_{t} [GeV]");
- fImq2n->SetYTitle("Im[q_2n]");
- //fHistList->Add(fImq2n);
- //f2PerBin1n1n
- f2PerBin1n1n = new TProfile("f2PerBin1n1n","<2'>_{n|n}",fnBinsPt,fPtMin,fPtMax,"s");
- f2PerBin1n1n->SetXTitle("p_{t} [GeV]");
- //f2PerBin1n1n->SetYTitle("<2'>_{n|n}");
- fHistList->Add(f2PerBin1n1n);
- //f2PerBin2n2n
- f2PerBin2n2n = new TProfile("f2PerBin2n2n","<2'>_{2n|2n}",fnBinsPt,fPtMin,fPtMax,"s");
- f2PerBin2n2n->SetXTitle("p_{t} [GeV]");
- //f2PerBin2n2n->SetYTitle("<2'>_{2n|2n}");
- fHistList->Add(f2PerBin2n2n);
- //f3PerBin2n1n1n
- f3PerBin2n1n1n = new TProfile("f3PerBin2n1n1n","<3'>_{2n|n,n}",fnBinsPt,fPtMin,fPtMax,"s");
- f3PerBin2n1n1n->SetXTitle("p_{t} [GeV]");
- //f3PerBin2n1n1n->SetYTitle("<3'>_{2n|n,n}");
- fHistList->Add(f3PerBin2n1n1n);
- //f3PerBin1n1n2n
- f3PerBin1n1n2n = new TProfile("f3PerBin1n1n2n","<3'>_{n,n|2n}",fnBinsPt,fPtMin,fPtMax,"s");
- f3PerBin1n1n2n->SetXTitle("p_{t} [GeV]");
- //f3PerBin1n1n2n->SetYTitle("<3'>_{n,n|2n}");
- fHistList->Add(f3PerBin1n1n2n);
- //f4PerBin1n1n1n1n
- f4PerBin1n1n1n1n = new TProfile("f4PerBin1n1n1n1n","<4'>_{n,n|n,n}",fnBinsPt,fPtMin,fPtMax,"s");
- f4PerBin1n1n1n1n->SetXTitle("p_{t} [GeV]");
- //f4PerBin1n1n1n1n->SetYTitle("<4'>_{n,n|n,n}");
- fHistList->Add(f4PerBin1n1n1n1n);
+ //fPtReq1nRP
+ fPtReq1nRP = new TProfile("fPtReq1nRP","Re[q_n]",fnBinsPt,fPtMin,fPtMax,"s");
+ fPtReq1nRP->SetXTitle("p_{t} [GeV]");
+ fPtReq1nRP->SetYTitle("Re[q_n]");
+ //fHistList->Add(fPtReq1nRP);
+ //fPtImq1nRP
+ fPtImq1nRP = new TProfile("fPtImq1nRP","Im[q_n]",fnBinsPt,fPtMin,fPtMax,"s");
+ fPtImq1nRP->SetXTitle("p_{t} [GeV]");
+ fPtImq1nRP->SetYTitle("Im[q_n]");
+ //fHistList->Add(fPtImq1nRP);
+ //fPtReq2nRP
+ fPtReq2nRP = new TProfile("fPtReq2nRP","Re[q_2n]",fnBinsPt,fPtMin,fPtMax,"s");
+ fPtReq2nRP->SetXTitle("p_{t} [GeV]");
+ fPtReq2nRP->SetYTitle("Im[D]");
+ //fHistList->Add(fPtReq2nRP);
+ //fPtImq2nRP
+ fPtImq2nRP = new TProfile("fPtImq2nRP","Im[q_2n]",fnBinsPt,fPtMin,fPtMax,"s");
+ fPtImq2nRP->SetXTitle("p_{t} [GeV]");
+ fPtImq2nRP->SetYTitle("Im[q_2n]");
+ //fHistList->Add(fPtImq2nRP);
+ //f2PerPtBin1n1nRP
+ f2PerPtBin1n1nRP = new TProfile("f2PerPtBin1n1nRP","<2'>_{n|n}",fnBinsPt,fPtMin,fPtMax,"s");
+ f2PerPtBin1n1nRP->SetXTitle("p_{t} [GeV]");
+ //f2PerPtBin1n1n->SetYTitle("<2'>_{n|n}");
+ fHistList->Add(f2PerPtBin1n1nRP);
+ //f2PerPtBin2n2nRP
+ f2PerPtBin2n2nRP = new TProfile("f2PerPtBin2n2nRP","<2'>_{2n|2n}",fnBinsPt,fPtMin,fPtMax,"s");
+ f2PerPtBin2n2nRP->SetXTitle("p_{t} [GeV]");
+ //f2PerPtBin2n2nRP->SetYTitle("<2'>_{2n|2n}");
+ fHistList->Add(f2PerPtBin2n2nRP);
+ //f3PerPtBin2n1n1nRP
+ f3PerPtBin2n1n1nRP = new TProfile("f3PerPtBin2n1n1nRP","<3'>_{2n|n,n}",fnBinsPt,fPtMin,fPtMax,"s");
+ f3PerPtBin2n1n1nRP->SetXTitle("p_{t} [GeV]");
+ //f3PerPtBin2n1n1nRP->SetYTitle("<3'>_{2n|n,n}");
+ fHistList->Add(f3PerPtBin2n1n1nRP);
+ //f3PerPtBin1n1n2nRP
+ f3PerPtBin1n1n2nRP = new TProfile("f3PerPtBin1n1n2nRP","<3'>_{n,n|2n}",fnBinsPt,fPtMin,fPtMax,"s");
+ f3PerPtBin1n1n2nRP->SetXTitle("p_{t} [GeV]");
+ //f3PerPtBin1n1n2nRP->SetYTitle("<3'>_{n,n|2n}");
+ fHistList->Add(f3PerPtBin1n1n2nRP);
+ //f4PerPtBin1n1n1n1nRP
+ f4PerPtBin1n1n1n1nRP = new TProfile("f4PerPtBin1n1n1n1nRP","<4'>_{n,n|n,n}",fnBinsPt,fPtMin,fPtMax,"s");
+ f4PerPtBin1n1n1n1nRP->SetXTitle("p_{t} [GeV]");
+ //f4PerPtBin1n1n1n1nRP->SetYTitle("<4'>_{n,n|n,n}");
+ fHistList->Add(f4PerPtBin1n1n1n1nRP);
+ //fEtaReq1nRP
+ fEtaReq1nRP = new TProfile("fEtaReq1nRP","Re[q_n]",fnBinsEta,fEtaMin,fEtaMax,"s");
+ fEtaReq1nRP->SetXTitle("#eta");
+ fEtaReq1nRP->SetYTitle("Re[q_n]");
+ fHistList->Add(fEtaReq1nRP);
+ //fEtaImq1nRP
+ fEtaImq1nRP = new TProfile("fEtaImq1nRP","Im[q_n]",fnBinsEta,fEtaMin,fEtaMax,"s");
+ fEtaImq1nRP->SetXTitle("#eta");
+ fEtaImq1nRP->SetYTitle("Im[q_n]");
+ //fHistList->Add(fEtaImq1nRP);
+ //fEtaReq2nRP
+ fEtaReq2nRP = new TProfile("fEtaReq2nRP","Re[q_2n]",fnBinsEta,fEtaMin,fEtaMax,"s");
+ fEtaReq2nRP->SetXTitle("#eta");
+ fEtaReq2nRP->SetYTitle("Im[D]");
+ //fHistList->Add(fEtaReq2nRP);
+ //fEtaImq2nRP
+ fEtaImq2nRP = new TProfile("fEtaImq2nRP","Im[q_2n]",fnBinsEta,fEtaMin,fEtaMax,"s");
+ fEtaImq2nRP->SetXTitle("#eta");
+ fEtaImq2nRP->SetYTitle("Im[q_2n]");
+ //fHistList->Add(fEtaImq2nRP);
+ //f2PerEtaBin1n1nRP
+ f2PerEtaBin1n1nRP = new TProfile("f2PerEtaBin1n1nRP","<2'>_{n|n}",fnBinsEta,fEtaMin,fEtaMax,"s");
+ f2PerEtaBin1n1nRP->SetXTitle("#eta");
+ //f2PerEtaBin1n1nRP->SetYTitle("<2'>_{n|n}");
+ fHistList->Add(f2PerEtaBin1n1nRP);
+ //f2PerEtaBin2n2nRP
+ f2PerEtaBin2n2nRP = new TProfile("f2PerEtaBin2n2nRP","<2'>_{2n|2n}",fnBinsEta,fEtaMin,fEtaMax,"s");
+ f2PerEtaBin2n2nRP->SetXTitle("#eta");
+ //f2PerEtaBin2n2nRP->SetYTitle("<2'>_{2n|2n}");
+ fHistList->Add(f2PerEtaBin2n2nRP);
+ //f3PerEtaBin2n1n1nRP
+ f3PerEtaBin2n1n1nRP = new TProfile("f3PerEtaBin2n1n1nRP","<3'>_{2n|n,n}",fnBinsEta,fEtaMin,fEtaMax,"s");
+ f3PerEtaBin2n1n1nRP->SetXTitle("#eta");
+ //f3PerEtaBin2n1n1nRP->SetYTitle("<3'>_{2n|n,n}");
+ fHistList->Add(f3PerEtaBin2n1n1nRP);
+ //f3PerEtaBin1n1n2nRP
+ f3PerEtaBin1n1n2nRP = new TProfile("f3PerEtaBin1n1n2RP","<3'>_{n,n|2n}",fnBinsEta,fEtaMin,fEtaMax,"s");
+ f3PerEtaBin1n1n2nRP->SetXTitle("#eta");
+ //f3PerEtaBin1n1n2n->SetYTitle("<3'>_{n,n|2n}");
+ fHistList->Add(f3PerEtaBin1n1n2nRP);
+ //f4PerEtaBin1n1n1n1nRP
+ f4PerEtaBin1n1n1n1nRP = new TProfile("f4PerEtaBin1n1n1n1nRP","<4'>_{n,n|n,n}",fnBinsEta,fEtaMin,fEtaMax,"s");
+ f4PerEtaBin1n1n1n1nRP->SetXTitle("#eta");
+ //f4PerEtaBin1n1n1n1nRP->SetYTitle("<4'>_{n,n|n,n}");
+ fHistList->Add(f4PerEtaBin1n1n1n1nRP);
+ //fPtReq1nPOI
+ fPtReq1nPOI = new TProfile("fPtReq1nPOI","Re[q_n]",fnBinsPt,fPtMin,fPtMax,"s");
+ fPtReq1nPOI->SetXTitle("p_{t} [GeV]");
+ fPtReq1nPOI->SetYTitle("Re[q_n]");
+ //fHistList->Add(fPtReq1nPOI);
+ //fPtImq1nPOI
+ fPtImq1nPOI = new TProfile("fPtImq1nPOI","Im[q_n]",fnBinsPt,fPtMin,fPtMax,"s");
+ fPtImq1nPOI->SetXTitle("p_{t} [GeV]");
+ fPtImq1nPOI->SetYTitle("Im[q_n]");
+ //fHistList->Add(fPtImq1nPOI);
+ //fPtReq2nPOI
+ fPtReq2nPOI = new TProfile("fPtReq2nPOI","Re[q_2n]",fnBinsPt,fPtMin,fPtMax,"s");
+ fPtReq2nPOI->SetXTitle("p_{t} [GeV]");
+ fPtReq2nPOI->SetYTitle("Im[D]");
+ //fHistList->Add(fPtReq2nPOI);
+ //fPtImq2nPOI
+ fPtImq2nPOI = new TProfile("fPtImq2nPOI","Im[q_2n]",fnBinsPt,fPtMin,fPtMax,"s");
+ fPtImq2nPOI->SetXTitle("p_{t} [GeV]");
+ fPtImq2nPOI->SetYTitle("Im[q_2n]");
+ //fHistList->Add(fPtImq2nPOI);
+ //f2PerPtBin1n1nPOI
+ f2PerPtBin1n1nPOI = new TProfile("f2PerPtBin1n1nPOI","<2'>_{n|n}",fnBinsPt,fPtMin,fPtMax,"s");
+ f2PerPtBin1n1nPOI->SetXTitle("p_{t} [GeV]");
+ //f2PerPtBin1n1n->SetYTitle("<2'>_{n|n}");
+ fHistList->Add(f2PerPtBin1n1nPOI);
+ //f2PerPtBin2n2nPOI
+ f2PerPtBin2n2nPOI = new TProfile("f2PerPtBin2n2nPOI","<2'>_{2n|2n}",fnBinsPt,fPtMin,fPtMax,"s");
+ f2PerPtBin2n2nPOI->SetXTitle("p_{t} [GeV]");
+ //f2PerPtBin2n2nPOI->SetYTitle("<2'>_{2n|2n}");
+ fHistList->Add(f2PerPtBin2n2nPOI);
+ //f3PerPtBin2n1n1nPOI
+ f3PerPtBin2n1n1nPOI = new TProfile("f3PerPtBin2n1n1nPOI","<3'>_{2n|n,n}",fnBinsPt,fPtMin,fPtMax,"s");
+ f3PerPtBin2n1n1nPOI->SetXTitle("p_{t} [GeV]");
+ //f3PerPtBin2n1n1nPOI->SetYTitle("<3'>_{2n|n,n}");
+ fHistList->Add(f3PerPtBin2n1n1nPOI);
+ //f3PerPtBin1n1n2nPOI
+ f3PerPtBin1n1n2nPOI = new TProfile("f3PerPtBin1n1n2nPOI","<3'>_{n,n|2n}",fnBinsPt,fPtMin,fPtMax,"s");
+ f3PerPtBin1n1n2nPOI->SetXTitle("p_{t} [GeV]");
+ //f3PerPtBin1n1n2nPOI->SetYTitle("<3'>_{n,n|2n}");
+ fHistList->Add(f3PerPtBin1n1n2nPOI);
+ //f4PerPtBin1n1n1n1nPOI
+ f4PerPtBin1n1n1n1nPOI = new TProfile("f4PerPtBin1n1n1n1nPOI","<4'>_{n,n|n,n}",fnBinsPt,fPtMin,fPtMax,"s");
+ f4PerPtBin1n1n1n1nPOI->SetXTitle("p_{t} [GeV]");
+ //f4PerPtBin1n1n1n1nPOI->SetYTitle("<4'>_{n,n|n,n}");
+ fHistList->Add(f4PerPtBin1n1n1n1nPOI);
+ //fEtaReq1nPOI
+ fEtaReq1nPOI = new TProfile("fEtaReq1nPOI","Re[q_n]",fnBinsEta,fEtaMin,fEtaMax,"s");
+ fEtaReq1nPOI->SetXTitle("#eta");
+ fEtaReq1nPOI->SetYTitle("Re[q_n]");
+ fHistList->Add(fEtaReq1nPOI);
+ //fEtaImq1nPOI
+ fEtaImq1nPOI = new TProfile("fEtaImq1nPOI","Im[q_n]",fnBinsEta,fEtaMin,fEtaMax,"s");
+ fEtaImq1nPOI->SetXTitle("#eta");
+ fEtaImq1nPOI->SetYTitle("Im[q_n]");
+ //fHistList->Add(fEtaImq1nPOI);
+ //fEtaReq2nPOI
+ fEtaReq2nPOI = new TProfile("fEtaReq2nPOI","Re[q_2n]",fnBinsEta,fEtaMin,fEtaMax,"s");
+ fEtaReq2nPOI->SetXTitle("#eta");
+ fEtaReq2nPOI->SetYTitle("Im[D]");
+ //fHistList->Add(fEtaReq2nPOI);
+ //fEtaImq2nPOI
+ fEtaImq2nPOI = new TProfile("fEtaImq2nPOI","Im[q_2n]",fnBinsEta,fEtaMin,fEtaMax,"s");
+ fEtaImq2nPOI->SetXTitle("#eta");
+ fEtaImq2nPOI->SetYTitle("Im[q_2n]");
+ //fHistList->Add(fEtaImq2nPOI);
+ //f2PerEtaBin1n1nPOI
+ f2PerEtaBin1n1nPOI = new TProfile("f2PerEtaBin1n1nPOI","<2'>_{n|n}",fnBinsEta,fEtaMin,fEtaMax,"s");
+ f2PerEtaBin1n1nPOI->SetXTitle("#eta");
+ //f2PerEtaBin1n1nPOI->SetYTitle("<2'>_{n|n}");
+ fHistList->Add(f2PerEtaBin1n1nPOI);
+ //f2PerEtaBin2n2nPOI
+ f2PerEtaBin2n2nPOI = new TProfile("f2PerEtaBin2n2nPOI","<2'>_{2n|2n}",fnBinsEta,fEtaMin,fEtaMax,"s");
+ f2PerEtaBin2n2nPOI->SetXTitle("#eta");
+ //f2PerEtaBin2n2nPOI->SetYTitle("<2'>_{2n|2n}");
+ fHistList->Add(f2PerEtaBin2n2nPOI);
+ //f3PerEtaBin2n1n1nPOI
+ f3PerEtaBin2n1n1nPOI = new TProfile("f3PerEtaBin2n1n1nPOI","<3'>_{2n|n,n}",fnBinsEta,fEtaMin,fEtaMax,"s");
+ f3PerEtaBin2n1n1nPOI->SetXTitle("#eta");
+ //f3PerEtaBin2n1n1nPOI->SetYTitle("<3'>_{2n|n,n}");
+ fHistList->Add(f3PerEtaBin2n1n1nPOI);
+ //f3PerEtaBin1n1n2nPOI
+ f3PerEtaBin1n1n2nPOI = new TProfile("f3PerEtaBin1n1n2POI","<3'>_{n,n|2n}",fnBinsEta,fEtaMin,fEtaMax,"s");
+ f3PerEtaBin1n1n2nPOI->SetXTitle("#eta");
+ //f3PerEtaBin1n1n2n->SetYTitle("<3'>_{n,n|2n}");
+ fHistList->Add(f3PerEtaBin1n1n2nPOI);
+ //f4PerEtaBin1n1n1n1nPOI
+ f4PerEtaBin1n1n1n1nPOI = new TProfile("f4PerEtaBin1n1n1n1nPOI","<4'>_{n,n|n,n}",fnBinsEta,fEtaMin,fEtaMax,"s");
+ f4PerEtaBin1n1n1n1nPOI->SetXTitle("#eta");
+ //f4PerEtaBin1n1n1n1nPOI->SetYTitle("<4'>_{n,n|n,n}");
+ fHistList->Add(f4PerEtaBin1n1n1n1nPOI);
  
  //common control histogram (2nd order)
  fCommonHists2nd = new AliFlowCommonHist("AliFlowCommonHist2ndOrderQC");
@@ -355,11 +551,11 @@ void AliFlowAnalysisWithQCumulants::CreateOutputObjects()
 
 void AliFlowAnalysisWithQCumulants::Make(AliFlowEventSimple* anEvent)
 {
- //running over data     
+ //running over data         
           
  //get the total multiplicity of event:
- Int_t nPrim = anEvent->NumberOfTracks();//line needed only for nested loops
- cout<<"nPrim = "<<nPrim<<endl;
//Int_t nPrim = anEvent->NumberOfTracks();//line needed only for nested loops
//cout<<"nPrim = "<<nPrim<<endl;
 
  //if(nPrim>8&&nPrim<12)//line needed only for nested loops  
  //{                    //line needed only for nested loops
@@ -371,29 +567,29 @@ void AliFlowAnalysisWithQCumulants::Make(AliFlowEventSimple* anEvent)
  
  //---------------------------------------------------------------------------------------------------------
  //Q-vectors of an event evaluated in harmonics n, 2n, 3n and 4n:
- AliFlowVector xQvector1n, xQvector2n, xQvector3n, xQvector4n;
+ AliFlowVector afvQvector1n, afvQvector2n, afvQvector3n, afvQvector4n;
  
xQvector1n.Set(0.,0.);
xQvector1n.SetMult(0);
xQvector1n=anEvent->GetQ(1*n); 
afvQvector1n.Set(0.,0.);
afvQvector1n.SetMult(0);
afvQvector1n=anEvent->GetQ(1*n); 
  
xQvector2n.Set(0.,0.);
xQvector2n.SetMult(0);
xQvector2n=anEvent->GetQ(2*n);                          
afvQvector2n.Set(0.,0.);
afvQvector2n.SetMult(0);
afvQvector2n=anEvent->GetQ(2*n);                          
  
xQvector3n.Set(0.,0.);
xQvector3n.SetMult(0);
xQvector3n=anEvent->GetQ(3*n);       
afvQvector3n.Set(0.,0.);
afvQvector3n.SetMult(0);
afvQvector3n=anEvent->GetQ(3*n);       
  
xQvector4n.Set(0.,0.);
xQvector4n.SetMult(0);
xQvector4n=anEvent->GetQ(4*n);       
afvQvector4n.Set(0.,0.);
afvQvector4n.SetMult(0);
afvQvector4n=anEvent->GetQ(4*n);       
  //---------------------------------------------------------------------------------------------------------
  
  //multiplicity (to be improved, because I already have nEventNSelTracksIntFlow and nPrim)
- Double_t xMult = xQvector1n.GetMult();
+ Double_t dMult = afvQvector1n.GetMult();
  
- fAvMultIntFlowQC->Fill(0.,xMult,1.);
+ fAvMultIntFlowQC->Fill(0.,dMult,1.);
  
  //---------------------------------------------------------------------------------------------------------
  //
@@ -401,41 +597,41 @@ void AliFlowAnalysisWithQCumulants::Make(AliFlowEventSimple* anEvent)
  //                                          **** Q-vectors ****
  //                                          *******************
  //
- Double_t reQ2nQ1nstarQ1nstar = pow(xQvector1n.X(),2.)*xQvector2n.X()+2.*xQvector1n.X()*xQvector1n.Y()*xQvector2n.Y()-pow(xQvector1n.Y(),2.)*xQvector2n.X();//Re[Q_{2n} Q_{n}^* Q_{n}^*]
+ Double_t reQ2nQ1nstarQ1nstar = pow(afvQvector1n.X(),2.)*afvQvector2n.X()+2.*afvQvector1n.X()*afvQvector1n.Y()*afvQvector2n.Y()-pow(afvQvector1n.Y(),2.)*afvQvector2n.X();//Re[Q_{2n} Q_{n}^* Q_{n}^*]
  //Double_t imQ2nQ1nstarQ1nstar = pow(Qvector1n.X(),2.)*Qvector2n.Y()-2.*Qvector1n.X()*Qvector1n.Y()*Qvector2n.X()-pow(Qvector1n.Y(),2.)*Qvector2n.Y();//Im[Q_{2n} Q_{n}^* Q_{n}^*]
  Double_t reQ1nQ1nQ2nstar = reQ2nQ1nstarQ1nstar;//Re[Q_{n} Q_{n} Q_{2n}^*] = Re[Q_{2n} Q_{n}^* Q_{n}^*]
- Double_t reQ3nQ1nQ2nstarQ2nstar = (pow(xQvector2n.X(),2.)-pow(xQvector2n.Y(),2.))*(xQvector3n.X()*xQvector1n.X()-xQvector3n.Y()*xQvector1n.Y())+2.*xQvector2n.X()*xQvector2n.Y()*(xQvector3n.X()*xQvector1n.Y()+xQvector3n.Y()*xQvector1n.X());
+ Double_t reQ3nQ1nQ2nstarQ2nstar = (pow(afvQvector2n.X(),2.)-pow(afvQvector2n.Y(),2.))*(afvQvector3n.X()*afvQvector1n.X()-afvQvector3n.Y()*afvQvector1n.Y())+2.*afvQvector2n.X()*afvQvector2n.Y()*(afvQvector3n.X()*afvQvector1n.Y()+afvQvector3n.Y()*afvQvector1n.X());
  //Double_t imQ3nQ1nQ2nstarQ2nstar = calculate and implement this (deleteMe) 
  Double_t reQ2nQ2nQ3nstarQ1nstar = reQ3nQ1nQ2nstarQ2nstar;
- Double_t reQ4nQ2nstarQ2nstar = pow(xQvector2n.X(),2.)*xQvector4n.X()+2.*xQvector2n.X()*xQvector2n.Y()*xQvector4n.Y()-pow(xQvector2n.Y(),2.)*xQvector4n.X();//Re[Q_{4n} Q_{2n}^* Q_{2n}^*]
+ Double_t reQ4nQ2nstarQ2nstar = pow(afvQvector2n.X(),2.)*afvQvector4n.X()+2.*afvQvector2n.X()*afvQvector2n.Y()*afvQvector4n.Y()-pow(afvQvector2n.Y(),2.)*afvQvector4n.X();//Re[Q_{4n} Q_{2n}^* Q_{2n}^*]
  //Double_t imQ4nQ2nstarQ2nstar = calculate and implement this (deleteMe)
  Double_t reQ2nQ2nQ4nstar = reQ4nQ2nstarQ2nstar;
- Double_t reQ4nQ3nstarQ1nstar = xQvector4n.X()*(xQvector3n.X()*xQvector1n.X()-xQvector3n.Y()*xQvector1n.Y())+xQvector4n.Y()*(xQvector3n.X()*xQvector1n.Y()+xQvector3n.Y()*xQvector1n.X());//Re[Q_{4n} Q_{3n}^* Q_{n}^*]
+ Double_t reQ4nQ3nstarQ1nstar = afvQvector4n.X()*(afvQvector3n.X()*afvQvector1n.X()-afvQvector3n.Y()*afvQvector1n.Y())+afvQvector4n.Y()*(afvQvector3n.X()*afvQvector1n.Y()+afvQvector3n.Y()*afvQvector1n.X());//Re[Q_{4n} Q_{3n}^* Q_{n}^*]
  Double_t reQ3nQ1nQ4nstar = reQ4nQ3nstarQ1nstar;//Re[Q_{3n} Q_{n} Q_{4n}^*] = Re[Q_{4n} Q_{3n}^* Q_{n}^*]
  //Double_t imQ4nQ3nstarQ1nstar = calculate and implement this (deleteMe)
- Double_t reQ3nQ2nstarQ1nstar = xQvector3n.X()*xQvector2n.X()*xQvector1n.X()-xQvector3n.X()*xQvector2n.Y()*xQvector1n.Y()+xQvector3n.Y()*xQvector2n.X()*xQvector1n.Y()+xQvector3n.Y()*xQvector2n.Y()*xQvector1n.X();//Re[Q_{3n} Q_{2n}^* Q_{n}^*]
+ Double_t reQ3nQ2nstarQ1nstar = afvQvector3n.X()*afvQvector2n.X()*afvQvector1n.X()-afvQvector3n.X()*afvQvector2n.Y()*afvQvector1n.Y()+afvQvector3n.Y()*afvQvector2n.X()*afvQvector1n.Y()+afvQvector3n.Y()*afvQvector2n.Y()*afvQvector1n.X();//Re[Q_{3n} Q_{2n}^* Q_{n}^*]
  Double_t reQ2nQ1nQ3nstar = reQ3nQ2nstarQ1nstar;//Re[Q_{2n} Q_{n} Q_{3n}^*] = Re[Q_{3n} Q_{2n}^* Q_{n}^*]
  //Double_t imQ3nQ2nstarQ1nstar; //calculate and implement this (deleteMe)
- Double_t reQ3nQ1nstarQ1nstarQ1nstar = xQvector3n.X()*pow(xQvector1n.X(),3)-3.*xQvector1n.X()*xQvector3n.X()*pow(xQvector1n.Y(),2)+3.*xQvector1n.Y()*xQvector3n.Y()*pow(xQvector1n.X(),2)-xQvector3n.Y()*pow(xQvector1n.Y(),3);//Re[Q_{3n} Q_{n}^* Q_{n}^* Q_{n}^*]
+ Double_t reQ3nQ1nstarQ1nstarQ1nstar = afvQvector3n.X()*pow(afvQvector1n.X(),3)-3.*afvQvector1n.X()*afvQvector3n.X()*pow(afvQvector1n.Y(),2)+3.*afvQvector1n.Y()*afvQvector3n.Y()*pow(afvQvector1n.X(),2)-afvQvector3n.Y()*pow(afvQvector1n.Y(),3);//Re[Q_{3n} Q_{n}^* Q_{n}^* Q_{n}^*]
  //Double_t imQ3nQ1nstarQ1nstarQ1nstar; //calculate and implement this (deleteMe)
- Double_t xQ2nQ1nQ2nstarQ1nstar = pow(xQvector2n.Mod()*xQvector1n.Mod(),2);//|Q_{2n}|^2 |Q_{n}|^2
- Double_t reQ4nQ2nstarQ1nstarQ1nstar = (xQvector4n.X()*xQvector2n.X()+xQvector4n.Y()*xQvector2n.Y())*(pow(xQvector1n.X(),2)-pow(xQvector1n.Y(),2))+2.*xQvector1n.X()*xQvector1n.Y()*(xQvector4n.Y()*xQvector2n.X()-xQvector4n.X()*xQvector2n.Y());//Re[Q_{4n} Q_{2n}^* Q_{n}^* Q_{n}^*] 
+ Double_t xQ2nQ1nQ2nstarQ1nstar = pow(afvQvector2n.Mod()*afvQvector1n.Mod(),2);//|Q_{2n}|^2 |Q_{n}|^2
+ Double_t reQ4nQ2nstarQ1nstarQ1nstar = (afvQvector4n.X()*afvQvector2n.X()+afvQvector4n.Y()*afvQvector2n.Y())*(pow(afvQvector1n.X(),2)-pow(afvQvector1n.Y(),2))+2.*afvQvector1n.X()*afvQvector1n.Y()*(afvQvector4n.Y()*afvQvector2n.X()-afvQvector4n.X()*afvQvector2n.Y());//Re[Q_{4n} Q_{2n}^* Q_{n}^* Q_{n}^*] 
  //Double_t imQ4nQ2nstarQ1nstarQ1nstar; //calculate and implement this (deleteMe)
- Double_t reQ2nQ1nQ1nstarQ1nstarQ1nstar = (xQvector2n.X()*xQvector1n.X()-xQvector2n.Y()*xQvector1n.Y())*(pow(xQvector1n.X(),3)-3.*xQvector1n.X()*pow(xQvector1n.Y(),2))+(xQvector2n.X()*xQvector1n.Y()+xQvector1n.X()*xQvector2n.Y())*(3.*xQvector1n.Y()*pow(xQvector1n.X(),2)-pow(xQvector1n.Y(),3));//Re[Q_{2n} Q_{n} Q_{n}^* Q_{n}^* Q_{n}^*]
+ Double_t reQ2nQ1nQ1nstarQ1nstarQ1nstar = (afvQvector2n.X()*afvQvector1n.X()-afvQvector2n.Y()*afvQvector1n.Y())*(pow(afvQvector1n.X(),3)-3.*afvQvector1n.X()*pow(afvQvector1n.Y(),2))+(afvQvector2n.X()*afvQvector1n.Y()+afvQvector1n.X()*afvQvector2n.Y())*(3.*afvQvector1n.Y()*pow(afvQvector1n.X(),2)-pow(afvQvector1n.Y(),3));//Re[Q_{2n} Q_{n} Q_{n}^* Q_{n}^* Q_{n}^*]
  //Double_t imQ2nQ1nQ1nstarQ1nstarQ1nstar; //calculate and implement this (deleteMe)
- Double_t reQ2nQ2nQ2nstarQ1nstarQ1nstar = pow(xQvector2n.Mod(),2.)*(xQvector2n.X()*(pow(xQvector1n.X(),2.)-pow(xQvector1n.Y(),2.))+2.*xQvector2n.Y()*xQvector1n.X()*xQvector1n.Y());//Re[Q_{2n} Q_{2n} Q_{2n}^* Q_{n}^* Q_{n}^*]
+ Double_t reQ2nQ2nQ2nstarQ1nstarQ1nstar = pow(afvQvector2n.Mod(),2.)*(afvQvector2n.X()*(pow(afvQvector1n.X(),2.)-pow(afvQvector1n.Y(),2.))+2.*afvQvector2n.Y()*afvQvector1n.X()*afvQvector1n.Y());//Re[Q_{2n} Q_{2n} Q_{2n}^* Q_{n}^* Q_{n}^*]
  //Double_t imQ2nQ2nQ2nstarQ1nstarQ1nstar = pow(Qvector2n.Mod(),2.)*(Qvector2n.Y()*(pow(Qvector1n.X(),2.)-pow(Qvector1n.Y(),2.))-2.*Qvector2n.X()*Qvector1n.X()*Qvector1n.Y());//Im[Q_{2n} Q_{2n} Q_{2n}^* Q_{n}^* Q_{n}^*]
- Double_t reQ4nQ1nstarQ1nstarQ1nstarQ1nstar = pow(xQvector1n.X(),4.)*xQvector4n.X()-6.*pow(xQvector1n.X(),2.)*xQvector4n.X()*pow(xQvector1n.Y(),2.)+pow(xQvector1n.Y(),4.)*xQvector4n.X()+4.*pow(xQvector1n.X(),3.)*xQvector1n.Y()*xQvector4n.Y()-4.*pow(xQvector1n.Y(),3.)*xQvector1n.X()*xQvector4n.Y();//Re[Q_{4n} Q_{n}^* Q_{n}^* Q_{n}^* Q_{n}^*]
+ Double_t reQ4nQ1nstarQ1nstarQ1nstarQ1nstar = pow(afvQvector1n.X(),4.)*afvQvector4n.X()-6.*pow(afvQvector1n.X(),2.)*afvQvector4n.X()*pow(afvQvector1n.Y(),2.)+pow(afvQvector1n.Y(),4.)*afvQvector4n.X()+4.*pow(afvQvector1n.X(),3.)*afvQvector1n.Y()*afvQvector4n.Y()-4.*pow(afvQvector1n.Y(),3.)*afvQvector1n.X()*afvQvector4n.Y();//Re[Q_{4n} Q_{n}^* Q_{n}^* Q_{n}^* Q_{n}^*]
  //Double_t imQ4nQ1nstarQ1nstarQ1nstarQ1nstar = pow(Qvector1n.X(),4.)*Qvector4n.Y()-6.*pow(Qvector1n.X(),2.)*Qvector4n.Y()*pow(Qvector1n.Y(),2.)+pow(Qvector1n.Y(),4.)*Qvector4n.Y()+4.*pow(Qvector1n.Y(),3.)*Qvector1n.X()*Qvector4n.X()-4.*pow(Qvector1n.X(),3.)*Qvector1n.Y()*Qvector4n.X();//Im[Q_{4n} Q_{n}^* Q_{n}^* Q_{n}^* Q_{n}^*]
- Double_t reQ3nQ1nQ2nstarQ1nstarQ1nstar = pow(xQvector1n.Mod(),2.)*(xQvector1n.X()*xQvector2n.X()*xQvector3n.X()-xQvector3n.X()*xQvector1n.Y()*xQvector2n.Y()+xQvector2n.X()*xQvector1n.Y()*xQvector3n.Y()+xQvector1n.X()*xQvector2n.Y()*xQvector3n.Y());//Re[Q_{3n} Q_{n} Q_{2n}^* Q_{n}^* Q_{n}^*]
- //Double_t imQ3nQ1nQ2nstarQ1nstarQ1nstar = pow(xQvector1n.Mod(),2.)*(-xQvector2n.X()*xQvector3n.X()*xQvector1n.Y()-xQvector1n.X()*xQvector3n.X()*xQvector2n.Y()+xQvector1n.X()*xQvector2n.X()*xQvector3n.Y()-xQvector1n.Y()*xQvector2n.Y()*xQvector3n.Y());//Im[Q_{3n} Q_{n} Q_{2n}^* Q_{n}^* Q_{n}^*]
- Double_t reQ2nQ2nQ1nstarQ1nstarQ1nstarQ1nstar = (pow(xQvector1n.X(),2.)*xQvector2n.X()-2.*xQvector1n.X()*xQvector2n.X()*xQvector1n.Y()-xQvector2n.X()*pow(xQvector1n.Y(),2.)+xQvector2n.Y()*pow(xQvector1n.X(),2.)+2.*xQvector1n.X()*xQvector1n.Y()*xQvector2n.Y()-pow(xQvector1n.Y(),2.)*xQvector2n.Y())*(pow(xQvector1n.X(),2.)*xQvector2n.X()+2.*xQvector1n.X()*xQvector2n.X()*xQvector1n.Y()-xQvector2n.X()*pow(xQvector1n.Y(),2.)-xQvector2n.Y()*pow(xQvector1n.X(),2.)+2.*xQvector1n.X()*xQvector1n.Y()*xQvector2n.Y()+pow(xQvector1n.Y(),2.)*xQvector2n.Y());//Re[Q_{2n} Q_{2n} Q_{n}^* Q_{n}^* Q_{n}^* Q_{n}^*]
- //Double_t imQ2nQ2nQ1nstarQ1nstarQ1nstarQ1nstar = 2.*(pow(xQvector1n.X(),2.)*xQvector2n.X()-xQvector2n.X()*pow(xQvector1n.Y(),2.)+2.*xQvector1n.X()*xQvector1n.Y()*xQvector2n.Y())*(pow(xQvector1n.X(),2.)*xQvector2n.Y()-2.*xQvector1n.X()*xQvector1n.Y()*xQvector2n.X()-pow(xQvector1n.Y(),2.)*xQvector2n.Y());//Im[Q_{2n} Q_{2n} Q_{n}^* Q_{n}^* Q_{n}^* Q_{n}^*]
- Double_t reQ3nQ1nQ1nstarQ1nstarQ1nstarQ1nstar = pow(xQvector1n.Mod(),2.)*(pow(xQvector1n.X(),3.)*xQvector3n.X()-3.*xQvector1n.X()*xQvector3n.X()*pow(xQvector1n.Y(),2.)+3.*pow(xQvector1n.X(),2.)*xQvector1n.Y()*xQvector3n.Y()-pow(xQvector1n.Y(),3.)*xQvector3n.Y());//Re[Q_{3n} Q_{n} Q_{n}^* Q_{n}^* Q_{n}^* Q_{n}^*]
- //Double_t imQ3nQ1nQ1nstarQ1nstarQ1nstarQ1nstar = pow(xQvector1n.Mod(),2.)*(pow(xQvector1n.Y(),3.)*xQvector3n.X()-3.*xQvector1n.Y()*xQvector3n.X()*pow(xQvector1n.X(),2.)-3.*pow(xQvector1n.Y(),2.)*xQvector1n.X()*xQvector3n.Y()+pow(xQvector1n.X(),3.)*xQvector3n.Y());//Im[Q_{3n} Q_{n} Q_{n}^* Q_{n}^* Q_{n}^* Q_{n}^*]
- Double_t xQ2nQ1nQ1nQ2nstarQ1nstarQ1nstar = pow(xQvector2n.Mod(),2.)*pow(xQvector1n.Mod(),4.);//|Q_{2n}|^2 |Q_{n}|^4
- Double_t reQ2nQ1nQ1nQ1nstarQ1nstarQ1nstarQ1nstar = pow(xQvector1n.Mod(),4.)*(pow(xQvector1n.X(),2.)*xQvector2n.X()-xQvector2n.X()*pow(xQvector1n.Y(),2.)+2.*xQvector1n.X()*xQvector1n.Y()*xQvector2n.Y());//Re[Q_{2n} Q_{n} Q_{n} Q_{n}^* Q_{n}^* Q_{n}^* Q_{n}^*]
- //Double_t imQ2nQ1nQ1nQ1nstarQ1nstarQ1nstarQ1nstar = pow(xQvector1n.Mod(),4.)*(pow(xQvector1n.X(),2.)*xQvector2n.Y()-xQvector2n.Y()*pow(xQvector1n.Y(),2.)-2.*xQvector1n.X()*xQvector2n.X()*xQvector1n.Y());//Re[Q_{2n} Q_{n} Q_{n} Q_{n}^* Q_{n}^* Q_{n}^* Q_{n}^*]
+ Double_t reQ3nQ1nQ2nstarQ1nstarQ1nstar = pow(afvQvector1n.Mod(),2.)*(afvQvector1n.X()*afvQvector2n.X()*afvQvector3n.X()-afvQvector3n.X()*afvQvector1n.Y()*afvQvector2n.Y()+afvQvector2n.X()*afvQvector1n.Y()*afvQvector3n.Y()+afvQvector1n.X()*afvQvector2n.Y()*afvQvector3n.Y());//Re[Q_{3n} Q_{n} Q_{2n}^* Q_{n}^* Q_{n}^*]
+ //Double_t imQ3nQ1nQ2nstarQ1nstarQ1nstar = pow(afvQvector1n.Mod(),2.)*(-afvQvector2n.X()*afvQvector3n.X()*afvQvector1n.Y()-afvQvector1n.X()*afvQvector3n.X()*afvQvector2n.Y()+afvQvector1n.X()*afvQvector2n.X()*afvQvector3n.Y()-afvQvector1n.Y()*afvQvector2n.Y()*afvQvector3n.Y());//Im[Q_{3n} Q_{n} Q_{2n}^* Q_{n}^* Q_{n}^*]
+ Double_t reQ2nQ2nQ1nstarQ1nstarQ1nstarQ1nstar = (pow(afvQvector1n.X(),2.)*afvQvector2n.X()-2.*afvQvector1n.X()*afvQvector2n.X()*afvQvector1n.Y()-afvQvector2n.X()*pow(afvQvector1n.Y(),2.)+afvQvector2n.Y()*pow(afvQvector1n.X(),2.)+2.*afvQvector1n.X()*afvQvector1n.Y()*afvQvector2n.Y()-pow(afvQvector1n.Y(),2.)*afvQvector2n.Y())*(pow(afvQvector1n.X(),2.)*afvQvector2n.X()+2.*afvQvector1n.X()*afvQvector2n.X()*afvQvector1n.Y()-afvQvector2n.X()*pow(afvQvector1n.Y(),2.)-afvQvector2n.Y()*pow(afvQvector1n.X(),2.)+2.*afvQvector1n.X()*afvQvector1n.Y()*afvQvector2n.Y()+pow(afvQvector1n.Y(),2.)*afvQvector2n.Y());//Re[Q_{2n} Q_{2n} Q_{n}^* Q_{n}^* Q_{n}^* Q_{n}^*]
+ //Double_t imQ2nQ2nQ1nstarQ1nstarQ1nstarQ1nstar = 2.*(pow(afvQvector1n.X(),2.)*afvQvector2n.X()-afvQvector2n.X()*pow(afvQvector1n.Y(),2.)+2.*afvQvector1n.X()*afvQvector1n.Y()*afvQvector2n.Y())*(pow(afvQvector1n.X(),2.)*afvQvector2n.Y()-2.*afvQvector1n.X()*afvQvector1n.Y()*afvQvector2n.X()-pow(afvQvector1n.Y(),2.)*afvQvector2n.Y());//Im[Q_{2n} Q_{2n} Q_{n}^* Q_{n}^* Q_{n}^* Q_{n}^*]
+ Double_t reQ3nQ1nQ1nstarQ1nstarQ1nstarQ1nstar = pow(afvQvector1n.Mod(),2.)*(pow(afvQvector1n.X(),3.)*afvQvector3n.X()-3.*afvQvector1n.X()*afvQvector3n.X()*pow(afvQvector1n.Y(),2.)+3.*pow(afvQvector1n.X(),2.)*afvQvector1n.Y()*afvQvector3n.Y()-pow(afvQvector1n.Y(),3.)*afvQvector3n.Y());//Re[Q_{3n} Q_{n} Q_{n}^* Q_{n}^* Q_{n}^* Q_{n}^*]
+ //Double_t imQ3nQ1nQ1nstarQ1nstarQ1nstarQ1nstar = pow(afvQvector1n.Mod(),2.)*(pow(afvQvector1n.Y(),3.)*afvQvector3n.X()-3.*afvQvector1n.Y()*afvQvector3n.X()*pow(afvQvector1n.X(),2.)-3.*pow(afvQvector1n.Y(),2.)*afvQvector1n.X()*afvQvector3n.Y()+pow(afvQvector1n.X(),3.)*afvQvector3n.Y());//Im[Q_{3n} Q_{n} Q_{n}^* Q_{n}^* Q_{n}^* Q_{n}^*]
+ Double_t xQ2nQ1nQ1nQ2nstarQ1nstarQ1nstar = pow(afvQvector2n.Mod(),2.)*pow(afvQvector1n.Mod(),4.);//|Q_{2n}|^2 |Q_{n}|^4
+ Double_t reQ2nQ1nQ1nQ1nstarQ1nstarQ1nstarQ1nstar = pow(afvQvector1n.Mod(),4.)*(pow(afvQvector1n.X(),2.)*afvQvector2n.X()-afvQvector2n.X()*pow(afvQvector1n.Y(),2.)+2.*afvQvector1n.X()*afvQvector1n.Y()*afvQvector2n.Y());//Re[Q_{2n} Q_{n} Q_{n} Q_{n}^* Q_{n}^* Q_{n}^* Q_{n}^*]
+ //Double_t imQ2nQ1nQ1nQ1nstarQ1nstarQ1nstarQ1nstar = pow(afvQvector1n.Mod(),4.)*(pow(afvQvector1n.X(),2.)*afvQvector2n.Y()-afvQvector2n.Y()*pow(afvQvector1n.Y(),2.)-2.*afvQvector1n.X()*afvQvector2n.X()*afvQvector1n.Y());//Re[Q_{2n} Q_{n} Q_{n} Q_{n}^* Q_{n}^* Q_{n}^* Q_{n}^*]
  //---------------------------------------------------------------------------------------------------------
  
  //---------------------------------------------------------------------------------------------------------
@@ -490,207 +686,376 @@ void AliFlowAnalysisWithQCumulants::Make(AliFlowEventSimple* anEvent)
          
  //2-particle
  Double_t two1n1n=0., two2n2n=0., two3n3n=0., two4n4n=0.; 
- if(xMult>1)
+ if(dMult>1)
  {
   //fill the common control histogram (2nd order):
   fCommonHists2nd->FillControlHistograms(anEvent); 
  
-  two1n1n = (pow(xQvector1n.Mod(),2.)-xMult)/(xMult*(xMult-1.)); //<2>_{n|n}   = <cos(n*(phi1-phi2))>
-  two2n2n = (pow(xQvector2n.Mod(),2.)-xMult)/(xMult*(xMult-1.)); //<2>_{2n|2n} = <cos(2n*(phi1-phi2))>
-  two3n3n = (pow(xQvector3n.Mod(),2.)-xMult)/(xMult*(xMult-1.)); //<2>_{3n|3n} = <cos(3n*(phi1-phi2))>
-  two4n4n = (pow(xQvector4n.Mod(),2.)-xMult)/(xMult*(xMult-1.)); //<2>_{4n|4n} = <cos(4n*(phi1-phi2))>
+  two1n1n = (pow(afvQvector1n.Mod(),2.)-dMult)/(dMult*(dMult-1.)); //<2>_{n|n}   = <cos(n*(phi1-phi2))>
+  two2n2n = (pow(afvQvector2n.Mod(),2.)-dMult)/(dMult*(dMult-1.)); //<2>_{2n|2n} = <cos(2n*(phi1-phi2))>
+  two3n3n = (pow(afvQvector3n.Mod(),2.)-dMult)/(dMult*(dMult-1.)); //<2>_{3n|3n} = <cos(3n*(phi1-phi2))>
+  two4n4n = (pow(afvQvector4n.Mod(),2.)-dMult)/(dMult*(dMult-1.)); //<2>_{4n|4n} = <cos(4n*(phi1-phi2))>
     
-  fQCorrelations->Fill(0.,two1n1n,xMult*(xMult-1.)); 
-  fQCorrelations->Fill(1.,two2n2n,xMult*(xMult-1.)); 
-  fQCorrelations->Fill(2.,two3n3n,xMult*(xMult-1.)); 
-  fQCorrelations->Fill(3.,two4n4n,xMult*(xMult-1.)); 
+  fQCorrelations->Fill(0.,two1n1n,dMult*(dMult-1.)); 
+  fQCorrelations->Fill(1.,two2n2n,dMult*(dMult-1.)); 
+  fQCorrelations->Fill(2.,two3n3n,dMult*(dMult-1.)); 
+  fQCorrelations->Fill(3.,two4n4n,dMult*(dMult-1.)); 
   
-  f2pDistribution->Fill(two1n1n,xMult*(xMult-1.)); 
+  f2pDistribution->Fill(two1n1n,dMult*(dMult-1.)); 
  }
  
  //3-particle
  Double_t three2n1n1n=0., three3n2n1n=0., three4n2n2n=0., three4n3n1n=0.;
- if(xMult>2)
+ if(dMult>2)
  {
-  three2n1n1n = (reQ2nQ1nstarQ1nstar-2.*pow(xQvector1n.Mod(),2.)-pow(xQvector2n.Mod(),2.)+2.*xMult)/(xMult*(xMult-1.)*(xMult-2.)); //Re[<3>_{2n|n,n}] = Re[<3>_{n,n|2n}] = <cos(n*(2.*phi1-phi2-phi3))>
-  three3n2n1n = (reQ3nQ2nstarQ1nstar-pow(xQvector3n.Mod(),2.)-pow(xQvector2n.Mod(),2.)-pow(xQvector1n.Mod(),2.)+2.*xMult)/(xMult*(xMult-1.)*(xMult-2.)); //Re[<3>_{3n|2n,n}] = Re[<3>_{2n,n|3n}] = <cos(n*(3.*phi1-2.*phi2-phi3))>
-  three4n2n2n = (reQ4nQ2nstarQ2nstar-2.*pow(xQvector2n.Mod(),2.)-pow(xQvector4n.Mod(),2.)+2.*xMult)/(xMult*(xMult-1.)*(xMult-2.)); //Re[<3>_{4n|2n,2n}] = Re[<3>_{2n,2n|4n}] = <cos(n*(4.*phi1-2.*phi2-2.*phi3))>
-  three4n3n1n = (reQ4nQ3nstarQ1nstar-pow(xQvector4n.Mod(),2.)-pow(xQvector3n.Mod(),2.)-pow(xQvector1n.Mod(),2.)+2.*xMult)/(xMult*(xMult-1.)*(xMult-2.)); //Re[<3>_{4n|3n,n}] = Re[<3>_{3n,n|4n}] = <cos(n*(4.*phi1-3.*phi2-phi3))>
-  fQCorrelations->Fill(5.,three2n1n1n,xMult*(xMult-1.)*(xMult-2.)); 
-  fQCorrelations->Fill(6.,three3n2n1n,xMult*(xMult-1.)*(xMult-2.));
-  fQCorrelations->Fill(7.,three4n2n2n,xMult*(xMult-1.)*(xMult-2.)); 
-  fQCorrelations->Fill(8.,three4n3n1n,xMult*(xMult-1.)*(xMult-2.));    
+  three2n1n1n = (reQ2nQ1nstarQ1nstar-2.*pow(afvQvector1n.Mod(),2.)-pow(afvQvector2n.Mod(),2.)+2.*dMult)/(dMult*(dMult-1.)*(dMult-2.)); //Re[<3>_{2n|n,n}] = Re[<3>_{n,n|2n}] = <cos(n*(2.*phi1-phi2-phi3))>
+  three3n2n1n = (reQ3nQ2nstarQ1nstar-pow(afvQvector3n.Mod(),2.)-pow(afvQvector2n.Mod(),2.)-pow(afvQvector1n.Mod(),2.)+2.*dMult)/(dMult*(dMult-1.)*(dMult-2.)); //Re[<3>_{3n|2n,n}] = Re[<3>_{2n,n|3n}] = <cos(n*(3.*phi1-2.*phi2-phi3))>
+  three4n2n2n = (reQ4nQ2nstarQ2nstar-2.*pow(afvQvector2n.Mod(),2.)-pow(afvQvector4n.Mod(),2.)+2.*dMult)/(dMult*(dMult-1.)*(dMult-2.)); //Re[<3>_{4n|2n,2n}] = Re[<3>_{2n,2n|4n}] = <cos(n*(4.*phi1-2.*phi2-2.*phi3))>
+  three4n3n1n = (reQ4nQ3nstarQ1nstar-pow(afvQvector4n.Mod(),2.)-pow(afvQvector3n.Mod(),2.)-pow(afvQvector1n.Mod(),2.)+2.*dMult)/(dMult*(dMult-1.)*(dMult-2.)); //Re[<3>_{4n|3n,n}] = Re[<3>_{3n,n|4n}] = <cos(n*(4.*phi1-3.*phi2-phi3))>
+  fQCorrelations->Fill(5.,three2n1n1n,dMult*(dMult-1.)*(dMult-2.)); 
+  fQCorrelations->Fill(6.,three3n2n1n,dMult*(dMult-1.)*(dMult-2.));
+  fQCorrelations->Fill(7.,three4n2n2n,dMult*(dMult-1.)*(dMult-2.)); 
+  fQCorrelations->Fill(8.,three4n3n1n,dMult*(dMult-1.)*(dMult-2.));    
  }
  
  //4-particle
  Double_t four1n1n1n1n=0., four2n2n2n2n=0., four2n1n2n1n=0., four3n1n1n1n=0., four4n2n1n1n=0., four3n1n2n2n=0., four3n1n3n1n=0.;  
- if(xMult>3)
+ if(dMult>3)
  {
   //fill the common control histogram (4th order):
   fCommonHists4th->FillControlHistograms(anEvent); 
 
-  four1n1n1n1n = (2.*xMult*(xMult-3.)+pow(xQvector1n.Mod(),4.)-4.*(xMult-2.)*pow(xQvector1n.Mod(),2.)-2.*reQ2nQ1nstarQ1nstar+pow(xQvector2n.Mod(),2.))/(xMult*(xMult-1)*(xMult-2.)*(xMult-3.));//<4>_{n,n|n,n}
-  four2n2n2n2n = (2.*xMult*(xMult-3.)+pow(xQvector2n.Mod(),4.)-4.*(xMult-2.)*pow(xQvector2n.Mod(),2.)-2.*reQ4nQ2nstarQ2nstar+pow(xQvector4n.Mod(),2.))/(xMult*(xMult-1)*(xMult-2.)*(xMult-3.));//<4>_{2n,2n|2n,2n}
-  four2n1n2n1n = (xQ2nQ1nQ2nstarQ1nstar-2.*reQ3nQ2nstarQ1nstar-2.*reQ2nQ1nstarQ1nstar)/(xMult*(xMult-1.)*(xMult-2.)*(xMult-3.))-((xMult-5.)*pow(xQvector1n.Mod(),2.)+(xMult-4.)*pow(xQvector2n.Mod(),2.)-pow(xQvector3n.Mod(),2.))/(xMult*(xMult-1.)*(xMult-2.)*(xMult-3.))+(xMult-6.)/((xMult-1.)*(xMult-2.)*(xMult-3.));//Re[<4>_{2n,n|2n,n}]
-  four3n1n1n1n = (reQ3nQ1nstarQ1nstarQ1nstar-3.*reQ3nQ2nstarQ1nstar-3.*reQ2nQ1nstarQ1nstar)/(xMult*(xMult-1.)*(xMult-2.)*(xMult-3.))+(2.*pow(xQvector3n.Mod(),2.)+3.*pow(xQvector2n.Mod(),2.)+6.*pow(xQvector1n.Mod(),2.)-6.*xMult)/(xMult*(xMult-1.)*(xMult-2.)*(xMult-3.));//Re[<4>_{3n|n,n,n}]
-  four4n2n1n1n = (reQ4nQ2nstarQ1nstarQ1nstar-2.*reQ4nQ3nstarQ1nstar-reQ4nQ2nstarQ2nstar-2.*reQ3nQ2nstarQ1nstar)/(xMult*(xMult-1.)*(xMult-2.)*(xMult-3.))-(reQ2nQ1nstarQ1nstar-2.*pow(xQvector4n.Mod(),2.)-2.*pow(xQvector3n.Mod(),2.)-3.*pow(xQvector2n.Mod(),2.)-4.*pow(xQvector1n.Mod(),2.))/(xMult*(xMult-1.)*(xMult-2.)*(xMult-3.))-(6.)/((xMult-1.)*(xMult-2.)*(xMult-3.));//Re[<4>_{4n|2n,n,n}]
-  four3n1n2n2n = (reQ3nQ1nQ2nstarQ2nstar-reQ4nQ2nstarQ2nstar-reQ3nQ1nQ4nstar-2.*reQ3nQ2nstarQ1nstar)/(xMult*(xMult-1.)*(xMult-2.)*(xMult-3.))-(2.*reQ1nQ1nQ2nstar-pow(xQvector4n.Mod(),2.)-2.*pow(xQvector3n.Mod(),2.)-4.*pow(xQvector2n.Mod(),2.)-4.*pow(xQvector1n.Mod(),2.))/(xMult*(xMult-1.)*(xMult-2.)*(xMult-3.))-(6.)/((xMult-1.)*(xMult-2.)*(xMult-3.));//Re[<4>_{3n,n|2n,2n}] 
-  four3n1n3n1n = (pow(xQvector3n.Mod(),2.)*pow(xQvector1n.Mod(),2.)-2.*reQ4nQ3nstarQ1nstar-2.*reQ3nQ2nstarQ1nstar)/(xMult*(xMult-1.)*(xMult-2.)*(xMult-3.))+(pow(xQvector4n.Mod(),2.)-(xMult-4.)*pow(xQvector3n.Mod(),2.)+pow(xQvector2n.Mod(),2.)-(xMult-4.)*pow(xQvector1n.Mod(),2.))/(xMult*(xMult-1.)*(xMult-2.)*(xMult-3.))+(xMult-6.)/((xMult-1.)*(xMult-2.)*(xMult-3.));//<4>_{3n,n|3n,n}
+  four1n1n1n1n = (2.*dMult*(dMult-3.)+pow(afvQvector1n.Mod(),4.)-4.*(dMult-2.)*pow(afvQvector1n.Mod(),2.)-2.*reQ2nQ1nstarQ1nstar+pow(afvQvector2n.Mod(),2.))/(dMult*(dMult-1)*(dMult-2.)*(dMult-3.));//<4>_{n,n|n,n}
+  four2n2n2n2n = (2.*dMult*(dMult-3.)+pow(afvQvector2n.Mod(),4.)-4.*(dMult-2.)*pow(afvQvector2n.Mod(),2.)-2.*reQ4nQ2nstarQ2nstar+pow(afvQvector4n.Mod(),2.))/(dMult*(dMult-1)*(dMult-2.)*(dMult-3.));//<4>_{2n,2n|2n,2n}
+  four2n1n2n1n = (xQ2nQ1nQ2nstarQ1nstar-2.*reQ3nQ2nstarQ1nstar-2.*reQ2nQ1nstarQ1nstar)/(dMult*(dMult-1.)*(dMult-2.)*(dMult-3.))-((dMult-5.)*pow(afvQvector1n.Mod(),2.)+(dMult-4.)*pow(afvQvector2n.Mod(),2.)-pow(afvQvector3n.Mod(),2.))/(dMult*(dMult-1.)*(dMult-2.)*(dMult-3.))+(dMult-6.)/((dMult-1.)*(dMult-2.)*(dMult-3.));//Re[<4>_{2n,n|2n,n}]
+  four3n1n1n1n = (reQ3nQ1nstarQ1nstarQ1nstar-3.*reQ3nQ2nstarQ1nstar-3.*reQ2nQ1nstarQ1nstar)/(dMult*(dMult-1.)*(dMult-2.)*(dMult-3.))+(2.*pow(afvQvector3n.Mod(),2.)+3.*pow(afvQvector2n.Mod(),2.)+6.*pow(afvQvector1n.Mod(),2.)-6.*dMult)/(dMult*(dMult-1.)*(dMult-2.)*(dMult-3.));//Re[<4>_{3n|n,n,n}]
+  four4n2n1n1n = (reQ4nQ2nstarQ1nstarQ1nstar-2.*reQ4nQ3nstarQ1nstar-reQ4nQ2nstarQ2nstar-2.*reQ3nQ2nstarQ1nstar)/(dMult*(dMult-1.)*(dMult-2.)*(dMult-3.))-(reQ2nQ1nstarQ1nstar-2.*pow(afvQvector4n.Mod(),2.)-2.*pow(afvQvector3n.Mod(),2.)-3.*pow(afvQvector2n.Mod(),2.)-4.*pow(afvQvector1n.Mod(),2.))/(dMult*(dMult-1.)*(dMult-2.)*(dMult-3.))-(6.)/((dMult-1.)*(dMult-2.)*(dMult-3.));//Re[<4>_{4n|2n,n,n}]
+  four3n1n2n2n = (reQ3nQ1nQ2nstarQ2nstar-reQ4nQ2nstarQ2nstar-reQ3nQ1nQ4nstar-2.*reQ3nQ2nstarQ1nstar)/(dMult*(dMult-1.)*(dMult-2.)*(dMult-3.))-(2.*reQ1nQ1nQ2nstar-pow(afvQvector4n.Mod(),2.)-2.*pow(afvQvector3n.Mod(),2.)-4.*pow(afvQvector2n.Mod(),2.)-4.*pow(afvQvector1n.Mod(),2.))/(dMult*(dMult-1.)*(dMult-2.)*(dMult-3.))-(6.)/((dMult-1.)*(dMult-2.)*(dMult-3.));//Re[<4>_{3n,n|2n,2n}] 
+  four3n1n3n1n = (pow(afvQvector3n.Mod(),2.)*pow(afvQvector1n.Mod(),2.)-2.*reQ4nQ3nstarQ1nstar-2.*reQ3nQ2nstarQ1nstar)/(dMult*(dMult-1.)*(dMult-2.)*(dMult-3.))+(pow(afvQvector4n.Mod(),2.)-(dMult-4.)*pow(afvQvector3n.Mod(),2.)+pow(afvQvector2n.Mod(),2.)-(dMult-4.)*pow(afvQvector1n.Mod(),2.))/(dMult*(dMult-1.)*(dMult-2.)*(dMult-3.))+(dMult-6.)/((dMult-1.)*(dMult-2.)*(dMult-3.));//<4>_{3n,n|3n,n}
   //four_3n1n3n1n = Q3nQ1nQ3nstarQ1nstar/(M*(M-1.)*(M-2.)*(M-3.))-(2.*three_3n2n1n+2.*three_4n3n1n)/(M-3.)-(two_4n4n+M*two_3n3n+two_2n2n+M*two_1n1n)/((M-2.)*(M-3.))-M/((M-1.)*(M-2.)*(M-3.));//<4>_{3n,n|3n,n}
   
-  fQCorrelations->Fill(10.,four1n1n1n1n,xMult*(xMult-1.)*(xMult-2.)*(xMult-3.));
-  fQCorrelations->Fill(11.,four2n1n2n1n,xMult*(xMult-1.)*(xMult-2.)*(xMult-3.));
-  fQCorrelations->Fill(12.,four2n2n2n2n,xMult*(xMult-1.)*(xMult-2.)*(xMult-3.));
-  fQCorrelations->Fill(13.,four3n1n1n1n,xMult*(xMult-1.)*(xMult-2.)*(xMult-3.));
-  fQCorrelations->Fill(14.,four3n1n3n1n,xMult*(xMult-1.)*(xMult-2.)*(xMult-3.));
-  fQCorrelations->Fill(15.,four3n1n2n2n,xMult*(xMult-1.)*(xMult-2.)*(xMult-3.));  
-  fQCorrelations->Fill(16.,four4n2n1n1n,xMult*(xMult-1.)*(xMult-2.)*(xMult-3.)); 
+  fQCorrelations->Fill(10.,four1n1n1n1n,dMult*(dMult-1.)*(dMult-2.)*(dMult-3.));
+  fQCorrelations->Fill(11.,four2n1n2n1n,dMult*(dMult-1.)*(dMult-2.)*(dMult-3.));
+  fQCorrelations->Fill(12.,four2n2n2n2n,dMult*(dMult-1.)*(dMult-2.)*(dMult-3.));
+  fQCorrelations->Fill(13.,four3n1n1n1n,dMult*(dMult-1.)*(dMult-2.)*(dMult-3.));
+  fQCorrelations->Fill(14.,four3n1n3n1n,dMult*(dMult-1.)*(dMult-2.)*(dMult-3.));
+  fQCorrelations->Fill(15.,four3n1n2n2n,dMult*(dMult-1.)*(dMult-2.)*(dMult-3.));  
+  fQCorrelations->Fill(16.,four4n2n1n1n,dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)); 
   
-  f4pDistribution->Fill(four1n1n1n1n,xMult*(xMult-1.)*(xMult-2.)*(xMult-3.));
+  f4pDistribution->Fill(four1n1n1n1n,dMult*(dMult-1.)*(dMult-2.)*(dMult-3.));
   
-  fQProduct->Fill(0.,two1n1n*four1n1n1n1n,xMult*(xMult-1.)*xMult*(xMult-1.)*(xMult-2.)*(xMult-3.));
+  fQProduct->Fill(0.,two1n1n*four1n1n1n1n,dMult*(dMult-1.)*dMult*(dMult-1.)*(dMult-2.)*(dMult-3.));
  }
 
  //5-particle
  Double_t five2n1n1n1n1n=0., five2n2n2n1n1n=0., five3n1n2n1n1n=0., five4n1n1n1n1n=0.;
- if(xMult>4)
+ if(dMult>4)
  {
-  five2n1n1n1n1n = (reQ2nQ1nQ1nstarQ1nstarQ1nstar-reQ3nQ1nstarQ1nstarQ1nstar+6.*reQ3nQ2nstarQ1nstar)/(xMult*(xMult-1.)*(xMult-2.)*(xMult-3.)*(xMult-4.))-(reQ2nQ1nQ3nstar+3.*(xMult-6.)*reQ2nQ1nstarQ1nstar+3.*reQ1nQ1nQ2nstar)/(xMult*(xMult-1.)*(xMult-2.)*(xMult-3.)*(xMult-4.))-(2.*pow(xQvector3n.Mod(),2.)+3.*pow(xQvector2n.Mod()*xQvector1n.Mod(),2.)-3.*(xMult-4.)*pow(xQvector2n.Mod(),2.))/(xMult*(xMult-1.)*(xMult-2.)*(xMult-3.)*(xMult-4.))-3.*(pow(xQvector1n.Mod(),4.)-2.*(2*xMult-5.)*pow(xQvector1n.Mod(),2.)+2.*xMult*(xMult-4.))/(xMult*(xMult-1.)*(xMult-2.)*(xMult-3.)*(xMult-4.));//Re[<5>_{2n,n|n,n,n}]
+  five2n1n1n1n1n = (reQ2nQ1nQ1nstarQ1nstarQ1nstar-reQ3nQ1nstarQ1nstarQ1nstar+6.*reQ3nQ2nstarQ1nstar)/(dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.))-(reQ2nQ1nQ3nstar+3.*(dMult-6.)*reQ2nQ1nstarQ1nstar+3.*reQ1nQ1nQ2nstar)/(dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.))-(2.*pow(afvQvector3n.Mod(),2.)+3.*pow(afvQvector2n.Mod()*afvQvector1n.Mod(),2.)-3.*(dMult-4.)*pow(afvQvector2n.Mod(),2.))/(dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.))-3.*(pow(afvQvector1n.Mod(),4.)-2.*(2*dMult-5.)*pow(afvQvector1n.Mod(),2.)+2.*dMult*(dMult-4.))/(dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.));//Re[<5>_{2n,n|n,n,n}]
   
-  five2n2n2n1n1n = (reQ2nQ2nQ2nstarQ1nstarQ1nstar-reQ4nQ2nstarQ1nstarQ1nstar-2.*reQ2nQ2nQ3nstarQ1nstar)/(xMult*(xMult-1.)*(xMult-2.)*(xMult-3.)*(xMult-4.))+2.*(reQ4nQ2nstarQ2nstar+4.*reQ3nQ2nstarQ1nstar+reQ3nQ1nQ4nstar)/(xMult*(xMult-1.)*(xMult-2.)*(xMult-3.)*(xMult-4.))+(reQ2nQ2nQ4nstar-2.*(xMult-5.)*reQ2nQ1nstarQ1nstar+2.*reQ1nQ1nQ2nstar)/(xMult*(xMult-1.)*(xMult-2.)*(xMult-3.)*(xMult-4.))-(2.*pow(xQvector4n.Mod(),2.)+4.*pow(xQvector3n.Mod(),2.)+1.*pow(xQvector2n.Mod(),4.)-2.*(3.*xMult-10.)*pow(xQvector2n.Mod(),2.))/(xMult*(xMult-1.)*(xMult-2.)*(xMult-3.)*(xMult-4.))-(4.*pow(xQvector1n.Mod(),2.)*pow(xQvector2n.Mod(),2.)-4.*(xMult-5.)*pow(xQvector1n.Mod(),2.)+4.*xMult*(xMult-6.))/(xMult*(xMult-1.)*(xMult-2.)*(xMult-3.)*(xMult-4.));//Re[<5>_{2n,2n|2n,n,n}]  
+  five2n2n2n1n1n = (reQ2nQ2nQ2nstarQ1nstarQ1nstar-reQ4nQ2nstarQ1nstarQ1nstar-2.*reQ2nQ2nQ3nstarQ1nstar)/(dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.))+2.*(reQ4nQ2nstarQ2nstar+4.*reQ3nQ2nstarQ1nstar+reQ3nQ1nQ4nstar)/(dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.))+(reQ2nQ2nQ4nstar-2.*(dMult-5.)*reQ2nQ1nstarQ1nstar+2.*reQ1nQ1nQ2nstar)/(dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.))-(2.*pow(afvQvector4n.Mod(),2.)+4.*pow(afvQvector3n.Mod(),2.)+1.*pow(afvQvector2n.Mod(),4.)-2.*(3.*dMult-10.)*pow(afvQvector2n.Mod(),2.))/(dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.))-(4.*pow(afvQvector1n.Mod(),2.)*pow(afvQvector2n.Mod(),2.)-4.*(dMult-5.)*pow(afvQvector1n.Mod(),2.)+4.*dMult*(dMult-6.))/(dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.));//Re[<5>_{2n,2n|2n,n,n}]  
 
   //five_2n2n2n1n1n = reQ2nQ2nQ2nstarQ1nstarQ1nstar/(M*(M-1.)*(M-2.)*(M-3.)*(M-4.))-(4.*four_2n1n2n1n+2.*four_3n1n2n2n+1.*four_2n2n2n2n+four_4n2n1n1n)/(M-4.)-(2.*three_4n3n1n+three_4n2n2n+three_4n2n2n+2.*three_3n2n1n)/((M-3.)*(M-4.))-(4.*three_3n2n1n+(2.*M-1.)*three_2n1n1n+2.*three_2n1n1n)/((M-3.)*(M-4.))-(two_4n4n+2.*two_3n3n+4.*(M-1.)*two_2n2n+2.*(2.*M-1.)*two_1n1n)/((M-2.)*(M-3.)*(M-4.))-(2.*M-1.)/((M-1.)*(M-2.)*(M-3.)*(M-4.)); //OK! 
    
-  five4n1n1n1n1n = (reQ4nQ1nstarQ1nstarQ1nstarQ1nstar-6.*reQ4nQ2nstarQ1nstarQ1nstar-4.*reQ3nQ1nstarQ1nstarQ1nstar)/(xMult*(xMult-1.)*(xMult-2.)*(xMult-3.)*(xMult-4.))+(8.*reQ4nQ3nstarQ1nstar+3.*reQ4nQ2nstarQ2nstar+12.*reQ3nQ2nstarQ1nstar+12.*reQ2nQ1nstarQ1nstar)/(xMult*(xMult-1.)*(xMult-2.)*(xMult-3.)*(xMult-4.))-(6.*pow(xQvector4n.Mod(),2.)+8.*pow(xQvector3n.Mod(),2.)+12.*pow(xQvector2n.Mod(),2.)+24.*pow(xQvector1n.Mod(),2.)-24.*xMult)/(xMult*(xMult-1.)*(xMult-2.)*(xMult-3.)*(xMult-4.));//Re[<5>_{4n|n,n,n,n}] 
+  five4n1n1n1n1n = (reQ4nQ1nstarQ1nstarQ1nstarQ1nstar-6.*reQ4nQ2nstarQ1nstarQ1nstar-4.*reQ3nQ1nstarQ1nstarQ1nstar)/(dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.))+(8.*reQ4nQ3nstarQ1nstar+3.*reQ4nQ2nstarQ2nstar+12.*reQ3nQ2nstarQ1nstar+12.*reQ2nQ1nstarQ1nstar)/(dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.))-(6.*pow(afvQvector4n.Mod(),2.)+8.*pow(afvQvector3n.Mod(),2.)+12.*pow(afvQvector2n.Mod(),2.)+24.*pow(afvQvector1n.Mod(),2.)-24.*dMult)/(dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.));//Re[<5>_{4n|n,n,n,n}] 
   
   //five_4n1n1n1n1n = reQ4nQ1nstarQ1nstarQ1nstarQ1nstar/(M*(M-1.)*(M-2.)*(M-3.)*(M-4.)) -  (4.*four_3n1n1n1n+6.*four_4n2n1n1n)/(M-4.)  -  (6.*three_2n1n1n  + 12.*three_3n2n1n + 4.*three_4n3n1n + 3.*three_4n2n2n)/((M-3.)*(M-4.))  -  (4.*two_1n1n + 6.*two_2n2n + 4.*two_3n3n + 1.*two_4n4n)/((M-2.)*(M-3.)*(M-4.)) - 1./((M-1.)*(M-2.)*(M-3.)*(M-4.)); //OK!
   
-  five3n1n2n1n1n = (reQ3nQ1nQ2nstarQ1nstarQ1nstar-reQ4nQ2nstarQ1nstarQ1nstar-reQ3nQ1nstarQ1nstarQ1nstar)/(xMult*(xMult-1.)*(xMult-2.)*(xMult-3.)*(xMult-4.))-(reQ3nQ1nQ2nstarQ2nstar-3.*reQ4nQ3nstarQ1nstar-reQ4nQ2nstarQ2nstar)/(xMult*(xMult-1.)*(xMult-2.)*(xMult-3.)*(xMult-4.))-((2.*xMult-13.)*reQ3nQ2nstarQ1nstar-reQ3nQ1nQ4nstar-9.*reQ2nQ1nstarQ1nstar)/(xMult*(xMult-1.)*(xMult-2.)*(xMult-3.)*(xMult-4.))-(2.*reQ1nQ1nQ2nstar+2.*pow(xQvector4n.Mod(),2.)-2.*(xMult-5.)*pow(xQvector3n.Mod(),2.)+2.*pow(xQvector3n.Mod(),2.)*pow(xQvector1n.Mod(),2.))/(xMult*(xMult-1.)*(xMult-2.)*(xMult-3.)*(xMult-4.))+(2.*(xMult-6.)*pow(xQvector2n.Mod(),2.)-2.*pow(xQvector2n.Mod(),2.)*pow(xQvector1n.Mod(),2.)-pow(xQvector1n.Mod(),4.)+2.*(3.*xMult-11.)*pow(xQvector1n.Mod(),2.))/(xMult*(xMult-1.)*(xMult-2.)*(xMult-3.)*(xMult-4.))-4.*(xMult-6.)/((xMult-1.)*(xMult-2.)*(xMult-3.)*(xMult-4.));//Re[<5>_{3n,n|2n,n,n}] 
+  five3n1n2n1n1n = (reQ3nQ1nQ2nstarQ1nstarQ1nstar-reQ4nQ2nstarQ1nstarQ1nstar-reQ3nQ1nstarQ1nstarQ1nstar)/(dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.))-(reQ3nQ1nQ2nstarQ2nstar-3.*reQ4nQ3nstarQ1nstar-reQ4nQ2nstarQ2nstar)/(dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.))-((2.*dMult-13.)*reQ3nQ2nstarQ1nstar-reQ3nQ1nQ4nstar-9.*reQ2nQ1nstarQ1nstar)/(dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.))-(2.*reQ1nQ1nQ2nstar+2.*pow(afvQvector4n.Mod(),2.)-2.*(dMult-5.)*pow(afvQvector3n.Mod(),2.)+2.*pow(afvQvector3n.Mod(),2.)*pow(afvQvector1n.Mod(),2.))/(dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.))+(2.*(dMult-6.)*pow(afvQvector2n.Mod(),2.)-2.*pow(afvQvector2n.Mod(),2.)*pow(afvQvector1n.Mod(),2.)-pow(afvQvector1n.Mod(),4.)+2.*(3.*dMult-11.)*pow(afvQvector1n.Mod(),2.))/(dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.))-4.*(dMult-6.)/((dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.));//Re[<5>_{3n,n|2n,n,n}] 
   
-  //five3n1n2n1n1n = reQ3nQ1nQ2nstarQ1nstarQ1nstar/(xMult*(xMult-1.)*(xMult-2.)*(xMult-3.)*(xMult-4.)) -  (four4n2n1n1n+four1n1n1n1n+four3n1n1n1n+2.*four2n1n2n1n+2.*three3n2n1n+2.*four3n1n3n1n+four3n1n2n2n)/(xMult-4.)  -   (2.*three4n3n1n+three4n2n2n+6.*three3n2n1n+three4n3n1n+2.*three3n2n1n+3.*three2n1n1n+2.*three2n1n1n+4.*two1n1n+2.*two2n2n+2.*two3n3n)/((xMult-3.)*(xMult-4.))  -  (5.*two1n1n + 4.*two2n2n + 3.*two3n3n + 1.*two4n4n + 2.)/((xMult-2.)*(xMult-3.)*(xMult-4.))  - 1./((xMult-1.)*(xMult-2.)*(xMult-3.)*(xMult-4.)) ;//Re[<5>_{3n,n|2n,n,n}] //OK!
+  //five3n1n2n1n1n = reQ3nQ1nQ2nstarQ1nstarQ1nstar/(dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.)) -  (four4n2n1n1n+four1n1n1n1n+four3n1n1n1n+2.*four2n1n2n1n+2.*three3n2n1n+2.*four3n1n3n1n+four3n1n2n2n)/(dMult-4.)  -   (2.*three4n3n1n+three4n2n2n+6.*three3n2n1n+three4n3n1n+2.*three3n2n1n+3.*three2n1n1n+2.*three2n1n1n+4.*two1n1n+2.*two2n2n+2.*two3n3n)/((dMult-3.)*(dMult-4.))  -  (5.*two1n1n + 4.*two2n2n + 3.*two3n3n + 1.*two4n4n + 2.)/((dMult-2.)*(dMult-3.)*(dMult-4.))  - 1./((dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.)) ;//Re[<5>_{3n,n|2n,n,n}] //OK!
   
-  //five3n1n2n1n1n = reQ3nQ1nQ2nstarQ1nstarQ1nstar/(xMult*(xMult-1.)*(xMult-2.)*(xMult-3.)*(xMult-4.)) -  (four4n2n1n1n+four1n1n1n1n+four3n1n1n1n+2.*four2n1n2n1n+2.*four3n1n3n1n+four3n1n2n2n)/(xMult-4.)  -      (2.*three4n3n1n+three4n2n2n+2.*xMult*three3n2n1n+three4n3n1n+2.*three3n2n1n+3.*three2n1n1n+2.*three2n1n1n)/((xMult-3.)*(xMult-4.))  -  ((4.*xMult-3.)*two1n1n + 2.*xMult*two2n2n + (2.*xMult-1.)*two3n3n + two4n4n)/((xMult-2.)*(xMult-3.)*(xMult-4.))  - (2.*xMult-1.)/((xMult-1.)*(xMult-2.)*(xMult-3.)*(xMult-4.)) ;//Re[<5>_{3n,n|2n,n,n}] //OK!
+  //five3n1n2n1n1n = reQ3nQ1nQ2nstarQ1nstarQ1nstar/(dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.)) -  (four4n2n1n1n+four1n1n1n1n+four3n1n1n1n+2.*four2n1n2n1n+2.*four3n1n3n1n+four3n1n2n2n)/(dMult-4.)  -      (2.*three4n3n1n+three4n2n2n+2.*dMult*three3n2n1n+three4n3n1n+2.*three3n2n1n+3.*three2n1n1n+2.*three2n1n1n)/((dMult-3.)*(dMult-4.))  -  ((4.*dMult-3.)*two1n1n + 2.*dMult*two2n2n + (2.*dMult-1.)*two3n3n + two4n4n)/((dMult-2.)*(dMult-3.)*(dMult-4.))  - (2.*dMult-1.)/((dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.)) ;//Re[<5>_{3n,n|2n,n,n}] //OK!
    
-  fQCorrelations->Fill(18.,five2n1n1n1n1n,xMult*(xMult-1.)*(xMult-2.)*(xMult-3.)*(xMult-4.)); 
-  fQCorrelations->Fill(19.,five2n2n2n1n1n,xMult*(xMult-1.)*(xMult-2.)*(xMult-3.)*(xMult-4.));
-  fQCorrelations->Fill(20.,five3n1n2n1n1n,xMult*(xMult-1.)*(xMult-2.)*(xMult-3.)*(xMult-4.));
-  fQCorrelations->Fill(21.,five4n1n1n1n1n,xMult*(xMult-1.)*(xMult-2.)*(xMult-3.)*(xMult-4.));
+  fQCorrelations->Fill(18.,five2n1n1n1n1n,dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.)); 
+  fQCorrelations->Fill(19.,five2n2n2n1n1n,dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.));
+  fQCorrelations->Fill(20.,five3n1n2n1n1n,dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.));
+  fQCorrelations->Fill(21.,five4n1n1n1n1n,dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.));
  }
 
  //6-particle
  Double_t six1n1n1n1n1n1n=0., six2n2n1n1n1n1n=0., six3n1n1n1n1n1n=0., six2n1n1n2n1n1n=0.;
- if(xMult>5)
+ if(dMult>5)
  {
   //fill the common control histogram (6th order):
   fCommonHists6th->FillControlHistograms(anEvent); 
  
-  six1n1n1n1n1n1n = (pow(xQvector1n.Mod(),6.)+9.*xQ2nQ1nQ2nstarQ1nstar-6.*reQ2nQ1nQ1nstarQ1nstarQ1nstar)/(xMult*(xMult-1)*(xMult-2)*(xMult-3)*(xMult-4)*(xMult-5))+4.*(reQ3nQ1nstarQ1nstarQ1nstar-3.*reQ3nQ2nstarQ1nstar)/(xMult*(xMult-1)*(xMult-2)*(xMult-3)*(xMult-4)*(xMult-5))+2.*(9.*(xMult-4.)*reQ2nQ1nstarQ1nstar+2.*pow(xQvector3n.Mod(),2.))/(xMult*(xMult-1)*(xMult-2)*(xMult-3)*(xMult-4)*(xMult-5))-9.*(pow(xQvector1n.Mod(),4.)+pow(xQvector2n.Mod(),2.))/(xMult*(xMult-1)*(xMult-2)*(xMult-3)*(xMult-5))+(18.*pow(xQvector1n.Mod(),2.))/(xMult*(xMult-1)*(xMult-3)*(xMult-4))-(6.)/((xMult-1)*(xMult-2)*(xMult-3));//<6>_{n,n,n|n,n,n}
+  six1n1n1n1n1n1n = (pow(afvQvector1n.Mod(),6.)+9.*xQ2nQ1nQ2nstarQ1nstar-6.*reQ2nQ1nQ1nstarQ1nstarQ1nstar)/(dMult*(dMult-1)*(dMult-2)*(dMult-3)*(dMult-4)*(dMult-5))+4.*(reQ3nQ1nstarQ1nstarQ1nstar-3.*reQ3nQ2nstarQ1nstar)/(dMult*(dMult-1)*(dMult-2)*(dMult-3)*(dMult-4)*(dMult-5))+2.*(9.*(dMult-4.)*reQ2nQ1nstarQ1nstar+2.*pow(afvQvector3n.Mod(),2.))/(dMult*(dMult-1)*(dMult-2)*(dMult-3)*(dMult-4)*(dMult-5))-9.*(pow(afvQvector1n.Mod(),4.)+pow(afvQvector2n.Mod(),2.))/(dMult*(dMult-1)*(dMult-2)*(dMult-3)*(dMult-5))+(18.*pow(afvQvector1n.Mod(),2.))/(dMult*(dMult-1)*(dMult-3)*(dMult-4))-(6.)/((dMult-1)*(dMult-2)*(dMult-3));//<6>_{n,n,n|n,n,n}
   
-  six2n1n1n2n1n1n = (xQ2nQ1nQ1nQ2nstarQ1nstarQ1nstar-xMult*(xMult-1.)*(xMult-2.)*(xMult-3.)*(xMult-4.)*(2.*five2n2n2n1n1n+4.*five2n1n1n1n1n+4.*five3n1n2n1n1n+4.*four2n1n2n1n+1.*four1n1n1n1n)-xMult*(xMult-1.)*(xMult-2.)*(xMult-3.)*(4.*four1n1n1n1n+4.*two1n1n+2.*three2n1n1n+2.*three2n1n1n+4.*four3n1n1n1n+8.*three2n1n1n+2.*four4n2n1n1n+4.*four2n1n2n1n+2.*two2n2n+8.*four2n1n2n1n+4.*four3n1n3n1n+8.*three3n2n1n+4.*four3n1n2n2n+4.*four1n1n1n1n+4.*four2n1n2n1n+1.*four2n2n2n2n)-xMult*(xMult-1.)*(xMult-2.)*(2.*three2n1n1n+8.*two1n1n+4.*two1n1n+2.+4.*two1n1n+4.*three2n1n1n+2.*two2n2n+4.*three2n1n1n+8.*three3n2n1n+8.*two2n2n+4.*three4n3n1n+4.*two3n3n+4.*three3n2n1n+4.*two1n1n+8.*three2n1n1n+4.*two1n1n+4.*three3n2n1n+4.*three2n1n1n+2.*two2n2n+4.*three3n2n1n+2.*three4n2n2n)-xMult*(xMult-1.)*(4.*two1n1n+4.+4.*two1n1n+2.*two2n2n+1.+4.*two1n1n+4.*two2n2n+4.*two3n3n+   1.+2.*two2n2n+1.*two4n4n)-xMult)/(xMult*(xMult-1.)*(xMult-2.)*(xMult-3.)*(xMult-4.)*(xMult-5.));//<6>_{2n,n,n|2n,n,n}
+  six2n1n1n2n1n1n = (xQ2nQ1nQ1nQ2nstarQ1nstarQ1nstar-dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.)*(2.*five2n2n2n1n1n+4.*five2n1n1n1n1n+4.*five3n1n2n1n1n+4.*four2n1n2n1n+1.*four1n1n1n1n)-dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(4.*four1n1n1n1n+4.*two1n1n+2.*three2n1n1n+2.*three2n1n1n+4.*four3n1n1n1n+8.*three2n1n1n+2.*four4n2n1n1n+4.*four2n1n2n1n+2.*two2n2n+8.*four2n1n2n1n+4.*four3n1n3n1n+8.*three3n2n1n+4.*four3n1n2n2n+4.*four1n1n1n1n+4.*four2n1n2n1n+1.*four2n2n2n2n)-dMult*(dMult-1.)*(dMult-2.)*(2.*three2n1n1n+8.*two1n1n+4.*two1n1n+2.+4.*two1n1n+4.*three2n1n1n+2.*two2n2n+4.*three2n1n1n+8.*three3n2n1n+8.*two2n2n+4.*three4n3n1n+4.*two3n3n+4.*three3n2n1n+4.*two1n1n+8.*three2n1n1n+4.*two1n1n+4.*three3n2n1n+4.*three2n1n1n+2.*two2n2n+4.*three3n2n1n+2.*three4n2n2n)-dMult*(dMult-1.)*(4.*two1n1n+4.+4.*two1n1n+2.*two2n2n+1.+4.*two1n1n+4.*two2n2n+4.*two3n3n+   1.+2.*two2n2n+1.*two4n4n)-dMult)/(dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.)*(dMult-5.));//<6>_{2n,n,n|2n,n,n}
  
-  six2n2n1n1n1n1n = (reQ2nQ2nQ1nstarQ1nstarQ1nstarQ1nstar-xMult*(xMult-1.)*(xMult-2.)*(xMult-3.)*(xMult-4.)*(five4n1n1n1n1n+8.*five2n1n1n1n1n+6.*five2n2n2n1n1n)-xMult*(xMult-1.)*(xMult-2.)*(xMult-3.)*(4.*four3n1n1n1n+6.*four4n2n1n1n+12.*three2n1n1n+12.*four1n1n1n1n+24.*four2n1n2n1n+4.*four3n1n2n2n+3.*four2n2n2n2n)-xMult*(xMult-1.)*(xMult-2.)*(6.*three2n1n1n+12.*three3n2n1n+4.*three4n3n1n+3.*three4n2n2n+8.*three2n1n1n+24.*two1n1n+12.*two2n2n+12.*three2n1n1n+8.*three3n2n1n+1.*three4n2n2n)-xMult*(xMult-1.)*(4.*two1n1n+6.*two2n2n+4.*two3n3n+1.*two4n4n+2.*two2n2n+8.*two1n1n+6.)-xMult)/(xMult*(xMult-1.)*(xMult-2.)*(xMult-3.)*(xMult-4.)*(xMult-5.));//<6>_{2n,2n,n|n,n,n}
+  six2n2n1n1n1n1n = (reQ2nQ2nQ1nstarQ1nstarQ1nstarQ1nstar-dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.)*(five4n1n1n1n1n+8.*five2n1n1n1n1n+6.*five2n2n2n1n1n)-dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(4.*four3n1n1n1n+6.*four4n2n1n1n+12.*three2n1n1n+12.*four1n1n1n1n+24.*four2n1n2n1n+4.*four3n1n2n2n+3.*four2n2n2n2n)-dMult*(dMult-1.)*(dMult-2.)*(6.*three2n1n1n+12.*three3n2n1n+4.*three4n3n1n+3.*three4n2n2n+8.*three2n1n1n+24.*two1n1n+12.*two2n2n+12.*three2n1n1n+8.*three3n2n1n+1.*three4n2n2n)-dMult*(dMult-1.)*(4.*two1n1n+6.*two2n2n+4.*two3n3n+1.*two4n4n+2.*two2n2n+8.*two1n1n+6.)-dMult)/(dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.)*(dMult-5.));//<6>_{2n,2n,n|n,n,n}
    
-  six3n1n1n1n1n1n = (reQ3nQ1nQ1nstarQ1nstarQ1nstarQ1nstar-xMult*(xMult-1.)*(xMult-2.)*(xMult-3.)*(xMult-4.)*(five4n1n1n1n1n+4.*five2n1n1n1n1n+6.*five3n1n2n1n1n+4.*four3n1n1n1n)-xMult*(xMult-1.)*(xMult-2.)*(xMult-3.)*(4.*four3n1n1n1n+6.*four4n2n1n1n+6.*four1n1n1n1n+12.*three2n1n1n+12.*four2n1n2n1n+6.*four3n1n1n1n+12.*three3n2n1n+4.*four3n1n3n1n+3.*four3n1n2n2n)-xMult*(xMult-1.)*(xMult-2.)*(6.*three2n1n1n+12.*three3n2n1n+4.*three4n3n1n+3.*three4n2n2n+4.*two1n1n+12.*two1n1n+6.*three2n1n1n+12.*three2n1n1n+4.*three3n2n1n+12.*two2n2n+4.*three3n2n1n+4.*two3n3n+1.*three4n3n1n+6.*three3n2n1n)-xMult*(xMult-1.)*(4.*two1n1n+6.*two2n2n+4.*two3n3n+1.*two4n4n+1.*two1n1n+4.+6.*two1n1n+4.*two2n2n+1.*two3n3n)-xMult)/(xMult*(xMult-1.)*(xMult-2.)*(xMult-3.)*(xMult-4.)*(xMult-5.));//<6>_{3n,n|n,n,n,n}
+  six3n1n1n1n1n1n = (reQ3nQ1nQ1nstarQ1nstarQ1nstarQ1nstar-dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.)*(five4n1n1n1n1n+4.*five2n1n1n1n1n+6.*five3n1n2n1n1n+4.*four3n1n1n1n)-dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(4.*four3n1n1n1n+6.*four4n2n1n1n+6.*four1n1n1n1n+12.*three2n1n1n+12.*four2n1n2n1n+6.*four3n1n1n1n+12.*three3n2n1n+4.*four3n1n3n1n+3.*four3n1n2n2n)-dMult*(dMult-1.)*(dMult-2.)*(6.*three2n1n1n+12.*three3n2n1n+4.*three4n3n1n+3.*three4n2n2n+4.*two1n1n+12.*two1n1n+6.*three2n1n1n+12.*three2n1n1n+4.*three3n2n1n+12.*two2n2n+4.*three3n2n1n+4.*two3n3n+1.*three4n3n1n+6.*three3n2n1n)-dMult*(dMult-1.)*(4.*two1n1n+6.*two2n2n+4.*two3n3n+1.*two4n4n+1.*two1n1n+4.+6.*two1n1n+4.*two2n2n+1.*two3n3n)-dMult)/(dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.)*(dMult-5.));//<6>_{3n,n|n,n,n,n}
    
-  fQCorrelations->Fill(23.,six1n1n1n1n1n1n,xMult*(xMult-1.)*(xMult-2.)*(xMult-3.)*(xMult-4.)*(xMult-5.)); 
-  fQCorrelations->Fill(24.,six2n1n1n2n1n1n,xMult*(xMult-1.)*(xMult-2.)*(xMult-3.)*(xMult-4.)*(xMult-5.)); 
-  fQCorrelations->Fill(25.,six2n2n1n1n1n1n,xMult*(xMult-1.)*(xMult-2.)*(xMult-3.)*(xMult-4.)*(xMult-5.));
-  fQCorrelations->Fill(26.,six3n1n1n1n1n1n,xMult*(xMult-1.)*(xMult-2.)*(xMult-3.)*(xMult-4.)*(xMult-5.)); 
+  fQCorrelations->Fill(23.,six1n1n1n1n1n1n,dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.)*(dMult-5.)); 
+  fQCorrelations->Fill(24.,six2n1n1n2n1n1n,dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.)*(dMult-5.)); 
+  fQCorrelations->Fill(25.,six2n2n1n1n1n1n,dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.)*(dMult-5.));
+  fQCorrelations->Fill(26.,six3n1n1n1n1n1n,dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.)*(dMult-5.)); 
 
-  f6pDistribution->Fill(six1n1n1n1n1n1n,xMult*(xMult-1.)*(xMult-2.)*(xMult-3.)*(xMult-4.)*(xMult-5.)); 
+  f6pDistribution->Fill(six1n1n1n1n1n1n,dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.)*(dMult-5.)); 
   
-  fQProduct->Fill(1.,two1n1n*six1n1n1n1n1n1n,xMult*(xMult-1.)*xMult*(xMult-1.)*(xMult-2.)*(xMult-3.)*(xMult-4.)*(xMult-5.));
-  fQProduct->Fill(3.,four1n1n1n1n*six1n1n1n1n1n1n,xMult*(xMult-1.)*(xMult-2.)*(xMult-3.)*xMult*(xMult-1.)*(xMult-2.)*(xMult-3.)*(xMult-4.)*(xMult-5.));
+  fQProduct->Fill(1.,two1n1n*six1n1n1n1n1n1n,dMult*(dMult-1.)*dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.)*(dMult-5.));
+  fQProduct->Fill(3.,four1n1n1n1n*six1n1n1n1n1n1n,dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.)*(dMult-5.));
  }
  
  //7-particle
  Double_t seven2n1n1n1n1n1n1n=0.;
- if(xMult>6)
+ if(dMult>6)
  {
-  seven2n1n1n1n1n1n1n = (reQ2nQ1nQ1nQ1nstarQ1nstarQ1nstarQ1nstar-xMult*(xMult-1.)*(xMult-2.)*(xMult-3.)*(xMult-4.)*(xMult-5.)*(2.*six3n1n1n1n1n1n+4.*six1n1n1n1n1n1n+1.*six2n2n1n1n1n1n+6.*six2n1n1n2n1n1n+8.*five2n1n1n1n1n)-xMult*(xMult-1.)*(xMult-2.)*(xMult-3.)*(xMult-4.)*(1.*five4n1n1n1n1n +8.*five2n1n1n1n1n+8.*four3n1n1n1n+12.*five3n1n2n1n1n+4.*five2n1n1n1n1n+3.*five2n2n2n1n1n+6.*five2n2n2n1n1n+6.*four1n1n1n1n+24.*four1n1n1n1n+12.*five2n1n1n1n1n+12.*five2n1n1n1n1n+12.*three2n1n1n+24.*four2n1n2n1n+4.*five3n1n2n1n1n+4.*five2n1n1n1n1n)-xMult*(xMult-1.)*(xMult-2.)*(xMult-3.)*(4.*four3n1n1n1n+6.*four4n2n1n1n+12.*four1n1n1n1n+24.*three2n1n1n+24.*four2n1n2n1n+12.*four3n1n1n1n+24.*three3n2n1n+8.*four3n1n3n1n+6.*four3n1n2n2n+6.*three2n1n1n+12.*four1n1n1n1n+12.*four2n1n2n1n+6.*three2n1n1n+12.*four2n1n2n1n+4.*four3n1n2n2n+3.*four2n2n2n2n+4.*four1n1n1n1n+6.*three2n1n1n+24.*two1n1n+24.*four1n1n1n1n+4.*four3n1n1n1n+24.*two1n1n+24.*three2n1n1n+12.*two2n2n+24.*three2n1n1n+12.*four2n1n2n1n+8.*three3n2n1n+8.*four2n1n2n1n+1.*four4n2n1n1n)-xMult*(xMult-1.)*(xMult-2.)*(6.*three2n1n1n+1.*three2n1n1n+8.*two1n1n+12.*three3n2n1n+24.*two1n1n+12.*three2n1n1n+4.*three2n1n1n+8.*two1n1n+4.*three4n3n1n+24.*three2n1n1n+8.*three3n2n1n+12.*two1n1n+12.*two1n1n+3.*three4n2n2n+24.*two2n2n+6.*two2n2n+12.+12.*three3n2n1n+8.*two3n3n+12.*three2n1n1n+24.*two1n1n+4.*three3n2n1n+8.*three3n2n1n+2.*three4n3n1n+12.*two1n1n+8.*three2n1n1n+4.*three2n1n1n+2.*three3n2n1n+6.*two2n2n+8.*two2n2n+1.*three4n2n2n+4.*three3n2n1n+6.*three2n1n1n)-xMult*(xMult-1.)*(4.*two1n1n+2.*two1n1n+6.*two2n2n+8.+1.*two2n2n+4.*two3n3n+12.*two1n1n+4.*two1n1n+1.*two4n4n+8.*two2n2n+6.+2.*two3n3n+4.*two1n1n+1.*two2n2n)-xMult)/(xMult*(xMult-1.)*(xMult-2.)*(xMult-3.)*(xMult-4.)*(xMult-5.)*(xMult-6.));
+  seven2n1n1n1n1n1n1n = (reQ2nQ1nQ1nQ1nstarQ1nstarQ1nstarQ1nstar-dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.)*(dMult-5.)*(2.*six3n1n1n1n1n1n+4.*six1n1n1n1n1n1n+1.*six2n2n1n1n1n1n+6.*six2n1n1n2n1n1n+8.*five2n1n1n1n1n)-dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.)*(1.*five4n1n1n1n1n +8.*five2n1n1n1n1n+8.*four3n1n1n1n+12.*five3n1n2n1n1n+4.*five2n1n1n1n1n+3.*five2n2n2n1n1n+6.*five2n2n2n1n1n+6.*four1n1n1n1n+24.*four1n1n1n1n+12.*five2n1n1n1n1n+12.*five2n1n1n1n1n+12.*three2n1n1n+24.*four2n1n2n1n+4.*five3n1n2n1n1n+4.*five2n1n1n1n1n)-dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(4.*four3n1n1n1n+6.*four4n2n1n1n+12.*four1n1n1n1n+24.*three2n1n1n+24.*four2n1n2n1n+12.*four3n1n1n1n+24.*three3n2n1n+8.*four3n1n3n1n+6.*four3n1n2n2n+6.*three2n1n1n+12.*four1n1n1n1n+12.*four2n1n2n1n+6.*three2n1n1n+12.*four2n1n2n1n+4.*four3n1n2n2n+3.*four2n2n2n2n+4.*four1n1n1n1n+6.*three2n1n1n+24.*two1n1n+24.*four1n1n1n1n+4.*four3n1n1n1n+24.*two1n1n+24.*three2n1n1n+12.*two2n2n+24.*three2n1n1n+12.*four2n1n2n1n+8.*three3n2n1n+8.*four2n1n2n1n+1.*four4n2n1n1n)-dMult*(dMult-1.)*(dMult-2.)*(6.*three2n1n1n+1.*three2n1n1n+8.*two1n1n+12.*three3n2n1n+24.*two1n1n+12.*three2n1n1n+4.*three2n1n1n+8.*two1n1n+4.*three4n3n1n+24.*three2n1n1n+8.*three3n2n1n+12.*two1n1n+12.*two1n1n+3.*three4n2n2n+24.*two2n2n+6.*two2n2n+12.+12.*three3n2n1n+8.*two3n3n+12.*three2n1n1n+24.*two1n1n+4.*three3n2n1n+8.*three3n2n1n+2.*three4n3n1n+12.*two1n1n+8.*three2n1n1n+4.*three2n1n1n+2.*three3n2n1n+6.*two2n2n+8.*two2n2n+1.*three4n2n2n+4.*three3n2n1n+6.*three2n1n1n)-dMult*(dMult-1.)*(4.*two1n1n+2.*two1n1n+6.*two2n2n+8.+1.*two2n2n+4.*two3n3n+12.*two1n1n+4.*two1n1n+1.*two4n4n+8.*two2n2n+6.+2.*two3n3n+4.*two1n1n+1.*two2n2n)-dMult)/(dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.)*(dMult-5.)*(dMult-6.));
         
-  fQCorrelations->Fill(28.,seven2n1n1n1n1n1n1n,xMult*(xMult-1.)*(xMult-2.)*(xMult-3.)*(xMult-4.)*(xMult-5.)*(xMult-6.));
+  fQCorrelations->Fill(28.,seven2n1n1n1n1n1n1n,dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.)*(dMult-5.)*(dMult-6.));
  }
  
  //8-particle
  Double_t eight1n1n1n1n1n1n1n1n=0.;
- if(xMult>7)
+ if(dMult>7)
  {
   //fill the common control histogram (8th order):
   fCommonHists8th->FillControlHistograms(anEvent); 
   
-  eight1n1n1n1n1n1n1n1n = (pow(xQvector1n.Mod(),8)-xMult*(xMult-1.)*(xMult-2.)*(xMult-3.)*(xMult-4.)*(xMult-5.)*(xMult-6.)*(12.*seven2n1n1n1n1n1n1n+16.*six1n1n1n1n1n1n)-xMult*(xMult-1.)*(xMult-2.)*(xMult-3.)*(xMult-4.)*(xMult-5.)*(8.*six3n1n1n1n1n1n+48.*six1n1n1n1n1n1n+6.*six2n2n1n1n1n1n+96.*five2n1n1n1n1n+72.*four1n1n1n1n+36.*six2n1n1n2n1n1n)-xMult*(xMult-1.)*(xMult-2.)*(xMult-3.)*(xMult-4.)*(2.*five4n1n1n1n1n+32.*five2n1n1n1n1n+36.*four1n1n1n1n+32.*four3n1n1n1n+48.*five2n1n1n1n1n+48.*five3n1n2n1n1n+144.*five2n1n1n1n1n+288.*four1n1n1n1n+36.*five2n2n2n1n1n+144.*three2n1n1n+96.*two1n1n+144.*four2n1n2n1n)-xMult*(xMult-1.)*(xMult-2.)*(xMult-3.)*(8.*four3n1n1n1n+48.*four1n1n1n1n+12.*four4n2n1n1n+96.*four2n1n2n1n+96.*three2n1n1n+72.*three2n1n1n+144.*two1n1n+16.*four3n1n3n1n+48.*four3n1n1n1n+144.*four1n1n1n1n+72.*four1n1n1n1n+96.*three3n2n1n+24.*four3n1n2n2n+144.*four2n1n2n1n+288.*two1n1n+288.*three2n1n1n+9.*four2n2n2n2n+72.*two2n2n+24.)-xMult*(xMult-1.)*(xMult-2.)*(12.*three2n1n1n+16.*two1n1n+24.*three3n2n1n+48.*three2n1n1n+96.*two1n1n+8.*three4n3n1n+32.*three3n2n1n+96.*three2n1n1n+144.*two1n1n+6.*three4n2n2n+96.*two2n2n+36.*two2n2n+72.+48.*three3n2n1n+16.*two3n3n+72.*three2n1n1n+144.*two1n1n)-xMult*(xMult-1.)*(8.*two1n1n+12.*two2n2n+16.+8.*two3n3n+48.*two1n1n+1.*two4n4n+16.*two2n2n+18.)-xMult)/(xMult*(xMult-1.)*(xMult-2.)*(xMult-3.)*(xMult-4.)*(xMult-5.)*(xMult-6.)*(xMult-7.));
+  eight1n1n1n1n1n1n1n1n = (pow(afvQvector1n.Mod(),8)-dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.)*(dMult-5.)*(dMult-6.)*(12.*seven2n1n1n1n1n1n1n+16.*six1n1n1n1n1n1n)-dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.)*(dMult-5.)*(8.*six3n1n1n1n1n1n+48.*six1n1n1n1n1n1n+6.*six2n2n1n1n1n1n+96.*five2n1n1n1n1n+72.*four1n1n1n1n+36.*six2n1n1n2n1n1n)-dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.)*(2.*five4n1n1n1n1n+32.*five2n1n1n1n1n+36.*four1n1n1n1n+32.*four3n1n1n1n+48.*five2n1n1n1n1n+48.*five3n1n2n1n1n+144.*five2n1n1n1n1n+288.*four1n1n1n1n+36.*five2n2n2n1n1n+144.*three2n1n1n+96.*two1n1n+144.*four2n1n2n1n)-dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(8.*four3n1n1n1n+48.*four1n1n1n1n+12.*four4n2n1n1n+96.*four2n1n2n1n+96.*three2n1n1n+72.*three2n1n1n+144.*two1n1n+16.*four3n1n3n1n+48.*four3n1n1n1n+144.*four1n1n1n1n+72.*four1n1n1n1n+96.*three3n2n1n+24.*four3n1n2n2n+144.*four2n1n2n1n+288.*two1n1n+288.*three2n1n1n+9.*four2n2n2n2n+72.*two2n2n+24.)-dMult*(dMult-1.)*(dMult-2.)*(12.*three2n1n1n+16.*two1n1n+24.*three3n2n1n+48.*three2n1n1n+96.*two1n1n+8.*three4n3n1n+32.*three3n2n1n+96.*three2n1n1n+144.*two1n1n+6.*three4n2n2n+96.*two2n2n+36.*two2n2n+72.+48.*three3n2n1n+16.*two3n3n+72.*three2n1n1n+144.*two1n1n)-dMult*(dMult-1.)*(8.*two1n1n+12.*two2n2n+16.+8.*two3n3n+48.*two1n1n+1.*two4n4n+16.*two2n2n+18.)-dMult)/(dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.)*(dMult-5.)*(dMult-6.)*(dMult-7.));
   
-  fQCorrelations->Fill(30.,eight1n1n1n1n1n1n1n1n,xMult*(xMult-1.)*(xMult-2.)*(xMult-3.)*(xMult-4.)*(xMult-5.)*(xMult-6.)*(xMult-7.));
+  fQCorrelations->Fill(30.,eight1n1n1n1n1n1n1n1n,dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.)*(dMult-5.)*(dMult-6.)*(dMult-7.));
  
-  f8pDistribution->Fill(eight1n1n1n1n1n1n1n1n,xMult*(xMult-1.)*(xMult-2.)*(xMult-3.)*(xMult-4.)*(xMult-5.)*(xMult-6.)*(xMult-7.));
+  f8pDistribution->Fill(eight1n1n1n1n1n1n1n1n,dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.)*(dMult-5.)*(dMult-6.)*(dMult-7.));
  } 
  //---------------------------------------------------------------------------------------------------------
  
  //--------------------------------------------------------------------------------------------------------- 
  // DIFFERENTIAL FLOW
  
- Double_t xQx  = xQvector1n.X();
- Double_t xQy  = xQvector1n.Y();
- Double_t xQ2x = xQvector2n.X();
- Double_t xQ2y = xQvector2n.Y();
-
- Double_t qx=0.,qy=0.,q2x=0.,q2y=0.,m=0.;//add comments for these variables (deleteMe)
+ Double_t dQ1nx = afvQvector1n.X();
+ Double_t dQ1ny = afvQvector1n.Y();
+ Double_t dQ2nx = afvQvector2n.X();
+ Double_t dQ2ny = afvQvector2n.Y();
  
- for(Int_t i=0;i<xMult;i++) //check if nPrim == M
+ Double_t dBinWidthPt=1.*(fPtMax-fPtMin)/fnBinsPt;
+ Double_t dBinWidthEta=1.*(fEtaMax-fEtaMin)/fnBinsEta;
+
+ //RP:
+ Double_t qxPtRP=0.,qyPtRP=0.,q2xPtRP=0.,q2yPtRP=0.,mPtRP=0.;//add comments for these variables (deleteMe)
+ Double_t qxEtaRP=0.,qyEtaRP=0.,q2xEtaRP=0.,q2yEtaRP=0.,mEtaRP=0.;//add comments for these variables (deleteMe)
+  
+ for(Int_t i=0;i<dMult;i++) //check if nPrim == M
  { 
   fTrack=anEvent->GetTrack(i);
-  if(fTrack)
+  if(fTrack && fTrack->UseForIntegratedFlow())//checking RP condition 
   {
-   fReq1n->Fill(fTrack->Pt(),cos(n*(fTrack->Phi())),1.);
-   fImq1n->Fill(fTrack->Pt(),sin(n*(fTrack->Phi())),1.);
-   fReq2n->Fill(fTrack->Pt(),cos(2.*n*(fTrack->Phi())),1.);
-   fImq2n->Fill(fTrack->Pt(),sin(2.*n*(fTrack->Phi())),1.);
+   //Pt:
+   fPtReq1nRP->Fill(fTrack->Pt(),cos(n*(fTrack->Phi())),1.);
+   fPtImq1nRP->Fill(fTrack->Pt(),sin(n*(fTrack->Phi())),1.);
+   fPtReq2nRP->Fill(fTrack->Pt(),cos(2.*n*(fTrack->Phi())),1.);
+   fPtImq2nRP->Fill(fTrack->Pt(),sin(2.*n*(fTrack->Phi())),1.);
+   //Eta:
+   fEtaReq1nRP->Fill(fTrack->Eta(),cos(n*(fTrack->Phi())),1.);
+   fEtaImq1nRP->Fill(fTrack->Eta(),sin(n*(fTrack->Phi())),1.);
+   fEtaReq2nRP->Fill(fTrack->Eta(),cos(2.*n*(fTrack->Phi())),1.);
+   fEtaImq2nRP->Fill(fTrack->Eta(),sin(2.*n*(fTrack->Phi())),1.);
   }
  } 
   
- Double_t twoDiff1n1n=0.,twoDiff2n2n=0.,threeDiff2n1n1n=0.,threeDiff1n1n2n=0.,fourDiff1n1n1n1n=0.;
+ //Pt:
+ Double_t twoDiffPt1n1nRP=0.,twoDiffPt2n2nRP=0.,threeDiffPt2n1n1nRP=0.,threeDiffPt1n1n2nRP=0.,fourDiffPt1n1n1n1nRP=0.;
  
  for(Int_t bin=1;bin<(fnBinsPt+1);bin++)//loop over pt-bins 
  { 
-  qx = (fReq1n->GetBinContent(bin))*(fReq1n->GetBinEntries(bin));
-  qy = (fImq1n->GetBinContent(bin))*(fImq1n->GetBinEntries(bin)); 
-  q2x = (fReq2n->GetBinContent(bin))*(fReq2n->GetBinEntries(bin));  
-  q2y = (fImq2n->GetBinContent(bin))*(fImq2n->GetBinEntries(bin)); 
-  m = fReq1n->GetBinEntries(bin);          
+  qxPtRP = (fPtReq1nRP->GetBinContent(bin))*(fPtReq1nRP->GetBinEntries(bin));
+  qyPtRP = (fPtImq1nRP->GetBinContent(bin))*(fPtImq1nRP->GetBinEntries(bin)); 
+  q2xPtRP = (fPtReq2nRP->GetBinContent(bin))*(fPtReq2nRP->GetBinEntries(bin));  
+  q2yPtRP = (fPtImq2nRP->GetBinContent(bin))*(fPtImq2nRP->GetBinEntries(bin)); 
+  mPtRP = fPtReq1nRP->GetBinEntries(bin);          
  
-  if(m>0&&xMult>1)
+  if(mPtRP>0&&dMult>1)
   {
-   twoDiff1n1n = (qx*xQx+qy*xQy-m)/(m*(xMult-1.));
-   f2PerBin1n1n->Fill((bin-1)*0.1,twoDiff1n1n,m*(xMult-1.));//<2'>_{n|n}
+   twoDiffPt1n1nRP = (qxPtRP*dQ1nx+qyPtRP*dQ1ny-mPtRP)/(mPtRP*(dMult-1.));
+   f2PerPtBin1n1nRP->Fill(fPtMin+(bin-1)*dBinWidthPt,twoDiffPt1n1nRP,mPtRP*(dMult-1.));//<2'>_{n|n}
    
-   twoDiff2n2n = (q2x*xQ2x+q2y*xQ2y-m)/(m*(xMult-1.));
-   f2PerBin2n2n->Fill((bin-1)*0.1,twoDiff2n2n,m*(xMult-1.));//<2'>_{2n|2n} 
+   twoDiffPt2n2nRP = (q2xPtRP*dQ2nx+q2yPtRP*dQ2ny-mPtRP)/(mPtRP*(dMult-1.));
+   f2PerPtBin2n2nRP->Fill(fPtMin+(bin-1)*dBinWidthPt,twoDiffPt2n2nRP,mPtRP*(dMult-1.));//<2'>_{2n|2n} 
   }
   
-  if(m>0&&xMult>2)
+  if(mPtRP>0&&dMult>2)
   {
-   threeDiff2n1n1n = (q2x*(xQx*xQx-xQy*xQy)+2.*q2y*xQx*xQy-2.*(qx*xQx+qy*xQy)-(q2x*xQ2x+q2y*xQ2y)+2.*m)/(m*(xMult-1.)*(xMult-2.));
-   f3PerBin2n1n1n->Fill((bin-1)*0.1,threeDiff2n1n1n,m*(xMult-1.)*(xMult-2.));//Re[<3'>_{2n|n,n}]
+   threeDiffPt2n1n1nRP = (q2xPtRP*(dQ1nx*dQ1nx-dQ1ny*dQ1ny)+2.*q2yPtRP*dQ1nx*dQ1ny-2.*(qxPtRP*dQ1nx+qyPtRP*dQ1ny)-(q2xPtRP*dQ2nx+q2yPtRP*dQ2ny)+2.*mPtRP)/(mPtRP*(dMult-1.)*(dMult-2.));
+   f3PerPtBin2n1n1nRP->Fill(fPtMin+(bin-1)*dBinWidthPt,threeDiffPt2n1n1nRP,mPtRP*(dMult-1.)*(dMult-2.));//Re[<3'>_{2n|n,n}]
    
-   threeDiff1n1n2n = (xQ2x*(qx*xQx-qy*xQy)+xQ2y*(qx*xQy+qy*xQx)-2.*(qx*xQx+qy*xQy)-(q2x*xQ2x+q2y*xQ2y)+2.*m)/(m*(xMult-1.)*(xMult-2.));
-   f3PerBin1n1n2n->Fill((bin-1)*0.1,threeDiff1n1n2n,m*(xMult-1.)*(xMult-2.));//Re[<3'>_{n,n|2n}]
+   threeDiffPt1n1n2nRP = (dQ2nx*(qxPtRP*dQ1nx-qyPtRP*dQ1ny)+dQ2ny*(qxPtRP*dQ1ny+qyPtRP*dQ1nx)-2.*(qxPtRP*dQ1nx+qyPtRP*dQ1ny)-(q2xPtRP*dQ2nx+q2yPtRP*dQ2ny)+2.*mPtRP)/(mPtRP*(dMult-1.)*(dMult-2.));
+   f3PerPtBin1n1n2nRP->Fill(fPtMin+(bin-1)*dBinWidthPt,threeDiffPt1n1n2nRP,mPtRP*(dMult-1.)*(dMult-2.));//Re[<3'>_{n,n|2n}]
   }
   
-  if(m>0&&xMult>3)
+  if(mPtRP>0&&dMult>3)
   {
-   fourDiff1n1n1n1n = ((xQx*xQx+xQy*xQy)*(qx*xQx+qy*xQy)-(q2x*(xQx*xQx-xQy*xQy)+2.*q2y*xQx*xQy)-(xQ2x*(qx*xQx-qy*xQy)+xQ2y*(qx*xQy+qy*xQx))+(q2x*xQ2x+q2y*xQ2y)-2.*(xMult-3.)*(qx*xQx+qy*xQy)-2.*m*(xQx*xQx+xQy*xQy)+2.*(xQx*qx+xQy*qy)+2.*m*(xMult-3.))/(m*(xMult-1.)*(xMult-2.)*(xMult-3.));
-   f4PerBin1n1n1n1n->Fill((bin-1)*0.1,fourDiff1n1n1n1n,m*(xMult-1.)*(xMult-2.)*(xMult-3.));//Re[<4'>_{n,n|n,n}]
+   fourDiffPt1n1n1n1nRP = ((dQ1nx*dQ1nx+dQ1ny*dQ1ny)*(qxPtRP*dQ1nx+qyPtRP*dQ1ny)-(q2xPtRP*(dQ1nx*dQ1nx-dQ1ny*dQ1ny)+2.*q2yPtRP*dQ1nx*dQ1ny)-(dQ2nx*(qxPtRP*dQ1nx-qyPtRP*dQ1ny)+dQ2ny*(qxPtRP*dQ1ny+qyPtRP*dQ1nx))+(q2xPtRP*dQ2nx+q2yPtRP*dQ2ny)-2.*(dMult-3.)*(qxPtRP*dQ1nx+qyPtRP*dQ1ny)-2.*mPtRP*(dQ1nx*dQ1nx+dQ1ny*dQ1ny)+2.*(dQ1nx*qxPtRP+dQ1ny*qyPtRP)+2.*mPtRP*(dMult-3.))/(mPtRP*(dMult-1.)*(dMult-2.)*(dMult-3.));
+   f4PerPtBin1n1n1n1nRP->Fill(fPtMin+(bin-1)*dBinWidthPt,fourDiffPt1n1n1n1nRP,mPtRP*(dMult-1.)*(dMult-2.)*(dMult-3.));//Re[<4'>_{n,n|n,n}]
   }
    
  } 
   
- fReq1n->Reset();
- fImq1n->Reset();
- fReq2n->Reset();
- fImq2n->Reset();
+ fPtReq1nRP->Reset();
+ fPtImq1nRP->Reset();
+ fPtReq2nRP->Reset();
+ fPtImq2nRP->Reset();
+ //Eta:
+ Double_t twoDiffEta1n1nRP=0.,twoDiffEta2n2nRP=0.,threeDiffEta2n1n1nRP=0.,threeDiffEta1n1n2nRP=0.,fourDiffEta1n1n1n1nRP=0.;
+ for(Int_t bin=1;bin<(fnBinsEta+1);bin++)//loop over eta-bins 
+ { 
+  qxEtaRP = (fEtaReq1nRP->GetBinContent(bin))*(fEtaReq1nRP->GetBinEntries(bin));
+  qyEtaRP = (fEtaImq1nRP->GetBinContent(bin))*(fEtaImq1nRP->GetBinEntries(bin)); 
+  q2xEtaRP = (fEtaReq2nRP->GetBinContent(bin))*(fEtaReq2nRP->GetBinEntries(bin));  
+  q2yEtaRP = (fEtaImq2nRP->GetBinContent(bin))*(fEtaImq2nRP->GetBinEntries(bin)); 
+  mEtaRP = fEtaReq1nRP->GetBinEntries(bin); 
+  
+  if(mEtaRP>0&&dMult>1)
+  {
+   twoDiffEta1n1nRP = (qxEtaRP*dQ1nx+qyEtaRP*dQ1ny-mEtaRP)/(mEtaRP*(dMult-1.));
+   f2PerEtaBin1n1nRP->Fill(fEtaMin+(bin-1)*dBinWidthEta,twoDiffEta1n1nRP,mEtaRP*(dMult-1.));//<2'>_{n|n}
+   
+   twoDiffEta2n2nRP = (q2xEtaRP*dQ2nx+q2yEtaRP*dQ2ny-mEtaRP)/(mEtaRP*(dMult-1.));
+   f2PerEtaBin2n2nRP->Fill(fEtaMin+(bin-1)*dBinWidthEta,twoDiffEta2n2nRP,mEtaRP*(dMult-1.));//<2'>_{2n|2n} 
+  }
+  
+  if(mEtaRP>0&&dMult>2)
+  {
+   threeDiffEta2n1n1nRP = (q2xEtaRP*(dQ1nx*dQ1nx-dQ1ny*dQ1ny)+2.*q2yEtaRP*dQ1nx*dQ1ny-2.*(qxEtaRP*dQ1nx+qyEtaRP*dQ1ny)-(q2xEtaRP*dQ2nx+q2yEtaRP*dQ2ny)+2.*mEtaRP)/(mEtaRP*(dMult-1.)*(dMult-2.));
+   f3PerEtaBin2n1n1nRP->Fill(fEtaMin+(bin-1)*dBinWidthEta,threeDiffEta2n1n1nRP,mEtaRP*(dMult-1.)*(dMult-2.));//Re[<3'>_{2n|n,n}]
+   
+   threeDiffEta1n1n2nRP = (dQ2nx*(qxEtaRP*dQ1nx-qyEtaRP*dQ1ny)+dQ2ny*(qxEtaRP*dQ1ny+qyEtaRP*dQ1nx)-2.*(qxEtaRP*dQ1nx+qyEtaRP*dQ1ny)-(q2xEtaRP*dQ2nx+q2yEtaRP*dQ2ny)+2.*mEtaRP)/(mEtaRP*(dMult-1.)*(dMult-2.));
+   f3PerEtaBin1n1n2nRP->Fill(fEtaMin+(bin-1)*dBinWidthEta,threeDiffEta1n1n2nRP,mEtaRP*(dMult-1.)*(dMult-2.));//Re[<3'>_{n,n|2n}]
+  }
+  
+  if(mEtaRP>0&&dMult>3)
+  {
+   fourDiffEta1n1n1n1nRP = ((dQ1nx*dQ1nx+dQ1ny*dQ1ny)*(qxEtaRP*dQ1nx+qyEtaRP*dQ1ny)-(q2xEtaRP*(dQ1nx*dQ1nx-dQ1ny*dQ1ny)+2.*q2yEtaRP*dQ1nx*dQ1ny)-(dQ2nx*(qxEtaRP*dQ1nx-qyEtaRP*dQ1ny)+dQ2ny*(qxEtaRP*dQ1ny+qyEtaRP*dQ1nx))+(q2xEtaRP*dQ2nx+q2yEtaRP*dQ2ny)-2.*(dMult-3.)*(qxEtaRP*dQ1nx+qyEtaRP*dQ1ny)-2.*mEtaRP*(dQ1nx*dQ1nx+dQ1ny*dQ1ny)+2.*(dQ1nx*qxEtaRP+dQ1ny*qyEtaRP)+2.*mEtaRP*(dMult-3.))/(mEtaRP*(dMult-1.)*(dMult-2.)*(dMult-3.));
+   f4PerEtaBin1n1n1n1nRP->Fill(fEtaMin+(bin-1)*dBinWidthEta,fourDiffEta1n1n1n1nRP,mEtaRP*(dMult-1.)*(dMult-2.)*(dMult-3.));//Re[<4'>_{n,n|n,n}]
+  }
+   
+ } 
+  
+ fEtaReq1nRP->Reset();
+ fEtaImq1nRP->Reset();
+ fEtaReq2nRP->Reset();
+ fEtaImq2nRP->Reset();
+ //POI:
+ Double_t qxPtPOI=0.,qyPtPOI=0.,q2xPtPOI=0.,q2yPtPOI=0.,mPtPOI=0.;//add comments for these variables (deleteMe)
+ Double_t qxEtaPOI=0.,qyEtaPOI=0.,q2xEtaPOI=0.,q2yEtaPOI=0.,mEtaPOI=0.;//add comments for these variables (deleteMe)
+ Int_t iOverlap=0; 
+  
+ for(Int_t i=0;i<dMult;i++) //check if nPrim == M
+ { 
+  fTrack=anEvent->GetTrack(i);
+  if(fTrack && fTrack->UseForDifferentialFlow())//checking POI condition 
+  {
+   //Pt:
+   fPtReq1nPOI->Fill(fTrack->Pt(),cos(n*(fTrack->Phi())),1.);
+   fPtImq1nPOI->Fill(fTrack->Pt(),sin(n*(fTrack->Phi())),1.);
+   fPtReq2nPOI->Fill(fTrack->Pt(),cos(2.*n*(fTrack->Phi())),1.);
+   fPtImq2nPOI->Fill(fTrack->Pt(),sin(2.*n*(fTrack->Phi())),1.);
+   //Eta:
+   fEtaReq1nPOI->Fill(fTrack->Eta(),cos(n*(fTrack->Phi())),1.);
+   fEtaImq1nPOI->Fill(fTrack->Eta(),sin(n*(fTrack->Phi())),1.);
+   fEtaReq2nPOI->Fill(fTrack->Eta(),cos(2.*n*(fTrack->Phi())),1.);
+   fEtaImq2nPOI->Fill(fTrack->Eta(),sin(2.*n*(fTrack->Phi())),1.);       
+   if(fTrack->UseForDifferentialFlow() && fTrack->UseForIntegratedFlow())//counting the overlap between RP and POI
+   {
+    iOverlap++;
+   } 
+  }
+ } 
+ //Pt:
+ Double_t twoDiffPt1n1nPOI=0.,twoDiffPt2n2nPOI=0.,threeDiffPt2n1n1nPOI=0.,threeDiffPt1n1n2nPOI=0.,fourDiffPt1n1n1n1nPOI=0.;
+ for(Int_t bin=1;bin<(fnBinsPt+1);bin++)//loop over pt-bins 
+ { 
+  qxPtPOI = (fPtReq1nPOI->GetBinContent(bin))*(fPtReq1nPOI->GetBinEntries(bin));
+  qyPtPOI = (fPtImq1nPOI->GetBinContent(bin))*(fPtImq1nPOI->GetBinEntries(bin)); 
+  q2xPtPOI = (fPtReq2nPOI->GetBinContent(bin))*(fPtReq2nPOI->GetBinEntries(bin));  
+  q2yPtPOI = (fPtImq2nPOI->GetBinContent(bin))*(fPtImq2nPOI->GetBinEntries(bin)); 
+  mPtPOI = fPtReq1nPOI->GetBinEntries(bin);          
+  if(mPtPOI>0&&dMult>1)
+  {
+   //twoDiffPt1n1nPOI = (qxPtPOI*dQ1nx+qyPtPOI*dQ1ny-mPtPOI)/(mPtPOI*(dMult-1.));
+   twoDiffPt1n1nPOI = (qxPtPOI*dQ1nx+qyPtPOI*dQ1ny-iOverlap)/(mPtPOI*(dMult-1.));   
+   f2PerPtBin1n1nPOI->Fill(fPtMin+(bin-1)*dBinWidthPt,twoDiffPt1n1nPOI,mPtPOI*(dMult-1.));//<2'>_{n|n}
+   
+   //twoDiffPt2n2nPOI = (q2xPtPOI*dQ2nx+q2yPtPOI*dQ2ny-mPtPOI)/(mPtPOI*(dMult-1.));
+   twoDiffPt2n2nPOI = (q2xPtPOI*dQ2nx+q2yPtPOI*dQ2ny-iOverlap)/(mPtPOI*(dMult-1.));   
+   f2PerPtBin2n2nPOI->Fill(fPtMin+(bin-1)*dBinWidthPt,twoDiffPt2n2nPOI,mPtPOI*(dMult-1.));//<2'>_{2n|2n} 
+  }
+  
+  if(mPtPOI>0&&dMult>2)
+  {
+   threeDiffPt2n1n1nPOI = (q2xPtPOI*(dQ1nx*dQ1nx-dQ1ny*dQ1ny)+2.*q2yPtPOI*dQ1nx*dQ1ny-2.*(qxPtPOI*dQ1nx+qyPtPOI*dQ1ny)-(q2xPtPOI*dQ2nx+q2yPtPOI*dQ2ny)+2.*mPtPOI)/(mPtPOI*(dMult-1.)*(dMult-2.));//to be improved (correct formula)
+   //f3PePOItBin2n1n1nPOI->Fill(fPtMin+(bin-1)*dBinWidthPt,threeDiffPt2n1n1nPOI,mPtPOI*(dMult-1.)*(dMult-2.));//Re[<3'>_{2n|n,n}]
+   
+   threeDiffPt1n1n2nPOI = (dQ2nx*(qxPtPOI*dQ1nx-qyPtPOI*dQ1ny)+dQ2ny*(qxPtPOI*dQ1ny+qyPtPOI*dQ1nx)-2.*(qxPtPOI*dQ1nx+qyPtPOI*dQ1ny)-(q2xPtPOI*dQ2nx+q2yPtPOI*dQ2ny)+2.*mPtPOI)/(mPtPOI*(dMult-1.)*(dMult-2.));//to be improved (correct formula)
+   //f3PePOItBin1n1n2nPOI->Fill(fPtMin+(bin-1)*dBinWidthPt,threeDiffPt1n1n2nPOI,mPtPOI*(dMult-1.)*(dMult-2.));//Re[<3'>_{n,n|2n}]
+  }
+  
+  if(mPtPOI>0&&dMult>3)
+  {
+   fourDiffPt1n1n1n1nPOI = ((dQ1nx*dQ1nx+dQ1ny*dQ1ny)*(qxPtPOI*dQ1nx+qyPtPOI*dQ1ny)-(q2xPtPOI*(dQ1nx*dQ1nx-dQ1ny*dQ1ny)+2.*q2yPtPOI*dQ1nx*dQ1ny)-(dQ2nx*(qxPtPOI*dQ1nx-qyPtPOI*dQ1ny)+dQ2ny*(qxPtPOI*dQ1ny+qyPtPOI*dQ1nx))+(q2xPtPOI*dQ2nx+q2yPtPOI*dQ2ny)-2.*(dMult-3.)*(qxPtPOI*dQ1nx+qyPtPOI*dQ1ny)-2.*mPtPOI*(dQ1nx*dQ1nx+dQ1ny*dQ1ny)+2.*(dQ1nx*qxPtPOI+dQ1ny*qyPtPOI)+2.*mPtPOI*(dMult-3.))/(mPtPOI*(dMult-1.)*(dMult-2.)*(dMult-3.));//to be improved (correct formula)
+   //f4PePOItBin1n1n1n1nPOI->Fill(fPtMin+(bin-1)*dBinWidthPt,fourDiffPt1n1n1n1nPOI,mPtPOI*(dMult-1.)*(dMult-2.)*(dMult-3.));//Re[<4'>_{n,n|n,n}]
+  }
+   
+ } 
+  
+ fPtReq1nPOI->Reset();
+ fPtImq1nPOI->Reset();
+ fPtReq2nPOI->Reset();
+ fPtImq2nPOI->Reset();
+ //Eta:
+ Double_t twoDiffEta1n1nPOI=0.,twoDiffEta2n2nPOI=0.,threeDiffEta2n1n1nPOI=0.,threeDiffEta1n1n2nPOI=0.,fourDiffEta1n1n1n1nPOI=0.;
+ for(Int_t bin=1;bin<(fnBinsEta+1);bin++)//loop over eta-bins 
+ { 
+  qxEtaPOI = (fEtaReq1nPOI->GetBinContent(bin))*(fEtaReq1nPOI->GetBinEntries(bin));
+  qyEtaPOI = (fEtaImq1nPOI->GetBinContent(bin))*(fEtaImq1nPOI->GetBinEntries(bin)); 
+  q2xEtaPOI = (fEtaReq2nPOI->GetBinContent(bin))*(fEtaReq2nPOI->GetBinEntries(bin));  
+  q2yEtaPOI = (fEtaImq2nPOI->GetBinContent(bin))*(fEtaImq2nPOI->GetBinEntries(bin)); 
+  mEtaPOI = fEtaReq1nPOI->GetBinEntries(bin); 
+  
+  if(mEtaPOI>0&&dMult>1)
+  {
+   //twoDiffEta1n1nPOI = (qxEtaPOI*dQ1nx+qyEtaPOI*dQ1ny-mEtaPOI)/(mEtaPOI*(dMult-1.));
+   twoDiffEta1n1nPOI = (qxEtaPOI*dQ1nx+qyEtaPOI*dQ1ny-iOverlap)/(mEtaPOI*(dMult-1.));
+   f2PerEtaBin1n1nPOI->Fill(fEtaMin+(bin-1)*dBinWidthEta,twoDiffEta1n1nPOI,mEtaPOI*(dMult-1.));//<2'>_{n|n}
+   
+   //twoDiffEta2n2nPOI = (q2xEtaPOI*dQ2nx+q2yEtaPOI*dQ2ny-mEtaPOI)/(mEtaPOI*(dMult-1.));
+   twoDiffEta2n2nPOI = (q2xEtaPOI*dQ2nx+q2yEtaPOI*dQ2ny-iOverlap)/(mEtaPOI*(dMult-1.));
+   f2PerEtaBin2n2nPOI->Fill(fEtaMin+(bin-1)*dBinWidthEta,twoDiffEta2n2nPOI,mEtaPOI*(dMult-1.));//<2'>_{2n|2n} 
+  }
+  
+  if(mEtaPOI>0&&dMult>2)
+  {
+   threeDiffEta2n1n1nPOI = (q2xEtaPOI*(dQ1nx*dQ1nx-dQ1ny*dQ1ny)+2.*q2yEtaPOI*dQ1nx*dQ1ny-2.*(qxEtaPOI*dQ1nx+qyEtaPOI*dQ1ny)-(q2xEtaPOI*dQ2nx+q2yEtaPOI*dQ2ny)+2.*mEtaPOI)/(mEtaPOI*(dMult-1.)*(dMult-2.));//to be improved (correct formula)
+   //f3PerEtaBin2n1n1nPOI->Fill(fEtaMin+(bin-1)*dBinWidthEta,threeDiffEta2n1n1nPOI,mEtaPOI*(dMult-1.)*(dMult-2.));//Re[<3'>_{2n|n,n}]
+   
+   threeDiffEta1n1n2nPOI = (dQ2nx*(qxEtaPOI*dQ1nx-qyEtaPOI*dQ1ny)+dQ2ny*(qxEtaPOI*dQ1ny+qyEtaPOI*dQ1nx)-2.*(qxEtaPOI*dQ1nx+qyEtaPOI*dQ1ny)-(q2xEtaPOI*dQ2nx+q2yEtaPOI*dQ2ny)+2.*mEtaPOI)/(mEtaPOI*(dMult-1.)*(dMult-2.));//to be improved (correct formula)
+   //f3PerEtaBin1n1n2nPOI->Fill(fEtaMin+(bin-1)*dBinWidthEta,threeDiffEta1n1n2nPOI,mEtaPOI*(dMult-1.)*(dMult-2.));//Re[<3'>_{n,n|2n}]
+  }
+  
+  if(mEtaPOI>0&&dMult>3)
+  {
+   fourDiffEta1n1n1n1nPOI = ((dQ1nx*dQ1nx+dQ1ny*dQ1ny)*(qxEtaPOI*dQ1nx+qyEtaPOI*dQ1ny)-(q2xEtaPOI*(dQ1nx*dQ1nx-dQ1ny*dQ1ny)+2.*q2yEtaPOI*dQ1nx*dQ1ny)-(dQ2nx*(qxEtaPOI*dQ1nx-qyEtaPOI*dQ1ny)+dQ2ny*(qxEtaPOI*dQ1ny+qyEtaPOI*dQ1nx))+(q2xEtaPOI*dQ2nx+q2yEtaPOI*dQ2ny)-2.*(dMult-3.)*(qxEtaPOI*dQ1nx+qyEtaPOI*dQ1ny)-2.*mEtaPOI*(dQ1nx*dQ1nx+dQ1ny*dQ1ny)+2.*(dQ1nx*qxEtaPOI+dQ1ny*qyEtaPOI)+2.*mEtaPOI*(dMult-3.))/(mEtaPOI*(dMult-1.)*(dMult-2.)*(dMult-3.));//to be improved (correct formula)
+   //f4PerEtaBin1n1n1n1nPOI->Fill(fEtaMin+(bin-1)*dBinWidthEta,fourDiffEta1n1n1n1nPOI,mEtaPOI*(dMult-1.)*(dMult-2.)*(dMult-3.));//Re[<4'>_{n,n|n,n}]
+  }
+   
+ } 
+  
+ fEtaReq1nPOI->Reset();
+ fEtaImq1nPOI->Reset();
+ fEtaReq2nPOI->Reset();
+ fEtaImq2nPOI->Reset();
 //---------------------------------------------------------------------------------------------------------
 
 
@@ -710,21 +1075,6 @@ void AliFlowAnalysisWithQCumulants::Make(AliFlowEventSimple* anEvent)
 
 
 
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
 
 
 
@@ -786,11 +1136,11 @@ void AliFlowAnalysisWithQCumulants::Make(AliFlowEventSimple* anEvent)
  Double_t phi1=0., phi2=0., phi3=0., phi4=0., phi5=0., phi6=0., phi7=0., phi8=0.;
 
  //<2>_{k*n|k*n} (k=1,2,3 and 4)
- for(Int_t i1=0;i1<xMult;i1++)
+ for(Int_t i1=0;i1<dMult;i1++)
  {
   fTrack=anEvent->GetTrack(i1);
   phi1=fTrack->Phi();
-  for(Int_t i2=0;i2<xMult;i2++)
+  for(Int_t i2=0;i2<dMult;i2++)
   {
    if(i2==i1)continue;
    fTrack=anEvent->GetTrack(i2);
@@ -803,16 +1153,16 @@ void AliFlowAnalysisWithQCumulants::Make(AliFlowEventSimple* anEvent)
  }  
      
  //<3>_{2n|n,n}, <3>_{3n|2n,n}, <3>_{4n|2n,2n} and <3>_{4n|3n,n}
- for(Int_t i1=0;i1<xMult;i1++)
+ for(Int_t i1=0;i1<dMult;i1++)
  {
   fTrack=anEvent->GetTrack(i1);
   phi1=fTrack->Phi();
-  for(Int_t i2=0;i2<xMult;i2++)
+  for(Int_t i2=0;i2<dMult;i2++)
   {
    if(i2==i1)continue;
    fTrack=anEvent->GetTrack(i2);
    phi2=fTrack->Phi();
-   for(Int_t i3=0;i3<xMult;i3++)
+   for(Int_t i3=0;i3<dMult;i3++)
    {
     if(i3==i1||i3==i2)continue;
     fTrack=anEvent->GetTrack(i3);
@@ -826,21 +1176,21 @@ void AliFlowAnalysisWithQCumulants::Make(AliFlowEventSimple* anEvent)
  }
   
  //<4>_{n,n|n,n}, <4>_{2n,n|2n,n}, <4>_{2n,2n|2n,2n}, <4>_{3n|n,n,n}, <4>_{3n,n|3n,n}, <4>_{3n,n|2n,2n} and <4>_{4n|2n,n,n} 
- for(Int_t i1=0;i1<xMult;i1++)
+ for(Int_t i1=0;i1<dMult;i1++)
  {
   fTrack=anEvent->GetTrack(i1);
   phi1=fTrack->Phi();
-  for(Int_t i2=0;i2<xMult;i2++)
+  for(Int_t i2=0;i2<dMult;i2++)
   {
    if(i2==i1)continue;
    fTrack=anEvent->GetTrack(i2);
    phi2=fTrack->Phi();
-   for(Int_t i3=0;i3<xMult;i3++)
+   for(Int_t i3=0;i3<dMult;i3++)
    {
     if(i3==i1||i3==i2)continue;
     fTrack=anEvent->GetTrack(i3);
     phi3=fTrack->Phi();
-    for(Int_t i4=0;i4<xMult;i4++)
+    for(Int_t i4=0;i4<dMult;i4++)
     {
      if(i4==i1||i4==i2||i4==i3)continue;
      fTrack=anEvent->GetTrack(i4);
@@ -858,27 +1208,27 @@ void AliFlowAnalysisWithQCumulants::Make(AliFlowEventSimple* anEvent)
  }
  
  //<5>_{2n,n,n,n,n}, //<5>_{2n,2n|2n,n,n}, <5>_{3n,n|2n,n,n} and <5>_{4n|n,n,n,n}
- for(Int_t i1=0;i1<xMult;i1++)
+ for(Int_t i1=0;i1<dMult;i1++)
  {
   //cout<<"i1 = "<<i1<<endl;
   fTrack=anEvent->GetTrack(i1);
   phi1=fTrack->Phi();
-  for(Int_t i2=0;i2<xMult;i2++)
+  for(Int_t i2=0;i2<dMult;i2++)
   {
    if(i2==i1)continue;
    fTrack=anEvent->GetTrack(i2);
    phi2=fTrack->Phi();
-   for(Int_t i3=0;i3<xMult;i3++)
+   for(Int_t i3=0;i3<dMult;i3++)
    {
     if(i3==i1||i3==i2)continue;
     fTrack=anEvent->GetTrack(i3);
     phi3=fTrack->Phi();
-    for(Int_t i4=0;i4<xMult;i4++)
+    for(Int_t i4=0;i4<dMult;i4++)
     {
      if(i4==i1||i4==i2||i4==i3)continue;
      fTrack=anEvent->GetTrack(i4);
      phi4=fTrack->Phi();
-     for(Int_t i5=0;i5<xMult;i5++)
+     for(Int_t i5=0;i5<dMult;i5++)
      {
       if(i5==i1||i5==i2||i5==i3||i5==i4)continue;
       fTrack=anEvent->GetTrack(i5);
@@ -894,32 +1244,32 @@ void AliFlowAnalysisWithQCumulants::Make(AliFlowEventSimple* anEvent)
  }
  
  //<6>_{n,n,n,n,n,n}, <6>_{2n,n,n|2n,n,n}, <6>_{2n,2n|n,n,n,n} and <6>_{3n,n|n,n,n,n}
- for(Int_t i1=0;i1<xMult;i1++)
+ for(Int_t i1=0;i1<dMult;i1++)
  {
   //cout<<"i1 = "<<i1<<endl;
   fTrack=anEvent->GetTrack(i1);
   phi1=fTrack->Phi();
-  for(Int_t i2=0;i2<xMult;i2++)
+  for(Int_t i2=0;i2<dMult;i2++)
   {
    if(i2==i1)continue;
    fTrack=anEvent->GetTrack(i2);
    phi2=fTrack->Phi();
-   for(Int_t i3=0;i3<xMult;i3++)
+   for(Int_t i3=0;i3<dMult;i3++)
    {
     if(i3==i1||i3==i2)continue;
     fTrack=anEvent->GetTrack(i3);
     phi3=fTrack->Phi();
-    for(Int_t i4=0;i4<xMult;i4++)
+    for(Int_t i4=0;i4<dMult;i4++)
     {
      if(i4==i1||i4==i2||i4==i3)continue;
      fTrack=anEvent->GetTrack(i4);
      phi4=fTrack->Phi();
-     for(Int_t i5=0;i5<xMult;i5++)
+     for(Int_t i5=0;i5<dMult;i5++)
      {
       if(i5==i1||i5==i2||i5==i3||i5==i4)continue;
       fTrack=anEvent->GetTrack(i5);
       phi5=fTrack->Phi();
-      for(Int_t i6=0;i6<xMult;i6++)
+      for(Int_t i6=0;i6<dMult;i6++)
       {
        if(i6==i1||i6==i2||i6==i3||i6==i4||i6==i5)continue;
        fTrack=anEvent->GetTrack(i6);
@@ -936,37 +1286,37 @@ void AliFlowAnalysisWithQCumulants::Make(AliFlowEventSimple* anEvent)
  }
 
  //<7>_{2n,n,n|n,n,n,n}
- for(Int_t i1=0;i1<xMult;i1++)
+ for(Int_t i1=0;i1<dMult;i1++)
  {
   //cout<<"i1 = "<<i1<<endl;
   fTrack=anEvent->GetTrack(i1);
   phi1=fTrack->Phi();
-  for(Int_t i2=0;i2<xMult;i2++)
+  for(Int_t i2=0;i2<dMult;i2++)
   {
    if(i2==i1)continue;
    fTrack=anEvent->GetTrack(i2);
    phi2=fTrack->Phi();
-   for(Int_t i3=0;i3<xMult;i3++)
+   for(Int_t i3=0;i3<dMult;i3++)
    {
     if(i3==i1||i3==i2)continue;
     fTrack=anEvent->GetTrack(i3);
     phi3=fTrack->Phi();
-    for(Int_t i4=0;i4<xMult;i4++)
+    for(Int_t i4=0;i4<dMult;i4++)
     {
      if(i4==i1||i4==i2||i4==i3)continue;
      fTrack=anEvent->GetTrack(i4);
      phi4=fTrack->Phi();
-     for(Int_t i5=0;i5<xMult;i5++)
+     for(Int_t i5=0;i5<dMult;i5++)
      {
       if(i5==i1||i5==i2||i5==i3||i5==i4)continue;
       fTrack=anEvent->GetTrack(i5);
       phi5=fTrack->Phi();
-      for(Int_t i6=0;i6<xMult;i6++)
+      for(Int_t i6=0;i6<dMult;i6++)
       {
        if(i6==i1||i6==i2||i6==i3||i6==i4||i6==i5)continue;
        fTrack=anEvent->GetTrack(i6);
        phi6=fTrack->Phi(); 
-       for(Int_t i7=0;i7<xMult;i7++)
+       for(Int_t i7=0;i7<dMult;i7++)
        {
         if(i7==i1||i7==i2||i7==i3||i7==i4||i7==i5||i7==i6)continue;
         fTrack=anEvent->GetTrack(i7);
@@ -981,42 +1331,42 @@ void AliFlowAnalysisWithQCumulants::Make(AliFlowEventSimple* anEvent)
  }
  
  //<8>_{n,n,n,n|n,n,n,n}
- for(Int_t i1=0;i1<xMult;i1++)
+ for(Int_t i1=0;i1<dMult;i1++)
  {
   cout<<"i1 = "<<i1<<endl;
   fTrack=anEvent->GetTrack(i1);
   phi1=fTrack->Phi();
-  for(Int_t i2=0;i2<xMult;i2++)
+  for(Int_t i2=0;i2<dMult;i2++)
   {
    if(i2==i1)continue;
    fTrack=anEvent->GetTrack(i2);
    phi2=fTrack->Phi();
-   for(Int_t i3=0;i3<xMult;i3++)
+   for(Int_t i3=0;i3<dMult;i3++)
    {
     if(i3==i1||i3==i2)continue;
     fTrack=anEvent->GetTrack(i3);
     phi3=fTrack->Phi();
-    for(Int_t i4=0;i4<xMult;i4++)
+    for(Int_t i4=0;i4<dMult;i4++)
     {
      if(i4==i1||i4==i2||i4==i3)continue;
      fTrack=anEvent->GetTrack(i4);
      phi4=fTrack->Phi();
-     for(Int_t i5=0;i5<xMult;i5++)
+     for(Int_t i5=0;i5<dMult;i5++)
      {
       if(i5==i1||i5==i2||i5==i3||i5==i4)continue;
       fTrack=anEvent->GetTrack(i5);
       phi5=fTrack->Phi();
-      for(Int_t i6=0;i6<xMult;i6++)
+      for(Int_t i6=0;i6<dMult;i6++)
       {
        if(i6==i1||i6==i2||i6==i3||i6==i4||i6==i5)continue;
        fTrack=anEvent->GetTrack(i6);
        phi6=fTrack->Phi(); 
-       for(Int_t i7=0;i7<xMult;i7++)
+       for(Int_t i7=0;i7<dMult;i7++)
        {
         if(i7==i1||i7==i2||i7==i3||i7==i4||i7==i5||i7==i6)continue;
         fTrack=anEvent->GetTrack(i7);
         phi7=fTrack->Phi(); 
-        for(Int_t i8=0;i8<xMult;i8++)
+        for(Int_t i8=0;i8<dMult;i8++)
         {
          if(i8==i1||i8==i2||i8==i3||i8==i4||i8==i5||i8==i6||i8==i7)continue;
          fTrack=anEvent->GetTrack(i8);
@@ -1040,13 +1390,13 @@ void AliFlowAnalysisWithQCumulants::Make(AliFlowEventSimple* anEvent)
  //51st bin: <4'>_{n,n|n,n}
  
  //<2'>_{n|n}
- for(Int_t i1=0;i1<xMult;i1++)
+ for(Int_t i1=0;i1<dMult;i1++)
  {
   fTrack=anEvent->GetTrack(i1);
   if(fTrack->Pt()>=0.5&&fTrack->Pt()<0.6)
   {
    phi1=fTrack->Phi();
-   for(Int_t i2=0;i2<xMult;i2++)
+   for(Int_t i2=0;i2<dMult;i2++)
    {
     if(i2==i1)continue;
     fTrack=anEvent->GetTrack(i2);
@@ -1058,18 +1408,18 @@ void AliFlowAnalysisWithQCumulants::Make(AliFlowEventSimple* anEvent)
  }  
 
  //<3'>_{2n|n,n}
- for(Int_t i1=0;i1<xMult;i1++)
+ for(Int_t i1=0;i1<dMult;i1++)
  {
   fTrack=anEvent->GetTrack(i1);
   if(fTrack->Pt()>=0.5&&fTrack->Pt()<0.6)
   {
    phi1=fTrack->Phi();
-   for(Int_t i2=0;i2<xMult;i2++)
+   for(Int_t i2=0;i2<dMult;i2++)
    {
     if(i2==i1)continue;
     fTrack=anEvent->GetTrack(i2);
     phi2=fTrack->Phi();
-    for(Int_t i3=0;i3<xMult;i3++)
+    for(Int_t i3=0;i3<dMult;i3++)
     {
      if(i3==i1||i3==i2)continue;
      fTrack=anEvent->GetTrack(i3);
@@ -1082,23 +1432,23 @@ void AliFlowAnalysisWithQCumulants::Make(AliFlowEventSimple* anEvent)
  }
   
  //<4'>_{n,n|n,n}
- for(Int_t i1=0;i1<xMult;i1++)
+ for(Int_t i1=0;i1<dMult;i1++)
  {
   fTrack=anEvent->GetTrack(i1);
   if(fTrack->Pt()>=0.5&&fTrack->Pt()<0.6)
   {
    phi1=fTrack->Phi();
-   for(Int_t i2=0;i2<xMult;i2++)
+   for(Int_t i2=0;i2<dMult;i2++)
    {
     if(i2==i1)continue;
     fTrack=anEvent->GetTrack(i2);
     phi2=fTrack->Phi();
-    for(Int_t i3=0;i3<xMult;i3++)
+    for(Int_t i3=0;i3<dMult;i3++)
     {
      if(i3==i1||i3==i2)continue;
      fTrack=anEvent->GetTrack(i3);
      phi3=fTrack->Phi();
-     for(Int_t i4=0;i4<xMult;i4++)
+     for(Int_t i4=0;i4<dMult;i4++)
      {
       if(i4==i1||i4==i2||i4==i3)continue;
       fTrack=anEvent->GetTrack(i4);
@@ -1128,7 +1478,7 @@ void AliFlowAnalysisWithQCumulants::Make(AliFlowEventSimple* anEvent)
 void AliFlowAnalysisWithQCumulants::Finish()
 {
  //calculate the final results
- AliQCumulantsFunctions finalResults(fIntFlowResultsQC,fDiffFlowResults2ndOrderQC,fDiffFlowResults4thOrderQC,fCovariances,fAvMultIntFlowQC,fQvectorComponents,fQCorrelations, fQProduct,fDirectCorrelations, f2PerBin1n1n,f2PerBin2n2n,f3PerBin2n1n1n,f3PerBin1n1n2n,f4PerBin1n1n1n1n,fCommonHistsResults2nd, fCommonHistsResults4th,fCommonHistsResults6th,fCommonHistsResults8th);
+ AliQCumulantsFunctions finalResults(fIntFlowResultsQC,fDiffFlowResults2ndOrderQC,fDiffFlowResults4thOrderQC,fCovariances,fAvMultIntFlowQC,fQvectorComponents,fQCorrelations, fQProduct,fDirectCorrelations,f2PerPtBin1n1nRP,f2PerPtBin2n2nRP,f3PerPtBin2n1n1nRP,f3PerPtBin1n1n2nRP,f4PerPtBin1n1n1n1nRP, f2PerEtaBin1n1nRP,f2PerEtaBin2n2nRP,f3PerEtaBin2n1n1nRP,f3PerEtaBin1n1n2nRP,f4PerEtaBin1n1n1n1nRP, f2PerPtBin1n1nPOI,f2PerPtBin2n2nPOI,f3PerPtBin2n1n1nPOI,f3PerPtBin1n1n2nPOI,f4PerPtBin1n1n1n1nPOI, f2PerEtaBin1n1nPOI,f2PerEtaBin2n2nPOI,f3PerEtaBin2n1n1nPOI,f3PerEtaBin1n1n2nPOI,f4PerEtaBin1n1n1n1nPOI,fCommonHistsResults2nd, fCommonHistsResults4th,fCommonHistsResults6th,fCommonHistsResults8th);
          
  finalResults.Calculate();  
 }
index 6afb7ce6749075f8009d57038fef2704e6d0f955..7a15620ea66c5e8ecb79b6acd29bcf22e372a3ea 100644 (file)
@@ -83,20 +83,65 @@ class AliFlowAnalysisWithQCumulants{
   void SetQVectorComponents(TProfile* const qvc) {this->fQvectorComponents = qvc;};
   TProfile* GetQVectorComponents() const {return this->fQvectorComponents;};
   
-  void SetTwo1n1nPerBin(TProfile* const pb2PerBin1n1n) {this->f2PerBin1n1n = pb2PerBin1n1n;};
-  TProfile* GetTwo1n1nPerBin() const {return this->f2PerBin1n1n;};
+  void SetTwo1n1nPerPtBinRP(TProfile* const pb2PerPtBin1n1nRP) {this->f2PerPtBin1n1nRP = pb2PerPtBin1n1nRP;};
+  TProfile* GetTwo1n1nPerPtBinRP() const {return this->f2PerPtBin1n1nRP;};
   
-  void SetTwo2n2nPerBin(TProfile* const pb2PerBin2n2n) {this->f2PerBin2n2n = pb2PerBin2n2n;};
-  TProfile* GetTwo2n2nPerBin() const {return this->f2PerBin2n2n;};
+  void SetTwo2n2nPerPtBinRP(TProfile* const pb2PerPtBin2n2nRP) {this->f2PerPtBin2n2nRP = pb2PerPtBin2n2nRP;};
+  TProfile* GetTwo2n2nPerPtBinRP() const {return this->f2PerPtBin2n2nRP;};
   
-  void SetThree2n1n1nPerBin(TProfile* const pb3PerBin2n1n1n) {this->f3PerBin2n1n1n = pb3PerBin2n1n1n;};
-  TProfile* GetThree2n1n1nPerBin() const {return this->f3PerBin2n1n1n;};
+  void SetThree2n1n1nPerPtBinRP(TProfile* const pb3PerPtBin2n1n1nRP) {this->f3PerPtBin2n1n1nRP = pb3PerPtBin2n1n1nRP;};
+  TProfile* GetThree2n1n1nPerPtBinRP() const {return this->f3PerPtBin2n1n1nRP;};
   
-  void SetThree1n1n2nPerBin(TProfile* const pb3PerBin1n1n2n) {this->f3PerBin1n1n2n = pb3PerBin1n1n2n;};
-  TProfile* GetThree1n1n2nPerBin() const {return this->f3PerBin1n1n2n;};
+  void SetThree1n1n2nPerPtBinRP(TProfile* const pb3PerPtBin1n1n2nRP) {this->f3PerPtBin1n1n2nRP = pb3PerPtBin1n1n2nRP;};
+  TProfile* GetThree1n1n2nPerPtBinRP() const {return this->f3PerPtBin1n1n2nRP;};
   
-  void SetFour1n1n1n1nPerBin(TProfile* const pb4PerBin1n1n1n1n) {this->f4PerBin1n1n1n1n = pb4PerBin1n1n1n1n;};
-  TProfile* GetFour1n1n1n1nPerBin() const {return this->f4PerBin1n1n1n1n;}; 
+  void SetFour1n1n1n1nPerPtBinRP(TProfile* const pb4PerPtBin1n1n1n1nRP) {this->f4PerPtBin1n1n1n1nRP = pb4PerPtBin1n1n1n1nRP;};
+  TProfile* GetFour1n1n1n1nPerPtBinRP() const {return this->f4PerPtBin1n1n1n1nRP;}; 
+  
+  void SetTwo1n1nPerEtaBinRP(TProfile* const pb2PerEtaBin1n1nRP) {this->f2PerEtaBin1n1nRP = pb2PerEtaBin1n1nRP;};
+  TProfile* GetTwo1n1nPerEtaBinRP() const {return this->f2PerEtaBin1n1nRP;};
+  
+  void SetTwo2n2nPerEtaBinRP(TProfile* const pb2PerEtaBin2n2nRP) {this->f2PerEtaBin2n2nRP = pb2PerEtaBin2n2nRP;};
+  TProfile* GetTwo2n2nPerEtaBinRP() const {return this->f2PerEtaBin2n2nRP;};
+  
+  void SetThree2n1n1nPerEtaBinRP(TProfile* const pb3PerEtaBin2n1n1nRP) {this->f3PerEtaBin2n1n1nRP = pb3PerEtaBin2n1n1nRP;};
+  TProfile* GetThree2n1n1nPerEtaBinRP() const {return this->f3PerEtaBin2n1n1nRP;};
+  
+  void SetThree1n1n2nPerEtaBinRP(TProfile* const pb3PerEtaBin1n1n2nRP) {this->f3PerEtaBin1n1n2nRP = pb3PerEtaBin1n1n2nRP;};
+  TProfile* GetThree1n1n2nPerEtaBinRP() const {return this->f3PerEtaBin1n1n2nRP;};
+  
+  void SetFour1n1n1n1nPerEtaBinRP(TProfile* const pb4PerEtaBin1n1n1n1nRP) {this->f4PerEtaBin1n1n1n1nRP = pb4PerEtaBin1n1n1n1nRP;};
+  TProfile* GetFour1n1n1n1nPerEtaBinRP() const {return this->f4PerEtaBin1n1n1n1nRP;}; 
+  
+  void SetTwo1n1nPerPtBinPOI(TProfile* const pb2PerPtBin1n1nPOI) {this->f2PerPtBin1n1nPOI = pb2PerPtBin1n1nPOI;};
+  TProfile* GetTwo1n1nPerPtBinPOI() const {return this->f2PerPtBin1n1nPOI;};
+  
+  void SetTwo2n2nPerPtBinPOI(TProfile* const pb2PerPtBin2n2nPOI) {this->f2PerPtBin2n2nPOI = pb2PerPtBin2n2nPOI;};
+  TProfile* GetTwo2n2nPerPtBinPOI() const {return this->f2PerPtBin2n2nPOI;};
+  
+  void SetThree2n1n1nPerPtBinPOI(TProfile* const pb3PerPtBin2n1n1nPOI) {this->f3PerPtBin2n1n1nPOI = pb3PerPtBin2n1n1nPOI;};
+  TProfile* GetThree2n1n1nPerPtBinPOI() const {return this->f3PerPtBin2n1n1nPOI;};
+  
+  void SetThree1n1n2nPerPtBinPOI(TProfile* const pb3PerPtBin1n1n2nPOI) {this->f3PerPtBin1n1n2nPOI = pb3PerPtBin1n1n2nPOI;};
+  TProfile* GetThree1n1n2nPerPtBinPOI() const {return this->f3PerPtBin1n1n2nPOI;};
+  
+  void SetFour1n1n1n1nPerPtBinPOI(TProfile* const pb4PerPtBin1n1n1n1nPOI) {this->f4PerPtBin1n1n1n1nPOI = pb4PerPtBin1n1n1n1nPOI;};
+  TProfile* GetFour1n1n1n1nPerPtBinPOI() const {return this->f4PerPtBin1n1n1n1nPOI;}; 
+  
+  void SetTwo1n1nPerEtaBinPOI(TProfile* const pb2PerEtaBin1n1nPOI) {this->f2PerEtaBin1n1nPOI = pb2PerEtaBin1n1nPOI;};
+  TProfile* GetTwo1n1nPerEtaBinPOI() const {return this->f2PerEtaBin1n1nPOI;};
+  
+  void SetTwo2n2nPerEtaBinPOI(TProfile* const pb2PerEtaBin2n2nPOI) {this->f2PerEtaBin2n2nPOI = pb2PerEtaBin2n2nPOI;};
+  TProfile* GetTwo2n2nPerEtaBinPOI() const {return this->f2PerEtaBin2n2nPOI;};
+  
+  void SetThree2n1n1nPerEtaBinPOI(TProfile* const pb3PerEtaBin2n1n1nPOI) {this->f3PerEtaBin2n1n1nPOI = pb3PerEtaBin2n1n1nPOI;};
+  TProfile* GetThree2n1n1nPerEtaBinPOI() const {return this->f3PerEtaBin2n1n1nPOI;};
+  
+  void SetThree1n1n2nPerEtaBinPOI(TProfile* const pb3PerEtaBin1n1n2nPOI) {this->f3PerEtaBin1n1n2nPOI = pb3PerEtaBin1n1n2nPOI;};
+  TProfile* GetThree1n1n2nPerEtaBinPOI() const {return this->f3PerEtaBin1n1n2nPOI;};
+  
+  void SetFour1n1n1n1nPerEtaBinPOI(TProfile* const pb4PerEtaBin1n1n1n1nPOI) {this->f4PerEtaBin1n1n1n1nPOI = pb4PerEtaBin1n1n1n1nPOI;};
+  TProfile* GetFour1n1n1n1nPerEtaBinPOI() const {return this->f4PerEtaBin1n1n1n1nPOI;}; 
   
   void SetDirectCorrelations(TProfile* const dc) {this->fDirectCorrelations = dc;};
   TProfile* GetDirectCorrelations() const {return this->fDirectCorrelations;};
@@ -121,17 +166,52 @@ class AliFlowAnalysisWithQCumulants{
   TProfile*                  fQProduct;                 //average of products: 1st bin: <2*4>, 2nd bin: <2*6>, ...
   
   TProfile*                  fDirectCorrelations;       //multi-particle correlations calculated with nested loop  
-  
-  TProfile*                  fReq1n;                    //real part of q-vector evaluated in harmonic n for each pt-bin
-  TProfile*                  fImq1n;                    //imaginary part of q-vector evaluated in harmonic n for each pt-bin
-  TProfile*                  fReq2n;                    //real part of q-vector evaluated in harmonic 2n for each pt-bin
-  TProfile*                  fImq2n;                    //imaginary part of q-vector evaluated in harmonic 2n for each pt-bin
 
-  TProfile*                  f2PerBin1n1n;              //<<2'>>_{n|n} per pt-bin
-  TProfile*                  f2PerBin2n2n;              //<<2'>>_{2n|2n} per pt-bin
-  TProfile*                  f3PerBin2n1n1n;            //<<3'>>_{2n|n,n} per pt-bin
-  TProfile*                  f3PerBin1n1n2n;            //<<3'>>_{n,n|2n} per pt-bin
-  TProfile*                  f4PerBin1n1n1n1n;          //<<4'>>_{n,n|n,n} per pt-bin
+  //RP (Reaction Plane particles):  
+  TProfile*                  fPtReq1nRP;                //real part of q-vector evaluated in harmonic n for each pt-bin
+  TProfile*                  fPtImq1nRP;                //imaginary part of q-vector evaluated in harmonic n for each pt-bin
+  TProfile*                  fPtReq2nRP;                //real part of q-vector evaluated in harmonic 2n for each pt-bin
+  TProfile*                  fPtImq2nRP;                //imaginary part of q-vector evaluated in harmonic 2n for each pt-bin
+
+  TProfile*                  f2PerPtBin1n1nRP;          //<<2'>>_{n|n} per pt-bin
+  TProfile*                  f2PerPtBin2n2nRP;          //<<2'>>_{2n|2n} per pt-bin
+  TProfile*                  f3PerPtBin2n1n1nRP;        //<<3'>>_{2n|n,n} per pt-bin
+  TProfile*                  f3PerPtBin1n1n2nRP;        //<<3'>>_{n,n|2n} per pt-bin
+  TProfile*                  f4PerPtBin1n1n1n1nRP;      //<<4'>>_{n,n|n,n} per pt-bin
+  
+  TProfile*                  fEtaReq1nRP;               //real part of q-vector evaluated in harmonic n for each eta-bin
+  TProfile*                  fEtaImq1nRP;               //imaginary part of q-vector evaluated in harmonic n for each eta-bin
+  TProfile*                  fEtaReq2nRP;               //real part of q-vector evaluated in harmonic 2n for each eta-bin
+  TProfile*                  fEtaImq2nRP;               //imaginary part of q-vector evaluated in harmonic 2n for each eta-bin
+
+  TProfile*                  f2PerEtaBin1n1nRP;         //<<2'>>_{n|n} per eta-bin
+  TProfile*                  f2PerEtaBin2n2nRP;         //<<2'>>_{2n|2n} per eta-bin
+  TProfile*                  f3PerEtaBin2n1n1nRP;       //<<3'>>_{2n|n,n} per eta-bin
+  TProfile*                  f3PerEtaBin1n1n2nRP;       //<<3'>>_{n,n|2n} per eta-bin
+  TProfile*                  f4PerEtaBin1n1n1n1nRP;     //<<4'>>_{n,n|n,n} per eta-bin  
+
+  //POI (Particles Of Interest): 
+  TProfile*                  fPtReq1nPOI;               //real part of q-vector evaluated in harmonic n for each pt-bin
+  TProfile*                  fPtImq1nPOI;               //imaginary part of q-vector evaluated in harmonic n for each pt-bin
+  TProfile*                  fPtReq2nPOI;               //real part of q-vector evaluated in harmonic 2n for each pt-bin
+  TProfile*                  fPtImq2nPOI;               //imaginary part of q-vector evaluated in harmonic 2n for each pt-bin
+
+  TProfile*                  f2PerPtBin1n1nPOI;         //<<2'>>_{n|n} per pt-bin
+  TProfile*                  f2PerPtBin2n2nPOI;         //<<2'>>_{2n|2n} per pt-bin
+  TProfile*                  f3PerPtBin2n1n1nPOI;       //<<3'>>_{2n|n,n} per pt-bin
+  TProfile*                  f3PerPtBin1n1n2nPOI;       //<<3'>>_{n,n|2n} per pt-bin
+  TProfile*                  f4PerPtBin1n1n1n1nPOI;     //<<4'>>_{n,n|n,n} per pt-bin
+  
+  TProfile*                  fEtaReq1nPOI;              //real part of q-vector evaluated in harmonic n for each eta-bin
+  TProfile*                  fEtaImq1nPOI;              //imaginary part of q-vector evaluated in harmonic n for each eta-bin
+  TProfile*                  fEtaReq2nPOI;              //real part of q-vector evaluated in harmonic 2n for each eta-bin
+  TProfile*                  fEtaImq2nPOI;              //imaginary part of q-vector evaluated in harmonic 2n for each eta-bin
+
+  TProfile*                  f2PerEtaBin1n1nPOI;        //<<2'>>_{n|n} per eta-bin
+  TProfile*                  f2PerEtaBin2n2nPOI;        //<<2'>>_{2n|2n} per eta-bin
+  TProfile*                  f3PerEtaBin2n1n1nPOI;      //<<3'>>_{2n|n,n} per eta-bin
+  TProfile*                  f3PerEtaBin1n1n2nPOI;      //<<3'>>_{n,n|2n} per eta-bin
+  TProfile*                  f4PerEtaBin1n1n1n1nPOI;    //<<4'>>_{n,n|n,n} per eta-bin  
  
   AliFlowCommonHist*         fCommonHists2nd;           //common control histograms for 2nd order
   AliFlowCommonHist*         fCommonHists4th;           //common control histograms for 4th order
@@ -150,7 +230,11 @@ class AliFlowAnalysisWithQCumulants{
  
   Int_t                      fnBinsPt;                  //number of pt bins
   Double_t                   fPtMin;                    //minimum pt   
-  Double_t                   fPtMax;                    //maximum pt           
+  Double_t                   fPtMax;                    //maximum pt    
+  
+  Int_t                      fnBinsEta;                 //number of eta bins
+  Double_t                   fEtaMin;                   //minimum eta   
+  Double_t                   fEtaMax;                   //maximum eta           
                         
   ClassDef(AliFlowAnalysisWithQCumulants, 0);
 };
index a6acdfdeb1af4bb28d97966ac7e2f415cb863422..1485c21e73c80628e471fcf92cf6190cd23add05 100644 (file)
@@ -16,7 +16,7 @@
 #define AliFlowAnalysisWithScalarProduct_cxx
  
 #include "Riostream.h"  //needed as include
-//#include "TFile.h"      //needed as include
+#include "TFile.h"      //needed as include
 #include "TList.h"
 #include "TMath.h"
 #include "TProfile.h"
@@ -63,6 +63,17 @@ ClassImp(AliFlowAnalysisWithScalarProduct)
  }
  
 
+//-----------------------------------------------------------------------
+
+void AliFlowAnalysisWithScalarProduct::WriteHistograms(TString* outputFileName)
+{
+ //store the final results in output .root file
+
+  TFile *output = new TFile(outputFileName->Data(),"RECREATE");
+  output->WriteObject(fHistList, "cobjSP","SingleKey");
+  delete output;
+}
+
 //-----------------------------------------------------------------------
 void AliFlowAnalysisWithScalarProduct::Init() {
 
index 024429f26eeda5e80acf3c6c0a10192f864e91f6..12cb7423d8a93f616178295c0b4d38834f43a107 100644 (file)
@@ -16,6 +16,7 @@ class AliFlowCommonHist;
 
 class TProfile;
 class TList;
+class TFile;
 class Riostream;
 
 
@@ -32,10 +33,11 @@ class AliFlowAnalysisWithScalarProduct {
  
    virtual  ~AliFlowAnalysisWithScalarProduct();  //destructor
  
-   void    Init();                                //defines variables and histograms
-   void    Make(AliFlowEventSimple* anEvent);     //calculates variables and fills histograms
-   void    Finish();                              //saves histograms
-  
+   void    Init();                                   //defines variables and histograms
+   void    Make(AliFlowEventSimple* anEvent);        //calculates variables and fills histograms
+   void    Finish();                                 //saves histograms
+   void    WriteHistograms(TString* outputFileName); //writes histograms locally
+
    void      SetDebug(Bool_t kt)            { this->fDebug = kt ; }
    Bool_t    GetDebug() const               { return this->fDebug ; }
 
index 3a072490049b74c429165da9af86b38b4092fd75..a43542ca92b8d50e7a014c430aba2b153f030966 100644 (file)
@@ -59,11 +59,26 @@ AliQCumulantsFunctions::AliQCumulantsFunctions():
  fQCorr(NULL),
  fQProd(NULL),
  fDirect(NULL),
- fbin2p1n1n(NULL),
- fbin2p2n2n(NULL),
- fbin3p2n1n1n(NULL),
- fbin3p1n1n2n(NULL),
- fbin4p1n1n1n1n(NULL),
+ fbinPt2p1n1nRP(NULL),
+ fbinPt2p2n2nRP(NULL),
+ fbinPt3p2n1n1nRP(NULL),
+ fbinPt3p1n1n2nRP(NULL),
+ fbinPt4p1n1n1n1nRP(NULL),
+ fbinEta2p1n1nRP(NULL),
+ fbinEta2p2n2nRP(NULL),
+ fbinEta3p2n1n1nRP(NULL),
+ fbinEta3p1n1n2nRP(NULL),
+ fbinEta4p1n1n1n1nRP(NULL), 
+ fbinPt2p1n1nPOI(NULL),
+ fbinPt2p2n2nPOI(NULL),
+ fbinPt3p2n1n1nPOI(NULL),
+ fbinPt3p1n1n2nPOI(NULL),
+ fbinPt4p1n1n1n1nPOI(NULL),
+ fbinEta2p1n1nPOI(NULL),
+ fbinEta2p2n2nPOI(NULL),
+ fbinEta3p2n1n1nPOI(NULL),
+ fbinEta3p1n1n2nPOI(NULL),
+ fbinEta4p1n1n1n1nPOI(NULL),  
  fchr2nd(NULL),
  fchr4th(NULL),
  fchr6th(NULL),
@@ -77,7 +92,7 @@ AliQCumulantsFunctions::~AliQCumulantsFunctions()
  //destructor
 }
 
-AliQCumulantsFunctions::AliQCumulantsFunctions(TH1D *intRes, TH1D *diffRes2nd, TH1D *diffRes4th, TH1D *covar, TProfile *AvMult, TProfile *QVector, TProfile *QCorr, TProfile *QProd, TProfile *Direct, TProfile *bin2p1n1n, TProfile *bin2p2n2n, TProfile *bin3p2n1n1n, TProfile *bin3p1n1n2n, TProfile *bin4p1n1n1n1n, AliFlowCommonHistResults *chr2nd, AliFlowCommonHistResults *chr4th, AliFlowCommonHistResults *chr6th, AliFlowCommonHistResults *chr8th):
+AliQCumulantsFunctions::AliQCumulantsFunctions(TH1D *intRes, TH1D *diffRes2nd, TH1D *diffRes4th, TH1D *covar, TProfile *AvMult, TProfile *QVector, TProfile *QCorr, TProfile *QProd, TProfile *Direct, TProfile *binPt2p1n1nRP, TProfile *binPt2p2n2nRP, TProfile *binPt3p2n1n1nRP, TProfile *binPt3p1n1n2nRP, TProfile *binPt4p1n1n1n1nRP, TProfile *binEta2p1n1nRP, TProfile *binEta2p2n2nRP, TProfile *binEta3p2n1n1nRP, TProfile *binEta3p1n1n2nRP, TProfile *binEta4p1n1n1n1nRP, TProfile *binPt2p1n1nPOI, TProfile *binPt2p2n2nPOI, TProfile *binPt3p2n1n1nPOI, TProfile *binPt3p1n1n2nPOI, TProfile *binPt4p1n1n1n1nPOI, TProfile *binEta2p1n1nPOI, TProfile *binEta2p2n2nPOI, TProfile *binEta3p2n1n1nPOI, TProfile *binEta3p1n1n2nPOI, TProfile *binEta4p1n1n1n1nPOI, AliFlowCommonHistResults *chr2nd, AliFlowCommonHistResults *chr4th, AliFlowCommonHistResults *chr6th, AliFlowCommonHistResults *chr8th):
  fIntRes(intRes),
  fDiffRes2nd(diffRes2nd),
  fDiffRes4th(diffRes4th),
@@ -87,11 +102,26 @@ AliQCumulantsFunctions::AliQCumulantsFunctions(TH1D *intRes, TH1D *diffRes2nd, T
  fQCorr(QCorr),
  fQProd(QProd),
  fDirect(Direct),
- fbin2p1n1n(bin2p1n1n),
- fbin2p2n2n(bin2p2n2n),
- fbin3p2n1n1n(bin3p2n1n1n),
- fbin3p1n1n2n(bin3p1n1n2n),
- fbin4p1n1n1n1n(bin4p1n1n1n1n),
+ fbinPt2p1n1nRP(binPt2p1n1nRP),
+ fbinPt2p2n2nRP(binPt2p2n2nRP),
+ fbinPt3p2n1n1nRP(binPt3p2n1n1nRP),
+ fbinPt3p1n1n2nRP(binPt3p1n1n2nRP),
+ fbinPt4p1n1n1n1nRP(binPt4p1n1n1n1nRP),
+ fbinEta2p1n1nRP(binEta2p1n1nRP),
+ fbinEta2p2n2nRP(binEta2p2n2nRP),
+ fbinEta3p2n1n1nRP(binEta3p2n1n1nRP),
+ fbinEta3p1n1n2nRP(binEta3p1n1n2nRP),
+ fbinEta4p1n1n1n1nRP(binEta4p1n1n1n1nRP),
+ fbinPt2p1n1nPOI(binPt2p1n1nPOI),
+ fbinPt2p2n2nPOI(binPt2p2n2nPOI),
+ fbinPt3p2n1n1nPOI(binPt3p2n1n1nPOI),
+ fbinPt3p1n1n2nPOI(binPt3p1n1n2nPOI),
+ fbinPt4p1n1n1n1nPOI(binPt4p1n1n1n1nPOI),
+ fbinEta2p1n1nPOI(binEta2p1n1nPOI),
+ fbinEta2p2n2nPOI(binEta2p2n2nPOI),
+ fbinEta3p2n1n1nPOI(binEta3p2n1n1nPOI),
+ fbinEta3p1n1n2nPOI(binEta3p1n1n2nPOI),
+ fbinEta4p1n1n1n1nPOI(binEta4p1n1n1n1nPOI),   
  fchr2nd(chr2nd),
  fchr4th(chr4th),
  fchr6th(chr6th),
@@ -166,11 +196,11 @@ void AliQCumulantsFunctions::Calculate()
  Double_t eightOrderQCumulant = eight-16.*two*six-18.*pow(four,2.)+144.*pow(two,2.)*four-144.*pow(two,4.);    
               
  //integrated flow estimates from Q-cumulants:
- cout<<" "<<endl;
- cout<<"*********************************"<<endl;
- cout<<"*********************************"<<endl;
+ cout<<endl;
+ cout<<"***********************************"<<endl;
+ cout<<"***********************************"<<endl;
  cout<<"flow estimates from Q-cumulants:"<<endl;
- cout<<" "<<endl;
+ cout<<endl;
  
  Double_t vn2=0.,vn4=0.,vn6=0.,vn8=0.;
  Double_t sd2=0.,sd4=0.,sd6=0.,sd8=0.; 
@@ -181,8 +211,9 @@ void AliQCumulantsFunctions::Calculate()
   fIntRes->SetBinContent(1,vn2);
   fIntRes->SetBinError(1,sd2);
   //common histograms:
-  fchr2nd->FillIntegratedFlow(vn2,sd2);
-  fchr2nd->FillChi(vn2*pow(AvM,0.5));
+  fchr2nd->FillIntegratedFlow(vn2,sd2);//to be removed
+  fchr2nd->FillChi(vn2*pow(AvM,0.5));//to be removed
+  fchr2nd->FillIntegratedFlowRP(vn2,sd2);
  }else{
   cout<<" v_"<<n<<"{2} = Im"<<endl;
  }
@@ -193,8 +224,9 @@ void AliQCumulantsFunctions::Calculate()
   fIntRes->SetBinContent(2,vn4);
   fIntRes->SetBinError(2,sd4);
   //common histograms:
-  fchr4th->FillIntegratedFlow(vn4,sd4);
-  fchr4th->FillChi(vn4*pow(AvM,0.5));
+  fchr4th->FillIntegratedFlow(vn4,sd4);//to be removed
+  fchr4th->FillChi(vn4*pow(AvM,0.5));//to be removed
+  fchr4th->FillIntegratedFlowRP(vn4,sd4);
  }else{
   cout<<" v_"<<n<<"{4} = Im"<<endl;
  }
@@ -205,8 +237,9 @@ void AliQCumulantsFunctions::Calculate()
   fIntRes->SetBinContent(3,vn6);
   fIntRes->SetBinError(3,sd6);
   //common histograms:
-  fchr6th->FillIntegratedFlow(vn6,sd6);
-  fchr6th->FillChi(vn6*pow(AvM,0.5));
+  fchr6th->FillIntegratedFlow(vn6,sd6);//to be removed
+  fchr6th->FillChi(vn6*pow(AvM,0.5));//to be removed
+  fchr6th->FillIntegratedFlowRP(vn6,sd6);
  }else{
   cout<<" v_"<<n<<"{6} = Im"<<endl;
  }
@@ -216,60 +249,125 @@ void AliQCumulantsFunctions::Calculate()
   fIntRes->SetBinContent(4,vn8);
   fIntRes->SetBinError(4,sd8);
   //common histograms:
-  fchr8th->FillIntegratedFlow(vn8,sd8);
-  fchr8th->FillChi(vn8*pow(AvM,0.5));
+  fchr8th->FillIntegratedFlow(vn8,sd8);//to be removed
+  fchr8th->FillChi(vn8*pow(AvM,0.5));//to be removed
+  fchr8th->FillIntegratedFlowRP(vn8,sd8);
+ }else{
+  cout<<" v_"<<n<<"{8} = Im"<<endl;
  }
- cout<<" "<<endl;
+ cout<<endl;
  cout<<"   nEvts = "<<nEvts<<", AvM = "<<AvM<<endl;
- cout<<"*********************************"<<endl;
- cout<<"*********************************"<<endl;
- cout<<" "<<endl; 
+ cout<<"***********************************"<<endl;
+ cout<<"***********************************"<<endl;
+ cout<<endl; 
 //--------------------------------------------------------------------------------------------------------- 
  
 //---------------------------------------------------------------------------------------------------------    
-//differential flow
-Double_t secondOrderQCumulantDiffFlow = 0.;
-Double_t fourthOrderQCumulantDiffFlow = 0.;
+//differential flow (RP)
+
+//Pt:
+Double_t secondOrderQCumulantDiffFlowPtRP = 0.;
+Double_t fourthOrderQCumulantDiffFlowPtRP = 0.;
+
+Int_t nBinsPtRP = fbinPt2p1n1nRP->GetNbinsX();
+
+for(Int_t bb=1;bb<nBinsPtRP+1;bb++)
+{
+ if(fbinPt2p1n1nRP->GetBinEntries(bb)>0.&&vn2!=0)
+ {
+  secondOrderQCumulantDiffFlowPtRP = fbinPt2p1n1nRP->GetBinContent(bb);
+  fDiffRes2nd->SetBinContent(bb,secondOrderQCumulantDiffFlowPtRP/vn2);
+  //common histogram:
+  fchr2nd->FillDifferentialFlowPtRP(bb,secondOrderQCumulantDiffFlowPtRP/vn2, 0.);//to be improved (errors)
+ }
+ if(fbinPt4p1n1n1n1nRP->GetBinEntries(bb)>0.&&vn4!=0.)
+ {
+  fourthOrderQCumulantDiffFlowPtRP = fbinPt4p1n1n1n1nRP->GetBinContent(bb)-2.*fbinPt2p1n1nRP->GetBinContent(bb)*pow(vn2,2.);
+  fDiffRes4th->SetBinContent(bb,-1.*fourthOrderQCumulantDiffFlowPtRP/pow(vn4,3.));
+  //common histogram:
+  fchr4th->FillDifferentialFlowPtRP(bb,-1.*fourthOrderQCumulantDiffFlowPtRP/pow(vn4,3.), 0.);//to be improved (errors)
+ }
+}      
+
+//Eta:
+Double_t secondOrderQCumulantDiffFlowEtaRP = 0.;
+Double_t fourthOrderQCumulantDiffFlowEtaRP = 0.;
+
+Int_t nBinsEtaRP = fbinEta2p1n1nRP->GetNbinsX();
 
-Int_t nBins = fbin2p1n1n->GetNbinsX();
+for(Int_t bb=1;bb<nBinsEtaRP+1;bb++)
+{
+ if(fbinEta2p1n1nRP->GetBinEntries(bb)>0.&&vn2!=0)
+ {
+  secondOrderQCumulantDiffFlowEtaRP = fbinEta2p1n1nRP->GetBinContent(bb);
+  fDiffRes2nd->SetBinContent(bb,secondOrderQCumulantDiffFlowEtaRP/vn2);
+  //common histogram:
+  fchr2nd->FillDifferentialFlowEtaRP(bb,secondOrderQCumulantDiffFlowEtaRP/vn2, 0.);//to be improved (errors)
+ }
+ if(fbinEta4p1n1n1n1nRP->GetBinEntries(bb)>0.&&vn4!=0.)
+ {
+  fourthOrderQCumulantDiffFlowEtaRP = fbinEta4p1n1n1n1nRP->GetBinContent(bb)-2.*fbinEta2p1n1nRP->GetBinContent(bb)*pow(vn2,2.);
+  fDiffRes4th->SetBinContent(bb,-1.*fourthOrderQCumulantDiffFlowEtaRP/pow(vn4,3.));
+  //common histogram:
+  fchr4th->FillDifferentialFlowEtaRP(bb,-1.*fourthOrderQCumulantDiffFlowEtaRP/pow(vn4,3.), 0.);//to be improved (errors)
+ }
+}      
+
+
+//differential flow (POI)
+
+//Pt:
+Double_t secondOrderQCumulantDiffFlowPtPOI = 0.;
+Double_t fourthOrderQCumulantDiffFlowPtPOI = 0.;
 
-for(Int_t bb=1;bb<nBins+1;bb++)
+Int_t nBinsPtPOI = fbinPt2p1n1nPOI->GetNbinsX();
+
+for(Int_t bb=1;bb<nBinsPtPOI+1;bb++)
 {
- if(fbin2p1n1n->GetBinEntries(bb)>0.&&vn2!=0)
+ if(fbinPt2p1n1nPOI->GetBinEntries(bb)>0.&&vn2!=0)
  {
-  secondOrderQCumulantDiffFlow = fbin2p1n1n->GetBinContent(bb);
-  fDiffRes2nd->SetBinContent(bb,secondOrderQCumulantDiffFlow/vn2);
+  secondOrderQCumulantDiffFlowPtPOI = fbinPt2p1n1nPOI->GetBinContent(bb);
+  fDiffRes2nd->SetBinContent(bb,secondOrderQCumulantDiffFlowPtPOI/vn2);
   //common histogram:
-  fchr2nd->FillDifferentialFlow(bb,secondOrderQCumulantDiffFlow/vn2, 0.);//to be improved (errors)
+  fchr2nd->FillDifferentialFlowPtPOI(bb,secondOrderQCumulantDiffFlowPtPOI/vn2, 0.);//to be improved (errors)
  }
- if(fbin4p1n1n1n1n->GetBinEntries(bb)>0.&&vn4!=0.)
+ if(fbinPt4p1n1n1n1nPOI->GetBinEntries(bb)>0.&&vn4!=0.)
  {
-  fourthOrderQCumulantDiffFlow = fbin4p1n1n1n1n->GetBinContent(bb)-2.*fbin2p1n1n->GetBinContent(bb)*pow(vn2,2.);
-  fDiffRes4th->SetBinContent(bb,-1.*fourthOrderQCumulantDiffFlow/pow(vn4,3.));
+  fourthOrderQCumulantDiffFlowPtPOI = fbinPt4p1n1n1n1nPOI->GetBinContent(bb)-2.*fbinPt2p1n1nPOI->GetBinContent(bb)*pow(vn2,2.);
+  fDiffRes4th->SetBinContent(bb,-1.*fourthOrderQCumulantDiffFlowPtPOI/pow(vn4,3.));
   //common histogram:
-  fchr4th->FillDifferentialFlow(bb,-1.*fourthOrderQCumulantDiffFlow/pow(vn4,3.), 0.);//to be improved (errors)
+  fchr4th->FillDifferentialFlowPtPOI(bb,-1.*fourthOrderQCumulantDiffFlowPtPOI/pow(vn4,3.), 0.);//to be improved (errors)
  }
 }      
+
+//Eta:
+Double_t secondOrderQCumulantDiffFlowEtaPOI = 0.;
+Double_t fourthOrderQCumulantDiffFlowEtaPOI = 0.;
+
+Int_t nBinsEtaPOI = fbinEta2p1n1nPOI->GetNbinsX();
+
+for(Int_t bb=1;bb<nBinsEtaPOI+1;bb++)
+{
+ if(fbinEta2p1n1nPOI->GetBinEntries(bb)>0.&&vn2!=0)
+ {
+  secondOrderQCumulantDiffFlowEtaPOI = fbinEta2p1n1nPOI->GetBinContent(bb);
+  fDiffRes2nd->SetBinContent(bb,secondOrderQCumulantDiffFlowEtaPOI/vn2);
+  //common histogram:
+  fchr2nd->FillDifferentialFlowEtaPOI(bb,secondOrderQCumulantDiffFlowEtaPOI/vn2, 0.);//to be improved (errors)
+ }
+ if(fbinEta4p1n1n1n1nPOI->GetBinEntries(bb)>0.&&vn4!=0.)
+ {
+  fourthOrderQCumulantDiffFlowEtaPOI = fbinEta4p1n1n1n1nPOI->GetBinContent(bb)-2.*fbinEta2p1n1nPOI->GetBinContent(bb)*pow(vn2,2.);
+  fDiffRes4th->SetBinContent(bb,-1.*fourthOrderQCumulantDiffFlowEtaPOI/pow(vn4,3.));
+  //common histogram:
+  fchr4th->FillDifferentialFlowEtaPOI(bb,-1.*fourthOrderQCumulantDiffFlowEtaPOI/pow(vn4,3.), 0.);//to be improved (errors)
+ }
+}      
+
 //---------------------------------------------------------------------------------------------------------       
         
-         
-                                                                                    
  
+
  
  
  
@@ -278,16 +376,16 @@ for(Int_t bb=1;bb<nBins+1;bb++)
  Double_t second=pow(fourErr,2.);
  Double_t third=-8.*two*cov24;
  
- cout<<" "<<endl;
- cout<<" "<<endl;
- cout<<" "<<endl;
+ cout<<endl;
+ cout<<endl;
+ cout<<endl;
  cout<<"       1st = "<<(1./16.)*first/(pow(-fourthOrderQCumulant,1.5))<<endl;
  cout<<"       2nd = "<<(1./16.)*second/(pow(-fourthOrderQCumulant,1.5))<<endl;
  cout<<"       3rd = "<<(1./16.)*third/(pow(-fourthOrderQCumulant,1.5))<<endl;
- cout<<" "<<endl;
+ cout<<endl;
  cout<<"   nEvts = "<<nEvts<<", AvM = "<<AvM<<endl;
- cout<<" "<<endl;
- cout<<" "<<endl;
+ cout<<endl;
+ cout<<endl;
  cout<<"c-c = "<<pow((1./16.)*((first+second+third)/(pow(-fourthOrderQCumulant,1.5))),0.5)<<endl; 
  */
  
@@ -389,16 +487,16 @@ for(Int_t bb=1;bb<nBins+1;bb++)
  
  cout<<"<4>_{3n,n,n,n} correlation from Q-vector = "<<four_3n_n_n_n<<endl;AvQ2
  cout<<"<4>_{3n,n,n,n} correlation directly      = "<<fourDirect_3n_n_n_n<<endl;
- cout<<" "<<endl;
+ cout<<endl;
  cout<<"<4>_{2n,n,2n,n} correlation from Q-vector = "<<four_2n_n_2n_n<<endl;
  cout<<"<4>_{2n,n,2n,n} correlation directly      = "<<fourDirect_2n_n_2n_n<<endl;
- cout<<" "<<endl;
+ cout<<endl;
  cout<<"<5>_{2n,n,n,n,n} correlation from Q-vector = "<<five_2n_n_n_n_n<<endl;
  cout<<"<5>_{2n,n,n,n,n} correlation directly      = "<<fiveDirect_2n_n_n_n_n<<endl;
- cout<<" "<<endl;
+ cout<<endl;
  cout<<"<6>_{n,n,n,n,n,n} correlation from Q-vector = "<<six_n_n_n_n_n_n<<endl;
  cout<<"<6>_{n,n,n,n,n,n} correlation directly      = "<<sixDirect_n_n_n_n_n_n<<endl;
- cout<<" "<<endl;
+ cout<<endl;
  */
  
  
@@ -418,9 +516,9 @@ Double_t sixthOrderQCumulant = (AvQ6+9.*HereQ2nQnQ2nstarQnstar-6.*HereQ2nQnQnsta
                    
  
  
- //cout<<" "<<endl;
+ //cout<<endl;
  //cout<<"should be the same? "<<threeDirect_3n_2n_n<<" "<<three_2n_n_nTemp<<endl;
- //cout<<" "<<endl;
+ //cout<<endl;
  
  
  
@@ -428,11 +526,11 @@ Double_t sixthOrderQCumulant = (AvQ6+9.*HereQ2nQnQ2nstarQnstar-6.*HereQ2nQnQnsta
  
  
  
- //cout<<" "<<endl;
+ //cout<<endl;
  cout<<"***************************"<<endl;
- cout<<" "<<endl;
+ cout<<endl;
  cout<<"multiplicity = "<<AvM<<endl;
- cout<<" "<<endl;
+ cout<<endl;
  
  Double_t two=(AvQ2-AvM)/(AvM*(AvM-1));
  Double_t two_2n=(AvQ_2n2-AvM)/(AvM*(AvM-1));
@@ -442,7 +540,7 @@ Double_t sixthOrderQCumulant = (AvQ6+9.*HereQ2nQnQ2nstarQnstar-6.*HereQ2nQnQnsta
  
 
  //cout<<"two's = "<<two<<" "<<two_2n<<" "<<two_3n<<" "<<two_4n<<" "<<two_5n<<endl;
- cout<<" "<<endl;
+ cout<<endl;
  Double_t four=(2.*AvM*(AvM-3.)+AvQ4-4.*(AvM-2.)*AvQ2-2.*ReQ2nQnstarQnstar+AvQ_2n2)/(AvM*(AvM-1)*(AvM-2)*(AvM-3));
  Double_t three_2n_n_n=(ReQ2nQnstarQnstar-AvM-2*AvM*(AvM-1)*two-AvM*(AvM-1)*two_2n)/(AvM*(AvM-1)*(AvM-2));
  
@@ -476,28 +574,28 @@ Double_t sixthOrderQCumulant = (AvQ6+9.*HereQ2nQnQ2nstarQnstar-6.*HereQ2nQnQnsta
   
  cout<<"<2> correlation from Q-vector           = "<<two<<endl;
  cout<<"<2> correlation directly                = "<<twoDirect_n_n<<endl;
- cout<<" "<<endl;
+ cout<<endl;
  cout<<"<4> correlation from Q-vector           = "<<four<<endl;
  cout<<"<4> correlation directly                = "<<fourDirect<<endl;
- cout<<" "<<endl;
+ cout<<endl;
  cout<<"<3>_{2n,n,n} correlation from Q-vector  = "<<three_2n_n_n<<endl;
  cout<<"<3>_{2n,n,n} correlation directly       = "<<threeDirect_2n_n_n<<endl;
- cout<<" "<<endl;
+ cout<<endl;
  cout<<"<3>_{3n,2n,n} correlation from Q-vector = "<<three_3n_2n_n<<endl;
  cout<<"<3>_{3n,2n,n} correlation directly      = "<<threeDirect_3n_2n_n<<endl;
- cout<<" "<<endl;
+ cout<<endl;
  cout<<"<4>_{3n,n,n,n} correlation from Q-vector = "<<four_3n_n_n_n<<endl;
  cout<<"<4>_{3n,n,n,n} correlation directly      = "<<fourDirect_3n_n_n_n<<endl;
- cout<<" "<<endl;
+ cout<<endl;
  cout<<"<4>_{2n,n,2n,n} correlation from Q-vector = "<<four_2n_n_2n_n<<endl;
  cout<<"<4>_{2n,n,2n,n} correlation directly      = "<<fourDirect_2n_n_2n_n<<endl;
- cout<<" "<<endl;
+ cout<<endl;
  cout<<"<5>_{2n,n,n,n,n} correlation from Q-vector = "<<five_2n_n_n_n_n<<endl;
  cout<<"<5>_{2n,n,n,n,n} correlation directly      = "<<fiveDirect_2n_n_n_n_n<<endl;
- cout<<" "<<endl;
+ cout<<endl;
  cout<<"<6>_{n,n,n,n,n,n} correlation from Q-vector = "<<six_n_n_n_n_n_n<<endl;
  cout<<"<6>_{n,n,n,n,n,n} correlation directly      = "<<sixDirect_n_n_n_n_n_n<<endl;
- cout<<" "<<endl;
+ cout<<endl;
 
 
 
@@ -508,7 +606,7 @@ Double_t sixthOrderQCumulant = (AvQ6+9.*HereQ2nQnQ2nstarQnstar-6.*HereQ2nQnQnsta
  //cout<<"temp re = "<<ReQ2nQnstarQnstar<<endl;
  //cout<<"temp im = "<<ImQ2nQnstarQnstar<<endl;
  //cout<<AvQ2<<" "<<sqrt(AvQ4)<<endl;
- cout<<" "<<endl;
+ cout<<endl;
 
  
  
@@ -529,7 +627,7 @@ Double_t sixthOrderQCumulant = (AvQ6+9.*HereQ2nQnQ2nstarQnstar-6.*HereQ2nQnQnsta
 
 
  cout<<"AvM = "<<AvM<<endl;
- cout<<" "<<endl; 
+ cout<<endl; 
  cout<<"*************************************"<<endl;
  cout<<"*************************************"<<endl;
  cout<<"flow estimates from Q-cumulants:"<<endl;
@@ -537,7 +635,7 @@ Double_t sixthOrderQCumulant = (AvQ6+9.*HereQ2nQnQ2nstarQnstar-6.*HereQ2nQnQnsta
  Double_t cumulant4Q=four-2.*two*two;
  Double_t cumulant6Q=12.*two*two*two-9.*two*four+six_n_n_n_n_n_n;
 
- //cout<<" "<<endl;
+ //cout<<endl;
  if(cumulant2Q>0.){
   cout<<"v_2{2} = "<<100*pow(cumulant2Q,1./2.)<<"%"<<endl;
  }else{
@@ -556,10 +654,10 @@ Double_t sixthOrderQCumulant = (AvQ6+9.*HereQ2nQnQ2nstarQnstar-6.*HereQ2nQnQnsta
  
  cout<<"*************************************"<<endl;
  cout<<"*************************************"<<endl;
- cout<<" "<<endl;
+ cout<<endl;
  
  
- cout<<" "<<endl; 
+ cout<<endl; 
  cout<<"*************************************"<<endl;
  cout<<"*************************************"<<endl;
  cout<<"flow estimates from Q-cumulants"<<endl; 
@@ -568,7 +666,7 @@ Double_t sixthOrderQCumulant = (AvQ6+9.*HereQ2nQnQ2nstarQnstar-6.*HereQ2nQnQnsta
  Double_t cumulant4QnoFluct=fQCorr->GetBinContent(11)-2.*fQCorr->GetBinContent(1)*fQCorr->GetBinContent(1);
  Double_t cumulant6QnoFluct=12.*fQCorr->GetBinContent(1)*fQCorr->GetBinContent(1)*fQCorr->GetBinContent(1) - 9.*fQCorr->GetBinContent(1)*fQCorr->GetBinContent(11)+fQCorr->GetBinContent(21);
 
- //cout<<" "<<endl;
+ //cout<<endl;
  if(cumulant2QnoFluct>0.){
   cout<<"v_2{2} = "<<100*pow(cumulant2QnoFluct,1./2.)<<"%"<<endl;
   fIntRes->SetBinContent(1,100*pow(cumulant2QnoFluct,1./2.));
@@ -590,7 +688,7 @@ Double_t sixthOrderQCumulant = (AvQ6+9.*HereQ2nQnQ2nstarQnstar-6.*HereQ2nQnQnsta
  
  cout<<"*************************************"<<endl;
  cout<<"*************************************"<<endl;
- cout<<" "<<endl;
+ cout<<endl;
  
 
  
@@ -601,15 +699,15 @@ Double_t sixthOrderQCumulant = (AvQ6+9.*HereQ2nQnQ2nstarQnstar-6.*HereQ2nQnQnsta
  cout<<"*****************************************************************"<<endl;
  cout<<"direct (nested loops) correlations vs correlations from Q-vectors"<<endl;
  cout<<"for ARBITRARY multiplicity:"<<endl;
- cout<<" "<<endl;
+ cout<<endl;
  cout<<"avarage multiplicity = "<<AvM<<endl;
- cout<<" "<<endl;
+ cout<<endl;
  cout<<"<2>_{n|n} correlation from Q-vector         = "<<fQCorr->GetBinContent(1)<<endl;
  cout<<"<2>_{n|n} correlation nested loops          = "<<fDirect->GetBinContent(1)<<endl;
- cout<<" "<<endl;
+ cout<<endl;
  cout<<"<4>_{n,n|n,n} correlation from Q-vector     = "<<fQCorr->GetBinContent(11)<<endl;
  cout<<"<4>_{n,n|n,n} correlation nested loops      = "<<fDirect->GetBinContent(2)<<endl; 
- cout<<" "<<endl;
+ cout<<endl;
  cout<<"<6>_{n,n,n|n,n,n} correlation from Q-vector = "<<fQCorr->GetBinContent(21)<<endl;
  cout<<"<6>_{n,n,n|n,n,n} correlation nested loops  = "<<fDirect->GetBinContent(8)<<endl; 
  cout<<"*****************************************************************"<<endl;
@@ -635,16 +733,16 @@ Double_t sixthOrderQCumulant = (AvQ6+9.*HereQ2nQnQ2nstarQnstar-6.*HereQ2nQnQnsta
 
  
  
- cout<<" "<<endl;
+ cout<<endl;
  cout<<"fourth order Q-cumulant should be the same and BDO4? "<<fourthOrderQCumulant<<" "<<cumulant4Q<<" "<<BDO4<<endl;
- cout<<" "<<endl;
- cout<<" "<<endl;
+ cout<<endl;
+ cout<<endl;
  cout<<"sixth order Q-cumulant should be the same and BDO6? "<<sixthOrderQCumulant<<" "<<cumulant6Q<<" "<<BDO6<<endl;
- cout<<" "<<endl;
+ cout<<endl;
  
  cout<<"*************************************"<<endl;
  cout<<"*************************************"<<endl;
- cout<<" "<<endl;
+ cout<<endl;
  
  
  
@@ -697,91 +795,91 @@ Double_t sixthOrderQCumulant = (AvQ6+9.*HereQ2nQnQ2nstarQnstar-6.*HereQ2nQnQnsta
 //needed for direct correlations
 
 
- cout<<" "<<endl;
- cout<<" "<<endl;
+ cout<<endl;
+ cout<<endl;
  cout<<"   **** cross-checking the formulas ****"<<endl;
  cout<<"   ****     for integrated flow     ****"<<endl;
  cout<<"(selected only events for which 8 < M < 14 "<<endl;
  cout<<"  from dataset in /data/alice2/ante/AOD)   "<<endl;
 
- cout<<" "<<endl;
+ cout<<endl;
  cout<<"   nEvts = "<<nEvts<<", AvM = "<<AvM<<endl;
- cout<<" "<<endl;
+ cout<<endl;
  cout<<"<2>_{n|n} from Q-vectors                = "<<fQCorr->GetBinContent(1)<<endl;
  cout<<"<2>_{n|n} from nested loops             = "<<fDirect->GetBinContent(1)<<endl;
- cout<<" "<<endl;
+ cout<<endl;
  cout<<"<2>_{2n|2n} from Q-vectors              = "<<fQCorr->GetBinContent(2)<<endl;
  cout<<"<2>_{2n|2n} from nested loops           = "<<fDirect->GetBinContent(2)<<endl;
- cout<<" "<<endl;
+ cout<<endl;
  cout<<"<2>_{3n|3n} from Q-vectors              = "<<fQCorr->GetBinContent(3)<<endl;
  cout<<"<2>_{3n|3n} from nested loops           = "<<fDirect->GetBinContent(3)<<endl;
- cout<<" "<<endl;
+ cout<<endl;
  cout<<"<2>_{4n|4n} from Q-vectors              = "<<fQCorr->GetBinContent(4)<<endl;
  cout<<"<2>_{4n|4n} from nested loops           = "<<fDirect->GetBinContent(4)<<endl;
- cout<<" "<<endl;
+ cout<<endl;
  cout<<"<3>_{2n,n,n} from Q-vectors             = "<<fQCorr->GetBinContent(6)<<endl;
  cout<<"<3>_{2n,n,n} from nested loops          = "<<fDirect->GetBinContent(6)<<endl;
- cout<<" "<<endl;
+ cout<<endl;
  cout<<"<3>_{3n,2n,n} from Q-vectors            = "<<fQCorr->GetBinContent(7)<<endl;
  cout<<"<3>_{3n,2n,n} from nested loops         = "<<fDirect->GetBinContent(7)<<endl;
- cout<<" "<<endl; 
+ cout<<endl; 
  cout<<"<3>_{4n,2n,2n} from Q-vectors           = "<<fQCorr->GetBinContent(8)<<endl;
  cout<<"<3>_{4n,2n,2n} from nested loops        = "<<fDirect->GetBinContent(8)<<endl;
- cout<<" "<<endl;
+ cout<<endl;
  cout<<"<3>_{4n,3n,n} from Q-vectors            = "<<fQCorr->GetBinContent(9)<<endl;
  cout<<"<3>_{4n,3n,n} from nested loops         = "<<fDirect->GetBinContent(9)<<endl;
- cout<<" "<<endl;
+ cout<<endl;
  cout<<"<4>_{n,n|n,n} from Q-vectors            = "<<fQCorr->GetBinContent(11)<<endl;
  cout<<"<4>_{n,n|n,n} from nested loops         = "<<fDirect->GetBinContent(11)<<endl;
- cout<<" "<<endl;
+ cout<<endl;
  cout<<"<4>_{2n,n|2n,n} from Q-vectors          = "<<fQCorr->GetBinContent(12)<<endl;
  cout<<"<4>_{2n,n|2n,n} from nested loops       = "<<fDirect->GetBinContent(12)<<endl;
- cout<<" "<<endl;
+ cout<<endl;
  cout<<"<4>_{2n,2n|2n,2n} from Q-vectors        = "<<fQCorr->GetBinContent(13)<<endl;
  cout<<"<4>_{2n,2n|2n,2n} from nested loops     = "<<fDirect->GetBinContent(13)<<endl;
- cout<<" "<<endl;
+ cout<<endl;
  cout<<"<4>_{3n|n,n,n} from Q-vectors           = "<<fQCorr->GetBinContent(14)<<endl;
  cout<<"<4>_{3n|n,n,n} from nested loops        = "<<fDirect->GetBinContent(14)<<endl;
- cout<<" "<<endl;
+ cout<<endl;
  cout<<"<4>_{3n,n|3n,n} from Q-vectors          = "<<fQCorr->GetBinContent(15)<<endl;
  cout<<"<4>_{3n,n|3n,n} from nested loops       = "<<fDirect->GetBinContent(15)<<endl;
- cout<<" "<<endl;
+ cout<<endl;
  cout<<"<4>_{3n,n|2n,2n} from Q-vectors         = "<<fQCorr->GetBinContent(16)<<endl;
  cout<<"<4>_{3n,n|2n,2n} from nested loops      = "<<fDirect->GetBinContent(16)<<endl;
- cout<<" "<<endl; 
+ cout<<endl; 
  cout<<"<4>_{4n|2n,n,n} from Q-vectors          = "<<fQCorr->GetBinContent(17)<<endl;
  cout<<"<4>_{4n|2n,n,n} from nested loops       = "<<fDirect->GetBinContent(17)<<endl;
- cout<<" "<<endl;
+ cout<<endl;
  cout<<"<5>_{2n,n|n,n,n} from Q-vectors         = "<<fQCorr->GetBinContent(19)<<endl;
  cout<<"<5>_{2n,n|n,n,n} from nested loops      = "<<fDirect->GetBinContent(19)<<endl;
- cout<<" "<<endl;
+ cout<<endl;
  cout<<"<5>_{2n,2n|2n,n,n} from Q-vectors       = "<<fQCorr->GetBinContent(20)<<endl;
  cout<<"<5>_{2n,2n|2n,n,n} from nested loops    = "<<fDirect->GetBinContent(20)<<endl;
- cout<<" "<<endl;
+ cout<<endl;
  cout<<"<5>_{3n,n|2n,n,n} from Q-vectors        = "<<fQCorr->GetBinContent(21)<<endl;
  cout<<"<5>_{3n,n|2n,n,n} from nested loops     = "<<fDirect->GetBinContent(21)<<endl;
- cout<<" "<<endl;
+ cout<<endl;
  cout<<"<5>_{4n|n,n,n,n} from Q-vectors         = "<<fQCorr->GetBinContent(22)<<endl;
  cout<<"<5>_{4n|n,n,n,n} from nested loops      = "<<fDirect->GetBinContent(22)<<endl;
- cout<<" "<<endl;
+ cout<<endl;
  cout<<"<6>_{n,n,n|n,n,n} from Q-vectors        = "<<fQCorr->GetBinContent(24)<<endl;
  cout<<"<6>_{n,n,n|n,n,n} from nested loops     = "<<fDirect->GetBinContent(24)<<endl;
- cout<<" "<<endl; 
+ cout<<endl; 
  cout<<"<6>_{2n,n,n|2n,n,n} from Q-vectors      = "<<fQCorr->GetBinContent(25)<<endl;
  cout<<"<6>_{2n,n,n|2n,n,n} from nested loops   = "<<fDirect->GetBinContent(25)<<endl;
- cout<<" "<<endl;
+ cout<<endl;
  cout<<"<6>_{2n,2n|n,n,n,n} from Q-vectors      = "<<fQCorr->GetBinContent(26)<<endl;
  cout<<"<6>_{2n,2n|n,n,n,n} from nested loops   = "<<fDirect->GetBinContent(26)<<endl;
- cout<<" "<<endl; 
+ cout<<endl; 
  cout<<"<6>_{3n,n|n,n,n,n} from Q-vectors       = "<<fQCorr->GetBinContent(27)<<endl;
  cout<<"<6>_{3n,n|n,n,n,n} from nested loops    = "<<fDirect->GetBinContent(27)<<endl;
- cout<<" "<<endl; 
+ cout<<endl; 
  cout<<"<7>_{2n,n,n|n,n,n,n} from Q-vectors     = "<<fQCorr->GetBinContent(29)<<endl;
  cout<<"<7>_{2n,n,n|n,n,n,n} from nested loops  = "<<fDirect->GetBinContent(29)<<endl;
- cout<<" "<<endl; 
+ cout<<endl; 
  cout<<"<8>_{n,n,n,n|n,n,n,n} from Q-vectors    = "<<fQCorr->GetBinContent(31)<<endl;
  cout<<"<8>_{n,n,n,n|n,n,n,n} from nested loops = "<<fDirect->GetBinContent(31)<<endl;
- cout<<" "<<endl; 
+ cout<<endl; 
 
 //DIFFERENTIAL FLOW
 
@@ -796,32 +894,32 @@ Double_t sixthOrderQCumulant = (AvQ6+9.*HereQ2nQnQ2nstarQnstar-6.*HereQ2nQnQnsta
 
 
  
- cout<<" "<<endl;
- cout<<" "<<endl;
+ cout<<endl;
+ cout<<endl;
  cout<<"   **** cross-checking the formulas ****"<<endl;
  cout<<"   ****    for differential flow    ****"<<endl;
  cout<<"(selected only events for which 8 < M < 14 "<<endl;
  cout<<"  from dataset in /data/alice2/ante/AOD)   "<<endl;
 
- cout<<" "<<endl; 
+ cout<<endl; 
  cout<<"nEvts = "<<nEvts<<", AvM = "<<AvM<<endl;
  cout<<"0.5 < Pt < 0.6 GeV"<<endl;                                
- cout<<" "<<endl;                                       
- cout<<"<2'>_{n|n} from Q-vectors        = "<<fbin2p1n1n->GetBinContent(6)<<endl;kTRUE
+ cout<<endl;                                       
+ cout<<"<2'>_{n|n} from Q-vectors        = "<<fbinPt2p1n1n->GetBinContent(6)<<endl;kTRUE
  cout<<"<2'>_{n|n} from nested loops     = "<<fDirect->GetBinContent(41)<<endl;
- cout<<" "<<endl;                                       
- cout<<"<2'>_{2n|2n} from Q-vectors      = "<<fbin2p2n2n->GetBinContent(6)<<endl;
+ cout<<endl;                                       
+ cout<<"<2'>_{2n|2n} from Q-vectors      = "<<fbinPt2p2n2n->GetBinContent(6)<<endl;
  cout<<"<2'>_{2n|2n} from nested loops   = "<<fDirect->GetBinContent(42)<<endl;                                        
- cout<<" "<<endl;  
- cout<<"<3'>_{2n|n,n} from Q-vectors     = "<<fbin3p2n1n1n->GetBinContent(6)<<endl;
+ cout<<endl;  
+ cout<<"<3'>_{2n|n,n} from Q-vectors     = "<<fbinPt3p2n1n1n->GetBinContent(6)<<endl;
  cout<<"<3'>_{2n|n,n} from nested loops  = "<<fDirect->GetBinContent(46)<<endl;                   
- cout<<" "<<endl;              
- cout<<"<3'>_{n,n|2n} from Q-vectors     = "<<fbin3p1n1n2n->GetBinContent(6)<<endl;
+ cout<<endl;              
+ cout<<"<3'>_{n,n|2n} from Q-vectors     = "<<fbinPt3p1n1n2n->GetBinContent(6)<<endl;
  cout<<"<3'>_{n,n|2n} from nested loops  = "<<fDirect->GetBinContent(47)<<endl;                                 
- cout<<" "<<endl;                                                                   
- cout<<"<4'>_{n,n|n,n} from Q-vectors    = "<<fbin4p1n1n1n1n->GetBinContent(6)<<endl;
+ cout<<endl;                                                                   
+ cout<<"<4'>_{n,n|n,n} from Q-vectors    = "<<fbinPt4p1n1n1n1n->GetBinContent(6)<<endl;
  cout<<"<4'>_{n,n|n,n} from nested loops = "<<fDirect->GetBinContent(51)<<endl;                                                                                   
- cout<<" "<<endl;   
+ cout<<endl;   
  
      
        
index 2f4ebe8fe1df0814222df3642d8311675838aeae..5e2c2651fbad76939903f2d456cd9e7fba30c34d 100644 (file)
@@ -35,7 +35,7 @@ class AliQCumulantsFunctions{
  public:
   AliQCumulantsFunctions();
   virtual ~AliQCumulantsFunctions();
-  AliQCumulantsFunctions(TH1D *intRes, TH1D *diffRes2nd, TH1D *diffRes4th, TH1D *covar, TProfile *AvMult, TProfile *QVector, TProfile *QCorr, TProfile *QProd, TProfile *Direct, TProfile *bin2_1n1n, TProfile *bin2p2n2n, TProfile *bin3p2n1n1n, TProfile *bin3p1n1n2n, TProfile *bin4p1n1n1n1n, AliFlowCommonHistResults *chr2nd, AliFlowCommonHistResults *chr4th, AliFlowCommonHistResults *chr6th, AliFlowCommonHistResults *chr8th);
+  AliQCumulantsFunctions(TH1D *intRes, TH1D *diffRes2nd, TH1D *diffRes4th, TH1D *covar, TProfile *AvMult, TProfile *QVector, TProfile *QCorr, TProfile *QProd, TProfile *Direct, TProfile *binPt2p1n1nRP, TProfile *binPt2p2n2nRP, TProfile *binPt3p2n1n1nRP, TProfile *binPt3p1n1n2nRP, TProfile *binPt4p1n1n1n1nRP, TProfile *binEta2p1n1nRP, TProfile *binEta2p2n2nRP, TProfile *binEta3p2n1n1nRP, TProfile *binEta3p1n1n2nRP, TProfile *binEta4p1n1n1n1nRP, TProfile *binPt2p1n1nPOI, TProfile *binPt2p2n2nPOI, TProfile *binPt3p2n1n1nPOI, TProfile *binPt3p1n1n2nPOI, TProfile *binPt4p1n1n1n1nPOI, TProfile *binEta2p1n1nPOI, TProfile *binEta2p2n2nPOI, TProfile *binEta3p2n1n1nPOI, TProfile *binEta3p1n1n2nPOI, TProfile *binEta4p1n1n1n1nPOI, AliFlowCommonHistResults *chr2nd, AliFlowCommonHistResults *chr4th, AliFlowCommonHistResults *chr6th, AliFlowCommonHistResults *chr8th);
  
   void Calculate();
 
@@ -43,23 +43,41 @@ class AliQCumulantsFunctions{
   AliQCumulantsFunctions(const AliQCumulantsFunctions& Qfun);
   AliQCumulantsFunctions& operator=(const AliQCumulantsFunctions& Qfun);
   
-  TH1D     *fIntRes;         //results for integrated flow
-  TH1D     *fDiffRes2nd;     //results for differential flow (2nd order)
-  TH1D     *fDiffRes4th;     //results for differential flow (4th order)
-  TH1D     *fCovar;          //results for covariances (1st bin: <2*4>-<2>*<4>, 2nd bin: <2*6>-<2>*<6>, ...)  
+  TH1D     *fIntRes;          //results for integrated flow
+  TH1D     *fDiffRes2nd;      //results for differential flow (2nd order)
+  TH1D     *fDiffRes4th;      //results for differential flow (4th order)
+  TH1D     *fCovar;           //results for covariances (1st bin: <2*4>-<2>*<4>, 2nd bin: <2*6>-<2>*<6>, ...)  
           
-  TProfile *fAvMult;         //avarage selected multiplicity for int. flow
-  TProfile *fQVector;        //avarage values of Q-vector components
-  TProfile *fQCorr;          //multi-particle correlations calculated from Q-vectors 
-  TProfile *fQProd;          //average of products: 1st bin: <2*4>, 2nd bin: <2*6>, ...
+  TProfile *fAvMult;          //avarage selected multiplicity for int. flow
+  TProfile *fQVector;         //avarage values of Q-vector components
+  TProfile *fQCorr;           //multi-particle correlations calculated from Q-vectors 
+  TProfile *fQProd;           //average of products: 1st bin: <2*4>, 2nd bin: <2*6>, ...
 
-  TProfile *fDirect;         //direct correlations (correlations calculated with nested loopps)
+  TProfile *fDirect;          //direct correlations (correlations calculated with nested loopps)
   
-  TProfile *fbin2p1n1n;      //<<2'>>_{n|n} per pt-bin
-  TProfile *fbin2p2n2n;      //<<2'>>_{2n|2n} per pt-bin
-  TProfile *fbin3p2n1n1n;    //<<3'>>_{2n,n|n} per pt-bin
-  TProfile *fbin3p1n1n2n;    //<<3'>>_{n,n|2n} per pt-bin
-  TProfile *fbin4p1n1n1n1n;  //<<4'>>_{n,n|n,n} per pt-bin
+  TProfile *fbinPt2p1n1nRP;     //<<2'>>_{n|n} per pt-bin
+  TProfile *fbinPt2p2n2nRP;     //<<2'>>_{2n|2n} per pt-bin
+  TProfile *fbinPt3p2n1n1nRP;   //<<3'>>_{2n,n|n} per pt-bin
+  TProfile *fbinPt3p1n1n2nRP;   //<<3'>>_{n,n|2n} per pt-bin
+  TProfile *fbinPt4p1n1n1n1nRP; //<<4'>>_{n,n|n,n} per pt-bin
+  
+  TProfile *fbinEta2p1n1nRP;     //<<2'>>_{n|n} per eta-bin
+  TProfile *fbinEta2p2n2nRP;     //<<2'>>_{2n|2n} per eta-bin
+  TProfile *fbinEta3p2n1n1nRP;   //<<3'>>_{2n,n|n} per eta-bin
+  TProfile *fbinEta3p1n1n2nRP;   //<<3'>>_{n,n|2n} per eta-bin
+  TProfile *fbinEta4p1n1n1n1nRP; //<<4'>>_{n,n|n,n} per eta-bin  
+  
+  TProfile *fbinPt2p1n1nPOI;     //<<2'>>_{n|n} per pt-bin
+  TProfile *fbinPt2p2n2nPOI;     //<<2'>>_{2n|2n} per pt-bin
+  TProfile *fbinPt3p2n1n1nPOI;   //<<3'>>_{2n,n|n} per pt-bin
+  TProfile *fbinPt3p1n1n2nPOI;   //<<3'>>_{n,n|2n} per pt-bin
+  TProfile *fbinPt4p1n1n1n1nPOI; //<<4'>>_{n,n|n,n} per pt-bin
+  
+  TProfile *fbinEta2p1n1nPOI;     //<<2'>>_{n|n} per eta-bin
+  TProfile *fbinEta2p2n2nPOI;     //<<2'>>_{2n|2n} per eta-bin
+  TProfile *fbinEta3p2n1n1nPOI;   //<<3'>>_{2n,n|n} per eta-bin
+  TProfile *fbinEta3p1n1n2nPOI;   //<<3'>>_{n,n|2n} per eta-bin
+  TProfile *fbinEta4p1n1n1n1nPOI; //<<4'>>_{n,n|n,n} per eta-bin  
   
   AliFlowCommonHistResults *fchr2nd; //final results for 2nd order int. and diff. flow stored in the common histograms
   AliFlowCommonHistResults *fchr4th; //final results for 4th order int. and diff. flow stored in the common histograms
index 8eaeb6b13b92dd79744e860f177f6f93dd2751e8..4399039f2f40a61ad8f6b6826dc88e017c6a3e39 100644 (file)
@@ -35,8 +35,8 @@ Double_t phiMinDiff = 0.;
 Int_t PIDDiff       = 211;
 
 int runFlowAnalysisOnKine(Int_t aRuns = 20, const char* 
-                         //                      dir="/data/alice1/kolk/KineOnly3/")
-                         dir="/Users/snelling/alice_data/KineOnly3/")
+                         dir="/data/alice1/kolk/KineOnly3/")
+                         //dir="/Users/snelling/alice_data/KineOnly3/")
 {
   TStopwatch timer;
   timer.Start();
@@ -120,13 +120,15 @@ int runFlowAnalysisOnKine(Int_t aRuns = 20, const char*
   //flow event
   AliFlowEventSimpleMaker* fEventMaker = new AliFlowEventSimpleMaker(); 
   
-  AliFlowAnalysisWithQCumulants   *qc   = NULL;
-  AliFlowAnalysisWithCumulants    *gfc  = NULL;
-  AliFittingQDistribution         *fqd  = NULL;
-  AliFlowAnalysisWithLeeYangZeros *lyz1 = NULL;
-  AliFlowAnalysisWithLeeYangZeros *lyz2 = NULL;
-  AliFlowAnalysisWithMCEventPlane *mcep = NULL;
-  
+  AliFlowAnalysisWithQCumulants    *qc    = NULL;
+  AliFlowAnalysisWithCumulants     *gfc   = NULL;
+  AliFittingQDistribution          *fqd   = NULL;
+  AliFlowAnalysisWithLeeYangZeros  *lyz1  = NULL;
+  AliFlowAnalysisWithLeeYangZeros  *lyz2  = NULL;
+  AliFlowAnalysisWithLYZEventPlane *lyzep = NULL;
+  AliFlowAnalysisWithScalarProduct *sp    = NULL;
+  AliFlowAnalysisWithMCEventPlane  *mcep  = NULL;
+   
   //flow methods:
   //MCEP = monte carlo event plane
   AliFlowAnalysisWithMCEventPlane *mcep = new AliFlowAnalysisWithMCEventPlane();
@@ -187,7 +189,39 @@ int runFlowAnalysisOnKine(Int_t aRuns = 20, const char*
        }
       }
     }
-  
+
+ //LYZEP = Lee-Yang Zeroes event plane
+  AliFlowLYZEventPlane* ep = new AliFlowLYZEventPlane() ;
+  AliFlowAnalysisWithLYZEventPlane* lyzep = new AliFlowAnalysisWithLYZEventPlane();
+  if(LYZEP)
+    {
+      // read the input file from the second lyz run 
+      TString inputFileNameLYZEP = "outputLYZ2analysis.root" ;
+      TFile* inputFileLYZEP = new TFile(inputFileNameLYZEP.Data(),"READ");
+      if(!inputFileLYZEP || inputFileLYZEP->IsZombie()) { 
+       cerr << " ERROR: NO Second Run file... " << endl ; }
+      else { 
+       TList* inputListLYZEP = (TList*)inputFileLYZEP->Get("cobjLYZ2");  
+       if (!inputListLYZEP) {cout<<"list is NULL pointer!"<<endl;
+       }
+       else {
+         cout<<"LYZEP input file/list read..."<<endl;
+         ep   ->SetSecondRunList(inputListLYZEP);
+         lyzep->SetSecondRunList(inputListLYZEP);
+         ep   ->Init();
+         lyzep->Init();
+       }
+      }
+    }
+   
+  //SP = Scalar Product 
+  AliFlowAnalysisWithScalarProduct* sp = new AliFlowAnalysisWithScalarProduct();
+  if(SP)
+    {
+      sp->Init();
+    }
+
+
   //------------------------------------------------------------------------
   
   //standard code
@@ -327,6 +361,20 @@ int runFlowAnalysisOnKine(Int_t aRuns = 20, const char*
                  lyz2->Make(fEvent);
                  cout<<"  --> LYZ2 analysis..."<<endl;
                }
+             //LYZEP
+             if(LYZEP)
+               {
+                 lyzep->Make(fEvent,ep);
+                 cout<<"  --> LYZEP analysis..."<<endl;
+               }
+             //SP
+             if(SP)
+               {
+                 sp->Make(fEvent);
+                 cout<<"  --> SP analysis..."<<endl;
+               }
+
+
 
              //-----------------------------------------------------------
              
@@ -345,7 +393,7 @@ int runFlowAnalysisOnKine(Int_t aRuns = 20, const char*
     {
       mcep->Finish();
       TString *outputFileNameMCEP = new TString("outputMCEPanalysis.root");
-      //mcep->WriteHistograms(outputFileNameMCEP); //add this method
+      //mcep->WriteHistograms(outputFileNameMCEP); //add this method to MCEP classes
       delete outputFileNameMCEP;
     }
   //QC
@@ -388,6 +436,23 @@ int runFlowAnalysisOnKine(Int_t aRuns = 20, const char*
       lyz2->WriteHistograms(outputFileNameLYZ2);
       delete outputFileNameLYZ2;
     }
+  //LYZEP
+  if(LYZEP)
+    {
+      lyzep->Finish();
+      TString *outputFileNameLYZEP = new TString("outputLYZEPanalysis.root");
+      lyzep->WriteHistograms(outputFileNameLYZEP);
+      delete outputFileNameLYZEP;
+    }
+  //SP
+  if(SP)
+    {
+      sp->Finish();
+      TString *outputFileNameSP = new TString("outputSPanalysis.root");
+      sp->WriteHistograms(outputFileNameSP);
+      delete outputFileNameSP;
+    }
+
 
 
   //--------------------------------------------------------------