23 #define AliFlowAnalysisCRC_cxx
25 #include "Riostream.h"
34 #include "TParticle.h"
38 #include "TProfile2D.h"
39 #include "TProfile3D.h"
42 #include "TPaveLabel.h"
51 #include "THnSparse.h"
85 fBookOnlyBasicCCH(kTRUE),
87 fCommonHists2nd(NULL),
88 fCommonHists4th(NULL),
89 fCommonHists6th(NULL),
90 fCommonHists8th(NULL),
91 fCommonHistsResults2nd(NULL),
92 fCommonHistsResults4th(NULL),
93 fCommonHistsResults6th(NULL),
94 fCommonHistsResults8th(NULL),
107 fCommonConstants(NULL),
108 fFillMultipleControlHistograms(kFALSE),
110 fAnalysisLabel(NULL),
112 fUsePhiWeights(kFALSE),
113 fUsePtWeights(kFALSE),
114 fUseEtaWeights(kFALSE),
115 fUseTrackWeights(kFALSE),
116 fUsePhiEtaWeights(kFALSE),
117 fUseZDCESEMulWeights(kFALSE),
118 fUseZDCESESpecWeights(kFALSE),
119 fUseParticleWeights(NULL),
121 fMultiplicityWeight(NULL),
125 fIntFlowProfiles(NULL),
126 fIntFlowResults(NULL),
127 fIntFlowAllCorrelationsVsM(NULL),
129 fApplyCorrectionForNUA(kFALSE),
130 fApplyCorrectionForNUAVsM(kFALSE),
134 fPropagateErrorAlsoFromNIT(kFALSE),
135 fCalculateCumulantsVsM(kFALSE),
136 fCalculateAllCorrelationsVsM(kFALSE),
137 fMinimumBiasReferenceFlow(kTRUE),
138 fForgetAboutCovariances(kFALSE),
139 fStoreVarious(kFALSE),
141 fUse2DHistograms(kFALSE),
142 fFillProfilesVsMUsingWeights(kTRUE),
143 fUseQvectorTerms(kFALSE),
147 fIntFlowCorrelationsEBE(NULL),
148 fIntFlowEventWeightsForCorrelationsEBE(NULL),
149 fIntFlowCorrelationsAllEBE(NULL),
151 fNumberOfPOIsEBE(0.),
152 fReferenceMultiplicityEBE(0.),
154 fNewCentralityEBE(0.),
160 fCentralityCL1EBE(0.),
162 fCentralityTRKEBE(0.),
166 fAvMultiplicity(NULL),
167 fIntFlowCorrelationsPro(NULL),
168 fIntFlowSquaredCorrelationsPro(NULL),
169 fIntFlowCorrelationsAllPro(NULL),
170 fIntFlowExtraCorrelationsPro(NULL),
171 fIntFlowProductOfCorrelationsPro(NULL),
172 fIntFlowProductOfCorrectionTermsForNUAPro(NULL),
173 fIntFlowCorrelationsHist(NULL),
174 fIntFlowCorrelationsAllHist(NULL),
175 fIntFlowCovariances(NULL),
176 fIntFlowSumOfProductOfEventWeights(NULL),
177 fIntFlowCovariancesNUA(NULL),
178 fIntFlowSumOfProductOfEventWeightsNUA(NULL),
179 fIntFlowQcumulants(NULL),
180 fIntFlowQcumulantsRebinnedInM(NULL),
181 fIntFlowQcumulantsErrorSquaredRatio(NULL),
183 fIntFlowRebinnedInM(NULL),
184 fIntFlowDetectorBias(NULL),
187 fDiffFlowProfiles(NULL),
188 fDiffFlowResults(NULL),
190 fDiffFlowFlags(NULL),
191 fCalculateDiffFlow(kTRUE),
192 fCalculate2DDiffFlow(kFALSE),
193 fCalculateDiffFlowVsEta(kTRUE),
195 fOtherDiffCorrelatorsList(NULL),
197 fDistributionsList(NULL),
198 fDistributionsFlags(NULL),
199 fStoreDistributions(kFALSE),
200 fnBinsForCorrelations(10000),
202 fNestedLoopsList(NULL),
203 fEvaluateIntFlowNestedLoops(kFALSE),
204 fEvaluateDiffFlowNestedLoops(kFALSE),
205 fMaxAllowedMultiplicity(10),
206 fEvaluateNestedLoops(NULL),
207 fIntFlowDirectCorrelations(NULL),
208 fIntFlowExtraDirectCorrelations(NULL),
209 fCrossCheckInPtBinNo(10),
210 fCrossCheckInEtaBinNo(20),
211 fNoOfParticlesInBin(NULL),
212 fMixedHarmonicsNestedLoops(NULL),
214 fMixedHarmonicsList(NULL),
215 fMixedHarmonicsProfiles(NULL),
216 fMixedHarmonicsResults(NULL),
217 fMixedHarmonicsErrorPropagation(NULL),
218 fMixedHarmonicsFlags(NULL),
219 fCalculateMixedHarmonics(kFALSE),
220 fCalculateMixedHarmonicsVsM(kFALSE),
221 f2pCorrelations(NULL),
222 f3pCorrelations(NULL),
223 f4pCorrelations(NULL),
224 f5pCorrelations(NULL),
225 f6pCorrelations(NULL),
226 f7pCorrelations(NULL),
227 f8pCorrelations(NULL),
235 fMixedHarmonicProductOfEventWeights(NULL),
236 fMixedHarmonicProductOfCorrelations(NULL),
238 fControlHistogramsList(NULL),
239 fControlHistogramsFlags(NULL),
240 fStoreControlHistograms(kFALSE),
241 fCorrelationNoRPsVsRefMult(NULL),
242 fCorrelationNoPOIsVsRefMult(NULL),
243 fCorrelationNoRPsVsNoPOIs(NULL),
245 fBootstrapList(NULL),
246 fBootstrapProfilesList(NULL),
247 fBootstrapResultsList(NULL),
248 fBootstrapFlags(NULL),
249 fUseBootstrap(kFALSE),
250 fUseBootstrapVsM(kFALSE),
253 fBootstrapCorrelations(NULL),
254 fBootstrapCumulants(NULL),
259 fCalculateCRC(kTRUE),
260 fCalculateCRCPt(kFALSE),
261 fCalculateCME(kFALSE),
262 fCalculateCRC2(kFALSE),
263 fCalculateCRCVZ(kFALSE),
264 fCalculateCRCZDC(kFALSE),
265 fCalculateFlowQC(kFALSE),
266 fCalculateFlowZDC(kFALSE),
267 fCalculateFlowVZ(kFALSE),
268 fCalculateEbEFlow(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),
300 fCRCZDCRbRList(NULL),
308 fFlowSPZDCList(NULL),
309 fFlowSPZDCRbRList(NULL),
312 fFlowQCDeltaEta(0.4),
318 fQAZDCCutsFlag(kTRUE),
325 fHistList =
new TList();
326 fHistList->SetName(
"cobjQC");
327 fHistList->SetOwner(kTRUE);
330 fTempList =
new TList();
331 fTempList->SetName(
"temp");
332 fTempList->SetOwner(kTRUE);
335 fMultiplicityWeight =
new TString(
"combinations");
338 fAnalysisLabel =
new TString();
341 this->InitializeArraysForIntFlow();
342 this->InitializeArraysForDiffFlow();
343 this->InitializeArraysForDistributions();
344 this->InitializeArraysForVarious();
345 this->InitializeArraysForParticleWeights();
346 this->InitializeArraysForNestedLoops();
347 this->InitializeArraysForMixedHarmonics();
348 this->InitializeArraysForControlHistograms();
349 this->InitializeArraysForBootstrap();
354 this->InitializeCostantsForCRC();
355 this->InitializeArraysForCRC();
356 this->InitializeArraysForCRCVZ();
357 this->InitializeArraysForCRCZDC();
358 this->InitializeArraysForCRC2();
359 this->InitializeArraysForQVec();
360 this->InitializeArraysForCRCPt();
361 this->InitializeArraysForCME();
362 this->InitializeArraysForFlowEbE();
363 this->InitializeArraysForFlowQC();
364 this->InitializeArraysForFlowSPZDC();
365 this->InitializeArraysForFlowSPVZ();
366 this->InitializeArraysForEbEFlow();
403 Bool_t oldHistAddStatus = TH1::AddDirectoryStatus();
404 TH1::AddDirectory(kFALSE);
455 TH1::AddDirectory(oldHistAddStatus);
494 Int_t nCounterNoRPs = 0;
529 if(fRunBin<0 || fRunBin>=
fCRCnRun) {
return;}
531 if(fCenBin<0 || fCenBin>=
fCRCnCen) {
return;}
538 for(
Int_t k=0; k<2; k++) {
548 for(
Int_t k=0; k<2; k++) {
551 for(
Int_t i=1; i<=nBinsEta; i++) {
552 for (
Int_t j=1; j<=nBinsPhi; j++) {
556 PhiEtaAv /= 1.*nBinsPhi*nBinsEta;
557 for(
Int_t i=1; i<=nBinsEta; i++) {
558 for (
Int_t j=1; j<=nBinsPhi; j++) {
563 }
else cout <<
" WARNING: fPhiEtaWeights not found !!! " << endl;
622 for(
Int_t i=0;i<nPrim;i++) {
632 dPhi = aftsTrack->
Phi();
633 dPt = aftsTrack->
Pt();
634 dEta = aftsTrack->
Eta();
661 for(
Int_t m=0;m<12;m++)
663 for(
Int_t k=0;k<9;k++)
665 (*fReQ)(m,k)+=pow(wPhiEta*wPhi*wPt*wEta*wTrack,k)*TMath::Cos((m+1)*n*dPhi);
666 (*fImQ)(m,k)+=pow(wPhiEta*wPhi*wPt*wEta*wTrack,k)*TMath::Sin((m+1)*n*dPhi);
670 for(
Int_t p=0;p<8;p++)
672 for(
Int_t k=0;k<9;k++)
674 (*fSpk)(p,k)+=pow(wPhiEta*wPhi*wPt*wEta*wTrack,k);
683 for(
Int_t k=0;k<9;k++)
685 for(
Int_t m=0;m<4;m++)
691 fReRPQ1dEBE[0][pe][m][k]->Fill(ptEta[pe],pow(wPhiEta*wPhi*wPt*wEta*wTrack,k)*TMath::Cos((m+1.)*n*dPhi),1.);
692 fImRPQ1dEBE[0][pe][m][k]->Fill(ptEta[pe],pow(wPhiEta*wPhi*wPt*wEta*wTrack,k)*TMath::Sin((m+1.)*n*dPhi),1.);
695 fs1dEBE[0][pe][k]->Fill(ptEta[pe],pow(wPhiEta*wPhi*wPt*wEta*wTrack,k),1.);
701 fReRPQ2dEBE[0][m][k]->Fill(dPt,dEta,pow(wPhiEta*wPhi*wPt*wEta*wTrack,k)*TMath::Cos((m+1.)*n*dPhi),1.);
702 fImRPQ2dEBE[0][m][k]->Fill(dPt,dEta,pow(wPhiEta*wPhi*wPt*wEta*wTrack,k)*TMath::Sin((m+1.)*n*dPhi),1.);
705 fs2dEBE[0][k]->Fill(dPt,dEta,pow(wPhiEta*wPhi*wPt*wEta*wTrack,k),1.);
714 for(
Int_t k=0;k<9;k++)
716 for(
Int_t m=0;m<4;m++)
722 fReRPQ1dEBE[2][pe][m][k]->Fill(ptEta[pe],pow(wPhiEta*wPhi*wPt*wEta*wTrack,k)*TMath::Cos((m+1.)*n*dPhi),1.);
723 fImRPQ1dEBE[2][pe][m][k]->Fill(ptEta[pe],pow(wPhiEta*wPhi*wPt*wEta*wTrack,k)*TMath::Sin((m+1.)*n*dPhi),1.);
726 fs1dEBE[2][pe][k]->Fill(ptEta[pe],pow(wPhiEta*wPhi*wPt*wEta*wTrack,k),1.);
732 fReRPQ2dEBE[2][m][k]->Fill(dPt,dEta,pow(wPhiEta*wPhi*wPt*wEta*wTrack,k)*TMath::Cos((m+1.)*n*dPhi),1.);
733 fImRPQ2dEBE[2][m][k]->Fill(dPt,dEta,pow(wPhiEta*wPhi*wPt*wEta*wTrack,k)*TMath::Sin((m+1.)*n*dPhi),1.);
736 fs2dEBE[2][k]->Fill(dPt,dEta,pow(wPhiEta*wPhi*wPt*wEta*wTrack,k),1.);
749 dPhi = aftsTrack->
Phi();
750 dPt = aftsTrack->
Pt();
751 dEta = aftsTrack->
Eta();
752 dCharge = aftsTrack->
Charge();
753 if (dCharge > 0.) cw = 0;
754 else if (dCharge < 0.) cw = 1;
782 if(ptbin==-1)
continue;
789 for(
Int_t k=0;k<9;k++)
791 for(
Int_t m=0;m<4;m++)
797 fReRPQ1dEBE[1][pe][m][k]->Fill(ptEta[pe],pow(wPhiEta*wPhi*wPt*wEta*wTrack,k)*TMath::Cos((m+1.)*n*dPhi),1.);
798 fImRPQ1dEBE[1][pe][m][k]->Fill(ptEta[pe],pow(wPhiEta*wPhi*wPt*wEta*wTrack,k)*TMath::Sin((m+1.)*n*dPhi),1.);
803 fReRPQ2dEBE[1][m][k]->Fill(dPt,dEta,pow(wPhiEta*wPhi*wPt*wEta*wTrack,k)*TMath::Cos((m+1.)*n*dPhi),1.);
804 fImRPQ2dEBE[1][m][k]->Fill(dPt,dEta,pow(wPhiEta*wPhi*wPt*wEta*wTrack,k)*TMath::Sin((m+1.)*n*dPhi),1.);
812 fCRCQRe[cw][h]->Fill(dEta,wPhiEta*TMath::Cos((h+1.)*dPhi));
813 fCRCQIm[cw][h]->Fill(dEta,wPhiEta*TMath::Sin((h+1.)*dPhi));
814 fCRCMult[cw][h]->Fill(dEta,wPhiEta);
816 fCRC2QRe[cw][h]->Fill(dEta,wPhiEta*TMath::Cos((h+1.)*dPhi));
817 fCRC2QIm[cw][h]->Fill(dEta,wPhiEta*TMath::Sin((h+1.)*dPhi));
818 fCRC2Mul[cw][h]->Fill(dEta,wPhiEta);
820 fCRCZDCQRe[cw][h]->Fill(dEta,wPhiEta*TMath::Cos((h+1.)*dPhi));
821 fCRCZDCQIm[cw][h]->Fill(dEta,wPhiEta*TMath::Sin((h+1.)*dPhi));
825 fCRC2QRe[2][h]->Fill(dEta,wPhiEta*TMath::Cos((h+1.)*dPhi));
826 fCRC2QIm[2][h]->Fill(dEta,wPhiEta*TMath::Sin((h+1.)*dPhi));
831 fCRCZDCQRe[2][h]->Fill(dEta,wPhiEta*TMath::Cos((h+1.)*dPhi));
832 fCRCZDCQIm[2][h]->Fill(dEta,wPhiEta*TMath::Sin((h+1.)*dPhi));
835 fCRCZDCQRe[3][h]->Fill(dEta,wPhiEta*TMath::Cos((h+1.)*dPhi));
836 fCRCZDCQIm[3][h]->Fill(dEta,wPhiEta*TMath::Sin((h+1.)*dPhi));
844 if(std::isfinite(1./weraw)) SpecWeig = 1./weraw;
846 fCMEQRe[cw][h]->Fill(dEta,SpecWeig*wPhiEta*TMath::Cos((h+1.)*dPhi));
847 fCMEQIm[cw][h]->Fill(dEta,SpecWeig*wPhiEta*TMath::Sin((h+1.)*dPhi));
848 fCMEMult[cw][h]->Fill(dEta,SpecWeig*wPhiEta);
849 fCMEQRe[2+cw][h]->Fill(dEta,pow(SpecWeig*wPhiEta,2.)*TMath::Cos((h+1.)*dPhi));
850 fCMEQIm[2+cw][h]->Fill(dEta,pow(SpecWeig*wPhiEta,2.)*TMath::Sin((h+1.)*dPhi));
851 fCMEMult[2+cw][h]->Fill(dEta,pow(SpecWeig*wPhiEta,2.));
863 fPtDiffQRe[k][h]->Fill(dPt,pow(wPhiEta,k)*TMath::Cos((h+1.)*dPhi));
864 fPtDiffQIm[k][h]->Fill(dPt,pow(wPhiEta,k)*TMath::Sin((h+1.)*dPhi));
867 Int_t keta = (dEta<0.?0:1);
868 fPtDiffQReEG[keta][k][h]->Fill(dPt,pow(wPhiEta,k)*TMath::Cos((h+1.)*dPhi));
869 fPtDiffQImEG[keta][k][h]->Fill(dPt,pow(wPhiEta,k)*TMath::Sin((h+1.)*dPhi));
876 fEtaDiffQRe[h]->Fill(dEta,wPhiEta*TMath::Cos((h+1.)*dPhi));
877 fEtaDiffQIm[h]->Fill(dEta,wPhiEta*TMath::Sin((h+1.)*dPhi));
908 printf(
"\n WARNING (QC): No particle (i.e. aftsTrack is a NULL pointer in AFAWQC::Make())!!!!\n\n");
916 for(
Int_t p=0;p<8;p++)
918 for(
Int_t k=0;k<9;k++)
920 (*fSpk)(p,k)=pow((*
fSpk)(p,k),p+1);
1339 cout<<
"Skipping the event because multiplicity is "<<nPrim<<
". Too high to evaluate nested loops!"<<endl;
1343 cout<<
"Skipping the event because multiplicity is "<<nPrim<<
"."<<endl;
1479 cosP1n = dReQ1n/dMult;
1497 cosP1nP1n = (pow(dReQ1n,2)-pow(dImQ1n,2)-dReQ2n)/(dMult*(dMult-1));
1498 cosP2nM1n = (dReQ2n*dReQ1n+dImQ2n*dImQ1n-dReQ1n)/(dMult*(dMult-1));
1522 cosP1nM1nM1n = (dReQ1n*(pow(dReQ1n,2)+pow(dImQ1n,2))-dReQ1n*dReQ2n-dImQ1n*dImQ2n-2.*(dMult-1)*dReQ1n)
1523 / (dMult*(dMult-1)*(dMult-2));
1588 sinP1n = dImQ1n/dMult;
1605 sinP1nP1n = (2.*dReQ1n*dImQ1n-dImQ2n)/(dMult*(dMult-1));
1606 sinP2nM1n = (dImQ2n*dReQ1n-dReQ2n*dImQ1n-dImQ1n)/(dMult*(dMult-1));
1630 sinP1nM1nM1n = (-dImQ1n*(pow(dReQ1n,2)+pow(dImQ1n,2))+dReQ1n*dImQ2n-dImQ1n*dReQ2n+2.*(dMult-1)*dImQ1n)
1631 / (dMult*(dMult-1)*(dMult-2));
1661 if(outputListHistos)
1666 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);
2028 Form(
"fPhiEtaWeights[%d]",
c),32,0.,TMath::TwoPi(),32,-0.8,0.8);
2236 TF1 *CenFit =
new TF1(
"CenFit",
"pol0", 0., 100.);
2239 Double_t CenAv = CenFit->GetParameter(0);
2251 Double_t CenAv = CenFit->GetParameter(0);
2253 Double_t SemiCenAv = CenFit->GetParameter(0);
2279 TString sinCosFlag[2] = {
"sin",
"cos"};
2280 TString powerFlag[2] = {
"linear",
"quadratic"};
2283 TString intFlowFlagsName =
"fIntFlowFlags";
2285 fIntFlowFlags =
new TProfile(intFlowFlagsName.Data(),
"Flags for Integrated Flow",20,0.,20.);
2291 fIntFlowFlags->GetXaxis()->SetBinLabel(1,
"Particle Weights");
2293 fIntFlowFlags->GetXaxis()->SetBinLabel(3,
"Corrected for NUA?");
2294 fIntFlowFlags->GetXaxis()->SetBinLabel(4,
"Print RF results");
2295 fIntFlowFlags->GetXaxis()->SetBinLabel(5,
"Print RP results");
2296 fIntFlowFlags->GetXaxis()->SetBinLabel(6,
"Print POI results");
2297 fIntFlowFlags->GetXaxis()->SetBinLabel(7,
"Print RF (rebinned in M) results");
2298 fIntFlowFlags->GetXaxis()->SetBinLabel(8,
"Corrected for NUA vs M?");
2299 fIntFlowFlags->GetXaxis()->SetBinLabel(9,
"Propagate errors to v_{n} from correlations?");
2300 fIntFlowFlags->GetXaxis()->SetBinLabel(10,
"Calculate cumulants vs M");
2301 fIntFlowFlags->GetXaxis()->SetBinLabel(11,
"fMinimumBiasReferenceFlow");
2302 fIntFlowFlags->GetXaxis()->SetBinLabel(12,
"fForgetAboutCovariances");
2304 fIntFlowFlags->GetXaxis()->SetBinLabel(14,
"fFillMultipleControlHistograms");
2305 fIntFlowFlags->GetXaxis()->SetBinLabel(15,
"Calculate all correlations vs M");
2306 fIntFlowFlags->GetXaxis()->SetBinLabel(16,
"fMultiplicityIs");
2308 fIntFlowFlags->GetXaxis()->SetBinLabel(18,
"fUse2DHistograms");
2309 fIntFlowFlags->GetXaxis()->SetBinLabel(19,
"fFillProfilesVsMUsingWeights");
2310 fIntFlowFlags->GetXaxis()->SetBinLabel(20,
"fUseQvectorTerms");
2315 fReQ =
new TMatrixD(12,9);
2316 fImQ =
new TMatrixD(12,9);
2317 fSpk =
new TMatrixD(8,9);
2319 TString intFlowCorrelationsEBEName =
"fIntFlowCorrelationsEBE";
2323 TString intFlowEventWeightsForCorrelationsEBEName =
"fIntFlowEventWeightsForCorrelationsEBE";
2324 intFlowEventWeightsForCorrelationsEBEName +=
fAnalysisLabel->Data();
2327 TString intFlowCorrelationsAllEBEName =
"fIntFlowCorrelationsAllEBE";
2332 TString fIntFlowCorrectionTermsForNUAEBEName =
"fIntFlowCorrectionTermsForNUAEBE";
2334 for(
Int_t sc=0;sc<2;sc++)
2336 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);
2339 TString fIntFlowEventWeightForCorrectionTermsForNUAEBEName =
"fIntFlowEventWeightForCorrectionTermsForNUAEBE";
2340 fIntFlowEventWeightForCorrectionTermsForNUAEBEName +=
fAnalysisLabel->Data();
2341 for(
Int_t sc=0;sc<2;sc++)
2347 TString avMultiplicityName =
"fAvMultiplicity";
2349 fAvMultiplicity =
new TProfile(avMultiplicityName.Data(),
"Average multiplicities of reference particles (RPs)",9,0,9);
2366 TString correlationFlag[4] = {
"#LT#LT2#GT#GT",
"#LT#LT4#GT#GT",
"#LT#LT6#GT#GT",
"#LT#LT8#GT#GT"};
2367 TString intFlowCorrelationsProName =
"fIntFlowCorrelationsPro";
2369 fIntFlowCorrelationsPro =
new TProfile(intFlowCorrelationsProName.Data(),
"Average correlations for all events",4,0,4,
"s");
2375 for(
Int_t b=0;b<4;b++)
2381 TString squaredCorrelationFlag[4] = {
"#LT#LT2#GT^{2}#GT",
"#LT#LT4#GT^{2}#GT",
"#LT#LT6#GT^{2}#GT",
"#LT#LT8#GT^{2}#GT"};
2382 TString intFlowSquaredCorrelationsProName =
"fIntFlowSquaredCorrelationsPro";
2390 for(
Int_t b=0;b<4;b++)
2397 for(
Int_t ci=0;ci<4;ci++)
2400 TString intFlowCorrelationsVsMProName =
"fIntFlowCorrelationsVsMPro";
2402 fIntFlowCorrelationsVsMPro[ci] =
new TProfile(Form(
"%s, %s",intFlowCorrelationsVsMProName.Data(),correlationFlag[ci].Data()),
2403 Form(
"%s vs multiplicity",correlationFlag[ci].
Data()),
2419 TString intFlowSquaredCorrelationsVsMProName =
"fIntFlowSquaredCorrelationsVsMPro";
2422 Form(
"%s vs multiplicity",squaredCorrelationFlag[ci].
Data()),
2440 TString intFlowCorrelationsAllProName =
"fIntFlowCorrelationsAllPro";
2442 fIntFlowCorrelationsAllPro =
new TProfile(intFlowCorrelationsAllProName.Data(),
"Average all correlations for all events",64,0,64);
2548 fIntFlowCorrelationsAllVsMPro[30] =
new TProfile(
"eight1n1n1n1n1n1n1n1n",
"#LT#LT8#GT#GT_{n,n,n,n|n,n,n,n}",
fnBinsMult,
fMinMult,
fMaxMult);
2582 for(
Int_t n=0;n<63;n++)
2604 TString intFlowExtraCorrelationsProName =
"fIntFlowExtraCorrelationsPro";
2606 fIntFlowExtraCorrelationsPro =
new TProfile(intFlowExtraCorrelationsProName.Data(),
"Average extra correlations for all events",100,0,100,
"s");
2617 TString productFlag[6] = {
"#LT#LT2#GT#LT4#GT#GT",
"#LT#LT2#GT#LT6#GT#GT",
"#LT#LT2#GT#LT8#GT#GT",
2618 "#LT#LT4#GT#LT6#GT#GT",
"#LT#LT4#GT#LT8#GT#GT",
"#LT#LT6#GT#LT8#GT#GT"};
2619 TString intFlowProductOfCorrelationsProName =
"fIntFlowProductOfCorrelationsPro";
2626 for(
Int_t b=0;b<6;b++)
2635 TString intFlowProductOfCorrelationsVsMProName =
"fIntFlowProductOfCorrelationsVsMPro";
2636 intFlowProductOfCorrelationsVsMProName +=
fAnalysisLabel->Data();
2640 Form(
"%s versus multiplicity",productFlag[
pi].
Data()),
2656 TString intFlowProductOfCorrectionTermsForNUAProName =
"fIntFlowProductOfCorrectionTermsForNUAPro";
2657 intFlowProductOfCorrectionTermsForNUAProName +=
fAnalysisLabel->Data();
2692 for(
Int_t sc=0;sc<2;sc++)
2694 TString intFlowCorrectionTermsForNUAProName =
"fIntFlowCorrectionTermsForNUAPro";
2696 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");
2709 TString correctionTermFlag[4] = {
"(n(phi1))",
"(n(phi1+phi2))",
"(n(phi1-phi2-phi3))",
"(n(2phi1-phi2))"};
2710 for(
Int_t ci=0;ci<4;ci++)
2712 TString intFlowCorrectionTermsForNUAVsMProName =
"fIntFlowCorrectionTermsForNUAVsMPro";
2713 intFlowCorrectionTermsForNUAVsMProName +=
fAnalysisLabel->Data();
2714 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");
2722 TString intFlowCorrelationsHistName =
"fIntFlowCorrelationsHist";
2737 for(
Int_t ci=0;ci<4;ci++)
2739 TString intFlowCorrelationsVsMHistName =
"fIntFlowCorrelationsVsMHist";
2742 Form(
"%s vs multiplicity",correlationFlag[ci].
Data()),
2759 TString intFlowCorrelationsAllHistName =
"fIntFlowCorrelationsAllHist";
2800 for(
Int_t sc=0;sc<2;sc++)
2802 TString intFlowCorrectionTermsForNUAHistName =
"fIntFlowCorrectionTermsForNUAHist";
2804 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);
2816 TString intFlowCovariancesName =
"fIntFlowCovariances";
2818 fIntFlowCovariances =
new TH1D(intFlowCovariancesName.Data(),
"Covariances (multiplied with weight dependent prefactor)",6,0,6);
2829 TString intFlowSumOfEventWeightsName =
"fIntFlowSumOfEventWeights";
2831 for(
Int_t power=0;power<2;power++)
2833 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);
2842 }
else if (power == 1)
2852 TString intFlowSumOfProductOfEventWeightsName =
"fIntFlowSumOfProductOfEventWeights";
2868 TString intFlowCovariancesVsMName =
"fIntFlowCovariancesVsM";
2870 TString covarianceFlag[6] = {
"Cov(<2>,<4>)",
"Cov(<2>,<6>)",
"Cov(<2>,<8>)",
"Cov(<4>,<6>)",
"Cov(<4>,<8>)",
"Cov(<6>,<8>)"};
2871 for(
Int_t ci=0;ci<6;ci++)
2874 Form(
"%s vs multiplicity",covarianceFlag[ci].
Data()),
2894 TString intFlowSumOfEventWeightsVsMName =
"fIntFlowSumOfEventWeightsVsM";
2896 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>}"},
2897 {
"#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}"}};
2898 for(
Int_t si=0;si<4;si++)
2900 for(
Int_t power=0;power<2;power++)
2903 Form(
"%s vs multiplicity",sumFlag[power][si].
Data()),
2925 TString intFlowSumOfProductOfEventWeightsVsMName =
"fIntFlowSumOfProductOfEventWeightsVsM";
2926 intFlowSumOfProductOfEventWeightsVsMName +=
fAnalysisLabel->Data();
2927 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>}",
2928 "#sum_{i=1}^{N} w_{<4>} w_{<6>}",
"#sum_{i=1}^{N} w_{<4>} w_{<8>}",
"#sum_{i=1}^{N} w_{<6>} w_{<8>}"};
2932 Form(
"%s versus multiplicity",sopowFlag[
pi].
Data()),
2949 TString intFlowCovariancesNUAName =
"fIntFlowCovariancesNUA";
2951 fIntFlowCovariancesNUA =
new TH1D(intFlowCovariancesNUAName.Data(),
"Covariances for NUA (multiplied with weight dependent prefactor)",27,0,27);
2970 (
fIntFlowCovariancesNUA->GetXaxis())->SetBinLabel(16,
"Cov(<cos(#phi)>,<cos(#phi_{1}-#phi_{2}-#phi_{3})>)");
2971 (
fIntFlowCovariancesNUA->GetXaxis())->SetBinLabel(17,
"Cov(<cos(#phi)>,<sin(#phi_{1}-#phi_{2}-#phi_{3})>)");
2974 (
fIntFlowCovariancesNUA->GetXaxis())->SetBinLabel(20,
"Cov(<sin(#phi)>,<cos(#phi_{1}-#phi_{2}-#phi_{3})>)");
2975 (
fIntFlowCovariancesNUA->GetXaxis())->SetBinLabel(21,
"Cov(<sin(#phi)>,<sin(#phi_{1}-#phi_{2}-#phi_{3})>)");
2976 (
fIntFlowCovariancesNUA->GetXaxis())->SetBinLabel(22,
"Cov(<cos(#phi_{1}+#phi_{2})>,<sin(#phi_{1}+#phi_{2})>)");
2977 (
fIntFlowCovariancesNUA->GetXaxis())->SetBinLabel(23,
"Cov(<cos(#phi_{1}+#phi_{2})>,<cos(#phi_{1}-#phi_{2}-#phi_{3})>)");
2978 (
fIntFlowCovariancesNUA->GetXaxis())->SetBinLabel(24,
"Cov(<cos(#phi_{1}+#phi_{2})>,<sin(#phi_{1}-#phi_{2}-#phi_{3})>)");
2979 (
fIntFlowCovariancesNUA->GetXaxis())->SetBinLabel(25,
"Cov(<sin(#phi_{1}+#phi_{2})>,<cos(#phi_{1}-#phi_{2}-#phi_{3})>)");
2980 (
fIntFlowCovariancesNUA->GetXaxis())->SetBinLabel(26,
"Cov(<sin(#phi_{1}+#phi_{2})>,<sin(#phi_{1}-#phi_{2}-#phi_{3})>)");
2981 (
fIntFlowCovariancesNUA->GetXaxis())->SetBinLabel(27,
"Cov(<cos(#phi_{1}-#phi_{2}-#phi_{3}>,<sin(#phi_{1}-#phi_{2}-#phi_{3}>)");
2984 TString intFlowSumOfEventWeightsNUAName =
"fIntFlowSumOfEventWeightsNUA";
2986 for(
Int_t sc=0;sc<2;sc++)
2988 for(
Int_t power=0;power<2;power++)
2990 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);
2999 }
else if(power == 1)
3003 (
fIntFlowSumOfEventWeightsNUA[sc][power]->GetXaxis())->SetBinLabel(3,Form(
"#sum_{i=1}^{N} w_{<%s(#phi_{1}-#phi_{2}-#phi_{3})>}^{2}",sinCosFlag[sc].
Data()));
3010 TString intFlowSumOfProductOfEventWeightsNUAName =
"fIntFlowSumOfProductOfEventWeightsNUA";
3011 intFlowSumOfProductOfEventWeightsNUAName +=
fAnalysisLabel->Data();
3044 TString cumulantFlag[4] = {
"QC{2}",
"QC{4}",
"QC{6}",
"QC{8}"};
3045 TString intFlowQcumulantsName =
"fIntFlowQcumulants";
3050 fIntFlowQcumulants->SetTitle(
"Reference Q-cumulants (error from non-isotropic terms also propagated)");
3054 for(
Int_t b=0;b<4;b++)
3062 TString intFlowQcumulantsRebinnedInMName =
"fIntFlowQcumulantsRebinnedInM";
3067 for(
Int_t b=0;b<4;b++)
3074 TString intFlowQcumulantsErrorSquaredRatioName =
"fIntFlowQcumulantsErrorSquaredRatio";
3075 intFlowQcumulantsErrorSquaredRatioName +=
fAnalysisLabel->Data();
3079 for(
Int_t b=0;b<4;b++)
3087 TString intFlowQcumulantsVsMName =
"fIntFlowQcumulantsVsM";
3089 for(
Int_t co=0;co<4;co++)
3092 Form(
"%s vs multiplicity",cumulantFlag[co].
Data()),
3109 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)};
3110 TString intFlowName =
"fIntFlow";
3113 fIntFlow =
new TH1D(intFlowName.Data(),
"Reference flow estimates from Q-cumulants",4,0,4);
3116 for(
Int_t b=0;b<4;b++)
3118 (
fIntFlow->GetXaxis())->SetBinLabel(b+1,flowFlag[b].
Data());
3124 TString intFlowRebinnedInMName =
"fIntFlowRebinnedInM";
3126 fIntFlowRebinnedInM =
new TH1D(intFlowRebinnedInMName.Data(),
"Reference flow estimates from Q-cumulants (rebinned in M)",4,0,4);
3129 for(
Int_t b=0;b<4;b++)
3138 TString intFlowVsMName =
"fIntFlowVsM";
3140 for(
Int_t co=0;co<4;co++)
3142 fIntFlowVsM[co] =
new TH1D(Form(
"%s, %s",intFlowVsMName.Data(),flowFlag[co].Data()),
3143 Form(
"%s vs multiplicity",flowFlag[co].
Data()),
3150 fIntFlowVsM[co]->GetXaxis()->SetTitle(
"Reference multiplicity (from ESD)");
3160 TString intFlowDetectorBiasName =
"fIntFlowDetectorBias";
3165 for(
Int_t ci=0;ci<4;ci++)
3167 (
fIntFlowDetectorBias->GetXaxis())->SetBinLabel(ci+1,Form(
"#frac{corrected}{measured} %s",cumulantFlag[ci].
Data()));
3173 TString intFlowDetectorBiasVsMName =
"fIntFlowDetectorBiasVsM";
3175 for(
Int_t ci=0;ci<4;ci++)
3178 Form(
"Quantifying detector bias for %s vs multiplicity",cumulantFlag[ci].
Data()),
3207 TString controlHistogramsFlagsName =
"fControlHistogramsFlags";
3209 fControlHistogramsFlags =
new TProfile(controlHistogramsFlagsName.Data(),
"Flags for Control Histograms",2,0,2);
3223 TString sCorrelationNoRPsVsRefMultName =
"fCorrelationNoRPsVsRefMult";
3234 TString sCorrelationNoPOIsVsRefMultName =
"fCorrelationNoPOIsVsRefMult";
3245 TString sCorrelationNoRPsVsNoPOIsName =
"fCorrelationNoRPsVsNoPOIs";
3256 TString sCorrelation[4] = {
"#LT2#GT",
"#LT4#GT",
"#LT6#GT",
"#LT8#GT"};
3260 sMultiplicity =
"# RPs";
3263 sMultiplicity =
"Reference multiplicity (from ESD)";
3266 sMultiplicity =
"# POIs";
3268 for(
Int_t ci=0;ci<4;ci++)
3280 TString sCorrelationProduct[1] = {
"#LT2#GT#LT4#GT"};
3281 for(
Int_t cpi=0;cpi<1;cpi++)
3295 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}}"};
3296 for(
Int_t qvti=0;qvti<4;qvti++)
3323 TString bootstrapFlagsName =
"fBootstrapFlags";
3325 fBootstrapFlags =
new TProfile(bootstrapFlagsName.Data(),
"Flags for bootstrap",3,0,3);
3343 TString correlationFlag[4] = {
"#LT#LT2#GT#GT",
"#LT#LT4#GT#GT",
"#LT#LT6#GT#GT",
"#LT#LT8#GT#GT"};
3344 TString cumulantFlag[4] = {
"QC{2}",
"QC{4}",
"QC{6}",
"QC{8}"};
3348 TString bootstrapCorrelationsName =
"fBootstrapCorrelations";
3352 for(
Int_t ci=0;ci<4;ci++)
3362 TString bootstrapCumulantsName =
"fBootstrapCumulants";
3366 for(
Int_t co=0;co<4;co++)
3381 sMultiplicity =
"# RPs";
3384 sMultiplicity =
"Reference multiplicity (from ESD)";
3387 sMultiplicity =
"# POIs";
3392 TString bootstrapCorrelationsVsMName =
"fBootstrapCorrelationsVsM";
3394 for(
Int_t ci=0;ci<4;ci++)
3396 fBootstrapCorrelationsVsM[ci] =
new TProfile2D(Form(
"%s, %s",bootstrapCorrelationsVsMName.Data(),correlationFlag[ci].Data()),
3397 Form(
"Bootstrap Correlations Vs. M, %s",correlationFlag[ci].
Data()),
3408 TString bootstrapCumulantsVsMName =
"fBootstrapCumulantsVsM";
3410 for(
Int_t co=0;co<4;co++)
3413 Form(
"Bootstrap Cumulants Vs. M, %s",cumulantFlag[co].
Data()),
3439 TString mixedHarmonicsFlagsName =
"fMixedHarmonicsFlags";
3441 fMixedHarmonicsFlags =
new TProfile(mixedHarmonicsFlagsName.Data(),
"Flags for Mixed Harmonics",4,0,4);
3457 TString s2pCorrelationsName =
"f2pCorrelations";
3459 f2pCorrelations =
new TProfile(s2pCorrelationsName.Data(),Form(
"2-particle correlations (n = %d)",
fHarmonic),6,0,6,
"s");
3474 TString s3pCorrelationsName =
"f3pCorrelations";
3476 f3pCorrelations =
new TProfile(s3pCorrelationsName.Data(),Form(
"3-particle correlations (n = %d)",
fHarmonic),10,0,10,
"s");
3497 TString s4pCorrelationsName =
"f4pCorrelations";
3499 f4pCorrelations =
new TProfile(s4pCorrelationsName.Data(),Form(
"4-particle correlations (n = %d)",
fHarmonic),45,0,45,
"s");
3558 TString s5pCorrelationsName =
"f5pCorrelations";
3560 f5pCorrelations =
new TProfile(s5pCorrelationsName.Data(),Form(
"5-particle correlations (n = %d)",
fHarmonic),87,0,87,
"s");
3661 TString s6pCorrelationsName =
"f6pCorrelations";
3663 f6pCorrelations =
new TProfile(s6pCorrelationsName.Data(),Form(
"6-particle correlations (n = %d)",
fHarmonic),1,0.,1.);
3672 TString s7pCorrelationsName =
"f7pCorrelations";
3674 f7pCorrelations =
new TProfile(s7pCorrelationsName.Data(),Form(
"7-particle correlations (n = %d)",
fHarmonic),1,0.,1.);
3683 TString s8pCorrelationsName =
"f8pCorrelations";
3685 f8pCorrelations =
new TProfile(s8pCorrelationsName.Data(),Form(
"8-particle correlations (n = %d)",
fHarmonic),1,0.,1.);
3730 TString mixedHarmonicEventWeightsName =
"fMixedHarmonicEventWeights";
3732 TString powerFlag[2] = {
"linear",
"quadratic"};
3733 for(
Int_t power=0;power<2;power++)
3735 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.);
3749 }
else if (power == 1)
3764 TString mixedHarmonicProductOfEventWeightsName =
"fMixedHarmonicProductOfEventWeights";
3765 mixedHarmonicProductOfEventWeightsName +=
fAnalysisLabel->Data();
3770 for(
Int_t b=1;b<=8;b++)
3778 TString mixedHarmonicProductOfCorrelationsName =
"fMixedHarmonicProductOfCorrelations";
3779 mixedHarmonicProductOfCorrelationsName +=
fAnalysisLabel->Data();