From 7751545245d0507e230b58e0ff444dcee14c409f Mon Sep 17 00:00:00 2001 From: snelling Date: Mon, 9 Mar 2009 19:43:00 +0000 Subject: [PATCH] removed external class --- PWG2/CMake_libPWG2flowCommon.txt | 2 - .../AliFlowAnalysisWithQCumulants.cxx | 3058 +++++++---------- .../AliFlowAnalysisWithQCumulants.h | 145 +- .../AliFlowCommon/AliQCumulantsFunctions.cxx | 757 ---- .../AliFlowCommon/AliQCumulantsFunctions.h | 128 - .../AliAnalysisTaskQCumulants.cxx | 83 +- PWG2/FLOW/macros/runFlowAnalysis.C | 1 - PWG2/PWG2flowCommonLinkDef.h | 1 - PWG2/libPWG2flowCommon.pkg | 1 - 9 files changed, 1229 insertions(+), 2947 deletions(-) delete mode 100644 PWG2/FLOW/AliFlowCommon/AliQCumulantsFunctions.cxx delete mode 100644 PWG2/FLOW/AliFlowCommon/AliQCumulantsFunctions.h diff --git a/PWG2/CMake_libPWG2flowCommon.txt b/PWG2/CMake_libPWG2flowCommon.txt index aa7c4540785..62c73296cfe 100644 --- a/PWG2/CMake_libPWG2flowCommon.txt +++ b/PWG2/CMake_libPWG2flowCommon.txt @@ -20,8 +20,6 @@ set(SRCS FLOW/AliFlowCommon/AliFlowAnalysisWithCumulants.cxx FLOW/AliFlowCommon/AliFlowAnalysisWithQCumulants.cxx FLOW/AliFlowCommon/AliCumulantsFunctions.cxx - FLOW/AliFlowCommon/AliQCumulantsFunctions.cxx - FLOW/AliFlowCommon/AliAnalysisTaskFittingQDistribution.cxx FLOW/AliFlowCommon/AliFittingFunctionsForQDistribution.cxx FLOW/AliFlowCommon/AliFittingQDistribution.cxx ) diff --git a/PWG2/FLOW/AliFlowCommon/AliFlowAnalysisWithQCumulants.cxx b/PWG2/FLOW/AliFlowCommon/AliFlowAnalysisWithQCumulants.cxx index c2f49ad8d51..f7afc6b2ab6 100644 --- a/PWG2/FLOW/AliFlowCommon/AliFlowAnalysisWithQCumulants.cxx +++ b/PWG2/FLOW/AliFlowCommon/AliFlowAnalysisWithQCumulants.cxx @@ -43,10 +43,7 @@ #include "AliFlowEventSimple.h" #include "AliFlowTrackSimple.h" #include "AliFlowAnalysisWithQCumulants.h" -#include "AliQCumulantsFunctions.h" #include "TArrayD.h" - - #include "TRandom.h" class TH1; @@ -81,80 +78,25 @@ AliFlowAnalysisWithQCumulants::AliFlowAnalysisWithQCumulants(): fQvectorForEachEventX(NULL),//to be removed fQvectorForEachEventY(NULL),//to be removed fQCorrelations(NULL), - fQCorrelationsW(NULL), + fWeightedQCorrelations(NULL), fQProduct(NULL), fDirectCorrelations(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), - fPtReq1nPrimePOI(NULL), - fPtImq1nPrimePOI(NULL), - fPtReq2nPrimePOI(NULL), - fPtImq2nPrimePOI(NULL), - fmPrimePerPtBin(NULL), - fPtReq1nPrimePrimePOI(NULL), - fPtImq1nPrimePrimePOI(NULL), - fPtReq2nPrimePrimePOI(NULL), - fPtImq2nPrimePrimePOI(NULL), - fmPrimePrimePerPtBin(NULL), - fEtaReq1nPrimePOI(NULL), - fEtaImq1nPrimePOI(NULL), - fEtaReq2nPrimePOI(NULL), - fEtaImq2nPrimePOI(NULL), - fmPrimePerEtaBin(NULL), - fEtaReq1nPrimePrimePOI(NULL), - fEtaImq1nPrimePrimePOI(NULL), - fEtaReq2nPrimePrimePOI(NULL), - fEtaImq2nPrimePrimePOI(NULL), - fmPrimePrimePerEtaBin(NULL), f2PerPtBin1n1nPOI(NULL), - f2PerPtBin2n2nPOI(NULL), - f3PerPtBin2n1n1nPOI(NULL), - f3PerPtBin1n1n2nPOI(NULL), f4PerPtBin1n1n1n1nPOI(NULL), f2PerEtaBin1n1nPOI(NULL), - f2PerEtaBin2n2nPOI(NULL), - f3PerEtaBin2n1n1nPOI(NULL), - f3PerEtaBin1n1n2nPOI(NULL), f4PerEtaBin1n1n1n1nPOI(NULL), - - - - f2WPerPtBin1n1nPOI(NULL), - f2WPerPtBin2n2nPOI(NULL), - f3WPerPtBin2n1n1nPOI(NULL), - f3WPerPtBin1n1n2nPOI(NULL), f4WPerPtBin1n1n1n1nPOI(NULL), - f2WPerEtaBin1n1nPOI(NULL), f4WPerEtaBin1n1n1n1nPOI(NULL), - + f2PerPtBin1n1nRP(NULL), + f4PerPtBin1n1n1n1nRP(NULL), + f2PerEtaBin1n1nRP(NULL), + f4PerEtaBin1n1n1n1nRP(NULL), f2WPerPtBin1n1nRP(NULL), f4WPerPtBin1n1n1n1nRP(NULL), - f2WPerEtaBin1n1nRP(NULL), f4WPerEtaBin1n1n1n1nRP(NULL), - - - - - fCommonHists2nd(NULL), fCommonHists4th(NULL), fCommonHists6th(NULL), @@ -321,54 +263,54 @@ void AliFlowAnalysisWithQCumulants::Init() //weighted multi-particle correlations calculated from Q-vectors - fQCorrelationsW = new TProfile("fQCorrelationsW","weighted multi-particle correlations from Q-vectors",100,0,100,"s"); - //fQCorrelationsW->SetXTitle("correlations"); - //fQCorrelationsW->SetYTitle(""); - fQCorrelationsW->SetTickLength(-0.01,"Y"); - fQCorrelationsW->SetMarkerStyle(25); - fQCorrelationsW->SetLabelSize(0.03); - fQCorrelationsW->SetLabelOffset(0.01,"Y"); + fWeightedQCorrelations = new TProfile("fWeightedQCorrelations","weighted multi-particle correlations from Q-vectors",100,0,100,"s"); + //fWeightedQCorrelations->SetXTitle("correlations"); + //fWeightedQCorrelations->SetYTitle(""); + fWeightedQCorrelations->SetTickLength(-0.01,"Y"); + fWeightedQCorrelations->SetMarkerStyle(25); + fWeightedQCorrelations->SetLabelSize(0.03); + fWeightedQCorrelations->SetLabelOffset(0.01,"Y"); - (fQCorrelationsW->GetXaxis())->SetBinLabel(1,""); - (fQCorrelationsW->GetXaxis())->SetBinLabel(2,""); - (fQCorrelationsW->GetXaxis())->SetBinLabel(3,""); - (fQCorrelationsW->GetXaxis())->SetBinLabel(4,""); - (fQCorrelationsW->GetXaxis())->SetBinLabel(5,""); - (fQCorrelationsW->GetXaxis())->SetBinLabel(6,""); + (fWeightedQCorrelations->GetXaxis())->SetBinLabel(1,""); + (fWeightedQCorrelations->GetXaxis())->SetBinLabel(2,""); + (fWeightedQCorrelations->GetXaxis())->SetBinLabel(3,""); + (fWeightedQCorrelations->GetXaxis())->SetBinLabel(4,""); + (fWeightedQCorrelations->GetXaxis())->SetBinLabel(5,""); + (fWeightedQCorrelations->GetXaxis())->SetBinLabel(6,""); - (fQCorrelationsW->GetXaxis())->SetBinLabel(11,""); + (fWeightedQCorrelations->GetXaxis())->SetBinLabel(11,""); - (fQCorrelationsW->GetXaxis())->SetBinLabel(21,""); + (fWeightedQCorrelations->GetXaxis())->SetBinLabel(21,""); /* - (fQCorrelationsW->GetXaxis())->SetBinLabel(7,"<<3>>_{3n|2n,n}"); - (fQCorrelationsW->GetXaxis())->SetBinLabel(8,"<<3>>_{4n|2n,2n}"); - (fQCorrelationsW->GetXaxis())->SetBinLabel(9,"<<3>>_{4n|3n,n}"); - - (fQCorrelationsW->GetXaxis())->SetBinLabel(11,"<<4>>_{n,n|n,n}"); - (fQCorrelationsW->GetXaxis())->SetBinLabel(12,"<<4>>_{2n,n|2n,n}"); - (fQCorrelationsW->GetXaxis())->SetBinLabel(13,"<<4>>_{2n,2n|2n,2n}"); - (fQCorrelationsW->GetXaxis())->SetBinLabel(14,"<<4>>_{3n|n,n,n}"); - (fQCorrelationsW->GetXaxis())->SetBinLabel(15,"<<4>>_{3n,n|3n,n}"); - (fQCorrelationsW->GetXaxis())->SetBinLabel(16,"<<4>>_{3n,n|2n,2n}"); - (fQCorrelationsW->GetXaxis())->SetBinLabel(17,"<<4>>_{4n|2n,n,n}"); - - (fQCorrelationsW->GetXaxis())->SetBinLabel(19,"<<5>>_{2n|n,n,n,n}"); - (fQCorrelationsW->GetXaxis())->SetBinLabel(20,"<<5>>_{2n,2n|2n,n,n}"); - (fQCorrelationsW->GetXaxis())->SetBinLabel(21,"<<5>>_{3n,n|2n,n,n}"); - (fQCorrelationsW->GetXaxis())->SetBinLabel(22,"<<5>>_{4n|n,n,n,n}"); - - (fQCorrelationsW->GetXaxis())->SetBinLabel(24,"<<6>>_{n,n,n|n,n,n}"); - (fQCorrelationsW->GetXaxis())->SetBinLabel(25,"<<6>>_{2n,n,n|2n,n,n}"); - (fQCorrelationsW->GetXaxis())->SetBinLabel(26,"<<6>>_{2n,2n|n,n,n,n}"); - (fQCorrelationsW->GetXaxis())->SetBinLabel(27,"<<6>>_{3n,n|n,n,n,n}"); - - (fQCorrelationsW->GetXaxis())->SetBinLabel(29,"<<7>>_{2n,n,n|n,n,n,n}"); - - (fQCorrelationsW->GetXaxis())->SetBinLabel(31,"<<8>>_{n,n,n,n|n,n,n,n}"); + (fWeightedQCorrelations->GetXaxis())->SetBinLabel(7,"<<3>>_{3n|2n,n}"); + (fWeightedQCorrelations->GetXaxis())->SetBinLabel(8,"<<3>>_{4n|2n,2n}"); + (fWeightedQCorrelations->GetXaxis())->SetBinLabel(9,"<<3>>_{4n|3n,n}"); + + (fWeightedQCorrelations->GetXaxis())->SetBinLabel(11,"<<4>>_{n,n|n,n}"); + (fWeightedQCorrelations->GetXaxis())->SetBinLabel(12,"<<4>>_{2n,n|2n,n}"); + (fWeightedQCorrelations->GetXaxis())->SetBinLabel(13,"<<4>>_{2n,2n|2n,2n}"); + (fWeightedQCorrelations->GetXaxis())->SetBinLabel(14,"<<4>>_{3n|n,n,n}"); + (fWeightedQCorrelations->GetXaxis())->SetBinLabel(15,"<<4>>_{3n,n|3n,n}"); + (fWeightedQCorrelations->GetXaxis())->SetBinLabel(16,"<<4>>_{3n,n|2n,2n}"); + (fWeightedQCorrelations->GetXaxis())->SetBinLabel(17,"<<4>>_{4n|2n,n,n}"); + + (fWeightedQCorrelations->GetXaxis())->SetBinLabel(19,"<<5>>_{2n|n,n,n,n}"); + (fWeightedQCorrelations->GetXaxis())->SetBinLabel(20,"<<5>>_{2n,2n|2n,n,n}"); + (fWeightedQCorrelations->GetXaxis())->SetBinLabel(21,"<<5>>_{3n,n|2n,n,n}"); + (fWeightedQCorrelations->GetXaxis())->SetBinLabel(22,"<<5>>_{4n|n,n,n,n}"); + + (fWeightedQCorrelations->GetXaxis())->SetBinLabel(24,"<<6>>_{n,n,n|n,n,n}"); + (fWeightedQCorrelations->GetXaxis())->SetBinLabel(25,"<<6>>_{2n,n,n|2n,n,n}"); + (fWeightedQCorrelations->GetXaxis())->SetBinLabel(26,"<<6>>_{2n,2n|n,n,n,n}"); + (fWeightedQCorrelations->GetXaxis())->SetBinLabel(27,"<<6>>_{3n,n|n,n,n,n}"); + + (fWeightedQCorrelations->GetXaxis())->SetBinLabel(29,"<<7>>_{2n,n,n|n,n,n,n}"); + + (fWeightedQCorrelations->GetXaxis())->SetBinLabel(31,"<<8>>_{n,n,n,n|n,n,n,n}"); */ - fHistList->Add(fQCorrelationsW); + fHistList->Add(fWeightedQCorrelations); @@ -395,216 +337,31 @@ void AliFlowAnalysisWithQCumulants::Init() fDirectCorrelations->SetYTitle("correlations"); fHistList->Add(fDirectCorrelations); - //fPtReq1nRP - fPtReq1nRP = new TProfile("fPtReq1nRP","Re[q_n]",fnBinsPt,fPtMin,fPtMax,"s"); - fPtReq1nRP->SetXTitle("p_{t} [GeV]"); - fPtReq1nRP->SetYTitle("Re[q_n]"); - - //fPtImq1nRP - fPtImq1nRP = new TProfile("fPtImq1nRP","Im[q_n]",fnBinsPt,fPtMin,fPtMax,"s"); - fPtImq1nRP->SetXTitle("p_{t} [GeV]"); - fPtImq1nRP->SetYTitle("Im[q_n]"); - - //fPtReq2nRP - fPtReq2nRP = new TProfile("fPtReq2nRP","Re[q_2n]",fnBinsPt,fPtMin,fPtMax,"s"); - fPtReq2nRP->SetXTitle("p_{t} [GeV]"); - fPtReq2nRP->SetYTitle("Im[D]"); - - //fPtImq2nRP - fPtImq2nRP = new TProfile("fPtImq2nRP","Im[q_2n]",fnBinsPt,fPtMin,fPtMax,"s"); - fPtImq2nRP->SetXTitle("p_{t} [GeV]"); - fPtImq2nRP->SetYTitle("Im[q_2n]"); - //f2PerPtBin1n1nRP f2PerPtBin1n1nRP = new TProfile("f2PerPtBin1n1nRP","<2'>_{n|n}",fnBinsPt,fPtMin,fPtMax,"s"); f2PerPtBin1n1nRP->SetXTitle("p_{t} [GeV]"); fDiffFlowList->Add(f2PerPtBin1n1nRP); - //f2PerPtBin2n2nRP - f2PerPtBin2n2nRP = new TProfile("f2PerPtBin2n2nRP","<2'>_{2n|2n}",fnBinsPt,fPtMin,fPtMax,"s"); - f2PerPtBin2n2nRP->SetXTitle("p_{t} [GeV]"); - fDiffFlowList->Add(f2PerPtBin2n2nRP); - - //f3PerPtBin2n1n1nRP - f3PerPtBin2n1n1nRP = new TProfile("f3PerPtBin2n1n1nRP","<3'>_{2n|n,n}",fnBinsPt,fPtMin,fPtMax,"s"); - f3PerPtBin2n1n1nRP->SetXTitle("p_{t} [GeV]"); - fDiffFlowList->Add(f3PerPtBin2n1n1nRP); - - //f3PerPtBin1n1n2nRP - f3PerPtBin1n1n2nRP = new TProfile("f3PerPtBin1n1n2nRP","<3'>_{n,n|2n}",fnBinsPt,fPtMin,fPtMax,"s"); - f3PerPtBin1n1n2nRP->SetXTitle("p_{t} [GeV]"); - fDiffFlowList->Add(f3PerPtBin1n1n2nRP); - //f4PerPtBin1n1n1n1nRP f4PerPtBin1n1n1n1nRP = new TProfile("f4PerPtBin1n1n1n1nRP","<4'>_{n,n|n,n}",fnBinsPt,fPtMin,fPtMax,"s"); f4PerPtBin1n1n1n1nRP->SetXTitle("p_{t} [GeV]"); fDiffFlowList->Add(f4PerPtBin1n1n1n1nRP); - //fEtaReq1nRP - fEtaReq1nRP = new TProfile("fEtaReq1nRP","Re[q_n]",fnBinsEta,fEtaMin,fEtaMax,"s"); - fEtaReq1nRP->SetXTitle("#eta"); - fEtaReq1nRP->SetYTitle("Re[q_n]"); - - //fEtaImq1nRP - fEtaImq1nRP = new TProfile("fEtaImq1nRP","Im[q_n]",fnBinsEta,fEtaMin,fEtaMax,"s"); - fEtaImq1nRP->SetXTitle("#eta"); - fEtaImq1nRP->SetYTitle("Im[q_n]"); - - //fEtaReq2nRP - fEtaReq2nRP = new TProfile("fEtaReq2nRP","Re[q_2n]",fnBinsEta,fEtaMin,fEtaMax,"s"); - fEtaReq2nRP->SetXTitle("#eta"); - fEtaReq2nRP->SetYTitle("Im[D]"); - - //fEtaImq2nRP - fEtaImq2nRP = new TProfile("fEtaImq2nRP","Im[q_2n]",fnBinsEta,fEtaMin,fEtaMax,"s"); - fEtaImq2nRP->SetXTitle("#eta"); - fEtaImq2nRP->SetYTitle("Im[q_2n]"); - //f2PerEtaBin1n1nRP f2PerEtaBin1n1nRP = new TProfile("f2PerEtaBin1n1nRP","<2'>_{n|n}",fnBinsEta,fEtaMin,fEtaMax,"s"); f2PerEtaBin1n1nRP->SetXTitle("#eta"); fDiffFlowList->Add(f2PerEtaBin1n1nRP); - //f2PerEtaBin2n2nRP - f2PerEtaBin2n2nRP = new TProfile("f2PerEtaBin2n2nRP","<2'>_{2n|2n}",fnBinsEta,fEtaMin,fEtaMax,"s"); - f2PerEtaBin2n2nRP->SetXTitle("#eta"); - fDiffFlowList->Add(f2PerEtaBin2n2nRP); - - //f3PerEtaBin2n1n1nRP - f3PerEtaBin2n1n1nRP = new TProfile("f3PerEtaBin2n1n1nRP","<3'>_{2n|n,n}",fnBinsEta,fEtaMin,fEtaMax,"s"); - f3PerEtaBin2n1n1nRP->SetXTitle("#eta"); - fDiffFlowList->Add(f3PerEtaBin2n1n1nRP); - - //f3PerEtaBin1n1n2nRP - f3PerEtaBin1n1n2nRP = new TProfile("f3PerEtaBin1n1n2RP","<3'>_{n,n|2n}",fnBinsEta,fEtaMin,fEtaMax,"s"); - f3PerEtaBin1n1n2nRP->SetXTitle("#eta"); - fDiffFlowList->Add(f3PerEtaBin1n1n2nRP); - //f4PerEtaBin1n1n1n1nRP f4PerEtaBin1n1n1n1nRP = new TProfile("f4PerEtaBin1n1n1n1nRP","<4'>_{n,n|n,n}",fnBinsEta,fEtaMin,fEtaMax,"s"); f4PerEtaBin1n1n1n1nRP->SetXTitle("#eta"); fDiffFlowList->Add(f4PerEtaBin1n1n1n1nRP); - //fPtReq1nPrimePOI - fPtReq1nPrimePOI = new TProfile("fPtReq1nPrimePOI","Re[q_{n}^{'}]",fnBinsPt,fPtMin,fPtMax,"s"); - fPtReq1nPrimePOI->SetXTitle("p_{t} [GeV]"); - fPtReq1nPrimePOI->SetYTitle("Re[q_{n}^{'}]"); - - //fPtImq1nPrimePOI - fPtImq1nPrimePOI = new TProfile("fPtImq1nPrimePOI","Im[q_{n}^{'}]",fnBinsPt,fPtMin,fPtMax,"s"); - fPtImq1nPrimePOI->SetXTitle("p_{t} [GeV]"); - fPtImq1nPrimePOI->SetYTitle("Im[q_{n}^{'}]"); - - //fPtReq2nPrimePOI - fPtReq2nPrimePOI = new TProfile("fPtReq2nPrimePOI","Re[q_{2n}^{'}]",fnBinsPt,fPtMin,fPtMax,"s"); - fPtReq2nPrimePOI->SetXTitle("p_{t} [GeV]"); - fPtReq2nPrimePOI->SetYTitle("Re[q_{2n}^{'}]"); - - //fPtImq2nPrimePOI - fPtImq2nPrimePOI = new TProfile("fPtImq2nPrimePOI","Im[q_{2n}^{'}]",fnBinsPt,fPtMin,fPtMax,"s"); - fPtImq2nPrimePOI->SetXTitle("p_{t} [GeV]"); - fPtImq2nPrimePOI->SetYTitle("Im[q_{2n}^{'}]"); - - //fmPrimePerPtBin - fmPrimePerPtBin = new TProfile("fmPrimePerPtBin","# of particles selected both as RP and POI per #p_{t} bin",fnBinsPt,fPtMin,fPtMax,"s"); - fmPrimePerPtBin->SetXTitle("p_{t} [GeV]"); - fmPrimePerPtBin->SetYTitle("Counts"); - - //fPtReq1nPrimePrimePOI - fPtReq1nPrimePrimePOI = new TProfile("fPtReq1nPrimePrimePOI","Re[q_{n}^{''}]",fnBinsPt,fPtMin,fPtMax,"s"); - fPtReq1nPrimePrimePOI->SetXTitle("p_{t} [GeV]"); - fPtReq1nPrimePrimePOI->SetYTitle("Re[q_{n}^{''}]"); - - //fPtImq1nPrimePrimePOI - fPtImq1nPrimePrimePOI = new TProfile("fPtImq1nPrimePrimePOI","Im[q_{n}^{''}]",fnBinsPt,fPtMin,fPtMax,"s"); - fPtImq1nPrimePrimePOI->SetXTitle("p_{t} [GeV]"); - fPtImq1nPrimePrimePOI->SetYTitle("Im[q_{n}^{''}]"); - - //fPtReq2nPrimePrimePOI - fPtReq2nPrimePrimePOI = new TProfile("fPtReq2nPrimePrimePOI","Re[q_{2n}^{''}]",fnBinsPt,fPtMin,fPtMax,"s"); - fPtReq2nPrimePrimePOI->SetXTitle("p_{t} [GeV]"); - fPtReq2nPrimePrimePOI->SetYTitle("Re[q_{2n}^{''}]"); - - //fPtImq2nPrimePrimePOI - fPtImq2nPrimePrimePOI = new TProfile("fPtImq2nPrimePrimePOI","Im[q_{2n}^{''}]",fnBinsPt,fPtMin,fPtMax,"s"); - fPtImq2nPrimePrimePOI->SetXTitle("p_{t} [GeV]"); - fPtImq2nPrimePrimePOI->SetYTitle("Im[q_{2n}^{''}]"); - - //fmPrimePrimePerPtBin - fmPrimePrimePerPtBin = new TProfile("fmPrimePrimePerPtBin","# of particles selected as POI and NOT as RP per #p_{t} bin",fnBinsPt,fPtMin,fPtMax,"s"); - fmPrimePrimePerPtBin->SetXTitle("p_{t} [GeV]"); - fmPrimePrimePerPtBin->SetYTitle("Counts"); - - //fEtaReq1nPrimePOI - fEtaReq1nPrimePOI = new TProfile("fEtaReq1nPrimePOI","Re[q_{n}^{'}]",fnBinsEta,fEtaMin,fEtaMax,"s"); - fEtaReq1nPrimePOI->SetXTitle("#eta"); - fEtaReq1nPrimePOI->SetYTitle("Re[q_{n}^{'}]"); - - //fEtaImq1nPrimePOI - fEtaImq1nPrimePOI = new TProfile("fEtaImq1nPrimePOI","Im[q_{n}^{'}]",fnBinsEta,fEtaMin,fEtaMax,"s"); - fEtaImq1nPrimePOI->SetXTitle("#eta"); - fEtaImq1nPrimePOI->SetYTitle("Im[q_{n}^{'}]"); - - //fEtaReq2nPrimePOI - fEtaReq2nPrimePOI = new TProfile("fEtaReq2nPrimePOI","Re[q_{2n}^{'}]",fnBinsEta,fEtaMin,fEtaMax,"s"); - fEtaReq2nPrimePOI->SetXTitle("#eta"); - fEtaReq2nPrimePOI->SetYTitle("Re[q_{2n}^{'}]"); - - //fEtaImq2nPrimePOI - fEtaImq2nPrimePOI = new TProfile("fEtaImq2nPrimePOI","Im[q_{2n}^{'}]",fnBinsEta,fEtaMin,fEtaMax,"s"); - fEtaImq2nPrimePOI->SetXTitle("#eta"); - fEtaImq2nPrimePOI->SetYTitle("Im[q_{2n}^{'}]"); - - //fmPrimePerEtaBin - fmPrimePerEtaBin = new TProfile("fmPrimePerEtaBin","# of particles selected both as RP and POI per #p_{t} bin",fnBinsEta,fEtaMin,fEtaMax,"s"); - fmPrimePerEtaBin->SetXTitle("#eta"); - fmPrimePerEtaBin->SetYTitle("Counts"); - - //fEtaReq1nPrimePrimePOI - fEtaReq1nPrimePrimePOI = new TProfile("fEtaReq1nPrimePrimePOI","Re[q_{n}^{''}]",fnBinsEta,fEtaMin,fEtaMax,"s"); - fEtaReq1nPrimePrimePOI->SetXTitle("#eta"); - fEtaReq1nPrimePrimePOI->SetYTitle("Re[q_{n}^{''}]"); - - //fEtaImq1nPrimePrimePOI - fEtaImq1nPrimePrimePOI = new TProfile("fEtaImq1nPrimePrimePOI","Im[q_{n}^{''}]",fnBinsEta,fEtaMin,fEtaMax,"s"); - fEtaImq1nPrimePrimePOI->SetXTitle("#eta"); - fEtaImq1nPrimePrimePOI->SetYTitle("Im[q_{n}^{''}]"); - - //fEtaReq2nPrimePrimePOI - fEtaReq2nPrimePrimePOI = new TProfile("fEtaReq2nPrimePrimePOI","Re[q_{2n}^{''}]",fnBinsEta,fEtaMin,fEtaMax,"s"); - fEtaReq2nPrimePrimePOI->SetXTitle("#eta"); - fEtaReq2nPrimePrimePOI->SetYTitle("Re[q_{2n}^{''}]"); - - //fEtaImq2nPrimePrimePOI - fEtaImq2nPrimePrimePOI = new TProfile("fEtaImq2nPrimePrimePOI","Im[q_{2n}^{''}]",fnBinsEta,fEtaMin,fEtaMax,"s"); - fEtaImq2nPrimePrimePOI->SetXTitle("#eta"); - fEtaImq2nPrimePrimePOI->SetYTitle("Im[q_{2n}^{''}]"); - - //fmPrimePrimePerEtaBin - fmPrimePrimePerEtaBin = new TProfile("fmPrimePrimePerEtaBin","# of particles selected as POI and NOT as RP per #p_{t} bin",fnBinsEta,fEtaMin,fEtaMax,"s"); - fmPrimePrimePerEtaBin->SetXTitle("#eta"); - fmPrimePrimePerEtaBin->SetYTitle("Counts"); - //f2PerPtBin1n1nPOI f2PerPtBin1n1nPOI = new TProfile("f2PerPtBin1n1nPOI","<2'>_{n|n}",fnBinsPt,fPtMin,fPtMax,"s"); f2PerPtBin1n1nPOI->SetXTitle("#eta"); fDiffFlowList->Add(f2PerPtBin1n1nPOI); - //f2PerPtBin2n2nPOI - f2PerPtBin2n2nPOI = new TProfile("f2PerPtBin2n2nPOI","<2'>_{2n|2n}",fnBinsPt,fPtMin,fPtMax,"s"); - f2PerPtBin2n2nPOI->SetXTitle("p_{t} [GeV]"); - fDiffFlowList->Add(f2PerPtBin2n2nPOI); - - //f3PerPtBin2n1n1nPOI - f3PerPtBin2n1n1nPOI = new TProfile("f3PerPtBin2n1n1nPOI","<3'>_{2n|n,n}",fnBinsPt,fPtMin,fPtMax,"s"); - f3PerPtBin2n1n1nPOI->SetXTitle("p_{t} [GeV]"); - fDiffFlowList->Add(f3PerPtBin2n1n1nPOI); - - //f3PerPtBin1n1n2nPOI - f3PerPtBin1n1n2nPOI = new TProfile("f3PerPtBin1n1n2nPOI","<3'>_{n,n|2n}",fnBinsPt,fPtMin,fPtMax,"s"); - f3PerPtBin1n1n2nPOI->SetXTitle("p_{t} [GeV]"); - fDiffFlowList->Add(f3PerPtBin1n1n2nPOI); - //f4PerPtBin1n1n1n1nPOI f4PerPtBin1n1n1n1nPOI = new TProfile("f4PerPtBin1n1n1n1nPOI","<4'>_{n,n|n,n}",fnBinsPt,fPtMin,fPtMax,"s"); f4PerPtBin1n1n1n1nPOI->SetXTitle("p_{t} [GeV]"); @@ -615,59 +372,21 @@ void AliFlowAnalysisWithQCumulants::Init() f2PerEtaBin1n1nPOI->SetXTitle("#eta"); fDiffFlowList->Add(f2PerEtaBin1n1nPOI); - //f2PerEtaBin2n2nPOI - f2PerEtaBin2n2nPOI = new TProfile("f2PerEtaBin2n2nPOI","<2'>_{2n|2n}",fnBinsEta,fEtaMin,fEtaMax,"s"); - f2PerEtaBin2n2nPOI->SetXTitle("#eta"); - fDiffFlowList->Add(f2PerEtaBin2n2nPOI); - - //f3PerEtaBin2n1n1nPOI - f3PerEtaBin2n1n1nPOI = new TProfile("f3PerEtaBin2n1n1nPOI","<3'>_{2n|n,n}",fnBinsEta,fEtaMin,fEtaMax,"s"); - f3PerEtaBin2n1n1nPOI->SetXTitle("#eta"); - fDiffFlowList->Add(f3PerEtaBin2n1n1nPOI); - - //f3PerEtaBin1n1n2nPOI - f3PerEtaBin1n1n2nPOI = new TProfile("f3PerEtaBin1n1n2POI","<3'>_{n,n|2n}",fnBinsEta,fEtaMin,fEtaMax,"s"); - f3PerEtaBin1n1n2nPOI->SetXTitle("#eta"); - fDiffFlowList->Add(f3PerEtaBin1n1n2nPOI); - //f4PerEtaBin1n1n1n1nPOI f4PerEtaBin1n1n1n1nPOI = new TProfile("f4PerEtaBin1n1n1n1nPOI","<4'>_{n,n|n,n}",fnBinsEta,fEtaMin,fEtaMax,"s"); f4PerEtaBin1n1n1n1nPOI->SetXTitle("#eta"); fDiffFlowList->Add(f4PerEtaBin1n1n1n1nPOI); - - - - - - - //f2WPerPtBin1n1nPOI f2WPerPtBin1n1nPOI = new TProfile("f2WPerPtBin1n1nPOI","<2'>_{n|n}",fnBinsPt,fPtMin,fPtMax,"s"); f2WPerPtBin1n1nPOI->SetXTitle("#pt"); fDiffFlowList->Add(f2WPerPtBin1n1nPOI); - //f2WPerPtBin2n2nPOI - f2WPerPtBin2n2nPOI = new TProfile("f2WPerPtBin2n2nPOI","<2'>_{2n|2n}",fnBinsPt,fPtMin,fPtMax,"s"); - f2WPerPtBin2n2nPOI->SetXTitle("#Pt"); - fDiffFlowList->Add(f2WPerPtBin2n2nPOI); - - //f3WPerPtBin2n1n1nPOI - f3WPerPtBin2n1n1nPOI = new TProfile("f3WPerPtBin2n1n1nPOI","<3'>_{2n|n,n}",fnBinsPt,fPtMin,fPtMax,"s"); - f3WPerPtBin2n1n1nPOI->SetXTitle("#Pt"); - fDiffFlowList->Add(f3WPerPtBin2n1n1nPOI); - - //f3WPerPtBin1n1n2nPOI - f3WPerPtBin1n1n2nPOI = new TProfile("f3WPerPtBin1n1n2POI","<3'>_{n,n|2n}",fnBinsPt,fPtMin,fPtMax,"s"); - f3WPerPtBin1n1n2nPOI->SetXTitle("#Pt"); - fDiffFlowList->Add(f3WPerPtBin1n1n2nPOI); - //f4WPerPtBin1n1n1n1nPOI f4WPerPtBin1n1n1n1nPOI = new TProfile("f4WPerPtBin1n1n1n1nPOI","<4'>_{n,n|n,n}",fnBinsPt,fPtMin,fPtMax,"s"); f4WPerPtBin1n1n1n1nPOI->SetXTitle("#Pt"); fDiffFlowList->Add(f4WPerPtBin1n1n1n1nPOI); - //f2WPerEtaBin1n1nPOI f2WPerEtaBin1n1nPOI = new TProfile("f2WPerEtaBin1n1nPOI","<2'>_{n|n}",fnBinsEta,fEtaMin,fEtaMax,"s"); f2WPerEtaBin1n1nPOI->SetXTitle("#eta"); @@ -678,7 +397,6 @@ void AliFlowAnalysisWithQCumulants::Init() f4WPerEtaBin1n1n1n1nPOI->SetXTitle("#eta"); fDiffFlowList->Add(f4WPerEtaBin1n1n1n1nPOI); - //f2WPerPtBin1n1nRP f2WPerPtBin1n1nRP = new TProfile("f2WPerPtBin1n1nRP","<2'>_{n|n}",fnBinsPt,fPtMin,fPtMax,"s"); f2WPerPtBin1n1nRP->SetXTitle("#pt"); @@ -689,7 +407,6 @@ void AliFlowAnalysisWithQCumulants::Init() f4WPerPtBin1n1n1n1nRP->SetXTitle("#Pt"); fDiffFlowList->Add(f4WPerPtBin1n1n1n1nRP); - //f2WPerEtaBin1n1nRP f2WPerEtaBin1n1nRP = new TProfile("f2WPerEtaBin1n1nRP","<2'>_{n|n}",fnBinsEta,fEtaMin,fEtaMax,"s"); f2WPerEtaBin1n1nRP->SetXTitle("#eta"); @@ -700,9 +417,6 @@ void AliFlowAnalysisWithQCumulants::Init() f4WPerEtaBin1n1n1n1nRP->SetXTitle("#eta"); fDiffFlowList->Add(f4WPerEtaBin1n1n1n1nRP); - - - //common control histogram (2nd order) fCommonHists2nd = new AliFlowCommonHist("AliFlowCommonHist2ndOrderQC"); fHistList->Add(fCommonHists2nd); @@ -1071,61 +785,6 @@ void AliFlowAnalysisWithQCumulants::Make(AliFlowEventSimple* anEvent) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - //WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW - //--------------------------------------------------------------------------------------------------------- // weights: Bool_t useWeights = fUsePhiWeights||fUsePtWeights||fUseEtaWeights; @@ -1170,36 +829,59 @@ void AliFlowAnalysisWithQCumulants::Make(AliFlowEventSimple* anEvent) } } - Int_t nBinsPhi = 0; - + Int_t nBinsPhi = 0; Double_t dBinWidthPt=0.; - Double_t dPtMin=0.; Double_t dBinWidthEta=0.; - Double_t dEtaMin=0.; + + if(fnBinsPt) + { + dBinWidthPt=(fPtMax-fPtMin)/fnBinsPt; + } + if(fnBinsEta) + { + dBinWidthEta=(fEtaMax-fEtaMin)/fnBinsEta; + } if(fWeightsList) { if(fUsePhiWeights) { - phiWeights = dynamic_cast(fWeightsList->FindObject("phi_weights")); if(phiWeights) nBinsPhi = phiWeights->GetNbinsX(); } if(fUsePtWeights) { - ptWeights = dynamic_cast(fWeightsList->FindObject("pt_weights")); if(ptWeights) { - dBinWidthPt = ptWeights->GetBinWidth(1); // assuming that all bins have the same width - dPtMin = (ptWeights->GetXaxis())->GetXmin(); + Double_t dBinWidthPtW = ptWeights->GetBinWidth(1); // assuming that all bins have the same width + if(dBinWidthPtW != dBinWidthPt) + { + cout<<" WARNING: dBinWidthPtW != dBinWidthPt in AFAWQC::Make()"<GetXaxis())->GetXmin(); + if(dPtMinW != fPtMin) + { + cout<<" WARNING: dPtMinW != fPtMin in AFAWQC::Make()"<(fWeightsList->FindObject("eta_weights")); if(etaWeights) { - dBinWidthEta = etaWeights->GetBinWidth(1); // assuming that all bins have the same width - dEtaMin = (etaWeights->GetXaxis())->GetXmin(); + Double_t dBinWidthEtaW = etaWeights->GetBinWidth(1); // assuming that all bins have the same width + if(dBinWidthEtaW != dBinWidthEta) + { + cout<<" WARNING: dBinWidthEtaW != dBinWidthEta in AFAWQC::Make()"<GetXaxis())->GetXmin(); + if(dEtaMinW != fEtaMin) + { + cout<<" WARNING: dEtaMinW != fEtaMin in AFAWQC::Make()"<Pt(); dEta = fTrack->Eta(); - // determine Phi weight: (to be improved, I should here only access it + the treatment of gaps in the if statement) + // determine Phi weight: if(phiWeights && nBinsPhi) { wPhi = phiWeights->GetBinContent(1+(Int_t)(TMath::Floor(dPhi*nBinsPhi/TMath::TwoPi()))); } - // determine v'(pt) weight: + // determine pt weight: if(ptWeights && dBinWidthPt) { - wPt=ptWeights->GetBinContent(1+(Int_t)(TMath::Floor((dPt-dPtMin)/dBinWidthPt))); + wPt = ptWeights->GetBinContent(1+(Int_t)(TMath::Floor((dPt-fPtMin)/dBinWidthPt))); } - // determine v'(eta) weight: + // determine eta weight: if(etaWeights && dBinWidthEta) { - wEta=etaWeights->GetBinContent(1+(Int_t)(TMath::Floor((dEta-dEtaMin)/dBinWidthEta))); + wEta = etaWeights->GetBinContent(1+(Int_t)(TMath::Floor((dEta-fEtaMin)/dBinWidthEta))); } - // (Q_{n,k})_x, (Q_{n,k})_x and S_{n,k} + // (Q_{n,k})_x, (Q_{n,k})_y and S_{n,k} for(Int_t nn=0;nn<4;nn++) { for(Int_t k=0;k<8;k++) @@ -1264,7 +936,6 @@ void AliFlowAnalysisWithQCumulants::Make(AliFlowEventSimple* anEvent) } } - } // end of if (pTrack->UseForIntegratedFlow()) } // end of if (pTrack) else {cerr << "no particle!!!"<_{n,n|n,n} = //.............................................................................................. - - - - - //.............................................................................................. // weighted 2-particle correlations: Double_t two1n1nW1W1=0., two2n2nW2W2=0., two3n3nW3W3=0., two4n4nW4W4=0., two1n1nW3W1=0., two1n1nW2W1W1=0.; @@ -1341,37 +992,36 @@ void AliFlowAnalysisWithQCumulants::Make(AliFlowEventSimple* anEvent) if(dM11 != 0) { two1n1nW1W1 = (pow(dQnkX[0][0],2)+pow(dQnkY[0][0],2)-dSnk[0][1])/dM11; // <2>_{n|n}= - fQCorrelationsW->Fill(0.,two1n1nW1W1,dM11); + fWeightedQCorrelations->Fill(0.,two1n1nW1W1,dM11); } if(dM22 != 0) { two2n2nW2W2 = (pow(dQnkX[1][1],2)+pow(dQnkY[1][1],2)-dSnk[0][3])/dM22; // <2>_{2n|2n}= - fQCorrelationsW->Fill(1.,two2n2nW2W2,dM22); + fWeightedQCorrelations->Fill(1.,two2n2nW2W2,dM22); } if(dM33 != 0) { two3n3nW3W3 = (pow(dQnkX[2][2],2)+pow(dQnkY[2][2],2)-dSnk[0][5])/dM33; // <2>_{2n|2n}= - fQCorrelationsW->Fill(2.,two3n3nW3W3,dM33); + fWeightedQCorrelations->Fill(2.,two3n3nW3W3,dM33); } if(dM44 != 0) { two4n4nW4W4 = (pow(dQnkX[3][3],2)+pow(dQnkY[3][3],2)-dSnk[0][7])/dM44; // <2>_{2n|2n}= - fQCorrelationsW->Fill(3.,two4n4nW4W4,dM44); + fWeightedQCorrelations->Fill(3.,two4n4nW4W4,dM44); } if(dM31 != 0) { two1n1nW3W1 = (dQnkX[0][2]*dQnkX[0][0]+dQnkY[0][2]*dQnkY[0][0]-dSnk[0][3])/dM31; // <2>_{n|n}= - fQCorrelationsW->Fill(4.,two1n1nW3W1,dM31); + fWeightedQCorrelations->Fill(4.,two1n1nW3W1,dM31); } if(dM211 != 0) { two1n1nW2W1W1 = (dSnk[0][1]*dM11*two1n1nW1W1-2.*dM31*two1n1nW3W1)/dM211; // <2>_{n|n}= - fQCorrelationsW->Fill(5.,two1n1nW2W1W1,dM211); + fWeightedQCorrelations->Fill(5.,two1n1nW2W1W1,dM211); } } // end of if(nRP>1) //.............................................................................................. - //.............................................................................................. // weighted 3-particle correlations: Double_t three2n1n1nW2W1W1=0.; @@ -1381,13 +1031,11 @@ void AliFlowAnalysisWithQCumulants::Make(AliFlowEventSimple* anEvent) if(dM211 != 0) { three2n1n1nW2W1W1 = (pow(dQnkX[0][0],2.)*dQnkX[1][1]+2.*dQnkX[0][0]*dQnkY[0][0]*dQnkY[1][1]-pow(dQnkY[0][0],2.)*dQnkX[1][1]-2.*dM31*two1n1nW3W1-dM22*two2n2nW2W2-dSnk[0][3])/dM211; - fQCorrelationsW->Fill(10.,three2n1n1nW2W1W1,dM211); + fWeightedQCorrelations->Fill(10.,three2n1n1nW2W1W1,dM211); } } // end of if(nRP>2) //.............................................................................................. - - //.............................................................................................. // weighted 4-particle correlations: Double_t four1n1n1n1nW1W1W1W1=0.; @@ -1396,882 +1044,248 @@ void AliFlowAnalysisWithQCumulants::Make(AliFlowEventSimple* anEvent) { if(dM1111 != 0) { - four1n1n1n1nW1W1W1W1 = (pow(pow(dQnkX[0][0],2.)+pow(dQnkY[0][0],2.),2) - 2.*dM211*three2n1n1nW2W1W1 - 4.*dM211*two1n1nW2W1W1 - 4.*dM31*two1n1nW3W1 - dM22*two2n2nW2W2 - 2.*dM22 - dSnk[0][3])/dM1111; - fQCorrelationsW->Fill(20.,four1n1n1n1nW1W1W1W1,dM1111); + four1n1n1n1nW1W1W1W1 = (pow(pow(dQnkX[0][0],2.)+pow(dQnkY[0][0],2.),2)-2.*dM211*three2n1n1nW2W1W1-4.*dM211*two1n1nW2W1W1-4.*dM31*two1n1nW3W1-dM22*two2n2nW2W2-2.*dM22-dSnk[0][3])/dM1111; + fWeightedQCorrelations->Fill(20.,four1n1n1n1nW1W1W1W1,dM1111); } } // end of if(nRP>3) //.............................................................................................. - - //WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW - - - - - - - - //--------------------------------------------------------------------------------------------------------- - // DIFFERENTIAL FLOW - - Double_t dQ1nx = afvQvector1n.X(); - Double_t dQ1ny = afvQvector1n.Y(); - Double_t dQ1nxW = dQnkX[0][0]; - Double_t dQ1nyW = dQnkY[0][0]; - Double_t dQ2nx = afvQvector2n.X(); - Double_t dQ2ny = afvQvector2n.Y(); - //Double_t dBinWidthPt=0.,dBinWidthEta=0.; - if(fnBinsPt) - { - dBinWidthPt=1.*(fPtMax-fPtMin)/fnBinsPt; - } - if(fnBinsEta) - { - dBinWidthEta=1.*(fEtaMax-fEtaMin)/fnBinsEta; - } + //--------------------------------------------------------------------------------------------------------- + // + // ******************************************************* + // **** weighted reduced multi-particle correlations: **** + // ******************************************************* + // + // pt POI + TProfile *ptReq1nPrime = new TProfile("ptReq1nPrime","Re[q_{n}^{''}]",fnBinsPt,fPtMin,fPtMax,"s"); + TProfile *ptImq1nPrime = new TProfile("ptImq1nPrime","Im[q_{n}^{''}]",fnBinsPt,fPtMin,fPtMax,"s"); + TProfile *ptReq2nPrime = new TProfile("ptReq2nPrime","Re[q_{2n}^{''}]",fnBinsPt,fPtMin,fPtMax,"s"); + TProfile *ptImq2nPrime = new TProfile("ptImq2nPrime","Im[q_{2n}^{''}]",fnBinsPt,fPtMin,fPtMax,"s"); - //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) + TProfile *ptReq1nPrimePrime = new TProfile("ptReq1nPrimePrime","Re[q_{n}^{''}]",fnBinsPt,fPtMin,fPtMax,"s"); + TProfile *ptImq1nPrimePrime = new TProfile("ptImq1nPrimePrime","Im[q_{n}^{''}]",fnBinsPt,fPtMin,fPtMax,"s"); + TProfile *ptReq2nPrimePrime = new TProfile("ptReq2nPrimePrime","Re[q_{2n}^{''}]",fnBinsPt,fPtMin,fPtMax,"s"); + TProfile *ptImq2nPrimePrime = new TProfile("ptImq2nPrimePrime","Im[q_{2n}^{''}]",fnBinsPt,fPtMin,fPtMax,"s"); - Double_t dSumOfWeightsUpTomPtRP = 0.; // sum_{i=1}^{m} w_{i} - Double_t dSumOfWeightsUpTomEtaRP = 0.; // sum_{i=1}^{m} w_{i} + TProfile *req1nW2PrimePrimePt = new TProfile("req1nW2PrimePrimePt","#sum_{i=1}^{m''} w_{i}^{2} cos(n(#phi_{i}))''",fnBinsPt,fPtMin,fPtMax,"s"); + TProfile *imq1nW2PrimePrimePt = new TProfile("imq1nW2PrimePrimePt","#sum_{i=1}^{m''} w_{i}^{2} sin(n(#phi_{i}))''",fnBinsPt,fPtMin,fPtMax,"s"); + TProfile *req2nW1PrimePrimePt = new TProfile("req2nW1PrimePrimePt","#sum_{i=1}^{m''} w_{i} cos(2n(#phi_{i}))''",fnBinsPt,fPtMin,fPtMax,"s"); + TProfile *imq2nW1PrimePrimePt = new TProfile("imq2nW1PrimePrimePt","#sum_{i=1}^{m''} w_{i} sin(2n(#phi_{i}))''",fnBinsPt,fPtMin,fPtMax,"s"); - TProfile *mPerBinPtRP = new TProfile("mPerBinPtRP","#sum_{i=1}^{m} w_{i}''",fnBinsPt,fPtMin,fPtMax,"s"); - TProfile *mPerBinEtaRP = new TProfile("mPerBinEtaRP","#sum_{i=1}^{m} w_{i}''",fnBinsEta,fEtaMin,fEtaMax,"s"); + TProfile *sumOfW1upTomPrimePrimePt = new TProfile("sumOfW1upTomPrimePrimePt","#sum_{i=1}^{m''} w_{i}''",fnBinsPt,fPtMin,fPtMax,"s"); + TProfile *sumOfW2upTomPrimePrimePt = new TProfile("sumOfW2upTomPrimePrimePt","#sum_{i=1}^{m''} w_{i}^{2}''",fnBinsPt,fPtMin,fPtMax,"s"); + TProfile *sumOfW3upTomPrimePrimePt = new TProfile("sumOfW3upTomPrimePrimePt","#sum_{i=1}^{m''} w_{i}^{3}''",fnBinsPt,fPtMin,fPtMax,"s"); - for(Int_t i=0;iGetTrack(i); - if(fTrack && fTrack->UseForIntegratedFlow()) // checking RP condition - { - // get azimuthal angle, momentum and pseudorapidity of a particle: - dPhi = fTrack->Phi(); - dPt = fTrack->Pt(); - dEta = fTrack->Eta(); - // pt (without weights): - fPtReq1nRP->Fill(dPt,cos(n*dPhi),1.); - fPtImq1nRP->Fill(dPt,sin(n*dPhi),1.); - fPtReq2nRP->Fill(dPt,cos(2.*n*dPhi),1.); - fPtImq2nRP->Fill(dPt,sin(2.*n*dPhi),1.); - // eta: - fEtaReq1nRP->Fill(dEta,cos(n*dPhi),1.); - fEtaImq1nRP->Fill(dEta,sin(n*dPhi),1.); - fEtaReq2nRP->Fill(dEta,cos(2.*n*dPhi),1.); - fEtaImq2nRP->Fill(dEta,sin(2.*n*dPhi),1.); - // phi weights: - if(fUsePhiWeights) + if(fTrack) + { + if(fTrack->UseForDifferentialFlow()) // checking if particle is POI { - nBinsPhi = phiWeights->GetNbinsX(); - if(nBinsPhi) - { - wPhi = phiWeights->GetBinContent(1+(Int_t)(TMath::Floor(dPhi*nBinsPhi/TMath::TwoPi()))); - } - } - // pt weights: - if(fUsePtWeights) - { - if(dBinWidthPt) + if(fTrack->UseForIntegratedFlow()) // checking if particle is both POI and RP { - wPt = ptWeights->GetBinContent(1+(Int_t)(TMath::Floor((dPt-fPtMin)/dBinWidthPt))); - } - } - // eta weights: - if(fUseEtaWeights) - { - if(dBinWidthEta) + // get azimuthal angle, momentum and pseudorapidity of a particle: + dPhi = fTrack->Phi(); + dPt = fTrack->Pt(); + dEta = fTrack->Eta(); + // phi weights: + if(fUsePhiWeights) + { + nBinsPhi = phiWeights->GetNbinsX(); + if(nBinsPhi) + { + wPhi = phiWeights->GetBinContent(1+(Int_t)(TMath::Floor(dPhi*nBinsPhi/TMath::TwoPi()))); + } + } + // pt weights: + if(fUsePtWeights) + { + if(dBinWidthPt) + { + wPt = ptWeights->GetBinContent(1+(Int_t)(TMath::Floor((dPt-fPtMin)/dBinWidthPt))); + } + } + // eta weights: + if(fUseEtaWeights) + { + if(dBinWidthEta) + { + wEta = etaWeights->GetBinContent(1+(Int_t)(TMath::Floor((dEta-fEtaMin)/dBinWidthEta))); + } + } + // pt: + ptReq1nPrimePrime->Fill(dPt,cos(n*dPhi),1.); + ptImq1nPrimePrime->Fill(dPt,sin(n*dPhi),1.); + ptReq2nPrimePrime->Fill(dPt,cos(2.*n*dPhi),1.); + ptImq2nPrimePrime->Fill(dPt,sin(2.*n*dPhi),1.); + // weighted pt: + req1nW2PrimePrimePt->Fill(dPt,cos(n*dPhi),pow(wPhi*wPt*wEta,2.)); + imq1nW2PrimePrimePt->Fill(dPt,sin(n*dPhi),pow(wPhi*wPt*wEta,2.)); + req2nW1PrimePrimePt->Fill(dPt,cos(2.*n*dPhi),wPhi*wPt*wEta); + imq2nW1PrimePrimePt->Fill(dPt,sin(2.*n*dPhi),wPhi*wPt*wEta); + sumOfW1upTomPrimePrimePt->Fill(dPt,wPhi*wPt*wEta,1.); + sumOfW2upTomPrimePrimePt->Fill(dPt,pow(wPhi*wPt*wEta,2),1.); + sumOfW3upTomPrimePrimePt->Fill(dPt,pow(wPhi*wPt*wEta,3),1.); + + // eta: + etaReq1nPrimePrime->Fill(dEta,cos(n*dPhi),1.); + etaImq1nPrimePrime->Fill(dEta,sin(n*dPhi),1.); + etaReq2nPrimePrime->Fill(dEta,cos(2.*n*dPhi),1.); + etaImq2nPrimePrime->Fill(dEta,sin(2.*n*dPhi),1.); + // weighted eta: + req1nW2PrimePrimeEta->Fill(dEta,cos(n*dPhi),pow(wPhi*wPt*wEta,2.)); + imq1nW2PrimePrimeEta->Fill(dEta,sin(n*dPhi),pow(wPhi*wPt*wEta,2.)); + req2nW1PrimePrimeEta->Fill(dEta,cos(2.*n*dPhi),wPhi*wPt*wEta); + imq2nW1PrimePrimeEta->Fill(dEta,sin(2.*n*dPhi),wPhi*wPt*wEta); + sumOfW1upTomPrimePrimeEta->Fill(dEta,wPhi*wPt*wEta,1.); + sumOfW2upTomPrimePrimeEta->Fill(dEta,pow(wPhi*wPt*wEta,2),1.); + sumOfW3upTomPrimePrimeEta->Fill(dEta,pow(wPhi*wPt*wEta,3),1.); + + }else if(!(fTrack->UseForIntegratedFlow())) // checking if particles is POI and not RP + { + // get azimuthal angle, momentum and pseudorapidity of a particle: + dPhi = fTrack->Phi(); + dPt = fTrack->Pt(); + dEta = fTrack->Eta(); + // pt: + ptReq1nPrime->Fill(dPt,cos(n*dPhi),1.); + ptImq1nPrime->Fill(dPt,sin(n*dPhi),1.); + ptReq2nPrime->Fill(dPt,cos(2.*n*dPhi),1.); + ptImq2nPrime->Fill(dPt,sin(2.*n*dPhi),1.); + + // eta: + etaReq1nPrime->Fill(dEta,cos(n*dPhi),1.); + etaImq1nPrime->Fill(dEta,sin(n*dPhi),1.); + etaReq2nPrime->Fill(dEta,cos(2.*n*dPhi),1.); + etaImq2nPrime->Fill(dEta,sin(2.*n*dPhi),1.); + + } // end of else if(!(fTrack->UseForIntegratedFlow())) // checking if particles is POI and not RP + } // end of if(fTrack->UseForDifferentialFlow()) // checking if particle is POI + + if(fTrack->UseForIntegratedFlow()) // checking if particles is only RP: + { + dPhi = fTrack->Phi(); + dPt = fTrack->Pt(); + dEta = fTrack->Eta(); + + // phi weights: + if(fUsePhiWeights) { - wEta=etaWeights->GetBinContent(1+(Int_t)(TMath::Floor((dEta-fEtaMin)/dBinWidthEta))); + nBinsPhi = phiWeights->GetNbinsX(); + if(nBinsPhi) + { + wPhi = phiWeights->GetBinContent(1+(Int_t)(TMath::Floor(dPhi*nBinsPhi/TMath::TwoPi()))); + } + } + // pt weights: + if(fUsePtWeights) + { + if(dBinWidthPt) + { + wPt = ptWeights->GetBinContent(1+(Int_t)(TMath::Floor((dPt-fPtMin)/dBinWidthPt))); + } + } + // eta weights: + if(fUseEtaWeights) + { + if(dBinWidthEta) + { + wEta = etaWeights->GetBinContent(1+(Int_t)(TMath::Floor((dEta-fEtaMin)/dBinWidthEta))); + } } - } - // sum_{i=1}^{m} w_{i}: - mPerBinPtRP->Fill(dPt,wPhi*wPt*wEta,1.); - mPerBinEtaRP->Fill(dEta,wPhi*wPt*wEta,1.); - } - } - - //Pt: - Double_t twoDiffPt1n1nRP=0.,twoDiffPt2n2nRP=0.,threeDiffPt2n1n1nRP=0.,threeDiffPt1n1n2nRP=0.,fourDiffPt1n1n1n1nRP=0.; + // pt: + ptReq1n->Fill(dPt,cos(n*dPhi),1.); + ptImq1n->Fill(dPt,sin(n*dPhi),1.); + ptReq2n->Fill(dPt,cos(2.*n*dPhi),1.); + ptImq2n->Fill(dPt,sin(2.*n*dPhi),1.); + // weighted pt: + req1nW2Pt->Fill(dPt,cos(n*dPhi),pow(wPhi*wPt*wEta,2.)); + imq1nW2Pt->Fill(dPt,sin(n*dPhi),pow(wPhi*wPt*wEta,2.)); + req2nW1Pt->Fill(dPt,cos(2.*n*dPhi),wPhi*wPt*wEta); + imq2nW1Pt->Fill(dPt,sin(2.*n*dPhi),wPhi*wPt*wEta); + sumOfW1upTomPt->Fill(dPt,wPhi*wPt*wEta,1.); + sumOfW2upTomPt->Fill(dPt,pow(wPhi*wPt*wEta,2),1.); + sumOfW3upTomPt->Fill(dPt,pow(wPhi*wPt*wEta,3),1.); + + // eta: + etaReq1n->Fill(dEta,cos(n*dPhi),1.); + etaImq1n->Fill(dEta,sin(n*dPhi),1.); + etaReq2n->Fill(dEta,cos(2.*n*dPhi),1.); + etaImq2n->Fill(dEta,sin(2.*n*dPhi),1.); + // weighted eta: + req1nW2Eta->Fill(dEta,cos(n*dPhi),pow(wPhi*wPt*wEta,2.)); + imq1nW2Eta->Fill(dEta,sin(n*dPhi),pow(wPhi*wPt*wEta,2.)); + req2nW1Eta->Fill(dEta,cos(2.*n*dPhi),wPhi*wPt*wEta); + imq2nW1Eta->Fill(dEta,sin(2.*n*dPhi),wPhi*wPt*wEta); + sumOfW1upTomEta->Fill(dEta,wPhi*wPt*wEta,1.); + sumOfW2upTomEta->Fill(dEta,pow(wPhi*wPt*wEta,2),1.); + sumOfW3upTomEta->Fill(dEta,pow(wPhi*wPt*wEta,3),1.); + } // end of if(fTrack->UseForIntegratedFlow()) // checking if particles is only RP: + } // end of if(fTrack} + } // end of for(Int_t i=0;iGetBinContent(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); - dSumOfWeightsUpTomPtRP = (mPerBinPtRP->GetBinContent(bin))*(mPerBinPtRP->GetBinEntries(bin)); - - if(mPtRP*dSnk[0][0]-dSumOfWeightsUpTomPtRP) - { - //twoDiffPt1n1nRP = (qxPtRP*dQ1nx+qyPtRP*dQ1ny-mPtRP)/(mPtRP*(dMult-1.)); // OK without weights - //f2PerPtBin1n1nRP->Fill(fPtMin+(bin-1)*dBinWidthPt,twoDiffPt1n1nRP,mPtRP*(dMult-1.));//<2'>_{n|n} // OK without weights - - twoDiffPt1n1nRP = (qxPtRP*dQ1nxW+qyPtRP*dQ1nyW-dSumOfWeightsUpTomPtRP)/(mPtRP*dSnk[0][0]-dSumOfWeightsUpTomPtRP); // OK without weights - f2PerPtBin1n1nRP->Fill(fPtMin+(bin-1)*dBinWidthPt,twoDiffPt1n1nRP,mPtRP*dSnk[0][0]-dSumOfWeightsUpTomPtRP);//<2'>_{n|n} // OK without weights - } - - if(mPtRP>0&&dMult>1) - { - twoDiffPt2n2nRP = (q2xPtRP*dQ2nx+q2yPtRP*dQ2ny-mPtRP)/(mPtRP*(dMult-1.)); - f2PerPtBin2n2nRP->Fill(fPtMin+(bin-1)*dBinWidthPt,twoDiffPt2n2nRP,mPtRP*(dMult-1.));//<2'>_{2n|2n} - } - - if(mPtRP>0&&dMult>2) - { - 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}] - - 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(mPtRP>0&&dMult>3) - { - 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}] - } - }//end of for(Int_t bin=1;bin<(fnBinsPt+1);bin++)//loop over pt-bins - - fPtReq1nRP->Reset(); - fPtImq1nRP->Reset(); - fPtReq2nRP->Reset(); - fPtImq2nRP->Reset(); - - mPerBinPtRP->Reset(); - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - /* - - - - //WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW - - - - - - - - - - - - - - - - - - - - - - //Pt POI - TProfile *req1nW2PrimePrimePtPOI = new TProfile("req1nW2PrimePrimePtPOI","#sum_{i=1}^{m''} w_{i}^{2} cos(n(#phi_{i}))''",fnBinsPt,fPtMin,fPtMax,"s"); - TProfile *imq1nW2PrimePrimePtPOI = new TProfile("imq1nW2PrimePrimePtPOI","#sum_{i=1}^{m''} w_{i}^{2} sin(n(#phi_{i}))''",fnBinsPt,fPtMin,fPtMax,"s"); - TProfile *req2nW1PrimePrimePtPOI = new TProfile("req2nW1PrimePrimePtPOI","#sum_{i=1}^{m''} w_{i} cos(2n(#phi_{i}))''",fnBinsPt,fPtMin,fPtMax,"s"); - TProfile *imq2nW1PrimePrimePtPOI = new TProfile("imq2nW1PrimePrimePtPOI","#sum_{i=1}^{m''} w_{i} sin(2n(#phi_{i}))''",fnBinsPt,fPtMin,fPtMax,"s"); - - TProfile *sumOfW1upTomPrimePrimePtPOI = new TProfile("sumOfW1upTomPrimePrimePtPOI","#sum_{i=1}^{m''} w_{i}''",fnBinsPt,fPtMin,fPtMax,"s"); - TProfile *sumOfW2upTomPrimePrimePtPOI = new TProfile("sumOfW2upTomPrimePrimePtPOI","#sum_{i=1}^{m''} w_{i}^{2}''",fnBinsPt,fPtMin,fPtMax,"s"); - TProfile *sumOfW3upTomPrimePrimePtPOI = new TProfile("sumOfW3upTomPrimePrimePtPOI","#sum_{i=1}^{m''} w_{i}^{3}''",fnBinsPt,fPtMin,fPtMax,"s"); - - //eta POI - TProfile *req1nW2PrimePrimeEtaPOI = new TProfile("req1nW2PrimePrimeEtaPOI","#sum_{i=1}^{m''} w_{i}^{2} cos(n(#phi_{i}))''",fnBinsEta,fEtaMin,fEtaMax,"s"); - TProfile *imq1nW2PrimePrimeEtaPOI = new TProfile("imq1nW2PrimePrimeEtaPOI","#sum_{i=1}^{m''} w_{i}^{2} sin(n(#phi_{i}))''",fnBinsEta,fEtaMin,fEtaMax,"s"); - TProfile *req2nW1PrimePrimeEtaPOI = new TProfile("req2nW1PrimePrimeEtaPOI","#sum_{i=1}^{m''} w_{i} cos(2n(#phi_{i}))''",fnBinsEta,fEtaMin,fEtaMax,"s"); - TProfile *imq2nW1PrimePrimeEtaPOI = new TProfile("imq2nW1PrimePrimeEtaPOI","#sum_{i=1}^{m''} w_{i} sin(2n(#phi_{i}))''",fnBinsEta,fEtaMin,fEtaMax,"s"); - - TProfile *sumOfW1upTomPrimePrimeEtaPOI = new TProfile("sumOfW1upTomPrimePrimeEtaPOI","#sum_{i=1}^{m''} w_{i}''",fnBinsEta,fEtaMin,fEtaMax,"s"); - TProfile *sumOfW2upTomPrimePrimeEtaPOI = new TProfile("sumOfW2upTomPrimePrimeEtaPOI","#sum_{i=1}^{m''} w_{i}^{2}''",fnBinsEta,fEtaMin,fEtaMax,"s"); - TProfile *sumOfW3upTomPrimePrimeEtaPOI = new TProfile("sumOfW3upTomPrimePrimeEtaPOI","#sum_{i=1}^{m''} w_{i}^{3}''",fnBinsEta,fEtaMin,fEtaMax,"s"); - - - //POI: - //Double_t qxPrimePtPOI=0.,qyPrimePtPOI=0.,q2xPrimePtPOI=0.,q2yPrimePtPOI=0.,mPrimePtPOI=0.;//add comments for these variables (deleteMe) - - for(Int_t i=0;iGetTrack(i); - if(fTrack) - { - if(fTrack->UseForDifferentialFlow()) // checking if particle is POI - { - if(fTrack->UseForIntegratedFlow()) // checking if particle is both POI and RP - { - // get azimuthal angle, momentum and pseudorapidity of a particle: - dPhi = fTrack->Phi(); - dPt = fTrack->Pt(); - dEta = fTrack->Eta(); - // phi weights: - if(fUsePhiWeights) - { - nBinsPhi = phiWeights->GetNbinsX(); - if(nBinsPhi) - { - wPhi = phiWeights->GetBinContent(1+(Int_t)(TMath::Floor(dPhi*nBinsPhi/TMath::TwoPi()))); - } - } - // pt weights: - if(fUsePtWeights) - { - if(dBinWidthPt) - { - wPt = ptWeights->GetBinContent(1+(Int_t)(TMath::Floor((dPt-fPtMin)/dBinWidthPt))); - } - } - // eta weights: - if(fUseEtaWeights) - { - if(dBinWidthEta) - { - wEta=etaWeights->GetBinContent(1+(Int_t)(TMath::Floor((dEta-fEtaMin)/dBinWidthEta))); - } - } - // pt: - fPtReq1nPrimePrimePOI->Fill(dPt,cos(n*dPhi),1.); - fPtImq1nPrimePrimePOI->Fill(dPt,sin(n*dPhi),1.); - fPtReq2nPrimePrimePOI->Fill(dPt,cos(2.*n*dPhi),1.); - fPtImq2nPrimePrimePOI->Fill(dPt,sin(2.*n*dPhi),1.); - // eta: - fEtaReq1nPrimePrimePOI->Fill(dEta,cos(n*dPhi),1.); - fEtaImq1nPrimePrimePOI->Fill(dEta,sin(n*dPhi),1.); - fEtaReq2nPrimePrimePOI->Fill(dEta,cos(2.*n*dPhi),1.); - fEtaImq2nPrimePrimePOI->Fill(dEta,sin(2.*n*dPhi),1.); - // weighted pt: - req1nW2PrimePrimePtPOI->Fill(dPt,cos(n*dPhi),pow(wPhi*wPt*wEta,2.)); - imq1nW2PrimePrimePtPOI->Fill(dPt,sin(n*dPhi),pow(wPhi*wPt*wEta,2.)); - req2nW1PrimePrimePtPOI->Fill(dPt,cos(2.*n*dPhi),wPhi*wPt*wEta); - imq2nW1PrimePrimePtPOI->Fill(dPt,sin(2.*n*dPhi),wPhi*wPt*wEta); - sumOfW1upTomPrimePrimePtPOI->Fill(dPt,wPhi*wPt*wEta,1.); - sumOfW2upTomPrimePrimePtPOI->Fill(dPt,pow(wPhi*wPt*wEta,2),1.); - sumOfW3upTomPrimePrimePtPOI->Fill(dPt,pow(wPhi*wPt*wEta,3),1.); - // weighted eta: - req1nW2PrimePrimeEtaPOI->Fill(dEta,cos(n*dPhi),pow(wPhi*wPt*wEta,2.)); - imq1nW2PrimePrimeEtaPOI->Fill(dEta,sin(n*dPhi),pow(wPhi*wPt*wEta,2.)); - req2nW1PrimePrimeEtaPOI->Fill(dEta,cos(2.*n*dPhi),wPhi*wPt*wEta); - imq2nW1PrimePrimeEtaPOI->Fill(dEta,sin(2.*n*dPhi),wPhi*wPt*wEta); - sumOfW1upTomPrimePrimeEtaPOI->Fill(dEta,wPhi*wPt*wEta,1.); - sumOfW2upTomPrimePrimeEtaPOI->Fill(dEta,pow(wPhi*wPt*wEta,2),1.); - sumOfW3upTomPrimePrimeEtaPOI->Fill(dEta,pow(wPhi*wPt*wEta,3),1.); - }else if(!(fTrack->UseForIntegratedFlow())) // checking if particles is POI and not RP - { - // get azimuthal angle, momentum and pseudorapidity of a particle: - dPhi = fTrack->Phi(); - dPt = fTrack->Pt(); - dEta = fTrack->Eta(); - // pt: - fPtReq1nPrimePOI->Fill(dPt,cos(n*dPhi),1.); - fPtImq1nPrimePOI->Fill(dPt,sin(n*dPhi),1.); - fPtReq2nPrimePOI->Fill(dPt,cos(2.*n*dPhi),1.); - fPtImq2nPrimePOI->Fill(dPt,sin(2.*n*dPhi),1.); - // eta: - fEtaReq1nPrimePOI->Fill(dEta,cos(n*dPhi),1.); - fEtaImq1nPrimePOI->Fill(dEta,sin(n*dPhi),1.); - fEtaReq2nPrimePOI->Fill(dEta,cos(2.*n*dPhi),1.); - fEtaImq2nPrimePOI->Fill(dEta,sin(2.*n*dPhi),1.); - } // end of else if(!(fTrack->UseForIntegratedFlow())) // checking if particles is POI and not RP - } // end of if(fTrack->UseForDifferentialFlow()) // checking if particle is POI - } // end of if(fTrack} - } // end of for(Int_t i=0;iGetBinContent(bin))*(fPtReq1nPrimePrimePOI->GetBinEntries(bin)); - qyPrimePrimePtPOIHere = (fPtImq1nPrimePrimePOI->GetBinContent(bin))*(fPtImq1nPrimePrimePOI->GetBinEntries(bin)); - q2xPrimePrimePtPOIHere = (fPtReq2nPrimePrimePOI->GetBinContent(bin))*(fPtReq2nPrimePrimePOI->GetBinEntries(bin)); - q2yPrimePrimePtPOIHere = (fPtImq2nPrimePrimePOI->GetBinContent(bin))*(fPtImq2nPrimePrimePOI->GetBinEntries(bin)); - - - qxW2PrimePrimePtPOI = (req1nW2PrimePrimePtPOI->GetBinContent(bin))*(req1nW2PrimePrimePtPOI->GetBinEntries(bin)); - qyW2PrimePrimePtPOI = (imq1nW2PrimePrimePtPOI->GetBinContent(bin))*(imq1nW2PrimePrimePtPOI->GetBinEntries(bin)); - - q2xW1PrimePrimePtPOI = (req2nW1PrimePrimePtPOI->GetBinContent(bin))*(req2nW1PrimePrimePtPOI->GetBinEntries(bin)); - q2yW1PrimePrimePtPOI = (imq2nW1PrimePrimePtPOI->GetBinContent(bin))*(imq2nW1PrimePrimePtPOI->GetBinEntries(bin)); - - dS11mPrimePrimePtPOI = (sumOfW1upTomPrimePrimePtPOI->GetBinContent(bin))*(sumOfW1upTomPrimePrimePtPOI->GetBinEntries(bin)); - dS12mPrimePrimePtPOI = (sumOfW2upTomPrimePrimePtPOI->GetBinContent(bin))*(sumOfW2upTomPrimePrimePtPOI->GetBinEntries(bin)); - dS13mPrimePrimePtPOI = (sumOfW3upTomPrimePrimePtPOI->GetBinContent(bin))*(sumOfW3upTomPrimePrimePtPOI->GetBinEntries(bin)); - - mPrimePrimePtPOIHere = sumOfW1upTomPrimePrimePtPOI->GetBinEntries(bin); // to be improved - - dM1pp11PtPOI=dS11mPrimePrimePtPOI*(dSnk[1][0]-dSnk[0][1])-2.*dS12mPrimePrimePtPOI*dSnk[0][0]+2.*dS13mPrimePrimePtPOI; - dM1pp2PtPOIPtPOI=dS11mPrimePrimePtPOI*dSnk[0][1]-dS13mPrimePrimePtPOI; - dM2pp1PtPOIPtPOI=dS12mPrimePrimePtPOI*dSnk[0][0]-dS13mPrimePrimePtPOI; - dM0pp3PtPOIPtPOI=mPrimePrimePtPOIHere*dSnk[0][2]-dS13mPrimePrimePtPOI; - dM0pp12PtPOIPtPOI=mPrimePrimePtPOIHere*dSnk[0][0]*dSnk[0][1]-dM2pp1PtPOIPtPOI-dM1pp2PtPOIPtPOI-dM0pp3PtPOIPtPOI-dS13mPrimePrimePtPOI; - dM0pp111PtPOIPtPOI=mPrimePrimePtPOIHere*dSnk[2][0]-3.*dM1pp11PtPOI-3.*dM0pp12PtPOIPtPOI-3.*dM2pp1PtPOIPtPOI-3.*dM1pp2PtPOIPtPOI-dM0pp3PtPOIPtPOI-dS13mPrimePrimePtPOI; - - // q': - qxPrimePtPOIHere = (fPtReq1nPrimePOI->GetBinContent(bin))*(fPtReq1nPrimePOI->GetBinEntries(bin)); - qyPrimePtPOIHere = (fPtImq1nPrimePOI->GetBinContent(bin))*(fPtImq1nPrimePOI->GetBinEntries(bin)); - - mPrimePtPOIHere = fPtReq1nPrimePOI->GetBinEntries(bin); // to be improved - dM0p111PtPOIPtPOI=mPrimePtPOIHere*(dSnk[2][0]-3.*dSnk[0][1]*dSnk[0][0]+2.*dSnk[0][2]); - - // 2-p - Double_t two1n1nWPerPtBinPOI=0.; // the needed one - if(mPrimePrimePtPOIHere*dSnk[0][0]-dS11mPrimePrimePtPOI) - { - two1n1nWPerPtBinPOI = (qxPrimePrimePtPOIHere*dQnkX[0][0]+qyPrimePrimePtPOIHere*dQnkY[0][0]-dS11mPrimePrimePtPOI)/(mPrimePrimePtPOIHere*dSnk[0][0]-dS11mPrimePrimePtPOI); - - f2WPerPtBin1n1nPOI->Fill(fPtMin+(bin-1)*dBinWidthPt,two1n1nWPerPtBinPOI,(mPrimePrimePtPOIHere*dSnk[0][0]-dS11mPrimePrimePtPOI)); // <2'>_{n|n} - } - - // 2-p - Double_t two1n1nW1ppW1W1=0.; // // OK!!! - if(dM1pp11PtPOI) - { - two1n1nW1ppW1W1 = ((pow(dQnkX[0][0],2.)+pow(dQnkY[0][0],2.))*dS11mPrimePrimePtPOI-2.*(qxW2PrimePrimePtPOI*dQnkX[0][0]+qyW2PrimePrimePtPOI*dQnkY[0][0]) - dS11mPrimePrimePtPOI*dSnk[0][1]+2.*dS13mPrimePrimePtPOI)/dM1pp11PtPOI; // CORRECT !!! - } - - // 2-p - Double_t two1npp1nW1W2PtPOI=0.; // // OK !!! - if(dM0pp12PtPOIPtPOI) - { - two1npp1nW1W2PtPOI = (dSnk[0][1]*(qxPrimePrimePtPOIHere*dQnkX[0][0]+qyPrimePrimePtPOIHere*dQnkY[0][0])-(qxW2PrimePrimePtPOI*dQnkX[0][0]+qyW2PrimePrimePtPOI*dQnkY[0][0])-dM1pp2PtPOIPtPOI-(qxPrimePrimePtPOIHere*dQnkX[0][2]+qyPrimePrimePtPOIHere*dQnkY[0][2])+dS13mPrimePrimePtPOI)/dM0pp12PtPOIPtPOI; // CORRECT !!! - } - - // 2-p - Double_t two1npp1nW2ppW1PtPOI=0.; // // OK !!! - if(dM2pp1PtPOIPtPOI) - { - two1npp1nW2ppW1PtPOI = ((qxW2PrimePrimePtPOI*dQnkX[0][0]+qyW2PrimePrimePtPOI*dQnkY[0][0])-dS13mPrimePrimePtPOI)/dM2pp1PtPOIPtPOI; // CORRECT !!! - } - - // 2-p - Double_t two2npp2nW1ppW2PtPOI=0.; // OK !!! - if(dM1pp2PtPOIPtPOI) - { - two2npp2nW1ppW2PtPOI = ((q2xW1PrimePrimePtPOI*dQnkX[1][1]+q2yW1PrimePrimePtPOI*dQnkY[1][1])-dS13mPrimePrimePtPOI)/dM1pp2PtPOIPtPOI; // CORRECT !!! - } - - // 2-p - Double_t two1npp1nW3PtPOI=0.; // // OK !!! - if(dM0pp3PtPOIPtPOI) - { - two1npp1nW3PtPOI = (qxPrimePrimePtPOIHere*dQnkX[0][2]+qyPrimePrimePtPOIHere*dQnkY[0][2]-dS13mPrimePrimePtPOI)/dM0pp3PtPOIPtPOI; // CORRECT !!! - } - - // 3-p - Double_t three2npp1n1nW1ppW1W1PtPOI=0.; // // OK!!! - if(dM1pp11PtPOI) - { - three2npp1n1nW1ppW1W1PtPOI = (q2xW1PrimePrimePtPOI*(dQnkX[0][0]*dQnkX[0][0]-dQnkY[0][0]*dQnkY[0][0])+2.*q2yW1PrimePrimePtPOI*dQnkX[0][0]*dQnkY[0][0]-2.*(qxW2PrimePrimePtPOI*dQnkX[0][0]+qyW2PrimePrimePtPOI*dQnkY[0][0])-(q2xW1PrimePrimePtPOI*dQnkX[1][1]+q2yW1PrimePrimePtPOI*dQnkY[1][1])+2.*dS13mPrimePrimePtPOI)/dM1pp11PtPOI; // CORRECT !!! - } - - // 3-p - Double_t three1npp1n2nW0ppW1W2PtPOI=0.; // // OK!!! - if(dM0pp12PtPOIPtPOI) - { - three1npp1n2nW0ppW1W2PtPOI = (qxPrimePrimePtPOIHere*(dQnkX[0][0]*dQnkX[1][1]+dQnkY[0][0]*dQnkY[1][1])-qyPrimePrimePtPOIHere*(dQnkY[0][0]*dQnkX[1][1]-dQnkX[0][0]*dQnkY[1][1])-(qxW2PrimePrimePtPOI*dQnkX[0][0]+qyW2PrimePrimePtPOI*dQnkY[0][0])-(q2xW1PrimePrimePtPOI*dQnkX[1][1]+q2yW1PrimePrimePtPOI*dQnkY[1][1])-(qxPrimePrimePtPOIHere*dQnkX[0][2]+qyPrimePrimePtPOIHere*dQnkY[0][2])+2.*dS13mPrimePrimePtPOI)/dM0pp12PtPOIPtPOI; // CORRECT !!! - } - - - - */ - - - /* - // 4-p RPpart - Double_t four1npp1n1n1nW1W1W1=0.; // - if(dM0pp111PtPOIPtPOI) - { - four1npp1n1n1nW1W1W1 = ( ( pow(dQnkX[0][0],2.)+pow(dQnkY[0][0],2.) ) * (qxPrimePrimePtPOIHere*dQnkX[0][0]+qyPrimePrimePtPOIHere*dQnkY[0][0]) - - 2.*dM1pp11PtPOI*two1n1nW1ppW1W1 - dM1pp11PtPOI*three2npp1n1nW1ppW1W1PtPOI - dM0pp12PtPOIPtPOI*three1npp1n2nW0ppW1W2PtPOI - 2.*dM0pp12PtPOIPtPOI*two1npp1nW1W2PtPOI - - 3.*dM2pp1PtPOIPtPOI*two1npp1nW2ppW1PtPOI -2.*dM1pp2PtPOIPtPOI - dM1pp2PtPOIPtPOI*two2npp2nW1ppW2PtPOI - dM0pp3PtPOIPtPOI*two1npp1nW3PtPOI - dS13mPrimePrimePtPOI)/(dM0pp111PtPOIPtPOI); - - } - - */ - - - - /* - // 4- POIpart - Double_t four1npp1n1n1nW1W1W1POI=0.; - if(dM0p111PtPOIPtPOI>0&&mPrimePtPOIHere>0&&nRP>0) - { - four1npp1n1n1nW1W1W1POI = ( ( pow(dQnkX[0][0],2.)+pow(dQnkY[0][0],2.) ) * (qxPrimePtPOIHere*dQnkX[0][0]+qyPrimePtPOIHere*dQnkY[0][0]) - - - 2.*dSnk[0][1]* (qxPrimePtPOIHere*dQnkX[0][0]+qyPrimePtPOIHere*dQnkY[0][0]) - - + 2.*(qxPrimePtPOIHere*dQnkX[0][2]+qyPrimePtPOIHere*dQnkY[0][2]) - - - qxPrimePtPOIHere*(dQnkX[0][0]*dQnkX[1][1]+dQnkY[0][0]*dQnkY[1][1])+qyPrimePtPOIHere*(dQnkY[0][0]*dQnkX[1][1]-dQnkX[0][0]*dQnkY[1][1]))/dM0p111PtPOIPtPOI; - - - - - } - */ - /* - - // 4-p RP and POI in all combinations (full, partial and no overlap) - Double_t four1npp1n1n1nW1W1W1PtPOIAndRPPt=0.; - - if(dM0pp111PtPOIPtPOI+dM0p111PtPOIPtPOI) - { - four1npp1n1n1nW1W1W1PtPOIAndRPPt = ( ( pow(dQnkX[0][0],2.)+pow(dQnkY[0][0],2.) ) * (qxPrimePrimePtPOIHere*dQnkX[0][0]+qyPrimePrimePtPOIHere*dQnkY[0][0]) - - 2.*dM1pp11PtPOI*two1n1nW1ppW1W1 - dM1pp11PtPOI*three2npp1n1nW1ppW1W1PtPOI - dM0pp12PtPOIPtPOI*three1npp1n2nW0ppW1W2PtPOI - 2.*dM0pp12PtPOIPtPOI*two1npp1nW1W2PtPOI - - 3.*dM2pp1PtPOIPtPOI*two1npp1nW2ppW1PtPOI -2.*dM1pp2PtPOIPtPOI - dM1pp2PtPOIPtPOI*two2npp2nW1ppW2PtPOI - dM0pp3PtPOIPtPOI*two1npp1nW3PtPOI - dS13mPrimePrimePtPOI + - - - + ( pow(dQnkX[0][0],2.)+pow(dQnkY[0][0],2.) ) * (qxPrimePtPOIHere*dQnkX[0][0]+qyPrimePtPOIHere*dQnkY[0][0]) - - - 2.*dSnk[0][1]* (qxPrimePtPOIHere*dQnkX[0][0]+qyPrimePtPOIHere*dQnkY[0][0]) - - + 2.*(qxPrimePtPOIHere*dQnkX[0][2]+qyPrimePtPOIHere*dQnkY[0][2]) - - - qxPrimePtPOIHere*(dQnkX[0][0]*dQnkX[1][1]+dQnkY[0][0]*dQnkY[1][1])+qyPrimePtPOIHere*(dQnkY[0][0]*dQnkX[1][1]-dQnkX[0][0]*dQnkY[1][1]))/(dM0pp111PtPOIPtPOI+dM0p111PtPOIPtPOI); - - - f4WPerPtBin1n1n1n1nPOI->Fill(fPtMin+(bin-1)*dBinWidthPt,four1npp1n1n1nW1W1W1PtPOIAndRPPt,dM0pp111PtPOIPtPOI+dM0p111PtPOIPtPOI); - } - } - - delete req1nW2PrimePrimePtPOI; - delete imq1nW2PrimePrimePtPOI; - delete req2nW1PrimePrimePtPOI; - delete imq2nW1PrimePrimePtPOI; - delete sumOfW1upTomPrimePrimePtPOI; - delete sumOfW2upTomPrimePrimePtPOI; - delete sumOfW3upTomPrimePrimePtPOI; - - - - - - */ - - - - - - - /* - - // eta POI - for(Int_t bin=1;bin<(fnBinsEta+1);bin++) // loop over Eta-bins - { - // q'': - qxPrimePrimeEtaPOIHere = (fEtaReq1nPrimePrimePOI->GetBinContent(bin))*(fEtaReq1nPrimePrimePOI->GetBinEntries(bin)); - qyPrimePrimeEtaPOIHere = (fEtaImq1nPrimePrimePOI->GetBinContent(bin))*(fEtaImq1nPrimePrimePOI->GetBinEntries(bin)); - q2xPrimePrimeEtaPOIHere = (fEtaReq2nPrimePrimePOI->GetBinContent(bin))*(fEtaReq2nPrimePrimePOI->GetBinEntries(bin)); - q2yPrimePrimeEtaPOIHere = (fEtaImq2nPrimePrimePOI->GetBinContent(bin))*(fEtaImq2nPrimePrimePOI->GetBinEntries(bin)); - - - qxW2PrimePrimeEtaPOI = (req1nW2PrimePrimeEtaPOI->GetBinContent(bin))*(req1nW2PrimePrimeEtaPOI->GetBinEntries(bin)); - qyW2PrimePrimeEtaPOI = (imq1nW2PrimePrimeEtaPOI->GetBinContent(bin))*(imq1nW2PrimePrimeEtaPOI->GetBinEntries(bin)); - - q2xW1PrimePrimeEtaPOI = (req2nW1PrimePrimeEtaPOI->GetBinContent(bin))*(req2nW1PrimePrimeEtaPOI->GetBinEntries(bin)); - q2yW1PrimePrimeEtaPOI = (imq2nW1PrimePrimeEtaPOI->GetBinContent(bin))*(imq2nW1PrimePrimeEtaPOI->GetBinEntries(bin)); - - dS11mPrimePrimeEtaPOI = (sumOfW1upTomPrimePrimeEtaPOI->GetBinContent(bin))*(sumOfW1upTomPrimePrimeEtaPOI->GetBinEntries(bin)); - dS12mPrimePrimeEtaPOI = (sumOfW2upTomPrimePrimeEtaPOI->GetBinContent(bin))*(sumOfW2upTomPrimePrimeEtaPOI->GetBinEntries(bin)); - dS13mPrimePrimeEtaPOI = (sumOfW3upTomPrimePrimeEtaPOI->GetBinContent(bin))*(sumOfW3upTomPrimePrimeEtaPOI->GetBinEntries(bin)); - - mPrimePrimeEtaPOIHere = sumOfW1upTomPrimePrimeEtaPOI->GetBinEntries(bin); // to be improved - - dM1pp11EtaPOI=dS11mPrimePrimeEtaPOI*(dSnk[1][0]-dSnk[0][1])-2.*dS12mPrimePrimeEtaPOI*dSnk[0][0]+2.*dS13mPrimePrimeEtaPOI; - dM1pp2PtPOIEtaPOI=dS11mPrimePrimeEtaPOI*dSnk[0][1]-dS13mPrimePrimeEtaPOI; - dM2pp1PtPOIEtaPOI=dS12mPrimePrimeEtaPOI*dSnk[0][0]-dS13mPrimePrimeEtaPOI; - dM0pp3PtPOIEtaPOI=mPrimePrimeEtaPOIHere*dSnk[0][2]-dS13mPrimePrimeEtaPOI; - dM0pp12PtPOIEtaPOI=mPrimePrimeEtaPOIHere*dSnk[0][0]*dSnk[0][1]-dM2pp1PtPOIEtaPOI-dM1pp2PtPOIEtaPOI-dM0pp3PtPOIEtaPOI-dS13mPrimePrimeEtaPOI; - dM0pp111PtPOIEtaPOI=mPrimePrimeEtaPOIHere*dSnk[2][0]-3.*dM1pp11EtaPOI-3.*dM0pp12PtPOIEtaPOI-3.*dM2pp1PtPOIEtaPOI-3.*dM1pp2PtPOIEtaPOI-dM0pp3PtPOIEtaPOI-dS13mPrimePrimeEtaPOI; - - // q': - qxPrimeEtaPOIHere = (fEtaReq1nPrimePOI->GetBinContent(bin))*(fEtaReq1nPrimePOI->GetBinEntries(bin)); - qyPrimeEtaPOIHere = (fEtaImq1nPrimePOI->GetBinContent(bin))*(fEtaImq1nPrimePOI->GetBinEntries(bin)); - - mPrimeEtaPOIHere = fEtaReq1nPrimePOI->GetBinEntries(bin); // to be improved - dM0p111PtPOIEtaPOI=mPrimeEtaPOIHere*(dSnk[2][0]-3.*dSnk[0][1]*dSnk[0][0]+2.*dSnk[0][2]); - - // 2-p - Double_t two1n1nWPerEtaBinPOI=0.; // the needed one - if(mPrimePrimeEtaPOIHere*dSnk[0][0]-dS11mPrimePrimeEtaPOI) - { - two1n1nWPerEtaBinPOI = (qxPrimePrimeEtaPOIHere*dQnkX[0][0]+qyPrimePrimeEtaPOIHere*dQnkY[0][0]-dS11mPrimePrimeEtaPOI)/(mPrimePrimeEtaPOIHere*dSnk[0][0]-dS11mPrimePrimeEtaPOI); - - f2WPerEtaBin1n1nPOI->Fill(fEtaMin+(bin-1)*dBinWidthEta,two1n1nWPerEtaBinPOI,(mPrimePrimeEtaPOIHere*dSnk[0][0]-dS11mPrimePrimeEtaPOI)); // <2'>_{n|n} - } - - // 2-p - Double_t two1n1nW1ppW1W1=0.; // // OK!!! - if(dM1pp11EtaPOI) - { - two1n1nW1ppW1W1 = ((pow(dQnkX[0][0],2.)+pow(dQnkY[0][0],2.))*dS11mPrimePrimeEtaPOI-2.*(qxW2PrimePrimeEtaPOI*dQnkX[0][0]+qyW2PrimePrimeEtaPOI*dQnkY[0][0]) - dS11mPrimePrimeEtaPOI*dSnk[0][1]+2.*dS13mPrimePrimeEtaPOI)/dM1pp11EtaPOI; // CORRECT !!! - } - - // 2-p - Double_t two1npp1nW1W2PtPOI=0.; // // OK !!! - if(dM0pp12PtPOIEtaPOI) - { - two1npp1nW1W2PtPOI = (dSnk[0][1]*(qxPrimePrimeEtaPOIHere*dQnkX[0][0]+qyPrimePrimeEtaPOIHere*dQnkY[0][0])-(qxW2PrimePrimeEtaPOI*dQnkX[0][0]+qyW2PrimePrimeEtaPOI*dQnkY[0][0])-dM1pp2PtPOIEtaPOI-(qxPrimePrimeEtaPOIHere*dQnkX[0][2]+qyPrimePrimeEtaPOIHere*dQnkY[0][2])+dS13mPrimePrimeEtaPOI)/dM0pp12PtPOIEtaPOI; // CORRECT !!! - } - - // 2-p - Double_t two1npp1nW2ppW1PtPOI=0.; // // OK !!! - if(dM2pp1PtPOIEtaPOI) - { - two1npp1nW2ppW1PtPOI = ((qxW2PrimePrimeEtaPOI*dQnkX[0][0]+qyW2PrimePrimeEtaPOI*dQnkY[0][0])-dS13mPrimePrimeEtaPOI)/dM2pp1PtPOIEtaPOI; // CORRECT !!! - } - - // 2-p - Double_t two2npp2nW1ppW2PtPOI=0.; // OK !!! - if(dM1pp2PtPOIEtaPOI) - { - two2npp2nW1ppW2PtPOI = ((q2xW1PrimePrimeEtaPOI*dQnkX[1][1]+q2yW1PrimePrimeEtaPOI*dQnkY[1][1])-dS13mPrimePrimeEtaPOI)/dM1pp2PtPOIEtaPOI; // CORRECT !!! - } - - // 2-p - Double_t two1npp1nW3PtPOI=0.; // // OK !!! - if(dM0pp3PtPOIEtaPOI) - { - two1npp1nW3PtPOI = (qxPrimePrimeEtaPOIHere*dQnkX[0][2]+qyPrimePrimeEtaPOIHere*dQnkY[0][2]-dS13mPrimePrimeEtaPOI)/dM0pp3PtPOIEtaPOI; // CORRECT !!! - } - - // 3-p - Double_t three2npp1n1nW1ppW1W1PtPOI=0.; // // OK!!! - if(dM1pp11EtaPOI) - { - three2npp1n1nW1ppW1W1PtPOI = (q2xW1PrimePrimeEtaPOI*(dQnkX[0][0]*dQnkX[0][0]-dQnkY[0][0]*dQnkY[0][0])+2.*q2yW1PrimePrimeEtaPOI*dQnkX[0][0]*dQnkY[0][0]-2.*(qxW2PrimePrimeEtaPOI*dQnkX[0][0]+qyW2PrimePrimeEtaPOI*dQnkY[0][0])-(q2xW1PrimePrimeEtaPOI*dQnkX[1][1]+q2yW1PrimePrimeEtaPOI*dQnkY[1][1])+2.*dS13mPrimePrimeEtaPOI)/dM1pp11EtaPOI; // CORRECT !!! - } - - // 3-p - Double_t three1npp1n2nW0ppW1W2PtPOI=0.; // // OK!!! - if(dM0pp12PtPOIEtaPOI) - { - three1npp1n2nW0ppW1W2PtPOI = (qxPrimePrimeEtaPOIHere*(dQnkX[0][0]*dQnkX[1][1]+dQnkY[0][0]*dQnkY[1][1])-qyPrimePrimeEtaPOIHere*(dQnkY[0][0]*dQnkX[1][1]-dQnkX[0][0]*dQnkY[1][1])-(qxW2PrimePrimeEtaPOI*dQnkX[0][0]+qyW2PrimePrimeEtaPOI*dQnkY[0][0])-(q2xW1PrimePrimeEtaPOI*dQnkX[1][1]+q2yW1PrimePrimeEtaPOI*dQnkY[1][1])-(qxPrimePrimeEtaPOIHere*dQnkX[0][2]+qyPrimePrimeEtaPOIHere*dQnkY[0][2])+2.*dS13mPrimePrimeEtaPOI)/dM0pp12PtPOIEtaPOI; // CORRECT !!! - } - - */ - - - /* - // 4-p RPpart - Double_t four1npp1n1n1nW1W1W1=0.; // - if(dM0pp111PtPOIEtaPOI) - { - four1npp1n1n1nW1W1W1 = ( ( pow(dQnkX[0][0],2.)+pow(dQnkY[0][0],2.) ) * (qxPrimePrimeEtaPOIHere*dQnkX[0][0]+qyPrimePrimeEtaPOIHere*dQnkY[0][0]) - - 2.*dM1pp11EtaPOI*two1n1nW1ppW1W1 - dM1pp11EtaPOI*three2npp1n1nW1ppW1W1PtPOI - dM0pp12PtPOIEtaPOI*three1npp1n2nW0ppW1W2PtPOI - 2.*dM0pp12PtPOIEtaPOI*two1npp1nW1W2PtPOI - - 3.*dM2pp1PtPOIEtaPOI*two1npp1nW2ppW1PtPOI -2.*dM1pp2PtPOIEtaPOI - dM1pp2PtPOIEtaPOI*two2npp2nW1ppW2PtPOI - dM0pp3PtPOIEtaPOI*two1npp1nW3PtPOI - dS13mPrimePrimeEtaPOI)/(dM0pp111PtPOIEtaPOI); - - } - - */ - - - - /* - // 4- POIpart - Double_t four1npp1n1n1nW1W1W1POI=0.; - if(dM0p111PtPOIEtaPOI>0&&mPrimeEtaPOIHere>0&&nRP>0) - { - four1npp1n1n1nW1W1W1POI = ( ( pow(dQnkX[0][0],2.)+pow(dQnkY[0][0],2.) ) * (qxPrimeEtaPOIHere*dQnkX[0][0]+qyPrimeEtaPOIHere*dQnkY[0][0]) - - - 2.*dSnk[0][1]* (qxPrimeEtaPOIHere*dQnkX[0][0]+qyPrimeEtaPOIHere*dQnkY[0][0]) - - + 2.*(qxPrimeEtaPOIHere*dQnkX[0][2]+qyPrimeEtaPOIHere*dQnkY[0][2]) - - - qxPrimeEtaPOIHere*(dQnkX[0][0]*dQnkX[1][1]+dQnkY[0][0]*dQnkY[1][1])+qyPrimeEtaPOIHere*(dQnkY[0][0]*dQnkX[1][1]-dQnkX[0][0]*dQnkY[1][1]))/dM0p111PtPOIEtaPOI; - - - - - } - */ - - - /* - - // 4-p RP and POI in all combinations (full, partial and no overlap) - Double_t four1npp1n1n1nW1W1W1PtPOIAndRPEta=0.; - - if(dM0pp111PtPOIEtaPOI+dM0p111PtPOIEtaPOI) - { - four1npp1n1n1nW1W1W1PtPOIAndRPEta = ( ( pow(dQnkX[0][0],2.)+pow(dQnkY[0][0],2.) ) * (qxPrimePrimeEtaPOIHere*dQnkX[0][0]+qyPrimePrimeEtaPOIHere*dQnkY[0][0]) - - 2.*dM1pp11EtaPOI*two1n1nW1ppW1W1 - dM1pp11EtaPOI*three2npp1n1nW1ppW1W1PtPOI - dM0pp12PtPOIEtaPOI*three1npp1n2nW0ppW1W2PtPOI - 2.*dM0pp12PtPOIEtaPOI*two1npp1nW1W2PtPOI - - 3.*dM2pp1PtPOIEtaPOI*two1npp1nW2ppW1PtPOI -2.*dM1pp2PtPOIEtaPOI - dM1pp2PtPOIEtaPOI*two2npp2nW1ppW2PtPOI - dM0pp3PtPOIEtaPOI*two1npp1nW3PtPOI - dS13mPrimePrimeEtaPOI + - - - + ( pow(dQnkX[0][0],2.)+pow(dQnkY[0][0],2.) ) * (qxPrimeEtaPOIHere*dQnkX[0][0]+qyPrimeEtaPOIHere*dQnkY[0][0]) - - - 2.*dSnk[0][1]* (qxPrimeEtaPOIHere*dQnkX[0][0]+qyPrimeEtaPOIHere*dQnkY[0][0]) - - + 2.*(qxPrimeEtaPOIHere*dQnkX[0][2]+qyPrimeEtaPOIHere*dQnkY[0][2]) - - - qxPrimeEtaPOIHere*(dQnkX[0][0]*dQnkX[1][1]+dQnkY[0][0]*dQnkY[1][1])+qyPrimeEtaPOIHere*(dQnkY[0][0]*dQnkX[1][1]-dQnkX[0][0]*dQnkY[1][1]))/(dM0pp111PtPOIEtaPOI+dM0p111PtPOIEtaPOI); - - - f4WPerEtaBin1n1n1n1nPOI->Fill(fEtaMin+(bin-1)*dBinWidthEta,four1npp1n1n1nW1W1W1PtPOIAndRPEta,dM0pp111PtPOIEtaPOI+dM0p111PtPOIEtaPOI); - } - } - - delete req1nW2PrimePrimeEtaPOI; - delete imq1nW2PrimePrimeEtaPOI; - delete req2nW1PrimePrimeEtaPOI; - delete imq2nW1PrimePrimeEtaPOI; - delete sumOfW1upTomPrimePrimeEtaPOI; - delete sumOfW2upTomPrimePrimeEtaPOI; - delete sumOfW3upTomPrimePrimeEtaPOI; - - - - - - - - - - - //WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW - - - - */ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - //QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ - - - - // pt POI - TProfile *req1nW2PrimePrimePtPOI = new TProfile("req1nW2PrimePrimePtRP","#sum_{i=1}^{m''} w_{i}^{2} cos(n(#phi_{i}))''",fnBinsPt,fPtMin,fPtMax,"s"); - TProfile *imq1nW2PrimePrimePtPOI = new TProfile("imq1nW2PrimePrimePtRP","#sum_{i=1}^{m''} w_{i}^{2} sin(n(#phi_{i}))''",fnBinsPt,fPtMin,fPtMax,"s"); - TProfile *req2nW1PrimePrimePtPOI = new TProfile("req2nW1PrimePrimePtRP","#sum_{i=1}^{m''} w_{i} cos(2n(#phi_{i}))''",fnBinsPt,fPtMin,fPtMax,"s"); - TProfile *imq2nW1PrimePrimePtPOI = new TProfile("imq2nW1PrimePrimePtRP","#sum_{i=1}^{m''} w_{i} sin(2n(#phi_{i}))''",fnBinsPt,fPtMin,fPtMax,"s"); - - TProfile *sumOfW1upTomPrimePrimePtPOI = new TProfile("sumOfW1upTomPrimePrimePtPOI","#sum_{i=1}^{m''} w_{i}''",fnBinsPt,fPtMin,fPtMax,"s"); - TProfile *sumOfW2upTomPrimePrimePtPOI = new TProfile("sumOfW2upTomPrimePrimePtPOI","#sum_{i=1}^{m''} w_{i}^{2}''",fnBinsPt,fPtMin,fPtMax,"s"); - TProfile *sumOfW3upTomPrimePrimePtPOI = new TProfile("sumOfW3upTomPrimePrimePtPOI","#sum_{i=1}^{m''} w_{i}^{3}''",fnBinsPt,fPtMin,fPtMax,"s"); - - // eta POI - TProfile *req1nW2PrimePrimeEtaPOI = new TProfile("req1nW2PrimePrimeEtaRP","#sum_{i=1}^{m''} w_{i}^{2} cos(n(#phi_{i}))''",fnBinsEta,fEtaMin,fEtaMax,"s"); - TProfile *imq1nW2PrimePrimeEtaPOI = new TProfile("imq1nW2PrimePrimeEtaRP","#sum_{i=1}^{m''} w_{i}^{2} sin(n(#phi_{i}))''",fnBinsEta,fEtaMin,fEtaMax,"s"); - TProfile *req2nW1PrimePrimeEtaPOI = new TProfile("req2nW1PrimePrimeEtaRP","#sum_{i=1}^{m''} w_{i} cos(2n(#phi_{i}))''",fnBinsEta,fEtaMin,fEtaMax,"s"); - TProfile *imq2nW1PrimePrimeEtaPOI = new TProfile("imq2nW1PrimePrimeEtaRP","#sum_{i=1}^{m''} w_{i} sin(2n(#phi_{i}))''",fnBinsEta,fEtaMin,fEtaMax,"s"); - - TProfile *sumOfW1upTomPrimePrimeEtaPOI = new TProfile("sumOfW1upTomPrimePrimeEtaPOI","#sum_{i=1}^{m''} w_{i}''",fnBinsEta,fEtaMin,fEtaMax,"s"); - TProfile *sumOfW2upTomPrimePrimeEtaPOI = new TProfile("sumOfW2upTomPrimePrimeEtaPOI","#sum_{i=1}^{m''} w_{i}^{2}''",fnBinsEta,fEtaMin,fEtaMax,"s"); - TProfile *sumOfW3upTomPrimePrimeEtaPOI = new TProfile("sumOfW3upTomPrimePrimeEtaPOI","#sum_{i=1}^{m''} w_{i}^{3}''",fnBinsEta,fEtaMin,fEtaMax,"s"); - - - - //POI: - //Double_t qxPrimePtPOI=0.,qyPrimePtPOI=0.,q2xPrimePtPOI=0.,q2yPrimePtPOI=0.,mPrimePtPOI=0.;//add comments for these variables (deleteMe) - - for(Int_t i=0;iGetTrack(i); - if(fTrack) - { - if(fTrack->UseForDifferentialFlow()) // checking if particle is POI - { - if(fTrack->UseForIntegratedFlow()) // checking if particle is both POI and RP - { - // get azimuthal angle, momentum and pseudorapidity of a particle: - dPhi = fTrack->Phi(); - dPt = fTrack->Pt(); - dEta = fTrack->Eta(); - // phi weights: - if(fUsePhiWeights) - { - nBinsPhi = phiWeights->GetNbinsX(); - if(nBinsPhi) - { - wPhi = phiWeights->GetBinContent(1+(Int_t)(TMath::Floor(dPhi*nBinsPhi/TMath::TwoPi()))); - } - } - // pt weights: - if(fUsePtWeights) - { - if(dBinWidthPt) - { - wPt = ptWeights->GetBinContent(1+(Int_t)(TMath::Floor((dPt-fPtMin)/dBinWidthPt))); - } - } - // eta weights: - if(fUseEtaWeights) - { - if(dBinWidthEta) - { - wEta=etaWeights->GetBinContent(1+(Int_t)(TMath::Floor((dEta-fEtaMin)/dBinWidthEta))); - } - } - // pt: - fPtReq1nPrimePrimePOI->Fill(dPt,cos(n*dPhi),1.); - fPtImq1nPrimePrimePOI->Fill(dPt,sin(n*dPhi),1.); - fPtReq2nPrimePrimePOI->Fill(dPt,cos(2.*n*dPhi),1.); - fPtImq2nPrimePrimePOI->Fill(dPt,sin(2.*n*dPhi),1.); - // weighted pt: - req1nW2PrimePrimePtPOI->Fill(dPt,cos(n*dPhi),pow(wPhi*wPt*wEta,2.)); - imq1nW2PrimePrimePtPOI->Fill(dPt,sin(n*dPhi),pow(wPhi*wPt*wEta,2.)); - req2nW1PrimePrimePtPOI->Fill(dPt,cos(2.*n*dPhi),wPhi*wPt*wEta); - imq2nW1PrimePrimePtPOI->Fill(dPt,sin(2.*n*dPhi),wPhi*wPt*wEta); - sumOfW1upTomPrimePrimePtPOI->Fill(dPt,wPhi*wPt*wEta,1.); - sumOfW2upTomPrimePrimePtPOI->Fill(dPt,pow(wPhi*wPt*wEta,2),1.); - sumOfW3upTomPrimePrimePtPOI->Fill(dPt,pow(wPhi*wPt*wEta,3),1.); - - // eta: - fEtaReq1nPrimePrimePOI->Fill(dEta,cos(n*dPhi),1.); - fEtaImq1nPrimePrimePOI->Fill(dEta,sin(n*dPhi),1.); - fEtaReq2nPrimePrimePOI->Fill(dEta,cos(2.*n*dPhi),1.); - fEtaImq2nPrimePrimePOI->Fill(dEta,sin(2.*n*dPhi),1.); - // weighted eta: - req1nW2PrimePrimeEtaPOI->Fill(dEta,cos(n*dPhi),pow(wPhi*wPt*wEta,2.)); - imq1nW2PrimePrimeEtaPOI->Fill(dEta,sin(n*dPhi),pow(wPhi*wPt*wEta,2.)); - req2nW1PrimePrimeEtaPOI->Fill(dEta,cos(2.*n*dPhi),wPhi*wPt*wEta); - imq2nW1PrimePrimeEtaPOI->Fill(dEta,sin(2.*n*dPhi),wPhi*wPt*wEta); - sumOfW1upTomPrimePrimeEtaPOI->Fill(dEta,wPhi*wPt*wEta,1.); - sumOfW2upTomPrimePrimeEtaPOI->Fill(dEta,pow(wPhi*wPt*wEta,2),1.); - sumOfW3upTomPrimePrimeEtaPOI->Fill(dEta,pow(wPhi*wPt*wEta,3),1.); - - }else if(!(fTrack->UseForIntegratedFlow())) // checking if particles is POI and not RP - { - // get azimuthal angle, momentum and pseudorapidity of a particle: - dPhi = fTrack->Phi(); - dPt = fTrack->Pt(); - dEta = fTrack->Eta(); - // pt: - fPtReq1nPrimePOI->Fill(dPt,cos(n*dPhi),1.); - fPtImq1nPrimePOI->Fill(dPt,sin(n*dPhi),1.); - fPtReq2nPrimePOI->Fill(dPt,cos(2.*n*dPhi),1.); - fPtImq2nPrimePOI->Fill(dPt,sin(2.*n*dPhi),1.); - - // eta: - fEtaReq1nPrimePOI->Fill(dEta,cos(n*dPhi),1.); - fEtaImq1nPrimePOI->Fill(dEta,sin(n*dPhi),1.); - fEtaReq2nPrimePOI->Fill(dEta,cos(2.*n*dPhi),1.); - fEtaImq2nPrimePOI->Fill(dEta,sin(2.*n*dPhi),1.); - - } // end of else if(!(fTrack->UseForIntegratedFlow())) // checking if particles is POI and not RP - } // end of if(fTrack->UseForDifferentialFlow()) // checking if particle is POI - } // end of if(fTrack} - } // end of for(Int_t i=0;iGetBinContent(bin))*(fPtReq1nPrimePrimePOI->GetBinEntries(bin)); - qyPrimePrimePtPOIHere = (fPtImq1nPrimePrimePOI->GetBinContent(bin))*(fPtImq1nPrimePrimePOI->GetBinEntries(bin)); - q2xPrimePrimePtPOIHere = (fPtReq2nPrimePrimePOI->GetBinContent(bin))*(fPtReq2nPrimePrimePOI->GetBinEntries(bin)); - q2yPrimePrimePtPOIHere = (fPtImq2nPrimePrimePOI->GetBinContent(bin))*(fPtImq2nPrimePrimePOI->GetBinEntries(bin)); - + qxPrimePrimePtPOI = (ptReq1nPrimePrime->GetBinContent(bin))*(ptReq1nPrimePrime->GetBinEntries(bin)); + qyPrimePrimePtPOI = (ptImq1nPrimePrime->GetBinContent(bin))*(ptImq1nPrimePrime->GetBinEntries(bin)); + q2xPrimePrimePtPOIHere = (ptReq2nPrimePrime->GetBinContent(bin))*(ptReq2nPrimePrime->GetBinEntries(bin)); + q2yPrimePrimePtPOIHere = (ptImq2nPrimePrime->GetBinContent(bin))*(ptImq2nPrimePrime->GetBinEntries(bin)); - qxW2PrimePrimePtPOI = (req1nW2PrimePrimePtPOI->GetBinContent(bin))*(req1nW2PrimePrimePtPOI->GetBinEntries(bin)); - qyW2PrimePrimePtPOI = (imq1nW2PrimePrimePtPOI->GetBinContent(bin))*(imq1nW2PrimePrimePtPOI->GetBinEntries(bin)); + qxW2PrimePrimePtPOI = (req1nW2PrimePrimePt->GetBinContent(bin))*(req1nW2PrimePrimePt->GetBinEntries(bin)); + qyW2PrimePrimePtPOI = (imq1nW2PrimePrimePt->GetBinContent(bin))*(imq1nW2PrimePrimePt->GetBinEntries(bin)); - q2xW1PrimePrimePtPOI = (req2nW1PrimePrimePtPOI->GetBinContent(bin))*(req2nW1PrimePrimePtPOI->GetBinEntries(bin)); - q2yW1PrimePrimePtPOI = (imq2nW1PrimePrimePtPOI->GetBinContent(bin))*(imq2nW1PrimePrimePtPOI->GetBinEntries(bin)); + q2xW1PrimePrimePtPOI = (req2nW1PrimePrimePt->GetBinContent(bin))*(req2nW1PrimePrimePt->GetBinEntries(bin)); + q2yW1PrimePrimePtPOI = (imq2nW1PrimePrimePt->GetBinContent(bin))*(imq2nW1PrimePrimePt->GetBinEntries(bin)); - dS11mPrimePrimePtPOI = (sumOfW1upTomPrimePrimePtPOI->GetBinContent(bin))*(sumOfW1upTomPrimePrimePtPOI->GetBinEntries(bin)); - dS12mPrimePrimePtPOI = (sumOfW2upTomPrimePrimePtPOI->GetBinContent(bin))*(sumOfW2upTomPrimePrimePtPOI->GetBinEntries(bin)); - dS13mPrimePrimePtPOI = (sumOfW3upTomPrimePrimePtPOI->GetBinContent(bin))*(sumOfW3upTomPrimePrimePtPOI->GetBinEntries(bin)); + dS11mPrimePrimePtPOI = (sumOfW1upTomPrimePrimePt->GetBinContent(bin))*(sumOfW1upTomPrimePrimePt->GetBinEntries(bin)); + dS12mPrimePrimePtPOI = (sumOfW2upTomPrimePrimePt->GetBinContent(bin))*(sumOfW2upTomPrimePrimePt->GetBinEntries(bin)); + dS13mPrimePrimePtPOI = (sumOfW3upTomPrimePrimePt->GetBinContent(bin))*(sumOfW3upTomPrimePrimePt->GetBinEntries(bin)); - mPrimePrimePtPOIHere = sumOfW1upTomPrimePrimePtPOI->GetBinEntries(bin); // to be improved + mPrimePrimePtPOI = sumOfW1upTomPrimePrimePt->GetBinEntries(bin); // to be improved dM1pp11PtPOI=dS11mPrimePrimePtPOI*(dSnk[1][0]-dSnk[0][1])-2.*dS12mPrimePrimePtPOI*dSnk[0][0]+2.*dS13mPrimePrimePtPOI; dM1pp2PtPOI=dS11mPrimePrimePtPOI*dSnk[0][1]-dS13mPrimePrimePtPOI; dM2pp1PtPOI=dS12mPrimePrimePtPOI*dSnk[0][0]-dS13mPrimePrimePtPOI; - dM0pp3PtPOI=mPrimePrimePtPOIHere*dSnk[0][2]-dS13mPrimePrimePtPOI; - dM0pp12PtPOI=mPrimePrimePtPOIHere*dSnk[0][0]*dSnk[0][1]-dM2pp1PtPOI-dM1pp2PtPOI-dM0pp3PtPOI-dS13mPrimePrimePtPOI; - dM0pp111PtPOI=mPrimePrimePtPOIHere*dSnk[2][0]-3.*dM1pp11PtPOI-3.*dM0pp12PtPOI-3.*dM2pp1PtPOI-3.*dM1pp2PtPOI-dM0pp3PtPOI-dS13mPrimePrimePtPOI; + dM0pp3PtPOI=mPrimePrimePtPOI*dSnk[0][2]-dS13mPrimePrimePtPOI; + dM0pp12PtPOI=mPrimePrimePtPOI*dSnk[0][0]*dSnk[0][1]-dM2pp1PtPOI-dM1pp2PtPOI-dM0pp3PtPOI-dS13mPrimePrimePtPOI; + dM0pp111PtPOI=mPrimePrimePtPOI*dSnk[2][0]-3.*dM1pp11PtPOI-3.*dM0pp12PtPOI-3.*dM2pp1PtPOI-3.*dM1pp2PtPOI-dM0pp3PtPOI-dS13mPrimePrimePtPOI; // q': - qxPrimePtPOIHere = (fPtReq1nPrimePOI->GetBinContent(bin))*(fPtReq1nPrimePOI->GetBinEntries(bin)); - qyPrimePtPOIHere = (fPtImq1nPrimePOI->GetBinContent(bin))*(fPtImq1nPrimePOI->GetBinEntries(bin)); + qxPrimePtPOI = (ptReq1nPrime->GetBinContent(bin))*(ptReq1nPrime->GetBinEntries(bin)); + qyPrimePtPOI = (ptImq1nPrime->GetBinContent(bin))*(ptImq1nPrime->GetBinEntries(bin)); - mPrimePtPOIHere = fPtReq1nPrimePOI->GetBinEntries(bin); // to be improved - dM0p111PtPOI=mPrimePtPOIHere*(dSnk[2][0]-3.*dSnk[0][1]*dSnk[0][0]+2.*dSnk[0][2]); + mPrimePtPOI = ptReq1nPrime->GetBinEntries(bin); // to be improved + dM0p111PtPOI=mPrimePtPOI*(dSnk[2][0]-3.*dSnk[0][1]*dSnk[0][0]+2.*dSnk[0][2]); - // 2-p - Double_t two1n1nWPerPtBinPOI=0.; // the needed one - if((mPrimePrimePtPOIHere+mPrimePtPOIHere)*dSnk[0][0]-dS11mPrimePrimePtPOI>0) + // 2-p the needed one + Double_t two1n1nWPerPtBinPOI=0.; + if((mPrimePrimePtPOI+mPrimePtPOI)*dSnk[0][0]-dS11mPrimePrimePtPOI>0) { - two1n1nWPerPtBinPOI = (qxPrimePrimePtPOIHere*dQnkX[0][0]+qyPrimePrimePtPOIHere*dQnkY[0][0] - - + qxPrimePtPOIHere*dQnkX[0][0]+qyPrimePtPOIHere*dQnkY[0][0] - - -dS11mPrimePrimePtPOI)/((mPrimePrimePtPOIHere+mPrimePtPOIHere)*dSnk[0][0]-dS11mPrimePrimePtPOI); + two1n1nWPerPtBinPOI = (qxPrimePrimePtPOI*dQnkX[0][0]+qyPrimePrimePtPOI*dQnkY[0][0]+qxPrimePtPOI*dQnkX[0][0]+qyPrimePtPOI*dQnkY[0][0]-dS11mPrimePrimePtPOI)/((mPrimePrimePtPOI+mPrimePtPOI)*dSnk[0][0]-dS11mPrimePrimePtPOI); - f2WPerPtBin1n1nPOI->Fill(fPtMin+(bin-1)*dBinWidthPt,two1n1nWPerPtBinPOI,(mPrimePrimePtPOIHere+mPrimePtPOIHere)*dSnk[0][0]-dS11mPrimePrimePtPOI); // <2'>_{n|n} + f2WPerPtBin1n1nPOI->Fill(fPtMin+(bin-1)*dBinWidthPt,two1n1nWPerPtBinPOI,(mPrimePrimePtPOI+mPrimePtPOI)*dSnk[0][0]-dS11mPrimePrimePtPOI); } - // 2-p + // 2-p temporary one Double_t two1n1nW1ppW1W1PtPOI=0.; // // OK!!! if(dM1pp11PtPOI) { two1n1nW1ppW1W1PtPOI = ((pow(dQnkX[0][0],2.)+pow(dQnkY[0][0],2.))*dS11mPrimePrimePtPOI-2.*(qxW2PrimePrimePtPOI*dQnkX[0][0]+qyW2PrimePrimePtPOI*dQnkY[0][0]) - dS11mPrimePrimePtPOI*dSnk[0][1]+2.*dS13mPrimePrimePtPOI)/dM1pp11PtPOI; // CORRECT !!! } - // 2-p + // 2-p temporary one Double_t two1npp1nW1W2PtPOI=0.; // // OK !!! if(dM0pp12PtPOI) { - two1npp1nW1W2PtPOI = (dSnk[0][1]*(qxPrimePrimePtPOIHere*dQnkX[0][0]+qyPrimePrimePtPOIHere*dQnkY[0][0])-(qxW2PrimePrimePtPOI*dQnkX[0][0]+qyW2PrimePrimePtPOI*dQnkY[0][0])-dM1pp2PtPOI-(qxPrimePrimePtPOIHere*dQnkX[0][2]+qyPrimePrimePtPOIHere*dQnkY[0][2])+dS13mPrimePrimePtPOI)/dM0pp12PtPOI; // CORRECT !!! + two1npp1nW1W2PtPOI = (dSnk[0][1]*(qxPrimePrimePtPOI*dQnkX[0][0]+qyPrimePrimePtPOI*dQnkY[0][0])-(qxW2PrimePrimePtPOI*dQnkX[0][0]+qyW2PrimePrimePtPOI*dQnkY[0][0])-dM1pp2PtPOI-(qxPrimePrimePtPOI*dQnkX[0][2]+qyPrimePrimePtPOI*dQnkY[0][2])+dS13mPrimePrimePtPOI)/dM0pp12PtPOI; // CORRECT !!! } - // 2-p + // 2-p temporary one Double_t two1npp1nW2ppW1PtPOI=0.; // // OK !!! if(dM2pp1PtPOI) { two1npp1nW2ppW1PtPOI = ((qxW2PrimePrimePtPOI*dQnkX[0][0]+qyW2PrimePrimePtPOI*dQnkY[0][0])-dS13mPrimePrimePtPOI)/dM2pp1PtPOI; // CORRECT !!! } - // 2-p + // 2-p temporary one Double_t two2npp2nW1ppW2PtPOI=0.; // OK !!! if(dM1pp2PtPOI) { two2npp2nW1ppW2PtPOI = ((q2xW1PrimePrimePtPOI*dQnkX[1][1]+q2yW1PrimePrimePtPOI*dQnkY[1][1])-dS13mPrimePrimePtPOI)/dM1pp2PtPOI; // CORRECT !!! } - // 2-p + // 2-p temporary one Double_t two1npp1nW3PtPOI=0.; // // OK !!! if(dM0pp3PtPOI) { - two1npp1nW3PtPOI = (qxPrimePrimePtPOIHere*dQnkX[0][2]+qyPrimePrimePtPOIHere*dQnkY[0][2]-dS13mPrimePrimePtPOI)/dM0pp3PtPOI; // CORRECT !!! + two1npp1nW3PtPOI = (qxPrimePrimePtPOI*dQnkX[0][2]+qyPrimePrimePtPOI*dQnkY[0][2]-dS13mPrimePrimePtPOI)/dM0pp3PtPOI; // CORRECT !!! } - // 3-p + // 3-p temporary one Double_t three2npp1n1nW1ppW1W1PtPOI=0.; // // OK!!! if(dM1pp11PtPOI) { three2npp1n1nW1ppW1W1PtPOI = (q2xW1PrimePrimePtPOI*(dQnkX[0][0]*dQnkX[0][0]-dQnkY[0][0]*dQnkY[0][0])+2.*q2yW1PrimePrimePtPOI*dQnkX[0][0]*dQnkY[0][0]-2.*(qxW2PrimePrimePtPOI*dQnkX[0][0]+qyW2PrimePrimePtPOI*dQnkY[0][0])-(q2xW1PrimePrimePtPOI*dQnkX[1][1]+q2yW1PrimePrimePtPOI*dQnkY[1][1])+2.*dS13mPrimePrimePtPOI)/dM1pp11PtPOI; // CORRECT !!! } - // 3-p + // 3-p temporary one Double_t three1npp1n2nW0ppW1W2PtPOI=0.; // // OK!!! if(dM0pp12PtPOI) { - three1npp1n2nW0ppW1W2PtPOI = (qxPrimePrimePtPOIHere*(dQnkX[0][0]*dQnkX[1][1]+dQnkY[0][0]*dQnkY[1][1])-qyPrimePrimePtPOIHere*(dQnkY[0][0]*dQnkX[1][1]-dQnkX[0][0]*dQnkY[1][1])-(qxW2PrimePrimePtPOI*dQnkX[0][0]+qyW2PrimePrimePtPOI*dQnkY[0][0])-(q2xW1PrimePrimePtPOI*dQnkX[1][1]+q2yW1PrimePrimePtPOI*dQnkY[1][1])-(qxPrimePrimePtPOIHere*dQnkX[0][2]+qyPrimePrimePtPOIHere*dQnkY[0][2])+2.*dS13mPrimePrimePtPOI)/dM0pp12PtPOI; // CORRECT !!! + three1npp1n2nW0ppW1W2PtPOI = (qxPrimePrimePtPOI*(dQnkX[0][0]*dQnkX[1][1]+dQnkY[0][0]*dQnkY[1][1])-qyPrimePrimePtPOI*(dQnkY[0][0]*dQnkX[1][1]-dQnkX[0][0]*dQnkY[1][1])-(qxW2PrimePrimePtPOI*dQnkX[0][0]+qyW2PrimePrimePtPOI*dQnkY[0][0])-(q2xW1PrimePrimePtPOI*dQnkX[1][1]+q2yW1PrimePrimePtPOI*dQnkY[1][1])-(qxPrimePrimePtPOI*dQnkX[0][2]+qyPrimePrimePtPOI*dQnkY[0][2])+2.*dS13mPrimePrimePtPOI)/dM0pp12PtPOI; // CORRECT !!! } - /* - // 4-p RP + // 4-p RP part Double_t four1npp1n1n1nW1W1W1=0.; // if(dM0pp111PtPOI) { - four1npp1n1n1nW1W1W1 = ( ( pow(dQnkX[0][0],2.)+pow(dQnkY[0][0],2.) ) * (qxPrimePrimePtPOIHere*dQnkX[0][0]+qyPrimePrimePtPOIHere*dQnkY[0][0]) - - 2.*dM1pp11PtPOI*two1n1nW1ppW1W1PtPOI - dM1pp11PtPOI*three2npp1n1nW1ppW1W1PtPOI - dM0pp12PtPOI*three1npp1n2nW0ppW1W2PtPOI - 2.*dM0pp12PtPOI*two1npp1nW1W2PtPOI - - 3.*dM2pp1PtPOI*two1npp1nW2ppW1PtPOI -2.*dM1pp2PtPOI - dM1pp2PtPOI*two2npp2nW1ppW2PtPOI - dM0pp3PtPOI*two1npp1nW3PtPOI - dS13mPrimePrimePtPOI)/(dM0pp111PtPOI); - + four1npp1n1n1nW1W1W1 = ((pow(dQnkX[0][0],2.)+pow(dQnkY[0][0],2.))*(qxPrimePrimePtPOI*dQnkX[0][0]+qyPrimePrimePtPOI*dQnkY[0][0])-2.*dM1pp11PtPOI*two1n1nW1ppW1W1PtPOI-dM1pp11PtPOI*three2npp1n1nW1ppW1W1PtPOI-dM0pp12PtPOI*three1npp1n2nW0ppW1W2PtPOI-2.*dM0pp12PtPOI*two1npp1nW1W2PtPOI-3.*dM2pp1PtPOI*two1npp1nW2ppW1PtPOI-2.*dM1pp2PtPOI-dM1pp2PtPOI*two2npp2nW1ppW2PtPOI-dM0pp3PtPOI*two1npp1nW3PtPOI-dS13mPrimePrimePtPOI)/(dM0pp111PtPOI); } - */ - - - - /* - // 4- POI - Double_t four1npp1n1n1nW1W1W1POI=0.; - if(dM0p111PtPOI>0&&mPrimePtPOIHere>0&&nRP>0) - { - four1npp1n1n1nW1W1W1POI = ( ( pow(dQnkX[0][0],2.)+pow(dQnkY[0][0],2.) ) * (qxPrimePtPOIHere*dQnkX[0][0]+qyPrimePtPOIHere*dQnkY[0][0]) - - - 2.*dSnk[0][1]* (qxPrimePtPOIHere*dQnkX[0][0]+qyPrimePtPOIHere*dQnkY[0][0]) - - + 2.*(qxPrimePtPOIHere*dQnkX[0][2]+qyPrimePtPOIHere*dQnkY[0][2]) - - - qxPrimePtPOIHere*(dQnkX[0][0]*dQnkX[1][1]+dQnkY[0][0]*dQnkY[1][1])+qyPrimePtPOIHere*(dQnkY[0][0]*dQnkX[1][1]-dQnkX[0][0]*dQnkY[1][1]))/dM0p111PtPOI; - - - - - } - */ - - - // 4-p RP and POI in all combinations (full, partial and no overlap) - Double_t four1npp1n1n1nW1W1W1PtPOIAndRP=0.; - - if(dM0pp111PtPOI+dM0p111PtPOI) - { - four1npp1n1n1nW1W1W1PtPOIAndRP = ( ( pow(dQnkX[0][0],2.)+pow(dQnkY[0][0],2.) ) * (qxPrimePrimePtPOIHere*dQnkX[0][0]+qyPrimePrimePtPOIHere*dQnkY[0][0]) - - 2.*dM1pp11PtPOI*two1n1nW1ppW1W1PtPOI - dM1pp11PtPOI*three2npp1n1nW1ppW1W1PtPOI - dM0pp12PtPOI*three1npp1n2nW0ppW1W2PtPOI - 2.*dM0pp12PtPOI*two1npp1nW1W2PtPOI - - 3.*dM2pp1PtPOI*two1npp1nW2ppW1PtPOI -2.*dM1pp2PtPOI - dM1pp2PtPOI*two2npp2nW1ppW2PtPOI - dM0pp3PtPOI*two1npp1nW3PtPOI - dS13mPrimePrimePtPOI + - - - + ( pow(dQnkX[0][0],2.)+pow(dQnkY[0][0],2.) ) * (qxPrimePtPOIHere*dQnkX[0][0]+qyPrimePtPOIHere*dQnkY[0][0]) - - - 2.*dSnk[0][1]* (qxPrimePtPOIHere*dQnkX[0][0]+qyPrimePtPOIHere*dQnkY[0][0]) - + 2.*(qxPrimePtPOIHere*dQnkX[0][2]+qyPrimePtPOIHere*dQnkY[0][2]) - - - qxPrimePtPOIHere*(dQnkX[0][0]*dQnkX[1][1]+dQnkY[0][0]*dQnkY[1][1])+qyPrimePtPOIHere*(dQnkY[0][0]*dQnkX[1][1]-dQnkX[0][0]*dQnkY[1][1]))/(dM0pp111PtPOI+dM0p111PtPOI); - - - f4WPerPtBin1n1n1n1nPOI->Fill(fPtMin+(bin-1)*dBinWidthPt,four1npp1n1n1nW1W1W1PtPOIAndRP,dM0pp111PtPOI+dM0p111PtPOI); - } + /* + // 4-p POI part + Double_t four1npp1n1n1nW1W1W1POI=0.; + if(dM0p111PtPOI>0&&mPrimePtPOI>0&&nRP>0) + { + four1npp1n1n1nW1W1W1POI = ((pow(dQnkX[0][0],2.)+pow(dQnkY[0][0],2.))*(qxPrimePtPOI*dQnkX[0][0]+qyPrimePtPOI*dQnkY[0][0])-2.*dSnk[0][1]* (qxPrimePtPOI*dQnkX[0][0]+qyPrimePtPOI*dQnkY[0][0])+2.*(qxPrimePtPOI*dQnkX[0][2]+qyPrimePtPOI*dQnkY[0][2])-qxPrimePtPOI*(dQnkX[0][0]*dQnkX[1][1]+dQnkY[0][0]*dQnkY[1][1])+qyPrimePtPOI*(dQnkY[0][0]*dQnkX[1][1]-dQnkX[0][0]*dQnkY[1][1]))/dM0p111PtPOI; } + */ - delete req1nW2PrimePrimePtPOI; - delete imq1nW2PrimePrimePtPOI; - delete req2nW1PrimePrimePtPOI; - delete imq2nW1PrimePrimePtPOI; - delete sumOfW1upTomPrimePrimePtPOI; - delete sumOfW2upTomPrimePrimePtPOI; - delete sumOfW3upTomPrimePrimePtPOI; - - //WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW - - - - - - - - // ETA POI + // 4-p RP and POI in all combinations (full, partial and no overlap) + Double_t four1npp1n1n1nW1W1W1PtPOI=0.; + if(dM0pp111PtPOI+dM0p111PtPOI) + { + four1npp1n1n1nW1W1W1PtPOI = ((pow(dQnkX[0][0],2.)+pow(dQnkY[0][0],2.))*(qxPrimePrimePtPOI*dQnkX[0][0]+qyPrimePrimePtPOI*dQnkY[0][0])-2.*dM1pp11PtPOI*two1n1nW1ppW1W1PtPOI-dM1pp11PtPOI*three2npp1n1nW1ppW1W1PtPOI-dM0pp12PtPOI*three1npp1n2nW0ppW1W2PtPOI-2.*dM0pp12PtPOI*two1npp1nW1W2PtPOI-3.*dM2pp1PtPOI*two1npp1nW2ppW1PtPOI-2.*dM1pp2PtPOI-dM1pp2PtPOI*two2npp2nW1ppW2PtPOI-dM0pp3PtPOI*two1npp1nW3PtPOI-dS13mPrimePrimePtPOI+(pow(dQnkX[0][0],2.)+pow(dQnkY[0][0],2.))*(qxPrimePtPOI*dQnkX[0][0]+qyPrimePtPOI*dQnkY[0][0])-2.*dSnk[0][1]* (qxPrimePtPOI*dQnkX[0][0]+qyPrimePtPOI*dQnkY[0][0])+2.*(qxPrimePtPOI*dQnkX[0][2]+qyPrimePtPOI*dQnkY[0][2])-qxPrimePtPOI*(dQnkX[0][0]*dQnkX[1][1]+dQnkY[0][0]*dQnkY[1][1])+qyPrimePtPOI*(dQnkY[0][0]*dQnkX[1][1]-dQnkX[0][0]*dQnkY[1][1]))/(dM0pp111PtPOI+dM0p111PtPOI); - - //PrimePrime Eta POI - Double_t qxPrimePrimeEtaPOIHere=0.,qyPrimePrimeEtaPOIHere=0.,q2xPrimePrimeEtaPOIHere=0.,q2yPrimePrimeEtaPOIHere=0.;//add comments for these variable + f4WPerPtBin1n1n1n1nPOI->Fill(fPtMin+(bin-1)*dBinWidthPt,four1npp1n1n1nW1W1W1PtPOI,dM0pp111PtPOI+dM0p111PtPOI); + } // end of if(dM0pp111PtPOI+dM0p111PtPOI) + } // for(Int_t bin=1;bin<(fnBinsPt+1);bin++) // loop over pt-bins + //........................................................................................................... + + //........................................................................................................... + // PrimePrime Eta POI + Double_t qxPrimePrimeEtaPOI=0.,qyPrimePrimeEtaPOI=0.,q2xPrimePrimeEtaPOIHere=0.,q2yPrimePrimeEtaPOIHere=0.;//add comments for these variable Double_t qxW2PrimePrimeEtaPOI=0.,qyW2PrimePrimeEtaPOI=0.,q2xW1PrimePrimeEtaPOI=0.,q2yW1PrimePrimeEtaPOI=0.;//add comments for these variable Double_t dS11mPrimePrimeEtaPOI=0.; // to be improved (name) Double_t dS12mPrimePrimeEtaPOI=0.; // to be improved (name) @@ -2479,35 +1436,30 @@ void AliFlowAnalysisWithQCumulants::Make(AliFlowEventSimple* anEvent) Double_t dM1pp2EtaPOI=0.; Double_t dM0pp3EtaPOI=0.; - - - //Prime Eta POI - Double_t qxPrimeEtaPOIHere=0.,qyPrimeEtaPOIHere=0.; - Double_t mPrimeEtaPOIHere=0.; - + // Prime Eta POI + Double_t qxPrimeEtaPOI=0.,qyPrimeEtaPOI=0.; + Double_t mPrimeEtaPOI=0.; Double_t dM0p111EtaPOI=0.; // to be improved (name) - - for(Int_t bin=1;bin<(fnBinsEta+1);bin++) // loop over pt-bins + for(Int_t bin=1;bin<(fnBinsEta+1);bin++) // loop over eta-bins { // q'': - qxPrimePrimeEtaPOIHere = (fEtaReq1nPrimePrimePOI->GetBinContent(bin))*(fEtaReq1nPrimePrimePOI->GetBinEntries(bin)); - qyPrimePrimeEtaPOIHere = (fEtaImq1nPrimePrimePOI->GetBinContent(bin))*(fEtaImq1nPrimePrimePOI->GetBinEntries(bin)); - q2xPrimePrimeEtaPOIHere = (fEtaReq2nPrimePrimePOI->GetBinContent(bin))*(fEtaReq2nPrimePrimePOI->GetBinEntries(bin)); - q2yPrimePrimeEtaPOIHere = (fEtaImq2nPrimePrimePOI->GetBinContent(bin))*(fEtaImq2nPrimePrimePOI->GetBinEntries(bin)); - + qxPrimePrimeEtaPOI = (etaReq1nPrimePrime->GetBinContent(bin))*(etaReq1nPrimePrime->GetBinEntries(bin)); + qyPrimePrimeEtaPOI = (etaImq1nPrimePrime->GetBinContent(bin))*(etaImq1nPrimePrime->GetBinEntries(bin)); + q2xPrimePrimeEtaPOIHere = (etaReq2nPrimePrime->GetBinContent(bin))*(etaReq2nPrimePrime->GetBinEntries(bin)); + q2yPrimePrimeEtaPOIHere = (etaImq2nPrimePrime->GetBinContent(bin))*(etaImq2nPrimePrime->GetBinEntries(bin)); - qxW2PrimePrimeEtaPOI = (req1nW2PrimePrimeEtaPOI->GetBinContent(bin))*(req1nW2PrimePrimeEtaPOI->GetBinEntries(bin)); - qyW2PrimePrimeEtaPOI = (imq1nW2PrimePrimeEtaPOI->GetBinContent(bin))*(imq1nW2PrimePrimeEtaPOI->GetBinEntries(bin)); + qxW2PrimePrimeEtaPOI = (req1nW2PrimePrimeEta->GetBinContent(bin))*(req1nW2PrimePrimeEta->GetBinEntries(bin)); + qyW2PrimePrimeEtaPOI = (imq1nW2PrimePrimeEta->GetBinContent(bin))*(imq1nW2PrimePrimeEta->GetBinEntries(bin)); - q2xW1PrimePrimeEtaPOI = (req2nW1PrimePrimeEtaPOI->GetBinContent(bin))*(req2nW1PrimePrimeEtaPOI->GetBinEntries(bin)); - q2yW1PrimePrimeEtaPOI = (imq2nW1PrimePrimeEtaPOI->GetBinContent(bin))*(imq2nW1PrimePrimeEtaPOI->GetBinEntries(bin)); + q2xW1PrimePrimeEtaPOI = (req2nW1PrimePrimeEta->GetBinContent(bin))*(req2nW1PrimePrimeEta->GetBinEntries(bin)); + q2yW1PrimePrimeEtaPOI = (imq2nW1PrimePrimeEta->GetBinContent(bin))*(imq2nW1PrimePrimeEta->GetBinEntries(bin)); - dS11mPrimePrimeEtaPOI = (sumOfW1upTomPrimePrimeEtaPOI->GetBinContent(bin))*(sumOfW1upTomPrimePrimeEtaPOI->GetBinEntries(bin)); - dS12mPrimePrimeEtaPOI = (sumOfW2upTomPrimePrimeEtaPOI->GetBinContent(bin))*(sumOfW2upTomPrimePrimeEtaPOI->GetBinEntries(bin)); - dS13mPrimePrimeEtaPOI = (sumOfW3upTomPrimePrimeEtaPOI->GetBinContent(bin))*(sumOfW3upTomPrimePrimeEtaPOI->GetBinEntries(bin)); + dS11mPrimePrimeEtaPOI = (sumOfW1upTomPrimePrimeEta->GetBinContent(bin))*(sumOfW1upTomPrimePrimeEta->GetBinEntries(bin)); + dS12mPrimePrimeEtaPOI = (sumOfW2upTomPrimePrimeEta->GetBinContent(bin))*(sumOfW2upTomPrimePrimeEta->GetBinEntries(bin)); + dS13mPrimePrimeEtaPOI = (sumOfW3upTomPrimePrimeEta->GetBinContent(bin))*(sumOfW3upTomPrimePrimeEta->GetBinEntries(bin)); - mPrimePrimeEtaPOIHere = sumOfW1upTomPrimePrimeEtaPOI->GetBinEntries(bin); // to be improved + mPrimePrimeEtaPOIHere = sumOfW1upTomPrimePrimeEta->GetBinEntries(bin); // to be improved dM1pp11EtaPOI=dS11mPrimePrimeEtaPOI*(dSnk[1][0]-dSnk[0][1])-2.*dS12mPrimePrimeEtaPOI*dSnk[0][0]+2.*dS13mPrimePrimeEtaPOI; dM1pp2EtaPOI=dS11mPrimePrimeEtaPOI*dSnk[0][1]-dS13mPrimePrimeEtaPOI; @@ -2517,141 +1469,502 @@ void AliFlowAnalysisWithQCumulants::Make(AliFlowEventSimple* anEvent) dM0pp111EtaPOI=mPrimePrimeEtaPOIHere*dSnk[2][0]-3.*dM1pp11EtaPOI-3.*dM0pp12EtaPOI-3.*dM2pp1EtaPOI-3.*dM1pp2EtaPOI-dM0pp3EtaPOI-dS13mPrimePrimeEtaPOI; // q': - qxPrimeEtaPOIHere = (fEtaReq1nPrimePOI->GetBinContent(bin))*(fEtaReq1nPrimePOI->GetBinEntries(bin)); - qyPrimeEtaPOIHere = (fEtaImq1nPrimePOI->GetBinContent(bin))*(fEtaImq1nPrimePOI->GetBinEntries(bin)); + qxPrimeEtaPOI = (etaReq1nPrime->GetBinContent(bin))*(etaReq1nPrime->GetBinEntries(bin)); + qyPrimeEtaPOI = (etaImq1nPrime->GetBinContent(bin))*(etaImq1nPrime->GetBinEntries(bin)); - mPrimeEtaPOIHere = fEtaReq1nPrimePOI->GetBinEntries(bin); // to be improved - dM0p111EtaPOI=mPrimeEtaPOIHere*(dSnk[2][0]-3.*dSnk[0][1]*dSnk[0][0]+2.*dSnk[0][2]); + mPrimeEtaPOI = etaReq1nPrime->GetBinEntries(bin); // to be improved + dM0p111EtaPOI=mPrimeEtaPOI*(dSnk[2][0]-3.*dSnk[0][1]*dSnk[0][0]+2.*dSnk[0][2]); - // 2-p - Double_t two1n1nWPerEtaBinPOI=0.; // the needed one - if((mPrimePrimeEtaPOIHere+mPrimeEtaPOIHere)*dSnk[0][0]-dS11mPrimePrimeEtaPOI>0) + // 2-p the needed one + Double_t two1n1nWPerEtaBinPOI=0.; + if((mPrimePrimeEtaPOIHere+mPrimeEtaPOI)*dSnk[0][0]-dS11mPrimePrimeEtaPOI>0) { - two1n1nWPerEtaBinPOI = (qxPrimePrimeEtaPOIHere*dQnkX[0][0]+qyPrimePrimeEtaPOIHere*dQnkY[0][0] - - + qxPrimeEtaPOIHere*dQnkX[0][0]+qyPrimeEtaPOIHere*dQnkY[0][0] - - -dS11mPrimePrimeEtaPOI)/((mPrimePrimeEtaPOIHere+mPrimeEtaPOIHere)*dSnk[0][0]-dS11mPrimePrimeEtaPOI); + two1n1nWPerEtaBinPOI = (qxPrimePrimeEtaPOI*dQnkX[0][0]+qyPrimePrimeEtaPOI*dQnkY[0][0]+qxPrimeEtaPOI*dQnkX[0][0]+qyPrimeEtaPOI*dQnkY[0][0]-dS11mPrimePrimeEtaPOI)/((mPrimePrimeEtaPOIHere+mPrimeEtaPOI)*dSnk[0][0]-dS11mPrimePrimeEtaPOI); - f2WPerEtaBin1n1nPOI->Fill(fEtaMin+(bin-1)*dBinWidthEta,two1n1nWPerEtaBinPOI,(mPrimePrimeEtaPOIHere+mPrimeEtaPOIHere)*dSnk[0][0]-dS11mPrimePrimeEtaPOI); // <2'>_{n|n} + f2WPerEtaBin1n1nPOI->Fill(fEtaMin+(bin-1)*dBinWidthEta,two1n1nWPerEtaBinPOI,(mPrimePrimeEtaPOIHere+mPrimeEtaPOI)*dSnk[0][0]-dS11mPrimePrimeEtaPOI); // <2'>_{n|n} } - // 2-p + // 2-p the temporary one Double_t two1n1nW1ppW1W1EtaPOI=0.; // // OK!!! if(dM1pp11EtaPOI) { - two1n1nW1ppW1W1EtaPOI = ((pow(dQnkX[0][0],2.)+pow(dQnkY[0][0],2.))*dS11mPrimePrimeEtaPOI-2.*(qxW2PrimePrimeEtaPOI*dQnkX[0][0]+qyW2PrimePrimeEtaPOI*dQnkY[0][0]) - dS11mPrimePrimeEtaPOI*dSnk[0][1]+2.*dS13mPrimePrimeEtaPOI)/dM1pp11EtaPOI; // CORRECT !!! + two1n1nW1ppW1W1EtaPOI = ((pow(dQnkX[0][0],2.)+pow(dQnkY[0][0],2.))*dS11mPrimePrimeEtaPOI-2.*(qxW2PrimePrimeEtaPOI*dQnkX[0][0]+qyW2PrimePrimeEtaPOI*dQnkY[0][0])-dS11mPrimePrimeEtaPOI*dSnk[0][1]+2.*dS13mPrimePrimeEtaPOI)/dM1pp11EtaPOI; // CORRECT !!! } - // 2-p + // 2-p the temporary one Double_t two1npp1nW1W2EtaPOI=0.; // // OK !!! if(dM0pp12EtaPOI) { - two1npp1nW1W2EtaPOI = (dSnk[0][1]*(qxPrimePrimeEtaPOIHere*dQnkX[0][0]+qyPrimePrimeEtaPOIHere*dQnkY[0][0])-(qxW2PrimePrimeEtaPOI*dQnkX[0][0]+qyW2PrimePrimeEtaPOI*dQnkY[0][0])-dM1pp2EtaPOI-(qxPrimePrimeEtaPOIHere*dQnkX[0][2]+qyPrimePrimeEtaPOIHere*dQnkY[0][2])+dS13mPrimePrimeEtaPOI)/dM0pp12EtaPOI; // CORRECT !!! + two1npp1nW1W2EtaPOI = (dSnk[0][1]*(qxPrimePrimeEtaPOI*dQnkX[0][0]+qyPrimePrimeEtaPOI*dQnkY[0][0])-(qxW2PrimePrimeEtaPOI*dQnkX[0][0]+qyW2PrimePrimeEtaPOI*dQnkY[0][0])-dM1pp2EtaPOI-(qxPrimePrimeEtaPOI*dQnkX[0][2]+qyPrimePrimeEtaPOI*dQnkY[0][2])+dS13mPrimePrimeEtaPOI)/dM0pp12EtaPOI; // CORRECT !!! } - // 2-p + // 2-p the temporary one Double_t two1npp1nW2ppW1EtaPOI=0.; // // OK !!! if(dM2pp1EtaPOI) { two1npp1nW2ppW1EtaPOI = ((qxW2PrimePrimeEtaPOI*dQnkX[0][0]+qyW2PrimePrimeEtaPOI*dQnkY[0][0])-dS13mPrimePrimeEtaPOI)/dM2pp1EtaPOI; // CORRECT !!! } - // 2-p + // 2-p the temporary one Double_t two2npp2nW1ppW2EtaPOI=0.; // OK !!! if(dM1pp2EtaPOI) { two2npp2nW1ppW2EtaPOI = ((q2xW1PrimePrimeEtaPOI*dQnkX[1][1]+q2yW1PrimePrimeEtaPOI*dQnkY[1][1])-dS13mPrimePrimeEtaPOI)/dM1pp2EtaPOI; // CORRECT !!! } - // 2-p + // 2-p the temporary one Double_t two1npp1nW3EtaPOI=0.; // // OK !!! if(dM0pp3EtaPOI) { - two1npp1nW3EtaPOI = (qxPrimePrimeEtaPOIHere*dQnkX[0][2]+qyPrimePrimeEtaPOIHere*dQnkY[0][2]-dS13mPrimePrimeEtaPOI)/dM0pp3EtaPOI; // CORRECT !!! + two1npp1nW3EtaPOI = (qxPrimePrimeEtaPOI*dQnkX[0][2]+qyPrimePrimeEtaPOI*dQnkY[0][2]-dS13mPrimePrimeEtaPOI)/dM0pp3EtaPOI; // CORRECT !!! } - // 3-p + // 3-p the temporary one Double_t three2npp1n1nW1ppW1W1EtaPOI=0.; // // OK!!! if(dM1pp11EtaPOI) { three2npp1n1nW1ppW1W1EtaPOI = (q2xW1PrimePrimeEtaPOI*(dQnkX[0][0]*dQnkX[0][0]-dQnkY[0][0]*dQnkY[0][0])+2.*q2yW1PrimePrimeEtaPOI*dQnkX[0][0]*dQnkY[0][0]-2.*(qxW2PrimePrimeEtaPOI*dQnkX[0][0]+qyW2PrimePrimeEtaPOI*dQnkY[0][0])-(q2xW1PrimePrimeEtaPOI*dQnkX[1][1]+q2yW1PrimePrimeEtaPOI*dQnkY[1][1])+2.*dS13mPrimePrimeEtaPOI)/dM1pp11EtaPOI; // CORRECT !!! } - // 3-p + // 3-p the temporary one Double_t three1npp1n2nW0ppW1W2EtaPOI=0.; // // OK!!! if(dM0pp12EtaPOI) { - three1npp1n2nW0ppW1W2EtaPOI = (qxPrimePrimeEtaPOIHere*(dQnkX[0][0]*dQnkX[1][1]+dQnkY[0][0]*dQnkY[1][1])-qyPrimePrimeEtaPOIHere*(dQnkY[0][0]*dQnkX[1][1]-dQnkX[0][0]*dQnkY[1][1])-(qxW2PrimePrimeEtaPOI*dQnkX[0][0]+qyW2PrimePrimeEtaPOI*dQnkY[0][0])-(q2xW1PrimePrimeEtaPOI*dQnkX[1][1]+q2yW1PrimePrimeEtaPOI*dQnkY[1][1])-(qxPrimePrimeEtaPOIHere*dQnkX[0][2]+qyPrimePrimeEtaPOIHere*dQnkY[0][2])+2.*dS13mPrimePrimeEtaPOI)/dM0pp12EtaPOI; // CORRECT !!! + three1npp1n2nW0ppW1W2EtaPOI = (qxPrimePrimeEtaPOI*(dQnkX[0][0]*dQnkX[1][1]+dQnkY[0][0]*dQnkY[1][1])-qyPrimePrimeEtaPOI*(dQnkY[0][0]*dQnkX[1][1]-dQnkX[0][0]*dQnkY[1][1])-(qxW2PrimePrimeEtaPOI*dQnkX[0][0]+qyW2PrimePrimeEtaPOI*dQnkY[0][0])-(q2xW1PrimePrimeEtaPOI*dQnkX[1][1]+q2yW1PrimePrimeEtaPOI*dQnkY[1][1])-(qxPrimePrimeEtaPOI*dQnkX[0][2]+qyPrimePrimeEtaPOI*dQnkY[0][2])+2.*dS13mPrimePrimeEtaPOI)/dM0pp12EtaPOI; // CORRECT !!! } - /* - // 4-p RP + // 4-p RP part Double_t four1npp1n1n1nW1W1W1=0.; // if(dM0pp111EtaPOI) { - four1npp1n1n1nW1W1W1 = ( ( pow(dQnkX[0][0],2.)+pow(dQnkY[0][0],2.) ) * (qxPrimePrimeEtaPOIHere*dQnkX[0][0]+qyPrimePrimeEtaPOIHere*dQnkY[0][0]) - - 2.*dM1pp11EtaPOI*two1n1nW1ppW1W1EtaPOI - dM1pp11EtaPOI*three2npp1n1nW1ppW1W1EtaPOI - dM0pp12EtaPOI*three1npp1n2nW0ppW1W2EtaPOI - 2.*dM0pp12EtaPOI*two1npp1nW1W2EtaPOI - - 3.*dM2pp1EtaPOI*two1npp1nW2ppW1EtaPOI -2.*dM1pp2EtaPOI - dM1pp2EtaPOI*two2npp2nW1ppW2EtaPOI - dM0pp3EtaPOI*two1npp1nW3EtaPOI - dS13mPrimePrimeEtaPOI)/(dM0pp111EtaPOI); - + four1npp1n1n1nW1W1W1 = ((pow(dQnkX[0][0],2.)+pow(dQnkY[0][0],2.))*(qxPrimePrimeEtaPOI*dQnkX[0][0]+qyPrimePrimeEtaPOI*dQnkY[0][0])-2.*dM1pp11EtaPOI*two1n1nW1ppW1W1EtaPOI-dM1pp11EtaPOI*three2npp1n1nW1ppW1W1EtaPOI-dM0pp12EtaPOI*three1npp1n2nW0ppW1W2EtaPOI-2.*dM0pp12EtaPOI*two1npp1nW1W2EtaPOI-3.*dM2pp1EtaPOI*two1npp1nW2ppW1EtaPOI-2.*dM1pp2EtaPOI-dM1pp2EtaPOI*two2npp2nW1ppW2EtaPOI-dM0pp3EtaPOI*two1npp1nW3EtaPOI-dS13mPrimePrimeEtaPOI)/(dM0pp111EtaPOI); + } + */ + /* + // 4-p POI part + Double_t four1npp1n1n1nW1W1W1POI=0.; + if(dM0p111EtaPOI>0&&mPrimeEtaPOI>0&&nRP>0) + { + four1npp1n1n1nW1W1W1POI = ((pow(dQnkX[0][0],2.)+pow(dQnkY[0][0],2.))*(qxPrimeEtaPOI*dQnkX[0][0]+qyPrimeEtaPOI*dQnkY[0][0])-2.*dSnk[0][1]* (qxPrimeEtaPOI*dQnkX[0][0]+qyPrimeEtaPOI*dQnkY[0][0])+2.*(qxPrimeEtaPOI*dQnkX[0][2]+qyPrimeEtaPOI*dQnkY[0][2])-qxPrimeEtaPOI*(dQnkX[0][0]*dQnkX[1][1]+dQnkY[0][0]*dQnkY[1][1])+qyPrimeEtaPOI*(dQnkY[0][0]*dQnkX[1][1]-dQnkX[0][0]*dQnkY[1][1]))/dM0p111EtaPOI; } - */ + // 4-p RP and POI in all combinations (full, partial and no overlap) + Double_t four1npp1n1n1nW1W1W1EtaPOI=0.; + + if(dM0pp111EtaPOI+dM0p111EtaPOI) + { + four1npp1n1n1nW1W1W1EtaPOI = ((pow(dQnkX[0][0],2.)+pow(dQnkY[0][0],2.))*(qxPrimePrimeEtaPOI*dQnkX[0][0]+qyPrimePrimeEtaPOI*dQnkY[0][0])-2.*dM1pp11EtaPOI*two1n1nW1ppW1W1EtaPOI-dM1pp11EtaPOI*three2npp1n1nW1ppW1W1EtaPOI-dM0pp12EtaPOI*three1npp1n2nW0ppW1W2EtaPOI-2.*dM0pp12EtaPOI*two1npp1nW1W2EtaPOI-3.*dM2pp1EtaPOI*two1npp1nW2ppW1EtaPOI-2.*dM1pp2EtaPOI-dM1pp2EtaPOI*two2npp2nW1ppW2EtaPOI-dM0pp3EtaPOI*two1npp1nW3EtaPOI-dS13mPrimePrimeEtaPOI+(pow(dQnkX[0][0],2.)+pow(dQnkY[0][0],2.))*(qxPrimeEtaPOI*dQnkX[0][0]+qyPrimeEtaPOI*dQnkY[0][0])-2.*dSnk[0][1]*(qxPrimeEtaPOI*dQnkX[0][0]+qyPrimeEtaPOI*dQnkY[0][0])+2.*(qxPrimeEtaPOI*dQnkX[0][2]+qyPrimeEtaPOI*dQnkY[0][2])-qxPrimeEtaPOI*(dQnkX[0][0]*dQnkX[1][1]+dQnkY[0][0]*dQnkY[1][1])+qyPrimeEtaPOI*(dQnkY[0][0]*dQnkX[1][1]-dQnkX[0][0]*dQnkY[1][1]))/(dM0pp111EtaPOI+dM0p111EtaPOI); + + f4WPerEtaBin1n1n1n1nPOI->Fill(fEtaMin+(bin-1)*dBinWidthEta,four1npp1n1n1nW1W1W1EtaPOI,dM0pp111EtaPOI+dM0p111EtaPOI); + } + } + //........................................................................................................... + - /* - // 4- POI - Double_t four1npp1n1n1nW1W1W1POI=0.; - if(dM0p111EtaPOI>0&&mPrimeEtaPOIHere>0&&nRP>0) - { - four1npp1n1n1nW1W1W1POI = ( ( pow(dQnkX[0][0],2.)+pow(dQnkY[0][0],2.) ) * (qxPrimeEtaPOIHere*dQnkX[0][0]+qyPrimeEtaPOIHere*dQnkY[0][0]) + + + + + + + + + + + + // RPs + ptReq1nPrime->Reset(); // to be improved + ptImq1nPrime->Reset(); // to be improved + ptReq2nPrime->Reset(); // to be improved + ptImq2nPrime->Reset(); // to be improved + + etaReq1nPrime->Reset(); // to be improved + etaImq1nPrime->Reset(); // to be improved + etaReq2nPrime->Reset(); // to be improved + etaImq2nPrime->Reset(); // to be improved + + + //........................................................................................................... + // PrimePrime Pt RP + Double_t qxPtRP=0.,qyPtRP=0.,q2xPtRP=0.,q2yPtRP=0.;//add comments for these variable + Double_t qxW2PtRP=0.,qyW2PtRP=0.,q2xW1PtRP=0.,q2yW1PtRP=0.;//add comments for these variable + Double_t dS11mPtRP=0.; // to be improved (name) + Double_t dS12mPtRP=0.; // to be improved (name) + Double_t dS13mPtRP=0.; // to be improved (name) + Double_t mPtRP=0.; // to be improved (name) + + Double_t dM1pp11PtRP=0.; // to be improved (name) + Double_t dM0pp111PtRP=0.; // to be improved (name) + Double_t dM0pp12PtRP=0.; + Double_t dM2pp1PtRP=0.; + Double_t dM1pp2PtRP=0.; + Double_t dM0pp3PtRP=0.; + + // Prime Pt RP + Double_t qxPrimePtRP=0.,qyPrimePtRP=0.; + Double_t mPrimePtRP=0.; + Double_t dM0p111PtRP=0.; // to be improved (name) + + for(Int_t bin=1;bin<(fnBinsPt+1);bin++) // loop over pt-bins + { + // q'': + qxPtRP = (ptReq1n->GetBinContent(bin))*(ptReq1n->GetBinEntries(bin)); + qyPtRP = (ptImq1n->GetBinContent(bin))*(ptImq1n->GetBinEntries(bin)); + q2xPtRP = (ptReq2n->GetBinContent(bin))*(ptReq2n->GetBinEntries(bin)); + q2yPtRP = (ptImq2n->GetBinContent(bin))*(ptImq2n->GetBinEntries(bin)); + + qxW2PtRP = (req1nW2Pt->GetBinContent(bin))*(req1nW2Pt->GetBinEntries(bin)); + qyW2PtRP = (imq1nW2Pt->GetBinContent(bin))*(imq1nW2Pt->GetBinEntries(bin)); + + q2xW1PtRP = (req2nW1Pt->GetBinContent(bin))*(req2nW1Pt->GetBinEntries(bin)); + q2yW1PtRP = (imq2nW1Pt->GetBinContent(bin))*(imq2nW1Pt->GetBinEntries(bin)); + + dS11mPtRP = (sumOfW1upTomPt->GetBinContent(bin))*(sumOfW1upTomPt->GetBinEntries(bin)); + dS12mPtRP = (sumOfW2upTomPt->GetBinContent(bin))*(sumOfW2upTomPt->GetBinEntries(bin)); + dS13mPtRP = (sumOfW3upTomPt->GetBinContent(bin))*(sumOfW3upTomPt->GetBinEntries(bin)); + + mPtRP = sumOfW1upTomPt->GetBinEntries(bin); // to be improved + + dM1pp11PtRP=dS11mPtRP*(dSnk[1][0]-dSnk[0][1])-2.*dS12mPtRP*dSnk[0][0]+2.*dS13mPtRP; + dM1pp2PtRP=dS11mPtRP*dSnk[0][1]-dS13mPtRP; + dM2pp1PtRP=dS12mPtRP*dSnk[0][0]-dS13mPtRP; + dM0pp3PtRP=mPtRP*dSnk[0][2]-dS13mPtRP; + dM0pp12PtRP=mPtRP*dSnk[0][0]*dSnk[0][1]-dM2pp1PtRP-dM1pp2PtRP-dM0pp3PtRP-dS13mPtRP; + dM0pp111PtRP=mPtRP*dSnk[2][0]-3.*dM1pp11PtRP-3.*dM0pp12PtRP-3.*dM2pp1PtRP-3.*dM1pp2PtRP-dM0pp3PtRP-dS13mPtRP; + + // q': + qxPrimePtRP = (ptReq1nPrime->GetBinContent(bin))*(ptReq1nPrime->GetBinEntries(bin)); + qyPrimePtRP = (ptImq1nPrime->GetBinContent(bin))*(ptImq1nPrime->GetBinEntries(bin)); - - 2.*dSnk[0][1]* (qxPrimeEtaPOIHere*dQnkX[0][0]+qyPrimeEtaPOIHere*dQnkY[0][0]) + mPrimePtRP = ptReq1nPrime->GetBinEntries(bin); // to be improved + dM0p111PtRP=mPrimePtRP*(dSnk[2][0]-3.*dSnk[0][1]*dSnk[0][0]+2.*dSnk[0][2]); - + 2.*(qxPrimeEtaPOIHere*dQnkX[0][2]+qyPrimeEtaPOIHere*dQnkY[0][2]) + // 2-p the needed one + Double_t two1n1nWPerPtBinRP=0.; + if((mPtRP+mPrimePtRP)*dSnk[0][0]-dS11mPtRP>0) + { + two1n1nWPerPtBinRP = (qxPtRP*dQnkX[0][0]+qyPtRP*dQnkY[0][0]+qxPrimePtRP*dQnkX[0][0]+qyPrimePtRP*dQnkY[0][0]-dS11mPtRP)/((mPtRP+mPrimePtRP)*dSnk[0][0]-dS11mPtRP); + f2WPerPtBin1n1nRP->Fill(fPtMin+(bin-1)*dBinWidthPt,two1n1nWPerPtBinRP,(mPtRP+mPrimePtRP)*dSnk[0][0]-dS11mPtRP); + } + + // 2-p temporary one + Double_t two1n1nW1ppW1W1PtRP=0.; // // OK!!! + if(dM1pp11PtRP) + { + two1n1nW1ppW1W1PtRP = ((pow(dQnkX[0][0],2.)+pow(dQnkY[0][0],2.))*dS11mPtRP-2.*(qxW2PtRP*dQnkX[0][0]+qyW2PtRP*dQnkY[0][0])-dS11mPtRP*dSnk[0][1]+2.*dS13mPtRP)/dM1pp11PtRP; // CORRECT !!! + } + + // 2-p temporary one + Double_t two1npp1nW1W2PtRP=0.; // // OK !!! + if(dM0pp12PtRP) + { + two1npp1nW1W2PtRP = (dSnk[0][1]*(qxPtRP*dQnkX[0][0]+qyPtRP*dQnkY[0][0])-(qxW2PtRP*dQnkX[0][0]+qyW2PtRP*dQnkY[0][0])-dM1pp2PtRP-(qxPtRP*dQnkX[0][2]+qyPtRP*dQnkY[0][2])+dS13mPtRP)/dM0pp12PtRP; // CORRECT !!! + } - - qxPrimeEtaPOIHere*(dQnkX[0][0]*dQnkX[1][1]+dQnkY[0][0]*dQnkY[1][1])+qyPrimeEtaPOIHere*(dQnkY[0][0]*dQnkX[1][1]-dQnkX[0][0]*dQnkY[1][1]))/dM0p111EtaPOI; + // 2-p temporary one + Double_t two1npp1nW2ppW1PtRP=0.; // // OK !!! + if(dM2pp1PtRP) + { + two1npp1nW2ppW1PtRP = ((qxW2PtRP*dQnkX[0][0]+qyW2PtRP*dQnkY[0][0])-dS13mPtRP)/dM2pp1PtRP; // CORRECT !!! + } + // 2-p temporary one + Double_t two2npp2nW1ppW2PtRP=0.; // OK !!! + if(dM1pp2PtRP) + { + two2npp2nW1ppW2PtRP = ((q2xW1PtRP*dQnkX[1][1]+q2yW1PtRP*dQnkY[1][1])-dS13mPtRP)/dM1pp2PtRP; // CORRECT !!! + } + // 2-p temporary one + Double_t two1npp1nW3PtRP=0.; // // OK !!! + if(dM0pp3PtRP) + { + two1npp1nW3PtRP = (qxPtRP*dQnkX[0][2]+qyPtRP*dQnkY[0][2]-dS13mPtRP)/dM0pp3PtRP; // CORRECT !!! + } + // 3-p temporary one + Double_t three2npp1n1nW1ppW1W1PtRP=0.; // // OK!!! + if(dM1pp11PtRP) + { + three2npp1n1nW1ppW1W1PtRP = (q2xW1PtRP*(dQnkX[0][0]*dQnkX[0][0]-dQnkY[0][0]*dQnkY[0][0])+2.*q2yW1PtRP*dQnkX[0][0]*dQnkY[0][0]-2.*(qxW2PtRP*dQnkX[0][0]+qyW2PtRP*dQnkY[0][0])-(q2xW1PtRP*dQnkX[1][1]+q2yW1PtRP*dQnkY[1][1])+2.*dS13mPtRP)/dM1pp11PtRP; // CORRECT !!! + } - } - */ + // 3-p temporary one + Double_t three1npp1n2nW0ppW1W2PtRP=0.; // // OK!!! + if(dM0pp12PtRP) + { + three1npp1n2nW0ppW1W2PtRP = (qxPtRP*(dQnkX[0][0]*dQnkX[1][1]+dQnkY[0][0]*dQnkY[1][1])-qyPtRP*(dQnkY[0][0]*dQnkX[1][1]-dQnkX[0][0]*dQnkY[1][1])-(qxW2PtRP*dQnkX[0][0]+qyW2PtRP*dQnkY[0][0])-(q2xW1PtRP*dQnkX[1][1]+q2yW1PtRP*dQnkY[1][1])-(qxPtRP*dQnkX[0][2]+qyPtRP*dQnkY[0][2])+2.*dS13mPtRP)/dM0pp12PtRP; // CORRECT !!! + } + + /* + // 4-p RP part + Double_t four1npp1n1n1nW1W1W1=0.; // + if(dM0pp111PtRP) + { + four1npp1n1n1nW1W1W1 = ((pow(dQnkX[0][0],2.)+pow(dQnkY[0][0],2.))*(qxPtRP*dQnkX[0][0]+qyPtRP*dQnkY[0][0])-2.*dM1pp11PtRP*two1n1nW1ppW1W1PtRP-dM1pp11PtRP*three2npp1n1nW1ppW1W1PtRP-dM0pp12PtRP*three1npp1n2nW0ppW1W2PtRP-2.*dM0pp12PtRP*two1npp1nW1W2PtRP-3.*dM2pp1PtRP*two1npp1nW2ppW1PtRP-2.*dM1pp2PtRP-dM1pp2PtRP*two2npp2nW1ppW2PtRP-dM0pp3PtRP*two1npp1nW3PtRP-dS13mPtRP)/(dM0pp111PtRP); + } + */ + + /* + // 4-p POI part + Double_t four1npp1n1n1nW1W1W1RP=0.; + if(dM0p111PtRP>0&&mPrimePtRP>0&&nRP>0) + { + four1npp1n1n1nW1W1W1RP = ((pow(dQnkX[0][0],2.)+pow(dQnkY[0][0],2.))*(qxPrimePtRP*dQnkX[0][0]+qyPrimePtRP*dQnkY[0][0])-2.*dSnk[0][1]* (qxPrimePtRP*dQnkX[0][0]+qyPrimePtRP*dQnkY[0][0])+2.*(qxPrimePtRP*dQnkX[0][2]+qyPrimePtRP*dQnkY[0][2])-qxPrimePtRP*(dQnkX[0][0]*dQnkX[1][1]+dQnkY[0][0]*dQnkY[1][1])+qyPrimePtRP*(dQnkY[0][0]*dQnkX[1][1]-dQnkX[0][0]*dQnkY[1][1]))/dM0p111PtRP; + } + */ + // 4-p RP and POI in all combinations (full, partial and no overlap) + Double_t four1npp1n1n1nW1W1W1PtRP=0.; + if(dM0pp111PtRP+dM0p111PtRP) + { + four1npp1n1n1nW1W1W1PtRP = ((pow(dQnkX[0][0],2.)+pow(dQnkY[0][0],2.))*(qxPtRP*dQnkX[0][0]+qyPtRP*dQnkY[0][0])-2.*dM1pp11PtRP*two1n1nW1ppW1W1PtRP-dM1pp11PtRP*three2npp1n1nW1ppW1W1PtRP-dM0pp12PtRP*three1npp1n2nW0ppW1W2PtRP-2.*dM0pp12PtRP*two1npp1nW1W2PtRP-3.*dM2pp1PtRP*two1npp1nW2ppW1PtRP-2.*dM1pp2PtRP-dM1pp2PtRP*two2npp2nW1ppW2PtRP-dM0pp3PtRP*two1npp1nW3PtRP-dS13mPtRP+(pow(dQnkX[0][0],2.)+pow(dQnkY[0][0],2.))*(qxPrimePtRP*dQnkX[0][0]+qyPrimePtRP*dQnkY[0][0])-2.*dSnk[0][1]* (qxPrimePtRP*dQnkX[0][0]+qyPrimePtRP*dQnkY[0][0])+2.*(qxPrimePtRP*dQnkX[0][2]+qyPrimePtRP*dQnkY[0][2])-qxPrimePtRP*(dQnkX[0][0]*dQnkX[1][1]+dQnkY[0][0]*dQnkY[1][1])+qyPrimePtRP*(dQnkY[0][0]*dQnkX[1][1]-dQnkX[0][0]*dQnkY[1][1]))/(dM0pp111PtRP+dM0p111PtRP); + + f4WPerPtBin1n1n1n1nRP->Fill(fPtMin+(bin-1)*dBinWidthPt,four1npp1n1n1nW1W1W1PtRP,dM0pp111PtRP+dM0p111PtRP); + } // end of if(dM0pp111PtRP+dM0p111PtRP) + } // for(Int_t bin=1;bin<(fnBinsPt+1);bin++) // loop over pt-bins + + delete ptReq1nPrime; + delete ptImq1nPrime; + delete ptReq2nPrime; + delete ptImq2nPrime; + delete ptReq1n; + delete ptImq1n; + delete ptReq2n; + delete ptImq2n; + + delete req1nW2Pt; + delete imq1nW2Pt; + delete req2nW1Pt; + delete imq2nW1Pt; + delete sumOfW1upTomPt; + delete sumOfW2upTomPt; + delete sumOfW3upTomPt; + //........................................................................................................... + + //........................................................................................................... + // PrimePrime Eta RP + Double_t qxEtaRP=0.,qyEtaRP=0.,q2xEtaRP=0.,q2yEtaRP=0.;//add comments for these variable + Double_t qxW2EtaRP=0.,qyW2EtaRP=0.,q2xW1EtaRP=0.,q2yW1EtaRP=0.;//add comments for these variable + Double_t dS11mEtaRP=0.; // to be improved (name) + Double_t dS12mEtaRP=0.; // to be improved (name) + Double_t dS13mEtaRP=0.; // to be improved (name) + Double_t mEtaRPHere=0.; // to be improved (name) + + Double_t dM1pp11EtaRP=0.; // to be improved (name) + Double_t dM0pp111EtaRP=0.; // to be improved (name) + Double_t dM0pp12EtaRP=0.; + Double_t dM2pp1EtaRP=0.; + Double_t dM1pp2EtaRP=0.; + Double_t dM0pp3EtaRP=0.; + + // Prime Eta RP + Double_t qxPrimeEtaRPHere=0.,qyPrimeEtaRPHere=0.; + Double_t mPrimeEtaRPHere=0.; + Double_t dM0p111EtaRP=0.; // to be improved (name) + + for(Int_t bin=1;bin<(fnBinsEta+1);bin++) // loop over eta-bins + { + // q'': + qxEtaRP = (etaReq1n->GetBinContent(bin))*(etaReq1n->GetBinEntries(bin)); + qyEtaRP = (etaImq1n->GetBinContent(bin))*(etaImq1n->GetBinEntries(bin)); + q2xEtaRP = (etaReq2n->GetBinContent(bin))*(etaReq2n->GetBinEntries(bin)); + q2yEtaRP = (etaImq2n->GetBinContent(bin))*(etaImq2n->GetBinEntries(bin)); + + qxW2EtaRP = (req1nW2Eta->GetBinContent(bin))*(req1nW2Eta->GetBinEntries(bin)); + qyW2EtaRP = (imq1nW2Eta->GetBinContent(bin))*(imq1nW2Eta->GetBinEntries(bin)); + + q2xW1EtaRP = (req2nW1Eta->GetBinContent(bin))*(req2nW1Eta->GetBinEntries(bin)); + q2yW1EtaRP = (imq2nW1Eta->GetBinContent(bin))*(imq2nW1Eta->GetBinEntries(bin)); + + dS11mEtaRP = (sumOfW1upTomEta->GetBinContent(bin))*(sumOfW1upTomEta->GetBinEntries(bin)); + dS12mEtaRP = (sumOfW2upTomEta->GetBinContent(bin))*(sumOfW2upTomEta->GetBinEntries(bin)); + dS13mEtaRP = (sumOfW3upTomEta->GetBinContent(bin))*(sumOfW3upTomEta->GetBinEntries(bin)); + + mEtaRPHere = sumOfW1upTomEta->GetBinEntries(bin); // to be improved + + dM1pp11EtaRP=dS11mEtaRP*(dSnk[1][0]-dSnk[0][1])-2.*dS12mEtaRP*dSnk[0][0]+2.*dS13mEtaRP; + dM1pp2EtaRP=dS11mEtaRP*dSnk[0][1]-dS13mEtaRP; + dM2pp1EtaRP=dS12mEtaRP*dSnk[0][0]-dS13mEtaRP; + dM0pp3EtaRP=mEtaRPHere*dSnk[0][2]-dS13mEtaRP; + dM0pp12EtaRP=mEtaRPHere*dSnk[0][0]*dSnk[0][1]-dM2pp1EtaRP-dM1pp2EtaRP-dM0pp3EtaRP-dS13mEtaRP; + dM0pp111EtaRP=mEtaRPHere*dSnk[2][0]-3.*dM1pp11EtaRP-3.*dM0pp12EtaRP-3.*dM2pp1EtaRP-3.*dM1pp2EtaRP-dM0pp3EtaRP-dS13mEtaRP; + + // q': + qxPrimeEtaRPHere = (etaReq1nPrime->GetBinContent(bin))*(etaReq1nPrime->GetBinEntries(bin)); + qyPrimeEtaRPHere = (etaImq1nPrime->GetBinContent(bin))*(etaImq1nPrime->GetBinEntries(bin)); + + mPrimeEtaRPHere = etaReq1nPrime->GetBinEntries(bin); // to be improved + dM0p111EtaRP=mPrimeEtaRPHere*(dSnk[2][0]-3.*dSnk[0][1]*dSnk[0][0]+2.*dSnk[0][2]); - // 4-p RP and POI in all combinations (full, partial and no overlap) - Double_t four1npp1n1n1nW1W1W1EtaPOIAndRP=0.; + // 2-p the needed one + Double_t two1n1nWPerEtaBinRP=0.; + if((mEtaRPHere+mPrimeEtaRPHere)*dSnk[0][0]-dS11mEtaRP>0) + { + two1n1nWPerEtaBinRP = (qxEtaRP*dQnkX[0][0]+qyEtaRP*dQnkY[0][0]+qxPrimeEtaRPHere*dQnkX[0][0]+qyPrimeEtaRPHere*dQnkY[0][0]-dS11mEtaRP)/((mEtaRPHere+mPrimeEtaRPHere)*dSnk[0][0]-dS11mEtaRP); + + f2WPerEtaBin1n1nRP->Fill(fEtaMin+(bin-1)*dBinWidthEta,two1n1nWPerEtaBinRP,(mEtaRPHere+mPrimeEtaRPHere)*dSnk[0][0]-dS11mEtaRP); // <2'>_{n|n} + } - if(dM0pp111EtaPOI+dM0p111EtaPOI) - { - four1npp1n1n1nW1W1W1EtaPOIAndRP = ( ( pow(dQnkX[0][0],2.)+pow(dQnkY[0][0],2.) ) * (qxPrimePrimeEtaPOIHere*dQnkX[0][0]+qyPrimePrimeEtaPOIHere*dQnkY[0][0]) - - 2.*dM1pp11EtaPOI*two1n1nW1ppW1W1EtaPOI - dM1pp11EtaPOI*three2npp1n1nW1ppW1W1EtaPOI - dM0pp12EtaPOI*three1npp1n2nW0ppW1W2EtaPOI - 2.*dM0pp12EtaPOI*two1npp1nW1W2EtaPOI - - 3.*dM2pp1EtaPOI*two1npp1nW2ppW1EtaPOI -2.*dM1pp2EtaPOI - dM1pp2EtaPOI*two2npp2nW1ppW2EtaPOI - dM0pp3EtaPOI*two1npp1nW3EtaPOI - dS13mPrimePrimeEtaPOI + - - - + ( pow(dQnkX[0][0],2.)+pow(dQnkY[0][0],2.) ) * (qxPrimeEtaPOIHere*dQnkX[0][0]+qyPrimeEtaPOIHere*dQnkY[0][0]) + // 2-p the temporary one + Double_t two1n1nW1ppW1W1EtaRP=0.; // // OK!!! + if(dM1pp11EtaRP) + { + two1n1nW1ppW1W1EtaRP = ((pow(dQnkX[0][0],2.)+pow(dQnkY[0][0],2.))*dS11mEtaRP-2.*(qxW2EtaRP*dQnkX[0][0]+qyW2EtaRP*dQnkY[0][0])-dS11mEtaRP*dSnk[0][1]+2.*dS13mEtaRP)/dM1pp11EtaRP; // CORRECT !!! + } + + // 2-p the temporary one + Double_t two1npp1nW1W2EtaRP=0.; // // OK !!! + if(dM0pp12EtaRP) + { + two1npp1nW1W2EtaRP = (dSnk[0][1]*(qxEtaRP*dQnkX[0][0]+qyEtaRP*dQnkY[0][0])-(qxW2EtaRP*dQnkX[0][0]+qyW2EtaRP*dQnkY[0][0])-dM1pp2EtaRP-(qxEtaRP*dQnkX[0][2]+qyEtaRP*dQnkY[0][2])+dS13mEtaRP)/dM0pp12EtaRP; // CORRECT !!! + } - - 2.*dSnk[0][1]* (qxPrimeEtaPOIHere*dQnkX[0][0]+qyPrimeEtaPOIHere*dQnkY[0][0]) + // 2-p the temporary one + Double_t two1npp1nW2ppW1EtaRP=0.; // // OK !!! + if(dM2pp1EtaRP) + { + two1npp1nW2ppW1EtaRP = ((qxW2EtaRP*dQnkX[0][0]+qyW2EtaRP*dQnkY[0][0])-dS13mEtaRP)/dM2pp1EtaRP; // CORRECT !!! + } + + // 2-p the temporary one + Double_t two2npp2nW1ppW2EtaRP=0.; // OK !!! + if(dM1pp2EtaRP) + { + two2npp2nW1ppW2EtaRP = ((q2xW1EtaRP*dQnkX[1][1]+q2yW1EtaRP*dQnkY[1][1])-dS13mEtaRP)/dM1pp2EtaRP; // CORRECT !!! + } - + 2.*(qxPrimeEtaPOIHere*dQnkX[0][2]+qyPrimeEtaPOIHere*dQnkY[0][2]) + // 2-p the temporary one + Double_t two1npp1nW3EtaRP=0.; // // OK !!! + if(dM0pp3EtaRP) + { + two1npp1nW3EtaRP = (qxEtaRP*dQnkX[0][2]+qyEtaRP*dQnkY[0][2]-dS13mEtaRP)/dM0pp3EtaRP; // CORRECT !!! + } + + // 3-p the temporary one + Double_t three2npp1n1nW1ppW1W1EtaRP=0.; // // OK!!! + if(dM1pp11EtaRP) + { + three2npp1n1nW1ppW1W1EtaRP = (q2xW1EtaRP*(dQnkX[0][0]*dQnkX[0][0]-dQnkY[0][0]*dQnkY[0][0])+2.*q2yW1EtaRP*dQnkX[0][0]*dQnkY[0][0]-2.*(qxW2EtaRP*dQnkX[0][0]+qyW2EtaRP*dQnkY[0][0])-(q2xW1EtaRP*dQnkX[1][1]+q2yW1EtaRP*dQnkY[1][1])+2.*dS13mEtaRP)/dM1pp11EtaRP; // CORRECT !!! + } - - qxPrimeEtaPOIHere*(dQnkX[0][0]*dQnkX[1][1]+dQnkY[0][0]*dQnkY[1][1])+qyPrimeEtaPOIHere*(dQnkY[0][0]*dQnkX[1][1]-dQnkX[0][0]*dQnkY[1][1]))/(dM0pp111EtaPOI+dM0p111EtaPOI); + // 3-p the temporary one + Double_t three1npp1n2nW0ppW1W2EtaRP=0.; // // OK!!! + if(dM0pp12EtaRP) + { + three1npp1n2nW0ppW1W2EtaRP = (qxEtaRP*(dQnkX[0][0]*dQnkX[1][1]+dQnkY[0][0]*dQnkY[1][1])-qyEtaRP*(dQnkY[0][0]*dQnkX[1][1]-dQnkX[0][0]*dQnkY[1][1])-(qxW2EtaRP*dQnkX[0][0]+qyW2EtaRP*dQnkY[0][0])-(q2xW1EtaRP*dQnkX[1][1]+q2yW1EtaRP*dQnkY[1][1])-(qxEtaRP*dQnkX[0][2]+qyEtaRP*dQnkY[0][2])+2.*dS13mEtaRP)/dM0pp12EtaRP; // CORRECT !!! + } + + /* + // 4-p RP part + Double_t four1npp1n1n1nW1W1W1=0.; // + if(dM0pp111EtaRP) + { + four1npp1n1n1nW1W1W1 = ((pow(dQnkX[0][0],2.)+pow(dQnkY[0][0],2.))*(qxEtaRP*dQnkX[0][0]+qyEtaRP*dQnkY[0][0])-2.*dM1pp11EtaRP*two1n1nW1ppW1W1EtaRP-dM1pp11EtaRP*three2npp1n1nW1ppW1W1EtaRP-dM0pp12EtaRP*three1npp1n2nW0ppW1W2EtaRP-2.*dM0pp12EtaRP*two1npp1nW1W2EtaRP-3.*dM2pp1EtaRP*two1npp1nW2ppW1EtaRP-2.*dM1pp2EtaRP-dM1pp2EtaRP*two2npp2nW1ppW2EtaRP-dM0pp3EtaRP*two1npp1nW3EtaRP-dS13mEtaRP)/(dM0pp111EtaRP); + } + */ + /* + // 4-p POI part + Double_t four1npp1n1n1nW1W1W1RP=0.; + if(dM0p111EtaRP>0&&mPrimeEtaRPHere>0&&nRP>0) + { + four1npp1n1n1nW1W1W1RP = ((pow(dQnkX[0][0],2.)+pow(dQnkY[0][0],2.))*(qxPrimeEtaRPHere*dQnkX[0][0]+qyPrimeEtaRPHere*dQnkY[0][0])-2.*dSnk[0][1]* (qxPrimeEtaRPHere*dQnkX[0][0]+qyPrimeEtaRPHere*dQnkY[0][0])+2.*(qxPrimeEtaRPHere*dQnkX[0][2]+qyPrimeEtaRPHere*dQnkY[0][2])-qxPrimeEtaRPHere*(dQnkX[0][0]*dQnkX[1][1]+dQnkY[0][0]*dQnkY[1][1])+qyPrimeEtaRPHere*(dQnkY[0][0]*dQnkX[1][1]-dQnkX[0][0]*dQnkY[1][1]))/dM0p111EtaRP; + } + */ + + // 4-p RP and POI in all combinations (full, partial and no overlap) + Double_t four1npp1n1n1nW1W1W1EtaRP=0.; + + if(dM0pp111EtaRP+dM0p111EtaRP) + { + four1npp1n1n1nW1W1W1EtaRP = ((pow(dQnkX[0][0],2.)+pow(dQnkY[0][0],2.))*(qxEtaRP*dQnkX[0][0]+qyEtaRP*dQnkY[0][0])-2.*dM1pp11EtaRP*two1n1nW1ppW1W1EtaRP-dM1pp11EtaRP*three2npp1n1nW1ppW1W1EtaRP-dM0pp12EtaRP*three1npp1n2nW0ppW1W2EtaRP-2.*dM0pp12EtaRP*two1npp1nW1W2EtaRP-3.*dM2pp1EtaRP*two1npp1nW2ppW1EtaRP-2.*dM1pp2EtaRP-dM1pp2EtaRP*two2npp2nW1ppW2EtaRP-dM0pp3EtaRP*two1npp1nW3EtaRP-dS13mEtaRP+(pow(dQnkX[0][0],2.)+pow(dQnkY[0][0],2.))*(qxPrimeEtaRPHere*dQnkX[0][0]+qyPrimeEtaRPHere*dQnkY[0][0])-2.*dSnk[0][1]*(qxPrimeEtaRPHere*dQnkX[0][0]+qyPrimeEtaRPHere*dQnkY[0][0])+2.*(qxPrimeEtaRPHere*dQnkX[0][2]+qyPrimeEtaRPHere*dQnkY[0][2])-qxPrimeEtaRPHere*(dQnkX[0][0]*dQnkX[1][1]+dQnkY[0][0]*dQnkY[1][1])+qyPrimeEtaRPHere*(dQnkY[0][0]*dQnkX[1][1]-dQnkX[0][0]*dQnkY[1][1]))/(dM0pp111EtaRP+dM0p111EtaRP); + + f4WPerEtaBin1n1n1n1nRP->Fill(fEtaMin+(bin-1)*dBinWidthEta,four1npp1n1n1nW1W1W1EtaRP,dM0pp111EtaRP+dM0p111EtaRP); + } + } + + delete etaReq1nPrime; + delete etaImq1nPrime; + delete etaReq2nPrime; + delete etaImq2nPrime; + delete etaReq1n; + delete etaImq1n; + delete etaReq2n; + delete etaImq2n; + + delete req1nW2Eta; + delete imq1nW2Eta; + delete req2nW1Eta; + delete imq2nW1Eta; + delete sumOfW1upTomEta; + delete sumOfW2upTomEta; + delete sumOfW3upTomEta; + //........................................................................................................... + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - f4WPerEtaBin1n1n1n1nPOI->Fill(fEtaMin+(bin-1)*dBinWidthEta,four1npp1n1n1nW1W1W1EtaPOIAndRP,dM0pp111EtaPOI+dM0p111EtaPOI); - } - } - delete req1nW2PrimePrimeEtaPOI; - delete imq1nW2PrimePrimeEtaPOI; - delete req2nW1PrimePrimeEtaPOI; - delete imq2nW1PrimePrimeEtaPOI; - delete sumOfW1upTomPrimePrimeEtaPOI; - delete sumOfW2upTomPrimePrimeEtaPOI; - delete sumOfW3upTomPrimePrimeEtaPOI; - @@ -2676,7 +1989,6 @@ void AliFlowAnalysisWithQCumulants::Make(AliFlowEventSimple* anEvent) -// QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQq @@ -2731,337 +2043,19 @@ void AliFlowAnalysisWithQCumulants::Make(AliFlowEventSimple* anEvent) - //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); - dSumOfWeightsUpTomEtaRP = (mPerBinEtaRP->GetBinContent(bin))*(mPerBinEtaRP->GetBinEntries(bin)); - - if(mEtaRP*dSnk[0][0]-dSumOfWeightsUpTomEtaRP) - { - //twoDiffEta1n1nRP = (qxEtaRP*dQ1nx+qyEtaRP*dQ1ny-mEtaRP)/(mEtaRP*(dMult-1.)); // OK without weights - //f2PerEtaBin1n1nRP->Fill(fEtaMin+(bin-1)*dBinWidthEta,twoDiffEta1n1nRP,mEtaRP*(dMult-1.));//<2'>_{n|n} // OK without weights - - twoDiffEta1n1nRP = (qxEtaRP*dQ1nxW+qyEtaRP*dQ1nyW-dSumOfWeightsUpTomEtaRP)/(mEtaRP*dSnk[0][0]-dSumOfWeightsUpTomEtaRP); // OK without weights - f2PerEtaBin1n1nRP->Fill(fEtaMin+(bin-1)*dBinWidthEta,twoDiffEta1n1nRP,mEtaRP*dSnk[0][0]-dSumOfWeightsUpTomEtaRP);//<2'>_{n|n} // OK without weights - } - - if(mEtaRP>0&&dMult>1) - { - 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}] - } - }//end of for(Int_t bin=1;bin<(fnBinsEta+1);bin++)//loop over eta-bins - - fEtaReq1nRP->Reset(); - fEtaImq1nRP->Reset(); - fEtaReq2nRP->Reset(); - fEtaImq2nRP->Reset(); - mPerBinEtaRP->Reset(); - //POI: - Double_t qxPrimePtPOI=0.,qyPrimePtPOI=0.,q2xPrimePtPOI=0.,q2yPrimePtPOI=0.,mPrimePtPOI=0.;//add comments for these variables (deleteMe) - Double_t qxPrimePrimePtPOI=0.,qyPrimePrimePtPOI=0.,q2xPrimePrimePtPOI=0.,q2yPrimePrimePtPOI=0.,mPrimePrimePtPOI=0.;//add comments for these variables (deleteMe) - Double_t qxPrimeEtaPOI=0.,qyPrimeEtaPOI=0.,q2xPrimeEtaPOI=0.,q2yPrimeEtaPOI=0.,mPrimeEtaPOI=0.;//add comments for these variables (deleteMe) - Double_t qxPrimePrimeEtaPOI=0.,qyPrimePrimeEtaPOI=0.,q2xPrimePrimeEtaPOI=0.,q2yPrimePrimeEtaPOI=0.,mPrimePrimeEtaPOI=0.;//add comments for the - Double_t dSumOfWeightsUpTomPrimePrimePtPOI = 0.; // sum_{i=1}^{m''} w_{i} - Double_t dSumOfWeightsUpTomPrimePrimeEtaPOI = 0.; // sum_{i=1}^{m''} w_{i} - TProfile *mPrimePrimePerBinPtPOI = new TProfile("mPrimePrimePerBinPtPOI","#sum_{i=1}^{m''} w_{i}''",fnBinsPt,fPtMin,fPtMax,"s"); - TProfile *mPrimePrimePerBinEtaPOI = new TProfile("mPrimePrimePerBinEtaPOI","#sum_{i=1}^{m''} w_{i}''",fnBinsEta,fEtaMin,fEtaMax,"s"); - - for(Int_t i=0;iGetTrack(i); - if(fTrack) - { - if(fTrack->UseForDifferentialFlow()) // checking if particle is POI - { - if(fTrack->UseForIntegratedFlow()) // checking if particle is both POI and RP - { - // get azimuthal angle, momentum and pseudorapidity of a particle: - dPhi = fTrack->Phi(); - dPt = fTrack->Pt(); - dEta = fTrack->Eta(); - // pt: - fPtReq1nPrimePrimePOI->Fill(dPt,cos(n*dPhi),1.); - fPtImq1nPrimePrimePOI->Fill(dPt,sin(n*dPhi),1.); - fPtReq2nPrimePrimePOI->Fill(dPt,cos(2.*n*dPhi),1.); - fPtImq2nPrimePrimePOI->Fill(dPt,sin(2.*n*dPhi),1.); - // eta: - fEtaReq1nPrimePrimePOI->Fill(dEta,cos(n*dPhi),1.); - fEtaImq1nPrimePrimePOI->Fill(dEta,sin(n*dPhi),1.); - fEtaReq2nPrimePrimePOI->Fill(dEta,cos(2.*n*dPhi),1.); - fEtaImq2nPrimePrimePOI->Fill(dEta,sin(2.*n*dPhi),1.); - // phi weights: - if(fUsePhiWeights) - { - nBinsPhi = phiWeights->GetNbinsX(); - if(nBinsPhi) - { - wPhi = phiWeights->GetBinContent(1+(Int_t)(TMath::Floor(dPhi*nBinsPhi/TMath::TwoPi()))); - } - } - // pt weights: - if(fUsePtWeights) - { - if(dBinWidthPt) - { - wPt = ptWeights->GetBinContent(1+(Int_t)(TMath::Floor((dPt-fPtMin)/dBinWidthPt))); - } - } - // eta weights: - if(fUseEtaWeights) - { - if(dBinWidthEta) - { - wEta=etaWeights->GetBinContent(1+(Int_t)(TMath::Floor((dEta-fEtaMin)/dBinWidthEta))); - } - } - // sum_{i=1}^{m''} w_{i}: - mPrimePrimePerBinPtPOI->Fill(dPt,wPhi*wPt*wEta,1.); - mPrimePrimePerBinEtaPOI->Fill(dEta,wPhi*wPt*wEta,1.); - }else if(!(fTrack->UseForIntegratedFlow())) // checking if particles is POI and not RP - { - // get azimuthal angle, momentum and pseudorapidity of a particle: - dPhi = fTrack->Phi(); - dPt = fTrack->Pt(); - dEta = fTrack->Eta(); - // pt: - fPtReq1nPrimePOI->Fill(dPt,cos(n*dPhi),1.); - fPtImq1nPrimePOI->Fill(dPt,sin(n*dPhi),1.); - fPtReq2nPrimePOI->Fill(dPt,cos(2.*n*dPhi),1.); - fPtImq2nPrimePOI->Fill(dPt,sin(2.*n*dPhi),1.); - // eta: - fEtaReq1nPrimePOI->Fill(dEta,cos(n*dPhi),1.); - fEtaImq1nPrimePOI->Fill(dEta,sin(n*dPhi),1.); - fEtaReq2nPrimePOI->Fill(dEta,cos(2.*n*dPhi),1.); - fEtaImq2nPrimePOI->Fill(dEta,sin(2.*n*dPhi),1.); - } // end of else if(!(fTrack->UseForIntegratedFlow())) // checking if particles is POI and not RP - } // end of if(fTrack->UseForDifferentialFlow()) // checking if particle is POI - } // end of if(fTrack} - } // end of for(Int_t i=0;iGetBinContent(bin))*(fPtReq1nPrimePOI->GetBinEntries(bin)); - qyPrimePtPOI = (fPtImq1nPrimePOI->GetBinContent(bin))*(fPtImq1nPrimePOI->GetBinEntries(bin)); - q2xPrimePtPOI = (fPtReq2nPrimePOI->GetBinContent(bin))*(fPtReq2nPrimePOI->GetBinEntries(bin)); - q2yPrimePtPOI = (fPtImq2nPrimePOI->GetBinContent(bin))*(fPtImq2nPrimePOI->GetBinEntries(bin)); - mPrimePtPOI = fPtReq1nPrimePOI->GetBinEntries(bin); - // q'': - qxPrimePrimePtPOI = (fPtReq1nPrimePrimePOI->GetBinContent(bin))*(fPtReq1nPrimePrimePOI->GetBinEntries(bin)); - qyPrimePrimePtPOI = (fPtImq1nPrimePrimePOI->GetBinContent(bin))*(fPtImq1nPrimePrimePOI->GetBinEntries(bin)); - q2xPrimePrimePtPOI = (fPtReq2nPrimePrimePOI->GetBinContent(bin))*(fPtReq2nPrimePrimePOI->GetBinEntries(bin)); - q2yPrimePrimePtPOI = (fPtImq2nPrimePrimePOI->GetBinContent(bin))*(fPtImq2nPrimePrimePOI->GetBinEntries(bin)); - mPrimePrimePtPOI = fPtReq1nPrimePrimePOI->GetBinEntries(bin); - dSumOfWeightsUpTomPrimePrimePtPOI = (mPrimePrimePerBinPtPOI->GetBinContent(bin))*(mPrimePrimePerBinPtPOI->GetBinEntries(bin)); - - if((mPrimePrimePtPOI+mPrimePtPOI)*dSnk[0][0]-dSumOfWeightsUpTomPrimePrimePtPOI) - { - //twoDiffPt1n1nPOI = (qxPrimePrimePtPOI*dQ1nx+qyPrimePrimePtPOI*dQ1ny-mPrimePrimePtPOI+qxPrimePtPOI*dQ1nx+qyPrimePtPOI*dQ1ny)/(mPrimePrimePtPOI*(dMult-1)+mPrimePtPOI*dMult); // OK without weights - - twoDiffPt1n1nPOI = (qxPrimePrimePtPOI*dQ1nxW+qyPrimePrimePtPOI*dQ1nyW-dSumOfWeightsUpTomPrimePrimePtPOI+qxPrimePtPOI*dQ1nxW+qyPrimePtPOI*dQ1nyW)/((mPrimePrimePtPOI+mPrimePtPOI)*dSnk[0][0]-dSumOfWeightsUpTomPrimePrimePtPOI); - - //f2PerPtBin1n1nPOI->Fill(fPtMin+(bin-1)*dBinWidthPt,twoDiffPt1n1nPOI,mPrimePrimePtPOI*(dMult-1)+mPrimePtPOI*dMult);//<2'>_{n|n} //OK without weights - - f2PerPtBin1n1nPOI->Fill(fPtMin+(bin-1)*dBinWidthPt,twoDiffPt1n1nPOI,(mPrimePrimePtPOI+mPrimePtPOI)*dSnk[0][0]-dSumOfWeightsUpTomPrimePrimePtPOI); // <2'>_{n|n} - - twoDiffPt2n2nPOI = (q2xPrimePrimePtPOI*dQ2nx+q2yPrimePrimePtPOI*dQ2ny-mPrimePrimePtPOI+q2xPrimePtPOI*dQ2nx+q2yPrimePtPOI*dQ2ny)/(mPrimePrimePtPOI*(dMult-1)+mPrimePtPOI*dMult); // to be improved: didn't check how it changed with weights - //f2PerPtBin2n2nPOI->Fill(fPtMin+(bin-1)*dBinWidthPt,twoDiffPt2n2nPOI,mPrimePrimePtPOI*(dMult-1)+mPrimePtPOI*dMult);//<2'>_{2n|2n} - }//end of if((mPrimePtPOI+mPrimePrimePtPOI>0)&&dMult>0) - - /* - to be improved: correct Eqs. needed here) - if(mPtPOI>0&&dMult>3) - { - 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 needed) - //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 needed) - //f3PePOItBin1n1n2nPOI->Fill(fPtMin+(bin-1)*dBinWidthPt,threeDiffPt1n1n2nPOI,mPtPOI*(dMult-1.)*(dMult-2.));//Re[<3'>_{n,n|2n}] - } - */ - - //if((mPrimePtPOI+mPrimePrimePtPOI>0)&&dMult>2)//to be improved (dMult>2 or dMult>3) - if(!(mPrimePtPOI==0&&mPrimePrimePtPOI==0)&&!(mPrimePtPOI==0&&(dMult==1||dMult==2||dMult==3))&&!(mPrimePrimePtPOI==0&&(dMult==0||dMult==1||dMult==2)))//to be improved - { - fourDiffPt1n1n1n1nPOI=((dQ1nx*dQ1nx+dQ1ny*dQ1ny)*(qxPrimePtPOI*dQ1nx+qyPrimePtPOI*dQ1ny)-2.*(dMult-1)*(qxPrimePtPOI*dQ1nx+qyPrimePtPOI*dQ1ny)-(dQ2nx*(qxPrimePtPOI*dQ1nx-qyPrimePtPOI*dQ1ny)+dQ2ny*(qxPrimePtPOI*dQ1ny+qyPrimePtPOI*dQ1nx))+(dQ1nx*dQ1nx+dQ1ny*dQ1ny)*(qxPrimePrimePtPOI*dQ1nx+qyPrimePrimePtPOI*dQ1ny)-(q2xPrimePrimePtPOI*(dQ1nx*dQ1nx-dQ1ny*dQ1ny)+2.*q2yPrimePrimePtPOI*dQ1nx*dQ1ny)-(dQ2nx*(qxPrimePrimePtPOI*dQ1nx-qyPrimePrimePtPOI*dQ1ny)+dQ2ny*(qxPrimePrimePtPOI*dQ1ny+qyPrimePrimePtPOI*dQ1nx))+(q2xPrimePrimePtPOI*dQ2nx+q2yPrimePrimePtPOI*dQ2ny)-2.*(dMult-3.)*(qxPrimePrimePtPOI*dQ1nx+qyPrimePrimePtPOI*dQ1ny)-2.*mPrimePrimePtPOI*(dQ1nx*dQ1nx+dQ1ny*dQ1ny)+2.*(dQ1nx*qxPrimePrimePtPOI+dQ1ny*qyPrimePrimePtPOI)+2.*mPrimePrimePtPOI*(dMult-3.))/(mPrimePtPOI*dMult*(dMult-1)*(dMult-2)+mPrimePrimePtPOI*(dMult-1)*(dMult-2)*(dMult-3)); - - f4PerPtBin1n1n1n1nPOI->Fill(fPtMin+(bin-1)*dBinWidthPt,fourDiffPt1n1n1n1nPOI,mPrimePtPOI*dMult*(dMult-1)*(dMult-2)+mPrimePrimePtPOI*(dMult-1)*(dMult-2)*(dMult-3));//Re[<4'>_{n,n|n,n}] - }//end of if((mPrimePtPOI+mPrimePrimePtPOI>0)&&dMult>2) - }//end of for(Int_t bin=1;bin<(fnBinsPt+1);bin++)//loop over pt-bins - - fPtReq1nPrimePOI->Reset(); - fPtImq1nPrimePOI->Reset(); - fPtReq2nPrimePOI->Reset(); - fPtImq2nPrimePOI->Reset(); - fPtReq1nPrimePrimePOI->Reset(); - fPtImq1nPrimePrimePOI->Reset(); - fPtReq2nPrimePrimePOI->Reset(); - fPtImq2nPrimePrimePOI->Reset(); - mPrimePrimePerBinPtPOI->Reset(); - - //Eta: - //Double_t twoDiffEta1n1nPOI=0.,twoDiffEta2n2nPOI=0.,threeDiffEta2n1n1nPOI=0.,threeDiffEta1n1n2nPOI=0.,fourDiffEta1n1n1n1nPOI=0.; - Double_t twoDiffEta1n1nPOI=0.,twoDiffEta2n2nPOI=0.,fourDiffEta1n1n1n1nPOI=0.; - for(Int_t bin=1;bin<(fnBinsEta+1);bin++)//loop over eta-bins - { - //q' - qxPrimeEtaPOI = (fEtaReq1nPrimePOI->GetBinContent(bin))*(fEtaReq1nPrimePOI->GetBinEntries(bin)); - qyPrimeEtaPOI = (fEtaImq1nPrimePOI->GetBinContent(bin))*(fEtaImq1nPrimePOI->GetBinEntries(bin)); - q2xPrimeEtaPOI = (fEtaReq2nPrimePOI->GetBinContent(bin))*(fEtaReq2nPrimePOI->GetBinEntries(bin)); - q2yPrimeEtaPOI = (fEtaImq2nPrimePOI->GetBinContent(bin))*(fEtaImq2nPrimePOI->GetBinEntries(bin)); - mPrimeEtaPOI = fEtaReq1nPrimePOI->GetBinEntries(bin); - //q'' - qxPrimePrimeEtaPOI = (fEtaReq1nPrimePrimePOI->GetBinContent(bin))*(fEtaReq1nPrimePrimePOI->GetBinEntries(bin)); - qyPrimePrimeEtaPOI = (fEtaImq1nPrimePrimePOI->GetBinContent(bin))*(fEtaImq1nPrimePrimePOI->GetBinEntries(bin)); - q2xPrimePrimeEtaPOI = (fEtaReq2nPrimePrimePOI->GetBinContent(bin))*(fEtaReq2nPrimePrimePOI->GetBinEntries(bin)); - q2yPrimePrimeEtaPOI = (fEtaImq2nPrimePrimePOI->GetBinContent(bin))*(fEtaImq2nPrimePrimePOI->GetBinEntries(bin)); - mPrimePrimeEtaPOI = fEtaReq1nPrimePrimePOI->GetBinEntries(bin); - dSumOfWeightsUpTomPrimePrimeEtaPOI = (mPrimePrimePerBinEtaPOI->GetBinContent(bin))*(mPrimePrimePerBinEtaPOI->GetBinEntries(bin)); - - if((mPrimePrimeEtaPOI+mPrimeEtaPOI)*dSnk[0][0]-dSumOfWeightsUpTomPrimePrimeEtaPOI)//to be improved (dMult>1 or dMult>0) - { - //twoDiffEta1n1nPOI = (qxPrimePrimeEtaPOI*dQ1nx+qyPrimePrimeEtaPOI*dQ1ny-mPrimePrimeEtaPOI+qxPrimeEtaPOI*dQ1nx+qyPrimeEtaPOI*dQ1ny)/(mPrimePrimeEtaPOI*(dMult-1)+mPrimeEtaPOI*dMult); // OK without weights - //f2PerEtaBin1n1nPOI->Fill(fEtaMin+(bin-1)*dBinWidthEta,twoDiffEta1n1nPOI,mPrimePrimeEtaPOI*(dMult-1)+mPrimeEtaPOI*dMult);//<2'>_{n|n} // OK without weights - - twoDiffEta1n1nPOI = (qxPrimePrimeEtaPOI*dQ1nxW+qyPrimePrimeEtaPOI*dQ1nyW-dSumOfWeightsUpTomPrimePrimeEtaPOI+qxPrimeEtaPOI*dQ1nxW+qyPrimeEtaPOI*dQ1nyW)/((mPrimePrimeEtaPOI+mPrimeEtaPOI)*dSnk[0][0]-dSumOfWeightsUpTomPrimePrimeEtaPOI); - f2PerEtaBin1n1nPOI->Fill(fEtaMin+(bin-1)*dBinWidthEta,twoDiffEta1n1nPOI,(mPrimePrimeEtaPOI+mPrimeEtaPOI)*dSnk[0][0]-dSumOfWeightsUpTomPrimePrimeEtaPOI); // <2'>_{n|n} - } - - if(mPrimePrimeEtaPOI*(dMult-1)+mPrimeEtaPOI*dMult) - { - twoDiffEta2n2nPOI = (q2xPrimePrimeEtaPOI*dQ2nx+q2yPrimePrimeEtaPOI*dQ2ny-mPrimePrimeEtaPOI+q2xPrimeEtaPOI*dQ2nx+q2yPrimeEtaPOI*dQ2ny)/(mPrimePrimeEtaPOI*(dMult-1)+mPrimeEtaPOI*dMult); - f2PerEtaBin2n2nPOI->Fill(fEtaMin+(bin-1)*dBinWidthEta,twoDiffEta2n2nPOI,mPrimePrimeEtaPOI*(dMult-1)+mPrimeEtaPOI*dMult);//<2'>_{2n|2n} - }//end of if((mPrimeEtaPOI+mPrimePrimeEtaPOI>0)&&dMult>0) - - /* - to be improved: correct Eqs. needed here) - if(mEtaPOI>0&&dMult>3) - { - 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) - //f3PePOItBin2n1n1nPOI->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) - //f3PePOItBin1n1n2nPOI->Fill(fEtaMin+(bin-1)*dBinWidthEta,threeDiffEta1n1n2nPOI,mEtaPOI*(dMult-1.)*(dMult-2.));//Re[<3'>_{n,n|2n}] - } - */ - - //if((mPrimeEtaPOI+mPrimePrimeEtaPOI>0)&&dMult>2)//to be improved (dMult>2 or dMult>3) - if(!(mPrimeEtaPOI==0&&mPrimePrimeEtaPOI==0)&&!(mPrimeEtaPOI==0&&(dMult==1||dMult==2||dMult==3))&&!(mPrimePrimeEtaPOI==0&&(dMult==0||dMult==1||dMult==2))) - { - fourDiffEta1n1n1n1nPOI=((dQ1nx*dQ1nx+dQ1ny*dQ1ny)*(qxPrimeEtaPOI*dQ1nx+qyPrimeEtaPOI*dQ1ny)-2.*(dMult-1)*(qxPrimeEtaPOI*dQ1nx+qyPrimeEtaPOI*dQ1ny)-(dQ2nx*(qxPrimeEtaPOI*dQ1nx-qyPrimeEtaPOI*dQ1ny)+dQ2ny*(qxPrimeEtaPOI*dQ1ny+qyPrimeEtaPOI*dQ1nx))+(dQ1nx*dQ1nx+dQ1ny*dQ1ny)*(qxPrimePrimeEtaPOI*dQ1nx+qyPrimePrimeEtaPOI*dQ1ny)-(q2xPrimePrimeEtaPOI*(dQ1nx*dQ1nx-dQ1ny*dQ1ny)+2.*q2yPrimePrimeEtaPOI*dQ1nx*dQ1ny)-(dQ2nx*(qxPrimePrimeEtaPOI*dQ1nx-qyPrimePrimeEtaPOI*dQ1ny)+dQ2ny*(qxPrimePrimeEtaPOI*dQ1ny+qyPrimePrimeEtaPOI*dQ1nx))+(q2xPrimePrimeEtaPOI*dQ2nx+q2yPrimePrimeEtaPOI*dQ2ny)-2.*(dMult-3.)*(qxPrimePrimeEtaPOI*dQ1nx+qyPrimePrimeEtaPOI*dQ1ny)-2.*mPrimePrimeEtaPOI*(dQ1nx*dQ1nx+dQ1ny*dQ1ny)+2.*(dQ1nx*qxPrimePrimeEtaPOI+dQ1ny*qyPrimePrimeEtaPOI)+2.*mPrimePrimeEtaPOI*(dMult-3.))/(mPrimeEtaPOI*dMult*(dMult-1)*(dMult-2)+mPrimePrimeEtaPOI*(dMult-1)*(dMult-2)*(dMult-3)); - - f4PerEtaBin1n1n1n1nPOI->Fill(fEtaMin+(bin-1)*dBinWidthEta,fourDiffEta1n1n1n1nPOI,mPrimeEtaPOI*dMult*(dMult-1)*(dMult-2)+mPrimePrimeEtaPOI*(dMult-1)*(dMult-2)*(dMult-3));//Re[<4'>_{n,n|n,n}] - }//end of if((mPrimeEtaPOI+mPrimePrimeEtaPOI>0)&&dMult>2) - }//end of for(Int_t bin=1;bin<(fnBinsEta+1);bin++)//loop over eta-bins - - fEtaReq1nPrimePOI->Reset(); - fEtaImq1nPrimePOI->Reset(); - fEtaReq2nPrimePOI->Reset(); - fEtaImq2nPrimePOI->Reset(); - fEtaReq1nPrimePrimePOI->Reset(); - fEtaImq1nPrimePrimePOI->Reset(); - fEtaReq2nPrimePrimePOI->Reset(); - fEtaImq2nPrimePrimePOI->Reset(); - mPrimePrimePerBinEtaPOI->Reset(); -//--------------------------------------------------------------------------------------------------------- - - - delete mPerBinPtRP; - delete mPerBinEtaRP; - delete mPrimePrimePerBinPtPOI; - delete mPrimePrimePerBinEtaPOI; - - - - - - - - - - -/* - //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-dOverlapEta)/((mEtaPOI-dOverlapEta)*dMult+dOverlapEta*(dMult-1.)); - f2PerEtaBin1n1nPOI->Fill(fEtaMin+(bin-1)*dBinWidthEta,twoDiffEta1n1nPOI,(mEtaPOI-dOverlapEta)*dMult+dOverlapEta*(dMult-1.));//<2'>_{n|n} - - twoDiffEta2n2nPOI = (q2xEtaPOI*dQ2nx+q2yEtaPOI*dQ2ny-dOverlapEta)/((mEtaPOI-dOverlapEta)*dMult+dOverlapEta*(dMult-1.)); - f2PerEtaBin2n2nPOI->Fill(fEtaMin+(bin-1)*dBinWidthEta,twoDiffEta2n2nPOI,(mEtaPOI-dOverlapEta)*dMult+dOverlapEta*(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(); -*/ - - - @@ -3087,6 +2081,7 @@ void AliFlowAnalysisWithQCumulants::Make(AliFlowEventSimple* anEvent) + /* //if(bNestedLoops)to be improved //{ to be improved @@ -3110,15 +2105,22 @@ void AliFlowAnalysisWithQCumulants::Make(AliFlowEventSimple* anEvent) // 11th bin: weighted <3>_{2n|n,n} = //.......................................................................... -/* + Double_t phi1=0., phi2=0., phi3=0., phi4=0., phi5=0., phi6=0., phi7=0., phi8=0.; Double_t wPhi1=1., wPhi2=1., wPhi3=1., wPhi4=1., wPhi5=1., wPhi6=1., wPhi7=1., wPhi8=1.; - Double_t tempLoop = 0.; - Int_t tempCounter = 0.; + + + Double_t tempLoop = 0.; + Int_t tempCounter = 0; + + + + + for(Int_t i1=0;i1GetTrack(i1); @@ -3140,9 +2142,9 @@ void AliFlowAnalysisWithQCumulants::Make(AliFlowEventSimple* anEvent) } -*/ -/* + + for(Int_t i1=0;i1GetTrack(i2); -const Double_t ptmin2 = 0.0; phi2=fTrack->Phi(); if(phiWeights) wPhi2 = phiWeights->GetBinContent(1+(Int_t)(TMath::Floor(phi2*nBinsPhi/TMath::TwoPi()))); for(Int_t i3=0;i3_{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_{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_{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;i1GetTrack(i5); phi5=fTrack->Phi(); -const Double_t ptmin2 = 0.0; if(phiWeights) wPhi5 = phiWeights->GetBinContent(1+(Int_t)(TMath::Floor(phi5*nBinsPhi/TMath::TwoPi()))); for(Int_t i6=0;i6_{2n,n,n|n,n,n,n} for(Int_t i1=0;i1_{n,n,n,n|n,n,n,n} for(Int_t i1=0;i1_{n|n} + /* + //<2'>_{n|n} for(Int_t i1=0;i1_{n,n|n,n} for(Int_t i1=0;i1GetHistMultDiff())->GetMean(); // to be improved + Double_t AvMRP = (fCommonHists2nd->GetHistMultInt())->GetMean(); // to be improved + + // number of events + Double_t nEvtsPOI = (fCommonHists2nd->GetHistMultDiff())->GetEntries(); // to be improved + Double_t nEvtsRP = (fCommonHists2nd->GetHistMultInt())->GetEntries(); // to be improved + //--------------------------------------------------------------------------------------------------------- + + //--------------------------------------------------------------------------------------------------------- + // 2-, 4-, 6- and 8-particle azimuthal correlation: + Double_t two = fQCorrelations->GetBinContent(1); //<<2>>_{n|n} + Double_t four = fQCorrelations->GetBinContent(11); //<<4>>_{n,n|n,n} + Double_t six = fQCorrelations->GetBinContent(24); //<<6>>_{n,n,n|n,n,n} + Double_t eight = fQCorrelations->GetBinContent(31); //<<8>>_{n,n,n,n|n,n,n,n} + + // 2nd, 4th, 6th and 8th order Q-cumulant: + Double_t secondOrderQCumulant = two; //c_n{2} + Double_t fourthOrderQCumulant = four-2.*pow(two,2.); //c_n{4} + Double_t sixthOrderQCumulant = six-9.*two*four+12.*pow(two,3.); //c_n{6} + Double_t eightOrderQCumulant = eight-16.*two*six-18.*pow(four,2.)+144.*pow(two,2.)*four-144.*pow(two,4.); //c_n{8} + + // "no-name" integrated flow estimates from Q-cumulants: + Double_t vn2=0.,vn4=0.,vn6=0.,vn8=0.; + // Double_t sd2=0.,sd4=0.,sd6=0.,sd8=0.; + Double_t sd6=0.,sd8=0.; // to be improved/removed + if(secondOrderQCumulant>0.) + { + vn2 = pow(secondOrderQCumulant,0.5); //v_n{2} + } + if(fourthOrderQCumulant<0.) + { + vn4 = pow(-fourthOrderQCumulant,1./4.); //v_n{4} + } + if(sixthOrderQCumulant>0.) + { + vn6 = pow((1./4.)*sixthOrderQCumulant,1./6.); //v_n{6} + } + if(eightOrderQCumulant<0.) + { + vn8 = pow((-1./33.)*eightOrderQCumulant,1./8.); //v_n{8} + } + //--------------------------------------------------------------------------------------------------------- + + //--------------------------------------------------------------------------------------------------------- + // weighted 2-, 4-, 6- and 8-particle azimuthal correlation: + Double_t twoW = fWeightedQCorrelations->GetBinContent(1); //<<2>>_{n|n} + Double_t fourW = fWeightedQCorrelations->GetBinContent(21); //<<4>>_{n,n|n,n} + // Double_t sixW = fWeightedQCorrelations->GetBinContent(24); //<<6>>_{n,n,n|n,n,n} + // Double_t eightW = fWeightedQCorrelations->GetBinContent(31); //<<8>>_{n,n,n,n|n,n,n,n} + + // 2nd, 4th, 6th and 8th order weighted Q-cumulant: + Double_t secondOrderQCumulantW = twoW; //c_n{2} + Double_t fourthOrderQCumulantW = fourW-2.*pow(twoW,2.); //c_n{4} + // Double_t sixthOrderQCumulantW = sixW-9.*twoW*fourW+12.*pow(twoW,3.); //c_n{6} + // Double_t eightOrderQCumulantW = eightW-16.*twoW*sixW-18.*pow(fourW,2.)+144.*pow(twoW,2.)*fourW-144.*pow(twoW,4.); //c_n{8} + + // "no-name" integrated flow estimates from weighted Q-cumulants: + cout<0.){ + vn2W = pow(secondOrderQCumulantW,0.5); // weighted v_n{2} + //sd2W = 0.5*pow(secondOrderQCumulantW,-0.5)*secondOrderQCumulantErrorW; // to be improved (correct treatment of errors needed) + cout<<" v_"<SetBinContent(1,vn2W); + //fIntFlowResultsQC->SetBinError(1,sd2W); + //common histograms: + fCommonHistsResults2nd->FillIntegratedFlow(vn2W,sd2W); + //fCommonHistsResults2nd->FillChi(vn2W*pow(AvM,0.5)); // to be removed + }else{ + cout<<" v_"<SetBinContent(2,vn4W); + //fIntFlowResultsQC->SetBinError(2,sd4W); + //common histograms: + fCommonHistsResults4th->FillIntegratedFlow(vn4W,sd4W); + //fCommonHistsResults4th->FillChi(vn4W*pow(AvM,0.5)); // to be removed + }else{ + cout<<" v_"<0.){ + vn6 = pow((1./4.)*sixthOrderQCumulant,1./6.); //v_n{6} + //sd6 = (1./6.)*pow(2.,-1./3.)*pow(sixthOrderQCumulant,-5./6.)*sixthOrderQCumulantError; + cout<<" v_"<SetBinContent(3,vn6); + //fIntFlowResultsQC->SetBinError(3,sd6); + //common histograms: + fCommonHistsResults6th->FillIntegratedFlow(vn6,sd6); + //fCommonHistsResults6th->FillChi(vn6*pow(AvM,0.5));//to be removed + }else{ + cout<<" v_"<SetBinContent(4,vn8); + //fIntFlowResultsQC->SetBinError(4,sd8); + //common histograms: + fCommonHistsResults8th->FillIntegratedFlow(vn8,sd8); + //fCommonHistsResults8th->FillChi(vn8*pow(AvM,0.5));//to be removed + }else{ + cout<<" v_"<GetNbinsX(); +Int_t nBinsEtaPOI = f4WPerPtBin1n1n1n1nPOI->GetNbinsX(); + +// Pt: +Double_t secondOrderQCumulantDiffFlowPtPOIW = 0.; +Double_t fourthOrderQCumulantDiffFlowPtPOIW = 0.; + +Double_t dVn2ndPOIW=0.,dSd2ndPOIW=0.,dDiffvn2ndPOIW=0.,dYield2ndPOIW=0.,dSum2ndPOIW=0.; +Double_t dVn4thPOIW=0.,dSd4thPOIW=0.,dDiffvn4thPOIW=0.,dYield4thPOIW=0.,dSum4thPOIW=0.; + +for(Int_t bb=1;bbGetBinEntries(bb)>0.&&vn2W!=0) + { + secondOrderQCumulantDiffFlowPtPOIW = f2WPerPtBin1n1nPOI->GetBinContent(bb); // with weights + fDiffFlowResults2ndOrderQC->SetBinContent(bb,secondOrderQCumulantDiffFlowPtPOIW/vn2W); + // common histogram: + fCommonHistsResults2nd->FillDifferentialFlowPtPOI(bb,secondOrderQCumulantDiffFlowPtPOIW/vn2W, 0.); //to be improved (errors && bb or bb+1 ?) + // ------------------------------------------------------------------- + // integrated flow (weighted, POI, Pt, 2nd order): + dDiffvn2ndPOIW=(fCommonHistsResults2nd->GetHistDiffFlowPtPOI())->GetBinContent(bb); + dYield2ndPOIW=(fCommonHists2nd->GetHistPtDiff())->GetBinContent(bb); + dVn2ndPOIW+=dDiffvn2ndPOIW*dYield2ndPOIW; + dSum2ndPOIW+=dYield2ndPOIW; + // ------------------------------------------------------------------- + } + // QC{4] + if(f4WPerPtBin1n1n1n1nPOI->GetBinEntries(bb)>0.&&vn4W!=0.) + { + fourthOrderQCumulantDiffFlowPtPOIW = f4WPerPtBin1n1n1n1nPOI->GetBinContent(bb)-2.*f2WPerPtBin1n1nPOI->GetBinContent(bb)*pow(vn2W,2.); // with weights + fDiffFlowResults4thOrderQC->SetBinContent(bb,-1.*fourthOrderQCumulantDiffFlowPtPOIW/pow(vn4W,3.)); + //common histogram: + fCommonHistsResults4th->FillDifferentialFlowPtPOI(bb,-1.*fourthOrderQCumulantDiffFlowPtPOIW/pow(vn4W,3.), 0.); //to be improved (errors) + // ------------------------------------------------------------------- + //integrated flow (POI, Pt, 4th order): + dDiffvn4thPOIW=(fCommonHistsResults4th->GetHistDiffFlowPtPOI())->GetBinContent(bb); + dYield4thPOIW=(fCommonHists4th->GetHistPtDiff())->GetBinContent(bb); + dVn4thPOIW+=dDiffvn4thPOIW*dYield4thPOIW; + dSum4thPOIW+=dYield4thPOIW; + // ------------------------------------------------------------------- + } +} + +cout<FillIntegratedFlowPOI(dVn2ndPOIW,0.); // to be improved (errors) + cout<<" v_"<FillIntegratedFlowPOI(dVn4thPOIW,0.); // to be improved (errors) + cout<<" v_"<GetBinEntries(bb)>0.&&vn2W!=0) + { + secondOrderQCumulantDiffFlowEtaPOIW = f2WPerEtaBin1n1nPOI->GetBinContent(bb); // with weights + fDiffFlowResults2ndOrderQC->SetBinContent(bb,secondOrderQCumulantDiffFlowEtaPOIW/vn2W); + //common histogram: + fCommonHistsResults2nd->FillDifferentialFlowEtaPOI(bb,secondOrderQCumulantDiffFlowEtaPOIW/vn2W, 0.);//to be improved (errors) + } + if(f4WPerEtaBin1n1n1n1nPOI->GetBinEntries(bb)>0.&&vn4W!=0.) + { + fourthOrderQCumulantDiffFlowEtaPOIW = f4WPerEtaBin1n1n1n1nPOI->GetBinContent(bb)-2.*f2WPerEtaBin1n1nPOI->GetBinContent(bb)*pow(vn2W,2.); // with weights + fDiffFlowResults4thOrderQC->SetBinContent(bb,-1.*fourthOrderQCumulantDiffFlowEtaPOIW/pow(vn4W,3.)); + //common histogram: + fCommonHistsResults4th->FillDifferentialFlowEtaPOI(bb,-1.*fourthOrderQCumulantDiffFlowEtaPOIW/pow(vn4W,3.), 0.);//to be improved (errors) + } +} +//------------------------------------------------------------ + - f2WPerEtaBin1n1nPOI, f4WPerEtaBin1n1n1n1nPOI, f2WPerPtBin1n1nRP, f4WPerPtBin1n1n1n1nRP, f2WPerEtaBin1n1nRP, f4WPerEtaBin1n1n1n1nRP, - fCommonHists2nd,fCommonHists4th, fCommonHists6th, fCommonHists8th,fCommonHistsResults2nd, fCommonHistsResults4th,fCommonHistsResults6th,fCommonHistsResults8th); + //--------------------------------------------------------------------------------------------------------- +// differential flow (RP) +Int_t nBinsPtRP = f2WPerPtBin1n1nRP->GetNbinsX(); +Int_t nBinsEtaRP = f4WPerPtBin1n1n1n1nRP->GetNbinsX(); + +// Pt: +Double_t secondOrderQCumulantDiffFlowPtRPW = 0.; +Double_t fourthOrderQCumulantDiffFlowPtRPW = 0.; - finalResults.Calculate(); +Double_t dVn2ndRPW=0.,dSd2ndRPW=0.,dDiffvn2ndRPW=0.,dYield2ndRPW=0.,dSum2ndRPW=0.; +Double_t dVn4thRPW=0.,dSd4thRPW=0.,dDiffvn4thRPW=0.,dYield4thRPW=0.,dSum4thRPW=0.; + +for(Int_t bb=1;bbGetBinEntries(bb)>0.&&vn2W!=0) + { + secondOrderQCumulantDiffFlowPtRPW = f2WPerPtBin1n1nRP->GetBinContent(bb); // with weights + fDiffFlowResults2ndOrderQC->SetBinContent(bb,secondOrderQCumulantDiffFlowPtRPW/vn2W); + // common histogram: + fCommonHistsResults2nd->FillDifferentialFlowPtRP(bb,secondOrderQCumulantDiffFlowPtRPW/vn2W, 0.); //to be improved (errors && bb or bb+1 ?) + // ------------------------------------------------------------------- + // integrated flow (weighted, RP, Pt, 2nd order): + dDiffvn2ndRPW=(fCommonHistsResults2nd->GetHistDiffFlowPtRP())->GetBinContent(bb); + dYield2ndRPW=(fCommonHists2nd->GetHistPtInt())->GetBinContent(bb); + dVn2ndRPW+=dDiffvn2ndRPW*dYield2ndRPW; + dSum2ndRPW+=dYield2ndRPW; + // ------------------------------------------------------------------- + } + // QC{4] + if(f4WPerPtBin1n1n1n1nRP->GetBinEntries(bb)>0.&&vn4W!=0.) + { + fourthOrderQCumulantDiffFlowPtRPW = f4WPerPtBin1n1n1n1nRP->GetBinContent(bb)-2.*f2WPerPtBin1n1nRP->GetBinContent(bb)*pow(vn2W,2.); // with weights + fDiffFlowResults4thOrderQC->SetBinContent(bb,-1.*fourthOrderQCumulantDiffFlowPtRPW/pow(vn4W,3.)); + //common histogram: + fCommonHistsResults4th->FillDifferentialFlowPtRP(bb,-1.*fourthOrderQCumulantDiffFlowPtRPW/pow(vn4W,3.), 0.); //to be improved (errors) + // ------------------------------------------------------------------- + //integrated flow (RP, Pt, 4th order): + dDiffvn4thRPW=(fCommonHistsResults4th->GetHistDiffFlowPtRP())->GetBinContent(bb); + dYield4thRPW=(fCommonHists4th->GetHistPtInt())->GetBinContent(bb); + dVn4thRPW+=dDiffvn4thRPW*dYield4thRPW; + dSum4thRPW+=dYield4thRPW; + // ------------------------------------------------------------------- + } +} + +cout<FillIntegratedFlowRP(dVn2ndRPW,0.); // to be improved (errors) + cout<<" v_"<FillIntegratedFlowRP(dVn4thRPW,0.); // to be improved (errors) + cout<<" v_"<GetBinEntries(bb)>0.&&vn2W!=0) + { + secondOrderQCumulantDiffFlowEtaRPW = f2WPerEtaBin1n1nRP->GetBinContent(bb); // with weights + fDiffFlowResults2ndOrderQC->SetBinContent(bb,secondOrderQCumulantDiffFlowEtaRPW/vn2W); + //common histogram: + fCommonHistsResults2nd->FillDifferentialFlowEtaRP(bb,secondOrderQCumulantDiffFlowEtaRPW/vn2W, 0.);//to be improved (errors) + } + if(f4WPerEtaBin1n1n1n1nRP->GetBinEntries(bb)>0.&&vn4W!=0.) + { + fourthOrderQCumulantDiffFlowEtaRPW = f4WPerEtaBin1n1n1n1nRP->GetBinContent(bb)-2.*f2WPerEtaBin1n1nRP->GetBinContent(bb)*pow(vn2W,2.); // with weights + fDiffFlowResults4thOrderQC->SetBinContent(bb,-1.*fourthOrderQCumulantDiffFlowEtaRPW/pow(vn4W,3.)); + //common histogram: + fCommonHistsResults4th->FillDifferentialFlowEtaRP(bb,-1.*fourthOrderQCumulantDiffFlowEtaRPW/pow(vn4W,3.), 0.);//to be improved (errors) + } +} +//------------------------------------------------------------ + + + + /* + cout<<"0.5 < Pt < 0.6 GeV"< from Q-vectors = "<GetBinContent(6)< from Q-vectors = "<GetName()< from Q-vectors = "<GetBinContent(101)< from Q-vectors = "<GetBinContent(6)< from Q-vectors = "<GetName()< from nested loops = "<GetBinContent(121)<fQCorrelations = QCorr;}; TProfile* GetQCorrelations() const {return this->fQCorrelations;}; - void SetQCorrelationsW(TProfile* const QCorrW) {this->fQCorrelationsW = QCorrW;}; - TProfile* GetQCorrelationsW() const {return this->fQCorrelationsW;}; + void SetWeightedQCorrelations(TProfile* const WQCorr) {this->fWeightedQCorrelations = WQCorr;}; + TProfile* GetWeightedQCorrelations() const {return this->fWeightedQCorrelations;}; void SetQProduct(TProfile* const qp) {this->fQProduct = qp;}; TProfile* GetQProduct() const {return this->fQProduct;}; @@ -111,82 +111,33 @@ class AliFlowAnalysisWithQCumulants{ void SetTwo1n1nPerPtBinRP(TProfile* const pb2PerPtBin1n1nRP) {this->f2PerPtBin1n1nRP = pb2PerPtBin1n1nRP;}; TProfile* GetTwo1n1nPerPtBinRP() const {return this->f2PerPtBin1n1nRP;}; - void SetTwo2n2nPerPtBinRP(TProfile* const pb2PerPtBin2n2nRP) {this->f2PerPtBin2n2nRP = pb2PerPtBin2n2nRP;}; - TProfile* GetTwo2n2nPerPtBinRP() const {return this->f2PerPtBin2n2nRP;}; - - void SetThree2n1n1nPerPtBinRP(TProfile* const pb3PerPtBin2n1n1nRP) {this->f3PerPtBin2n1n1nRP = pb3PerPtBin2n1n1nRP;}; - TProfile* GetThree2n1n1nPerPtBinRP() const {return this->f3PerPtBin2n1n1nRP;}; - - void SetThree1n1n2nPerPtBinRP(TProfile* const pb3PerPtBin1n1n2nRP) {this->f3PerPtBin1n1n2nRP = pb3PerPtBin1n1n2nRP;}; - TProfile* GetThree1n1n2nPerPtBinRP() const {return this->f3PerPtBin1n1n2nRP;}; - 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 SetTwo1n1nWPerPtBinPOI(TProfile* const pb2WPerPtBin1n1nPOI) {this->f2WPerPtBin1n1nPOI = pb2WPerPtBin1n1nPOI;}; TProfile* GetTwo1n1nWPerPtBinPOI() const {return this->f2WPerPtBin1n1nPOI;}; - void SetTwo2n2nWPerPtBinPOI(TProfile* const pb2WPerPtBin2n2nPOI) {this->f2WPerPtBin2n2nPOI = pb2WPerPtBin2n2nPOI;}; - TProfile* GetTwo2n2nWPerPtBinPOI() const {return this->f2WPerPtBin2n2nPOI;}; - - void SetThree2n1n1nWPerPtBinPOI(TProfile* const pb3WPerPtBin2n1n1nPOI) {this->f3WPerPtBin2n1n1nPOI = pb3WPerPtBin2n1n1nPOI;}; - TProfile* GetThree2n1n1nWPerPtBinPOI() const {return this->f3WPerPtBin2n1n1nPOI;}; - - void SetThree1n1n2nWPerPtBinPOI(TProfile* const pb3WPerPtBin1n1n2nPOI) {this->f3WPerPtBin1n1n2nPOI = pb3WPerPtBin1n1n2nPOI;}; - TProfile* GetThree1n1n2nWPerPtBinPOI() const {return this->f3WPerPtBin1n1n2nPOI;}; - void SetFour1n1n1n1nWPerPtBinPOI(TProfile* const pb4WPerPtBin1n1n1n1nPOI) {this->f4WPerPtBin1n1n1n1nPOI = pb4WPerPtBin1n1n1n1nPOI;}; TProfile* GetFour1n1n1n1nWPerPtBinPOI() const {return this->f4WPerPtBin1n1n1n1nPOI;} - - void SetTwo1n1nWPerEtaBinPOI(TProfile* const pb2WPerEtaBin1n1nPOI) {this->f2WPerEtaBin1n1nPOI = pb2WPerEtaBin1n1nPOI;}; TProfile* GetTwo1n1nWPerEtaBinPOI() const {return this->f2WPerEtaBin1n1nPOI;}; @@ -205,12 +156,6 @@ class AliFlowAnalysisWithQCumulants{ void SetFour1n1n1n1nWPerEtaBinRP(TProfile* const pb4WPerEtaBin1n1n1n1nRP) {this->f4WPerEtaBin1n1n1n1nRP = pb4WPerEtaBin1n1n1n1nRP;}; TProfile* GetFour1n1n1n1nWPerEtaBinRP() const {return this->f4WPerEtaBin1n1n1n1nRP;} - - - - - - void SetDirectCorrelations(TProfile* const dc) {this->fDirectCorrelations = dc;}; TProfile* GetDirectCorrelations() const {return this->fDirectCorrelations;}; @@ -245,93 +190,39 @@ class AliFlowAnalysisWithQCumulants{ TProfile* fQvectorForEachEventX; //profile containing the x-components of Q-vectors from all events (to be removed) TProfile* fQvectorForEachEventY; //profile containing the y-components of Q-vectors from all events (to be removed) TProfile* fQCorrelations; //multi-particle correlations calculated from Q-vectors - TProfile* fQCorrelationsW; //weighted multi-particle correlations calculated from Q-vectors + TProfile* fWeightedQCorrelations; //weighted multi-particle correlations calculated from Q-vectors TProfile* fQProduct; //average of products: 1st bin: <2*4>, 2nd bin: <2*6>, ... TProfile* fDirectCorrelations; //multi-particle correlations calculated with nested loop - - //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* fPtReq1nPrimePOI; //real part of q'-vector evaluated in harmonic n for each pt-bin - TProfile* fPtImq1nPrimePOI; //imaginary part of q'-vector evaluated in harmonic n for each pt-bin - TProfile* fPtReq2nPrimePOI; //real part of q'-vector evaluated in harmonic 2n for each pt-bin - TProfile* fPtImq2nPrimePOI; //imaginary part of q'-vector evaluated in harmonic 2n for each pt-bin - TProfile* fmPrimePerPtBin; //number of particles selected both as POI and not as RP per each pt-bin - - TProfile* fPtReq1nPrimePrimePOI; //real part of q''-vector evaluated in harmonic n for each pt-bin - TProfile* fPtImq1nPrimePrimePOI; //imaginary part of q''-vector evaluated in harmonic n for each pt-bin - TProfile* fPtReq2nPrimePrimePOI; //real part of q''-vector evaluated in harmonic 2n for each pt-bin - TProfile* fPtImq2nPrimePrimePOI; //imaginary part of q''-vector evaluated in harmonic 2n for each pt-bin - TProfile* fmPrimePrimePerPtBin; //number of particles selected both as RP and POI per each pt-bin - - TProfile* fEtaReq1nPrimePOI; //real part of q'-vector evaluated in harmonic n for each eta-bin - TProfile* fEtaImq1nPrimePOI; //imaginary part of q'-vector evaluated in harmonic n for each eta-bin - TProfile* fEtaReq2nPrimePOI; //real part of q'-vector evaluated in harmonic 2n for each eta-bin - TProfile* fEtaImq2nPrimePOI; //imaginary part of q'-vector evaluated in harmonic 2n for each eta-bin - TProfile* fmPrimePerEtaBin; //number of particles selected both as POI and not as RP per each eta-bin - - TProfile* fEtaReq1nPrimePrimePOI; //real part of q''-vector evaluated in harmonic n for each eta-bin - TProfile* fEtaImq1nPrimePrimePOI; //imaginary part of q''-vector evaluated in harmonic n for each eta-bin - TProfile* fEtaReq2nPrimePrimePOI; //real part of q''-vector evaluated in harmonic 2n for each eta-bin - TProfile* fEtaImq2nPrimePrimePOI; //imaginary part of q''-vector evaluated in harmonic 2n for each eta-bin - TProfile* fmPrimePrimePerEtaBin; //number of particles selected both as RP and POI in each eta-bin - + // POI (Particles Of Interest): + // non-weighted correlations 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* 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 - - - - - + // weighted correlations TProfile* f2WPerPtBin1n1nPOI; //<<2'>>_{n|n} per eta-bin - TProfile* f2WPerPtBin2n2nPOI; //<<2'>>_{2n|2n} per eta-bin - TProfile* f3WPerPtBin2n1n1nPOI; //<<3'>>_{2n|n,n} per eta-bin - TProfile* f3WPerPtBin1n1n2nPOI; //<<3'>>_{n,n|2n} per eta-bin TProfile* f4WPerPtBin1n1n1n1nPOI; //<<4'>>_{n,n|n,n} per eta-bin - TProfile* f2WPerEtaBin1n1nPOI; //<<2'>>_{n|n} per eta-bin - TProfile* f4WPerEtaBin1n1n1n1nPOI; //<<4'>>_{n,n|n,n} per eta-bin + TProfile* f2WPerEtaBin1n1nPOI; //<<2'>>_{n|n} per eta-bin + TProfile* f4WPerEtaBin1n1n1n1nPOI; //<<4'>>_{n,n|n,n} per eta-bin - TProfile* f2WPerPtBin1n1nRP; //<<2'>>_{n|n} per eta-bin - TProfile* f4WPerPtBin1n1n1n1nRP; //<<4'>>_{n,n|n,n} per eta-bin + // RP (Reaction Plane particles) + // non-weighted correlations + TProfile* f2PerPtBin1n1nRP; //<<2'>>_{n|n} per pt-bin + TProfile* f4PerPtBin1n1n1n1nRP; //<<4'>>_{n,n|n,n} per pt-bin + + TProfile* f2PerEtaBin1n1nRP; //<<2'>>_{n|n} per eta-bin + TProfile* f4PerEtaBin1n1n1n1nRP; //<<4'>>_{n,n|n,n} per eta-bin + // weighted correlations + TProfile* f2WPerPtBin1n1nRP; //<<2'>>_{n|n} per eta-bin + TProfile* f4WPerPtBin1n1n1n1nRP; //<<4'>>_{n,n|n,n} per eta-bin TProfile* f2WPerEtaBin1n1nRP; //<<2'>>_{n|n} per eta-bin TProfile* f4WPerEtaBin1n1n1n1nRP; //<<4'>>_{n,n|n,n} per eta-bin - - - AliFlowCommonHist* fCommonHists2nd; //common control histograms (taking into account only the events with 2 and more particles) AliFlowCommonHist* fCommonHists4th; //common control histograms (taking into account only the events with 4 and more particles) AliFlowCommonHist* fCommonHists6th; //common control histograms (taking into account only the events with 6 and more particles) diff --git a/PWG2/FLOW/AliFlowCommon/AliQCumulantsFunctions.cxx b/PWG2/FLOW/AliFlowCommon/AliQCumulantsFunctions.cxx deleted file mode 100644 index 928a161a718..00000000000 --- a/PWG2/FLOW/AliFlowCommon/AliQCumulantsFunctions.cxx +++ /dev/null @@ -1,757 +0,0 @@ -/************************************************************************* -* Copyright(c) 1998-2008, ALICE Experiment at CERN, All rights reserved. * -* * -* Author: The ALICE Off-line Project. * -* Contributors are mentioned in the code where appropriate. * -* * -* Permission to use, copy, modify and distribute this software and its * -* documentation strictly for non-commercial purposes is hereby granted * -* without fee, provided that the above copyright notice appears in all * -* copies and that both the copyright notice and this permission notice * -* appear in the supporting documentation. The authors make no claims * -* about the suitability of this software for any purpose. It is * -* provided "as is" without express or implied warranty. * -**************************************************************************/ - -/********************************** - * functions and equations needed * - * for calculation of Q-cumulants * - * and final flow estimates * - * * - * author: Ante Bilandzic * - * (anteb@nikhef.nl) * - *********************************/ - -#define AliQCumulantsFunctions_cxx - -#include "Riostream.h" -#include "TChain.h" -#include "TFile.h" -#include "TList.h" -#include "TParticle.h" - -#include "TProfile.h" -#include "TProfile2D.h" -#include "TProfile3D.h" -#include "TF1.h" -#include "TAxis.h" -#include "TH1.h" -#include "TH1D.h" - -#include "AliFlowEventSimple.h" -#include "AliFlowTrackSimple.h" -#include "AliFlowAnalysisWithCumulants.h" -#include "AliFlowCommonConstants.h" -#include "AliFlowCommonHist.h" -#include "AliFlowCommonHistResults.h" -#include "AliQCumulantsFunctions.h" - -ClassImp(AliQCumulantsFunctions) - -//================================================================================================================_ - -AliQCumulantsFunctions::AliQCumulantsFunctions(): - fIntRes(NULL), - fDiffRes2nd(NULL), - fDiffRes4th(NULL), - fCovar(NULL), - fAvMult(NULL), - fQVector(NULL), - fQCorr(NULL), - fQCorrW(NULL), - fQProd(NULL), - fDirect(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), - - - - fbinWPt2p1n1nPOI(NULL), - fbinWPt2p2n2nPOI(NULL), - fbinWPt3p2n1n1nPOI(NULL), - fbinWPt3p1n1n2nPOI(NULL), - fbinWPt4p1n1n1n1nPOI(NULL), - - fbinWEta2p1n1nPOI(NULL), - fbinWEta4p1n1n1n1nPOI(NULL), - - fbinWPt2p1n1nRP(NULL), - fbinWPt4p1n1n1n1nRP(NULL), - - fbinWEta2p1n1nRP(NULL), - fbinWEta4p1n1n1n1nRP(NULL), - - - fch2nd(NULL),//ch = common histogram (control) - fch4th(NULL), - fch6th(NULL), - fch8th(NULL), - fchr2nd(NULL),//chr = common histogram results - fchr4th(NULL), - fchr6th(NULL), - fchr8th(NULL) -{ - //default constructor -} - -AliQCumulantsFunctions::~AliQCumulantsFunctions() -{ - //destructor -} - -AliQCumulantsFunctions::AliQCumulantsFunctions(TH1D *intRes, TH1D *diffRes2nd, TH1D *diffRes4th, TH1D *covar, TProfile *AvMult, TProfile *QVector, TProfile *QCorr, TProfile *QCorrW, 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, TProfile *binWPt2p1n1nPOI, TProfile *binWPt2p2n2nPOI, TProfile *binWPt3p2n1n1nPOI, TProfile *binWPt3p1n1n2nPOI, TProfile *binWPt4p1n1n1n1nPOI, - - TProfile *binWEta2p1n1nPOI, TProfile *binWEta4p1n1n1n1nPOI, TProfile *binWPt2p1n1nRP, TProfile *binWPt4p1n1n1n1nRP, TProfile *binWEta2p1n1nRP, TProfile *binWEta4p1n1n1n1nRP, - - - - AliFlowCommonHist *ch2nd, AliFlowCommonHist *ch4th, AliFlowCommonHist *ch6th, AliFlowCommonHist *ch8th, AliFlowCommonHistResults *chr2nd, AliFlowCommonHistResults *chr4th, AliFlowCommonHistResults *chr6th, AliFlowCommonHistResults *chr8th): - fIntRes(intRes), - fDiffRes2nd(diffRes2nd), - fDiffRes4th(diffRes4th), - fCovar(covar), - fAvMult(AvMult), - fQVector(QVector), - fQCorr(QCorr), - fQCorrW(QCorrW), - fQProd(QProd), - fDirect(Direct), - 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), - - - - fbinWPt2p1n1nPOI(binWPt2p1n1nPOI), - fbinWPt2p2n2nPOI(binWPt2p2n2nPOI), - fbinWPt3p2n1n1nPOI(binWPt3p2n1n1nPOI), - fbinWPt3p1n1n2nPOI(binWPt3p1n1n2nPOI), - fbinWPt4p1n1n1n1nPOI(binWPt4p1n1n1n1nPOI), - - fbinWEta2p1n1nPOI(binWEta2p1n1nPOI), - fbinWEta4p1n1n1n1nPOI(binWEta4p1n1n1n1nPOI), - - fbinWPt2p1n1nRP(binWPt2p1n1nRP), - fbinWPt4p1n1n1n1nRP(binWPt4p1n1n1n1nRP), - - fbinWEta2p1n1nRP(binWEta2p1n1nRP), - fbinWEta4p1n1n1n1nRP(binWEta4p1n1n1n1nRP), - - - fch2nd(ch2nd), - fch4th(ch4th), - fch6th(ch6th), - fch8th(ch8th), - fchr2nd(chr2nd), - fchr4th(chr4th), - fchr6th(chr6th), - fchr8th(chr8th) -{ - //custom constructor -} - -//================================================================================================================ - -void AliQCumulantsFunctions::Calculate() -{ - //final results - - //harmonics - Int_t n = 2; //to be improved - - //--------------------------------------------------------------------------------------------------------- - //avarage multiplicity - Double_t AvM = fAvMult->GetBinContent(1); - - //number of events - Double_t nEvts = fAvMult->GetBinEntries(1); - - //2-, 4-, 6- and 8-particle azimuthal correlation: - Double_t two = fQCorr->GetBinContent(1); //<<2>>_{n|n} - Double_t four = fQCorr->GetBinContent(11); //<<4>>_{n,n|n,n} - Double_t six = fQCorr->GetBinContent(24); //<<6>>_{n,n,n|n,n,n} - Double_t eight = fQCorr->GetBinContent(31); //<<8>>_{n,n,n,n|n,n,n,n} - - // weighted 2-, 4-, 6- and 8-particle azimuthal correlation: - Double_t twoW = fQCorrW->GetBinContent(1); //<<2>>_{n|n} - Double_t fourW = fQCorrW->GetBinContent(21); //<<4>>_{n,n|n,n} - //Double_t sixW = fQCorr->GetBinContent(24); //<<6>>_{n,n,n|n,n,n} - //Double_t eightW = fQCorr->GetBinContent(31); //<<8>>_{n,n,n,n|n,n,n,n} - - //errors of 2-, 4- and 6-particle azimuthal correlation: - Double_t twoErr = fQCorr->GetBinError(1); //sigma_{<<2>>_{n|n}} - Double_t fourErr = fQCorr->GetBinError(11); //sigma_{<<4>>_{n,n|n,n}} - Double_t sixErr = fQCorr->GetBinError(24); //sigma_{<<6>>_{n,n,n|n,n,n}} - //Double_t eightErr = fQCorr->GetBinError(); //sigma_{<<8>>_{n,n,n,n|n,n,n,n}} - - //covariances of multi-particle correlations - Double_t cov24=fQProd->GetBinContent(1)-two*four; //cov24=<<2>*<4>>-<<2>>*<<4>> - Double_t cov26=fQProd->GetBinContent(2)-two*six; //cov26=<<2>*<6>>-<<2>>*<<6>> - //Double_t cov28=fQProd->GetBinContent(3)-two*eight; //cov28=<<2>*<8>>-<<2>>*<<8>> - Double_t cov46=fQProd->GetBinContent(4)-four*six; //cov46=<<4>*<6>>-<<4>>*<<6>> - //Double_t cov48=fQProd->GetBinContent(5)-four*eight; //cov48=<<4>*<8>>-<<4>>*<<8>> - //Double_t cov68=fQProd->GetBinContent(6)-six*eight; //cov68=<<6>*<8>>-<<6>>*<<8>> - - fCovar->SetBinContent(1,cov24); - fCovar->SetBinContent(2,cov26); - //fCovar->SetBinContent(3,cov28); - fCovar->SetBinContent(4,cov46); - //fCovar->SetBinContent(5,cov48); - //fCovar->SetBinContent(6,cov68); - - //2nd, 4th and 6th order Q-cumulant and theirs errors: - Double_t secondOrderQCumulant = twoW; //c_n{2} - Double_t secondOrderQCumulantError = twoErr; //sigma_{c_n{2}} - - Double_t fourthOrderQCumulant = fourW-2.*pow(twoW,2.);//c_n{4} - Double_t fourthOrderQCumulantError = 0.; //sigma_{c_n{4}} - - if(16.*pow(two,2.)*pow(twoErr,2.)+pow(fourErr,2.)-8.*two*cov24>0.) - { - fourthOrderQCumulantError = pow(16.*pow(two,2.)*pow(twoErr,2.)+pow(fourErr,2.)-8.*two*cov24,0.5);//sigma_{c_n{4}} - } - - Double_t sixthOrderQCumulant = six-9.*two*four+12.*pow(two,3.); //c_n{6} - Double_t sixthOrderQCumulantError = 0.; //sigma_{c_n{6}} - - if(81.*pow(4.*two*two-four,2.)*pow(twoErr,2.)+81.*pow(two,2.)*pow(fourErr,2.)+pow(sixErr,2.)-162.*(4.*two*two-four)*two*cov24+18.*(4.*two*two-four)*cov26-18.*two*cov46>0.) - { - sixthOrderQCumulantError = pow(81.*pow(4.*two*two-four,2.)*pow(twoErr,2.)+81.*pow(two,2.)*pow(fourErr,2.)+pow(sixErr,2.)-162.*(4.*two*two-four)*two*cov24+18.*(4.*two*two-four)*cov26-18.*two*cov46,0.5);//sigma_{c_n{6}} - } - - 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<0.){ - vn2 = pow(secondOrderQCumulant,0.5);//v_n{2} - sd2 = 0.5*pow(secondOrderQCumulant,-0.5)*secondOrderQCumulantError;//sigma_{v_n{2}} - cout<<" v_"<SetBinContent(1,vn2); - fIntRes->SetBinError(1,sd2); - //common histograms: - fchr2nd->FillIntegratedFlow(vn2,sd2); - fchr2nd->FillChi(vn2*pow(AvM,0.5));//to be removed - }else{ - cout<<" v_"<SetBinContent(2,vn4); - fIntRes->SetBinError(2,sd4); - //common histograms: - fchr4th->FillIntegratedFlow(vn4,sd4); - fchr4th->FillChi(vn4*pow(AvM,0.5));//to be removed - }else{ - cout<<" v_"<0.){ - vn6 = pow((1./4.)*sixthOrderQCumulant,1./6.); //v_n{6} - sd6 = (1./6.)*pow(2.,-1./3.)*pow(sixthOrderQCumulant,-5./6.)*sixthOrderQCumulantError; - cout<<" v_"<SetBinContent(3,vn6); - fIntRes->SetBinError(3,sd6); - //common histograms: - fchr6th->FillIntegratedFlow(vn6,sd6); - fchr6th->FillChi(vn6*pow(AvM,0.5));//to be removed - }else{ - cout<<" v_"<SetBinContent(4,vn8); - fIntRes->SetBinError(4,sd8); - //common histograms: - fchr8th->FillIntegratedFlow(vn8,sd8); - fchr8th->FillChi(vn8*pow(AvM,0.5));//to be removed - }else{ - cout<<" v_"<GetNbinsX(); -Int_t nBinsEtaRP = fbinEta2p1n1nRP->GetNbinsX(); - -//Pt: -Double_t secondOrderQCumulantDiffFlowPtRP = 0.; -Double_t fourthOrderQCumulantDiffFlowPtRP = 0.; - -Double_t dVn2ndRP=0.,dSd2ndRP=0.,dDiffvn2ndRP=0.,dYield2ndRP=0.,dSum2ndRP=0.; -Double_t dVn4thRP=0.,dSd4thRP=0.,dDiffvn4thRP=0.,dYield4thRP=0.,dSum4thRP=0.; - -for(Int_t bb=1;bbGetBinEntries(bb)>0.&&vn2!=0) - { - //cout<<"bin = "<GetHistPtDiff())->GetBinContent(bb)<GetBinContent(bb); // without weights - - //secondOrderQCumulantDiffFlowPtRP = fbinWPt2p1n1nRP->GetBinContent(bb); // with weights - - fDiffRes2nd->SetBinContent(bb,secondOrderQCumulantDiffFlowPtRP/vn2); - //common histogram: - fchr2nd->FillDifferentialFlowPtRP(bb,secondOrderQCumulantDiffFlowPtRP/vn2, 0.);//to be improved (errors) && bb or bb+1 - //------------------------------------------------------------- - //integrated flow (RP, Pt, 2nd order): - dDiffvn2ndRP=(fchr2nd->GetHistDiffFlowPtRP())->GetBinContent(bb); - dYield2ndRP=(fch2nd->GetHistPtInt())->GetBinContent(bb); - dVn2ndRP+=dDiffvn2ndRP*dYield2ndRP; - dSum2ndRP+=dYield2ndRP; - //------------------------------------------------------------- - } - //QC{4] - if(fbinPt4p1n1n1n1nRP->GetBinEntries(bb)>0.&&vn4!=0.) - { - fourthOrderQCumulantDiffFlowPtRP = fbinPt4p1n1n1n1nRP->GetBinContent(bb)-2.*fbinPt2p1n1nRP->GetBinContent(bb)*pow(vn2,2.); // without weights - //fourthOrderQCumulantDiffFlowPtRP = fbinWPt4p1n1n1n1nRP->GetBinContent(bb)-2.*fbinWPt2p1n1nRP->GetBinContent(bb)*pow(vn2,2.); // with weights - fDiffRes4th->SetBinContent(bb,-1.*fourthOrderQCumulantDiffFlowPtRP/pow(vn4,3.)); - //common histogram: - fchr4th->FillDifferentialFlowPtRP(bb,-1.*fourthOrderQCumulantDiffFlowPtRP/pow(vn4,3.), 0.);//to be improved (errors) - //------------------------------------------------------------- - //integrated flow (RP, Pt, 4th order): - dDiffvn4thRP=(fchr4th->GetHistDiffFlowPtRP())->GetBinContent(bb); - dYield4thRP=(fch4th->GetHistPtInt())->GetBinContent(bb); - dVn4thRP+=dDiffvn4thRP*dYield4thRP; - dSum4thRP+=dYield4thRP; - //------------------------------------------------------------- - } -} - -//integrated flow estimates from Q-cumulants (RP): -cout<FillIntegratedFlowRP(dVn2ndRP,0.);//to be improved (errors) - cout<<" v_"<FillIntegratedFlowRP(dVn4thRP,0.);//to be improved (errors) - cout<<" v_"<GetBinEntries(bb)>0.&&vn2!=0) - { - secondOrderQCumulantDiffFlowEtaRP = fbinEta2p1n1nRP->GetBinContent(bb); // without weights - //secondOrderQCumulantDiffFlowEtaRP = fbinWEta2p1n1nRP->GetBinContent(bb); // with weights - 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.); // without weights - //fourthOrderQCumulantDiffFlowEtaRP = fbinWEta4p1n1n1n1nRP->GetBinContent(bb)-2.*fbinWEta2p1n1nRP->GetBinContent(bb)*pow(vn2,2.); // with weights - 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) -Int_t nBinsPtPOI = fbinPt2p1n1nPOI->GetNbinsX(); -Int_t nBinsEtaPOI = fbinEta2p1n1nPOI->GetNbinsX(); - -//Pt: -Double_t secondOrderQCumulantDiffFlowPtPOI = 0.; -Double_t fourthOrderQCumulantDiffFlowPtPOI = 0.; - -Double_t dVn2ndPOI=0.,dSd2ndPOI=0.,dDiffvn2ndPOI=0.,dYield2ndPOI=0.,dSum2ndPOI=0.; -Double_t dVn4thPOI=0.,dSd4thPOI=0.,dDiffvn4thPOI=0.,dYield4thPOI=0.,dSum4thPOI=0.; - -for(Int_t bb=1;bbGetBinEntries(bb)>0.&&vn2!=0) - { - //cout<<"bin = "<GetHistPtDiff())->GetBinContent(bb)<GetBinContent(bb); // without weights - - - secondOrderQCumulantDiffFlowPtPOI = fbinWPt2p1n1nPOI->GetBinContent(bb); // with weights - fDiffRes2nd->SetBinContent(bb,secondOrderQCumulantDiffFlowPtPOI/vn2); - //common histogram: - fchr2nd->FillDifferentialFlowPtPOI(bb,secondOrderQCumulantDiffFlowPtPOI/vn2, 0.);//to be improved (errors) && bb or bb+1 - //------------------------------------------------------------- - //integrated flow (POI, Pt, 2nd order): - dDiffvn2ndPOI=(fchr2nd->GetHistDiffFlowPtPOI())->GetBinContent(bb); - dYield2ndPOI=(fch2nd->GetHistPtDiff())->GetBinContent(bb); - dVn2ndPOI+=dDiffvn2ndPOI*dYield2ndPOI; - dSum2ndPOI+=dYield2ndPOI; - //------------------------------------------------------------- - } - //QC{4] - if(fbinWPt4p1n1n1n1nPOI->GetBinEntries(bb)>0.&&vn4!=0.) - { - //fourthOrderQCumulantDiffFlowPtPOI = fbinPt4p1n1n1n1nPOI->GetBinContent(bb)-2.*fbinPt2p1n1nPOI->GetBinContent(bb)*pow(vn2,2.); // without weights - fourthOrderQCumulantDiffFlowPtPOI = fbinWPt4p1n1n1n1nPOI->GetBinContent(bb)-2.*fbinWPt2p1n1nPOI->GetBinContent(bb)*pow(vn2,2.); // with weights - fDiffRes4th->SetBinContent(bb,-1.*fourthOrderQCumulantDiffFlowPtPOI/pow(vn4,3.)); - //common histogram: - fchr4th->FillDifferentialFlowPtPOI(bb,-1.*fourthOrderQCumulantDiffFlowPtPOI/pow(vn4,3.), 0.);//to be improved (errors) - //------------------------------------------------------------- - //integrated flow (POI, Pt, 4th order): - dDiffvn4thPOI=(fchr4th->GetHistDiffFlowPtPOI())->GetBinContent(bb); - dYield4thPOI=(fch4th->GetHistPtDiff())->GetBinContent(bb); - dVn4thPOI+=dDiffvn4thPOI*dYield4thPOI; - dSum4thPOI+=dYield4thPOI; - //------------------------------------------------------------- - } -} - -cout<FillIntegratedFlowPOI(dVn2ndPOI,0.);//to be improved (errors) - cout<<" v_"<FillIntegratedFlowPOI(dVn4thPOI,0.);//to be improved (errors) - cout<<" v_"<GetBinEntries(bb)>0.&&vn2!=0) - { - //secondOrderQCumulantDiffFlowEtaPOI = fbinEta2p1n1nPOI->GetBinContent(bb); // without weights - secondOrderQCumulantDiffFlowEtaPOI = fbinWEta2p1n1nPOI->GetBinContent(bb); // with weights - fDiffRes2nd->SetBinContent(bb,secondOrderQCumulantDiffFlowEtaPOI/vn2); - //common histogram: - fchr2nd->FillDifferentialFlowEtaPOI(bb,secondOrderQCumulantDiffFlowEtaPOI/vn2, 0.);//to be improved (errors) - } - if(fbinWEta4p1n1n1n1nPOI->GetBinEntries(bb)>0.&&vn4!=0.) - { - //fourthOrderQCumulantDiffFlowEtaPOI = fbinEta4p1n1n1n1nPOI->GetBinContent(bb)-2.*fbinEta2p1n1nPOI->GetBinContent(bb)*pow(vn2,2.); // without weights - fourthOrderQCumulantDiffFlowEtaPOI = fbinWEta4p1n1n1n1nPOI->GetBinContent(bb)-2.*fbinWEta2p1n1nPOI->GetBinContent(bb)*pow(vn2,2.); // with weights - fDiffRes4th->SetBinContent(bb,-1.*fourthOrderQCumulantDiffFlowEtaPOI/pow(vn4,3.)); - //common histogram: - fchr4th->FillDifferentialFlowEtaPOI(bb,-1.*fourthOrderQCumulantDiffFlowEtaPOI/pow(vn4,3.), 0.);//to be improved (errors) - } -} - - - -//--------------------------------------------------------------------------------------------------------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Bool_t bNestedLoopsResults=kFALSE; -if(bNestedLoopsResults) -{ - //needed for direct correlations (obtained from nested loops) - cout< from Q-vectors = "<GetBinContent(1)< from nested loops = "<GetBinContent(1)< from Q-vectors = "<GetBinContent(2)< from nested loops = "<GetBinContent(2)< from Q-vectors = "<GetBinContent(3)< from nested loops = "<GetBinContent(3)< from Q-vectors = "<GetBinContent(4)< from nested loops = "<GetBinContent(4)< from Q-vectors = "<GetBinContent(5)< from nested loops = "<GetBinContent(5)< from Q-vectors = "<GetBinContent(6)< from nested loops = "<GetBinContent(6)< from Q-vectors = "<GetBinContent(11)< from nested loops = "<GetBinContent(11)< from Q-vectors = "<GetBinContent(21)< from nested loops = "<GetBinContent(21)<_{4n,2n,2n} from Q-vectors = "<GetBinContent(8)<_{4n,2n,2n} from nested loops = "<GetBinContent(8)<_{4n,3n,n} from Q-vectors = "<GetBinContent(9)<_{4n,3n,n} from nested loops = "<GetBinContent(9)<_{2n,n|2n,n} from Q-vectors = "<GetBinContent(12)<_{2n,n|2n,n} from nested loops = "<GetBinContent(12)<_{2n,2n|2n,2n} from Q-vectors = "<GetBinContent(13)<_{2n,2n|2n,2n} from nested loops = "<GetBinContent(13)<_{3n|n,n,n} from Q-vectors = "<GetBinContent(14)<_{3n|n,n,n} from nested loops = "<GetBinContent(14)<_{3n,n|3n,n} from Q-vectors = "<GetBinContent(15)<_{3n,n|3n,n} from nested loops = "<GetBinContent(15)<_{3n,n|2n,2n} from Q-vectors = "<GetBinContent(16)<_{3n,n|2n,2n} from nested loops = "<GetBinContent(16)<_{4n|2n,n,n} from Q-vectors = "<GetBinContent(17)<_{4n|2n,n,n} from nested loops = "<GetBinContent(17)<_{2n,n|n,n,n} from Q-vectors = "<GetBinContent(19)<_{2n,n|n,n,n} from nested loops = "<GetBinContent(19)<_{2n,2n|2n,n,n} from Q-vectors = "<GetBinContent(20)<_{2n,2n|2n,n,n} from nested loops = "<GetBinContent(20)<_{3n,n|2n,n,n} from Q-vectors = "<GetBinContent(21)<_{3n,n|2n,n,n} from nested loops = "<GetBinContent(21)<_{4n|n,n,n,n} from Q-vectors = "<GetBinContent(22)<_{4n|n,n,n,n} from nested loops = "<GetBinContent(22)<_{n,n,n|n,n,n} from Q-vectors = "<GetBinContent(24)<_{n,n,n|n,n,n} from nested loops = "<GetBinContent(24)<_{2n,n,n|2n,n,n} from Q-vectors = "<GetBinContent(25)<_{2n,n,n|2n,n,n} from nested loops = "<GetBinContent(25)<_{2n,2n|n,n,n,n} from Q-vectors = "<GetBinContent(26)<_{2n,2n|n,n,n,n} from nested loops = "<GetBinContent(26)<_{3n,n|n,n,n,n} from Q-vectors = "<GetBinContent(27)<_{3n,n|n,n,n,n} from nested loops = "<GetBinContent(27)<_{2n,n,n|n,n,n,n} from Q-vectors = "<GetBinContent(29)<_{2n,n,n|n,n,n,n} from nested loops = "<GetBinContent(29)<_{n,n,n,n|n,n,n,n} from Q-vectors = "<GetBinContent(31)<_{n,n,n,n|n,n,n,n} from nested loops = "<GetBinContent(31)<_{n|n} - //42nd bin: <2'>_{2n|2n} - //46th bin: <3'>_{2n|n,n} - //47th bin: <3'>_{n,n|2n} - //51st bin: <4'>_{n,n|n,n} - - cout<_{n|n} from Q-vectors = "<GetBinContent(6)<_{n|n} from nested loops = "<GetBinContent(101)< from Q-vectors = "<GetBinContent(6)< from nested loops = "<GetBinContent(121)<_{2n|2n} from Q-vectors = "<GetBinContent(6)<_{2n|2n} from nested loops = "<GetBinContent(42)<_{n,n|2n} from Q-vectors = "<GetBinContent(6)<_{n,n|2n} from nested loops = "<GetBinContent(47)<_{2n,n|n,n,n} from Q-vectors = "<_{2n,n|n,n,n} from nested loops = "<GetBinContent(56)<_{n,n,n|n,n,n} from Q-vectors = "<_{n,n,n|n,n,n} from nested loops = "<GetBinContent(61)<_{2n,n,n|n,n,n,n} from Q-vectors = "<_{2n,n,n|n,n,n,n} from nested loops = "<GetBinContent(66)<_{n,n,n,n|n,n,n,n} from Q-vectors = "<_{n,n,n,n|n,n,n,n} from nested loops = "<GetBinContent(71)<-<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 *fQCorrW; //weighted 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 *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 - - - - - - - TProfile *fbinWPt2p1n1nPOI; //<<2'>>_{n|n} per pt-bin - TProfile *fbinWPt2p2n2nPOI; //<<2'>>_{2n|2n} per pt-bin - TProfile *fbinWPt3p2n1n1nPOI; //<<3'>>_{2n,n|n} per pt-bin - TProfile *fbinWPt3p1n1n2nPOI; //<<3'>>_{n,n|2n} per pt-bin - TProfile *fbinWPt4p1n1n1n1nPOI; //<<4'>>_{n,n|n,n} per pt-bin - - TProfile *fbinWEta2p1n1nPOI; //<<2'>>_{n|n} per pt-bin - TProfile *fbinWEta4p1n1n1n1nPOI; //<<4'>>_{n,n|n,n} per pt-bin - - TProfile *fbinWPt2p1n1nRP; //<<2'>>_{n|n} per pt-bin - TProfile *fbinWPt4p1n1n1n1nRP; //<<4'>>_{n,n|n,n} per pt-bin - - TProfile *fbinWEta2p1n1nRP; //<<2'>>_{n|n} per pt-bin - TProfile *fbinWEta4p1n1n1n1nRP; //<<4'>>_{n,n|n,n} per pt-bin - - - - - - - AliFlowCommonHist *fch2nd; //common control histograms (taking into account only the events with 2 and more particles) - AliFlowCommonHist *fch4th; //common control histograms (taking into account only the events with 4 and more particles) - AliFlowCommonHist *fch6th; //common control histograms (taking into account only the events with 6 and more particles) - AliFlowCommonHist *fch8th; //common control histograms (taking into account only the events with 8 and more particles) - - 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 - AliFlowCommonHistResults *fchr6th; //final results for 6th order int. and diff. flow stored in the common histograms - AliFlowCommonHistResults *fchr8th; //final results for 8th order int. and diff. flow stored in the common histograms - - ClassDef(AliQCumulantsFunctions, 0); -}; - -//================================================================================================================ - -#endif - - - - - diff --git a/PWG2/FLOW/AliFlowTasks/AliAnalysisTaskQCumulants.cxx b/PWG2/FLOW/AliFlowTasks/AliAnalysisTaskQCumulants.cxx index 6f31882558e..61b2a684b0c 100644 --- a/PWG2/FLOW/AliFlowTasks/AliAnalysisTaskQCumulants.cxx +++ b/PWG2/FLOW/AliFlowTasks/AliAnalysisTaskQCumulants.cxx @@ -47,7 +47,6 @@ #include "AliFlowCommonConstants.h" #include "AliFlowCommonHist.h" #include "AliFlowCommonHistResults.h" -#include "AliQCumulantsFunctions.h" ClassImp(AliAnalysisTaskQCumulants) @@ -57,6 +56,7 @@ AliAnalysisTaskQCumulants::AliAnalysisTaskQCumulants(const char *name, Bool_t us AliAnalysisTask(name,""), fEvent(NULL), fQCA(NULL), // Q-cumulant Analysis (QCA) object + fListHistos(NULL), fUseWeights(useWeights), fUsePhiWeights(kFALSE), fUsePtWeights(kFALSE), @@ -219,77 +219,43 @@ void AliAnalysisTaskQCumulants::Terminate(Option_t *) //xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx //multi-particle correlations calculated from Q-vectors - TProfile *QCorrelations = dynamic_cast(fListHistos->FindObject("fQCorrelations")); + TProfile *qCorrelations = dynamic_cast(fListHistos->FindObject("fQCorrelations")); //weighted multi-particle correlations calculated from Q-vectors - TProfile *QCorrelationsW = dynamic_cast(fListHistos->FindObject("fQCorrelationsW")); + TProfile *weightedQCorrelations = dynamic_cast(fListHistos->FindObject("fWeightedQCorrelations")); //average of products: 1st bin: <2*4>, 2nd bin: <2*6>, ... TProfile *QProduct = dynamic_cast(fListHistos->FindObject("fQProduct")); - //average 2-, 3- and 4-particle correlations per pt-bin + //average 2- and 4-particle correlations per pt-bin TProfile *binnedPt2p1n1nRP = dynamic_cast((dynamic_cast(fListHistos->FindObject("DifferentialFlow")))->FindObject("f2PerPtBin1n1nRP")); - TProfile *binnedPt2p2n2nRP = dynamic_cast((dynamic_cast(fListHistos->FindObject("DifferentialFlow")))->FindObject("f2PerPtBin2n2nRP")); - TProfile *binnedPt3p2n1n1nRP = dynamic_cast((dynamic_cast(fListHistos->FindObject("DifferentialFlow")))->FindObject("f3PerPtBin2n1n1nRP")); - TProfile *binnedPt3p1n1n2nRP = dynamic_cast((dynamic_cast(fListHistos->FindObject("DifferentialFlow")))->FindObject("f3PerPtBin1n1n2nRP")); TProfile *binnedPt4p1n1n1n1nRP = dynamic_cast((dynamic_cast(fListHistos->FindObject("DifferentialFlow")))->FindObject("f4PerPtBin1n1n1n1nRP")); - //average 2-, 3- and 4-particle correlations per eta-bin + //average 2- and 4-particle correlations per eta-bin TProfile *binnedEta2p1n1nRP = dynamic_cast((dynamic_cast(fListHistos->FindObject("DifferentialFlow")))->FindObject("f2PerEtaBin1n1nRP")); - TProfile *binnedEta2p2n2nRP = dynamic_cast((dynamic_cast(fListHistos->FindObject("DifferentialFlow")))->FindObject("f2PerEtaBin2n2nRP")); - TProfile *binnedEta3p2n1n1nRP = dynamic_cast((dynamic_cast(fListHistos->FindObject("DifferentialFlow")))->FindObject("f3PerEtaBin2n1n1nRP")); - TProfile *binnedEta3p1n1n2nRP = dynamic_cast((dynamic_cast(fListHistos->FindObject("DifferentialFlow")))->FindObject("f3PerEtaBin1n1n2nRP")); TProfile *binnedEta4p1n1n1n1nRP = dynamic_cast((dynamic_cast(fListHistos->FindObject("DifferentialFlow")))->FindObject("f4PerEtaBin1n1n1n1nRP")); - //average 2-, 3- and 4-particle correlations per pt-bin + //average 2- and 4-particle correlations per pt-bin TProfile *binnedPt2p1n1nPOI = dynamic_cast((dynamic_cast(fListHistos->FindObject("DifferentialFlow")))->FindObject("f2PerPtBin1n1nPOI")); - TProfile *binnedPt2p2n2nPOI = dynamic_cast((dynamic_cast(fListHistos->FindObject("DifferentialFlow")))->FindObject("f2PerPtBin2n2nPOI")); - TProfile *binnedPt3p2n1n1nPOI = dynamic_cast((dynamic_cast(fListHistos->FindObject("DifferentialFlow")))->FindObject("f3PerPtBin2n1n1nPOI")); - TProfile *binnedPt3p1n1n2nPOI = dynamic_cast((dynamic_cast(fListHistos->FindObject("DifferentialFlow")))->FindObject("f3PerPtBin1n1n2nPOI")); TProfile *binnedPt4p1n1n1n1nPOI = dynamic_cast((dynamic_cast(fListHistos->FindObject("DifferentialFlow")))->FindObject("f4PerPtBin1n1n1n1nPOI")); - //average 2-, 3- and 4-particle correlations per eta-bin + //average 2- and 4-particle correlations per eta-bin TProfile *binnedEta2p1n1nPOI = dynamic_cast((dynamic_cast(fListHistos->FindObject("DifferentialFlow")))->FindObject("f2PerEtaBin1n1nPOI")); - TProfile *binnedEta2p2n2nPOI = dynamic_cast((dynamic_cast(fListHistos->FindObject("DifferentialFlow")))->FindObject("f2PerEtaBin2n2nPOI")); - TProfile *binnedEta3p2n1n1nPOI = dynamic_cast((dynamic_cast(fListHistos->FindObject("DifferentialFlow")))->FindObject("f3PerEtaBin2n1n1nPOI")); - TProfile *binnedEta3p1n1n2nPOI = dynamic_cast((dynamic_cast(fListHistos->FindObject("DifferentialFlow")))->FindObject("f3PerEtaBin1n1n2nPOI")); TProfile *binnedEta4p1n1n1n1nPOI = dynamic_cast((dynamic_cast(fListHistos->FindObject("DifferentialFlow")))->FindObject("f4PerEtaBin1n1n1n1nPOI")); - - - //average 2-, 3- and 4-particle correlations per pt-bin + //average 2- and 4-particle correlations per pt-bin TProfile *binnedWPt2p1n1nPOI = dynamic_cast((dynamic_cast(fListHistos->FindObject("DifferentialFlow")))->FindObject("f2WPerPtBin1n1nPOI")); - TProfile *binnedWPt2p2n2nPOI = dynamic_cast((dynamic_cast(fListHistos->FindObject("DifferentialFlow")))->FindObject("f2WPerPtBin2n2nPOI")); - TProfile *binnedWPt3p2n1n1nPOI = dynamic_cast((dynamic_cast(fListHistos->FindObject("DifferentialFlow")))->FindObject("f3WPerPtBin2n1n1nPOI")); - TProfile *binnedWPt3p1n1n2nPOI = dynamic_cast((dynamic_cast(fListHistos->FindObject("DifferentialFlow")))->FindObject("f3WPerPtBin1n1n2nPOI")); TProfile *binnedWPt4p1n1n1n1nPOI = dynamic_cast((dynamic_cast(fListHistos->FindObject("DifferentialFlow")))->FindObject("f4WPerPtBin1n1n1n1nPOI")); - - cout<GetName()<((dynamic_cast(fListHistos->FindObject("DifferentialFlow")))->FindObject("f2WPerEtaBin1n1nPOI")); - + + TProfile *binnedWEta2p1n1nPOI = dynamic_cast((dynamic_cast(fListHistos->FindObject("DifferentialFlow")))->FindObject("f2WPerEtaBin1n1nPOI")); TProfile *binnedWEta4p1n1n1n1nPOI = dynamic_cast((dynamic_cast(fListHistos->FindObject("DifferentialFlow")))->FindObject("f4WPerEtaBin1n1n1n1nPOI")); - TProfile *binnedWPt2p1n1nRP = dynamic_cast((dynamic_cast(fListHistos->FindObject("DifferentialFlow")))->FindObject("f2WPerPtBin1n1nRP")); - TProfile *binnedWPt4p1n1n1n1nRP = dynamic_cast((dynamic_cast(fListHistos->FindObject("DifferentialFlow")))->FindObject("f4WPerPtBin1n1n1n1nRP")); TProfile *binnedWEta2p1n1nRP = dynamic_cast((dynamic_cast(fListHistos->FindObject("DifferentialFlow")))->FindObject("f2WPerEtaBin1n1nRP")); - TProfile *binnedWEta4p1n1n1n1nRP = dynamic_cast((dynamic_cast(fListHistos->FindObject("DifferentialFlow")))->FindObject("f4WPerEtaBin1n1n1n1nRP")); - - - - - - //average values of Q-vector components (1st bin: , 2nd bin: , 3rd bin: <(Q_x)^2>, 4th bin: <(Q_y)^2>) TProfile *QVectorComponents = dynamic_cast(fListHistos->FindObject("fQvectorComponents")); @@ -321,43 +287,24 @@ void AliAnalysisTaskQCumulants::Terminate(Option_t *) fQCA->SetQvectorForEachEventX(qvectorForEachEventX); fQCA->SetQvectorForEachEventY(qvectorForEachEventY); //xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx - fQCA->SetQCorrelations(QCorrelations); - fQCA->SetQCorrelationsW(QCorrelationsW); + fQCA->SetQCorrelations(qCorrelations); + fQCA->SetWeightedQCorrelations(weightedQCorrelations); fQCA->SetQProduct(QProduct); fQCA->SetQVectorComponents(QVectorComponents); 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->SetTwo1n1nWPerPtBinPOI(binnedWPt2p1n1nPOI); - fQCA->SetTwo2n2nWPerPtBinPOI(binnedWPt2p2n2nPOI); - fQCA->SetThree2n1n1nWPerPtBinPOI(binnedWPt3p2n1n1nPOI); - fQCA->SetThree1n1n2nWPerPtBinPOI(binnedWPt3p1n1n2nPOI); fQCA->SetFour1n1n1n1nWPerPtBinPOI(binnedWPt4p1n1n1n1nPOI); fQCA->SetTwo1n1nWPerEtaBinPOI(binnedWEta2p1n1nPOI); @@ -369,12 +316,6 @@ void AliAnalysisTaskQCumulants::Terminate(Option_t *) fQCA->SetTwo1n1nWPerEtaBinRP(binnedWEta2p1n1nRP); fQCA->SetFour1n1n1n1nWPerEtaBinRP(binnedWEta4p1n1n1n1nRP); - - - - - - fQCA->SetDirectCorrelations(DirectCorrelations); fQCA->Finish(); diff --git a/PWG2/FLOW/macros/runFlowAnalysis.C b/PWG2/FLOW/macros/runFlowAnalysis.C index a933296240e..0335c4de67e 100644 --- a/PWG2/FLOW/macros/runFlowAnalysis.C +++ b/PWG2/FLOW/macros/runFlowAnalysis.C @@ -489,7 +489,6 @@ void LoadLibraries(const anaModes mode) { // Functions needed for various methods gROOT->LoadMacro("AliFlowCommon/AliCumulantsFunctions.cxx+"); - gROOT->LoadMacro("AliFlowCommon/AliQCumulantsFunctions.cxx+"); gROOT->LoadMacro("AliFlowCommon/AliFittingFunctionsForQDistribution.cxx+"); gROOT->LoadMacro("AliFlowCommon/AliFlowLYZEventPlane.cxx+"); diff --git a/PWG2/PWG2flowCommonLinkDef.h b/PWG2/PWG2flowCommonLinkDef.h index 3c5e56bade4..e503eb0a62d 100644 --- a/PWG2/PWG2flowCommonLinkDef.h +++ b/PWG2/PWG2flowCommonLinkDef.h @@ -20,7 +20,6 @@ #pragma link C++ class AliFlowLYZHist2+; #pragma link C++ class AliCumulantsFunctions+; -#pragma link C++ class AliQCumulantsFunctions+; #pragma link C++ class AliFittingFunctionsForQDistribution+; #pragma link C++ class AliFlowLYZEventPlane+; diff --git a/PWG2/libPWG2flowCommon.pkg b/PWG2/libPWG2flowCommon.pkg index 25497bb1f4d..44310bfc661 100644 --- a/PWG2/libPWG2flowCommon.pkg +++ b/PWG2/libPWG2flowCommon.pkg @@ -20,7 +20,6 @@ SRCS= FLOW/AliFlowCommon/AliFlowEventSimple.cxx \ FLOW/AliFlowCommon/AliFlowAnalysisWithQCumulants.cxx \ FLOW/AliFlowCommon/AliFittingQDistribution.cxx \ FLOW/AliFlowCommon/AliCumulantsFunctions.cxx \ - FLOW/AliFlowCommon/AliQCumulantsFunctions.cxx \ FLOW/AliFlowCommon/AliFittingFunctionsForQDistribution.cxx HDRS= $(SRCS:.cxx=.h) -- 2.43.5