23 #define AliFlowAnalysisCRC_cxx
25 #include "Riostream.h"
34 #include "TParticle.h"
38 #include "TProfile2D.h"
39 #include "TProfile3D.h"
42 #include "TPaveLabel.h"
52 #include "THnSparse.h"
84 fBookOnlyBasicCCH(kTRUE),
86 fCommonHists2nd(NULL),
87 fCommonHists4th(NULL),
88 fCommonHists6th(NULL),
89 fCommonHists8th(NULL),
90 fCommonHistsResults2nd(NULL),
91 fCommonHistsResults4th(NULL),
92 fCommonHistsResults6th(NULL),
93 fCommonHistsResults8th(NULL),
106 fCommonConstants(NULL),
107 fFillMultipleControlHistograms(kFALSE),
109 fAnalysisLabel(NULL),
111 fUsePhiWeights(kFALSE),
112 fUsePtWeights(kFALSE),
113 fUseEtaWeights(kFALSE),
114 fUseTrackWeights(kFALSE),
115 fUsePhiEtaWeights(kFALSE),
116 fUseZDCESEMulWeights(kFALSE),
117 fUseZDCESESpecWeights(kFALSE),
118 fUseParticleWeights(NULL),
120 fMultiplicityWeight(NULL),
124 fIntFlowProfiles(NULL),
125 fIntFlowResults(NULL),
126 fIntFlowAllCorrelationsVsM(NULL),
128 fApplyCorrectionForNUA(kFALSE),
129 fApplyCorrectionForNUAVsM(kFALSE),
133 fPropagateErrorAlsoFromNIT(kFALSE),
134 fCalculateCumulantsVsM(kFALSE),
135 fCalculateAllCorrelationsVsM(kFALSE),
136 fMinimumBiasReferenceFlow(kTRUE),
137 fForgetAboutCovariances(kFALSE),
138 fStoreVarious(kFALSE),
140 fUse2DHistograms(kFALSE),
141 fFillProfilesVsMUsingWeights(kTRUE),
142 fUseQvectorTerms(kFALSE),
146 fIntFlowCorrelationsEBE(NULL),
147 fIntFlowEventWeightsForCorrelationsEBE(NULL),
148 fIntFlowCorrelationsAllEBE(NULL),
150 fNumberOfPOIsEBE(0.),
151 fReferenceMultiplicityEBE(0.),
153 fNewCentralityEBE(0.),
159 fCentralityCL1EBE(0.),
161 fCentralityTRKEBE(0.),
165 fAvMultiplicity(NULL),
166 fIntFlowCorrelationsPro(NULL),
167 fIntFlowSquaredCorrelationsPro(NULL),
168 fIntFlowCorrelationsAllPro(NULL),
169 fIntFlowExtraCorrelationsPro(NULL),
170 fIntFlowProductOfCorrelationsPro(NULL),
171 fIntFlowProductOfCorrectionTermsForNUAPro(NULL),
172 fIntFlowCorrelationsHist(NULL),
173 fIntFlowCorrelationsAllHist(NULL),
174 fIntFlowCovariances(NULL),
175 fIntFlowSumOfProductOfEventWeights(NULL),
176 fIntFlowCovariancesNUA(NULL),
177 fIntFlowSumOfProductOfEventWeightsNUA(NULL),
178 fIntFlowQcumulants(NULL),
179 fIntFlowQcumulantsRebinnedInM(NULL),
180 fIntFlowQcumulantsErrorSquaredRatio(NULL),
182 fIntFlowRebinnedInM(NULL),
183 fIntFlowDetectorBias(NULL),
186 fDiffFlowProfiles(NULL),
187 fDiffFlowResults(NULL),
189 fDiffFlowFlags(NULL),
190 fCalculateDiffFlow(kTRUE),
191 fCalculate2DDiffFlow(kFALSE),
192 fCalculateDiffFlowVsEta(kTRUE),
194 fOtherDiffCorrelatorsList(NULL),
196 fDistributionsList(NULL),
197 fDistributionsFlags(NULL),
198 fStoreDistributions(kFALSE),
199 fnBinsForCorrelations(10000),
201 fNestedLoopsList(NULL),
202 fEvaluateIntFlowNestedLoops(kFALSE),
203 fEvaluateDiffFlowNestedLoops(kFALSE),
204 fMaxAllowedMultiplicity(10),
205 fEvaluateNestedLoops(NULL),
206 fIntFlowDirectCorrelations(NULL),
207 fIntFlowExtraDirectCorrelations(NULL),
208 fCrossCheckInPtBinNo(10),
209 fCrossCheckInEtaBinNo(20),
210 fNoOfParticlesInBin(NULL),
211 fMixedHarmonicsNestedLoops(NULL),
213 fMixedHarmonicsList(NULL),
214 fMixedHarmonicsProfiles(NULL),
215 fMixedHarmonicsResults(NULL),
216 fMixedHarmonicsErrorPropagation(NULL),
217 fMixedHarmonicsFlags(NULL),
218 fCalculateMixedHarmonics(kFALSE),
219 fCalculateMixedHarmonicsVsM(kFALSE),
220 f2pCorrelations(NULL),
221 f3pCorrelations(NULL),
222 f4pCorrelations(NULL),
223 f5pCorrelations(NULL),
224 f6pCorrelations(NULL),
225 f7pCorrelations(NULL),
226 f8pCorrelations(NULL),
234 fMixedHarmonicProductOfEventWeights(NULL),
235 fMixedHarmonicProductOfCorrelations(NULL),
237 fControlHistogramsList(NULL),
238 fControlHistogramsFlags(NULL),
239 fStoreControlHistograms(kFALSE),
240 fCorrelationNoRPsVsRefMult(NULL),
241 fCorrelationNoPOIsVsRefMult(NULL),
242 fCorrelationNoRPsVsNoPOIs(NULL),
244 fBootstrapList(NULL),
245 fBootstrapProfilesList(NULL),
246 fBootstrapResultsList(NULL),
247 fBootstrapFlags(NULL),
248 fUseBootstrap(kFALSE),
249 fUseBootstrapVsM(kFALSE),
252 fBootstrapCorrelations(NULL),
253 fBootstrapCumulants(NULL),
258 fCalculateCRC(kTRUE),
259 fCalculateCRCPt(kFALSE),
260 fCalculateCME(kFALSE),
261 fCalculateCRC2(kFALSE),
262 fCalculateCRCVZ(kFALSE),
263 fCalculateCRCZDC(kFALSE),
264 fCalculateFlowQC(kFALSE),
265 fCalculateFlowZDC(kFALSE),
266 fCalculateFlowVZ(kFALSE),
267 fCalculateEbEFlow(kFALSE),
268 fUsePhiEtaCuts(kFALSE),
271 fRecenterZDC(kFALSE),
273 fUseCRCRecenter(kFALSE),
283 fCorrWeightTPC(kUnit),
284 fCorrWeightVZ(kUnit),
285 fCorrWeightZDC(kUnit),
288 fCRCCenBinWidth(CenWidth),
289 fCRCIntRbRList(NULL),
294 fCRCQVecWeightsList(NULL),
295 fCRCZDCCalibList(NULL),
297 fPhiEtaCutsList(NULL),
301 fCRCZDCRbRList(NULL),
309 fFlowSPZDCList(NULL),
313 fFlowQCDeltaEta(0.4),
319 fQAZDCCutsFlag(kTRUE),
326 fHistList =
new TList();
327 fHistList->SetName(
"cobjQC");
328 fHistList->SetOwner(kTRUE);
331 fTempList =
new TList();
332 fTempList->SetName(
"temp");
333 fTempList->SetOwner(kTRUE);
336 fMultiplicityWeight =
new TString(
"combinations");
339 fAnalysisLabel =
new TString();
342 this->InitializeArraysForIntFlow();
343 this->InitializeArraysForDiffFlow();
344 this->InitializeArraysForDistributions();
345 this->InitializeArraysForVarious();
346 this->InitializeArraysForNestedLoops();
347 this->InitializeArraysForMixedHarmonics();
348 this->InitializeArraysForControlHistograms();
349 this->InitializeArraysForBootstrap();
354 this->InitializeCostantsForCRC();
355 this->InitializeArraysForParticleWeights();
356 this->InitializeArraysForCRC();
357 this->InitializeArraysForCRCVZ();
358 this->InitializeArraysForCRCZDC();
359 this->InitializeArraysForCRC2();
360 this->InitializeArraysForQVec();
361 this->InitializeArraysForCRCPt();
362 this->InitializeArraysForCME();
363 this->InitializeArraysForFlowEbE();
364 this->InitializeArraysForFlowQC();
365 this->InitializeArraysForFlowQCHighOrders();
366 this->InitializeArraysForFlowSPZDC();
367 this->InitializeArraysForFlowSPVZ();
368 this->InitializeArraysForEbEFlow();
409 Bool_t oldHistAddStatus = TH1::AddDirectoryStatus();
410 TH1::AddDirectory(kFALSE);
463 TH1::AddDirectory(oldHistAddStatus);
504 Int_t nCounterNoRPs = 0;
539 if(fRunBin<0 || fRunBin>=
fCRCnRun) {
return;}
541 if(fCenBin<0 || fCenBin>=
fCRCnCen) {
return;}
589 AliWarning(Form(
"WARNING: cenphieta weights not found for run %d! \n",
fRunNum));
596 AliWarning(Form(
"WARNING: cenphieta cut not found for run %d! \n",
fRunNum));
612 for(
Int_t i=0;i<nPrim;i++) {
622 dPhi = aftsTrack->
Phi();
623 dPt = aftsTrack->
Pt();
624 dEta = aftsTrack->
Eta();
651 for(
Int_t m=0;m<12;m++)
653 for(
Int_t k=0;k<9;k++)
655 (*fReQ)(m,k)+=pow(wPhiEta*wPhi*wPt*wEta*wTrack,k)*TMath::Cos((m+1)*n*dPhi);
656 (*fImQ)(m,k)+=pow(wPhiEta*wPhi*wPt*wEta*wTrack,k)*TMath::Sin((m+1)*n*dPhi);
660 for(
Int_t p=0;p<8;p++)
662 for(
Int_t k=0;k<9;k++)
664 (*fSpk)(p,k)+=pow(wPhiEta*wPhi*wPt*wEta*wTrack,k);
673 for(
Int_t k=0;k<9;k++)
675 for(
Int_t m=0;m<4;m++)
681 fReRPQ1dEBE[0][pe][m][k]->Fill(ptEta[pe],pow(wPhiEta*wPhi*wPt*wEta*wTrack,k)*TMath::Cos((m+1.)*n*dPhi),1.);
682 fImRPQ1dEBE[0][pe][m][k]->Fill(ptEta[pe],pow(wPhiEta*wPhi*wPt*wEta*wTrack,k)*TMath::Sin((m+1.)*n*dPhi),1.);
685 fs1dEBE[0][pe][k]->Fill(ptEta[pe],pow(wPhiEta*wPhi*wPt*wEta*wTrack,k),1.);
691 fReRPQ2dEBE[0][m][k]->Fill(dPt,dEta,pow(wPhiEta*wPhi*wPt*wEta*wTrack,k)*TMath::Cos((m+1.)*n*dPhi),1.);
692 fImRPQ2dEBE[0][m][k]->Fill(dPt,dEta,pow(wPhiEta*wPhi*wPt*wEta*wTrack,k)*TMath::Sin((m+1.)*n*dPhi),1.);
695 fs2dEBE[0][k]->Fill(dPt,dEta,pow(wPhiEta*wPhi*wPt*wEta*wTrack,k),1.);
704 for(
Int_t k=0;k<9;k++)
706 for(
Int_t m=0;m<4;m++)
712 fReRPQ1dEBE[2][pe][m][k]->Fill(ptEta[pe],pow(wPhiEta*wPhi*wPt*wEta*wTrack,k)*TMath::Cos((m+1.)*n*dPhi),1.);
713 fImRPQ1dEBE[2][pe][m][k]->Fill(ptEta[pe],pow(wPhiEta*wPhi*wPt*wEta*wTrack,k)*TMath::Sin((m+1.)*n*dPhi),1.);
716 fs1dEBE[2][pe][k]->Fill(ptEta[pe],pow(wPhiEta*wPhi*wPt*wEta*wTrack,k),1.);
722 fReRPQ2dEBE[2][m][k]->Fill(dPt,dEta,pow(wPhiEta*wPhi*wPt*wEta*wTrack,k)*TMath::Cos((m+1.)*n*dPhi),1.);
723 fImRPQ2dEBE[2][m][k]->Fill(dPt,dEta,pow(wPhiEta*wPhi*wPt*wEta*wTrack,k)*TMath::Sin((m+1.)*n*dPhi),1.);
726 fs2dEBE[2][k]->Fill(dPt,dEta,pow(wPhiEta*wPhi*wPt*wEta*wTrack,k),1.);
739 dPhi = aftsTrack->
Phi();
740 dPt = aftsTrack->
Pt();
741 dEta = aftsTrack->
Eta();
742 dCharge = aftsTrack->
Charge();
743 cw = (dCharge > 0. ? 0 : 1);
765 if(std::isfinite(1./wt)) wPhiEta *= 1./wt;
773 if(
fRandom->Uniform(1.)>wProbCut)
continue;
777 if(ptbin==-1)
continue;
784 for(
Int_t k=0;k<9;k++)
786 for(
Int_t m=0;m<4;m++)
792 fReRPQ1dEBE[1][pe][m][k]->Fill(ptEta[pe],pow(wPhiEta*wPhi*wPt*wEta*wTrack,k)*TMath::Cos((m+1.)*n*dPhi),1.);
793 fImRPQ1dEBE[1][pe][m][k]->Fill(ptEta[pe],pow(wPhiEta*wPhi*wPt*wEta*wTrack,k)*TMath::Sin((m+1.)*n*dPhi),1.);
798 fReRPQ2dEBE[1][m][k]->Fill(dPt,dEta,pow(wPhiEta*wPhi*wPt*wEta*wTrack,k)*TMath::Cos((m+1.)*n*dPhi),1.);
799 fImRPQ2dEBE[1][m][k]->Fill(dPt,dEta,pow(wPhiEta*wPhi*wPt*wEta*wTrack,k)*TMath::Sin((m+1.)*n*dPhi),1.);
807 fCRCQRe[cw][h]->Fill(dEta,wPhiEta*TMath::Cos((h+1.)*dPhi));
808 fCRCQIm[cw][h]->Fill(dEta,wPhiEta*TMath::Sin((h+1.)*dPhi));
809 fCRCMult[cw][h]->Fill(dEta,wPhiEta);
811 fCRC2QRe[cw][h]->Fill(dEta,wPhiEta*TMath::Cos((h+1.)*dPhi));
812 fCRC2QIm[cw][h]->Fill(dEta,wPhiEta*TMath::Sin((h+1.)*dPhi));
813 fCRC2Mul[cw][h]->Fill(dEta,wPhiEta);
815 fCRCZDCQRe[cw][h]->Fill(dEta,wPhiEta*TMath::Cos((h+1.)*dPhi));
816 fCRCZDCQIm[cw][h]->Fill(dEta,wPhiEta*TMath::Sin((h+1.)*dPhi));
820 fCRC2QRe[2][h]->Fill(dEta,wPhiEta*TMath::Cos((h+1.)*dPhi));
821 fCRC2QIm[2][h]->Fill(dEta,wPhiEta*TMath::Sin((h+1.)*dPhi));
826 fCRCZDCQRe[2][h]->Fill(dEta,wPhiEta*TMath::Cos((h+1.)*dPhi));
827 fCRCZDCQIm[2][h]->Fill(dEta,wPhiEta*TMath::Sin((h+1.)*dPhi));
830 fCRCZDCQRe[3][h]->Fill(dEta,wPhiEta*TMath::Cos((h+1.)*dPhi));
831 fCRCZDCQIm[3][h]->Fill(dEta,wPhiEta*TMath::Sin((h+1.)*dPhi));
839 if(weraw > 0.) SpecWeig = 1./weraw;
841 fCMEQRe[cw][h]->Fill(dEta,SpecWeig*wPhiEta*TMath::Cos((h+1.)*dPhi));
842 fCMEQIm[cw][h]->Fill(dEta,SpecWeig*wPhiEta*TMath::Sin((h+1.)*dPhi));
843 fCMEMult[cw][h]->Fill(dEta,SpecWeig*wPhiEta);
844 fCMEQRe[2+cw][h]->Fill(dEta,pow(SpecWeig*wPhiEta,2.)*TMath::Cos((h+1.)*dPhi));
845 fCMEQIm[2+cw][h]->Fill(dEta,pow(SpecWeig*wPhiEta,2.)*TMath::Sin((h+1.)*dPhi));
846 fCMEMult[2+cw][h]->Fill(dEta,pow(SpecWeig*wPhiEta,2.));
858 fPtDiffQRe[k][h]->Fill(dPt,pow(wPhiEta,k)*TMath::Cos((h+1.)*dPhi));
859 fPtDiffQIm[k][h]->Fill(dPt,pow(wPhiEta,k)*TMath::Sin((h+1.)*dPhi));
862 Int_t keta = (dEta<0.?0:1);
863 fPtDiffQReEG[keta][k][h]->Fill(dPt,pow(wPhiEta,k)*TMath::Cos((h+1.)*dPhi));
864 fPtDiffQImEG[keta][k][h]->Fill(dPt,pow(wPhiEta,k)*TMath::Sin((h+1.)*dPhi));
871 fEtaDiffQRe[cw][h]->Fill(dEta,wPhiEta*TMath::Cos((h+1.)*dPhi));
872 fEtaDiffQIm[cw][h]->Fill(dEta,wPhiEta*TMath::Sin((h+1.)*dPhi));
899 printf(
"\n WARNING (QC): No particle (i.e. aftsTrack is a NULL pointer in AFAWQC::Make())!!!!\n\n");
907 for(
Int_t p=0;p<8;p++)
909 for(
Int_t k=0;k<9;k++)
911 (*fSpk)(p,k)=pow((*
fSpk)(p,k),p+1);
1338 cout<<
"Skipping the event because multiplicity is "<<nPrim<<
". Too high to evaluate nested loops!"<<endl;
1342 cout<<
"Skipping the event because multiplicity is "<<nPrim<<
"."<<endl;
1478 cosP1n = dReQ1n/dMult;
1496 cosP1nP1n = (pow(dReQ1n,2)-pow(dImQ1n,2)-dReQ2n)/(dMult*(dMult-1));
1497 cosP2nM1n = (dReQ2n*dReQ1n+dImQ2n*dImQ1n-dReQ1n)/(dMult*(dMult-1));
1521 cosP1nM1nM1n = (dReQ1n*(pow(dReQ1n,2)+pow(dImQ1n,2))-dReQ1n*dReQ2n-dImQ1n*dImQ2n-2.*(dMult-1)*dReQ1n)
1522 / (dMult*(dMult-1)*(dMult-2));
1587 sinP1n = dImQ1n/dMult;
1604 sinP1nP1n = (2.*dReQ1n*dImQ1n-dImQ2n)/(dMult*(dMult-1));
1605 sinP2nM1n = (dImQ2n*dReQ1n-dReQ2n*dImQ1n-dImQ1n)/(dMult*(dMult-1));
1629 sinP1nM1nM1n = (-dImQ1n*(pow(dReQ1n,2)+pow(dImQ1n,2))+dReQ1n*dImQ2n-dImQ1n*dReQ2n+2.*(dMult-1)*dImQ1n)
1630 / (dMult*(dMult-1)*(dMult-2));
1660 if(outputListHistos)
1665 printf(
"\n WARNING (QC): fHistList is NULL in AFAWQC::GOH() !!!!\n\n");
1693 printf(
"\n WARNING (QC): outputListHistos is NULL in AFAWQC::GOH() !!!!\n\n");
1705 Int_t nBinsPt = profilePtEta->GetNbinsX();
1706 Double_t dPtMin = (profilePtEta->GetXaxis())->GetXmin();
1707 Double_t dPtMax = (profilePtEta->GetXaxis())->GetXmax();
1709 Int_t nBinsEta = profilePtEta->GetNbinsY();
1711 TProfile *profilePt =
new TProfile(
"",
"",nBinsPt,dPtMin,dPtMax);
1713 for(
Int_t p=1;p<=nBinsPt;p++)
1721 for(
Int_t e=1;e<=nBinsEta;e++)
1723 contentPt += (profilePtEta->GetBinContent(profilePtEta->GetBin(p,e)))
1724 * (profilePtEta->GetBinEntries(profilePtEta->GetBin(p,e)));
1725 entryPt += (profilePtEta->GetBinEntries(profilePtEta->GetBin(p,e)));
1727 sum1 += (profilePtEta->GetBinEntries(profilePtEta->GetBin(p,e)))
1728 * (pow(profilePtEta->GetBinError(profilePtEta->GetBin(p,e)),2.)
1729 + pow(profilePtEta->GetBinContent(profilePtEta->GetBin(p,e)),2.));
1730 sum2 += (profilePtEta->GetBinEntries(profilePtEta->GetBin(p,e)));
1731 sum3 += (profilePtEta->GetBinEntries(profilePtEta->GetBin(p,e)))
1732 * (profilePtEta->GetBinContent(profilePtEta->GetBin(p,e)));
1734 if(sum2>0. && sum1/sum2-pow(sum3/sum2,2.) > 0.)
1736 spreadPt = pow(sum1/sum2-pow(sum3/sum2,2.),0.5);
1738 profilePt->SetBinContent(p,contentPt);
1739 profilePt->SetBinEntries(p,entryPt);
1741 profilePt->SetBinError(p,spreadPt);
1758 Int_t nBinsEta = profilePtEta->GetNbinsY();
1759 Double_t dEtaMin = (profilePtEta->GetYaxis())->GetXmin();
1760 Double_t dEtaMax = (profilePtEta->GetYaxis())->GetXmax();
1762 Int_t nBinsPt = profilePtEta->GetNbinsX();
1764 TProfile *profileEta =
new TProfile(
"",
"",nBinsEta,dEtaMin,dEtaMax);
1766 for(
Int_t e=1;e<=nBinsEta;e++)
1770 for(
Int_t p=1;p<=nBinsPt;p++)
1772 contentEta += (profilePtEta->GetBinContent(profilePtEta->GetBin(p,e)))
1773 * (profilePtEta->GetBinEntries(profilePtEta->GetBin(p,e)));
1774 entryEta += (profilePtEta->GetBinEntries(profilePtEta->GetBin(p,e)));
1776 profileEta->SetBinContent(e,contentEta);
1777 profileEta->SetBinEntries(e,entryEta);
1797 for(
Int_t b=0;b<4;b++)
1808 }
else if(type ==
"RP")
1818 }
else if(type ==
"POI")
1830 for(
Int_t b=0;b<4;b++)
1839 TString subtitle2 =
" (rebinned in M)";
1841 if(type !=
"RF, rebinned in M")
1845 subtitle.Append(type);
1846 subtitle.Append(
", without weights)");
1849 subtitle.Append(type);
1850 subtitle.Append(
", with weights)");
1856 subtitle.Append(
"RF");
1857 subtitle.Append(
", without weights)");
1860 subtitle.Append(
"RF");
1861 subtitle.Append(
", with weights)");
1866 cout<<
"*************************************"<<endl;
1867 cout<<
"*************************************"<<endl;
1868 cout<<title.Data()<<endl;
1869 cout<<subtitle.Data()<<endl;
1870 if(type ==
"RF, rebinned in M"){cout<<subtitle2.Data()<<endl;}
1873 for(
Int_t i=0;i<4;i++)
1875 cout<<
" v_"<<n<<
"{"<<2*(i+1)<<
"} = "<<dVn[i]<<
" +/- "<<dVnErr[i]<<endl;
1883 cout<<
" detector bias (corrected for): "<<endl;
1886 cout<<
" detector bias (not corrected for):"<<endl;
1892 if(type ==
"RF" || type ==
"RF, rebinned in M")
1896 else if (type ==
"RP")
1900 else if (type ==
"POI")
1905 cout<<
"*************************************"<<endl;
1906 cout<<
"*************************************"<<endl;
1916 TFile *output =
new TFile(outputFileName.Data(),
"RECREATE");
1932 outputFileName->Write(outputFileName->GetName(), TObject::kSingleKey);
1945 TString commonHistsName =
"AliFlowCommonHistQC";
1953 TString commonHists2ndOrderName =
"AliFlowCommonHist2ndOrderQC";
1958 TString commonHists4thOrderName =
"AliFlowCommonHist4thOrderQC";
1963 TString commonHists6thOrderName =
"AliFlowCommonHist6thOrderQC";
1968 TString commonHists8thOrderName =
"AliFlowCommonHist8thOrderQC";
1976 TString commonHistResults2ndOrderName =
"AliFlowCommonHistResults2ndOrderQC";
1981 TString commonHistResults4thOrderName =
"AliFlowCommonHistResults4thOrderQC";
1986 TString commonHistResults6thOrderName =
"AliFlowCommonHistResults6thOrderQC";
1991 TString commonHistResults8thOrderName =
"AliFlowCommonHistResults8thOrderQC";
2006 printf(
"\n WARNING (QC): fWeightsList is NULL in AFAWQC::BAFWH() !!!! \n\n");
2010 TString fUseParticleWeightsName =
"fUseParticleWeightsQC";
2012 fUseParticleWeights =
new TProfile(fUseParticleWeightsName.Data(),
"0 = particle weight not used, 1 = particle weight used ",5,0,5);
2199 TF1 *CenFit =
new TF1(
"CenFit",
"pol0", 0., 100.);
2202 Double_t CenAv = CenFit->GetParameter(0);
2214 Double_t CenAv = CenFit->GetParameter(0);
2216 Double_t SemiCenAv = CenFit->GetParameter(0);
2242 TString sinCosFlag[2] = {
"sin",
"cos"};
2243 TString powerFlag[2] = {
"linear",
"quadratic"};
2246 TString intFlowFlagsName =
"fIntFlowFlags";
2248 fIntFlowFlags =
new TProfile(intFlowFlagsName.Data(),
"Flags for Integrated Flow",20,0.,20.);
2254 fIntFlowFlags->GetXaxis()->SetBinLabel(1,
"Particle Weights");
2256 fIntFlowFlags->GetXaxis()->SetBinLabel(3,
"Corrected for NUA?");
2257 fIntFlowFlags->GetXaxis()->SetBinLabel(4,
"Print RF results");
2258 fIntFlowFlags->GetXaxis()->SetBinLabel(5,
"Print RP results");
2259 fIntFlowFlags->GetXaxis()->SetBinLabel(6,
"Print POI results");
2260 fIntFlowFlags->GetXaxis()->SetBinLabel(7,
"Print RF (rebinned in M) results");
2261 fIntFlowFlags->GetXaxis()->SetBinLabel(8,
"Corrected for NUA vs M?");
2262 fIntFlowFlags->GetXaxis()->SetBinLabel(9,
"Propagate errors to v_{n} from correlations?");
2263 fIntFlowFlags->GetXaxis()->SetBinLabel(10,
"Calculate cumulants vs M");
2264 fIntFlowFlags->GetXaxis()->SetBinLabel(11,
"fMinimumBiasReferenceFlow");
2265 fIntFlowFlags->GetXaxis()->SetBinLabel(12,
"fForgetAboutCovariances");
2267 fIntFlowFlags->GetXaxis()->SetBinLabel(14,
"fFillMultipleControlHistograms");
2268 fIntFlowFlags->GetXaxis()->SetBinLabel(15,
"Calculate all correlations vs M");
2269 fIntFlowFlags->GetXaxis()->SetBinLabel(16,
"fMultiplicityIs");
2271 fIntFlowFlags->GetXaxis()->SetBinLabel(18,
"fUse2DHistograms");
2272 fIntFlowFlags->GetXaxis()->SetBinLabel(19,
"fFillProfilesVsMUsingWeights");
2273 fIntFlowFlags->GetXaxis()->SetBinLabel(20,
"fUseQvectorTerms");
2278 fReQ =
new TMatrixD(12,9);
2279 fImQ =
new TMatrixD(12,9);
2280 fSpk =
new TMatrixD(8,9);
2282 TString intFlowCorrelationsEBEName =
"fIntFlowCorrelationsEBE";
2286 TString intFlowEventWeightsForCorrelationsEBEName =
"fIntFlowEventWeightsForCorrelationsEBE";
2287 intFlowEventWeightsForCorrelationsEBEName +=
fAnalysisLabel->Data();
2290 TString intFlowCorrelationsAllEBEName =
"fIntFlowCorrelationsAllEBE";
2295 TString fIntFlowCorrectionTermsForNUAEBEName =
"fIntFlowCorrectionTermsForNUAEBE";
2297 for(
Int_t sc=0;sc<2;sc++)
2299 fIntFlowCorrectionTermsForNUAEBE[sc] =
new TH1D(Form(
"%s: %s terms",fIntFlowCorrectionTermsForNUAEBEName.Data(),sinCosFlag[sc].Data()),Form(
"Correction terms for non-uniform acceptance (%s terms)",sinCosFlag[sc].
Data()),4,0,4);
2302 TString fIntFlowEventWeightForCorrectionTermsForNUAEBEName =
"fIntFlowEventWeightForCorrectionTermsForNUAEBE";
2303 fIntFlowEventWeightForCorrectionTermsForNUAEBEName +=
fAnalysisLabel->Data();
2304 for(
Int_t sc=0;sc<2;sc++)
2310 TString avMultiplicityName =
"fAvMultiplicity";
2312 fAvMultiplicity =
new TProfile(avMultiplicityName.Data(),
"Average multiplicities of reference particles (RPs)",9,0,9);
2329 TString correlationFlag[4] = {
"#LT#LT2#GT#GT",
"#LT#LT4#GT#GT",
"#LT#LT6#GT#GT",
"#LT#LT8#GT#GT"};
2330 TString intFlowCorrelationsProName =
"fIntFlowCorrelationsPro";
2332 fIntFlowCorrelationsPro =
new TProfile(intFlowCorrelationsProName.Data(),
"Average correlations for all events",4,0,4,
"s");
2338 for(
Int_t b=0;b<4;b++)
2344 TString squaredCorrelationFlag[4] = {
"#LT#LT2#GT^{2}#GT",
"#LT#LT4#GT^{2}#GT",
"#LT#LT6#GT^{2}#GT",
"#LT#LT8#GT^{2}#GT"};
2345 TString intFlowSquaredCorrelationsProName =
"fIntFlowSquaredCorrelationsPro";
2353 for(
Int_t b=0;b<4;b++)
2360 for(
Int_t ci=0;ci<4;ci++)
2363 TString intFlowCorrelationsVsMProName =
"fIntFlowCorrelationsVsMPro";
2365 fIntFlowCorrelationsVsMPro[ci] =
new TProfile(Form(
"%s, %s",intFlowCorrelationsVsMProName.Data(),correlationFlag[ci].Data()),
2366 Form(
"%s vs multiplicity",correlationFlag[ci].
Data()),
2382 TString intFlowSquaredCorrelationsVsMProName =
"fIntFlowSquaredCorrelationsVsMPro";
2385 Form(
"%s vs multiplicity",squaredCorrelationFlag[ci].
Data()),
2403 TString intFlowCorrelationsAllProName =
"fIntFlowCorrelationsAllPro";
2405 fIntFlowCorrelationsAllPro =
new TProfile(intFlowCorrelationsAllProName.Data(),
"Average all correlations for all events",64,0,64);
2511 fIntFlowCorrelationsAllVsMPro[30] =
new TProfile(
"eight1n1n1n1n1n1n1n1n",
"#LT#LT8#GT#GT_{n,n,n,n|n,n,n,n}",
fnBinsMult,
fMinMult,
fMaxMult);
2545 for(
Int_t n=0;n<63;n++)
2567 TString intFlowExtraCorrelationsProName =
"fIntFlowExtraCorrelationsPro";
2569 fIntFlowExtraCorrelationsPro =
new TProfile(intFlowExtraCorrelationsProName.Data(),
"Average extra correlations for all events",100,0,100,
"s");
2580 TString productFlag[6] = {
"#LT#LT2#GT#LT4#GT#GT",
"#LT#LT2#GT#LT6#GT#GT",
"#LT#LT2#GT#LT8#GT#GT",
2581 "#LT#LT4#GT#LT6#GT#GT",
"#LT#LT4#GT#LT8#GT#GT",
"#LT#LT6#GT#LT8#GT#GT"};
2582 TString intFlowProductOfCorrelationsProName =
"fIntFlowProductOfCorrelationsPro";
2589 for(
Int_t b=0;b<6;b++)
2598 TString intFlowProductOfCorrelationsVsMProName =
"fIntFlowProductOfCorrelationsVsMPro";
2599 intFlowProductOfCorrelationsVsMProName +=
fAnalysisLabel->Data();
2603 Form(
"%s versus multiplicity",productFlag[
pi].
Data()),
2619 TString intFlowProductOfCorrectionTermsForNUAProName =
"fIntFlowProductOfCorrectionTermsForNUAPro";
2620 intFlowProductOfCorrectionTermsForNUAProName +=
fAnalysisLabel->Data();
2655 for(
Int_t sc=0;sc<2;sc++)
2657 TString intFlowCorrectionTermsForNUAProName =
"fIntFlowCorrectionTermsForNUAPro";
2659 fIntFlowCorrectionTermsForNUAPro[sc] =
new TProfile(Form(
"%s: %s terms",intFlowCorrectionTermsForNUAProName.Data(),sinCosFlag[sc].Data()),Form(
"Correction terms for non-uniform acceptance (%s terms)",sinCosFlag[sc].
Data()),4,0,4,
"s");
2672 TString correctionTermFlag[4] = {
"(n(phi1))",
"(n(phi1+phi2))",
"(n(phi1-phi2-phi3))",
"(n(2phi1-phi2))"};
2673 for(
Int_t ci=0;ci<4;ci++)
2675 TString intFlowCorrectionTermsForNUAVsMProName =
"fIntFlowCorrectionTermsForNUAVsMPro";
2676 intFlowCorrectionTermsForNUAVsMProName +=
fAnalysisLabel->Data();
2677 fIntFlowCorrectionTermsForNUAVsMPro[sc][ci] =
new TProfile(Form(
"%s: #LT#LT%s%s#GT#GT",intFlowCorrectionTermsForNUAVsMProName.Data(),sinCosFlag[sc].Data(),correctionTermFlag[ci].Data()),Form(
"#LT#LT%s%s#GT#GT vs M",sinCosFlag[sc].
Data(),correctionTermFlag[ci].Data()),
fnBinsMult,
fMinMult,
fMaxMult,
"s");
2685 TString intFlowCorrelationsHistName =
"fIntFlowCorrelationsHist";
2700 for(
Int_t ci=0;ci<4;ci++)
2702 TString intFlowCorrelationsVsMHistName =
"fIntFlowCorrelationsVsMHist";
2705 Form(
"%s vs multiplicity",correlationFlag[ci].
Data()),
2722 TString intFlowCorrelationsAllHistName =
"fIntFlowCorrelationsAllHist";
2763 for(
Int_t sc=0;sc<2;sc++)
2765 TString intFlowCorrectionTermsForNUAHistName =
"fIntFlowCorrectionTermsForNUAHist";
2767 fIntFlowCorrectionTermsForNUAHist[sc] =
new TH1D(Form(
"%s: %s terms",intFlowCorrectionTermsForNUAHistName.Data(),sinCosFlag[sc].Data()),Form(
"Correction terms for non-uniform acceptance (%s terms)",sinCosFlag[sc].
Data()),4,0,4);
2779 TString intFlowCovariancesName =
"fIntFlowCovariances";
2781 fIntFlowCovariances =
new TH1D(intFlowCovariancesName.Data(),
"Covariances (multiplied with weight dependent prefactor)",6,0,6);
2792 TString intFlowSumOfEventWeightsName =
"fIntFlowSumOfEventWeights";
2794 for(
Int_t power=0;power<2;power++)
2796 fIntFlowSumOfEventWeights[power] =
new TH1D(Form(
"%s: %s",intFlowSumOfEventWeightsName.Data(),powerFlag[power].Data()),Form(
"Sum of %s event weights for correlations",powerFlag[power].
Data()),4,0,4);
2805 }
else if (power == 1)
2815 TString intFlowSumOfProductOfEventWeightsName =
"fIntFlowSumOfProductOfEventWeights";
2831 TString intFlowCovariancesVsMName =
"fIntFlowCovariancesVsM";
2833 TString covarianceFlag[6] = {
"Cov(<2>,<4>)",
"Cov(<2>,<6>)",
"Cov(<2>,<8>)",
"Cov(<4>,<6>)",
"Cov(<4>,<8>)",
"Cov(<6>,<8>)"};
2834 for(
Int_t ci=0;ci<6;ci++)
2837 Form(
"%s vs multiplicity",covarianceFlag[ci].
Data()),
2857 TString intFlowSumOfEventWeightsVsMName =
"fIntFlowSumOfEventWeightsVsM";
2859 TString sumFlag[2][4] = {{
"#sum_{i=1}^{N} w_{<2>}",
"#sum_{i=1}^{N} w_{<4>}",
"#sum_{i=1}^{N} w_{<6>}",
"#sum_{i=1}^{N} w_{<8>}"},
2860 {
"#sum_{i=1}^{N} w_{<2>}^{2}",
"#sum_{i=1}^{N} w_{<4>}^{2}",
"#sum_{i=1}^{N} w_{<6>}^{2}",
"#sum_{i=1}^{N} w_{<8>}^{2}"}};
2861 for(
Int_t si=0;si<4;si++)
2863 for(
Int_t power=0;power<2;power++)
2866 Form(
"%s vs multiplicity",sumFlag[power][si].
Data()),
2888 TString intFlowSumOfProductOfEventWeightsVsMName =
"fIntFlowSumOfProductOfEventWeightsVsM";
2889 intFlowSumOfProductOfEventWeightsVsMName +=
fAnalysisLabel->Data();
2890 TString sopowFlag[6] = {
"#sum_{i=1}^{N} w_{<2>} w_{<4>}",
"#sum_{i=1}^{N} w_{<2>} w_{<6>}",
"#sum_{i=1}^{N} w_{<2>} w_{<8>}",
2891 "#sum_{i=1}^{N} w_{<4>} w_{<6>}",
"#sum_{i=1}^{N} w_{<4>} w_{<8>}",
"#sum_{i=1}^{N} w_{<6>} w_{<8>}"};
2895 Form(
"%s versus multiplicity",sopowFlag[
pi].
Data()),
2912 TString intFlowCovariancesNUAName =
"fIntFlowCovariancesNUA";
2914 fIntFlowCovariancesNUA =
new TH1D(intFlowCovariancesNUAName.Data(),
"Covariances for NUA (multiplied with weight dependent prefactor)",27,0,27);
2933 (
fIntFlowCovariancesNUA->GetXaxis())->SetBinLabel(16,
"Cov(<cos(#phi)>,<cos(#phi_{1}-#phi_{2}-#phi_{3})>)");
2934 (
fIntFlowCovariancesNUA->GetXaxis())->SetBinLabel(17,
"Cov(<cos(#phi)>,<sin(#phi_{1}-#phi_{2}-#phi_{3})>)");
2937 (
fIntFlowCovariancesNUA->GetXaxis())->SetBinLabel(20,
"Cov(<sin(#phi)>,<cos(#phi_{1}-#phi_{2}-#phi_{3})>)");
2938 (
fIntFlowCovariancesNUA->GetXaxis())->SetBinLabel(21,
"Cov(<sin(#phi)>,<sin(#phi_{1}-#phi_{2}-#phi_{3})>)");
2939 (
fIntFlowCovariancesNUA->GetXaxis())->SetBinLabel(22,
"Cov(<cos(#phi_{1}+#phi_{2})>,<sin(#phi_{1}+#phi_{2})>)");
2940 (
fIntFlowCovariancesNUA->GetXaxis())->SetBinLabel(23,
"Cov(<cos(#phi_{1}+#phi_{2})>,<cos(#phi_{1}-#phi_{2}-#phi_{3})>)");
2941 (
fIntFlowCovariancesNUA->GetXaxis())->SetBinLabel(24,
"Cov(<cos(#phi_{1}+#phi_{2})>,<sin(#phi_{1}-#phi_{2}-#phi_{3})>)");
2942 (
fIntFlowCovariancesNUA->GetXaxis())->SetBinLabel(25,
"Cov(<sin(#phi_{1}+#phi_{2})>,<cos(#phi_{1}-#phi_{2}-#phi_{3})>)");
2943 (
fIntFlowCovariancesNUA->GetXaxis())->SetBinLabel(26,
"Cov(<sin(#phi_{1}+#phi_{2})>,<sin(#phi_{1}-#phi_{2}-#phi_{3})>)");
2944 (
fIntFlowCovariancesNUA->GetXaxis())->SetBinLabel(27,
"Cov(<cos(#phi_{1}-#phi_{2}-#phi_{3}>,<sin(#phi_{1}-#phi_{2}-#phi_{3}>)");
2947 TString intFlowSumOfEventWeightsNUAName =
"fIntFlowSumOfEventWeightsNUA";
2949 for(
Int_t sc=0;sc<2;sc++)
2951 for(
Int_t power=0;power<2;power++)
2953 fIntFlowSumOfEventWeightsNUA[sc][power] =
new TH1D(Form(
"%s: %s, %s",intFlowSumOfEventWeightsNUAName.Data(),powerFlag[power].Data(),sinCosFlag[sc].Data()),Form(
"Sum of %s event weights for NUA %s terms",powerFlag[power].
Data(),sinCosFlag[sc].Data()),4,0,4);
2962 }
else if(power == 1)
2966 (
fIntFlowSumOfEventWeightsNUA[sc][power]->GetXaxis())->SetBinLabel(3,Form(
"#sum_{i=1}^{N} w_{<%s(#phi_{1}-#phi_{2}-#phi_{3})>}^{2}",sinCosFlag[sc].
Data()));
2973 TString intFlowSumOfProductOfEventWeightsNUAName =
"fIntFlowSumOfProductOfEventWeightsNUA";
2974 intFlowSumOfProductOfEventWeightsNUAName +=
fAnalysisLabel->Data();
3007 TString cumulantFlag[4] = {
"QC{2}",
"QC{4}",
"QC{6}",
"QC{8}"};
3008 TString intFlowQcumulantsName =
"fIntFlowQcumulants";
3013 fIntFlowQcumulants->SetTitle(
"Reference Q-cumulants (error from non-isotropic terms also propagated)");
3017 for(
Int_t b=0;b<4;b++)
3025 TString intFlowQcumulantsRebinnedInMName =
"fIntFlowQcumulantsRebinnedInM";
3030 for(
Int_t b=0;b<4;b++)
3037 TString intFlowQcumulantsErrorSquaredRatioName =
"fIntFlowQcumulantsErrorSquaredRatio";
3038 intFlowQcumulantsErrorSquaredRatioName +=
fAnalysisLabel->Data();
3042 for(
Int_t b=0;b<4;b++)
3050 TString intFlowQcumulantsVsMName =
"fIntFlowQcumulantsVsM";
3052 for(
Int_t co=0;co<4;co++)
3055 Form(
"%s vs multiplicity",cumulantFlag[co].
Data()),
3072 TString flowFlag[4] = {Form(
"v_{%d}{2,QC}",
fHarmonic),Form(
"v_{%d}{4,QC}",
fHarmonic),Form(
"v_{%d}{6,QC}",
fHarmonic),Form(
"v_{%d}{8,QC}",
fHarmonic)};
3073 TString intFlowName =
"fIntFlow";
3076 fIntFlow =
new TH1D(intFlowName.Data(),
"Reference flow estimates from Q-cumulants",4,0,4);
3079 for(
Int_t b=0;b<4;b++)
3081 (
fIntFlow->GetXaxis())->SetBinLabel(b+1,flowFlag[b].
Data());
3087 TString intFlowRebinnedInMName =
"fIntFlowRebinnedInM";
3089 fIntFlowRebinnedInM =
new TH1D(intFlowRebinnedInMName.Data(),
"Reference flow estimates from Q-cumulants (rebinned in M)",4,0,4);
3092 for(
Int_t b=0;b<4;b++)
3101 TString intFlowVsMName =
"fIntFlowVsM";
3103 for(
Int_t co=0;co<4;co++)
3105 fIntFlowVsM[co] =
new TH1D(Form(
"%s, %s",intFlowVsMName.Data(),flowFlag[co].Data()),
3106 Form(
"%s vs multiplicity",flowFlag[co].
Data()),
3113 fIntFlowVsM[co]->GetXaxis()->SetTitle(
"Reference multiplicity (from ESD)");
3123 TString intFlowDetectorBiasName =
"fIntFlowDetectorBias";
3128 for(
Int_t ci=0;ci<4;ci++)
3130 (
fIntFlowDetectorBias->GetXaxis())->SetBinLabel(ci+1,Form(
"#frac{corrected}{measured} %s",cumulantFlag[ci].
Data()));
3136 TString intFlowDetectorBiasVsMName =
"fIntFlowDetectorBiasVsM";
3138 for(
Int_t ci=0;ci<4;ci++)
3141 Form(
"Quantifying detector bias for %s vs multiplicity",cumulantFlag[ci].
Data()),
3170 TString controlHistogramsFlagsName =
"fControlHistogramsFlags";
3172 fControlHistogramsFlags =
new TProfile(controlHistogramsFlagsName.Data(),
"Flags for Control Histograms",2,0,2);
3186 TString sCorrelationNoRPsVsRefMultName =
"fCorrelationNoRPsVsRefMult";
3197 TString sCorrelationNoPOIsVsRefMultName =
"fCorrelationNoPOIsVsRefMult";
3208 TString sCorrelationNoRPsVsNoPOIsName =
"fCorrelationNoRPsVsNoPOIs";
3219 TString sCorrelation[4] = {
"#LT2#GT",
"#LT4#GT",
"#LT6#GT",
"#LT8#GT"};
3223 sMultiplicity =
"# RPs";
3226 sMultiplicity =
"Reference multiplicity (from ESD)";
3229 sMultiplicity =
"# POIs";
3231 for(
Int_t ci=0;ci<4;ci++)
3243 TString sCorrelationProduct[1] = {
"#LT2#GT#LT4#GT"};
3244 for(
Int_t cpi=0;cpi<1;cpi++)
3258 TString sQvectorTerms[4] = {
"#frac{|Q_{n}|^{2}}{M}",
"#frac{|Q_{2n}|^{2}}{M}",
"#frac{|Q_{n}|^{4}}{M(2M-1)}",
"#frac{Re[Q_{2n}Q_{n}^{*}Q_{n}^{*}]}{M^{3/2}}"};
3259 for(
Int_t qvti=0;qvti<4;qvti++)
3286 TString bootstrapFlagsName =
"fBootstrapFlags";
3288 fBootstrapFlags =
new TProfile(bootstrapFlagsName.Data(),
"Flags for bootstrap",3,0,3);
3300 TString correlationFlag[4] = {
"#LT#LT2#GT#GT",
"#LT#LT4#GT#GT",
"#LT#LT6#GT#GT",
"#LT#LT8#GT#GT"};
3301 TString cumulantFlag[4] = {
"QC{2}",
"QC{4}",
"QC{6}",
"QC{8}"};
3305 TString bootstrapCorrelationsName =
"fBootstrapCorrelations";
3309 for(
Int_t ci=0;ci<4;ci++)
3319 TString bootstrapCumulantsName =
"fBootstrapCumulants";
3323 for(
Int_t co=0;co<4;co++)
3338 sMultiplicity =
"# RPs";
3341 sMultiplicity =
"Reference multiplicity (from ESD)";
3344 sMultiplicity =
"# POIs";
3349 TString bootstrapCorrelationsVsMName =
"fBootstrapCorrelationsVsM";
3351 for(
Int_t ci=0;ci<4;ci++)
3353 fBootstrapCorrelationsVsM[ci] =
new TProfile2D(Form(
"%s, %s",bootstrapCorrelationsVsMName.Data(),correlationFlag[ci].Data()),
3354 Form(
"Bootstrap Correlations Vs. M, %s",correlationFlag[ci].
Data()),
3365 TString bootstrapCumulantsVsMName =
"fBootstrapCumulantsVsM";
3367 for(
Int_t co=0;co<4;co++)
3370 Form(
"Bootstrap Cumulants Vs. M, %s",cumulantFlag[co].
Data()),
3396 TString mixedHarmonicsFlagsName =
"fMixedHarmonicsFlags";
3398 fMixedHarmonicsFlags =
new TProfile(mixedHarmonicsFlagsName.Data(),
"Flags for Mixed Harmonics",4,0,4);
3414 TString s2pCorrelationsName =
"f2pCorrelations";
3416 f2pCorrelations =
new TProfile(s2pCorrelationsName.Data(),Form(
"2-particle correlations (n = %d)",
fHarmonic),6,0,6,
"s");
3431 TString s3pCorrelationsName =
"f3pCorrelations";
3433 f3pCorrelations =
new TProfile(s3pCorrelationsName.Data(),Form(
"3-particle correlations (n = %d)",
fHarmonic),10,0,10,
"s");
3454 TString s4pCorrelationsName =
"f4pCorrelations";
3456 f4pCorrelations =
new TProfile(s4pCorrelationsName.Data(),Form(
"4-particle correlations (n = %d)",
fHarmonic),45,0,45,
"s");
3515 TString s5pCorrelationsName =
"f5pCorrelations";
3517 f5pCorrelations =
new TProfile(s5pCorrelationsName.Data(),Form(
"5-particle correlations (n = %d)",
fHarmonic),87,0,87,
"s");
3618 TString s6pCorrelationsName =
"f6pCorrelations";
3620 f6pCorrelations =
new TProfile(s6pCorrelationsName.Data(),Form(
"6-particle correlations (n = %d)",
fHarmonic),1,0.,1.);
3629 TString s7pCorrelationsName =
"f7pCorrelations";
3631 f7pCorrelations =
new TProfile(s7pCorrelationsName.Data(),Form(
"7-particle correlations (n = %d)",
fHarmonic),1,0.,1.);
3640 TString s8pCorrelationsName =
"f8pCorrelations";
3642 f8pCorrelations =
new TProfile(s8pCorrelationsName.Data(),Form(
"8-particle correlations (n = %d)",
fHarmonic),1,0.,1.);
3687 TString mixedHarmonicEventWeightsName =
"fMixedHarmonicEventWeights";
3689 TString powerFlag[2] = {
"linear",
"quadratic"};
3690 for(
Int_t power=0;power<2;power++)
3692 fMixedHarmonicEventWeights[power] =
new TH1D(Form(
"%s: %s",mixedHarmonicEventWeightsName.Data(),powerFlag[power].Data()),Form(
"Sum of %s event weights for correlations",powerFlag[power].
Data()),8,0.,8.);
3706 }
else if (power == 1)
3721 TString mixedHarmonicProductOfEventWeightsName =
"fMixedHarmonicProductOfEventWeights";
3722 mixedHarmonicProductOfEventWeightsName +=
fAnalysisLabel->Data();
3727 for(
Int_t b=1;b<=8;b++)
3735 TString mixedHarmonicProductOfCorrelationsName =
"fMixedHarmonicProductOfCorrelations";
3736 mixedHarmonicProductOfCorrelationsName +=
fAnalysisLabel->Data();