1 /*************************************************************************
2 * Copyright(c) 1998-2008, ALICE Experiment at CERN, All rights reserved. *
4 * Author: The ALICE Off-line Project. *
5 * Contributors are mentioned in the code where appropriate. *
7 * Permission to use, copy, modify and distribute this software and its *
8 * documentation strictly for non-commercial purposes is hereby granted *
9 * without fee, provided that the above copyright notice appears in all *
10 * copies and that both the copyright notice and this permission notice *
11 * appear in the supporting documentation. The authors make no claims *
12 * about the suitability of this software for any purpose. It is *
13 * provided "as is" without express or implied warranty. *
14 **************************************************************************/
16 /**********************************
17 * flow analysis with Q-cumulants *
19 * author: Ante Bilandzic *
20 * (abilandzic@gmail.com) *
21 *********************************/
23 #define AliFlowAnalysisWithQCumulants_cxx
25 #include "Riostream.h"
26 #include "AliFlowCommonConstants.h"
27 #include "AliFlowCommonHist.h"
28 #include "AliFlowCommonHistResults.h"
34 #include "TParticle.h"
38 #include "TProfile2D.h"
41 #include "TPaveLabel.h"
43 #include "AliFlowEventSimple.h"
44 #include "AliFlowTrackSimple.h"
45 #include "AliFlowAnalysisWithQCumulants.h"
65 //================================================================================================================
70 ClassImp(AliFlowAnalysisWithQCumulants)
72 AliFlowAnalysisWithQCumulants::AliFlowAnalysisWithQCumulants():
76 fBookOnlyBasicCCH(kTRUE),
78 fCommonHists2nd(NULL),
79 fCommonHists4th(NULL),
80 fCommonHists6th(NULL),
81 fCommonHists8th(NULL),
82 fCommonHistsResults2nd(NULL),
83 fCommonHistsResults4th(NULL),
84 fCommonHistsResults6th(NULL),
85 fCommonHistsResults8th(NULL),
98 fCommonConstants(NULL),
99 fFillMultipleControlHistograms(kFALSE),
101 fAnalysisLabel(NULL),
102 // 2a.) particle weights:
104 fUsePhiWeights(kFALSE),
105 fUsePtWeights(kFALSE),
106 fUseEtaWeights(kFALSE),
107 fUseTrackWeights(kFALSE),
108 fUseParticleWeights(NULL),
112 // 2b.) event weights:
113 fMultiplicityWeight(NULL),
114 fMultiplicityIs(AliFlowCommonConstants::kRP),
115 // 3.) integrated flow:
117 fIntFlowProfiles(NULL),
118 fIntFlowResults(NULL),
119 fIntFlowAllCorrelationsVsM(NULL),
121 fApplyCorrectionForNUA(kFALSE),
122 fApplyCorrectionForNUAVsM(kFALSE),
126 fPropagateErrorAlsoFromNIT(kFALSE),
127 fCalculateCumulantsVsM(kFALSE),
128 fCalculateAllCorrelationsVsM(kFALSE),
129 fMinimumBiasReferenceFlow(kTRUE),
130 fForgetAboutCovariances(kFALSE),
131 fStorePhiDistributionForOneEvent(kFALSE),
136 fIntFlowCorrelationsEBE(NULL),
137 fIntFlowEventWeightsForCorrelationsEBE(NULL),
138 fIntFlowCorrelationsAllEBE(NULL),
140 fNumberOfPOIsEBE(0.),
141 fReferenceMultiplicityEBE(0.),
142 fAvMultiplicity(NULL),
143 fIntFlowCorrelationsPro(NULL),
144 fIntFlowSquaredCorrelationsPro(NULL),
145 fIntFlowCorrelationsAllPro(NULL),
146 fIntFlowExtraCorrelationsPro(NULL),
147 fIntFlowProductOfCorrelationsPro(NULL),
148 fIntFlowProductOfCorrectionTermsForNUAPro(NULL),
149 fIntFlowCorrelationsHist(NULL),
150 fIntFlowCorrelationsAllHist(NULL),
151 fIntFlowCovariances(NULL),
152 fIntFlowSumOfProductOfEventWeights(NULL),
153 fIntFlowCovariancesNUA(NULL),
154 fIntFlowSumOfProductOfEventWeightsNUA(NULL),
155 fIntFlowQcumulants(NULL),
156 fIntFlowQcumulantsRebinnedInM(NULL),
157 fIntFlowQcumulantsErrorSquaredRatio(NULL),
159 fIntFlowRebinnedInM(NULL),
160 fIntFlowDetectorBias(NULL),
161 // 4.) differential flow:
163 fDiffFlowProfiles(NULL),
164 fDiffFlowResults(NULL),
166 fDiffFlowFlags(NULL),
167 fCalculateDiffFlow(kTRUE),
168 fCalculate2DDiffFlow(kFALSE),
169 fCalculateDiffFlowVsEta(kTRUE),
170 // 5.) other differential correlators:
171 fOtherDiffCorrelatorsList(NULL),
172 // 6.) distributions:
173 fDistributionsList(NULL),
174 fDistributionsFlags(NULL),
175 fStoreDistributions(kFALSE),
178 fPhiDistributionForOneEvent(NULL),
179 // 8.) debugging and cross-checking:
180 fNestedLoopsList(NULL),
181 fEvaluateIntFlowNestedLoops(kFALSE),
182 fEvaluateDiffFlowNestedLoops(kFALSE),
183 fMaxAllowedMultiplicity(10),
184 fEvaluateNestedLoops(NULL),
185 fIntFlowDirectCorrelations(NULL),
186 fIntFlowExtraDirectCorrelations(NULL),
187 fCrossCheckInPtBinNo(10),
188 fCrossCheckInEtaBinNo(20),
189 fNoOfParticlesInBin(NULL),
190 fMixedHarmonicsNestedLoops(NULL),
191 // 9.) mixed harmonics:
192 fMixedHarmonicsList(NULL),
193 fMixedHarmonicsProfiles(NULL),
194 fMixedHarmonicsResults(NULL),
195 fMixedHarmonicsErrorPropagation(NULL),
196 fMixedHarmonicsFlags(NULL),
197 fCalculateMixedHarmonics(kFALSE),
198 fCalculateMixedHarmonicsVsM(kFALSE),
199 f2pCorrelations(NULL),
200 f3pCorrelations(NULL),
201 f4pCorrelations(NULL),
202 f5pCorrelations(NULL),
203 f6pCorrelations(NULL),
204 f7pCorrelations(NULL),
205 f8pCorrelations(NULL),
213 fMixedHarmonicProductOfEventWeights(NULL),
214 fMixedHarmonicProductOfCorrelations(NULL),
215 // 10.) Control histograms:
216 fControlHistogramsList(NULL),
217 fControlHistogramsFlags(NULL),
218 fStoreControlHistograms(kFALSE),
219 fCorrelationNoRPsVsRefMult(NULL),
220 fCorrelationNoPOIsVsRefMult(NULL),
221 fCorrelationNoRPsVsNoPOIs(NULL)
225 // base list to hold all output objects:
226 fHistList = new TList();
227 fHistList->SetName("cobjQC");
228 fHistList->SetOwner(kTRUE);
230 // list to hold histograms with phi, pt and eta weights:
231 fWeightsList = new TList();
233 // multiplicity weight:
234 fMultiplicityWeight = new TString("combinations");
237 fAnalysisLabel = new TString();
239 // initialize all arrays:
240 this->InitializeArraysForIntFlow();
241 this->InitializeArraysForDiffFlow();
242 this->InitializeArraysForDistributions();
243 this->InitializeArraysForVarious();
244 this->InitializeArraysForNestedLoops();
245 this->InitializeArraysForMixedHarmonics();
246 this->InitializeArraysForControlHistograms();
248 } // end of constructor
250 //================================================================================================================
252 AliFlowAnalysisWithQCumulants::~AliFlowAnalysisWithQCumulants()
258 } // end of AliFlowAnalysisWithQCumulants::~AliFlowAnalysisWithQCumulants()
260 //================================================================================================================
262 void AliFlowAnalysisWithQCumulants::Init()
264 // a) Cross check if the settings make sense before starting the QC adventure;
265 // b) Access all common constants;
266 // c) Book all objects;
267 // d) Store flags for integrated and differential flow;
268 // e) Store flags for distributions of corelations;
269 // f) Store harmonic which will be estimated;
270 // g) Store flags for mixed harmonics.
272 //save old value and prevent histograms from being added to directory
273 //to avoid name clashes in case multiple analaysis objects are used
275 Bool_t oldHistAddStatus = TH1::AddDirectoryStatus();
276 TH1::AddDirectory(kFALSE);
278 // a) Cross check if the settings make sense before starting the QC adventure;
279 this->CrossCheckSettings();
280 // b) Access all common constants and book a profile to hold them:
281 this->CommonConstants("Init");
282 // c) Book all objects:
283 this->BookAndFillWeightsHistograms();
284 this->BookAndNestAllLists();
285 this->BookCommonHistograms();
286 this->BookEverythingForIntegratedFlow();
287 this->BookEverythingForDifferentialFlow();
288 this->BookEverythingFor2DDifferentialFlow();
289 this->BookEverythingForDistributions();
290 this->BookEverythingForVarious();
291 this->BookEverythingForNestedLoops();
292 this->BookEverythingForMixedHarmonics();
293 this->BookEverythingForControlHistograms();
295 // d) Store flags for integrated and differential flow:
296 this->StoreIntFlowFlags();
297 this->StoreDiffFlowFlags();
298 // e) Store flags for distributions of corelations:
299 this->StoreFlagsForDistributions();
300 // f) Store harmonic which will be estimated:
301 this->StoreHarmonic();
302 // g) Store flags for mixed harmonics:
303 this->StoreMixedHarmonicsFlags();
305 TH1::AddDirectory(oldHistAddStatus);
306 } // end of void AliFlowAnalysisWithQCumulants::Init()
308 //================================================================================================================
310 void AliFlowAnalysisWithQCumulants::Make(AliFlowEventSimple* anEvent)
312 // Running over data only in this method.
314 // a) Check all pointers used in this method;
315 // b) Define local variables;
316 // c) Fill the common control histograms and call the method to fill fAvMultiplicity;
317 // d) Loop over data and calculate e-b-e quantities Q_{n,k}, S_{p,k} and s_{p,k};
318 // e) Calculate the final expressions for S_{p,k} and s_{p,k} (important !!!!);
319 // f) Call the methods which calculate correlations for reference flow;
320 // g) Call the methods which calculate correlations for differential flow;
321 // h) Call the methods which calculate correlations for 2D differential flow;
322 // i) Call the methods which calculate other differential correlators;
323 // j) Distributions of correlations;
324 // k) Store phi distribution for one event to illustrate flow;
325 // l) Cross-check with nested loops correlators for reference flow;
326 // m) Cross-check with nested loops correlators for differential flow;
327 // n) Reset all event-by-event quantities (very important !!!!).
329 // a) Check all pointers used in this method:
330 this->CheckPointersUsedInMake();
332 // b) Define local variables:
333 Double_t dPhi = 0.; // azimuthal angle in the laboratory frame
334 Double_t dPt = 0.; // transverse momentum
335 Double_t dEta = 0.; // pseudorapidity
336 Double_t wPhi = 1.; // phi weight
337 Double_t wPt = 1.; // pt weight
338 Double_t wEta = 1.; // eta weight
339 Double_t wTrack = 1.; // track weight
340 Int_t nCounterNoRPs = 0; // needed only for shuffling
341 fNumberOfRPsEBE = anEvent->GetNumberOfRPs(); // number of RPs (i.e. number of reference particles)
342 if(fExactNoRPs > 0 && fNumberOfRPsEBE<fExactNoRPs){return;}
343 fNumberOfPOIsEBE = anEvent->GetNumberOfPOIs(); // number of POIs (i.e. number of particles of interest)
344 fReferenceMultiplicityEBE = anEvent->GetReferenceMultiplicity(); // reference multiplicity for current event
345 Double_t ptEta[2] = {0.,0.}; // 0 = dPt, 1 = dEta
347 // c) Fill the common control histograms and call the method to fill fAvMultiplicity:
348 this->FillCommonControlHistograms(anEvent);
349 this->FillAverageMultiplicities(fNumberOfRPsEBE);
350 if(fStoreControlHistograms){this->FillControlHistograms(anEvent);}
352 // d) Loop over data and calculate e-b-e quantities Q_{n,k}, S_{p,k} and s_{p,k}:
353 Int_t nPrim = anEvent->NumberOfTracks(); // nPrim = total number of primary tracks
354 AliFlowTrackSimple *aftsTrack = NULL;
355 Int_t n = fHarmonic; // shortcut for the harmonic
356 for(Int_t i=0;i<nPrim;i++)
358 if(fExactNoRPs > 0 && nCounterNoRPs>fExactNoRPs){continue;}
359 aftsTrack=anEvent->GetTrack(i);
362 if(!(aftsTrack->InRPSelection() || aftsTrack->InPOISelection())){continue;} // safety measure: consider only tracks which are RPs or POIs
363 if(aftsTrack->InRPSelection()) // RP condition:
366 dPhi = aftsTrack->Phi();
367 dPt = aftsTrack->Pt();
368 dEta = aftsTrack->Eta();
369 if(fUsePhiWeights && fPhiWeights && fnBinsPhi) // determine phi weight for this particle:
371 wPhi = fPhiWeights->GetBinContent(1+(Int_t)(TMath::Floor(dPhi*fnBinsPhi/TMath::TwoPi())));
373 if(fUsePtWeights && fPtWeights && fnBinsPt) // determine pt weight for this particle:
375 wPt = fPtWeights->GetBinContent(1+(Int_t)(TMath::Floor((dPt-fPtMin)/fPtBinWidth)));
377 if(fUseEtaWeights && fEtaWeights && fEtaBinWidth) // determine eta weight for this particle:
379 wEta = fEtaWeights->GetBinContent(1+(Int_t)(TMath::Floor((dEta-fEtaMin)/fEtaBinWidth)));
381 // Access track weight:
384 wTrack = aftsTrack->Weight();
386 // Calculate Re[Q_{m*n,k}] and Im[Q_{m*n,k}] for this event (m = 1,2,...,12, k = 0,1,...,8):
387 for(Int_t m=0;m<12;m++) // to be improved - hardwired 6
389 for(Int_t k=0;k<9;k++) // to be improved - hardwired 9
391 (*fReQ)(m,k)+=pow(wPhi*wPt*wEta*wTrack,k)*TMath::Cos((m+1)*n*dPhi);
392 (*fImQ)(m,k)+=pow(wPhi*wPt*wEta*wTrack,k)*TMath::Sin((m+1)*n*dPhi);
395 // Calculate S_{p,k} for this event (Remark: final calculation of S_{p,k} follows after the loop over data bellow):
396 for(Int_t p=0;p<8;p++)
398 for(Int_t k=0;k<9;k++)
400 (*fSpk)(p,k)+=pow(wPhi*wPt*wEta*wTrack,k);
403 // Differential flow:
404 if(fCalculateDiffFlow || fCalculate2DDiffFlow)
408 // Calculate r_{m*n,k} and s_{p,k} (r_{m,k} is 'p-vector' for RPs):
409 for(Int_t k=0;k<9;k++) // to be improved - hardwired 9
411 for(Int_t m=0;m<4;m++) // to be improved - hardwired 4
413 if(fCalculateDiffFlow)
415 for(Int_t pe=0;pe<1+(Int_t)fCalculateDiffFlowVsEta;pe++) // pt or eta
417 fReRPQ1dEBE[0][pe][m][k]->Fill(ptEta[pe],pow(wPhi*wPt*wEta*wTrack,k)*TMath::Cos((m+1.)*n*dPhi),1.);
418 fImRPQ1dEBE[0][pe][m][k]->Fill(ptEta[pe],pow(wPhi*wPt*wEta*wTrack,k)*TMath::Sin((m+1.)*n*dPhi),1.);
419 if(m==0) // s_{p,k} does not depend on index m
421 fs1dEBE[0][pe][k]->Fill(ptEta[pe],pow(wPhi*wPt*wEta*wTrack,k),1.);
422 } // end of if(m==0) // s_{p,k} does not depend on index m
423 } // end of for(Int_t pe=0;pe<2;pe++) // pt or eta
424 } // end of if(fCalculateDiffFlow)
425 if(fCalculate2DDiffFlow)
427 fReRPQ2dEBE[0][m][k]->Fill(dPt,dEta,pow(wPhi*wPt*wEta*wTrack,k)*TMath::Cos((m+1.)*n*dPhi),1.);
428 fImRPQ2dEBE[0][m][k]->Fill(dPt,dEta,pow(wPhi*wPt*wEta*wTrack,k)*TMath::Sin((m+1.)*n*dPhi),1.);
429 if(m==0) // s_{p,k} does not depend on index m
431 fs2dEBE[0][k]->Fill(dPt,dEta,pow(wPhi*wPt*wEta*wTrack,k),1.);
432 } // end of if(m==0) // s_{p,k} does not depend on index m
433 } // end of if(fCalculate2DDiffFlow)
434 } // end of for(Int_t m=0;m<4;m++) // to be improved - hardwired 4
435 } // end of for(Int_t k=0;k<9;k++) // to be improved - hardwired 9
436 // Checking if RP particle is also POI particle:
437 if(aftsTrack->InPOISelection())
439 // Calculate q_{m*n,k} and s_{p,k} ('q-vector' and 's' for RPs && POIs):
440 for(Int_t k=0;k<9;k++) // to be improved - hardwired 9
442 for(Int_t m=0;m<4;m++) // to be improved - hardwired 4
444 if(fCalculateDiffFlow)
446 for(Int_t pe=0;pe<1+(Int_t)fCalculateDiffFlowVsEta;pe++) // pt or eta
448 fReRPQ1dEBE[2][pe][m][k]->Fill(ptEta[pe],pow(wPhi*wPt*wEta*wTrack,k)*TMath::Cos((m+1.)*n*dPhi),1.);
449 fImRPQ1dEBE[2][pe][m][k]->Fill(ptEta[pe],pow(wPhi*wPt*wEta*wTrack,k)*TMath::Sin((m+1.)*n*dPhi),1.);
450 if(m==0) // s_{p,k} does not depend on index m
452 fs1dEBE[2][pe][k]->Fill(ptEta[pe],pow(wPhi*wPt*wEta*wTrack,k),1.);
453 } // end of if(m==0) // s_{p,k} does not depend on index m
454 } // end of for(Int_t pe=0;pe<2;pe++) // pt or eta
455 } // end of if(fCalculateDiffFlow)
456 if(fCalculate2DDiffFlow)
458 fReRPQ2dEBE[2][m][k]->Fill(dPt,dEta,pow(wPhi*wPt*wEta*wTrack,k)*TMath::Cos((m+1.)*n*dPhi),1.);
459 fImRPQ2dEBE[2][m][k]->Fill(dPt,dEta,pow(wPhi*wPt*wEta*wTrack,k)*TMath::Sin((m+1.)*n*dPhi),1.);
460 if(m==0) // s_{p,k} does not depend on index m
462 fs2dEBE[2][k]->Fill(dPt,dEta,pow(wPhi*wPt*wEta*wTrack,k),1.);
463 } // end of if(m==0) // s_{p,k} does not depend on index m
464 } // end of if(fCalculate2DDiffFlow)
465 } // end of for(Int_t m=0;m<4;m++) // to be improved - hardwired 4
466 } // end of for(Int_t k=0;k<9;k++) // to be improved - hardwired 9
467 } // end of if(aftsTrack->InPOISelection())
468 } // end of if(fCalculateDiffFlow || fCalculate2DDiffFlow)
469 } // end of if(pTrack->InRPSelection())
470 if(aftsTrack->InPOISelection())
472 dPhi = aftsTrack->Phi();
473 dPt = aftsTrack->Pt();
474 dEta = aftsTrack->Eta();
479 if(fUsePhiWeights && fPhiWeights && fnBinsPhi && aftsTrack->InRPSelection()) // determine phi weight for POI && RP particle:
481 wPhi = fPhiWeights->GetBinContent(1+(Int_t)(TMath::Floor(dPhi*fnBinsPhi/TMath::TwoPi())));
483 if(fUsePtWeights && fPtWeights && fnBinsPt && aftsTrack->InRPSelection()) // determine pt weight for POI && RP particle:
485 wPt = fPtWeights->GetBinContent(1+(Int_t)(TMath::Floor((dPt-fPtMin)/fPtBinWidth)));
487 if(fUseEtaWeights && fEtaWeights && fEtaBinWidth && aftsTrack->InRPSelection()) // determine eta weight for POI && RP particle:
489 wEta = fEtaWeights->GetBinContent(1+(Int_t)(TMath::Floor((dEta-fEtaMin)/fEtaBinWidth)));
491 // Access track weight for POI && RP particle:
492 if(aftsTrack->InRPSelection() && fUseTrackWeights)
494 wTrack = aftsTrack->Weight();
498 // Calculate p_{m*n,k} ('p-vector' for POIs):
499 for(Int_t k=0;k<9;k++) // to be improved - hardwired 9
501 for(Int_t m=0;m<4;m++) // to be improved - hardwired 4
503 if(fCalculateDiffFlow)
505 for(Int_t pe=0;pe<1+(Int_t)fCalculateDiffFlowVsEta;pe++) // pt or eta
507 fReRPQ1dEBE[1][pe][m][k]->Fill(ptEta[pe],pow(wPhi*wPt*wEta*wTrack,k)*TMath::Cos((m+1.)*n*dPhi),1.);
508 fImRPQ1dEBE[1][pe][m][k]->Fill(ptEta[pe],pow(wPhi*wPt*wEta*wTrack,k)*TMath::Sin((m+1.)*n*dPhi),1.);
509 } // end of for(Int_t pe=0;pe<2;pe++) // pt or eta
510 } // end of if(fCalculateDiffFlow)
511 if(fCalculate2DDiffFlow)
513 fReRPQ2dEBE[1][m][k]->Fill(dPt,dEta,pow(wPhi*wPt*wEta*wTrack,k)*TMath::Cos((m+1.)*n*dPhi),1.);
514 fImRPQ2dEBE[1][m][k]->Fill(dPt,dEta,pow(wPhi*wPt*wEta*wTrack,k)*TMath::Sin((m+1.)*n*dPhi),1.);
515 } // end of if(fCalculate2DDiffFlow)
516 } // end of for(Int_t m=0;m<4;m++) // to be improved - hardwired 4
517 } // end of for(Int_t k=0;k<9;k++) // to be improved - hardwired 9
518 } // end of if(pTrack->InPOISelection())
519 } else // to if(aftsTrack)
521 printf("\n WARNING (QC): No particle (i.e. aftsTrack is a NULL pointer in AFAWQC::Make())!!!!\n\n");
523 } // end of for(Int_t i=0;i<nPrim;i++)
525 // e) Calculate the final expressions for S_{p,k} and s_{p,k} (important !!!!):
526 for(Int_t p=0;p<8;p++)
528 for(Int_t k=0;k<9;k++)
530 (*fSpk)(p,k)=pow((*fSpk)(p,k),p+1);
531 // ... for the time being s_{p,k} dosn't need higher powers, so no need to finalize it here ...
532 } // end of for(Int_t k=0;k<9;k++)
533 } // end of for(Int_t p=0;p<8;p++)
535 // f) Call the methods which calculate correlations for reference flow:
536 if(!fEvaluateIntFlowNestedLoops)
538 if(!(fUsePhiWeights||fUsePtWeights||fUseEtaWeights||fUseTrackWeights))
540 if(fNumberOfRPsEBE>1){this->CalculateIntFlowCorrelations();} // without using particle weights
541 } else // to if(!(fUsePhiWeights||fUsePtWeights||fUseEtaWeights||fUseTrackWeights))
543 if(fNumberOfRPsEBE>1){this->CalculateIntFlowCorrelationsUsingParticleWeights();} // with using particle weights
545 // Whether or not using particle weights the following is calculated in the same way:
546 if(fNumberOfRPsEBE>3){this->CalculateIntFlowProductOfCorrelations();}
547 if(fNumberOfRPsEBE>1){this->CalculateIntFlowSumOfEventWeights();}
548 if(fNumberOfRPsEBE>1){this->CalculateIntFlowSumOfProductOfEventWeights();}
549 // Non-isotropic terms:
550 if(!(fUsePhiWeights||fUsePtWeights||fUseEtaWeights||fUseTrackWeights))
552 if(fNumberOfRPsEBE>0){this->CalculateIntFlowCorrectionsForNUASinTerms();}
553 if(fNumberOfRPsEBE>0){this->CalculateIntFlowCorrectionsForNUACosTerms();}
554 } else // to if(!(fUsePhiWeights||fUsePtWeights||fUseEtaWeights||fUseTrackWeights))
556 if(fNumberOfRPsEBE>0){this->CalculateIntFlowCorrectionsForNUASinTermsUsingParticleWeights();}
557 if(fNumberOfRPsEBE>0){this->CalculateIntFlowCorrectionsForNUACosTermsUsingParticleWeights();}
559 // Whether or not using particle weights the following is calculated in the same way:
560 if(fNumberOfRPsEBE>0){this->CalculateIntFlowProductOfCorrectionTermsForNUA();}
561 if(fNumberOfRPsEBE>0){this->CalculateIntFlowSumOfEventWeightsNUA();}
562 if(fNumberOfRPsEBE>0){this->CalculateIntFlowSumOfProductOfEventWeightsNUA();}
564 if(fCalculateMixedHarmonics){this->CalculateMixedHarmonics();}
565 } // end of if(!fEvaluateIntFlowNestedLoops)
567 // g) Call the methods which calculate correlations for differential flow:
568 if(!fEvaluateDiffFlowNestedLoops && fCalculateDiffFlow)
570 if(!(fUsePhiWeights||fUsePtWeights||fUseEtaWeights||fUseTrackWeights))
572 // Without using particle weights:
573 this->CalculateDiffFlowCorrelations("RP","Pt");
574 if(fCalculateDiffFlowVsEta){this->CalculateDiffFlowCorrelations("RP","Eta");}
575 this->CalculateDiffFlowCorrelations("POI","Pt");
576 if(fCalculateDiffFlowVsEta){this->CalculateDiffFlowCorrelations("POI","Eta");}
577 // Non-isotropic terms:
578 this->CalculateDiffFlowCorrectionsForNUASinTerms("RP","Pt");
579 if(fCalculateDiffFlowVsEta){this->CalculateDiffFlowCorrectionsForNUASinTerms("RP","Eta");}
580 this->CalculateDiffFlowCorrectionsForNUASinTerms("POI","Pt");
581 if(fCalculateDiffFlowVsEta){this->CalculateDiffFlowCorrectionsForNUASinTerms("POI","Eta");}
582 this->CalculateDiffFlowCorrectionsForNUACosTerms("RP","Pt");
583 if(fCalculateDiffFlowVsEta){this->CalculateDiffFlowCorrectionsForNUACosTerms("RP","Eta");}
584 this->CalculateDiffFlowCorrectionsForNUACosTerms("POI","Pt");
585 if(fCalculateDiffFlowVsEta){this->CalculateDiffFlowCorrectionsForNUACosTerms("POI","Eta");}
586 } else // to if(!(fUsePhiWeights||fUsePtWeights||fUseEtaWeights||fUseTrackWeights))
588 // With using particle weights:
589 this->CalculateDiffFlowCorrelationsUsingParticleWeights("RP","Pt");
590 if(fCalculateDiffFlowVsEta){this->CalculateDiffFlowCorrelationsUsingParticleWeights("RP","Eta");}
591 this->CalculateDiffFlowCorrelationsUsingParticleWeights("POI","Pt");
592 if(fCalculateDiffFlowVsEta){this->CalculateDiffFlowCorrelationsUsingParticleWeights("POI","Eta");}
593 // Non-isotropic terms:
594 this->CalculateDiffFlowCorrectionsForNUASinTermsUsingParticleWeights("RP","Pt");
595 if(fCalculateDiffFlowVsEta){this->CalculateDiffFlowCorrectionsForNUASinTermsUsingParticleWeights("RP","Eta");}
596 this->CalculateDiffFlowCorrectionsForNUASinTermsUsingParticleWeights("POI","Pt");
597 if(fCalculateDiffFlowVsEta){this->CalculateDiffFlowCorrectionsForNUASinTermsUsingParticleWeights("POI","Eta");}
598 this->CalculateDiffFlowCorrectionsForNUACosTermsUsingParticleWeights("RP","Pt");
599 if(fCalculateDiffFlowVsEta){this->CalculateDiffFlowCorrectionsForNUACosTermsUsingParticleWeights("RP","Eta");}
600 this->CalculateDiffFlowCorrectionsForNUACosTermsUsingParticleWeights("POI","Pt");
601 if(fCalculateDiffFlowVsEta){this->CalculateDiffFlowCorrectionsForNUACosTermsUsingParticleWeights("POI","Eta");}
603 // Whether or not using particle weights the following is calculated in the same way:
604 this->CalculateDiffFlowProductOfCorrelations("RP","Pt");
605 if(fCalculateDiffFlowVsEta){this->CalculateDiffFlowProductOfCorrelations("RP","Eta");}
606 this->CalculateDiffFlowProductOfCorrelations("POI","Pt");
607 if(fCalculateDiffFlowVsEta){this->CalculateDiffFlowProductOfCorrelations("POI","Eta");}
608 this->CalculateDiffFlowSumOfEventWeights("RP","Pt");
609 if(fCalculateDiffFlowVsEta){this->CalculateDiffFlowSumOfEventWeights("RP","Eta");}
610 this->CalculateDiffFlowSumOfEventWeights("POI","Pt");
611 if(fCalculateDiffFlowVsEta){this->CalculateDiffFlowSumOfEventWeights("POI","Eta");}
612 this->CalculateDiffFlowSumOfProductOfEventWeights("RP","Pt");
613 if(fCalculateDiffFlowVsEta){this->CalculateDiffFlowSumOfProductOfEventWeights("RP","Eta");}
614 this->CalculateDiffFlowSumOfProductOfEventWeights("POI","Pt");
615 if(fCalculateDiffFlowVsEta){this->CalculateDiffFlowSumOfProductOfEventWeights("POI","Eta");}
616 } // end of if(!fEvaluateDiffFlowNestedLoops && fCalculateDiffFlow)
618 // h) Call the methods which calculate correlations for 2D differential flow:
619 if(!fEvaluateDiffFlowNestedLoops && fCalculate2DDiffFlow)
621 if(!(fUsePhiWeights||fUsePtWeights||fUseEtaWeights||fUseTrackWeights))
623 // Without using particle weights:
624 this->Calculate2DDiffFlowCorrelations("RP");
625 this->Calculate2DDiffFlowCorrelations("POI");
626 // Non-isotropic terms:
628 } else // to if(!(fUsePhiWeights||fUsePtWeights||fUseEtaWeights||fUseTrackWeights))
630 // With using particle weights:
632 // Non-isotropic terms:
635 // Whether or not using particle weights the following is calculated in the same way:
637 } // end of if(!fEvaluateDiffFlowNestedLoops && fCalculate2DDiffFlow)
639 // i) Call the methods which calculate other differential correlators:
640 if(!fEvaluateDiffFlowNestedLoops && fCalculateDiffFlow)
642 if(!(fUsePhiWeights||fUsePtWeights||fUseEtaWeights||fUseTrackWeights))
644 // Without using particle weights:
645 this->CalculateOtherDiffCorrelators("RP","Pt");
646 if(fCalculateDiffFlowVsEta){this->CalculateOtherDiffCorrelators("RP","Eta");}
647 this->CalculateOtherDiffCorrelators("POI","Pt");
648 if(fCalculateDiffFlowVsEta){this->CalculateOtherDiffCorrelators("POI","Eta");}
649 } else // to if(!(fUsePhiWeights||fUsePtWeights||fUseEtaWeights||fUseTrackWeights))
651 // With using particle weights:
654 // Whether or not using particle weights the following is calculated in the same way:
656 } // end of if(!fEvaluateDiffFlowNestedLoops)
658 // j) Distributions of correlations:
659 if(fStoreDistributions){this->StoreDistributionsOfCorrelations();}
661 // k) Store phi distribution for one event to illustrate flow:
662 if(fStorePhiDistributionForOneEvent){this->StorePhiDistributionForOneEvent(anEvent);}
664 // l) Cross-check with nested loops correlators for reference flow:
665 if(fEvaluateIntFlowNestedLoops){this->EvaluateIntFlowNestedLoops(anEvent);}
667 // m) Cross-check with nested loops correlators for differential flow:
668 if(fEvaluateDiffFlowNestedLoops){this->EvaluateDiffFlowNestedLoops(anEvent);}
670 // n) Reset all event-by-event quantities (very important !!!!):
671 this->ResetEventByEventQuantities();
673 } // end of AliFlowAnalysisWithQCumulants::Make(AliFlowEventSimple* anEvent)
675 //=======================================================================================================================
677 void AliFlowAnalysisWithQCumulants::Finish()
679 // Calculate the final results.
681 // a) Check all pointers used in this method;
682 // b) Access the constants;
683 // c) Access the flags;
684 // d) Calculate reference cumulants (not corrected for detector effects);
685 // e) Correct reference cumulants for detector effects;
686 // f) Calculate reference flow;
687 // g) Store results for reference flow in AliFlowCommonHistResults and print them on the screen;
688 // h) Calculate the final results for differential flow (without/with weights);
689 // i) Correct the results for differential flow (without/with weights) for effects of non-uniform acceptance (NUA);
690 // j) Calculate the final results for integrated flow (RP/POI) and store in AliFlowCommonHistResults;
691 // k) Store results for differential flow in AliFlowCommonHistResults;
692 // l) Print the final results for integrated flow (RP/POI) on the screen;
693 // m) Cross-checking: Results from Q-vectors vs results from nested loops;
694 // i) Calculate cumulants for mixed harmonics.
696 // a) Check all pointers used in this method:
697 this->CheckPointersUsedInFinish();
699 // b) Access the constants:
700 this->CommonConstants("Finish");
702 if(fCommonHists && fCommonHists->GetHarmonic()) // to be improved (moved somewhere else)
704 fHarmonic = (Int_t)(fCommonHists->GetHarmonic())->GetBinContent(1);
707 // c) Access the flags: // to be improved (implement a method for this? should I store again the flags because they can get modified with redoFinish?)
708 fUsePhiWeights = (Bool_t)fUseParticleWeights->GetBinContent(1);
709 fUsePtWeights = (Bool_t)fUseParticleWeights->GetBinContent(2);
710 fUseEtaWeights = (Bool_t)fUseParticleWeights->GetBinContent(3);
711 fUseTrackWeights = (Bool_t)fUseParticleWeights->GetBinContent(4);
712 fApplyCorrectionForNUA = (Bool_t)fIntFlowFlags->GetBinContent(3);
713 fPrintFinalResults[0] = (Bool_t)fIntFlowFlags->GetBinContent(4);
714 fPrintFinalResults[1] = (Bool_t)fIntFlowFlags->GetBinContent(5);
715 fPrintFinalResults[2] = (Bool_t)fIntFlowFlags->GetBinContent(6);
716 fPrintFinalResults[3] = (Bool_t)fIntFlowFlags->GetBinContent(7);
717 fApplyCorrectionForNUAVsM = (Bool_t)fIntFlowFlags->GetBinContent(8);
718 fPropagateErrorAlsoFromNIT = (Bool_t)fIntFlowFlags->GetBinContent(9);
719 fCalculateCumulantsVsM = (Bool_t)fIntFlowFlags->GetBinContent(10);
720 fMinimumBiasReferenceFlow = (Bool_t)fIntFlowFlags->GetBinContent(11);
721 fForgetAboutCovariances = (Bool_t)fIntFlowFlags->GetBinContent(12);
722 fStorePhiDistributionForOneEvent = (Bool_t)fIntFlowFlags->GetBinContent(13);
723 fFillMultipleControlHistograms = (Bool_t)fIntFlowFlags->GetBinContent(14);
724 fCalculateAllCorrelationsVsM = (Bool_t)fIntFlowFlags->GetBinContent(15);
725 fEvaluateIntFlowNestedLoops = (Bool_t)fEvaluateNestedLoops->GetBinContent(1);
726 fEvaluateDiffFlowNestedLoops = (Bool_t)fEvaluateNestedLoops->GetBinContent(2);
727 fCrossCheckInPtBinNo = (Int_t)fEvaluateNestedLoops->GetBinContent(3);
728 fCrossCheckInEtaBinNo = (Int_t)fEvaluateNestedLoops->GetBinContent(4);
729 fCalculateMixedHarmonics = (Bool_t)fMixedHarmonicsFlags->GetBinContent(1);
730 //fHarmonic = (Int_t)fMixedHarmonicsFlags->GetBinContent(2); // TBI should I add inpdependent generic harmonic here?
731 fCalculateMixedHarmonicsVsM = (Bool_t)fMixedHarmonicsFlags->GetBinContent(3);
733 // d) Calculate reference cumulants (not corrected for detector effects):
734 this->FinalizeCorrelationsIntFlow();
735 this->CalculateCovariancesIntFlow();
736 this->CalculateCumulantsIntFlow();
738 // e) Correct reference cumulants for detector effects:
739 this->FinalizeCorrectionTermsForNUAIntFlow();
740 this->CalculateCovariancesNUAIntFlow();
741 this->CalculateQcumulantsCorrectedForNUAIntFlow();
743 // f) Calculate reference flow:
744 this->CalculateReferenceFlow();
746 // g) Store results for reference flow in AliFlowCommonHistResults and print them on the screen:
747 this->FillCommonHistResultsIntFlow();
748 if(fPrintFinalResults[0]){this->PrintFinalResultsForIntegratedFlow("RF");}
749 if(fPrintFinalResults[3] && fCalculateCumulantsVsM){this->PrintFinalResultsForIntegratedFlow("RF, rebinned in M");}
751 // h) Calculate the final results for differential flow (without/with weights):
752 if(fCalculateDiffFlow)
754 this->FinalizeReducedCorrelations("RP","Pt");
755 if(fCalculateDiffFlowVsEta){this->FinalizeReducedCorrelations("RP","Eta");}
756 this->FinalizeReducedCorrelations("POI","Pt");
757 if(fCalculateDiffFlowVsEta){this->FinalizeReducedCorrelations("POI","Eta");}
758 this->CalculateDiffFlowCovariances("RP","Pt");
759 if(fCalculateDiffFlowVsEta){this->CalculateDiffFlowCovariances("RP","Eta");}
760 this->CalculateDiffFlowCovariances("POI","Pt");
761 if(fCalculateDiffFlowVsEta){this->CalculateDiffFlowCovariances("POI","Eta");}
762 this->CalculateDiffFlowCumulants("RP","Pt");
763 if(fCalculateDiffFlowVsEta){this->CalculateDiffFlowCumulants("RP","Eta");}
764 this->CalculateDiffFlowCumulants("POI","Pt");
765 if(fCalculateDiffFlowVsEta){this->CalculateDiffFlowCumulants("POI","Eta");}
766 this->CalculateDiffFlow("RP","Pt");
767 if(fCalculateDiffFlowVsEta){this->CalculateDiffFlow("RP","Eta");}
768 this->CalculateDiffFlow("POI","Pt");
769 if(fCalculateDiffFlowVsEta){this->CalculateDiffFlow("POI","Eta");}
770 } // if(fCalculateDiffFlow)
772 // i) Correct the results for differential flow (without/with weights) for effects of non-uniform acceptance (NUA):
773 if(fCalculateDiffFlow)
775 this->FinalizeCorrectionTermsForNUADiffFlow("RP","Pt");
776 if(fCalculateDiffFlowVsEta){this->FinalizeCorrectionTermsForNUADiffFlow("RP","Eta");}
777 this->FinalizeCorrectionTermsForNUADiffFlow("POI","Pt");
778 if(fCalculateDiffFlowVsEta){this->FinalizeCorrectionTermsForNUADiffFlow("POI","Eta");}
779 this->CalculateDiffFlowCumulantsCorrectedForNUA("RP","Pt");
780 if(fCalculateDiffFlowVsEta){this->CalculateDiffFlowCumulantsCorrectedForNUA("RP","Eta");}
781 this->CalculateDiffFlowCumulantsCorrectedForNUA("POI","Pt");
782 if(fCalculateDiffFlowVsEta){this->CalculateDiffFlowCumulantsCorrectedForNUA("POI","Eta");}
783 if(fApplyCorrectionForNUA)
785 this->CalculateDiffFlowCorrectedForNUA("RP","Pt");
786 if(fCalculateDiffFlowVsEta){this->CalculateDiffFlowCorrectedForNUA("RP","Eta");}
787 this->CalculateDiffFlowCorrectedForNUA("POI","Pt");
788 if(fCalculateDiffFlowVsEta){this->CalculateDiffFlowCorrectedForNUA("POI","Eta");}
790 } // end of if(fCalculateDiffFlow && fApplyCorrectionForNUA)
792 // i) Calcualate final results for 2D differential flow:
793 if(fCalculate2DDiffFlow)
795 this->Calculate2DDiffFlowCumulants("RP");
796 this->Calculate2DDiffFlowCumulants("POI");
797 this->Calculate2DDiffFlow("RP");
798 this->Calculate2DDiffFlow("POI");
799 } // end of if(fCalculate2DDiffFlow)
801 // j) Calculate the final results for integrated flow (RP/POI) and store in AliFlowCommonHistResults:
802 if(fCalculateDiffFlow)
804 this->CalculateFinalResultsForRPandPOIIntegratedFlow("RP");
805 this->CalculateFinalResultsForRPandPOIIntegratedFlow("POI");
808 // k) Store results for differential flow in AliFlowCommonHistResults:
809 if(fCalculateDiffFlow)
811 this->FillCommonHistResultsDiffFlow("RP");
812 this->FillCommonHistResultsDiffFlow("POI");
815 // l) Print the final results for integrated flow (RP/POI) on the screen:
816 if(fPrintFinalResults[1] && fCalculateDiffFlow){this->PrintFinalResultsForIntegratedFlow("RP");}
817 if(fPrintFinalResults[2] && fCalculateDiffFlow){this->PrintFinalResultsForIntegratedFlow("POI");}
819 // m) Cross-checking: Results from Q-vectors vs results from nested loops:
820 // m1) Reference flow:
821 if(fEvaluateIntFlowNestedLoops)
823 this->CrossCheckIntFlowCorrelations();
824 this->CrossCheckIntFlowCorrectionTermsForNUA();
825 if(fUsePhiWeights||fUsePtWeights||fUseEtaWeights||fUseTrackWeights){this->CrossCheckIntFlowExtraCorrelations();}
826 if(fCalculateMixedHarmonics){this->CrossCheckIntFlowCorrelations();}
827 } // end of if(fEvaluateIntFlowNestedLoops)
828 // m2) Differential flow:
829 if(fEvaluateDiffFlowNestedLoops && fCalculateDiffFlow)
832 this->PrintNumberOfParticlesInSelectedBin();
833 this->CrossCheckDiffFlowCorrelations("RP","Pt");
834 if(fCalculateDiffFlowVsEta){this->CrossCheckDiffFlowCorrelations("RP","Eta");}
835 this->CrossCheckDiffFlowCorrelations("POI","Pt");
836 if(fCalculateDiffFlowVsEta){this->CrossCheckDiffFlowCorrelations("POI","Eta");}
837 // Correction terms for non-uniform acceptance:
838 this->CrossCheckDiffFlowCorrectionTermsForNUA("RP","Pt");
839 if(fCalculateDiffFlowVsEta){this->CrossCheckDiffFlowCorrectionTermsForNUA("RP","Eta");}
840 this->CrossCheckDiffFlowCorrectionTermsForNUA("POI","Pt");
841 if(fCalculateDiffFlowVsEta){this->CrossCheckDiffFlowCorrectionTermsForNUA("POI","Eta");}
842 // Other differential correlators:
843 this->CrossCheckOtherDiffCorrelators("RP","Pt");
844 if(fCalculateDiffFlowVsEta){this->CrossCheckOtherDiffCorrelators("RP","Eta");}
845 this->CrossCheckOtherDiffCorrelators("POI","Pt");
846 if(fCalculateDiffFlowVsEta){this->CrossCheckOtherDiffCorrelators("POI","Eta");}
847 } // end of if(fEvaluateDiffFlowNestedLoops)
849 // i) Calculate cumulants for mixed harmonics:
850 if(fCalculateMixedHarmonics){this->CalculateCumulantsMixedHarmonics();}
852 } // end of AliFlowAnalysisWithQCumulants::Finish()
854 //=======================================================================================================================
856 void AliFlowAnalysisWithQCumulants::EvaluateIntFlowNestedLoops(AliFlowEventSimple* anEvent)
858 // Evaluate all correlators for reference flow with nested loops.
860 Int_t nPrim = anEvent->NumberOfTracks(); // number of primaries
861 if(nPrim>0 && nPrim<=fMaxAllowedMultiplicity) // by default fMaxAllowedMultiplicity = 10
863 // Without using particle weights:
864 if(!(fUsePhiWeights||fUsePtWeights||fUseEtaWeights||fUseTrackWeights))
867 this->CalculateIntFlowCorrelations(); // from Q-vectors
868 this->EvaluateIntFlowCorrelationsWithNestedLoops(anEvent); // from nested loops (TBI: do I have to pass here anEvent or not?)
869 // Correction for non-uniform acceptance:
870 this->CalculateIntFlowCorrectionsForNUASinTerms(); // from Q-vectors (sin terms)
871 this->CalculateIntFlowCorrectionsForNUACosTerms(); // from Q-vectors (cos terms)
872 this->EvaluateIntFlowCorrectionsForNUAWithNestedLoops(anEvent); // from nested loops (both sin and cos terms)
874 if(fCalculateMixedHarmonics)
876 this->CalculateMixedHarmonics(); // from Q-vectors
877 this->EvaluateMixedHarmonicsWithNestedLoops(anEvent); // from nested loops (TBI: do I have to pass here anEvent or not?)
878 } // end of if(fCalculateMixedHarmonics)
880 // Using particle weights:
881 if(fUsePhiWeights||fUsePtWeights||fUseEtaWeights||fUseTrackWeights)
884 this->CalculateIntFlowCorrelationsUsingParticleWeights(); // from Q-vectors
885 this->EvaluateIntFlowCorrelationsWithNestedLoopsUsingParticleWeights(anEvent); // from nested loops (to be improved: do I have to pass here anEvent or not?)
886 // Correction for non-uniform acceptance:
887 this->CalculateIntFlowCorrectionsForNUASinTermsUsingParticleWeights(); // from Q-vectors (sin terms)
888 this->CalculateIntFlowCorrectionsForNUACosTermsUsingParticleWeights(); // from Q-vectors (cos terms)
889 this->EvaluateIntFlowCorrectionsForNUAWithNestedLoopsUsingParticleWeights(anEvent); // from nested loops (both sin and cos terms)
891 } else if(nPrim>fMaxAllowedMultiplicity) // to if(nPrim>0 && nPrim<=fMaxAllowedMultiplicity)
894 cout<<"Skipping the event because multiplicity is "<<nPrim<<". Too high to evaluate nested loops!"<<endl;
898 cout<<"Skipping the event because multiplicity is "<<nPrim<<"."<<endl;
901 } // end of void AliFlowAnalysisWithQCumulants::EvaluateIntFlowNestedLoops(AliFlowEventSimple* anEvent)
903 //=======================================================================================================================
905 void AliFlowAnalysisWithQCumulants::EvaluateDiffFlowNestedLoops(AliFlowEventSimple* anEvent)
907 // Evalauted all correlators for differential flow with nested loops.
909 if(!fCalculateDiffFlow){return;}
911 Int_t nPrim = anEvent->NumberOfTracks(); // number of primaries
912 if(nPrim>0 && nPrim<=fMaxAllowedMultiplicity) // by default fMaxAllowedMultiplicity = 10
914 // Without using particle weights:
915 if(!(fUsePhiWeights||fUsePtWeights||fUseEtaWeights||fUseTrackWeights))
917 // 1.) Reduced correlations:
919 this->CalculateDiffFlowCorrelations("RP","Pt");
920 this->CalculateDiffFlowCorrelations("RP","Eta");
921 this->CalculateDiffFlowCorrelations("POI","Pt");
922 this->CalculateDiffFlowCorrelations("POI","Eta");
924 this->EvaluateDiffFlowCorrelationsWithNestedLoops(anEvent,"RP","Pt");
925 this->EvaluateDiffFlowCorrelationsWithNestedLoops(anEvent,"RP","Eta");
926 this->EvaluateDiffFlowCorrelationsWithNestedLoops(anEvent,"POI","Pt");
927 this->EvaluateDiffFlowCorrelationsWithNestedLoops(anEvent,"POI","Eta");
928 // 2.) Reduced corrections for non-uniform acceptance:
930 this->CalculateDiffFlowCorrectionsForNUASinTerms("RP","Pt");
931 this->CalculateDiffFlowCorrectionsForNUASinTerms("RP","Eta");
932 this->CalculateDiffFlowCorrectionsForNUASinTerms("POI","Pt");
933 this->CalculateDiffFlowCorrectionsForNUASinTerms("POI","Eta");
934 this->CalculateDiffFlowCorrectionsForNUACosTerms("RP","Pt");
935 this->CalculateDiffFlowCorrectionsForNUACosTerms("RP","Eta");
936 this->CalculateDiffFlowCorrectionsForNUACosTerms("POI","Pt");
937 this->CalculateDiffFlowCorrectionsForNUACosTerms("POI","Eta");
939 this->EvaluateDiffFlowCorrectionTermsForNUAWithNestedLoops(anEvent,"RP","Pt");
940 this->EvaluateDiffFlowCorrectionTermsForNUAWithNestedLoops(anEvent,"RP","Eta");
941 this->EvaluateDiffFlowCorrectionTermsForNUAWithNestedLoops(anEvent,"POI","Pt");
942 this->EvaluateDiffFlowCorrectionTermsForNUAWithNestedLoops(anEvent,"POI","Eta");
943 // 3.) Other differential correlators:
945 this->CalculateOtherDiffCorrelators("RP","Pt");
946 this->CalculateOtherDiffCorrelators("RP","Eta");
947 this->CalculateOtherDiffCorrelators("POI","Pt");
948 this->CalculateOtherDiffCorrelators("POI","Eta");
950 this->EvaluateOtherDiffCorrelatorsWithNestedLoops(anEvent,"RP","Pt");
951 this->EvaluateOtherDiffCorrelatorsWithNestedLoops(anEvent,"RP","Eta");
952 this->EvaluateOtherDiffCorrelatorsWithNestedLoops(anEvent,"POI","Pt");
953 this->EvaluateOtherDiffCorrelatorsWithNestedLoops(anEvent,"POI","Eta");
954 } // end of if(!(fUsePhiWeights||fUsePtWeights||fUseEtaWeights||fUseTrackWeights))
955 // Using particle weights:
956 if(fUsePhiWeights||fUsePtWeights||fUseEtaWeights||fUseTrackWeights)
958 this->CalculateDiffFlowCorrelationsUsingParticleWeights("RP","Pt");
959 this->CalculateDiffFlowCorrelationsUsingParticleWeights("RP","Eta");
960 this->CalculateDiffFlowCorrelationsUsingParticleWeights("POI","Pt");
961 this->CalculateDiffFlowCorrelationsUsingParticleWeights("POI","Eta");
962 this->CalculateDiffFlowCorrectionsForNUASinTermsUsingParticleWeights("RP","Pt");
963 this->CalculateDiffFlowCorrectionsForNUASinTermsUsingParticleWeights("RP","Eta");
964 this->CalculateDiffFlowCorrectionsForNUASinTermsUsingParticleWeights("POI","Pt");
965 this->CalculateDiffFlowCorrectionsForNUASinTermsUsingParticleWeights("POI","Eta");
966 this->CalculateDiffFlowCorrectionsForNUACosTermsUsingParticleWeights("RP","Pt");
967 this->CalculateDiffFlowCorrectionsForNUACosTermsUsingParticleWeights("RP","Eta");
968 this->CalculateDiffFlowCorrectionsForNUACosTermsUsingParticleWeights("POI","Pt");
969 this->CalculateDiffFlowCorrectionsForNUACosTermsUsingParticleWeights("POI","Eta");
970 this->EvaluateDiffFlowCorrelationsWithNestedLoopsUsingParticleWeights(anEvent,"RP","Pt");
971 this->EvaluateDiffFlowCorrelationsWithNestedLoopsUsingParticleWeights(anEvent,"RP","Eta");
972 this->EvaluateDiffFlowCorrelationsWithNestedLoopsUsingParticleWeights(anEvent,"POI","Pt");
973 this->EvaluateDiffFlowCorrelationsWithNestedLoopsUsingParticleWeights(anEvent,"POI","Eta");
974 this->EvaluateDiffFlowCorrectionTermsForNUAWithNestedLoopsUsingParticleWeights(anEvent,"RP","Pt");
975 this->EvaluateDiffFlowCorrectionTermsForNUAWithNestedLoopsUsingParticleWeights(anEvent,"RP","Eta");
976 this->EvaluateDiffFlowCorrectionTermsForNUAWithNestedLoopsUsingParticleWeights(anEvent,"POI","Pt");
977 this->EvaluateDiffFlowCorrectionTermsForNUAWithNestedLoopsUsingParticleWeights(anEvent,"POI","Eta");
978 } // end of if(fUsePhiWeights||fUsePtWeights||fUseEtaWeights||fUseTrackWeights)
979 } // end of if(nPrim>0 && nPrim<=fMaxAllowedMultiplicity) // by default fMaxAllowedMultiplicity = 10
981 } // end of void AliFlowAnalysisWithQCumulants::EvaluateDiffFlowNestedLoops(AliFlowEventSimple* anEvent)
983 //=======================================================================================================================
985 void AliFlowAnalysisWithQCumulants::CalculateIntFlowCorrectionsForNUACosTerms()
987 // Calculate correction terms for non-uniform acceptance of the detector for reference flow (cos terms).
990 Double_t dMult = (*fSpk)(0,0);
992 // real and imaginary parts of non-weighted Q-vectors evaluated in harmonics n, 2n, 3n and 4n:
993 Double_t dReQ1n = (*fReQ)(0,0);
994 Double_t dReQ2n = (*fReQ)(1,0);
995 //Double_t dReQ3n = (*fReQ)(2,0);
996 //Double_t dReQ4n = (*fReQ)(3,0);
997 Double_t dImQ1n = (*fImQ)(0,0);
998 Double_t dImQ2n = (*fImQ)(1,0);
999 //Double_t dImQ3n = (*fImQ)(2,0);
1000 //Double_t dImQ4n = (*fImQ)(3,0);
1002 // Multiplicity bin of an event (relevant for all histos vs M):
1003 Double_t dMultiplicityBin = 0.;
1004 if(fMultiplicityIs==AliFlowCommonConstants::kRP)
1006 dMultiplicityBin = fNumberOfRPsEBE+0.5;
1007 } else if(fMultiplicityIs==AliFlowCommonConstants::kExternal)
1009 dMultiplicityBin = fReferenceMultiplicityEBE+0.5;
1010 } else if(fMultiplicityIs==AliFlowCommonConstants::kPOI)
1012 dMultiplicityBin = fNumberOfPOIsEBE+0.5;
1015 // *************************************************************
1016 // **** corrections for non-uniform acceptance (cos terms): ****
1017 // *************************************************************
1019 // Remark 1: corrections for non-uniform acceptance (cos terms) calculated with non-weighted Q-vectors
1020 // are stored in 1D profile fQCorrectionsCos.
1021 // Remark 2: binning of fIntFlowCorrectionTermsForNUAPro[1] is organized as follows:
1022 // --------------------------------------------------------------------------------------------------------------------
1023 // 1st bin: <<cos(n*(phi1))>> = cosP1n
1024 // 2nd bin: <<cos(n*(phi1+phi2))>> = cosP1nP1n
1025 // 3rd bin: <<cos(n*(phi1-phi2-phi3))>> = cosP1nM1nM1n
1026 // 4th bin: <<cos(n*(2phi1-phi2))>> = cosP2nM1n
1027 // --------------------------------------------------------------------------------------------------------------------
1030 Double_t cosP1n = 0.; // <<cos(n*(phi1))>>
1034 cosP1n = dReQ1n/dMult;
1036 // average non-weighted 1-particle correction (cos terms) for non-uniform acceptance for single event:
1037 fIntFlowCorrectionTermsForNUAEBE[1]->SetBinContent(1,cosP1n);
1038 // event weights for NUA terms:
1039 fIntFlowEventWeightForCorrectionTermsForNUAEBE[1]->SetBinContent(1,dMult);
1041 // final average non-weighted 1-particle correction (cos terms) for non-uniform acceptance for all events:
1042 fIntFlowCorrectionTermsForNUAPro[1]->Fill(0.5,cosP1n,dMult);
1043 if(fCalculateCumulantsVsM){fIntFlowCorrectionTermsForNUAVsMPro[1][0]->Fill(dMultiplicityBin,cosP1n,dMult);}
1047 Double_t cosP1nP1n = 0.; // <<cos(n*(phi1+phi2))>>
1048 Double_t cosP2nM1n = 0.; // <<cos(n*(2phi1-phi2))>>
1052 cosP1nP1n = (pow(dReQ1n,2)-pow(dImQ1n,2)-dReQ2n)/(dMult*(dMult-1));
1053 cosP2nM1n = (dReQ2n*dReQ1n+dImQ2n*dImQ1n-dReQ1n)/(dMult*(dMult-1));
1055 // average non-weighted 2-particle correction (cos terms) for non-uniform acceptance for single event:
1056 fIntFlowCorrectionTermsForNUAEBE[1]->SetBinContent(2,cosP1nP1n);
1057 fIntFlowCorrectionTermsForNUAEBE[1]->SetBinContent(4,cosP2nM1n);
1058 // event weights for NUA terms:
1059 fIntFlowEventWeightForCorrectionTermsForNUAEBE[1]->SetBinContent(2,dMult*(dMult-1));
1060 fIntFlowEventWeightForCorrectionTermsForNUAEBE[1]->SetBinContent(4,dMult*(dMult-1));
1062 // final average non-weighted 2-particle correction (cos terms) for non-uniform acceptance for all events:
1063 fIntFlowCorrectionTermsForNUAPro[1]->Fill(1.5,cosP1nP1n,dMult*(dMult-1));
1064 fIntFlowCorrectionTermsForNUAPro[1]->Fill(3.5,cosP2nM1n,dMult*(dMult-1));
1065 if(fCalculateCumulantsVsM)
1067 fIntFlowCorrectionTermsForNUAVsMPro[1][1]->Fill(dMultiplicityBin,cosP1nP1n,dMult*(dMult-1));
1068 fIntFlowCorrectionTermsForNUAVsMPro[1][3]->Fill(dMultiplicityBin,cosP2nM1n,dMult*(dMult-1));
1073 Double_t cosP1nM1nM1n = 0.; // <<cos(n*(phi1-phi2-phi3))>>
1077 cosP1nM1nM1n = (dReQ1n*(pow(dReQ1n,2)+pow(dImQ1n,2))-dReQ1n*dReQ2n-dImQ1n*dImQ2n-2.*(dMult-1)*dReQ1n)
1078 / (dMult*(dMult-1)*(dMult-2));
1080 // average non-weighted 3-particle correction (cos terms) for non-uniform acceptance for single event:
1081 fIntFlowCorrectionTermsForNUAEBE[1]->SetBinContent(3,cosP1nM1nM1n);
1082 // event weights for NUA terms:
1083 fIntFlowEventWeightForCorrectionTermsForNUAEBE[1]->SetBinContent(3,dMult*(dMult-1)*(dMult-2));
1085 // final average non-weighted 3-particle correction (cos terms) for non-uniform acceptance for all events:
1086 fIntFlowCorrectionTermsForNUAPro[1]->Fill(2.5,cosP1nM1nM1n,dMult*(dMult-1)*(dMult-2));
1087 if(fCalculateCumulantsVsM){fIntFlowCorrectionTermsForNUAVsMPro[1][2]->Fill(dMultiplicityBin,cosP1nM1nM1n,dMult*(dMult-1)*(dMult-2));}
1090 } // end of AliFlowAnalysisWithQCumulants::CalculateIntFlowCorrectionsForNUACosTerms()
1092 //=======================================================================================================================
1094 void AliFlowAnalysisWithQCumulants::CalculateIntFlowCorrectionsForNUASinTerms()
1096 // calculate corrections for non-uniform acceptance of the detector for no-name integrated flow (sin terms)
1099 Double_t dMult = (*fSpk)(0,0);
1101 // real and imaginary parts of non-weighted Q-vectors evaluated in harmonics n, 2n, 3n and 4n:
1102 Double_t dReQ1n = (*fReQ)(0,0);
1103 Double_t dReQ2n = (*fReQ)(1,0);
1104 //Double_t dReQ3n = (*fReQ)(2,0);
1105 //Double_t dReQ4n = (*fReQ)(3,0);
1106 Double_t dImQ1n = (*fImQ)(0,0);
1107 Double_t dImQ2n = (*fImQ)(1,0);
1108 //Double_t dImQ3n = (*fImQ)(2,0);
1109 //Double_t dImQ4n = (*fImQ)(3,0);
1111 // Multiplicity bin of an event (relevant for all histos vs M):
1112 Double_t dMultiplicityBin = 0.;
1113 if(fMultiplicityIs==AliFlowCommonConstants::kRP)
1115 dMultiplicityBin = fNumberOfRPsEBE+0.5;
1116 } else if(fMultiplicityIs==AliFlowCommonConstants::kExternal)
1118 dMultiplicityBin = fReferenceMultiplicityEBE+0.5;
1119 } else if(fMultiplicityIs==AliFlowCommonConstants::kPOI)
1121 dMultiplicityBin = fNumberOfPOIsEBE+0.5;
1124 // *************************************************************
1125 // **** corrections for non-uniform acceptance (sin terms): ****
1126 // *************************************************************
1128 // Remark 1: corrections for non-uniform acceptance (sin terms) calculated with non-weighted Q-vectors
1129 // are stored in 1D profile fQCorrectionsSin.
1130 // Remark 2: binning of fIntFlowCorrectionTermsForNUAPro[0] is organized as follows:
1131 // --------------------------------------------------------------------------------------------------------------------
1132 // 1st bin: <<sin(n*(phi1))>> = sinP1n
1133 // 2nd bin: <<sin(n*(phi1+phi2))>> = sinP1nP1n
1134 // 3rd bin: <<sin(n*(phi1-phi2-phi3))>> = sinP1nM1nM1n
1135 // 4th bin: <<sin(n*(2phi1-phi2))>> = sinP2nM1n
1136 // --------------------------------------------------------------------------------------------------------------------
1139 Double_t sinP1n = 0.; // <sin(n*(phi1))>
1143 sinP1n = dImQ1n/dMult;
1145 // average non-weighted 1-particle correction (sin terms) for non-uniform acceptance for single event:
1146 fIntFlowCorrectionTermsForNUAEBE[0]->SetBinContent(1,sinP1n);
1147 // event weights for NUA terms:
1148 fIntFlowEventWeightForCorrectionTermsForNUAEBE[0]->SetBinContent(1,dMult);
1150 // final average non-weighted 1-particle correction (sin terms) for non-uniform acceptance for all events:
1151 fIntFlowCorrectionTermsForNUAPro[0]->Fill(0.5,sinP1n,dMult);
1152 if(fCalculateCumulantsVsM){fIntFlowCorrectionTermsForNUAVsMPro[0][0]->Fill(dMultiplicityBin,sinP1n,dMult);}
1156 Double_t sinP1nP1n = 0.; // <<sin(n*(phi1+phi2))>>
1157 Double_t sinP2nM1n = 0.; // <<sin(n*(2phi1-phi2))>>
1160 sinP1nP1n = (2.*dReQ1n*dImQ1n-dImQ2n)/(dMult*(dMult-1));
1161 sinP2nM1n = (dImQ2n*dReQ1n-dReQ2n*dImQ1n-dImQ1n)/(dMult*(dMult-1));
1163 // average non-weighted 2-particle correction (sin terms) for non-uniform acceptance for single event:
1164 fIntFlowCorrectionTermsForNUAEBE[0]->SetBinContent(2,sinP1nP1n);
1165 fIntFlowCorrectionTermsForNUAEBE[0]->SetBinContent(4,sinP2nM1n);
1166 // event weights for NUA terms:
1167 fIntFlowEventWeightForCorrectionTermsForNUAEBE[0]->SetBinContent(2,dMult*(dMult-1));
1168 fIntFlowEventWeightForCorrectionTermsForNUAEBE[0]->SetBinContent(4,dMult*(dMult-1));
1170 // final average non-weighted 1-particle correction (sin terms) for non-uniform acceptance for all events:
1171 fIntFlowCorrectionTermsForNUAPro[0]->Fill(1.5,sinP1nP1n,dMult*(dMult-1));
1172 fIntFlowCorrectionTermsForNUAPro[0]->Fill(3.5,sinP2nM1n,dMult*(dMult-1));
1173 if(fCalculateCumulantsVsM)
1175 fIntFlowCorrectionTermsForNUAVsMPro[0][1]->Fill(dMultiplicityBin,sinP1nP1n,dMult*(dMult-1));
1176 fIntFlowCorrectionTermsForNUAVsMPro[0][3]->Fill(dMultiplicityBin,sinP2nM1n,dMult*(dMult-1));
1181 Double_t sinP1nM1nM1n = 0.; // <<sin(n*(phi1-phi2-phi3))>>
1185 sinP1nM1nM1n = (-dImQ1n*(pow(dReQ1n,2)+pow(dImQ1n,2))+dReQ1n*dImQ2n-dImQ1n*dReQ2n+2.*(dMult-1)*dImQ1n)
1186 / (dMult*(dMult-1)*(dMult-2));
1188 // average non-weighted 3-particle correction (sin terms) for non-uniform acceptance for single event:
1189 fIntFlowCorrectionTermsForNUAEBE[0]->SetBinContent(3,sinP1nM1nM1n);
1190 // event weights for NUA terms:
1191 fIntFlowEventWeightForCorrectionTermsForNUAEBE[0]->SetBinContent(3,dMult*(dMult-1)*(dMult-2));
1193 // final average non-weighted 3-particle correction (sin terms) for non-uniform acceptance for all events:
1194 fIntFlowCorrectionTermsForNUAPro[0]->Fill(2.5,sinP1nM1nM1n,dMult*(dMult-1)*(dMult-2));
1195 if(fCalculateCumulantsVsM){fIntFlowCorrectionTermsForNUAVsMPro[0][2]->Fill(dMultiplicityBin,sinP1nM1nM1n,dMult*(dMult-1)*(dMult-2));}
1198 } // end of AliFlowAnalysisWithQCumulants::CalculateIntFlowCorrectionsForNUASinTerms()
1200 //=======================================================================================================================
1202 void AliFlowAnalysisWithQCumulants::GetOutputHistograms(TList *outputListHistos)
1204 // a) Get pointers for common control and common result histograms;
1205 // b) Get pointers for histograms holding particle weights;
1206 // c) Get pointers for reference flow histograms;
1207 // d) Get pointers for differential flow histograms;
1208 // e) Get pointers for 2D differential flow histograms;
1209 // f) Get pointers for other differential correlators;
1210 // g) Get pointers for nested loops' histograms;
1211 // h) Get pointers for mixed harmonics histograms.
1213 if(outputListHistos)
1215 this->SetHistList(outputListHistos);
1218 printf("\n WARNING (QC): fHistList is NULL in AFAWQC::GOH() !!!!\n\n");
1221 this->GetPointersForCommonHistograms();
1222 this->GetPointersForParticleWeightsHistograms();
1223 this->GetPointersForIntFlowHistograms();
1224 this->GetPointersForDiffFlowHistograms();
1225 this->GetPointersFor2DDiffFlowHistograms();
1226 this->GetPointersForOtherDiffCorrelators();
1227 this->GetPointersForMixedHarmonicsHistograms();
1228 this->GetPointersForNestedLoopsHistograms();
1231 printf("\n WARNING (QC): outputListHistos is NULL in AFAWQC::GOH() !!!!\n\n");
1235 } // end of void AliFlowAnalysisWithQCumulants::GetOutputHistograms(TList *outputListHistos)
1237 //=======================================================================================================================
1239 TProfile* AliFlowAnalysisWithQCumulants::MakePtProjection(TProfile2D *profilePtEta) const
1241 // project 2D profile onto pt axis to get 1D profile
1243 Int_t nBinsPt = profilePtEta->GetNbinsX();
1244 Double_t dPtMin = (profilePtEta->GetXaxis())->GetXmin();
1245 Double_t dPtMax = (profilePtEta->GetXaxis())->GetXmax();
1247 Int_t nBinsEta = profilePtEta->GetNbinsY();
1249 TProfile *profilePt = new TProfile("","",nBinsPt,dPtMin,dPtMax);
1251 for(Int_t p=1;p<=nBinsPt;p++)
1253 Double_t contentPt = 0.;
1254 Double_t entryPt = 0.;
1255 Double_t spreadPt = 0.;
1259 for(Int_t e=1;e<=nBinsEta;e++)
1261 contentPt += (profilePtEta->GetBinContent(profilePtEta->GetBin(p,e)))
1262 * (profilePtEta->GetBinEntries(profilePtEta->GetBin(p,e)));
1263 entryPt += (profilePtEta->GetBinEntries(profilePtEta->GetBin(p,e)));
1265 sum1 += (profilePtEta->GetBinEntries(profilePtEta->GetBin(p,e)))
1266 * (pow(profilePtEta->GetBinError(profilePtEta->GetBin(p,e)),2.)
1267 + pow(profilePtEta->GetBinContent(profilePtEta->GetBin(p,e)),2.));
1268 sum2 += (profilePtEta->GetBinEntries(profilePtEta->GetBin(p,e)));
1269 sum3 += (profilePtEta->GetBinEntries(profilePtEta->GetBin(p,e)))
1270 * (profilePtEta->GetBinContent(profilePtEta->GetBin(p,e)));
1272 if(sum2>0. && sum1/sum2-pow(sum3/sum2,2.) > 0.)
1274 spreadPt = pow(sum1/sum2-pow(sum3/sum2,2.),0.5);
1276 profilePt->SetBinContent(p,contentPt);
1277 profilePt->SetBinEntries(p,entryPt);
1279 profilePt->SetBinError(p,spreadPt);
1286 } // end of TProfile* AliFlowAnalysisWithQCumulants::MakePtProjection(TProfile2D *profilePtEta)
1289 //=======================================================================================================================
1292 TProfile* AliFlowAnalysisWithQCumulants::MakeEtaProjection(TProfile2D *profilePtEta) const
1294 // project 2D profile onto eta axis to get 1D profile
1296 Int_t nBinsEta = profilePtEta->GetNbinsY();
1297 Double_t dEtaMin = (profilePtEta->GetYaxis())->GetXmin();
1298 Double_t dEtaMax = (profilePtEta->GetYaxis())->GetXmax();
1300 Int_t nBinsPt = profilePtEta->GetNbinsX();
1302 TProfile *profileEta = new TProfile("","",nBinsEta,dEtaMin,dEtaMax);
1304 for(Int_t e=1;e<=nBinsEta;e++)
1306 Double_t contentEta = 0.;
1307 Double_t entryEta = 0.;
1308 for(Int_t p=1;p<=nBinsPt;p++)
1310 contentEta += (profilePtEta->GetBinContent(profilePtEta->GetBin(p,e)))
1311 * (profilePtEta->GetBinEntries(profilePtEta->GetBin(p,e)));
1312 entryEta += (profilePtEta->GetBinEntries(profilePtEta->GetBin(p,e)));
1314 profileEta->SetBinContent(e,contentEta);
1315 profileEta->SetBinEntries(e,entryEta);
1320 } // end of TProfile* AliFlowAnalysisWithQCumulants::MakeEtaProjection(TProfile2D *profilePtEta)
1322 //=======================================================================================================================
1324 void AliFlowAnalysisWithQCumulants::PrintFinalResultsForIntegratedFlow(TString type)
1326 // Printing on the screen the final results for integrated flow (RF, POI and RP).
1328 Int_t n = fHarmonic;
1330 Double_t dVn[4] = {0.}; // array to hold Vn{2}, Vn{4}, Vn{6} and Vn{8}
1331 Double_t dVnErr[4] = {0.}; // array to hold errors of Vn{2}, Vn{4}, Vn{6} and Vn{8}
1335 for(Int_t b=0;b<4;b++)
1337 dVn[0] = (fCommonHistsResults2nd->GetHistIntFlow())->GetBinContent(1);
1338 dVnErr[0] = (fCommonHistsResults2nd->GetHistIntFlow())->GetBinError(1);
1339 dVn[1] = (fCommonHistsResults4th->GetHistIntFlow())->GetBinContent(1);
1340 dVnErr[1] = (fCommonHistsResults4th->GetHistIntFlow())->GetBinError(1);
1341 dVn[2] = (fCommonHistsResults6th->GetHistIntFlow())->GetBinContent(1);
1342 dVnErr[2] = (fCommonHistsResults6th->GetHistIntFlow())->GetBinError(1);
1343 dVn[3] = (fCommonHistsResults8th->GetHistIntFlow())->GetBinContent(1);
1344 dVnErr[3] = (fCommonHistsResults8th->GetHistIntFlow())->GetBinError(1);
1346 } else if(type == "RP")
1348 dVn[0] = (fCommonHistsResults2nd->GetHistIntFlowRP())->GetBinContent(1);
1349 dVnErr[0] = (fCommonHistsResults2nd->GetHistIntFlowRP())->GetBinError(1);
1350 dVn[1] = (fCommonHistsResults4th->GetHistIntFlowRP())->GetBinContent(1);
1351 dVnErr[1] = (fCommonHistsResults4th->GetHistIntFlowRP())->GetBinError(1);
1352 dVn[2] = (fCommonHistsResults6th->GetHistIntFlowRP())->GetBinContent(1);
1353 dVnErr[2] = (fCommonHistsResults6th->GetHistIntFlowRP())->GetBinError(1);
1354 dVn[3] = (fCommonHistsResults8th->GetHistIntFlowRP())->GetBinContent(1);
1355 dVnErr[3] = (fCommonHistsResults8th->GetHistIntFlowRP())->GetBinError(1);
1356 } else if(type == "POI")
1358 dVn[0] = (fCommonHistsResults2nd->GetHistIntFlowPOI())->GetBinContent(1);
1359 dVnErr[0] = (fCommonHistsResults2nd->GetHistIntFlowPOI())->GetBinError(1);
1360 dVn[1] = (fCommonHistsResults4th->GetHistIntFlowPOI())->GetBinContent(1);
1361 dVnErr[1] = (fCommonHistsResults4th->GetHistIntFlowPOI())->GetBinError(1);
1362 dVn[2] = (fCommonHistsResults6th->GetHistIntFlowPOI())->GetBinContent(1);
1363 dVnErr[2] = (fCommonHistsResults6th->GetHistIntFlowPOI())->GetBinError(1);
1364 dVn[3] = (fCommonHistsResults8th->GetHistIntFlowPOI())->GetBinContent(1);
1365 dVnErr[3] = (fCommonHistsResults8th->GetHistIntFlowPOI())->GetBinError(1);
1366 } else if(type == "RF, rebinned in M" && fCalculateCumulantsVsM)
1368 for(Int_t b=0;b<4;b++)
1370 dVn[b] = fIntFlowRebinnedInM->GetBinContent(b+1);
1371 dVnErr[b] = fIntFlowRebinnedInM->GetBinError(b+1);
1375 TString title = " flow estimates from Q-cumulants";
1376 TString subtitle = " (";
1377 TString subtitle2 = " (rebinned in M)";
1379 if(type != "RF, rebinned in M")
1381 if(!(fUsePhiWeights||fUsePtWeights||fUseEtaWeights||fUseTrackWeights))
1383 subtitle.Append(type);
1384 subtitle.Append(", without weights)");
1387 subtitle.Append(type);
1388 subtitle.Append(", with weights)");
1392 if(!(fUsePhiWeights||fUsePtWeights||fUseEtaWeights||fUseTrackWeights))
1394 subtitle.Append("RF");
1395 subtitle.Append(", without weights)");
1398 subtitle.Append("RF");
1399 subtitle.Append(", with weights)");
1404 cout<<"*************************************"<<endl;
1405 cout<<"*************************************"<<endl;
1406 cout<<title.Data()<<endl;
1407 cout<<subtitle.Data()<<endl;
1408 if(type == "RF, rebinned in M"){cout<<subtitle2.Data()<<endl;}
1411 for(Int_t i=0;i<4;i++)
1413 cout<<" v_"<<n<<"{"<<2*(i+1)<<"} = "<<dVn[i]<<" +/- "<<dVnErr[i]<<endl;
1419 if(fApplyCorrectionForNUA)
1421 cout<<" detector bias (corrected for): "<<endl;
1424 cout<<" detector bias (not corrected for):"<<endl;
1426 cout<<" to QC{2}: "<<fIntFlowDetectorBias->GetBinContent(1)<<" +/- "<<fIntFlowDetectorBias->GetBinError(1)<<endl;
1427 cout<<" to QC{4}: "<<fIntFlowDetectorBias->GetBinContent(2)<<" +/- "<<fIntFlowDetectorBias->GetBinError(2)<<endl;
1430 if(type == "RF" || type == "RF, rebinned in M")
1432 cout<<" nEvts = "<<(Int_t)fCommonHists->GetHistMultRP()->GetEntries()<<", <M> = "<<(Double_t)fCommonHists->GetHistMultRP()->GetMean()<<endl;
1434 else if (type == "RP")
1436 cout<<" nEvts = "<<(Int_t)fCommonHists->GetHistMultRP()->GetEntries()<<", <M> = "<<(Double_t)fCommonHists->GetHistMultRP()->GetMean()<<endl;
1438 else if (type == "POI")
1440 cout<<" nEvts = "<<(Int_t)fCommonHists->GetHistMultPOI()->GetEntries()<<", <M> = "<<(Double_t)fCommonHists->GetHistMultPOI()->GetMean()<<endl;
1443 cout<<"*************************************"<<endl;
1444 cout<<"*************************************"<<endl;
1447 }// end of AliFlowAnalysisWithQCumulants::PrintFinalResultsForIntegratedFlow(TString type="RF");
1449 //=======================================================================================================================
1451 void AliFlowAnalysisWithQCumulants::WriteHistograms(TString outputFileName)
1453 //store the final results in output .root file
1454 TFile *output = new TFile(outputFileName.Data(),"RECREATE");
1455 //output->WriteObject(fHistList, "cobjQC","SingleKey");
1456 fHistList->Write(fHistList->GetName(), TObject::kSingleKey);
1461 //=======================================================================================================================
1464 void AliFlowAnalysisWithQCumulants::WriteHistograms(TDirectoryFile *outputFileName)
1466 //store the final results in output .root file
1467 fHistList->SetName("cobjQC");
1468 fHistList->SetOwner(kTRUE);
1469 outputFileName->Add(fHistList);
1470 outputFileName->Write(outputFileName->GetName(), TObject::kSingleKey);
1473 //=======================================================================================================================
1475 void AliFlowAnalysisWithQCumulants::BookCommonHistograms()
1477 // Book common control histograms and common histograms for final results.
1478 // a) Book common control histograms;
1479 // b) Book common result histograms.
1481 // a) Book common control histograms:
1482 // Common control histograms (all events):
1483 TString commonHistsName = "AliFlowCommonHistQC";
1484 commonHistsName += fAnalysisLabel->Data();
1485 fCommonHists = new AliFlowCommonHist(commonHistsName.Data(),commonHistsName.Data(),fBookOnlyBasicCCH);
1486 fHistList->Add(fCommonHists);
1487 // Common control histograms (selected events):
1488 if(fFillMultipleControlHistograms)
1490 // Common control histogram filled for events with 2 and more reference particles:
1491 TString commonHists2ndOrderName = "AliFlowCommonHist2ndOrderQC";
1492 commonHists2ndOrderName += fAnalysisLabel->Data();
1493 fCommonHists2nd = new AliFlowCommonHist(commonHists2ndOrderName.Data(),commonHists2ndOrderName.Data(),fBookOnlyBasicCCH);
1494 fHistList->Add(fCommonHists2nd);
1495 // Common control histogram filled for events with 2 and more reference particles:
1496 TString commonHists4thOrderName = "AliFlowCommonHist4thOrderQC";
1497 commonHists4thOrderName += fAnalysisLabel->Data();
1498 fCommonHists4th = new AliFlowCommonHist(commonHists4thOrderName.Data(),commonHists4thOrderName.Data(),fBookOnlyBasicCCH);
1499 fHistList->Add(fCommonHists4th);
1500 // Common control histogram filled for events with 6 and more reference particles:
1501 TString commonHists6thOrderName = "AliFlowCommonHist6thOrderQC";
1502 commonHists6thOrderName += fAnalysisLabel->Data();
1503 fCommonHists6th = new AliFlowCommonHist(commonHists6thOrderName.Data(),commonHists6thOrderName.Data(),fBookOnlyBasicCCH);
1504 fHistList->Add(fCommonHists6th);
1505 // Common control histogram filled for events with 8 and more reference particles:
1506 TString commonHists8thOrderName = "AliFlowCommonHist8thOrderQC";
1507 commonHists8thOrderName += fAnalysisLabel->Data();
1508 fCommonHists8th = new AliFlowCommonHist(commonHists8thOrderName.Data(),commonHists8thOrderName.Data(),fBookOnlyBasicCCH);
1509 fHistList->Add(fCommonHists8th);
1510 } // end of if(fFillMultipleControlHistograms)
1512 // b) Book common result histograms:
1513 // Common result histograms for QC{2}:
1514 TString commonHistResults2ndOrderName = "AliFlowCommonHistResults2ndOrderQC";
1515 commonHistResults2ndOrderName += fAnalysisLabel->Data();
1516 fCommonHistsResults2nd = new AliFlowCommonHistResults(commonHistResults2ndOrderName.Data(),"",fHarmonic);
1517 fHistList->Add(fCommonHistsResults2nd);
1518 // Common result histograms for QC{4}:
1519 TString commonHistResults4thOrderName = "AliFlowCommonHistResults4thOrderQC";
1520 commonHistResults4thOrderName += fAnalysisLabel->Data();
1521 fCommonHistsResults4th = new AliFlowCommonHistResults(commonHistResults4thOrderName.Data(),"",fHarmonic);
1522 fHistList->Add(fCommonHistsResults4th);
1523 // Common result histograms for QC{6}:
1524 TString commonHistResults6thOrderName = "AliFlowCommonHistResults6thOrderQC";
1525 commonHistResults6thOrderName += fAnalysisLabel->Data();
1526 fCommonHistsResults6th = new AliFlowCommonHistResults(commonHistResults6thOrderName.Data(),"",fHarmonic);
1527 fHistList->Add(fCommonHistsResults6th);
1528 // Common result histograms for QC{8}:
1529 TString commonHistResults8thOrderName = "AliFlowCommonHistResults8thOrderQC";
1530 commonHistResults8thOrderName += fAnalysisLabel->Data();
1531 fCommonHistsResults8th = new AliFlowCommonHistResults(commonHistResults8thOrderName.Data(),"",fHarmonic);
1532 fHistList->Add(fCommonHistsResults8th);
1534 } // end of void AliFlowAnalysisWithQCumulants::BookCommonHistograms()
1536 //=======================================================================================================================
1538 void AliFlowAnalysisWithQCumulants::BookAndFillWeightsHistograms()
1540 // Book and fill histograms which hold phi, pt and eta weights.
1544 printf("\n WARNING (QC): fWeightsList is NULL in AFAWQC::BAFWH() !!!! \n\n");
1548 TString fUseParticleWeightsName = "fUseParticleWeightsQC";
1549 fUseParticleWeightsName += fAnalysisLabel->Data();
1550 fUseParticleWeights = new TProfile(fUseParticleWeightsName.Data(),"0 = particle weight not used, 1 = particle weight used ",4,0,4);
1551 fUseParticleWeights->SetLabelSize(0.06);
1552 fUseParticleWeights->SetStats(kFALSE);
1553 (fUseParticleWeights->GetXaxis())->SetBinLabel(1,"w_{#phi}");
1554 (fUseParticleWeights->GetXaxis())->SetBinLabel(2,"w_{p_{T}}");
1555 (fUseParticleWeights->GetXaxis())->SetBinLabel(3,"w_{#eta}");
1556 (fUseParticleWeights->GetXaxis())->SetBinLabel(4,"w_{track}");
1557 fUseParticleWeights->Fill(0.5,(Int_t)fUsePhiWeights);
1558 fUseParticleWeights->Fill(1.5,(Int_t)fUsePtWeights);
1559 fUseParticleWeights->Fill(2.5,(Int_t)fUseEtaWeights);
1560 fUseParticleWeights->Fill(3.5,(Int_t)fUseTrackWeights);
1561 fWeightsList->Add(fUseParticleWeights);
1565 if(fWeightsList->FindObject("phi_weights"))
1567 fPhiWeights = dynamic_cast<TH1F*>(fWeightsList->FindObject("phi_weights"));
1570 printf("\n WARNING (QC): fPhiWeights is NULL in AFAWQC::BAFWH() !!!!\n\n");
1573 if(TMath::Abs(fPhiWeights->GetBinWidth(1)-fPhiBinWidth)>pow(10.,-6.))
1576 cout<<"WARNING (QC): Inconsistent binning in histograms for phi-weights throughout the code."<<endl;
1582 cout<<"WARNING: fWeightsList->FindObject(\"phi_weights\") is NULL in AFAWQC::BAFWH() !!!!"<<endl;
1585 } // end of if(fUsePhiWeights)
1589 if(fWeightsList->FindObject("pt_weights"))
1591 fPtWeights = dynamic_cast<TH1D*>(fWeightsList->FindObject("pt_weights"));
1594 printf("\n WARNING (QC): fPtWeights is NULL in AFAWQC::BAFWH() !!!!\n\n");
1597 if(TMath::Abs(fPtWeights->GetBinWidth(1)-fPtBinWidth)>pow(10.,-6.))
1600 cout<<"WARNING (QC): Inconsistent binning in histograms for pt-weights throughout the code."<<endl;
1606 cout<<"WARNING: fWeightsList->FindObject(\"pt_weights\") is NULL in AFAWQC::BAFWH() !!!!"<<endl;
1609 } // end of if(fUsePtWeights)
1613 if(fWeightsList->FindObject("eta_weights"))
1615 fEtaWeights = dynamic_cast<TH1D*>(fWeightsList->FindObject("eta_weights"));
1618 printf("\n WARNING (QC): fEtaWeights is NULL in AFAWQC::BAFWH() !!!!\n\n");
1621 if(TMath::Abs(fEtaWeights->GetBinWidth(1)-fEtaBinWidth)>pow(10.,-6.))
1624 cout<<"WARNING (QC): Inconsistent binning in histograms for eta-weights throughout the code."<<endl;
1630 cout<<"WARNING: fUseEtaWeights && fWeightsList->FindObject(\"eta_weights\") is NULL in AFAWQC::BAFWH() !!!!"<<endl;
1633 } // end of if(fUseEtaWeights)
1635 } // end of AliFlowAnalysisWithQCumulants::BookAndFillWeightsHistograms()
1637 //=======================================================================================================================
1639 void AliFlowAnalysisWithQCumulants::BookEverythingForIntegratedFlow()
1641 // Book all objects for integrated flow:
1642 // a) Book profile to hold all flags for integrated flow;
1643 // b) Book event-by-event quantities;
1644 // c) Book profiles; // to be improved (comment)
1645 // d) Book histograms holding the final results.
1647 TString sinCosFlag[2] = {"sin","cos"}; // to be improved (should I promote this to data members?)
1648 TString powerFlag[2] = {"linear","quadratic"}; // to be improved (should I promote this to data members?)
1650 // a) Book profile to hold all flags for integrated flow:
1651 TString intFlowFlagsName = "fIntFlowFlags";
1652 intFlowFlagsName += fAnalysisLabel->Data();
1653 fIntFlowFlags = new TProfile(intFlowFlagsName.Data(),"Flags for Integrated Flow",17,0.,17.);
1654 fIntFlowFlags->SetTickLength(-0.01,"Y");
1655 fIntFlowFlags->SetMarkerStyle(25);
1656 fIntFlowFlags->SetLabelSize(0.04);
1657 fIntFlowFlags->SetLabelOffset(0.02,"Y");
1658 fIntFlowFlags->SetStats(kFALSE);
1659 fIntFlowFlags->GetXaxis()->SetBinLabel(1,"Particle Weights");
1660 fIntFlowFlags->GetXaxis()->SetBinLabel(2,"Event Weights");
1661 fIntFlowFlags->GetXaxis()->SetBinLabel(3,"Corrected for NUA?");
1662 fIntFlowFlags->GetXaxis()->SetBinLabel(4,"Print RF results");
1663 fIntFlowFlags->GetXaxis()->SetBinLabel(5,"Print RP results");
1664 fIntFlowFlags->GetXaxis()->SetBinLabel(6,"Print POI results");
1665 fIntFlowFlags->GetXaxis()->SetBinLabel(7,"Print RF (rebinned in M) results");
1666 fIntFlowFlags->GetXaxis()->SetBinLabel(8,"Corrected for NUA vs M?");
1667 fIntFlowFlags->GetXaxis()->SetBinLabel(9,"Propagate errors to v_{n} from correlations?");
1668 fIntFlowFlags->GetXaxis()->SetBinLabel(10,"Calculate cumulants vs M");
1669 fIntFlowFlags->GetXaxis()->SetBinLabel(11,"fMinimumBiasReferenceFlow");
1670 fIntFlowFlags->GetXaxis()->SetBinLabel(12,"fForgetAboutCovariances");
1671 fIntFlowFlags->GetXaxis()->SetBinLabel(13,"fStorePhiDistributionForOneEvent");
1672 fIntFlowFlags->GetXaxis()->SetBinLabel(14,"fFillMultipleControlHistograms");
1673 fIntFlowFlags->GetXaxis()->SetBinLabel(15,"Calculate all correlations vs M");
1674 fIntFlowFlags->GetXaxis()->SetBinLabel(16,"fMultiplicityIs");
1675 fIntFlowFlags->GetXaxis()->SetBinLabel(17,"fExactNoRPs");
1676 fIntFlowList->Add(fIntFlowFlags);
1678 // b) Book event-by-event quantities:
1679 // Re[Q_{m*n,k}], Im[Q_{m*n,k}] and S_{p,k}^M:
1680 fReQ = new TMatrixD(12,9);
1681 fImQ = new TMatrixD(12,9);
1682 fSpk = new TMatrixD(8,9);
1683 // average correlations <2>, <4>, <6> and <8> for single event (bining is the same as in fIntFlowCorrelationsPro and fIntFlowCorrelationsHist):
1684 TString intFlowCorrelationsEBEName = "fIntFlowCorrelationsEBE";
1685 intFlowCorrelationsEBEName += fAnalysisLabel->Data();
1686 fIntFlowCorrelationsEBE = new TH1D(intFlowCorrelationsEBEName.Data(),intFlowCorrelationsEBEName.Data(),4,0,4);
1687 // weights for average correlations <2>, <4>, <6> and <8> for single event:
1688 TString intFlowEventWeightsForCorrelationsEBEName = "fIntFlowEventWeightsForCorrelationsEBE";
1689 intFlowEventWeightsForCorrelationsEBEName += fAnalysisLabel->Data();
1690 fIntFlowEventWeightsForCorrelationsEBE = new TH1D(intFlowEventWeightsForCorrelationsEBEName.Data(),intFlowEventWeightsForCorrelationsEBEName.Data(),4,0,4);
1691 // average all correlations for single event (bining is the same as in fIntFlowCorrelationsAllPro and fIntFlowCorrelationsAllHist):
1692 TString intFlowCorrelationsAllEBEName = "fIntFlowCorrelationsAllEBE";
1693 intFlowCorrelationsAllEBEName += fAnalysisLabel->Data();
1694 fIntFlowCorrelationsAllEBE = new TH1D(intFlowCorrelationsAllEBEName.Data(),intFlowCorrelationsAllEBEName.Data(),64,0,64);
1695 // average correction terms for non-uniform acceptance for single event
1696 // (binning is the same as in fIntFlowCorrectionTermsForNUAPro[2] and fIntFlowCorrectionTermsForNUAHist[2]):
1697 TString fIntFlowCorrectionTermsForNUAEBEName = "fIntFlowCorrectionTermsForNUAEBE";
1698 fIntFlowCorrectionTermsForNUAEBEName += fAnalysisLabel->Data();
1699 for(Int_t sc=0;sc<2;sc++) // sin or cos terms
1701 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);
1703 // event weights for terms for non-uniform acceptance:
1704 TString fIntFlowEventWeightForCorrectionTermsForNUAEBEName = "fIntFlowEventWeightForCorrectionTermsForNUAEBE";
1705 fIntFlowEventWeightForCorrectionTermsForNUAEBEName += fAnalysisLabel->Data();
1706 for(Int_t sc=0;sc<2;sc++) // sin or cos terms
1708 fIntFlowEventWeightForCorrectionTermsForNUAEBE[sc] = new TH1D(Form("%s: %s terms",fIntFlowEventWeightForCorrectionTermsForNUAEBEName.Data(),sinCosFlag[sc].Data()),Form("Event weights for terms for non-uniform acceptance (%s terms)",sinCosFlag[sc].Data()),4,0,4); // to be improved - 4
1710 // c) Book profiles: // to be improved (comment)
1711 // profile to hold average multiplicities and number of events for events with nRP>=0, nRP>=1, ... , and nRP>=8:
1712 TString avMultiplicityName = "fAvMultiplicity";
1713 avMultiplicityName += fAnalysisLabel->Data();
1714 fAvMultiplicity = new TProfile(avMultiplicityName.Data(),"Average multiplicities of reference particles (RPs)",9,0,9);
1715 fAvMultiplicity->SetTickLength(-0.01,"Y");
1716 fAvMultiplicity->SetMarkerStyle(25);
1717 fAvMultiplicity->SetLabelSize(0.05);
1718 fAvMultiplicity->SetLabelOffset(0.02,"Y");
1719 fAvMultiplicity->SetYTitle("Average multiplicity");
1720 (fAvMultiplicity->GetXaxis())->SetBinLabel(1,"all evts");
1721 (fAvMultiplicity->GetXaxis())->SetBinLabel(2,"n_{RP} #geq 1");
1722 (fAvMultiplicity->GetXaxis())->SetBinLabel(3,"n_{RP} #geq 2");
1723 (fAvMultiplicity->GetXaxis())->SetBinLabel(4,"n_{RP} #geq 3");
1724 (fAvMultiplicity->GetXaxis())->SetBinLabel(5,"n_{RP} #geq 4");
1725 (fAvMultiplicity->GetXaxis())->SetBinLabel(6,"n_{RP} #geq 5");
1726 (fAvMultiplicity->GetXaxis())->SetBinLabel(7,"n_{RP} #geq 6");
1727 (fAvMultiplicity->GetXaxis())->SetBinLabel(8,"n_{RP} #geq 7");
1728 (fAvMultiplicity->GetXaxis())->SetBinLabel(9,"n_{RP} #geq 8");
1729 fIntFlowProfiles->Add(fAvMultiplicity);
1730 // Average correlations <<2>>, <<4>>, <<6>> and <<8>> for all events (with wrong errors!):
1731 TString correlationFlag[4] = {"#LT#LT2#GT#GT","#LT#LT4#GT#GT","#LT#LT6#GT#GT","#LT#LT8#GT#GT"};
1732 TString intFlowCorrelationsProName = "fIntFlowCorrelationsPro";
1733 intFlowCorrelationsProName += fAnalysisLabel->Data();
1734 fIntFlowCorrelationsPro = new TProfile(intFlowCorrelationsProName.Data(),"Average correlations for all events",4,0,4,"s");
1735 fIntFlowCorrelationsPro->Sumw2();
1736 fIntFlowCorrelationsPro->SetTickLength(-0.01,"Y");
1737 fIntFlowCorrelationsPro->SetMarkerStyle(25);
1738 fIntFlowCorrelationsPro->SetLabelSize(0.06);
1739 fIntFlowCorrelationsPro->SetLabelOffset(0.01,"Y");
1740 for(Int_t b=0;b<4;b++)
1742 (fIntFlowCorrelationsPro->GetXaxis())->SetBinLabel(b+1,correlationFlag[b].Data());
1744 fIntFlowProfiles->Add(fIntFlowCorrelationsPro);
1745 // Average correlations squared <<2>^2>, <<4>^2>, <<6>^2> and <<8>^2> for all events:
1746 TString squaredCorrelationFlag[4] = {"#LT#LT2#GT^{2}#GT","#LT#LT4#GT^{2}#GT","#LT#LT6#GT^{2}#GT","#LT#LT8#GT^{2}#GT"};
1747 TString intFlowSquaredCorrelationsProName = "fIntFlowSquaredCorrelationsPro";
1748 intFlowSquaredCorrelationsProName += fAnalysisLabel->Data();
1749 fIntFlowSquaredCorrelationsPro = new TProfile(intFlowSquaredCorrelationsProName.Data(),"Average squared correlations for all events",4,0,4,"s");
1750 fIntFlowSquaredCorrelationsPro->Sumw2();
1751 fIntFlowSquaredCorrelationsPro->SetTickLength(-0.01,"Y");
1752 fIntFlowSquaredCorrelationsPro->SetMarkerStyle(25);
1753 fIntFlowSquaredCorrelationsPro->SetLabelSize(0.06);
1754 fIntFlowSquaredCorrelationsPro->SetLabelOffset(0.01,"Y");
1755 for(Int_t b=0;b<4;b++)
1757 (fIntFlowSquaredCorrelationsPro->GetXaxis())->SetBinLabel(b+1,squaredCorrelationFlag[b].Data());
1759 fIntFlowProfiles->Add(fIntFlowSquaredCorrelationsPro);
1760 if(fCalculateCumulantsVsM)
1762 for(Int_t ci=0;ci<4;ci++) // correlation index
1764 // average correlations <<2>>, <<4>>, <<6>> and <<8>> versus multiplicity for all events (with wrong errors):
1765 TString intFlowCorrelationsVsMProName = "fIntFlowCorrelationsVsMPro";
1766 intFlowCorrelationsVsMProName += fAnalysisLabel->Data();
1767 fIntFlowCorrelationsVsMPro[ci] = new TProfile(Form("%s, %s",intFlowCorrelationsVsMProName.Data(),correlationFlag[ci].Data()),
1768 Form("%s vs multiplicity",correlationFlag[ci].Data()),
1769 fnBinsMult,fMinMult,fMaxMult,"s");
1770 fIntFlowCorrelationsVsMPro[ci]->Sumw2();
1771 fIntFlowCorrelationsVsMPro[ci]->GetYaxis()->SetTitle(correlationFlag[ci].Data());
1772 if(fMultiplicityIs==AliFlowCommonConstants::kRP)
1774 fIntFlowCorrelationsVsMPro[ci]->GetXaxis()->SetTitle("# RPs");
1775 } else if(fMultiplicityIs==AliFlowCommonConstants::kExternal)
1777 fIntFlowCorrelationsVsMPro[ci]->GetXaxis()->SetTitle("Reference multiplicity (from ESD)");
1778 } else if(fMultiplicityIs==AliFlowCommonConstants::kPOI)
1780 fIntFlowCorrelationsVsMPro[ci]->GetXaxis()->SetTitle("# POIs");
1782 fIntFlowProfiles->Add(fIntFlowCorrelationsVsMPro[ci]);
1783 // average squared correlations <<2>^2>, <<4>^2>, <<6>^2> and <<8>^2> versus multiplicity for all events:
1784 TString intFlowSquaredCorrelationsVsMProName = "fIntFlowSquaredCorrelationsVsMPro";
1785 intFlowSquaredCorrelationsVsMProName += fAnalysisLabel->Data();
1786 fIntFlowSquaredCorrelationsVsMPro[ci] = new TProfile(Form("%s, %s",intFlowSquaredCorrelationsVsMProName.Data(),squaredCorrelationFlag[ci].Data()),
1787 Form("%s vs multiplicity",squaredCorrelationFlag[ci].Data()),
1788 fnBinsMult,fMinMult,fMaxMult,"s");
1789 fIntFlowSquaredCorrelationsVsMPro[ci]->Sumw2();
1790 fIntFlowSquaredCorrelationsVsMPro[ci]->GetYaxis()->SetTitle(squaredCorrelationFlag[ci].Data());
1791 if(fMultiplicityIs==AliFlowCommonConstants::kRP)
1793 fIntFlowSquaredCorrelationsVsMPro[ci]->GetXaxis()->SetTitle("# RPs");
1794 } else if(fMultiplicityIs==AliFlowCommonConstants::kExternal)
1796 fIntFlowSquaredCorrelationsVsMPro[ci]->GetXaxis()->SetTitle("Reference multiplicity (from ESD)");
1797 } else if(fMultiplicityIs==AliFlowCommonConstants::kPOI)
1799 fIntFlowSquaredCorrelationsVsMPro[ci]->GetXaxis()->SetTitle("# POIs");
1801 fIntFlowProfiles->Add(fIntFlowSquaredCorrelationsVsMPro[ci]);
1802 } // end of for(Int_t ci=0;ci<4;ci++) // correlation index
1803 } // end of if(fCalculateCumulantsVsM)
1804 // averaged all correlations for all events (with wrong errors!):
1805 TString intFlowCorrelationsAllProName = "fIntFlowCorrelationsAllPro";
1806 intFlowCorrelationsAllProName += fAnalysisLabel->Data();
1807 fIntFlowCorrelationsAllPro = new TProfile(intFlowCorrelationsAllProName.Data(),"Average all correlations for all events",64,0,64);
1808 fIntFlowCorrelationsAllPro->Sumw2();
1809 fIntFlowCorrelationsAllPro->SetTickLength(-0.01,"Y");
1810 fIntFlowCorrelationsAllPro->SetMarkerStyle(25);
1811 fIntFlowCorrelationsAllPro->SetLabelSize(0.03);
1812 fIntFlowCorrelationsAllPro->SetLabelOffset(0.01,"Y");
1813 // 2-p correlations:
1814 (fIntFlowCorrelationsAllPro->GetXaxis())->SetBinLabel(1,"#LT#LT2#GT#GT_{n|n}");
1815 (fIntFlowCorrelationsAllPro->GetXaxis())->SetBinLabel(2,"#LT#LT2#GT#GT_{2n|2n}");
1816 (fIntFlowCorrelationsAllPro->GetXaxis())->SetBinLabel(3,"#LT#LT2#GT#GT_{3n|3n}");
1817 (fIntFlowCorrelationsAllPro->GetXaxis())->SetBinLabel(4,"#LT#LT2#GT#GT_{4n|4n}");
1818 // 3-p correlations:
1819 (fIntFlowCorrelationsAllPro->GetXaxis())->SetBinLabel(6,"#LT#LT3#GT#GT_{2n|n,n}");
1820 (fIntFlowCorrelationsAllPro->GetXaxis())->SetBinLabel(7,"#LT#LT3#GT#GT_{3n|2n,n}");
1821 (fIntFlowCorrelationsAllPro->GetXaxis())->SetBinLabel(8,"#LT#LT3#GT#GT_{4n|2n,2n}");
1822 (fIntFlowCorrelationsAllPro->GetXaxis())->SetBinLabel(9,"#LT#LT3#GT#GT_{4n|3n,n}");
1823 // 4-p correlations:
1824 (fIntFlowCorrelationsAllPro->GetXaxis())->SetBinLabel(11,"#LT#LT4#GT#GT_{n,n|n,n}");
1825 (fIntFlowCorrelationsAllPro->GetXaxis())->SetBinLabel(12,"#LT#LT4#GT#GT_{2n,n|2n,n}");
1826 (fIntFlowCorrelationsAllPro->GetXaxis())->SetBinLabel(13,"#LT#LT4#GT#GT_{2n,2n|2n,2n}");
1827 (fIntFlowCorrelationsAllPro->GetXaxis())->SetBinLabel(14,"#LT#LT4#GT#GT_{3n|n,n,n}");
1828 (fIntFlowCorrelationsAllPro->GetXaxis())->SetBinLabel(15,"#LT#LT4#GT#GT_{3n,n|3n,n}");
1829 (fIntFlowCorrelationsAllPro->GetXaxis())->SetBinLabel(16,"#LT#LT4#GT#GT_{3n,n|2n,2n}");
1830 (fIntFlowCorrelationsAllPro->GetXaxis())->SetBinLabel(17,"#LT#LT4#GT#GT_{4n|2n,n,n}");
1831 // 5-p correlations:
1832 (fIntFlowCorrelationsAllPro->GetXaxis())->SetBinLabel(19,"#LT#LT5#GT#GT_{2n,n|n,n,n}");
1833 (fIntFlowCorrelationsAllPro->GetXaxis())->SetBinLabel(20,"#LT#LT5#GT#GT_{2n,2n|2n,n,n}");
1834 (fIntFlowCorrelationsAllPro->GetXaxis())->SetBinLabel(21,"#LT#LT5#GT#GT_{3n,n|2n,n,n}");
1835 (fIntFlowCorrelationsAllPro->GetXaxis())->SetBinLabel(22,"#LT#LT5#GT#GT_{4n|n,n,n,n}");
1836 // 6-p correlations:
1837 (fIntFlowCorrelationsAllPro->GetXaxis())->SetBinLabel(24,"#LT#LT6#GT#GT_{n,n,n|n,n,n}");
1838 (fIntFlowCorrelationsAllPro->GetXaxis())->SetBinLabel(25,"#LT#LT6#GT#GT_{2n,n,n|2n,n,n}");
1839 (fIntFlowCorrelationsAllPro->GetXaxis())->SetBinLabel(26,"#LT#LT6#GT#GT_{2n,2n|n,n,n,n}");
1840 (fIntFlowCorrelationsAllPro->GetXaxis())->SetBinLabel(27,"#LT#LT6#GT#GT_{3n,n|n,n,n,n}");
1841 // 7-p correlations:
1842 (fIntFlowCorrelationsAllPro->GetXaxis())->SetBinLabel(29,"#LT#LT7#GT#GT_{2n,n,n|n,n,n,n}");
1843 // 8-p correlations:
1844 (fIntFlowCorrelationsAllPro->GetXaxis())->SetBinLabel(31,"#LT#LT8#GT#GT_{n,n,n,n|n,n,n,n}");
1845 // EXTRA correlations for v3{5} study:
1846 (fIntFlowCorrelationsAllPro->GetXaxis())->SetBinLabel(33,"#LT#LT4#GT#GT_{4n,2n|3n,3n}");
1847 (fIntFlowCorrelationsAllPro->GetXaxis())->SetBinLabel(34,"#LT#LT5#GT#GT_{3n,3n|2n,2n,2n}");
1848 // EXTRA correlations for Teaney-Yan study:
1849 (fIntFlowCorrelationsAllPro->GetXaxis())->SetBinLabel(35,"#LT#LT2#GT#GT_{5n|5n}");
1850 (fIntFlowCorrelationsAllPro->GetXaxis())->SetBinLabel(36,"#LT#LT2#GT#GT_{6n|6n}");
1851 (fIntFlowCorrelationsAllPro->GetXaxis())->SetBinLabel(37,"#LT#LT3#GT#GT_{5n|3n,2n}");
1852 (fIntFlowCorrelationsAllPro->GetXaxis())->SetBinLabel(38,"#LT#LT3#GT#GT_{5n|4n,1n}");
1853 (fIntFlowCorrelationsAllPro->GetXaxis())->SetBinLabel(39,"#LT#LT3#GT#GT_{6n|3n,3n}");
1854 (fIntFlowCorrelationsAllPro->GetXaxis())->SetBinLabel(40,"#LT#LT3#GT#GT_{6n|4n,2n}");
1855 (fIntFlowCorrelationsAllPro->GetXaxis())->SetBinLabel(41,"#LT#LT3#GT#GT_{6n|5n,1n}");
1856 (fIntFlowCorrelationsAllPro->GetXaxis())->SetBinLabel(42,"#LT#LT4#GT#GT_{6n|3n,2n,1n}");
1857 (fIntFlowCorrelationsAllPro->GetXaxis())->SetBinLabel(43,"#LT#LT4#GT#GT_{3n,2n|3n,2n}");
1858 (fIntFlowCorrelationsAllPro->GetXaxis())->SetBinLabel(44,"#LT#LT4#GT#GT_{4n,1n|3n,2n}");
1859 (fIntFlowCorrelationsAllPro->GetXaxis())->SetBinLabel(45,"#LT#LT4#GT#GT_{3n,3n|3n,3n}");
1860 (fIntFlowCorrelationsAllPro->GetXaxis())->SetBinLabel(46,"#LT#LT4#GT#GT_{4n,2n|3n,3n}");
1861 (fIntFlowCorrelationsAllPro->GetXaxis())->SetBinLabel(47,"#LT#LT4#GT#GT_{5n,1n|3n,3n}");
1862 (fIntFlowCorrelationsAllPro->GetXaxis())->SetBinLabel(48,"#LT#LT4#GT#GT_{4n,2n|4n,2n}");
1863 (fIntFlowCorrelationsAllPro->GetXaxis())->SetBinLabel(49,"#LT#LT4#GT#GT_{5n,1n|4n,2n}");
1864 (fIntFlowCorrelationsAllPro->GetXaxis())->SetBinLabel(50,"#LT#LT4#GT#GT_{5n|3n,1n,1n}");
1865 (fIntFlowCorrelationsAllPro->GetXaxis())->SetBinLabel(51,"#LT#LT4#GT#GT_{5n|2n,2n,1n}");
1866 (fIntFlowCorrelationsAllPro->GetXaxis())->SetBinLabel(52,"#LT#LT4#GT#GT_{5n,1n|5n,1n}");
1867 (fIntFlowCorrelationsAllPro->GetXaxis())->SetBinLabel(53,"#LT#LT5#GT#GT_{3n,3n|3n,2n,1n}");
1868 (fIntFlowCorrelationsAllPro->GetXaxis())->SetBinLabel(54,"#LT#LT5#GT#GT_{4n,2n|3n,2n,1n}");
1869 (fIntFlowCorrelationsAllPro->GetXaxis())->SetBinLabel(55,"#LT#LT5#GT#GT_{3n,2n|3n,1n,1n}");
1870 (fIntFlowCorrelationsAllPro->GetXaxis())->SetBinLabel(56,"#LT#LT5#GT#GT_{3n,2n|2n,2n,1n}");
1871 (fIntFlowCorrelationsAllPro->GetXaxis())->SetBinLabel(57,"#LT#LT5#GT#GT_{5n,1n|3n,2n,1n}");
1872 (fIntFlowCorrelationsAllPro->GetXaxis())->SetBinLabel(58,"#LT#LT6#GT#GT_{3n,2n,1n|3n,2n,1n}");
1873 (fIntFlowCorrelationsAllPro->GetXaxis())->SetBinLabel(59,"#LT#LT4#GT#GT_{6n|4n,1n,1n}");
1874 (fIntFlowCorrelationsAllPro->GetXaxis())->SetBinLabel(60,"#LT#LT4#GT#GT_{6n|2n,2n,2n}");
1875 (fIntFlowCorrelationsAllPro->GetXaxis())->SetBinLabel(61,"#LT#LT5#GT#GT_{6n|2n,2n,1n,1n}");
1876 (fIntFlowCorrelationsAllPro->GetXaxis())->SetBinLabel(62,"#LT#LT5#GT#GT_{4n,1n,1n|3n,3n}");
1877 (fIntFlowCorrelationsAllPro->GetXaxis())->SetBinLabel(63,"#LT#LT6#GT#GT_{3n,3n|2n,2n,1n,1n}");
1878 fIntFlowProfiles->Add(fIntFlowCorrelationsAllPro);
1879 // average all correlations versus multiplicity (errors via Sumw2 - to be improved):
1880 if(fCalculateAllCorrelationsVsM)
1882 // 2-p correlations vs M:
1883 fIntFlowCorrelationsAllVsMPro[0] = new TProfile("two1n1n","#LT#LT2#GT#GT_{n|n}",fnBinsMult,fMinMult,fMaxMult);
1884 fIntFlowCorrelationsAllVsMPro[1] = new TProfile("two2n2n","#LT#LT2#GT#GT_{2n|2n}",fnBinsMult,fMinMult,fMaxMult);
1885 fIntFlowCorrelationsAllVsMPro[2] = new TProfile("two3n3n","#LT#LT2#GT#GT_{3n|3n}",fnBinsMult,fMinMult,fMaxMult);
1886 fIntFlowCorrelationsAllVsMPro[3] = new TProfile("two4n4n","#LT#LT2#GT#GT_{4n|4n}",fnBinsMult,fMinMult,fMaxMult);
1887 // 3-p correlations vs M:
1888 fIntFlowCorrelationsAllVsMPro[5] = new TProfile("three2n1n1n","#LT#LT3#GT#GT_{2n|n,n}",fnBinsMult,fMinMult,fMaxMult);
1889 fIntFlowCorrelationsAllVsMPro[6] = new TProfile("three3n2n1n","#LT#LT3#GT#GT_{3n|2n,n}",fnBinsMult,fMinMult,fMaxMult);
1890 fIntFlowCorrelationsAllVsMPro[7] = new TProfile("three4n2n2n","#LT#LT3#GT#GT_{4n|2n,2n}",fnBinsMult,fMinMult,fMaxMult);
1891 fIntFlowCorrelationsAllVsMPro[8] = new TProfile("three4n3n1n","#LT#LT3#GT#GT_{4n|3n,n}",fnBinsMult,fMinMult,fMaxMult);
1892 // 4-p correlations vs M:
1893 fIntFlowCorrelationsAllVsMPro[10] = new TProfile("four1n1n1n1n","#LT#LT4#GT#GT_{n,n|n,n}",fnBinsMult,fMinMult,fMaxMult);
1894 fIntFlowCorrelationsAllVsMPro[11] = new TProfile("four2n1n2n1n","#LT#LT4#GT#GT_{2n,n|2n,n}",fnBinsMult,fMinMult,fMaxMult);
1895 fIntFlowCorrelationsAllVsMPro[12] = new TProfile("four2n2n2n2n","#LT#LT4#GT#GT_{2n,2n|2n,2n}",fnBinsMult,fMinMult,fMaxMult);
1896 fIntFlowCorrelationsAllVsMPro[13] = new TProfile("four3n1n1n1n","#LT#LT4#GT#GT_{3n|n,n,n}",fnBinsMult,fMinMult,fMaxMult);
1897 fIntFlowCorrelationsAllVsMPro[14] = new TProfile("four3n1n3n1n","#LT#LT4#GT#GT_{3n,n|3n,n}",fnBinsMult,fMinMult,fMaxMult);
1898 fIntFlowCorrelationsAllVsMPro[15] = new TProfile("four3n1n2n2n","#LT#LT4#GT#GT_{3n,n|2n,2n}",fnBinsMult,fMinMult,fMaxMult);
1899 fIntFlowCorrelationsAllVsMPro[16] = new TProfile("four4n2n1n1n","#LT#LT4#GT#GT_{4n|2n,n,n}",fnBinsMult,fMinMult,fMaxMult);
1900 // 5-p correlations vs M:
1901 fIntFlowCorrelationsAllVsMPro[18] = new TProfile("five2n1n1n1n1n","#LT#LT5#GT#GT_{2n,n|n,n,n}",fnBinsMult,fMinMult,fMaxMult);
1902 fIntFlowCorrelationsAllVsMPro[19] = new TProfile("five2n2n2n1n1n","#LT#LT5#GT#GT_{2n,2n|2n,n,n}",fnBinsMult,fMinMult,fMaxMult);
1903 fIntFlowCorrelationsAllVsMPro[20] = new TProfile("five3n1n2n1n1n","#LT#LT5#GT#GT_{3n,n|2n,n,n}",fnBinsMult,fMinMult,fMaxMult);
1904 fIntFlowCorrelationsAllVsMPro[21] = new TProfile("five4n1n1n1n1n","#LT#LT5#GT#GT_{4n|n,n,n,n}",fnBinsMult,fMinMult,fMaxMult);
1905 // 6-p correlations vs M:
1906 fIntFlowCorrelationsAllVsMPro[23] = new TProfile("six1n1n1n1n1n1n","#LT#LT6#GT#GT_{n,n,n|n,n,n}",fnBinsMult,fMinMult,fMaxMult);
1907 fIntFlowCorrelationsAllVsMPro[24] = new TProfile("six2n1n1n2n1n1n","#LT#LT6#GT#GT_{2n,n,n|2n,n,n}",fnBinsMult,fMinMult,fMaxMult);
1908 fIntFlowCorrelationsAllVsMPro[25] = new TProfile("six2n2n1n1n1n1n","#LT#LT6#GT#GT_{2n,2n|n,n,n,n}",fnBinsMult,fMinMult,fMaxMult);
1909 fIntFlowCorrelationsAllVsMPro[26] = new TProfile("six3n1n1n1n1n1n","#LT#LT6#GT#GT_{3n,n|n,n,n,n}",fnBinsMult,fMinMult,fMaxMult);
1910 // 7-p correlations vs M:
1911 fIntFlowCorrelationsAllVsMPro[28] = new TProfile("seven2n1n1n1n1n1n1n","#LT#LT7#GT#GT_{2n,n,n|n,n,n,n}",fnBinsMult,fMinMult,fMaxMult);
1912 // 8-p correlations vs M:
1913 fIntFlowCorrelationsAllVsMPro[30] = new TProfile("eight1n1n1n1n1n1n1n1n","#LT#LT8#GT#GT_{n,n,n,n|n,n,n,n}",fnBinsMult,fMinMult,fMaxMult);
1914 // EXTRA correlations vs M for v3{5} study (to be improved - put them in a right order somewhere):
1915 fIntFlowCorrelationsAllVsMPro[32] = new TProfile("four4n2n3n3n","#LT#LT4#GT#GT_{4n,2n|3n,3n}",fnBinsMult,fMinMult,fMaxMult);
1916 fIntFlowCorrelationsAllVsMPro[33] = new TProfile("five3n3n2n2n2n","#LT#LT5#GT#GT_{3n,3n|2n,2n,2n}",fnBinsMult,fMinMult,fMaxMult);
1917 // EXTRA correlations vs M for Teaney-Yan study (to be improved - put them in a right order somewhere):
1918 fIntFlowCorrelationsAllVsMPro[34] = new TProfile("two5n5n","#LT#LT2#GT#GT_{5n|5n}",fnBinsMult,fMinMult,fMaxMult);
1919 fIntFlowCorrelationsAllVsMPro[35] = new TProfile("two6n6n","#LT#LT2#GT#GT_{6n|6n}",fnBinsMult,fMinMult,fMaxMult);
1920 fIntFlowCorrelationsAllVsMPro[36] = new TProfile("three5n3n2n","#LT#LT3#GT#GT_{5n|3n,2n}",fnBinsMult,fMinMult,fMaxMult);
1921 fIntFlowCorrelationsAllVsMPro[37] = new TProfile("three5n4n1n","#LT#LT3#GT#GT_{5n|4n,1n}",fnBinsMult,fMinMult,fMaxMult);
1922 fIntFlowCorrelationsAllVsMPro[38] = new TProfile("three6n3n3n","#LT#LT3#GT#GT_{6n|3n,3n}",fnBinsMult,fMinMult,fMaxMult);
1923 fIntFlowCorrelationsAllVsMPro[39] = new TProfile("three6n4n2n","#LT#LT3#GT#GT_{6n|4n,2n}",fnBinsMult,fMinMult,fMaxMult);
1924 fIntFlowCorrelationsAllVsMPro[40] = new TProfile("three6n5n1n","#LT#LT3#GT#GT_{6n|5n,1n}",fnBinsMult,fMinMult,fMaxMult);
1925 fIntFlowCorrelationsAllVsMPro[41] = new TProfile("four6n3n2n1n","#LT#LT4#GT#GT_{6n|3n,2n,1n}",fnBinsMult,fMinMult,fMaxMult);
1926 fIntFlowCorrelationsAllVsMPro[42] = new TProfile("four3n2n3n2n","#LT#LT4#GT#GT_{3n,2n|3n,2n}",fnBinsMult,fMinMult,fMaxMult);
1927 fIntFlowCorrelationsAllVsMPro[43] = new TProfile("four4n1n3n2n","#LT#LT4#GT#GT_{4n,1n|3n,2n}",fnBinsMult,fMinMult,fMaxMult);
1928 fIntFlowCorrelationsAllVsMPro[44] = new TProfile("four3n3n3n3n","#LT#LT4#GT#GT_{3n,3n|3n,3n}",fnBinsMult,fMinMult,fMaxMult);
1929 fIntFlowCorrelationsAllVsMPro[45] = new TProfile("four4n2n3n3n","#LT#LT4#GT#GT_{4n,2n|3n,3n}",fnBinsMult,fMinMult,fMaxMult);
1930 fIntFlowCorrelationsAllVsMPro[46] = new TProfile("four5n1n3n3n","#LT#LT4#GT#GT_{5n,1n|3n,3n}",fnBinsMult,fMinMult,fMaxMult);
1931 fIntFlowCorrelationsAllVsMPro[47] = new TProfile("four4n2n4n2n","#LT#LT4#GT#GT_{4n,2n|4n,2n}",fnBinsMult,fMinMult,fMaxMult);
1932 fIntFlowCorrelationsAllVsMPro[48] = new TProfile("four5n1n4n2n","#LT#LT4#GT#GT_{5n,1n|4n,2n}",fnBinsMult,fMinMult,fMaxMult);
1933 fIntFlowCorrelationsAllVsMPro[49] = new TProfile("four5n3n1n1n","#LT#LT4#GT#GT_{5n|3n,1n,1n}",fnBinsMult,fMinMult,fMaxMult);
1934 fIntFlowCorrelationsAllVsMPro[50] = new TProfile("four5n2n2n1n","#LT#LT4#GT#GT_{5n|2n,2n,1n}",fnBinsMult,fMinMult,fMaxMult);
1935 fIntFlowCorrelationsAllVsMPro[51] = new TProfile("four5n1n5n1n","#LT#LT4#GT#GT_{5n,1n|5n,1n}",fnBinsMult,fMinMult,fMaxMult);
1936 fIntFlowCorrelationsAllVsMPro[52] = new TProfile("five3n3n3n2n1n","#LT#LT5#GT#GT_{3n,3n|3n,2n,1n}",fnBinsMult,fMinMult,fMaxMult);
1937 fIntFlowCorrelationsAllVsMPro[53] = new TProfile("five4n2n3n2n1n","#LT#LT5#GT#GT_{4n,2n|3n,2n,1n}",fnBinsMult,fMinMult,fMaxMult);
1938 fIntFlowCorrelationsAllVsMPro[54] = new TProfile("five3n2n3n1n1n","#LT#LT5#GT#GT_{3n,2n|3n,1n,1n}",fnBinsMult,fMinMult,fMaxMult);
1939 fIntFlowCorrelationsAllVsMPro[55] = new TProfile("five3n2n2n2n1n","#LT#LT5#GT#GT_{3n,2n|2n,2n,1n}",fnBinsMult,fMinMult,fMaxMult);
1940 fIntFlowCorrelationsAllVsMPro[56] = new TProfile("five5n1n3n2n1n","#LT#LT5#GT#GT_{5n,1n|3n,2n,1n}",fnBinsMult,fMinMult,fMaxMult);
1941 fIntFlowCorrelationsAllVsMPro[57] = new TProfile("six3n2n1n3n2n1n","#LT#LT6#GT#GT_{3n,2n,1n|3n,2n,1n}",fnBinsMult,fMinMult,fMaxMult);
1942 fIntFlowCorrelationsAllVsMPro[58] = new TProfile("four6n4n1n1n","#LT#LT4#GT#GT_{6n|4n,1n,1n}",fnBinsMult,fMinMult,fMaxMult);
1943 fIntFlowCorrelationsAllVsMPro[59] = new TProfile("four6n2n2n2n","#LT#LT4#GT#GT_{6n|2n,2n,2n}",fnBinsMult,fMinMult,fMaxMult);
1944 fIntFlowCorrelationsAllVsMPro[60] = new TProfile("five6n2n2n1n1n","#LT#LT5#GT#GT_{6n|2n,2n,1n,1n}",fnBinsMult,fMinMult,fMaxMult);
1945 fIntFlowCorrelationsAllVsMPro[61] = new TProfile("five4n1n1n3n3n","#LT#LT5#GT#GT_{4n,1n,1n|3n,3n}",fnBinsMult,fMinMult,fMaxMult);
1946 fIntFlowCorrelationsAllVsMPro[62] = new TProfile("six3n3n2n2n1n1n","#LT#LT6#GT#GT_{3n,3n|2n,2n,1n,1n}",fnBinsMult,fMinMult,fMaxMult);
1947 for(Int_t n=0;n<63;n++)
1949 if(fIntFlowCorrelationsAllVsMPro[n])
1951 fIntFlowCorrelationsAllVsMPro[n]->Sumw2();
1952 if(fMultiplicityIs==AliFlowCommonConstants::kRP)
1954 fIntFlowCorrelationsAllVsMPro[n]->GetXaxis()->SetTitle("# RPs");
1955 } else if(fMultiplicityIs==AliFlowCommonConstants::kExternal)
1957 fIntFlowCorrelationsAllVsMPro[n]->GetXaxis()->SetTitle("Reference multiplicity (from ESD)");
1958 } else if(fMultiplicityIs==AliFlowCommonConstants::kPOI)
1960 fIntFlowCorrelationsAllVsMPro[n]->GetXaxis()->SetTitle("# POIs");
1962 fIntFlowAllCorrelationsVsM->Add(fIntFlowCorrelationsAllVsMPro[n]);
1963 } // end of if(fIntFlowCorrelationsAllVsMPro[n])
1964 } // end of for(Int_t n=0;n<63;n++)
1965 } // end of if(fCalculateAllCorrelationsVsM)
1966 // when particle weights are used some extra correlations appear:
1967 if(fUsePhiWeights||fUsePtWeights||fUseEtaWeights||fUseTrackWeights)
1969 TString intFlowExtraCorrelationsProName = "fIntFlowExtraCorrelationsPro";
1970 intFlowExtraCorrelationsProName += fAnalysisLabel->Data();
1971 fIntFlowExtraCorrelationsPro = new TProfile(intFlowExtraCorrelationsProName.Data(),"Average extra correlations for all events",100,0,100,"s");
1972 fIntFlowExtraCorrelationsPro->SetTickLength(-0.01,"Y");
1973 fIntFlowExtraCorrelationsPro->SetMarkerStyle(25);
1974 fIntFlowExtraCorrelationsPro->SetLabelSize(0.03);
1975 fIntFlowExtraCorrelationsPro->SetLabelOffset(0.01,"Y");
1976 // extra 2-p correlations:
1977 (fIntFlowExtraCorrelationsPro->GetXaxis())->SetBinLabel(1,"<<w1^3 w2 cos(n*(phi1-phi2))>>");
1978 (fIntFlowExtraCorrelationsPro->GetXaxis())->SetBinLabel(2,"<<w1 w2 w3^2 cos(n*(phi1-phi2))>>");
1979 fIntFlowProfiles->Add(fIntFlowExtraCorrelationsPro);
1980 } // end of if(fUsePhiWeights||fUsePtWeights||fUseEtaWeights||fUseTrackWeights)
1981 // average product of correlations <2>, <4>, <6> and <8>:
1982 TString productFlag[6] = {"#LT#LT2#GT#LT4#GT#GT","#LT#LT2#GT#LT6#GT#GT","#LT#LT2#GT#LT8#GT#GT",
1983 "#LT#LT4#GT#LT6#GT#GT","#LT#LT4#GT#LT8#GT#GT","#LT#LT6#GT#LT8#GT#GT"};
1984 TString intFlowProductOfCorrelationsProName = "fIntFlowProductOfCorrelationsPro";
1985 intFlowProductOfCorrelationsProName += fAnalysisLabel->Data();
1986 fIntFlowProductOfCorrelationsPro = new TProfile(intFlowProductOfCorrelationsProName.Data(),"Average products of correlations",6,0,6);
1987 fIntFlowProductOfCorrelationsPro->SetTickLength(-0.01,"Y");
1988 fIntFlowProductOfCorrelationsPro->SetMarkerStyle(25);
1989 fIntFlowProductOfCorrelationsPro->SetLabelSize(0.05);
1990 fIntFlowProductOfCorrelationsPro->SetLabelOffset(0.01,"Y");
1991 for(Int_t b=0;b<6;b++)
1993 (fIntFlowProductOfCorrelationsPro->GetXaxis())->SetBinLabel(b+1,productFlag[b].Data());
1995 fIntFlowProfiles->Add(fIntFlowProductOfCorrelationsPro);
1996 // average product of correlations <2>, <4>, <6> and <8> versus multiplicity
1997 // [0=<<2><4>>,1=<<2><6>>,2=<<2><8>>,3=<<4><6>>,4=<<4><8>>,5=<<6><8>>]
1998 if(fCalculateCumulantsVsM)
2000 TString intFlowProductOfCorrelationsVsMProName = "fIntFlowProductOfCorrelationsVsMPro";
2001 intFlowProductOfCorrelationsVsMProName += fAnalysisLabel->Data();
2002 for(Int_t pi=0;pi<6;pi++)
2004 fIntFlowProductOfCorrelationsVsMPro[pi] = new TProfile(Form("%s, %s",intFlowProductOfCorrelationsVsMProName.Data(),productFlag[pi].Data()),
2005 Form("%s versus multiplicity",productFlag[pi].Data()),
2006 fnBinsMult,fMinMult,fMaxMult);
2007 if(fMultiplicityIs==AliFlowCommonConstants::kRP)
2009 fIntFlowProductOfCorrelationsVsMPro[pi]->GetXaxis()->SetTitle("# RPs");
2010 } else if(fMultiplicityIs==AliFlowCommonConstants::kExternal)
2012 fIntFlowProductOfCorrelationsVsMPro[pi]->GetXaxis()->SetTitle("Reference multiplicity (from ESD)");
2013 } else if(fMultiplicityIs==AliFlowCommonConstants::kPOI)
2015 fIntFlowProductOfCorrelationsVsMPro[pi]->GetXaxis()->SetTitle("# POIs");
2017 fIntFlowProfiles->Add(fIntFlowProductOfCorrelationsVsMPro[pi]);
2018 } // end of for(Int_t pi=0;pi<6;pi++)
2019 } // end of if(fCalculateCumulantsVsM)
2020 // average product of correction terms for NUA:
2021 TString intFlowProductOfCorrectionTermsForNUAProName = "fIntFlowProductOfCorrectionTermsForNUAPro";
2022 intFlowProductOfCorrectionTermsForNUAProName += fAnalysisLabel->Data();
2023 fIntFlowProductOfCorrectionTermsForNUAPro = new TProfile(intFlowProductOfCorrectionTermsForNUAProName.Data(),"Average products of correction terms for NUA",27,0,27);
2024 fIntFlowProductOfCorrectionTermsForNUAPro->SetTickLength(-0.01,"Y");
2025 fIntFlowProductOfCorrectionTermsForNUAPro->SetMarkerStyle(25);
2026 fIntFlowProductOfCorrectionTermsForNUAPro->SetLabelSize(0.03);
2027 fIntFlowProductOfCorrectionTermsForNUAPro->SetLabelOffset(0.01,"Y");
2028 (fIntFlowProductOfCorrectionTermsForNUAPro->GetXaxis())->SetBinLabel(1,"<<2><cos(#phi)>>");
2029 (fIntFlowProductOfCorrectionTermsForNUAPro->GetXaxis())->SetBinLabel(2,"<<2><sin(#phi)>>");
2030 (fIntFlowProductOfCorrectionTermsForNUAPro->GetXaxis())->SetBinLabel(3,"<<cos(#phi)><sin(#phi)>>");
2031 (fIntFlowProductOfCorrectionTermsForNUAPro->GetXaxis())->SetBinLabel(4,"Cov(<2>,<cos(#phi_{1}+#phi_{2})>)");
2032 (fIntFlowProductOfCorrectionTermsForNUAPro->GetXaxis())->SetBinLabel(5,"Cov(<2>,<sin(#phi_{1}+#phi_{2})>)");
2033 (fIntFlowProductOfCorrectionTermsForNUAPro->GetXaxis())->SetBinLabel(6,"Cov(<2>,<cos(#phi_{1}-#phi_{2}-#phi_{3})>)");
2034 (fIntFlowProductOfCorrectionTermsForNUAPro->GetXaxis())->SetBinLabel(7,"Cov(<2>,<sin(#phi_{1}-#phi_{2}-#phi_{3})>)");
2035 (fIntFlowProductOfCorrectionTermsForNUAPro->GetXaxis())->SetBinLabel(8,"Cov(<4>,<cos(#phi)>)");
2036 (fIntFlowProductOfCorrectionTermsForNUAPro->GetXaxis())->SetBinLabel(9,"Cov(<4>,<sin(#phi)>)");
2037 (fIntFlowProductOfCorrectionTermsForNUAPro->GetXaxis())->SetBinLabel(10,"Cov(<4>,<cos(#phi_{1}+#phi_{2})>)");
2038 (fIntFlowProductOfCorrectionTermsForNUAPro->GetXaxis())->SetBinLabel(11,"Cov(<4>,<sin(#phi_{1}+#phi_{2})>)");
2039 (fIntFlowProductOfCorrectionTermsForNUAPro->GetXaxis())->SetBinLabel(12,"Cov(<4>,<cos(#phi_{1}-#phi_{2}-#phi_{3})>>)");
2040 (fIntFlowProductOfCorrectionTermsForNUAPro->GetXaxis())->SetBinLabel(13,"Cov(<4>,<sin(#phi_{1}-#phi_{2}-#phi_{3})>>)");
2041 (fIntFlowProductOfCorrectionTermsForNUAPro->GetXaxis())->SetBinLabel(14,"Cov(<cos(#phi)>,<cos(#phi_{1}+#phi_{2})>)");
2042 (fIntFlowProductOfCorrectionTermsForNUAPro->GetXaxis())->SetBinLabel(15,"Cov(<cos(#phi)>,<sin(#phi_{1}+#phi_{2})>)");
2043 (fIntFlowProductOfCorrectionTermsForNUAPro->GetXaxis())->SetBinLabel(16,"Cov(<cos(#phi)>,<cos(#phi_{1}-#phi_{2}-#phi_{3})>)");
2044 (fIntFlowProductOfCorrectionTermsForNUAPro->GetXaxis())->SetBinLabel(17,"Cov(<cos(#phi)>,<sin(#phi_{1}-#phi_{2}-#phi_{3})>)");
2045 (fIntFlowProductOfCorrectionTermsForNUAPro->GetXaxis())->SetBinLabel(18,"Cov(<sin(#phi)>,<cos(#phi_{1}+#phi_{2})>)");
2046 (fIntFlowProductOfCorrectionTermsForNUAPro->GetXaxis())->SetBinLabel(19,"Cov(<sin(#phi)>,<sin(#phi_{1}+#phi_{2})>)");
2047 (fIntFlowProductOfCorrectionTermsForNUAPro->GetXaxis())->SetBinLabel(20,"Cov(<sin(#phi)>,<cos(#phi_{1}-#phi_{2}-#phi_{3})>)");
2048 (fIntFlowProductOfCorrectionTermsForNUAPro->GetXaxis())->SetBinLabel(21,"Cov(<sin(#phi)>,<sin(#phi_{1}-#phi_{2}-#phi_{3})>)");
2049 (fIntFlowProductOfCorrectionTermsForNUAPro->GetXaxis())->SetBinLabel(22,"Cov(<cos(#phi_{1}+#phi_{2})>,<sin(#phi_{1}+#phi_{2})>)");
2050 (fIntFlowProductOfCorrectionTermsForNUAPro->GetXaxis())->SetBinLabel(23,"Cov(<cos(#phi_{1}+#phi_{2})>,<cos(#phi_{1}-#phi_{2}-#phi_{3})>)");
2051 (fIntFlowProductOfCorrectionTermsForNUAPro->GetXaxis())->SetBinLabel(24,"Cov(<cos(#phi_{1}+#phi_{2})>,<sin(#phi_{1}-#phi_{2}-#phi_{3})>)");
2052 (fIntFlowProductOfCorrectionTermsForNUAPro->GetXaxis())->SetBinLabel(25,"Cov(<sin(#phi_{1}+#phi_{2})>,<cos(#phi_{1}-#phi_{2}-#phi_{3})>)");
2053 (fIntFlowProductOfCorrectionTermsForNUAPro->GetXaxis())->SetBinLabel(26,"Cov(<sin(#phi_{1}+#phi_{2})>,<sin(#phi_{1}-#phi_{2}-#phi_{3})>)");
2054 (fIntFlowProductOfCorrectionTermsForNUAPro->GetXaxis())->SetBinLabel(27,"Cov(<cos(#phi_{1}-#phi_{2}-#phi_{3}>,<sin(#phi_{1}-#phi_{2}-#phi_{3}>)");
2055 fIntFlowProfiles->Add(fIntFlowProductOfCorrectionTermsForNUAPro);
2056 // average correction terms for non-uniform acceptance (with wrong errors!):
2057 for(Int_t sc=0;sc<2;sc++) // sin or cos terms
2059 TString intFlowCorrectionTermsForNUAProName = "fIntFlowCorrectionTermsForNUAPro";
2060 intFlowCorrectionTermsForNUAProName += fAnalysisLabel->Data();
2061 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");
2062 fIntFlowCorrectionTermsForNUAPro[sc]->SetTickLength(-0.01,"Y");
2063 fIntFlowCorrectionTermsForNUAPro[sc]->SetMarkerStyle(25);
2064 fIntFlowCorrectionTermsForNUAPro[sc]->SetLabelSize(0.05);
2065 fIntFlowCorrectionTermsForNUAPro[sc]->SetLabelOffset(0.01,"Y");
2066 (fIntFlowCorrectionTermsForNUAPro[sc]->GetXaxis())->SetBinLabel(1,Form("#LT#LT%s(n(#phi_{1}))#GT#GT",sinCosFlag[sc].Data()));
2067 (fIntFlowCorrectionTermsForNUAPro[sc]->GetXaxis())->SetBinLabel(2,Form("#LT#LT%s(n(#phi_{1}+#phi_{2}))#GT#GT",sinCosFlag[sc].Data()));
2068 (fIntFlowCorrectionTermsForNUAPro[sc]->GetXaxis())->SetBinLabel(3,Form("#LT#LT%s(n(#phi_{1}-#phi_{2}-#phi_{3}))#GT#GT",sinCosFlag[sc].Data()));
2069 (fIntFlowCorrectionTermsForNUAPro[sc]->GetXaxis())->SetBinLabel(4,Form("#LT#LT%s(n(2#phi_{1}-#phi_{2}))#GT#GT",sinCosFlag[sc].Data()));
2070 fIntFlowProfiles->Add(fIntFlowCorrectionTermsForNUAPro[sc]);
2071 // versus multiplicity:
2072 if(fCalculateCumulantsVsM)
2074 TString correctionTermFlag[4] = {"(n(phi1))","(n(phi1+phi2))","(n(phi1-phi2-phi3))","(n(2phi1-phi2))"}; // to be improved - hardwired 4
2075 for(Int_t ci=0;ci<4;ci++) // correction term index (to be improved - hardwired 4)
2077 TString intFlowCorrectionTermsForNUAVsMProName = "fIntFlowCorrectionTermsForNUAVsMPro";
2078 intFlowCorrectionTermsForNUAVsMProName += fAnalysisLabel->Data();
2079 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");
2080 fIntFlowProfiles->Add(fIntFlowCorrectionTermsForNUAVsMPro[sc][ci]);
2082 } // end of if(fCalculateCumulantsVsM)
2083 } // end of for(Int_t sc=0;sc<2;sc++)
2085 // d) Book histograms holding the final results:
2086 // average correlations <<2>>, <<4>>, <<6>> and <<8>> for all events (with correct errors!):
2087 TString intFlowCorrelationsHistName = "fIntFlowCorrelationsHist";
2088 intFlowCorrelationsHistName += fAnalysisLabel->Data();
2089 fIntFlowCorrelationsHist = new TH1D(intFlowCorrelationsHistName.Data(),"Average correlations for all events",4,0,4);
2090 fIntFlowCorrelationsHist->SetTickLength(-0.01,"Y");
2091 fIntFlowCorrelationsHist->SetMarkerStyle(25);
2092 fIntFlowCorrelationsHist->SetLabelSize(0.06);
2093 fIntFlowCorrelationsHist->SetLabelOffset(0.01,"Y");
2094 (fIntFlowCorrelationsHist->GetXaxis())->SetBinLabel(1,"#LT#LT2#GT#GT");
2095 (fIntFlowCorrelationsHist->GetXaxis())->SetBinLabel(2,"#LT#LT4#GT#GT");
2096 (fIntFlowCorrelationsHist->GetXaxis())->SetBinLabel(3,"#LT#LT6#GT#GT");
2097 (fIntFlowCorrelationsHist->GetXaxis())->SetBinLabel(4,"#LT#LT8#GT#GT");
2098 fIntFlowResults->Add(fIntFlowCorrelationsHist);
2099 // average correlations <<2>>, <<4>>, <<6>> and <<8>> for all events (with correct errors!) vs M:
2100 if(fCalculateCumulantsVsM)
2102 for(Int_t ci=0;ci<4;ci++) // correlation index
2104 TString intFlowCorrelationsVsMHistName = "fIntFlowCorrelationsVsMHist";
2105 intFlowCorrelationsVsMHistName += fAnalysisLabel->Data();
2106 fIntFlowCorrelationsVsMHist[ci] = new TH1D(Form("%s, %s",intFlowCorrelationsVsMHistName.Data(),correlationFlag[ci].Data()),
2107 Form("%s vs multiplicity",correlationFlag[ci].Data()),
2108 fnBinsMult,fMinMult,fMaxMult);
2109 fIntFlowCorrelationsVsMHist[ci]->GetYaxis()->SetTitle(correlationFlag[ci].Data());
2110 if(fMultiplicityIs==AliFlowCommonConstants::kRP)
2112 fIntFlowCorrelationsVsMHist[ci]->GetXaxis()->SetTitle("# RPs");
2113 } else if(fMultiplicityIs==AliFlowCommonConstants::kExternal)
2115 fIntFlowCorrelationsVsMHist[ci]->GetXaxis()->SetTitle("Reference multiplicity (from ESD)");
2116 } else if(fMultiplicityIs==AliFlowCommonConstants::kPOI)
2118 fIntFlowCorrelationsVsMHist[ci]->GetXaxis()->SetTitle("# POIs");
2120 fIntFlowResults->Add(fIntFlowCorrelationsVsMHist[ci]);
2121 } // end of for(Int_t ci=0;ci<4;ci++) // correlation index
2122 } // end of if(fCalculateCumulantsVsM)
2123 // average all correlations for all events (with correct errors!):
2124 TString intFlowCorrelationsAllHistName = "fIntFlowCorrelationsAllHist";
2125 intFlowCorrelationsAllHistName += fAnalysisLabel->Data();
2126 fIntFlowCorrelationsAllHist = new TH1D(intFlowCorrelationsAllHistName.Data(),"Average correlations for all events",34,0,34);
2127 fIntFlowCorrelationsAllHist->SetTickLength(-0.01,"Y");
2128 fIntFlowCorrelationsAllHist->SetMarkerStyle(25);
2129 fIntFlowCorrelationsAllHist->SetLabelSize(0.03);
2130 fIntFlowCorrelationsAllHist->SetLabelOffset(0.01,"Y");
2131 // 2-p correlations:
2132 (fIntFlowCorrelationsAllHist->GetXaxis())->SetBinLabel(1,"<<2>>_{n|n}");
2133 (fIntFlowCorrelationsAllHist->GetXaxis())->SetBinLabel(2,"<<2>>_{2n|2n}");
2134 (fIntFlowCorrelationsAllHist->GetXaxis())->SetBinLabel(3,"<<2>>_{3n|3n}");
2135 (fIntFlowCorrelationsAllHist->GetXaxis())->SetBinLabel(4,"<<2>>_{4n|4n}");
2136 // 3-p correlations:
2137 (fIntFlowCorrelationsAllHist->GetXaxis())->SetBinLabel(6,"<<3>>_{2n|n,n}");
2138 (fIntFlowCorrelationsAllHist->GetXaxis())->SetBinLabel(7,"<<3>>_{3n|2n,n}");
2139 (fIntFlowCorrelationsAllHist->GetXaxis())->SetBinLabel(8,"<<3>>_{4n|2n,2n}");
2140 (fIntFlowCorrelationsAllHist->GetXaxis())->SetBinLabel(9,"<<3>>_{4n|3n,n}");
2141 // 4-p correlations:
2142 (fIntFlowCorrelationsAllHist->GetXaxis())->SetBinLabel(11,"<<4>>_{n,n|n,n}");
2143 (fIntFlowCorrelationsAllHist->GetXaxis())->SetBinLabel(12,"<<4>>_{2n,n|2n,n}");
2144 (fIntFlowCorrelationsAllHist->GetXaxis())->SetBinLabel(13,"<<4>>_{2n,2n|2n,2n}");
2145 (fIntFlowCorrelationsAllHist->GetXaxis())->SetBinLabel(14,"<<4>>_{3n|n,n,n}");
2146 (fIntFlowCorrelationsAllHist->GetXaxis())->SetBinLabel(15,"<<4>>_{3n,n|3n,n}");
2147 (fIntFlowCorrelationsAllHist->GetXaxis())->SetBinLabel(16,"<<4>>_{3n,n|2n,2n}");
2148 (fIntFlowCorrelationsAllHist->GetXaxis())->SetBinLabel(17,"<<4>>_{4n|2n,n,n}");
2149 // 5-p correlations:
2150 (fIntFlowCorrelationsAllHist->GetXaxis())->SetBinLabel(19,"<<5>>_{2n|n,n,n,n}");
2151 (fIntFlowCorrelationsAllHist->GetXaxis())->SetBinLabel(20,"<<5>>_{2n,2n|2n,n,n}");
2152 (fIntFlowCorrelationsAllHist->GetXaxis())->SetBinLabel(21,"<<5>>_{3n,n|2n,n,n}");
2153 (fIntFlowCorrelationsAllHist->GetXaxis())->SetBinLabel(22,"<<5>>_{4n|n,n,n,n}");
2154 // 6-p correlations:
2155 (fIntFlowCorrelationsAllHist->GetXaxis())->SetBinLabel(24,"<<6>>_{n,n,n|n,n,n}");
2156 (fIntFlowCorrelationsAllHist->GetXaxis())->SetBinLabel(25,"<<6>>_{2n,n,n|2n,n,n}");
2157 (fIntFlowCorrelationsAllHist->GetXaxis())->SetBinLabel(26,"<<6>>_{2n,2n|n,n,n,n}");
2158 (fIntFlowCorrelationsAllHist->GetXaxis())->SetBinLabel(27,"<<6>>_{3n,n|n,n,n,n}");
2159 // 7-p correlations:
2160 (fIntFlowCorrelationsAllHist->GetXaxis())->SetBinLabel(29,"<<7>>_{2n,n,n|n,n,n,n}");
2161 // 8-p correlations:
2162 (fIntFlowCorrelationsAllHist->GetXaxis())->SetBinLabel(31,"<<8>>_{n,n,n,n|n,n,n,n}");
2163 fIntFlowResults->Add(fIntFlowCorrelationsAllHist);
2164 // average correction terms for non-uniform acceptance (with correct errors!):
2165 for(Int_t sc=0;sc<2;sc++) // sin or cos terms
2167 TString intFlowCorrectionTermsForNUAHistName = "fIntFlowCorrectionTermsForNUAHist";
2168 intFlowCorrectionTermsForNUAHistName += fAnalysisLabel->Data();
2169 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);
2170 fIntFlowCorrectionTermsForNUAHist[sc]->SetTickLength(-0.01,"Y");
2171 fIntFlowCorrectionTermsForNUAHist[sc]->SetMarkerStyle(25);
2172 fIntFlowCorrectionTermsForNUAHist[sc]->SetLabelSize(0.05);
2173 fIntFlowCorrectionTermsForNUAHist[sc]->SetLabelOffset(0.01,"Y");
2174 (fIntFlowCorrectionTermsForNUAHist[sc]->GetXaxis())->SetBinLabel(1,Form("#LT#LT%s(n(#phi_{1}))#GT#GT",sinCosFlag[sc].Data()));
2175 (fIntFlowCorrectionTermsForNUAHist[sc]->GetXaxis())->SetBinLabel(2,Form("#LT#LT%s(n(#phi_{1}+#phi_{2}))#GT#GT",sinCosFlag[sc].Data()));
2176 (fIntFlowCorrectionTermsForNUAHist[sc]->GetXaxis())->SetBinLabel(3,Form("#LT#LT%s(n(#phi_{1}-#phi_{2}-#phi_{3}))#GT#GT",sinCosFlag[sc].Data()));
2177 (fIntFlowCorrectionTermsForNUAHist[sc]->GetXaxis())->SetBinLabel(4,Form("#LT#LT%s(n(2#phi_{1}-#phi_{2}))#GT#GT",sinCosFlag[sc].Data()));
2178 fIntFlowResults->Add(fIntFlowCorrectionTermsForNUAHist[sc]);
2179 } // end of for(Int_t sc=0;sc<2;sc++)
2180 // covariances (multiplied with weight dependent prefactor):
2181 TString intFlowCovariancesName = "fIntFlowCovariances";
2182 intFlowCovariancesName += fAnalysisLabel->Data();
2183 fIntFlowCovariances = new TH1D(intFlowCovariancesName.Data(),"Covariances (multiplied with weight dependent prefactor)",6,0,6);
2184 fIntFlowCovariances->SetLabelSize(0.04);
2185 fIntFlowCovariances->SetMarkerStyle(25);
2186 (fIntFlowCovariances->GetXaxis())->SetBinLabel(1,"Cov(#LT2#GT,#LT4#GT)");
2187 (fIntFlowCovariances->GetXaxis())->SetBinLabel(2,"Cov(#LT2#GT,#LT6#GT)");
2188 (fIntFlowCovariances->GetXaxis())->SetBinLabel(3,"Cov(#LT2#GT,#LT8#GT)");
2189 (fIntFlowCovariances->GetXaxis())->SetBinLabel(4,"Cov(#LT4#GT,#LT6#GT)");
2190 (fIntFlowCovariances->GetXaxis())->SetBinLabel(5,"Cov(#LT4#GT,#LT8#GT)");
2191 (fIntFlowCovariances->GetXaxis())->SetBinLabel(6,"Cov(#LT6#GT,#LT8#GT)");
2192 fIntFlowResults->Add(fIntFlowCovariances);
2193 // sum of linear and quadratic event weights for <2>, <4>, <6> and <8>:
2194 TString intFlowSumOfEventWeightsName = "fIntFlowSumOfEventWeights";
2195 intFlowSumOfEventWeightsName += fAnalysisLabel->Data();
2196 for(Int_t power=0;power<2;power++)
2198 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);
2199 fIntFlowSumOfEventWeights[power]->SetLabelSize(0.04);
2200 fIntFlowSumOfEventWeights[power]->SetMarkerStyle(25);
2203 (fIntFlowSumOfEventWeights[power]->GetXaxis())->SetBinLabel(1,"#sum_{i=1}^{N} w_{#LT2#GT}");
2204 (fIntFlowSumOfEventWeights[power]->GetXaxis())->SetBinLabel(2,"#sum_{i=1}^{N} w_{#LT4#GT}");
2205 (fIntFlowSumOfEventWeights[power]->GetXaxis())->SetBinLabel(3,"#sum_{i=1}^{N} w_{#LT6#GT}");
2206 (fIntFlowSumOfEventWeights[power]->GetXaxis())->SetBinLabel(4,"#sum_{i=1}^{N} w_{#LT8#GT}");
2207 } else if (power == 1)
2209 (fIntFlowSumOfEventWeights[power]->GetXaxis())->SetBinLabel(1,"#sum_{i=1}^{N} w_{#LT2#GT}^{2}");
2210 (fIntFlowSumOfEventWeights[power]->GetXaxis())->SetBinLabel(2,"#sum_{i=1}^{N} w_{#LT4#GT}^{2}");
2211 (fIntFlowSumOfEventWeights[power]->GetXaxis())->SetBinLabel(3,"#sum_{i=1}^{N} w_{#LT6#GT}^{2}");
2212 (fIntFlowSumOfEventWeights[power]->GetXaxis())->SetBinLabel(4,"#sum_{i=1}^{N} w_{#LT8#GT}^{2}");
2214 fIntFlowResults->Add(fIntFlowSumOfEventWeights[power]);
2216 // sum of products of event weights for correlations <2>, <4>, <6> and <8>:
2217 TString intFlowSumOfProductOfEventWeightsName = "fIntFlowSumOfProductOfEventWeights";
2218 intFlowSumOfProductOfEventWeightsName += fAnalysisLabel->Data();
2219 fIntFlowSumOfProductOfEventWeights = new TH1D(intFlowSumOfProductOfEventWeightsName.Data(),"Sum of product of event weights for correlations",6,0,6);
2220 fIntFlowSumOfProductOfEventWeights->SetLabelSize(0.04);
2221 fIntFlowSumOfProductOfEventWeights->SetMarkerStyle(25);
2222 (fIntFlowSumOfProductOfEventWeights->GetXaxis())->SetBinLabel(1,"#sum_{i=1}^{N} w_{#LT2#GT} w_{#LT4#GT}");
2223 (fIntFlowSumOfProductOfEventWeights->GetXaxis())->SetBinLabel(2,"#sum_{i=1}^{N} w_{#LT2#GT} w_{#LT6#GT}");
2224 (fIntFlowSumOfProductOfEventWeights->GetXaxis())->SetBinLabel(3,"#sum_{i=1}^{N} w_{#LT2#GT} w_{#LT8#GT}");
2225 (fIntFlowSumOfProductOfEventWeights->GetXaxis())->SetBinLabel(4,"#sum_{i=1}^{N} w_{#LT4#GT} w_{#LT6#GT}");
2226 (fIntFlowSumOfProductOfEventWeights->GetXaxis())->SetBinLabel(5,"#sum_{i=1}^{N} w_{#LT4#GT} w_{#LT8#GT}");
2227 (fIntFlowSumOfProductOfEventWeights->GetXaxis())->SetBinLabel(6,"#sum_{i=1}^{N} w_{#LT6#GT} w_{#LT8#GT}");
2228 fIntFlowResults->Add(fIntFlowSumOfProductOfEventWeights);
2229 // final result for covariances of correlations (multiplied with weight dependent prefactor) versus M
2230 // [0=Cov(2,4),1=Cov(2,6),2=Cov(2,8),3=Cov(4,6),4=Cov(4,8),5=Cov(6,8)]:
2231 if(fCalculateCumulantsVsM)
2233 TString intFlowCovariancesVsMName = "fIntFlowCovariancesVsM";
2234 intFlowCovariancesVsMName += fAnalysisLabel->Data();
2235 TString covarianceFlag[6] = {"Cov(<2>,<4>)","Cov(<2>,<6>)","Cov(<2>,<8>)","Cov(<4>,<6>)","Cov(<4>,<8>)","Cov(<6>,<8>)"};
2236 for(Int_t ci=0;ci<6;ci++)
2238 fIntFlowCovariancesVsM[ci] = new TH1D(Form("%s, %s",intFlowCovariancesVsMName.Data(),covarianceFlag[ci].Data()),
2239 Form("%s vs multiplicity",covarianceFlag[ci].Data()),
2240 fnBinsMult,fMinMult,fMaxMult);
2241 fIntFlowCovariancesVsM[ci]->GetYaxis()->SetTitle(covarianceFlag[ci].Data());
2242 if(fMultiplicityIs==AliFlowCommonConstants::kRP)
2244 fIntFlowCovariancesVsM[ci]->GetXaxis()->SetTitle("# RPs");
2245 } else if(fMultiplicityIs==AliFlowCommonConstants::kExternal)
2247 fIntFlowCovariancesVsM[ci]->GetXaxis()->SetTitle("Reference multiplicity (from ESD)");
2248 } else if(fMultiplicityIs==AliFlowCommonConstants::kPOI)
2250 fIntFlowCovariancesVsM[ci]->GetXaxis()->SetTitle("# POIs");
2252 fIntFlowResults->Add(fIntFlowCovariancesVsM[ci]);
2254 } // end of if(fCalculateCumulantsVsM)
2255 // sum of linear and quadratic event weights for <2>, <4>, <6> and <8> versus multiplicity
2256 // [0=sum{w_{<2>}},1=sum{w_{<4>}},2=sum{w_{<6>}},3=sum{w_{<8>}}][0=linear 1,1=quadratic]:
2257 if(fCalculateCumulantsVsM)
2259 TString intFlowSumOfEventWeightsVsMName = "fIntFlowSumOfEventWeightsVsM";
2260 intFlowSumOfEventWeightsVsMName += fAnalysisLabel->Data();
2261 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>}"},
2262 {"#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}"}};
2263 for(Int_t si=0;si<4;si++)
2265 for(Int_t power=0;power<2;power++)
2267 fIntFlowSumOfEventWeightsVsM[si][power] = new TH1D(Form("%s, %s",intFlowSumOfEventWeightsVsMName.Data(),sumFlag[power][si].Data()),
2268 Form("%s vs multiplicity",sumFlag[power][si].Data()),
2269 fnBinsMult,fMinMult,fMaxMult);
2270 fIntFlowSumOfEventWeightsVsM[si][power]->GetYaxis()->SetTitle(sumFlag[power][si].Data());
2271 if(fMultiplicityIs==AliFlowCommonConstants::kRP)
2273 fIntFlowSumOfEventWeightsVsM[si][power]->GetXaxis()->SetTitle("# RPs");
2274 } else if(fMultiplicityIs==AliFlowCommonConstants::kExternal)
2276 fIntFlowSumOfEventWeightsVsM[si][power]->GetXaxis()->SetTitle("Reference multiplicity (from ESD)");
2277 } else if(fMultiplicityIs==AliFlowCommonConstants::kPOI)
2279 fIntFlowSumOfEventWeightsVsM[si][power]->GetXaxis()->SetTitle("# POIs");
2281 fIntFlowResults->Add(fIntFlowSumOfEventWeightsVsM[si][power]);
2282 } // end of for(Int_t power=0;power<2;power++)
2283 } // end of for(Int_t si=0;si<4;si++)
2284 } // end of if(fCalculateCumulantsVsM)
2285 // sum of products of event weights for correlations <2>, <4>, <6> and <8> vs M
2286 // [0=sum{w_{<2>}w_{<4>}},1=sum{w_{<2>}w_{<6>}},2=sum{w_{<2>}w_{<8>}},
2287 // 3=sum{w_{<4>}w_{<6>}},4=sum{w_{<4>}w_{<8>}},5=sum{w_{<6>}w_{<8>}}]:
2288 if(fCalculateCumulantsVsM)
2290 TString intFlowSumOfProductOfEventWeightsVsMName = "fIntFlowSumOfProductOfEventWeightsVsM";
2291 intFlowSumOfProductOfEventWeightsVsMName += fAnalysisLabel->Data();
2292 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>}",
2293 "#sum_{i=1}^{N} w_{<4>} w_{<6>}","#sum_{i=1}^{N} w_{<4>} w_{<8>}","#sum_{i=1}^{N} w_{<6>} w_{<8>}"};
2294 for(Int_t pi=0;pi<6;pi++)
2296 fIntFlowSumOfProductOfEventWeightsVsM[pi] = new TH1D(Form("%s, %s",intFlowSumOfProductOfEventWeightsVsMName.Data(),sopowFlag[pi].Data()),
2297 Form("%s versus multiplicity",sopowFlag[pi].Data()),
2298 fnBinsMult,fMinMult,fMaxMult);
2299 if(fMultiplicityIs==AliFlowCommonConstants::kRP)
2301 fIntFlowSumOfProductOfEventWeightsVsM[pi]->GetXaxis()->SetTitle("# RPs");
2302 } else if(fMultiplicityIs==AliFlowCommonConstants::kExternal)
2304 fIntFlowSumOfProductOfEventWeightsVsM[pi]->GetXaxis()->SetTitle("Reference multiplicity (from ESD)");
2305 } else if(fMultiplicityIs==AliFlowCommonConstants::kPOI)
2307 fIntFlowSumOfProductOfEventWeightsVsM[pi]->GetXaxis()->SetTitle("# POIs");
2309 fIntFlowSumOfProductOfEventWeightsVsM[pi]->GetYaxis()->SetTitle(sopowFlag[pi].Data());
2310 fIntFlowResults->Add(fIntFlowSumOfProductOfEventWeightsVsM[pi]);
2311 } // end of for(Int_t pi=0;pi<6;pi++)
2312 } // end of if(fCalculateCumulantsVsM)
2313 // covariances of NUA terms (multiplied with weight dependent prefactor):
2314 TString intFlowCovariancesNUAName = "fIntFlowCovariancesNUA";
2315 intFlowCovariancesNUAName += fAnalysisLabel->Data();
2316 fIntFlowCovariancesNUA = new TH1D(intFlowCovariancesNUAName.Data(),"Covariances for NUA (multiplied with weight dependent prefactor)",27,0,27);
2317 fIntFlowCovariancesNUA->SetLabelSize(0.04);
2318 fIntFlowCovariancesNUA->SetMarkerStyle(25);
2319 fIntFlowCovariancesNUA->GetXaxis()->SetLabelSize(0.02);
2320 (fIntFlowCovariancesNUA->GetXaxis())->SetBinLabel(1,"Cov(<2>,<cos(#phi)>");
2321 (fIntFlowCovariancesNUA->GetXaxis())->SetBinLabel(2,"Cov(<2>,<sin(#phi)>)");
2322 (fIntFlowCovariancesNUA->GetXaxis())->SetBinLabel(3,"Cov(<cos(#phi)>,<sin(#phi)>)");
2323 (fIntFlowCovariancesNUA->GetXaxis())->SetBinLabel(4,"Cov(<2>,<cos(#phi_{1}+#phi_{2})>)");
2324 (fIntFlowCovariancesNUA->GetXaxis())->SetBinLabel(5,"Cov(<2>,<sin(#phi_{1}+#phi_{2})>)");
2325 (fIntFlowCovariancesNUA->GetXaxis())->SetBinLabel(6,"Cov(<2>,<cos(#phi_{1}-#phi_{2}-#phi_{3})>)");
2326 (fIntFlowCovariancesNUA->GetXaxis())->SetBinLabel(7,"Cov(<2>,<sin(#phi_{1}-#phi_{2}-#phi_{3})>)");
2327 (fIntFlowCovariancesNUA->GetXaxis())->SetBinLabel(8,"Cov(<4>,<cos(#phi)>)");
2328 (fIntFlowCovariancesNUA->GetXaxis())->SetBinLabel(9,"Cov(<4>,<sin(#phi)>)");
2329 (fIntFlowCovariancesNUA->GetXaxis())->SetBinLabel(10,"Cov(<4>,<cos(#phi_{1}+#phi_{2})>)");
2330 (fIntFlowCovariancesNUA->GetXaxis())->SetBinLabel(11,"Cov(<4>,<sin(#phi_{1}+#phi_{2})>)");
2331 (fIntFlowCovariancesNUA->GetXaxis())->SetBinLabel(12,"Cov(<4>,<cos(#phi_{1}-#phi_{2}-#phi_{3})>>)");
2332 (fIntFlowCovariancesNUA->GetXaxis())->SetBinLabel(13,"Cov(<4>,<sin(#phi_{1}-#phi_{2}-#phi_{3})>>)");
2333 (fIntFlowCovariancesNUA->GetXaxis())->SetBinLabel(14,"Cov(<cos(#phi)>,<cos(#phi_{1}+#phi_{2})>)");
2334 (fIntFlowCovariancesNUA->GetXaxis())->SetBinLabel(15,"Cov(<cos(#phi)>,<sin(#phi_{1}+#phi_{2})>)");
2335 (fIntFlowCovariancesNUA->GetXaxis())->SetBinLabel(16,"Cov(<cos(#phi)>,<cos(#phi_{1}-#phi_{2}-#phi_{3})>)");
2336 (fIntFlowCovariancesNUA->GetXaxis())->SetBinLabel(17,"Cov(<cos(#phi)>,<sin(#phi_{1}-#phi_{2}-#phi_{3})>)");
2337 (fIntFlowCovariancesNUA->GetXaxis())->SetBinLabel(18,"Cov(<sin(#phi)>,<cos(#phi_{1}+#phi_{2})>)");
2338 (fIntFlowCovariancesNUA->GetXaxis())->SetBinLabel(19,"Cov(<sin(#phi)>,<sin(#phi_{1}+#phi_{2})>)");
2339 (fIntFlowCovariancesNUA->GetXaxis())->SetBinLabel(20,"Cov(<sin(#phi)>,<cos(#phi_{1}-#phi_{2}-#phi_{3})>)");
2340 (fIntFlowCovariancesNUA->GetXaxis())->SetBinLabel(21,"Cov(<sin(#phi)>,<sin(#phi_{1}-#phi_{2}-#phi_{3})>)");
2341 (fIntFlowCovariancesNUA->GetXaxis())->SetBinLabel(22,"Cov(<cos(#phi_{1}+#phi_{2})>,<sin(#phi_{1}+#phi_{2})>)");
2342 (fIntFlowCovariancesNUA->GetXaxis())->SetBinLabel(23,"Cov(<cos(#phi_{1}+#phi_{2})>,<cos(#phi_{1}-#phi_{2}-#phi_{3})>)");
2343 (fIntFlowCovariancesNUA->GetXaxis())->SetBinLabel(24,"Cov(<cos(#phi_{1}+#phi_{2})>,<sin(#phi_{1}-#phi_{2}-#phi_{3})>)");
2344 (fIntFlowCovariancesNUA->GetXaxis())->SetBinLabel(25,"Cov(<sin(#phi_{1}+#phi_{2})>,<cos(#phi_{1}-#phi_{2}-#phi_{3})>)");
2345 (fIntFlowCovariancesNUA->GetXaxis())->SetBinLabel(26,"Cov(<sin(#phi_{1}+#phi_{2})>,<sin(#phi_{1}-#phi_{2}-#phi_{3})>)");
2346 (fIntFlowCovariancesNUA->GetXaxis())->SetBinLabel(27,"Cov(<cos(#phi_{1}-#phi_{2}-#phi_{3}>,<sin(#phi_{1}-#phi_{2}-#phi_{3}>)");
2347 fIntFlowResults->Add(fIntFlowCovariancesNUA);
2348 // sum of linear and quadratic event weights for NUA terms:
2349 TString intFlowSumOfEventWeightsNUAName = "fIntFlowSumOfEventWeightsNUA";
2350 intFlowSumOfEventWeightsNUAName += fAnalysisLabel->Data();
2351 for(Int_t sc=0;sc<2;sc++)
2353 for(Int_t power=0;power<2;power++)
2355 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); // to be improved - 4
2356 fIntFlowSumOfEventWeightsNUA[sc][power]->SetLabelSize(0.05);
2357 fIntFlowSumOfEventWeightsNUA[sc][power]->SetMarkerStyle(25);
2360 (fIntFlowSumOfEventWeightsNUA[sc][power]->GetXaxis())->SetBinLabel(1,Form("#sum_{i=1}^{N} w_{<%s(#phi)>}",sinCosFlag[sc].Data()));
2361 (fIntFlowSumOfEventWeightsNUA[sc][power]->GetXaxis())->SetBinLabel(2,Form("#sum_{i=1}^{N} w_{<%s(#phi_{1}+#phi_{2})>}",sinCosFlag[sc].Data()));
2362 (fIntFlowSumOfEventWeightsNUA[sc][power]->GetXaxis())->SetBinLabel(3,Form("#sum_{i=1}^{N} w_{<%s(#phi_{1}-#phi_{2}-#phi_{3})>}",sinCosFlag[sc].Data()));
2363 (fIntFlowSumOfEventWeightsNUA[sc][power]->GetXaxis())->SetBinLabel(4,Form("#sum_{i=1}^{N} w_{<%s(2#phi_{1}-#phi_{2})>}",sinCosFlag[sc].Data()));
2364 } else if(power == 1)
2366 (fIntFlowSumOfEventWeightsNUA[sc][power]->GetXaxis())->SetBinLabel(1,Form("#sum_{i=1}^{N} w_{<%s(#phi)>}^{2}",sinCosFlag[sc].Data()));
2367 (fIntFlowSumOfEventWeightsNUA[sc][power]->GetXaxis())->SetBinLabel(2,Form("#sum_{i=1}^{N} w_{<%s(#phi_{1}+#phi_{2})>}^{2}",sinCosFlag[sc].Data()));
2368 (fIntFlowSumOfEventWeightsNUA[sc][power]->GetXaxis())->SetBinLabel(3,Form("#sum_{i=1}^{N} w_{<%s(#phi_{1}-#phi_{2}-#phi_{3})>}^{2}",sinCosFlag[sc].Data()));
2369 (fIntFlowSumOfEventWeightsNUA[sc][power]->GetXaxis())->SetBinLabel(4,Form("#sum_{i=1}^{N} w_{<%s(2#phi_{1}-#phi_{2})>}^{2}",sinCosFlag[sc].Data()));
2371 fIntFlowResults->Add(fIntFlowSumOfEventWeightsNUA[sc][power]);
2374 // sum of products of event weights for NUA terms:
2375 TString intFlowSumOfProductOfEventWeightsNUAName = "fIntFlowSumOfProductOfEventWeightsNUA";
2376 intFlowSumOfProductOfEventWeightsNUAName += fAnalysisLabel->Data();
2377 fIntFlowSumOfProductOfEventWeightsNUA = new TH1D(intFlowSumOfProductOfEventWeightsNUAName.Data(),"Sum of product of event weights for NUA terms",27,0,27);
2378 fIntFlowSumOfProductOfEventWeightsNUA->SetLabelSize(0.02);
2379 fIntFlowSumOfProductOfEventWeightsNUA->SetMarkerStyle(25);
2380 (fIntFlowSumOfProductOfEventWeightsNUA->GetXaxis())->SetBinLabel(1,"#sum_{i=1}^{N} w_{#LT2#GT} w_{#LTcos(#phi)#GT}");
2381 (fIntFlowSumOfProductOfEventWeightsNUA->GetXaxis())->SetBinLabel(2,"#sum_{i=1}^{N} w_{#LT2#GT} w_{#LTsin(#phi)#GT}");
2382 (fIntFlowSumOfProductOfEventWeightsNUA->GetXaxis())->SetBinLabel(3,"#sum_{i=1}^{N} w_{#LTcos(#phi)#GT} w_{#LTsin(#phi)#GT}");
2383 (fIntFlowSumOfProductOfEventWeightsNUA->GetXaxis())->SetBinLabel(4,"#sum_{i=1}^{N} w_{#LT2#GT} w_{#LTcos(#phi_{1}+#phi_{2})#GT}");
2384 (fIntFlowSumOfProductOfEventWeightsNUA->GetXaxis())->SetBinLabel(5,"#sum_{i=1}^{N} w_{#LT2#GT} w_{#LTsin(#phi_{1}+#phi_{2})#GT}");
2385 (fIntFlowSumOfProductOfEventWeightsNUA->GetXaxis())->SetBinLabel(6,"#sum_{i=1}^{N} w_{#LT2#GT} w_{#LTcos(#phi_{1}-#phi_{2}-#phi_{3})#GT}");
2386 (fIntFlowSumOfProductOfEventWeightsNUA->GetXaxis())->SetBinLabel(7,"#sum_{i=1}^{N} w_{#LT2#GT} w_{#LTsin(#phi_{1}-#phi_{2}-#phi_{3})#GT}");
2387 (fIntFlowSumOfProductOfEventWeightsNUA->GetXaxis())->SetBinLabel(8,"#sum_{i=1}^{N} w_{#LT4#GT} w_{#LTcos(#phi)#GT}");
2388 (fIntFlowSumOfProductOfEventWeightsNUA->GetXaxis())->SetBinLabel(9,"#sum_{i=1}^{N} w_{#LT4#GT} w_{#LTsin(#phi)#GT}");
2389 (fIntFlowSumOfProductOfEventWeightsNUA->GetXaxis())->SetBinLabel(10,"#sum_{i=1}^{N} w_{#LT4#GT} w_{#LTcos(#phi_{1}+#phi_{2})#GT}");
2390 (fIntFlowSumOfProductOfEventWeightsNUA->GetXaxis())->SetBinLabel(11,"#sum_{i=1}^{N} w_{#LT4#GT} w_{#LTsin(#phi_{1}+#phi_{2})#GT}");
2391 (fIntFlowSumOfProductOfEventWeightsNUA->GetXaxis())->SetBinLabel(12,"#sum_{i=1}^{N} w_{#LT4#GT} w_{#LTcos(#phi_{1}-#phi_{2}-#phi_{3})#GT}");
2392 (fIntFlowSumOfProductOfEventWeightsNUA->GetXaxis())->SetBinLabel(13,"#sum_{i=1}^{N} w_{#LT4#GT} w_{#LTsin(#phi_{1}-#phi_{2}-#phi_{3})#GT}");
2393 (fIntFlowSumOfProductOfEventWeightsNUA->GetXaxis())->SetBinLabel(14,"#sum_{i=1}^{N} w_{#LTcos(#phi)#GT} w_{#LTcos(#phi_{1}+#phi_{2})#GT}");
2394 (fIntFlowSumOfProductOfEventWeightsNUA->GetXaxis())->SetBinLabel(15,"#sum_{i=1}^{N} w_{#LTcos(#phi)#GT} w_{#LTsin(#phi_{1}+#phi_{2})#GT}");
2395 (fIntFlowSumOfProductOfEventWeightsNUA->GetXaxis())->SetBinLabel(16,"#sum_{i=1}^{N} w_{#LTcos(#phi)#GT} w_{#LTcos(#phi_{1}-#phi_{2}-#phi_{3})#GT}");
2396 (fIntFlowSumOfProductOfEventWeightsNUA->GetXaxis())->SetBinLabel(17,"#sum_{i=1}^{N} w_{#LTcos(#phi)#GT} w_{#LTsin(#phi_{1}-#phi_{2}-#phi_{3})#GT}");
2397 (fIntFlowSumOfProductOfEventWeightsNUA->GetXaxis())->SetBinLabel(18,"#sum_{i=1}^{N} w_{#LTsin(#phi)#GT} w_{#LTcos(#phi_{1}+#phi_{2})#GT}");
2398 (fIntFlowSumOfProductOfEventWeightsNUA->GetXaxis())->SetBinLabel(19,"#sum_{i=1}^{N} w_{#LTsin(#phi)#GT} w_{#LTsin(#phi_{1}+#phi_{2})#GT}");
2399 (fIntFlowSumOfProductOfEventWeightsNUA->GetXaxis())->SetBinLabel(20,"#sum_{i=1}^{N} w_{#LTsin(#phi)#GT} w_{#LTcos(#phi_{1}-#phi_{2}-#phi_{3})#GT}");
2400 (fIntFlowSumOfProductOfEventWeightsNUA->GetXaxis())->SetBinLabel(21,"#sum_{i=1}^{N} w_{#LTsin(#phi)#GT} w_{#LTsin(#phi_{1}-#phi_{2}-#phi_{3})#GT}");
2401 (fIntFlowSumOfProductOfEventWeightsNUA->GetXaxis())->SetBinLabel(22,"#sum_{i=1}^{N} w_{#LTcos(#phi_{1}+#phi_{2})#GT} w_{#LTsin(#phi_{1}+#phi_{2})#GT}");
2402 (fIntFlowSumOfProductOfEventWeightsNUA->GetXaxis())->SetBinLabel(23,"#sum_{i=1}^{N} w_{#LTcos(#phi_{1}+#phi_{2})#GT} w_{#LTcos(#phi_{1}-#phi_{2}-#phi_{3})#GT}");
2403 (fIntFlowSumOfProductOfEventWeightsNUA->GetXaxis())->SetBinLabel(24,"#sum_{i=1}^{N} w_{#LTcos(#phi_{1}+#phi_{2})#GT} w_{#LTsin(#phi_{1}-#phi_{2}-#phi_{3})#GT}");
2404 (fIntFlowSumOfProductOfEventWeightsNUA->GetXaxis())->SetBinLabel(25,"#sum_{i=1}^{N} w_{#LTsin(#phi_{1}+#phi_{2})#GT} w_{#LTcos(#phi_{1}-#phi_{2}-#phi_{3})#GT}");
2405 (fIntFlowSumOfProductOfEventWeightsNUA->GetXaxis())->SetBinLabel(26,"#sum_{i=1}^{N} w_{#LTsin(#phi_{1}+#phi_{2})#GT} w_{#LTsin(#phi_{1}-#phi_{2}-#phi_{3})#GT}");
2406 (fIntFlowSumOfProductOfEventWeightsNUA->GetXaxis())->SetBinLabel(27,"#sum_{i=1}^{N} w_{#LTcos(#phi_{1}-#phi_{2}-#phi_{3})#GT} w_{#LTsin(#phi_{1}-#phi_{2}-#phi_{3})#GT}");
2407 fIntFlowResults->Add(fIntFlowSumOfProductOfEventWeightsNUA);
2408 // Final results for reference Q-cumulants:
2409 TString cumulantFlag[4] = {"QC{2}","QC{4}","QC{6}","QC{8}"};
2410 TString intFlowQcumulantsName = "fIntFlowQcumulants";
2411 intFlowQcumulantsName += fAnalysisLabel->Data();
2412 fIntFlowQcumulants = new TH1D(intFlowQcumulantsName.Data(),"Reference Q-cumulants",4,0,4);
2413 if(fPropagateErrorAlsoFromNIT)
2415 fIntFlowQcumulants->SetTitle("Reference Q-cumulants (error from non-isotropic terms also propagated)");
2417 fIntFlowQcumulants->SetLabelSize(0.05);
2418 fIntFlowQcumulants->SetMarkerStyle(25);
2419 for(Int_t b=0;b<4;b++)
2421 (fIntFlowQcumulants->GetXaxis())->SetBinLabel(b+1,cumulantFlag[b].Data());
2423 fIntFlowResults->Add(fIntFlowQcumulants);
2424 // Final results for reference Q-cumulants rebinned in M:
2425 if(fCalculateCumulantsVsM)
2427 TString intFlowQcumulantsRebinnedInMName = "fIntFlowQcumulantsRebinnedInM";
2428 intFlowQcumulantsRebinnedInMName += fAnalysisLabel->Data();
2429 fIntFlowQcumulantsRebinnedInM = new TH1D(intFlowQcumulantsRebinnedInMName.Data(),"Reference Q-cumulants rebinned in M",4,0,4);
2430 fIntFlowQcumulantsRebinnedInM->SetLabelSize(0.05);
2431 fIntFlowQcumulantsRebinnedInM->SetMarkerStyle(25);
2432 for(Int_t b=0;b<4;b++)
2434 (fIntFlowQcumulantsRebinnedInM->GetXaxis())->SetBinLabel(b+1,cumulantFlag[b].Data());
2436 fIntFlowResults->Add(fIntFlowQcumulantsRebinnedInM);
2437 } // end of if(fCalculateCumulantsVsM)
2438 // Ratio between error squared: with/without non-isotropic terms:
2439 TString intFlowQcumulantsErrorSquaredRatioName = "fIntFlowQcumulantsErrorSquaredRatio";
2440 intFlowQcumulantsErrorSquaredRatioName += fAnalysisLabel->Data();
2441 fIntFlowQcumulantsErrorSquaredRatio = new TH1D(intFlowQcumulantsErrorSquaredRatioName.Data(),"Error squared of reference Q-cumulants: #frac{with NUA terms}{without NUA terms}",4,0,4);
2442 fIntFlowQcumulantsErrorSquaredRatio->SetLabelSize(0.05);
2443 fIntFlowQcumulantsErrorSquaredRatio->SetMarkerStyle(25);
2444 for(Int_t b=0;b<4;b++)
2446 (fIntFlowQcumulantsErrorSquaredRatio->GetXaxis())->SetBinLabel(b+1,cumulantFlag[b].Data());
2448 fIntFlowResults->Add(fIntFlowQcumulantsErrorSquaredRatio);
2449 // final results for integrated Q-cumulants versus multiplicity:
2450 if(fCalculateCumulantsVsM)
2452 TString intFlowQcumulantsVsMName = "fIntFlowQcumulantsVsM";
2453 intFlowQcumulantsVsMName += fAnalysisLabel->Data();
2454 for(Int_t co=0;co<4;co++) // cumulant order
2456 fIntFlowQcumulantsVsM[co] = new TH1D(Form("%s, %s",intFlowQcumulantsVsMName.Data(),cumulantFlag[co].Data()),
2457 Form("%s vs multiplicity",cumulantFlag[co].Data()),
2458 fnBinsMult,fMinMult,fMaxMult);
2459 if(fMultiplicityIs==AliFlowCommonConstants::kRP)
2461 fIntFlowQcumulantsVsM[co]->GetXaxis()->SetTitle("# RPs");
2462 } else if(fMultiplicityIs==AliFlowCommonConstants::kExternal)
2464 fIntFlowQcumulantsVsM[co]->GetXaxis()->SetTitle("Reference multiplicity (from ESD)");
2465 } else if(fMultiplicityIs==AliFlowCommonConstants::kPOI)
2467 fIntFlowQcumulantsVsM[co]->GetXaxis()->SetTitle("# POIs");
2469 fIntFlowQcumulantsVsM[co]->GetYaxis()->SetTitle(cumulantFlag[co].Data());
2470 fIntFlowResults->Add(fIntFlowQcumulantsVsM[co]);
2471 } // end of for(Int_t co=0;co<4;co++) // cumulant order
2472 } // end of if(fCalculateCumulantsVsM)
2473 // final integrated flow estimates from Q-cumulants:
2474 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)};
2475 TString intFlowName = "fIntFlow";
2476 intFlowName += fAnalysisLabel->Data();
2477 // integrated flow from Q-cumulants:
2478 fIntFlow = new TH1D(intFlowName.Data(),"Reference flow estimates from Q-cumulants",4,0,4);
2479 fIntFlow->SetLabelSize(0.05);
2480 fIntFlow->SetMarkerStyle(25);
2481 for(Int_t b=0;b<4;b++)
2483 (fIntFlow->GetXaxis())->SetBinLabel(b+1,flowFlag[b].Data());
2485 fIntFlowResults->Add(fIntFlow);
2486 // Reference flow vs M rebinned in one huge bin:
2487 if(fCalculateCumulantsVsM)
2489 TString intFlowRebinnedInMName = "fIntFlowRebinnedInM";
2490 intFlowRebinnedInMName += fAnalysisLabel->Data();
2491 fIntFlowRebinnedInM = new TH1D(intFlowRebinnedInMName.Data(),"Reference flow estimates from Q-cumulants (rebinned in M)",4,0,4);
2492 fIntFlowRebinnedInM->SetLabelSize(0.05);
2493 fIntFlowRebinnedInM->SetMarkerStyle(25);
2494 for(Int_t b=0;b<4;b++)
2496 (fIntFlowRebinnedInM->GetXaxis())->SetBinLabel(b+1,flowFlag[b].Data());
2498 fIntFlowResults->Add(fIntFlowRebinnedInM);
2500 // integrated flow from Q-cumulants: versus multiplicity:
2501 if(fCalculateCumulantsVsM)
2503 TString intFlowVsMName = "fIntFlowVsM";
2504 intFlowVsMName += fAnalysisLabel->Data();
2505 for(Int_t co=0;co<4;co++) // cumulant order
2507 fIntFlowVsM[co] = new TH1D(Form("%s, %s",intFlowVsMName.Data(),flowFlag[co].Data()),
2508 Form("%s vs multiplicity",flowFlag[co].Data()),
2509 fnBinsMult,fMinMult,fMaxMult);
2510 if(fMultiplicityIs==AliFlowCommonConstants::kRP)
2512 fIntFlowVsM[co]->GetXaxis()->SetTitle("# RPs");
2513 } else if(fMultiplicityIs==AliFlowCommonConstants::kExternal)
2515 fIntFlowVsM[co]->GetXaxis()->SetTitle("Reference multiplicity (from ESD)");
2516 } else if(fMultiplicityIs==AliFlowCommonConstants::kPOI)
2518 fIntFlowVsM[co]->GetXaxis()->SetTitle("# POIs");
2520 fIntFlowVsM[co]->GetYaxis()->SetTitle(flowFlag[co].Data());
2521 fIntFlowResults->Add(fIntFlowVsM[co]);
2522 } // end of for(Int_t co=0;co<4;co++) // cumulant order
2523 } // end of if(fCalculateCumulantsVsM)
2524 // quantifying detector effects effects to correlations:
2525 TString intFlowDetectorBiasName = "fIntFlowDetectorBias";
2526 intFlowDetectorBiasName += fAnalysisLabel->Data();
2527 fIntFlowDetectorBias = new TH1D(intFlowDetectorBiasName.Data(),"Quantifying detector bias",4,0,4);
2528 fIntFlowDetectorBias->SetLabelSize(0.05);
2529 fIntFlowDetectorBias->SetMarkerStyle(25);
2530 for(Int_t ci=0;ci<4;ci++)
2532 (fIntFlowDetectorBias->GetXaxis())->SetBinLabel(ci+1,Form("#frac{corrected}{measured} %s",cumulantFlag[ci].Data()));
2534 fIntFlowResults->Add(fIntFlowDetectorBias);
2535 // quantifying detector effects to correlations versus multiplicity:
2536 if(fCalculateCumulantsVsM)
2538 TString intFlowDetectorBiasVsMName = "fIntFlowDetectorBiasVsM";
2539 intFlowDetectorBiasVsMName += fAnalysisLabel->Data();
2540 for(Int_t ci=0;ci<4;ci++) // correlation index
2542 fIntFlowDetectorBiasVsM[ci] = new TH1D(Form("%s for %s",intFlowDetectorBiasVsMName.Data(),cumulantFlag[ci].Data()),
2543 Form("Quantifying detector bias for %s vs multiplicity",cumulantFlag[ci].Data()),
2544 fnBinsMult,fMinMult,fMaxMult);
2545 if(fMultiplicityIs==AliFlowCommonConstants::kRP)
2547 fIntFlowDetectorBiasVsM[ci]->GetXaxis()->SetTitle("# RPs");
2548 } else if(fMultiplicityIs==AliFlowCommonConstants::kExternal)
2550 fIntFlowDetectorBiasVsM[ci]->GetXaxis()->SetTitle("Reference multiplicity (from ESD)");
2551 } else if(fMultiplicityIs==AliFlowCommonConstants::kPOI)
2553 fIntFlowDetectorBiasVsM[ci]->GetXaxis()->SetTitle("# POIs");
2555 fIntFlowDetectorBiasVsM[ci]->GetYaxis()->SetTitle("#frac{corrected}{measured}");
2556 fIntFlowResults->Add(fIntFlowDetectorBiasVsM[ci]);
2557 } // end of for(Int_t co=0;co<4;co++) // cumulant order
2558 } // end of if(fCalculateCumulantsVsM)
2560 } // end of AliFlowAnalysisWithQCumulants::BookEverythingForIntegratedFlow()
2562 //=======================================================================================================================
2564 void AliFlowAnalysisWithQCumulants::BookEverythingForControlHistograms()
2566 // Book all objects for control histograms.
2568 // a) Book profile to hold all flags for control histograms;
2569 // b) Book all control histograms.
2571 // a) Book profile to hold all flags for control histograms:
2572 TString controlHistogramsFlagsName = "fControlHistogramsFlags";
2573 controlHistogramsFlagsName += fAnalysisLabel->Data();
2574 fControlHistogramsFlags = new TProfile(controlHistogramsFlagsName.Data(),"Flags for Control Histograms",3,0,3);
2575 fControlHistogramsFlags->SetTickLength(-0.01,"Y");
2576 fControlHistogramsFlags->SetMarkerStyle(25);
2577 fControlHistogramsFlags->SetLabelSize(0.04);
2578 fControlHistogramsFlags->SetLabelOffset(0.02,"Y");
2579 fControlHistogramsFlags->SetStats(kFALSE);
2580 fControlHistogramsFlags->GetXaxis()->SetBinLabel(1,"fCorrelationNoRPsVsRefMult");
2581 fControlHistogramsFlags->GetXaxis()->SetBinLabel(2,"fCorrelationNoPOIsVsRefMult");
2582 fControlHistogramsFlags->GetXaxis()->SetBinLabel(3,"fCorrelationNoRPsVsNoPOIs");
2583 fControlHistogramsList->Add(fControlHistogramsFlags);
2585 if(!fStoreControlHistograms){return;}
2587 // b) Book all control histograms:
2588 // b1) Correlation between # RPs and ref. mult. determined centrally:
2589 TString sCorrelationNoRPsVsRefMultName = "fCorrelationNoRPsVsRefMult";
2590 sCorrelationNoRPsVsRefMultName += fAnalysisLabel->Data();
2591 fCorrelationNoRPsVsRefMult = new TH2D(sCorrelationNoRPsVsRefMultName.Data(),"# RPs vs. Reference Multiplicity",fnBinsMult,fMinMult,fMaxMult,fnBinsMult,fMinMult,fMaxMult);
2592 fCorrelationNoRPsVsRefMult->SetTickLength(-0.01,"Y");
2593 fCorrelationNoRPsVsRefMult->SetLabelSize(0.04);
2594 fCorrelationNoRPsVsRefMult->SetLabelOffset(0.02,"Y");
2595 fCorrelationNoRPsVsRefMult->SetStats(kTRUE);
2596 fCorrelationNoRPsVsRefMult->GetXaxis()->SetTitle("# RPs");
2597 fCorrelationNoRPsVsRefMult->GetYaxis()->SetTitle("Reference Multiplicity");
2598 fControlHistogramsList->Add(fCorrelationNoRPsVsRefMult);
2599 // b2) Correlation between # POIs and ref. mult. determined centrally:
2600 TString sCorrelationNoPOIsVsRefMultName = "fCorrelationNoPOIsVsRefMult";
2601 sCorrelationNoPOIsVsRefMultName += fAnalysisLabel->Data();
2602 fCorrelationNoPOIsVsRefMult = new TH2D(sCorrelationNoPOIsVsRefMultName.Data(),"# POIs vs. Reference Multiplicity",fnBinsMult,fMinMult,fMaxMult,fnBinsMult,fMinMult,fMaxMult);
2603 fCorrelationNoPOIsVsRefMult->SetTickLength(-0.01,"Y");
2604 fCorrelationNoPOIsVsRefMult->SetLabelSize(0.04);
2605 fCorrelationNoPOIsVsRefMult->SetLabelOffset(0.02,"Y");
2606 fCorrelationNoPOIsVsRefMult->SetStats(kTRUE);
2607 fCorrelationNoPOIsVsRefMult->GetXaxis()->SetTitle("# POIs");
2608 fCorrelationNoPOIsVsRefMult->GetYaxis()->SetTitle("Reference Multiplicity");
2609 fControlHistogramsList->Add(fCorrelationNoPOIsVsRefMult);
2610 // b3) Correlation between # RPs and # POIs:
2611 TString sCorrelationNoRPsVsNoPOIsName = "fCorrelationNoRPsVsNoPOIs";
2612 sCorrelationNoRPsVsNoPOIsName += fAnalysisLabel->Data();
2613 fCorrelationNoRPsVsNoPOIs = new TH2D(sCorrelationNoRPsVsNoPOIsName.Data(),"# RPs vs. # POIs",fnBinsMult,fMinMult,fMaxMult,fnBinsMult,fMinMult,fMaxMult);
2614 fCorrelationNoRPsVsNoPOIs->SetTickLength(-0.01,"Y");
2615 fCorrelationNoRPsVsNoPOIs->SetLabelSize(0.04);
2616 fCorrelationNoRPsVsNoPOIs->SetLabelOffset(0.02,"Y");
2617 fCorrelationNoRPsVsNoPOIs->SetStats(kTRUE);
2618 fCorrelationNoRPsVsNoPOIs->GetXaxis()->SetTitle("# RPs");
2619 fCorrelationNoRPsVsNoPOIs->GetYaxis()->SetTitle("# POIs");
2620 fControlHistogramsList->Add(fCorrelationNoRPsVsNoPOIs);
2621 // b4) <2>, <4>, <6> and <8> vs multiplicity (#RPs, #POIs or external):
2622 TString sCorrelation[4] = {"#LT2#GT","#LT4#GT","#LT6#GT","#LT8#GT"};
2623 TString sMultiplicity = "";
2624 if(fMultiplicityIs==AliFlowCommonConstants::kRP)
2626 sMultiplicity = "# RPs";
2627 } else if(fMultiplicityIs==AliFlowCommonConstants::kExternal)
2629 sMultiplicity = "Reference multiplicity (from ESD)";
2630 } else if(fMultiplicityIs==AliFlowCommonConstants::kPOI)
2632 sMultiplicity = "# POIs";
2634 for(Int_t ci=0;ci<4;ci++)
2636 fCorrelation2468VsMult[ci] = new TH2D(Form("%s vs M",sCorrelation[ci].Data()),Form("%s vs M",sCorrelation[ci].Data()),fnBinsMult,fMinMult,fMaxMult,10000,fMinValueOfCorrelation[ci],fMaxValueOfCorrelation[ci]); // tbi -> 10000
2637 fCorrelation2468VsMult[ci]->SetTickLength(-0.01,"Y");
2638 fCorrelation2468VsMult[ci]->SetLabelSize(0.04);
2639 fCorrelation2468VsMult[ci]->SetLabelOffset(0.02,"Y");
2640 fCorrelation2468VsMult[ci]->SetStats(kTRUE);
2641 fCorrelation2468VsMult[ci]->GetXaxis()->SetTitle(sMultiplicity.Data());
2642 fCorrelation2468VsMult[ci]->GetYaxis()->SetTitle(sCorrelation[ci].Data());
2643 fControlHistogramsList->Add(fCorrelation2468VsMult[ci]);
2644 } // end of for(Int_t ci=0;ci<4;ci++)
2646 } // end of void AliFlowAnalysisWithQCumulants::BookEverythingForControlHistograms()
2648 //=======================================================================================================================
2650 void AliFlowAnalysisWithQCumulants::BookEverythingForMixedHarmonics()
2652 // Book all objects for mixed harmonics.
2654 // a) Book profile to hold all flags for mixed harmonics;
2655 // b) Book all objects in TList fMixedHarmonicsProfiles;
2656 // c) Book all objects in TList fMixedHarmonicsResults;
2657 // d) Book all objects in TList fMixedHarmonicsErrorPropagation.
2659 // a) Book profile to hold all flags for mixed harmonics:
2660 TString mixedHarmonicsFlagsName = "fMixedHarmonicsFlags";
2661 mixedHarmonicsFlagsName += fAnalysisLabel->Data();
2662 fMixedHarmonicsFlags = new TProfile(mixedHarmonicsFlagsName.Data(),"Flags for Mixed Harmonics",4,0,4);
2663 fMixedHarmonicsFlags->SetTickLength(-0.01,"Y");
2664 fMixedHarmonicsFlags->SetMarkerStyle(25);
2665 fMixedHarmonicsFlags->SetLabelSize(0.04);
2666 fMixedHarmonicsFlags->SetLabelOffset(0.02,"Y");
2667 fMixedHarmonicsFlags->SetStats(kFALSE);
2668 fMixedHarmonicsFlags->GetXaxis()->SetBinLabel(1,"Calculate Mixed Harmonics");
2669 fMixedHarmonicsFlags->GetXaxis()->SetBinLabel(2,"Generic Harmonic");
2670 fMixedHarmonicsFlags->GetXaxis()->SetBinLabel(3,"Calculate vs Multiplicity");
2671 fMixedHarmonicsFlags->GetXaxis()->SetBinLabel(4,"Multiplicity Weight");
2672 fMixedHarmonicsList->Add(fMixedHarmonicsFlags);
2674 if(!fCalculateMixedHarmonics){return;}
2676 // b) Book all objects in TList fMixedHarmonicsProfiles:
2677 // b1) 2-p correlations:
2678 TString s2pCorrelationsName = "f2pCorrelations";
2679 s2pCorrelationsName += fAnalysisLabel->Data();
2680 f2pCorrelations = new TProfile(s2pCorrelationsName.Data(),Form("2-particle correlations (n = %d)",fHarmonic),6,0,6,"s");
2681 f2pCorrelations->SetTickLength(-0.01,"Y");
2682 f2pCorrelations->SetMarkerStyle(25);
2683 f2pCorrelations->SetLabelSize(0.04);
2684 f2pCorrelations->SetLabelOffset(0.02,"Y");
2685 f2pCorrelations->SetStats(kFALSE);
2686 f2pCorrelations->Sumw2();
2687 f2pCorrelations->GetXaxis()->SetBinLabel(1,Form("#LT#LT2#GT#GT_{%dn|%dn}",1*fHarmonic,1*fHarmonic));
2688 f2pCorrelations->GetXaxis()->SetBinLabel(2,Form("#LT#LT2#GT#GT_{%dn|%dn}",2*fHarmonic,2*fHarmonic));
2689 f2pCorrelations->GetXaxis()->SetBinLabel(3,Form("#LT#LT2#GT#GT_{%dn|%dn}",3*fHarmonic,3*fHarmonic));
2690 f2pCorrelations->GetXaxis()->SetBinLabel(4,Form("#LT#LT2#GT#GT_{%dn|%dn}",4*fHarmonic,4*fHarmonic));
2691 f2pCorrelations->GetXaxis()->SetBinLabel(5,Form("#LT#LT2#GT#GT_{%dn|%dn}",5*fHarmonic,5*fHarmonic));
2692 f2pCorrelations->GetXaxis()->SetBinLabel(6,Form("#LT#LT2#GT#GT_{%dn|%dn}",6*fHarmonic,6*fHarmonic));
2693 fMixedHarmonicsProfiles->Add(f2pCorrelations);
2694 // b2) 3-p correlations (3+6):
2695 TString s3pCorrelationsName = "f3pCorrelations";
2696 s3pCorrelationsName += fAnalysisLabel->Data();
2697 f3pCorrelations = new TProfile(s3pCorrelationsName.Data(),Form("3-particle correlations (n = %d)",fHarmonic),10,0,10,"s");
2698 f3pCorrelations->SetTickLength(-0.01,"Y");
2699 f3pCorrelations->SetMarkerStyle(25);
2700 f3pCorrelations->SetLabelSize(0.04);
2701 f3pCorrelations->SetLabelOffset(0.02,"Y");
2702 f3pCorrelations->SetStats(kFALSE);
2703 f3pCorrelations->Sumw2();
2704 // 3-p correlations sensitive to two distinct harmonics (3):
2705 f3pCorrelations->GetXaxis()->SetBinLabel(1,Form("#LT#LT3#GT#GT_{%dn|%dn,%dn}",2*fHarmonic,1*fHarmonic,1*fHarmonic));
2706 f3pCorrelations->GetXaxis()->SetBinLabel(2,Form("#LT#LT3#GT#GT_{%dn|%dn,%dn}",4*fHarmonic,2*fHarmonic,2*fHarmonic));
2707 f3pCorrelations->GetXaxis()->SetBinLabel(3,Form("#LT#LT3#GT#GT_{%dn|%dn,%dn}",6*fHarmonic,3*fHarmonic,3*fHarmonic));
2708 f3pCorrelations->GetXaxis()->SetBinLabel(4,""); // empty
2709 // 3-p correlations sensitive to three distinct harmonics (6):
2710 f3pCorrelations->GetXaxis()->SetBinLabel(5,Form("#LT#LT3#GT#GT_{%dn|%dn,%dn}",3*fHarmonic,2*fHarmonic,1*fHarmonic));
2711 f3pCorrelations->GetXaxis()->SetBinLabel(6,Form("#LT#LT3#GT#GT_{%dn|%dn,%dn}",4*fHarmonic,3*fHarmonic,1*fHarmonic));
2712 f3pCorrelations->GetXaxis()->SetBinLabel(7,Form("#LT#LT3#GT#GT_{%dn|%dn,%dn}",5*fHarmonic,3*fHarmonic,2*fHarmonic));
2713 f3pCorrelations->GetXaxis()->SetBinLabel(8,Form("#LT#LT3#GT#GT_{%dn|%dn,%dn}",5*fHarmonic,4*fHarmonic,1*fHarmonic));
2714 f3pCorrelations->GetXaxis()->SetBinLabel(9,Form("#LT#LT3#GT#GT_{%dn|%dn,%dn}",6*fHarmonic,4*fHarmonic,2*fHarmonic));
2715 f3pCorrelations->GetXaxis()->SetBinLabel(10,Form("#LT#LT3#GT#GT_{%dn|%dn,%dn}",6*fHarmonic,5*fHarmonic,1*fHarmonic));
2716 fMixedHarmonicsProfiles->Add(f3pCorrelations);
2717 // b3) 4-p correlations (6+15+2+10+8):
2718 TString s4pCorrelationsName = "f4pCorrelations";
2719 s4pCorrelationsName += fAnalysisLabel->Data();
2720 f4pCorrelations = new TProfile(s4pCorrelationsName.Data(),Form("4-particle correlations (n = %d)",fHarmonic),45,0,45,"s");
2721 f4pCorrelations->SetTickLength(-0.01,"Y");
2722 f4pCorrelations->SetMarkerStyle(25);
2723 f4pCorrelations->SetLabelSize(0.03);
2724 f4pCorrelations->SetLabelOffset(0.02,"Y");
2725 f4pCorrelations->SetStats(kFALSE);
2726 f4pCorrelations->Sumw2();
2727 // "same harmonic" (6):
2728 f4pCorrelations->GetXaxis()->SetBinLabel(1,Form("#LT#LT4#GT#GT_{%dn,%dn|%dn,%dn}",1*fHarmonic,1*fHarmonic,1*fHarmonic,1*fHarmonic));
2729 f4pCorrelations->GetXaxis()->SetBinLabel(2,Form("#LT#LT4#GT#GT_{%dn,%dn|%dn,%dn}",2*fHarmonic,2*fHarmonic,2*fHarmonic,2*fHarmonic));
2730 f4pCorrelations->GetXaxis()->SetBinLabel(3,Form("#LT#LT4#GT#GT_{%dn,%dn|%dn,%dn}",3*fHarmonic,3*fHarmonic,3*fHarmonic,3*fHarmonic));
2731 f4pCorrelations->GetXaxis()->SetBinLabel(4,Form("#LT#LT4#GT#GT_{%dn,%dn|%dn,%dn}",4*fHarmonic,4*fHarmonic,4*fHarmonic,4*fHarmonic));
2732 f4pCorrelations->GetXaxis()->SetBinLabel(5,Form("#LT#LT4#GT#GT_{%dn,%dn|%dn,%dn}",5*fHarmonic,5*fHarmonic,5*fHarmonic,5*fHarmonic));
2733 f4pCorrelations->GetXaxis()->SetBinLabel(6,Form("#LT#LT4#GT#GT_{%dn,%dn|%dn,%dn}",6*fHarmonic,6*fHarmonic,6*fHarmonic,6*fHarmonic));
2734 f4pCorrelations->GetXaxis()->SetBinLabel(7,""); // empty
2735 // "standard candles" (15):
2736 f4pCorrelations->GetXaxis()->SetBinLabel(8,Form("#LT#LT4#GT#GT_{%dn,%dn|%dn,%dn}",2*fHarmonic,1*fHarmonic,2*fHarmonic,1*fHarmonic));
2737 f4pCorrelations->GetXaxis()->SetBinLabel(9,Form("#LT#LT4#GT#GT_{%dn,%dn|%dn,%dn}",3*fHarmonic,1*fHarmonic,3*fHarmonic,1*fHarmonic));
2738 f4pCorrelations->GetXaxis()->SetBinLabel(10,Form("#LT#LT4#GT#GT_{%dn,%dn|%dn,%dn}",3*fHarmonic,2*fHarmonic,3*fHarmonic,2*fHarmonic));
2739 f4pCorrelations->GetXaxis()->SetBinLabel(11,Form("#LT#LT4#GT#GT_{%dn,%dn|%dn,%dn}",4*fHarmonic,1*fHarmonic,4*fHarmonic,1*fHarmonic));
2740 f4pCorrelations->GetXaxis()->SetBinLabel(12,Form("#LT#LT4#GT#GT_{%dn,%dn|%dn,%dn}",4*fHarmonic,2*fHarmonic,4*fHarmonic,2*fHarmonic));
2741 f4pCorrelations->GetXaxis()->SetBinLabel(13,Form("#LT#LT4#GT#GT_{%dn,%dn|%dn,%dn}",4*fHarmonic,3*fHarmonic,4*fHarmonic,3*fHarmonic));
2742 f4pCorrelations->GetXaxis()->SetBinLabel(14,Form("#LT#LT4#GT#GT_{%dn,%dn|%dn,%dn}",5*fHarmonic,1*fHarmonic,5*fHarmonic,1*fHarmonic));
2743 f4pCorrelations->GetXaxis()->SetBinLabel(15,Form("#LT#LT4#GT#GT_{%dn,%dn|%dn,%dn}",5*fHarmonic,2*fHarmonic,5*fHarmonic,2*fHarmonic));
2744 f4pCorrelations->GetXaxis()->SetBinLabel(16,Form("#LT#LT4#GT#GT_{%dn,%dn|%dn,%dn}",5*fHarmonic,3*fHarmonic,5*fHarmonic,3*fHarmonic));
2745 f4pCorrelations->GetXaxis()->SetBinLabel(17,Form("#LT#LT4#GT#GT_{%dn,%dn|%dn,%dn}",5*fHarmonic,4*fHarmonic,5*fHarmonic,4*fHarmonic));
2746 f4pCorrelations->GetXaxis()->SetBinLabel(18,Form("#LT#LT4#GT#GT_{%dn,%dn|%dn,%dn}",6*fHarmonic,1*fHarmonic,6*fHarmonic,1*fHarmonic));
2747 f4pCorrelations->GetXaxis()->SetBinLabel(19,Form("#LT#LT4#GT#GT_{%dn,%dn|%dn,%dn}",6*fHarmonic,2*fHarmonic,6*fHarmonic,2*fHarmonic));
2748 f4pCorrelations->GetXaxis()->SetBinLabel(20,Form("#LT#LT4#GT#GT_{%dn,%dn|%dn,%dn}",6*fHarmonic,3*fHarmonic,6*fHarmonic,3*fHarmonic));
2749 f4pCorrelations->GetXaxis()->SetBinLabel(21,Form("#LT#LT4#GT#GT_{%dn,%dn|%dn,%dn}",6*fHarmonic,4*fHarmonic,6*fHarmonic,4*fHarmonic));
2750 f4pCorrelations->GetXaxis()->SetBinLabel(22,Form("#LT#LT4#GT#GT_{%dn,%dn|%dn,%dn}",6*fHarmonic,5*fHarmonic,6*fHarmonic,5*fHarmonic));
2751 f4pCorrelations->GetXaxis()->SetBinLabel(23,""); // empty
2752 // 4-p correlations sensitive to two distinct harmonics (2):
2753 f4pCorrelations->GetXaxis()->SetBinLabel(24,Form("#LT#LT4#GT#GT_{%dn|%dn,%dn,%dn}",3*fHarmonic,1*fHarmonic,1*fHarmonic,1*fHarmonic));
2754 f4pCorrelations->GetXaxis()->SetBinLabel(25,Form("#LT#LT4#GT#GT_{%dn|%dn,%dn,%dn}",6*fHarmonic,2*fHarmonic,2*fHarmonic,2*fHarmonic));
2755 f4pCorrelations->GetXaxis()->SetBinLabel(26,""); // empty
2756 // 4-p correlations sensitive to three distinct harmonics (10):
2757 f4pCorrelations->GetXaxis()->SetBinLabel(27,Form("#LT#LT4#GT#GT_{%dn,%dn|%dn,%dn}",3*fHarmonic,1*fHarmonic,2*fHarmonic,2*fHarmonic));
2758 f4pCorrelations->GetXaxis()->SetBinLabel(28,Form("#LT#LT4#GT#GT_{%dn|%dn,%dn,%dn}",4*fHarmonic,2*fHarmonic,1*fHarmonic,1*fHarmonic));
2759 f4pCorrelations->GetXaxis()->SetBinLabel(29,Form("#LT#LT4#GT#GT_{%dn,%dn|%dn,%dn}",4*fHarmonic,2*fHarmonic,3*fHarmonic,3*fHarmonic));
2760 f4pCorrelations->GetXaxis()->SetBinLabel(30,Form("#LT#LT4#GT#GT_{%dn|%dn,%dn,%dn}",5*fHarmonic,2*fHarmonic,2*fHarmonic,1*fHarmonic));
2761 f4pCorrelations->GetXaxis()->SetBinLabel(31,Form("#LT#LT4#GT#GT_{%dn|%dn,%dn,%dn}",5*fHarmonic,3*fHarmonic,1*fHarmonic,1*fHarmonic));
2762 f4pCorrelations->GetXaxis()->SetBinLabel(32,Form("#LT#LT4#GT#GT_{%dn,%dn|%dn,%dn}",5*fHarmonic,1*fHarmonic,3*fHarmonic,3*fHarmonic));
2763 f4pCorrelations->GetXaxis()->SetBinLabel(33,Form("#LT#LT4#GT#GT_{%dn,%dn|%dn,%dn}",5*fHarmonic,3*fHarmonic,4*fHarmonic,4*fHarmonic));
2764 f4pCorrelations->GetXaxis()->SetBinLabel(34,Form("#LT#LT4#GT#GT_{%dn|%dn,%dn,%dn}",6*fHarmonic,4*fHarmonic,1*fHarmonic,1*fHarmonic));
2765 f4pCorrelations->GetXaxis()->SetBinLabel(35,Form("#LT#LT4#GT#GT_{%dn,%dn|%dn,%dn}",6*fHarmonic,2*fHarmonic,4*fHarmonic,4*fHarmonic));
2766 f4pCorrelations->GetXaxis()->SetBinLabel(36,Form("#LT#LT4#GT#GT_{%dn,%dn|%dn,%dn}",6*fHarmonic,4*fHarmonic,5*fHarmonic,5*fHarmonic));
2767 f4pCorrelations->GetXaxis()->SetBinLabel(37,""); // empty
2768 // 4-p correlations sensitive to four distinct harmonics (8):
2769 f4pCorrelations->GetXaxis()->SetBinLabel(38,Form("#LT#LT4#GT#GT_{%dn,%dn|%dn,%dn}",4*fHarmonic,1*fHarmonic,3*fHarmonic,2*fHarmonic));
2770 f4pCorrelations->GetXaxis()->SetBinLabel(39,Form("#LT#LT4#GT#GT_{%dn,%dn|%dn,%dn}",5*fHarmonic,1*fHarmonic,4*fHarmonic,2*fHarmonic));
2771 f4pCorrelations->GetXaxis()->SetBinLabel(40,Form("#LT#LT4#GT#GT_{%dn,%dn|%dn,%dn}",5*fHarmonic,2*fHarmonic,4*fHarmonic,3*fHarmonic));
2772 f4pCorrelations->GetXaxis()->SetBinLabel(41,Form("#LT#LT4#GT#GT_{%dn,%dn|%dn,%dn}",6*fHarmonic,1*fHarmonic,4*fHarmonic,3*fHarmonic));
2773 f4pCorrelations->GetXaxis()->SetBinLabel(42,Form("#LT#LT4#GT#GT_{%dn,%dn|%dn,%dn}",6*fHarmonic,1*fHarmonic,5*fHarmonic,2*fHarmonic));
2774 f4pCorrelations->GetXaxis()->SetBinLabel(43,Form("#LT#LT4#GT#GT_{%dn|%dn,%dn,%dn}",6*fHarmonic,3*fHarmonic,2*fHarmonic,1*fHarmonic));
2775 f4pCorrelations->GetXaxis()->SetBinLabel(44,Form("#LT#LT4#GT#GT_{%dn,%dn|%dn,%dn}",6*fHarmonic,2*fHarmonic,5*fHarmonic,3*fHarmonic));
2776 f4pCorrelations->GetXaxis()->SetBinLabel(45,Form("#LT#LT4#GT#GT_{%dn,%dn|%dn,%dn}",6*fHarmonic,3*fHarmonic,5*fHarmonic,4*fHarmonic));
2777 fMixedHarmonicsProfiles->Add(f4pCorrelations);
2778 // b3) 5-p correlations (30+9+30+11+3):
2779 TString s5pCorrelationsName = "f5pCorrelations";
2780 s5pCorrelationsName += fAnalysisLabel->Data();
2781 f5pCorrelations = new TProfile(s5pCorrelationsName.Data(),Form("5-particle correlations (n = %d)",fHarmonic),87,0,87,"s");
2782 f5pCorrelations->SetTickLength(-0.01,"Y");
2783 f5pCorrelations->SetMarkerStyle(25);
2784 f5pCorrelations->SetLabelSize(0.02);
2785 f5pCorrelations->SetLabelOffset(0.02,"Y");
2786 f5pCorrelations->SetStats(kFALSE);
2787 f5pCorrelations->Sumw2();
2788 // "standard candles" (30):
2789 f5pCorrelations->GetXaxis()->SetBinLabel(1,Form("#LT#LT5#GT#GT_{%dn,%dn|%dn,%dn,%dn}",3*fHarmonic,2*fHarmonic,3*fHarmonic,1*fHarmonic,1*fHarmonic));
2790 f5pCorrelations->GetXaxis()->SetBinLabel(2,Form("#LT#LT5#GT#GT_{%dn,%dn|%dn,%dn,%dn}",4*fHarmonic,1*fHarmonic,2*fHarmonic,2*fHarmonic,1*fHarmonic));
2791 f5pCorrelations->GetXaxis()->SetBinLabel(3,Form("#LT#LT5#GT#GT_{%dn,%dn|%dn,%dn,%dn}",4*fHarmonic,2*fHarmonic,3*fHarmonic,2*fHarmonic,1*fHarmonic));
2792 f5pCorrelations->GetXaxis()->SetBinLabel(4,Form("#LT#LT5#GT#GT_{%dn,%dn|%dn,%dn,%dn}",4*fHarmonic,3*fHarmonic,3*fHarmonic,2*fHarmonic,2*fHarmonic));
2793 f5pCorrelations->GetXaxis()->SetBinLabel(5,Form("#LT#LT5#GT#GT_{%dn,%dn|%dn,%dn,%dn}",4*fHarmonic,2*fHarmonic,4*fHarmonic,1*fHarmonic,1*fHarmonic));
2794 f5pCorrelations->GetXaxis()->SetBinLabel(6,Form("#LT#LT5#GT#GT_{%dn,%dn|%dn,%dn,%dn}",4*fHarmonic,3*fHarmonic,4*fHarmonic,2*fHarmonic,1*fHarmonic));
2795 f5pCorrelations->GetXaxis()->SetBinLabel(7,Form("#LT#LT5#GT#GT_{%dn,%dn|%dn,%dn,%dn}",5*fHarmonic,1*fHarmonic,3*fHarmonic,2*fHarmonic,1*fHarmonic));
2796 f5pCorrelations->GetXaxis()->SetBinLabel(8,Form("#LT#LT5#GT#GT_{%dn,%dn|%dn,%dn,%dn}",5*fHarmonic,2*fHarmonic,5*fHarmonic,1*fHarmonic,1*fHarmonic));
2797 f5pCorrelations->GetXaxis()->SetBinLabel(9,Form("#LT#LT5#GT#GT_{%dn,%dn|%dn,%dn,%dn}",5*fHarmonic,2*fHarmonic,4*fHarmonic,2*fHarmonic,1*fHarmonic));
2798 f5pCorrelations->GetXaxis()->SetBinLabel(10,Form("#LT#LT5#GT#GT_{%dn,%dn|%dn,%dn,%dn}",5*fHarmonic,3*fHarmonic,4*fHarmonic,3*fHarmonic,1*fHarmonic));
2799 f5pCorrelations->GetXaxis()->SetBinLabel(11,Form("#LT#LT5#GT#GT_{%dn,%dn|%dn,%dn,%dn}",5*fHarmonic,4*fHarmonic,4*fHarmonic,3*fHarmonic,2*fHarmonic));
2800 f5pCorrelations->GetXaxis()->SetBinLabel(12,Form("#LT#LT5#GT#GT_{%dn,%dn|%dn,%dn,%dn}",5*fHarmonic,3*fHarmonic,5*fHarmonic,2*fHarmonic,1*fHarmonic));
2801 f5pCorrelations->GetXaxis()->SetBinLabel(13,Form("#LT#LT5#GT#GT_{%dn,%dn|%dn,%dn,%dn}",5*fHarmonic,4*fHarmonic,5*fHarmonic,2*fHarmonic,2*fHarmonic));
2802 f5pCorrelations->GetXaxis()->SetBinLabel(14,Form("#LT#LT5#GT#GT_{%dn,%dn|%dn,%dn,%dn}",5*fHarmonic,4*fHarmonic,5*fHarmonic,3*fHarmonic,1*fHarmonic));
2803 f5pCorrelations->GetXaxis()->SetBinLabel(15,Form("#LT#LT5#GT#GT_{%dn,%dn|%dn,%dn,%dn}",6*fHarmonic,1*fHarmonic,3*fHarmonic,3*fHarmonic,1*fHarmonic));
2804 f5pCorrelations->GetXaxis()->SetBinLabel(16,Form("#LT#LT5#GT#GT_{%dn,%dn|%dn,%dn,%dn}",6*fHarmonic,2*fHarmonic,3*fHarmonic,3*fHarmonic,2*fHarmonic));
2805 f5pCorrelations->GetXaxis()->SetBinLabel(17,Form("#LT#LT5#GT#GT_{%dn,%dn|%dn,%dn,%dn}",6*fHarmonic,1*fHarmonic,4*fHarmonic,2*fHarmonic,1*fHarmonic));
2806 f5pCorrelations->GetXaxis()->SetBinLabel(18,Form("#LT#LT5#GT#GT_{%dn,%dn|%dn,%dn,%dn}",6*fHarmonic,3*fHarmonic,4*fHarmonic,3*fHarmonic,2*fHarmonic));
2807 f5pCorrelations->GetXaxis()->SetBinLabel(19,Form("#LT#LT5#GT#GT_{%dn,%dn|%dn,%dn,%dn}",6*fHarmonic,4*fHarmonic,4*fHarmonic,3*fHarmonic,3*fHarmonic));
2808 f5pCorrelations->GetXaxis()->SetBinLabel(20,Form("#LT#LT5#GT#GT_{%dn,%dn|%dn,%dn,%dn}",6*fHarmonic,2*fHarmonic,5*fHarmonic,2*fHarmonic,1*fHarmonic));
2809 f5pCorrelations->GetXaxis()->SetBinLabel(21,Form("#LT#LT5#GT#GT_{%dn,%dn|%dn,%dn,%dn}",6*fHarmonic,3*fHarmonic,5*fHarmonic,3*fHarmonic,1*fHarmonic));
2810 f5pCorrelations->GetXaxis()->SetBinLabel(22,Form("#LT#LT5#GT#GT_{%dn,%dn|%dn,%dn,%dn}",6*fHarmonic,4*fHarmonic,5*fHarmonic,4*fHarmonic,1*fHarmonic));
2811 f5pCorrelations->GetXaxis()->SetBinLabel(23,Form("#LT#LT5#GT#GT_{%dn,%dn|%dn,%dn,%dn}",6*fHarmonic,5*fHarmonic,5*fHarmonic,3*fHarmonic,3*fHarmonic));
2812 f5pCorrelations->GetXaxis()->SetBinLabel(24,Form("#LT#LT5#GT#GT_{%dn,%dn|%dn,%dn,%dn}",6*fHarmonic,2*fHarmonic,6*fHarmonic,1*fHarmonic,1*fHarmonic));
2813 f5pCorrelations->GetXaxis()->SetBinLabel(25,Form("#LT#LT5#GT#GT_{%dn,%dn|%dn,%dn,%dn}",6*fHarmonic,3*fHarmonic,6*fHarmonic,2*fHarmonic,1*fHarmonic));
2814 f5pCorrelations->GetXaxis()->SetBinLabel(26,Form("#LT#LT5#GT#GT_{%dn,%dn|%dn,%dn,%dn}",6*fHarmonic,4*fHarmonic,6*fHarmonic,2*fHarmonic,2*fHarmonic));
2815 f5pCorrelations->GetXaxis()->SetBinLabel(27,Form("#LT#LT5#GT#GT_{%dn,%dn|%dn,%dn,%dn}",6*fHarmonic,4*fHarmonic,6*fHarmonic,3*fHarmonic,1*fHarmonic));
2816 f5pCorrelations->GetXaxis()->SetBinLabel(28,Form("#LT#LT5#GT#GT_{%dn,%dn|%dn,%dn,%dn}",6*fHarmonic,5*fHarmonic,5*fHarmonic,4*fHarmonic,2*fHarmonic));
2817 f5pCorrelations->GetXaxis()->SetBinLabel(29,Form("#LT#LT5#GT#GT_{%dn,%dn|%dn,%dn,%dn}",6*fHarmonic,5*fHarmonic,6*fHarmonic,3*fHarmonic,2*fHarmonic));
2818 f5pCorrelations->GetXaxis()->SetBinLabel(30,Form("#LT#LT5#GT#GT_{%dn,%dn|%dn,%dn,%dn}",6*fHarmonic,5*fHarmonic,6*fHarmonic,4*fHarmonic,1*fHarmonic));
2819 f5pCorrelations->GetXaxis()->SetBinLabel(31,""); // empty
2820 // 5-p correlations sensitive to two distinct harmonics (9):
2821 f5pCorrelations->GetXaxis()->SetBinLabel(32,Form("#LT#LT5#GT#GT_{%dn,%dn|%dn,%dn,%dn}",2*fHarmonic,1*fHarmonic,1*fHarmonic,1*fHarmonic,1*fHarmonic));
2822 f5pCorrelations->GetXaxis()->SetBinLabel(33,Form("#LT#LT5#GT#GT_{%dn,%dn|%dn,%dn,%dn}",2*fHarmonic,2*fHarmonic,2*fHarmonic,1*fHarmonic,1*fHarmonic));
2823 f5pCorrelations->GetXaxis()->SetBinLabel(34,Form("#LT#LT5#GT#GT_{%dn,%dn|%dn,%dn,%dn}",3*fHarmonic,3*fHarmonic,2*fHarmonic,2*fHarmonic,2*fHarmonic));
2824 f5pCorrelations->GetXaxis()->SetBinLabel(35,Form("#LT#LT5#GT#GT_{%dn|%dn,%dn,%dn,%dn}",4*fHarmonic,1*fHarmonic,1*fHarmonic,1*fHarmonic,1*fHarmonic));
2825 f5pCorrelations->GetXaxis()->SetBinLabel(36,Form("#LT#LT5#GT#GT_{%dn,%dn|%dn,%dn,%dn}",4*fHarmonic,2*fHarmonic,2*fHarmonic,2*fHarmonic,2*fHarmonic));
2826 f5pCorrelations->GetXaxis()->SetBinLabel(37,Form("#LT#LT5#GT#GT_{%dn,%dn|%dn,%dn,%dn}",4*fHarmonic,4*fHarmonic,4*fHarmonic,2*fHarmonic,2*fHarmonic));
2827 f5pCorrelations->GetXaxis()->SetBinLabel(38,Form("#LT#LT5#GT#GT_{%dn,%dn|%dn,%dn,%dn}",6*fHarmonic,3*fHarmonic,3*fHarmonic,3*fHarmonic,3*fHarmonic));
2828 f5pCorrelations->GetXaxis()->SetBinLabel(39,Form("#LT#LT5#GT#GT_{%dn,%dn|%dn,%dn,%dn}",6*fHarmonic,6*fHarmonic,4*fHarmonic,4*fHarmonic,4*fHarmonic));
2829 f5pCorrelations->GetXaxis()->SetBinLabel(40,Form("#LT#LT5#GT#GT_{%dn,%dn|%dn,%dn,%dn}",6*fHarmonic,6*fHarmonic,6*fHarmonic,3*fHarmonic,3*fHarmonic));
2830 f5pCorrelations->GetXaxis()->SetBinLabel(41,""); // empty
2831 // 5-p correlations sensitive to three distinct harmonics (30):
2832 f5pCorrelations->GetXaxis()->SetBinLabel(42,Form("#LT#LT5#GT#GT_{%dn,%dn|%dn,%dn,%dn}",3*fHarmonic,1*fHarmonic,2*fHarmonic,1*fHarmonic,1*fHarmonic));
2833 f5pCorrelations->GetXaxis()->SetBinLabel(43,Form("#LT#LT5#GT#GT_{%dn,%dn|%dn,%dn,%dn}",3*fHarmonic,2*fHarmonic,2*fHarmonic,2*fHarmonic,1*fHarmonic));
2834 f5pCorrelations->GetXaxis()->SetBinLabel(44,Form("#LT#LT5#GT#GT_{%dn,%dn|%dn,%dn,%dn}",3*fHarmonic,3*fHarmonic,3*fHarmonic,2*fHarmonic,1*fHarmonic));
2835 f5pCorrelations->GetXaxis()->SetBinLabel(45,Form("#LT#LT5#GT#GT_{%dn,%dn|%dn,%dn,%dn}",4*fHarmonic,1*fHarmonic,3*fHarmonic,1*fHarmonic,1*fHarmonic));
2836 f5pCorrelations->GetXaxis()->SetBinLabel(46,Form("#LT#LT5#GT#GT_{%dn,%dn,%dn|%dn,%dn}",4*fHarmonic,1*fHarmonic,1*fHarmonic,3*fHarmonic,3*fHarmonic));
2837 f5pCorrelations->GetXaxis()->SetBinLabel(47,Form("#LT#LT5#GT#GT_{%dn,%dn|%dn,%dn,%dn}",4*fHarmonic,3*fHarmonic,3*fHarmonic,3*fHarmonic,1*fHarmonic));
2838 f5pCorrelations->GetXaxis()->SetBinLabel(48,Form("#LT#LT5#GT#GT_{%dn,%dn|%dn,%dn,%dn}",4*fHarmonic,4*fHarmonic,3*fHarmonic,3*fHarmonic,2*fHarmonic));
2839 f5pCorrelations->GetXaxis()->SetBinLabel(49,Form("#LT#LT5#GT#GT_{%dn,%dn|%dn,%dn,%dn}",4*fHarmonic,4*fHarmonic,4*fHarmonic,3*fHarmonic,1*fHarmonic));
2840 f5pCorrelations->GetXaxis()->SetBinLabel(50,Form("#LT#LT5#GT#GT_{%dn|%dn,%dn,%dn,%dn}",5*fHarmonic,2*fHarmonic,1*fHarmonic,1*fHarmonic,1*fHarmonic));
2841 f5pCorrelations->GetXaxis()->SetBinLabel(51,Form("#LT#LT5#GT#GT_{%dn,%dn|%dn,%dn,%dn}",5*fHarmonic,1*fHarmonic,2*fHarmonic,2*fHarmonic,2*fHarmonic));
2842 f5pCorrelations->GetXaxis()->SetBinLabel(52,Form("#LT#LT5#GT#GT_{%dn,%dn|%dn,%dn,%dn}",5*fHarmonic,2*fHarmonic,3*fHarmonic,2*fHarmonic,2*fHarmonic));
2843 f5pCorrelations->GetXaxis()->SetBinLabel(53,Form("#LT#LT5#GT#GT_{%dn,%dn|%dn,%dn,%dn}",5*fHarmonic,3*fHarmonic,3*fHarmonic,3*fHarmonic,2*fHarmonic));
2844 f5pCorrelations->GetXaxis()->SetBinLabel(54,Form("#LT#LT5#GT#GT_{%dn,%dn|%dn,%dn,%dn}",5*fHarmonic,1*fHarmonic,4*fHarmonic,1*fHarmonic,1*fHarmonic));
2845 f5pCorrelations->GetXaxis()->SetBinLabel(55,Form("#LT#LT5#GT#GT_{%dn,%dn|%dn,%dn,%dn}",5*fHarmonic,4*fHarmonic,3*fHarmonic,3*fHarmonic,3*fHarmonic));
2846 f5pCorrelations->GetXaxis()->SetBinLabel(56,Form("#LT#LT5#GT#GT_{%dn,%dn|%dn,%dn,%dn}",5*fHarmonic,4*fHarmonic,4*fHarmonic,4*fHarmonic,1*fHarmonic));
2847 f5pCorrelations->GetXaxis()->SetBinLabel(57,Form("#LT#LT5#GT#GT_{%dn,%dn|%dn,%dn,%dn}",5*fHarmonic,5*fHarmonic,4*fHarmonic,3*fHarmonic,3*fHarmonic));
2848 f5pCorrelations->GetXaxis()->SetBinLabel(58,Form("#LT#LT5#GT#GT_{%dn,%dn|%dn,%dn,%dn}",5*fHarmonic,5*fHarmonic,4*fHarmonic,4*fHarmonic,2*fHarmonic));
2849 f5pCorrelations->GetXaxis()->SetBinLabel(59,Form("#LT#LT5#GT#GT_{%dn,%dn|%dn,%dn,%dn}",5*fHarmonic,5*fHarmonic,5*fHarmonic,3*fHarmonic,2*fHarmonic));
2850 f5pCorrelations->GetXaxis()->SetBinLabel(60,Form("#LT#LT5#GT#GT_{%dn,%dn|%dn,%dn,%dn}",5*fHarmonic,5*fHarmonic,5*fHarmonic,4*fHarmonic,1*fHarmonic));
2851 f5pCorrelations->GetXaxis()->SetBinLabel(61,Form("#LT#LT5#GT#GT_{%dn|%dn,%dn,%dn,%dn}",6*fHarmonic,2*fHarmonic,2*fHarmonic,1*fHarmonic,1*fHarmonic));
2852 f5pCorrelations->GetXaxis()->SetBinLabel(62,Form("#LT#LT5#GT#GT_{%dn|%dn,%dn,%dn,%dn}",6*fHarmonic,3*fHarmonic,1*fHarmonic,1*fHarmonic,1*fHarmonic));
2853 f5pCorrelations->GetXaxis()->SetBinLabel(63,Form("#LT#LT5#GT#GT_{%dn,%dn,%dn|%dn,%dn}",6*fHarmonic,1*fHarmonic,1*fHarmonic,4*fHarmonic,4*fHarmonic));
2854 f5pCorrelations->GetXaxis()->SetBinLabel(64,Form("#LT#LT5#GT#GT_{%dn,%dn|%dn,%dn,%dn}",6*fHarmonic,1*fHarmonic,5*fHarmonic,1*fHarmonic,1*fHarmonic));
2855 f5pCorrelations->GetXaxis()->SetBinLabel(65,Form("#LT#LT5#GT#GT_{%dn,%dn|%dn,%dn,%dn}",6*fHarmonic,2*fHarmonic,4*fHarmonic,2*fHarmonic,2*fHarmonic));
2856 f5pCorrelations->GetXaxis()->SetBinLabel(66,Form("#LT#LT5#GT#GT_{%dn,%dn|%dn,%dn,%dn}",6*fHarmonic,4*fHarmonic,4*fHarmonic,4*fHarmonic,2*fHarmonic));
2857 f5pCorrelations->GetXaxis()->SetBinLabel(67,Form("#LT#LT5#GT#GT_{%dn,%dn,%dn|%dn,%dn}",6*fHarmonic,2*fHarmonic,2*fHarmonic,5*fHarmonic,5*fHarmonic));
2858 f5pCorrelations->GetXaxis()->SetBinLabel(68,Form("#LT#LT5#GT#GT_{%dn,%dn|%dn,%dn,%dn}",6*fHarmonic,5*fHarmonic,5*fHarmonic,5*fHarmonic,1*fHarmonic));
2859 f5pCorrelations->GetXaxis()->SetBinLabel(69,Form("#LT#LT5#GT#GT_{%dn,%dn|%dn,%dn,%dn}",6*fHarmonic,6*fHarmonic,5*fHarmonic,5*fHarmonic,2*fHarmonic));
2860 f5pCorrelations->GetXaxis()->SetBinLabel(70,Form("#LT#LT5#GT#GT_{%dn,%dn|%dn,%dn,%dn}",6*fHarmonic,6*fHarmonic,6*fHarmonic,4*fHarmonic,2*fHarmonic));
2861 f5pCorrelations->GetXaxis()->SetBinLabel(71,Form("#LT#LT5#GT#GT_{%dn,%dn|%dn,%dn,%dn}",6*fHarmonic,6*fHarmonic,6*fHarmonic,5*fHarmonic,1*fHarmonic));
2862 f5pCorrelations->GetXaxis()->SetBinLabel(72,""); // empty
2863 // 5-p correlations sensitive to four distinct harmonics (11):
2864 f5pCorrelations->GetXaxis()->SetBinLabel(73,Form("#LT#LT5#GT#GT_{%dn,%dn|%dn,%dn,%dn}",5*fHarmonic,2*fHarmonic,3*fHarmonic,3*fHarmonic,1*fHarmonic));
2865 f5pCorrelations->GetXaxis()->SetBinLabel(74,Form("#LT#LT5#GT#GT_{%dn,%dn,%dn|%dn,%dn}",5*fHarmonic,1*fHarmonic,1*fHarmonic,4*fHarmonic,3*fHarmonic));
2866 f5pCorrelations->GetXaxis()->SetBinLabel(75,Form("#LT#LT5#GT#GT_{%dn,%dn|%dn,%dn,%dn}",5*fHarmonic,3*fHarmonic,4*fHarmonic,2*fHarmonic,2*fHarmonic));
2867 f5pCorrelations->GetXaxis()->SetBinLabel(76,Form("#LT#LT5#GT#GT_{%dn,%dn,%dn|%dn,%dn}",5*fHarmonic,2*fHarmonic,1*fHarmonic,4*fHarmonic,4*fHarmonic));
2868 f5pCorrelations->GetXaxis()->SetBinLabel(77,Form("#LT#LT5#GT#GT_{%dn,%dn|%dn,%dn,%dn}",6*fHarmonic,1*fHarmonic,3*fHarmonic,2*fHarmonic,2*fHarmonic));
2869 f5pCorrelations->GetXaxis()->SetBinLabel(78,Form("#LT#LT5#GT#GT_{%dn,%dn|%dn,%dn,%dn}",6*fHarmonic,3*fHarmonic,4*fHarmonic,4*fHarmonic,1*fHarmonic));
2870 f5pCorrelations->GetXaxis()->SetBinLabel(79,Form("#LT#LT5#GT#GT_{%dn,%dn,%dn|%dn,%dn}",6*fHarmonic,1*fHarmonic,1*fHarmonic,5*fHarmonic,3*fHarmonic));
2871 f5pCorrelations->GetXaxis()->SetBinLabel(80,Form("#LT#LT5#GT#GT_{%dn,%dn|%dn,%dn,%dn}",6*fHarmonic,3*fHarmonic,5*fHarmonic,2*fHarmonic,2*fHarmonic));
2872 f5pCorrelations->GetXaxis()->SetBinLabel(81,Form("#LT#LT5#GT#GT_{%dn,%dn|%dn,%dn,%dn}",6*fHarmonic,5*fHarmonic,4*fHarmonic,4*fHarmonic,3*fHarmonic));
2873 f5pCorrelations->GetXaxis()->SetBinLabel(82,Form("#LT#LT5#GT#GT_{%dn,%dn,%dn|%dn,%dn}",6*fHarmonic,3*fHarmonic,1*fHarmonic,5*fHarmonic,5*fHarmonic));
2874 f5pCorrelations->GetXaxis()->SetBinLabel(83,Form("#LT#LT5#GT#GT_{%dn,%dn|%dn,%dn,%dn}",6*fHarmonic,6*fHarmonic,5*fHarmonic,4*fHarmonic,3*fHarmonic));
2875 f5pCorrelations->GetXaxis()->SetBinLabel(84,""); // empty
2876 // 5-p correlations sensitive to five distinct harmonics (3):
2877 f5pCorrelations->GetXaxis()->SetBinLabel(85,Form("#LT#LT5#GT#GT_{%dn,%dn|%dn,%dn,%dn}",6*fHarmonic,2*fHarmonic,4*fHarmonic,3*fHarmonic,1*fHarmonic));
2878 f5pCorrelations->GetXaxis()->SetBinLabel(86,Form("#LT#LT5#GT#GT_{%dn,%dn,%dn|%dn,%dn}",6*fHarmonic,2*fHarmonic,1*fHarmonic,5*fHarmonic,4*fHarmonic));
2879 f5pCorrelations->GetXaxis()->SetBinLabel(87,Form("#LT#LT5#GT#GT_{%dn,%dn|%dn,%dn,%dn}",6*fHarmonic,4*fHarmonic,5*fHarmonic,3*fHarmonic,2*fHarmonic));
2880 fMixedHarmonicsProfiles->Add(f5pCorrelations);
2881 // b4) 6-p correlations (??+??+??+??+??):
2882 TString s6pCorrelationsName = "f6pCorrelations";
2883 s6pCorrelationsName += fAnalysisLabel->Data();
2884 f6pCorrelations = new TProfile(s6pCorrelationsName.Data(),Form("6-particle correlations (n = %d)",fHarmonic),1,0.,1.);
2885 f6pCorrelations->SetTickLength(-0.01,"Y");
2886 f6pCorrelations->SetMarkerStyle(25);
2887 f6pCorrelations->SetLabelSize(0.02);
2888 f6pCorrelations->SetLabelOffset(0.02,"Y");
2889 f6pCorrelations->SetStats(kFALSE);
2890 f6pCorrelations->Sumw2();
2891 //fMixedHarmonicsProfiles->Add(f6pCorrelations); // TBI
2892 // b5) 7-p correlations (??+??+??+??+??):
2893 TString s7pCorrelationsName = "f7pCorrelations";
2894 s7pCorrelationsName += fAnalysisLabel->Data();
2895 f7pCorrelations = new TProfile(s7pCorrelationsName.Data(),Form("7-particle correlations (n = %d)",fHarmonic),1,0.,1.);
2896 f7pCorrelations->SetTickLength(-0.01,"Y");
2897 f7pCorrelations->SetMarkerStyle(25);
2898 f7pCorrelations->SetLabelSize(0.02);
2899 f7pCorrelations->SetLabelOffset(0.02,"Y");
2900 f7pCorrelations->SetStats(kFALSE);
2901 f7pCorrelations->Sumw2();
2902 //fMixedHarmonicsProfiles->Add(f7pCorrelations); // TBI
2903 // b6) 8-p correlations (??+??+??+??+??):
2904 TString s8pCorrelationsName = "f8pCorrelations";
2905 s8pCorrelationsName += fAnalysisLabel->Data();
2906 f8pCorrelations = new TProfile(s8pCorrelationsName.Data(),Form("8-particle correlations (n = %d)",fHarmonic),1,0.,1.);
2907 f8pCorrelations->SetTickLength(-0.01,"Y");
2908 f8pCorrelations->SetMarkerStyle(25);
2909 f8pCorrelations->SetLabelSize(0.02);
2910 f8pCorrelations->SetLabelOffset(0.02,"Y");
2911 f8pCorrelations->SetStats(kFALSE);
2912 f8pCorrelations->Sumw2();
2913 //fMixedHarmonicsProfiles->Add(f8pCorrelations); // TBI
2915 // c) Book all objects in TList fMixedHarmonicsResults:
2917 f2pCumulants = f2pCorrelations->ProjectionX("f2pCumulants");
2918 f2pCumulants->SetTitle(Form("2-particle cumulants (n = %d)",fHarmonic));
2919 f2pCumulants->SetStats(kFALSE);
2920 f2pCumulants->SetMarkerStyle(kFullSquare);
2921 f2pCumulants->SetMarkerColor(kBlack);
2922 f2pCumulants->SetLineColor(kBlack);
2923 fMixedHarmonicsResults->Add(f2pCumulants);
2925 f3pCumulants = f3pCorrelations->ProjectionX("f3pCumulants");
2926 f3pCumulants->SetTitle(Form("3-particle cumulants (n = %d)",fHarmonic));
2927 f3pCumulants->SetStats(kFALSE);
2928 f3pCumulants->SetMarkerStyle(kFullSquare);
2929 f3pCumulants->SetMarkerColor(kGreen+2);
2930 f3pCumulants->SetLineColor(kGreen+2);
2931 fMixedHarmonicsResults->Add(f3pCumulants);
2933 f4pCumulants = f4pCorrelations->ProjectionX("f4pCumulants");
2934 f4pCumulants->SetTitle(Form("4-particle cumulants (n = %d)",fHarmonic));
2935 f4pCumulants->SetStats(kFALSE);
2936 f4pCumulants->SetMarkerStyle(kFullSquare);
2937 f4pCumulants->SetMarkerColor(kRed);
2938 f4pCumulants->SetLineColor(kRed);
2939 fMixedHarmonicsResults->Add(f4pCumulants);
2941 f5pCumulants = f5pCorrelations->ProjectionX("f5pCumulants");
2942 f5pCumulants->SetTitle(Form("5-particle cumulants (n = %d)",fHarmonic));
2943 f5pCumulants->SetStats(kFALSE);
2944 f5pCumulants->SetMarkerStyle(kFullSquare);
2945 f5pCumulants->SetMarkerColor(kBlue);
2946 f5pCumulants->SetLineColor(kBlue);
2947 fMixedHarmonicsResults->Add(f5pCumulants);
2949 // d) Book all objects in TList fMixedHarmonicsErrorPropagation:
2950 // Sum of linear and quadratic event weights for mixed harmonics => [0=linear 1,1=quadratic]:
2951 TString mixedHarmonicEventWeightsName = "fMixedHarmonicEventWeights";
2952 mixedHarmonicEventWeightsName += fAnalysisLabel->Data();
2953 TString powerFlag[2] = {"linear","quadratic"};
2954 for(Int_t power=0;power<2;power++)
2956 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.);
2957 fMixedHarmonicEventWeights[power]->SetLabelSize(0.04);
2958 fMixedHarmonicEventWeights[power]->SetMarkerStyle(25);
2959 fMixedHarmonicEventWeights[power]->SetStats(kFALSE);
2962 (fMixedHarmonicEventWeights[power]->GetXaxis())->SetBinLabel(1,"#sum w_{#LT1#GT}");
2963 (fMixedHarmonicEventWeights[power]->GetXaxis())->SetBinLabel(2,"#sum w_{#LT2#GT}");
2964 (fMixedHarmonicEventWeights[power]->GetXaxis())->SetBinLabel(3,"#sum w_{#LT3#GT}");
2965 (fMixedHarmonicEventWeights[power]->GetXaxis())->SetBinLabel(4,"#sum w_{#LT4#GT}");
2966 (fMixedHarmonicEventWeights[power]->GetXaxis())->SetBinLabel(5,"#sum w_{#LT5#GT}");
2967 (fMixedHarmonicEventWeights[power]->GetXaxis())->SetBinLabel(6,"#sum w_{#LT6#GT}");
2968 (fMixedHarmonicEventWeights[power]->GetXaxis())->SetBinLabel(7,"#sum w_{#LT7#GT}");
2969 (fMixedHarmonicEventWeights[power]->GetXaxis())->SetBinLabel(8,"#sum w_{#LT8#GT}");
2970 } else if (power == 1)
2972 (fMixedHarmonicEventWeights[power]->GetXaxis())->SetBinLabel(1,"#sum w_{#LT1#GT}^{2}");
2973 (fMixedHarmonicEventWeights[power]->GetXaxis())->SetBinLabel(2,"#sum w_{#LT2#GT}^{2}");
2974 (fMixedHarmonicEventWeights[power]->GetXaxis())->SetBinLabel(3,"#sum w_{#LT3#GT}^{2}");
2975 (fMixedHarmonicEventWeights[power]->GetXaxis())->SetBinLabel(4,"#sum w_{#LT4#GT}^{2}");
2976 (fMixedHarmonicEventWeights[power]->GetXaxis())->SetBinLabel(5,"#sum w_{#LT5#GT}^{2}");
2977 (fMixedHarmonicEventWeights[power]->GetXaxis())->SetBinLabel(6,"#sum w_{#LT6#GT}^{2}");
2978 (fMixedHarmonicEventWeights[power]->GetXaxis())->SetBinLabel(7,"#sum w_{#LT7#GT}^{2}");
2979 (fMixedHarmonicEventWeights[power]->GetXaxis())->SetBinLabel(8,"#sum w_{#LT8#GT}^{2}");
2981 fMixedHarmonicsErrorPropagation->Add(fMixedHarmonicEventWeights[power]);
2982 } // end of for(Int_t power=0;power<2;power++)
2984 // Sums of products of event weights for mixed harmonics:
2985 TString mixedHarmonicProductOfEventWeightsName = "fMixedHarmonicProductOfEventWeights";
2986 mixedHarmonicProductOfEventWeightsName += fAnalysisLabel->Data();
2987 fMixedHarmonicProductOfEventWeights = new TH2D(mixedHarmonicProductOfEventWeightsName.Data(),"Sums of products of event weights",8,0.,8.,8,0.,8.);
2988 fMixedHarmonicProductOfEventWeights->SetStats(kFALSE);
2989 fMixedHarmonicProductOfEventWeights->GetXaxis()->SetLabelSize(0.05);
2990 fMixedHarmonicProductOfEventWeights->GetYaxis()->SetLabelSize(0.05);
2991 for(Int_t b=1;b<=8;b++)
2993 fMixedHarmonicProductOfEventWeights->GetXaxis()->SetBinLabel(b,Form("w_{#LT%i#GT}",b));
2994 fMixedHarmonicProductOfEventWeights->GetYaxis()->SetBinLabel(b,Form("w_{#LT%i#GT}",b));
2996 fMixedHarmonicsErrorPropagation->Add(fMixedHarmonicProductOfEventWeights);
2998 // Averages of products of mixed harmonics correlations:
2999 TString mixedHarmonicProductOfCorrelationsName = "fMixedHarmonicProductOfCorrelations";
3000 mixedHarmonicProductOfCorrelationsName += fAnalysisLabel->Data();
3001 fMixedHarmonicProductOfCorrelations = new TProfile2D(mixedHarmonicProductOfCorrelationsName.Data(),"Averages of products of mixed correlators",139,0.,139.,139,0.,139.);
3002 fMixedHarmonicProductOfCorrelations->Sumw2();
3003 fMixedHarmonicProductOfCorrelations->SetStats(kFALSE);
3004 fMixedHarmonicProductOfCorrelations->GetXaxis()->SetLabelSize(0.015);
3005 fMixedHarmonicProductOfCorrelations->GetYaxis()->SetLabelSize(0.015);
3007 fMixedHarmonicProductOfCorrelations->GetXaxis()->SetBinLabel(1,Form("#LT#LT2#GT#GT_{%dn|%dn}",1*fHarmonic,1*fHarmonic));
3008 fMixedHarmonicProductOfCorrelations->GetXaxis()->SetBinLabel(2,Form("#LT#LT2#GT#GT_{%dn|%dn}",2*fHarmonic,2*fHarmonic));
3009 fMixedHarmonicProductOfCorrelations->GetXaxis()->SetBinLabel(3,Form("#LT#LT2#GT#GT_{%dn|%dn}",3*fHarmonic,3*fHarmonic));
3010 fMixedHarmonicProductOfCorrelations->GetXaxis()->SetBinLabel(4,Form("#LT#LT2#GT#GT_{%dn|%dn}",4*fHarmonic,4*fHarmonic));
3011 fMixedHarmonicProductOfCorrelations->GetXaxis()->SetBinLabel(5,Form("#LT#LT2#GT#GT_{%dn|%dn}",5*fHarmonic,5*fHarmonic));
3012 fMixedHarmonicProductOfCorrelations->GetXaxis()->SetBinLabel(6,Form("#LT#LT2#GT#GT_{%dn|%dn}",6*fHarmonic,6*fHarmonic));
3013 fMixedHarmonicProductOfCorrelations->GetXaxis()->SetBinLabel(7,Form("#LT#LT3#GT#GT_{%dn|%dn,%dn}",2*fHarmonic,1*fHarmonic,1*fHarmonic));
3014 fMixedHarmonicProductOfCorrelations->GetXaxis()->SetBinLabel(8,Form("#LT#LT3#GT#GT_{%dn|%dn,%dn}",4*fHarmonic,2*fHarmonic,2*fHarmonic));
3015 fMixedHarmonicProductOfCorrelations->GetXaxis()->SetBinLabel(9,Form("#LT#LT3#GT#GT_{%dn|%dn,%dn}",6*fHarmonic,3*fHarmonic,3*fHarmonic));
3016 fMixedHarmonicProductOfCorrelations->GetXaxis()->SetBinLabel(10,Form("#LT#LT3#GT#GT_{%dn|%dn,%dn}",3*fHarmonic,2*fHarmonic,1*fHarmonic));
3017 fMixedHarmonicProductOfCorrelations->GetXaxis()->SetBinLabel(11,Form("#LT#LT3#GT#GT_{%dn|%dn,%dn}",4*fHarmonic,3*fHarmonic,1*fHarmonic));
3018 fMixedHarmonicProductOfCorrelations->GetXaxis()->SetBinLabel(12,Form("#LT#LT3#GT#GT_{%dn|%dn,%dn}",5*fHarmonic,3*fHarmonic,2*fHarmonic));
3019 fMixedHarmonicProductOfCorrelations->GetXaxis()->SetBinLabel(13,Form("#LT#LT3#GT#GT_{%dn|%dn,%dn}",5*fHarmonic,4*fHarmonic,1*fHarmonic));
3020 fMixedHarmonicProductOfCorrelations->GetXaxis()->SetBinLabel(14,Form("#LT#LT3#GT#GT_{%dn|%dn,%dn}",6*fHarmonic,4*fHarmonic,2*fHarmonic));
3021 fMixedHarmonicProductOfCorrelations->GetXaxis()->SetBinLabel(15,Form("#LT#LT3#GT#GT_{%dn|%dn,%dn}",6*fHarmonic,5*fHarmonic,1*fHarmonic));
3022 fMixedHarmonicProductOfCorrelations->GetXaxis()->SetBinLabel(16,Form("#LT#LT4#GT#GT_{%dn,%dn|%dn,%dn}",1*fHarmonic,1*fHarmonic,1*fHarmonic,1*fHarmonic));
3023 fMixedHarmonicProductOfCorrelations->GetXaxis()->SetBinLabel(17,Form("#LT#LT4#GT#GT_{%dn,%dn|%dn,%dn}",2*fHarmonic,2*fHarmonic,2*fHarmonic,2*fHarmonic));
3024 fMixedHarmonicProductOfCorrelations->GetXaxis()->SetBinLabel(18,Form("#LT#LT4#GT#GT_{%dn,%dn|%dn,%dn}",3*fHarmonic,3*fHarmonic,3*fHarmonic,3*fHarmonic));
3025 fMixedHarmonicProductOfCorrelations->GetXaxis()->SetBinLabel(19,Form("#LT#LT4#GT#GT_{%dn,%dn|%dn,%dn}",4*fHarmonic,4*fHarmonic,4*fHarmonic,4*fHarmonic));
3026 fMixedHarmonicProductOfCorrelations->GetXaxis()->SetBinLabel(20,Form("#LT#LT4#GT#GT_{%dn,%dn|%dn,%dn}",5*fHarmonic,5*fHarmonic,5*fHarmonic,5*fHarmonic));
3027 fMixedHarmonicProductOfCorrelations->GetXaxis()->SetBinLabel(21,Form("#LT#LT4#GT#GT_{%dn,%dn|%dn,%dn}",6*fHarmonic,6*fHarmonic,6*fHarmonic,6*fHarmonic));
3028 fMixedHarmonicProductOfCorrelations->GetXaxis()->SetBinLabel(22,Form("#LT#LT4#GT#GT_{%dn,%dn|%dn,%dn}",2*fHarmonic,1*fHarmonic,2*fHarmonic,1*fHarmonic));
3029 fMixedHarmonicProductOfCorrelations->GetXaxis()->SetBinLabel(23,Form("#LT#LT4#GT#GT_{%dn,%dn|%dn,%dn}",3*fHarmonic,1*fHarmonic,3*fHarmonic,1*fHarmonic));
3030 fMixedHarmonicProductOfCorrelations->GetXaxis()->SetBinLabel(24,Form("#LT#LT4#GT#GT_{%dn,%dn|%dn,%dn}",3*fHarmonic,2*fHarmonic,3*fHarmonic,2*fHarmonic));
3031 fMixedHarmonicProductOfCorrelations->GetXaxis()->SetBinLabel(25,Form("#LT#LT4#GT#GT_{%dn,%dn|%dn,%dn}",4*fHarmonic,1*fHarmonic,4*fHarmonic,1*fHarmonic));
3032 fMixedHarmonicProductOfCorrelations->GetXaxis()->SetBinLabel(26,Form("#LT#LT4#GT#GT_{%dn,%dn|%dn,%dn}",4*fHarmonic,2*fHarmonic,4*fHarmonic,2*fHarmonic));
3033 fMixedHarmonicProductOfCorrelations->GetXaxis()->SetBinLabel(27,Form("#LT#LT4#GT#GT_{%dn,%dn|%dn,%dn}",4*fHarmonic,3*fHarmonic,4*fHarmonic,3*fHarmonic));
3034 fMixedHarmonicProductOfCorrelations->GetXaxis()->SetBinLabel(28,Form("#LT#LT4#GT#GT_{%dn,%dn|%dn,%dn}",5*fHarmonic,1*fHarmonic,5*fHarmonic,1*fHarmonic));
3035 fMixedHarmonicProductOfCorrelations->GetXaxis()->SetBinLabel(29,Form("#LT#LT4#GT#GT_{%dn,%dn|%dn,%dn}",5*fHarmonic,2*fHarmonic,5*fHarmonic,2*fHarmonic));
3036 fMixedHarmonicProductOfCorrelations->GetXaxis()->SetBinLabel(30,Form("#LT#LT4#GT#GT_{%dn,%dn|%dn,%dn}",5*fHarmonic,3*fHarmonic,5*fHarmonic,3*fHarmonic));
3037 fMixedHarmonicProductOfCorrelations->GetXaxis()->SetBinLabel(31,Form("#LT#LT4#GT#GT_{%dn,%dn|%dn,%dn}",5*fHarmonic,4*fHarmonic,5*fHarmonic,4*fHarmonic));
3038 fMixedHarmonicProductOfCorrelations->GetXaxis()->SetBinLabel(32,Form("#LT#LT4#GT#GT_{%dn,%dn|%dn,%dn}",6*fHarmonic,1*fHarmonic,6*fHarmonic,1*fHarmonic));
3039 fMixedHarmonicProductOfCorrelations->GetXaxis()->SetBinLabel(33,Form("#LT#LT4#GT#GT_{%dn,%dn|%dn,%dn}",6*fHarmonic,2*fHarmonic,6*fHarmonic,2*fHarmonic));
3040 fMixedHarmonicProductOfCorrelations->GetXaxis()->SetBinLabel(34,Form("#LT#LT4#GT#GT_{%dn,%dn|%dn,%dn}",6*fHarmonic,3*fHarmonic,6*fHarmonic,3*fHarmonic));
3041 fMixedHarmonicProductOfCorrelations->GetXaxis()->SetBinLabel(35,Form("#LT#LT4#GT#GT_{%dn,%dn|%dn,%dn}",6*fHarmonic,4*fHarmonic,6*fHarmonic,4*fHarmonic));
3042 fMixedHarmonicProductOfCorrelations->GetXaxis()->SetBinLabel(36,Form("#LT#LT4#GT#GT_{%dn,%dn|%dn,%dn}",6*fHarmonic,5*fHarmonic,6*fHarmonic,5*fHarmonic));
3043 fMixedHarmonicProductOfCorrelations->GetXaxis()->SetBinLabel(37,Form("#LT#LT4#GT#GT_{%dn|%dn,%dn,%dn}",3*fHarmonic,1*fHarmonic,1*fHarmonic,1*fHarmonic));
3044 fMixedHarmonicProductOfCorrelations->GetXaxis()->SetBinLabel(38,Form("#LT#LT4#GT#GT_{%dn|%dn,%dn,%dn}",6*fHarmonic,2*fHarmonic,2*fHarmonic,2*fHarmonic));
3045 fMixedHarmonicProductOfCorrelations->GetXaxis()->SetBinLabel(39,Form("#LT#LT4#GT#GT_{%dn,%dn|%dn,%dn}",3*fHarmonic,1*fHarmonic,2*fHarmonic,2*fHarmonic));
3046 fMixedHarmonicProductOfCorrelations->GetXaxis()->SetBinLabel(40,Form("#LT#LT4#GT#GT_{%dn|%dn,%dn,%dn}",4*fHarmonic,2*fHarmonic,1*fHarmonic,1*fHarmonic));
3047 fMixedHarmonicProductOfCorrelations->GetXaxis()->SetBinLabel(41,Form("#LT#LT4#GT#GT_{%dn,%dn|%dn,%dn}",4*fHarmonic,2*fHarmonic,3*fHarmonic,3*fHarmonic));
3048 fMixedHarmonicProductOfCorrelations->GetXaxis()->SetBinLabel(42,Form("#LT#LT4#GT#GT_{%dn|%dn,%dn,%dn}",5*fHarmonic,2*fHarmonic,2*fHarmonic,1*fHarmonic));
3049 fMixedHarmonicProductOfCorrelations->GetXaxis()->SetBinLabel(43,Form("#LT#LT4#GT#GT_{%dn|%dn,%dn,%dn}",5*fHarmonic,3*fHarmonic,1*fHarmonic,1*fHarmonic));
3050 fMixedHarmonicProductOfCorrelations->GetXaxis()->SetBinLabel(44,Form("#LT#LT4#GT#GT_{%dn,%dn|%dn,%dn}",5*fHarmonic,1*fHarmonic,3*fHarmonic,3*fHarmonic));
3051 fMixedHarmonicProductOfCorrelations->GetXaxis()->SetBinLabel(45,Form("#LT#LT4#GT#GT_{%dn,%dn|%dn,%dn}",5*fHarmonic,3*fHarmonic,4*fHarmonic,4*fHarmonic));
3052 fMixedHarmonicProductOfCorrelations->GetXaxis()->SetBinLabel(46,Form("#LT#LT4#GT#GT_{%dn|%dn,%dn,%dn}",6*fHarmonic,4*fHarmonic,1*fHarmonic,1*fHarmonic));
3053 fMixedHarmonicProductOfCorrelations->GetXaxis()->SetBinLabel(47,Form("#LT#LT4#GT#GT_{%dn,%dn|%dn,%dn}",6*fHarmonic,2*fHarmonic,4*fHarmonic,4*fHarmonic));
3054 fMixedHarmonicProductOfCorrelations->GetXaxis()->SetBinLabel(48,Form("#LT#LT4#GT#GT_{%dn,%dn|%dn,%dn}",6*fHarmonic,4*fHarmonic,5*fHarmonic,5*fHarmonic));
3055 fMixedHarmonicProductOfCorrelations->GetXaxis()->SetBinLabel(49,Form("#LT#LT4#GT#GT_{%dn,%dn|%dn,%dn}",4*fHarmonic,1*fHarmonic,3*fHarmonic,2*fHarmonic));
3056 fMixedHarmonicProductOfCorrelations->GetXaxis()->SetBinLabel(50,Form("#LT#LT4#GT#GT_{%dn,%dn|%dn,%dn}",5*fHarmonic,1*fHarmonic,4*fHarmonic,2*fHarmonic));
3057 fMixedHarmonicProductOfCorrelations->GetXaxis()->SetBinLabel(51,Form("#LT#LT4#GT#GT_{%dn,%dn|%dn,%dn}",5*fHarmonic,2*fHarmonic,4*fHarmonic,3*fHarmonic));
3058 fMixedHarmonicProductOfCorrelations->GetXaxis()->SetBinLabel(52,Form("#LT#LT4#GT#GT_{%dn,%dn|%dn,%dn}",6*fHarmonic,1*fHarmonic,4*fHarmonic,3*fHarmonic));
3059 fMixedHarmonicProductOfCorrelations->GetXaxis()->SetBinLabel(53,Form("#LT#LT4#GT#GT_{%dn,%dn|%dn,%dn}",6*fHarmonic,1*fHarmonic,5*fHarmonic,2*fHarmonic));
3060 fMixedHarmonicProductOfCorrelations->GetXaxis()->SetBinLabel(54,Form("#LT#LT4#GT#GT_{%dn|%dn,%dn,%dn}",6*fHarmonic,3*fHarmonic,2*fHarmonic,1*fHarmonic));
3061 fMixedHarmonicProductOfCorrelations->GetXaxis()->SetBinLabel(55,Form("#LT#LT4#GT#GT_{%dn,%dn|%dn,%dn}",6*fHarmonic,2*fHarmonic,5*fHarmonic,3*fHarmonic));
3062 fMixedHarmonicProductOfCorrelations->GetXaxis()->SetBinLabel(56,Form("#LT#LT4#GT#GT_{%dn,%dn|%dn,%dn}",6*fHarmonic,3*fHarmonic,5*fHarmonic,4*fHarmonic));
3063 fMixedHarmonicProductOfCorrelations->GetXaxis()->SetBinLabel(57,Form("#LT#LT5#GT#GT_{%dn,%dn|%dn,%dn,%dn}",3*fHarmonic,2*fHarmonic,3*fHarmonic,1*fHarmonic,1*fHarmonic));
3064 fMixedHarmonicProductOfCorrelations->GetXaxis()->SetBinLabel(58,Form("#LT#LT5#GT#GT_{%dn,%dn|%dn,%dn,%dn}",4*fHarmonic,1*fHarmonic,2*fHarmonic,2*fHarmonic,1*fHarmonic));
3065 fMixedHarmonicProductOfCorrelations->GetXaxis()->SetBinLabel(59,Form("#LT#LT5#GT#GT_{%dn,%dn|%dn,%dn,%dn}",4*fHarmonic,2*fHarmonic,3*fHarmonic,2*fHarmonic,1*fHarmonic));
3066 fMixedHarmonicProductOfCorrelations->GetXaxis()->SetBinLabel(60,Form("#LT#LT5#GT#GT_{%dn,%dn|%dn,%dn,%dn}",4*fHarmonic,3*fHarmonic,3*fHarmonic,2*fHarmonic,2*fHarmonic));
3067 fMixedHarmonicProductOfCorrelations->GetXaxis()->SetBinLabel(61,Form("#LT#LT5#GT#GT_{%dn,%dn|%dn,%dn,%dn}",4*fHarmonic,2*fHarmonic,4*fHarmonic,1*fHarmonic,1*fHarmonic));
3068 fMixedHarmonicProductOfCorrelations->GetXaxis()->SetBinLabel(62,Form("#LT#LT5#GT#GT_{%dn,%dn|%dn,%dn,%dn}",4*fHarmonic,3*fHarmonic,4*fHarmonic,2*fHarmonic,1*fHarmonic));
3069 fMixedHarmonicProductOfCorrelations->GetXaxis()->SetBinLabel(63,Form("#LT#LT5#GT#GT_{%dn,%dn|%dn,%dn,%dn}",5*fHarmonic,1*fHarmonic,3*fHarmonic,2*fHarmonic,1*fHarmonic));
3070 fMixedHarmonicProductOfCorrelations->GetXaxis()->SetBinLabel(64,Form("#LT#LT5#GT#GT_{%dn,%dn|%dn,%dn,%dn}",5*fHarmonic,2*fHarmonic,5*fHarmonic,1*fHarmonic,1*fHarmonic));
3071 fMixedHarmonicProductOfCorrelations->GetXaxis()->SetBinLabel(65,Form("#LT#LT5#GT#GT_{%dn,%dn|%dn,%dn,%dn}",5*fHarmonic,2*fHarmonic,4*fHarmonic,2*fHarmonic,1*fHarmonic));
3072 fMixedHarmonicProductOfCorrelations->GetXaxis()->SetBinLabel(66,Form("#LT#LT5#GT#GT_{%dn,%dn|%dn,%dn,%dn}",5*fHarmonic,3*fHarmonic,4*fHarmonic,3*fHarmonic,1*fHarmonic));
3073 fMixedHarmonicProductOfCorrelations->GetXaxis()->SetBinLabel(67,Form("#LT#LT5#GT#GT_{%dn,%dn|%dn,%dn,%dn}",5*fHarmonic,4*fHarmonic,4*fHarmonic,3*fHarmonic,2*fHarmonic));
3074 fMixedHarmonicProductOfCorrelations->GetXaxis()->SetBinLabel(68,Form("#LT#LT5#GT#GT_{%dn,%dn|%dn,%dn,%dn}",5*fHarmonic,3*fHarmonic,5*fHarmonic,2*fHarmonic,1*fHarmonic));
3075 fMixedHarmonicProductOfCorrelations->GetXaxis()->SetBinLabel(69,Form("#LT#LT5#GT#GT_{%dn,%dn|%dn,%dn,%dn}",5*fHarmonic,4*fHarmonic,5*fHarmonic,2*fHarmonic,2*fHarmonic));
3076 fMixedHarmonicProductOfCorrelations->GetXaxis()->SetBinLabel(70,Form("#LT#LT5#GT#GT_{%dn,%dn|%dn,%dn,%dn}",5*fHarmonic,4*fHarmonic,5*fHarmonic,3*fHarmonic,1*fHarmonic));
3077 fMixedHarmonicProductOfCorrelations->GetXaxis()->SetBinLabel(71,Form("#LT#LT5#GT#GT_{%dn,%dn|%dn,%dn,%dn}",6*fHarmonic,1*fHarmonic,3*fHarmonic,3*fHarmonic,1*fHarmonic));
3078 fMixedHarmonicProductOfCorrelations->GetXaxis()->SetBinLabel(72,Form("#LT#LT5#GT#GT_{%dn,%dn|%dn,%dn,%dn}",6*fHarmonic,2*fHarmonic,3*fHarmonic,3*fHarmonic,2*fHarmonic));
3079 fMixedHarmonicProductOfCorrelations->GetXaxis()->SetBinLabel(73,Form("#LT#LT5#GT#GT_{%dn,%dn|%dn,%dn,%dn}",6*fHarmonic,1*fHarmonic,4*fHarmonic,2*fHarmonic,1*fHarmonic));
3080 fMixedHarmonicProductOfCorrelations->GetXaxis()->SetBinLabel(74,Form("#LT#LT5#GT#GT_{%dn,%dn|%dn,%dn,%dn}",6*fHarmonic,3*fHarmonic,4*fHarmonic,3*fHarmonic,2*fHarmonic));
3081 fMixedHarmonicProductOfCorrelations->GetXaxis()->SetBinLabel(75,Form("#LT#LT5#GT#GT_{%dn,%dn|%dn,%dn,%dn}",6*fHarmonic,4*fHarmonic,4*fHarmonic,3*fHarmonic,3*fHarmonic));
3082 fMixedHarmonicProductOfCorrelations->GetXaxis()->SetBinLabel(76,Form("#LT#LT5#GT#GT_{%dn,%dn|%dn,%dn,%dn}",6*fHarmonic,2*fHarmonic,5*fHarmonic,2*fHarmonic,1*fHarmonic));
3083 fMixedHarmonicProductOfCorrelations->GetXaxis()->SetBinLabel(77,Form("#LT#LT5#GT#GT_{%dn,%dn|%dn,%dn,%dn}",6*fHarmonic,3*fHarmonic,5*fHarmonic,3*fHarmonic,1*fHarmonic));
3084 fMixedHarmonicProductOfCorrelations->GetXaxis()->SetBinLabel(78,Form("#LT#LT5#GT#GT_{%dn,%dn|%dn,%dn,%dn}",6*fHarmonic,4*fHarmonic,5*fHarmonic,4*fHarmonic,1*fHarmonic));
3085 fMixedHarmonicProductOfCorrelations->GetXaxis()->SetBinLabel(79,Form("#LT#LT5#GT#GT_{%dn,%dn|%dn,%dn,%dn}",6*fHarmonic,5*fHarmonic,5*fHarmonic,3*fHarmonic,3*fHarmonic));
3086 fMixedHarmonicProductOfCorrelations->GetXaxis()->SetBinLabel(80,Form("#LT#LT5#GT#GT_{%dn,%dn|%dn,%dn,%dn}",6*fHarmonic,2*fHarmonic,6*fHarmonic,1*fHarmonic,1*fHarmonic));
3087 fMixedHarmonicProductOfCorrelations->GetXaxis()->SetBinLabel(81,Form("#LT#LT5#GT#GT_{%dn,%dn|%dn,%dn,%dn}",6*fHarmonic,3*fHarmonic,6*fHarmonic,2*fHarmonic,1*fHarmonic));
3088 fMixedHarmonicProductOfCorrelations->GetXaxis()->SetBinLabel(82,Form("#LT#LT5#GT#GT_{%dn,%dn|%dn,%dn,%dn}",6*fHarmonic,4*fHarmonic,6*fHarmonic,2*fHarmonic,2*fHarmonic));
3089 fMixedHarmonicProductOfCorrelations->GetXaxis()->SetBinLabel(83,Form("#LT#LT5#GT#GT_{%dn,%dn|%dn,%dn,%dn}",6*fHarmonic,4*fHarmonic,6*fHarmonic,3*fHarmonic,1*fHarmonic));
3090 fMixedHarmonicProductOfCorrelations->GetXaxis()->SetBinLabel(84,Form("#LT#LT5#GT#GT_{%dn,%dn|%dn,%dn,%dn}",6*fHarmonic,5*fHarmonic,5*fHarmonic,4*fHarmonic,2*fHarmonic));
3091 fMixedHarmonicProductOfCorrelations->GetXaxis()->SetBinLabel(85,Form("#LT#LT5#GT#GT_{%dn,%dn|%dn,%dn,%dn}",6*fHarmonic,5*fHarmonic,6*fHarmonic,3*fHarmonic,2*fHarmonic));
3092 fMixedHarmonicProductOfCorrelations->GetXaxis()->SetBinLabel(86,Form("#LT#LT5#GT#GT_{%dn,%dn|%dn,%dn,%dn}",6*fHarmonic,5*fHarmonic,6*fHarmonic,4*fHarmonic,1*fHarmonic));
3093 fMixedHarmonicProductOfCorrelations->GetXaxis()->SetBinLabel(87,Form("#LT#LT5#GT#GT_{%dn,%dn|%dn,%dn,%dn}",2*fHarmonic,1*fHarmonic,1*fHarmonic,1*fHarmonic,1*fHarmonic));
3094 fMixedHarmonicProductOfCorrelations->GetXaxis()->SetBinLabel(88,Form("#LT#LT5#GT#GT_{%dn,%dn|%dn,%dn,%dn}",2*fHarmonic,2*fHarmonic,2*fHarmonic,1*fHarmonic,1*fHarmonic));
3095 fMixedHarmonicProductOfCorrelations->GetXaxis()->SetBinLabel(89,Form("#LT#LT5#GT#GT_{%dn,%dn|%dn,%dn,%dn}",3*fHarmonic,3*fHarmonic,2*fHarmonic,2*fHarmonic,2*fHarmonic));
3096 fMixedHarmonicProductOfCorrelations->GetXaxis()->SetBinLabel(90,Form("#LT#LT5#GT#GT_{%dn|%dn,%dn,%dn,%dn}",4*fHarmonic,1*fHarmonic,1*fHarmonic,1*fHarmonic,1*fHarmonic));
3097 fMixedHarmonicProductOfCorrelations->GetXaxis()->SetBinLabel(91,Form("#LT#LT5#GT#GT_{%dn,%dn|%dn,%dn,%dn}",4*fHarmonic,2*fHarmonic,2*fHarmonic,2*fHarmonic,2*fHarmonic));
3098 fMixedHarmonicProductOfCorrelations->GetXaxis()->SetBinLabel(92,Form("#LT#LT5#GT#GT_{%dn,%dn|%dn,%dn,%dn}",4*fHarmonic,4*fHarmonic,4*fHarmonic,2*fHarmonic,2*fHarmonic));
3099 fMixedHarmonicProductOfCorrelations->GetXaxis()->SetBinLabel(93,Form("#LT#LT5#GT#GT_{%dn,%dn|%dn,%dn,%dn}",6*fHarmonic,3*fHarmonic,3*fHarmonic,3*fHarmonic,3*fHarmonic));
3100 fMixedHarmonicProductOfCorrelations->GetXaxis()->SetBinLabel(94,Form("#LT#LT5#GT#GT_{%dn,%dn|%dn,%dn,%dn}",6*fHarmonic,6*fHarmonic,4*fHarmonic,4*fHarmonic,4*fHarmonic));
3101 fMixedHarmonicProductOfCorrelations->GetXaxis()->SetBinLabel(95,Form("#LT#LT5#GT#GT_{%dn,%dn|%dn,%dn,%dn}",6*fHarmonic,6*fHarmonic,6*fHarmonic,3*fHarmonic,3*fHarmonic));
3102 fMixedHarmonicProductOfCorrelations->GetXaxis()->SetBinLabel(96,Form("#LT#LT5#GT#GT_{%dn,%dn|%dn,%dn,%dn}",3*fHarmonic,1*fHarmonic,2*fHarmonic,1*fHarmonic,1*fHarmonic));
3103 fMixedHarmonicProductOfCorrelations->GetXaxis()->SetBinLabel(97,Form("#LT#LT5#GT#GT_{%dn,%dn|%dn,%dn,%dn}",3*fHarmonic,2*fHarmonic,2*fHarmonic,2*fHarmonic,1*fHarmonic));
3104 fMixedHarmonicProductOfCorrelations->GetXaxis()->SetBinLabel(98,Form("#LT#LT5#GT#GT_{%dn,%dn|%dn,%dn,%dn}",3*fHarmonic,3*fHarmonic,3*fHarmonic,2*fHarmonic,1*fHarmonic));
3105 fMixedHarmonicProductOfCorrelations->GetXaxis()->SetBinLabel(99,Form("#LT#LT5#GT#GT_{%dn,%dn|%dn,%dn,%dn}",4*fHarmonic,1*fHarmonic,3*fHarmonic,1*fHarmonic,1*fHarmonic));
3106 fMixedHarmonicProductOfCorrelations->GetXaxis()->SetBinLabel(100,Form("#LT#LT5#GT#GT_{%dn,%dn,%dn|%dn,%dn}",4*fHarmonic,1*fHarmonic,1*fHarmonic,3*fHarmonic,3*fHarmonic));
3107 fMixedHarmonicProductOfCorrelations->GetXaxis()->SetBinLabel(101,Form("#LT#LT5#GT#GT_{%dn,%dn|%dn,%dn,%dn}",4*fHarmonic,3*fHarmonic,3*fHarmonic,3*fHarmonic,1*fHarmonic));
3108 fMixedHarmonicProductOfCorrelations->GetXaxis()->SetBinLabel(102,Form("#LT#LT5#GT#GT_{%dn,%dn|%dn,%dn,%dn}",4*fHarmonic,4*fHarmonic,3*fHarmonic,3*fHarmonic,2*fHarmonic));
3109 fMixedHarmonicProductOfCorrelations->GetXaxis()->SetBinLabel(103,Form("#LT#LT5#GT#GT_{%dn,%dn|%dn,%dn,%dn}",4*fHarmonic,4*fHarmonic,4*fHarmonic,3*fHarmonic,1*fHarmonic));
3110 fMixedHarmonicProductOfCorrelations->GetXaxis()->SetBinLabel(104,Form("#LT#LT5#GT#GT_{%dn|%dn,%dn,%dn,%dn}",5*fHarmonic,2*fHarmonic,1*fHarmonic,1*fHarmonic,1*fHarmonic));
3111 fMixedHarmonicProductOfCorrelations->GetXaxis()->SetBinLabel(105,Form("#LT#LT5#GT#GT_{%dn,%dn|%dn,%dn,%dn}",5*fHarmonic,1*fHarmonic,2*fHarmonic,2*fHarmonic,2*fHarmonic));
3112 fMixedHarmonicProductOfCorrelations->GetXaxis()->SetBinLabel(106,Form("#LT#LT5#GT#GT_{%dn,%dn|%dn,%dn,%dn}",5*fHarmonic,2*fHarmonic,3*fHarmonic,2*fHarmonic,2*fHarmonic));
3113 fMixedHarmonicProductOfCorrelations->GetXaxis()->SetBinLabel(107,Form("#LT#LT5#GT#GT_{%dn,%dn|%dn,%dn,%dn}",5*fHarmonic,3*fHarmonic,3*fHarmonic,3*fHarmonic,2*fHarmonic));
3114 fMixedHarmonicProductOfCorrelations->GetXaxis()->SetBinLabel(108,Form("#LT#LT5#GT#GT_{%dn,%dn|%dn,%dn,%dn}",5*fHarmonic,1*fHarmonic,4*fHarmonic,1*fHarmonic,1*fHarmonic));
3115 fMixedHarmonicProductOfCorrelations->GetXaxis()->SetBinLabel(109,Form("#LT#LT5#GT#GT_{%dn,%dn|%dn,%dn,%dn}",5*fHarmonic,4*fHarmonic,3*fHarmonic,3*fHarmonic,3*fHarmonic));
3116 fMixedHarmonicProductOfCorrelations->GetXaxis()->SetBinLabel(110,Form("#LT#LT5#GT#GT_{%dn,%dn|%dn,%dn,%dn}",5*fHarmonic,4*fHarmonic,4*fHarmonic,4*fHarmonic,1*fHarmonic));
3117 fMixedHarmonicProductOfCorrelations->GetXaxis()->SetBinLabel(111,Form("#LT#LT5#GT#GT_{%dn,%dn|%dn,%dn,%dn}",5*fHarmonic,5*fHarmonic,4*fHarmonic,3*fHarmonic,3*fHarmonic));
3118 fMixedHarmonicProductOfCorrelations->GetXaxis()->SetBinLabel(112,Form("#LT#LT5#GT#GT_{%dn,%dn|%dn,%dn,%dn}",5*fHarmonic,5*fHarmonic,4*fHarmonic,4*fHarmonic,2*fHarmonic));
3119 fMixedHarmonicProductOfCorrelations->GetXaxis()->SetBinLabel(113,Form("#LT#LT5#GT#GT_{%dn,%dn|%dn,%dn,%dn}",5*fHarmonic,5*fHarmonic,5*fHarmonic,3*fHarmonic,2*fHarmonic));
3120 fMixedHarmonicProductOfCorrelations->GetXaxis()->SetBinLabel(114,Form("#LT#LT5#GT#GT_{%dn,%dn|%dn,%dn,%dn}",5*fHarmonic,5*fHarmonic,5*fHarmonic,4*fHarmonic,1*fHarmonic));
3121 fMixedHarmonicProductOfCorrelations->GetXaxis()->SetBinLabel(115,Form("#LT#LT5#GT#GT_{%dn|%dn,%dn,%dn,%dn}",6*fHarmonic,2*fHarmonic,2*fHarmonic,1*fHarmonic,1*fHarmonic));
3122 fMixedHarmonicProductOfCorrelations->GetXaxis()->SetBinLabel(116,Form("#LT#LT5#GT#GT_{%dn|%dn,%dn,%dn,%dn}",6*fHarmonic,3*fHarmonic,1*fHarmonic,1*fHarmonic,1*fHarmonic));
3123 fMixedHarmonicProductOfCorrelations->GetXaxis()->SetBinLabel(117,Form("#LT#LT5#GT#GT_{%dn,%dn,%dn|%dn,%dn}",6*fHarmonic,1*fHarmonic,1*fHarmonic,4*fHarmonic,4*fHarmonic));
3124 fMixedHarmonicProductOfCorrelations->GetXaxis()->SetBinLabel(118,Form("#LT#LT5#GT#GT_{%dn,%dn|%dn,%dn,%dn}",6*fHarmonic,1*fHarmonic,5*fHarmonic,1*fHarmonic,1*fHarmonic));
3125 fMixedHarmonicProductOfCorrelations->GetXaxis()->SetBinLabel(119,Form("#LT#LT5#GT#GT_{%dn,%dn|%dn,%dn,%dn}",6*fHarmonic,2*fHarmonic,4*fHarmonic,2*fHarmonic,2*fHarmonic));
3126 fMixedHarmonicProductOfCorrelations->GetXaxis()->SetBinLabel(120,Form("#LT#LT5#GT#GT_{%dn,%dn|%dn,%dn,%dn}",6*fHarmonic,4*fHarmonic,4*fHarmonic,4*fHarmonic,2*fHarmonic));
3127 fMixedHarmonicProductOfCorrelations->GetXaxis()->SetBinLabel(121,Form("#LT#LT5#GT#GT_{%dn,%dn,%dn|%dn,%dn}",6*fHarmonic,2*fHarmonic,2*fHarmonic,5*fHarmonic,5*fHarmonic));
3128 fMixedHarmonicProductOfCorrelations->GetXaxis()->SetBinLabel(122,Form("#LT#LT5#GT#GT_{%dn,%dn|%dn,%dn,%dn}",6*fHarmonic,5*fHarmonic,5*fHarmonic,5*fHarmonic,1*fHarmonic));
3129 fMixedHarmonicProductOfCorrelations->GetXaxis()->SetBinLabel(123,Form("#LT#LT5#GT#GT_{%dn,%dn|%dn,%dn,%dn}",6*fHarmonic,6*fHarmonic,5*fHarmonic,5*fHarmonic,2*fHarmonic));
3130 fMixedHarmonicProductOfCorrelations->GetXaxis()->SetBinLabel(124,Form("#LT#LT5#GT#GT_{%dn,%dn|%dn,%dn,%dn}",6*fHarmonic,6*fHarmonic,6*fHarmonic,4*fHarmonic,2*fHarmonic));
3131 fMixedHarmonicProductOfCorrelations->GetXaxis()->SetBinLabel(125,Form("#LT#LT5#GT#GT_{%dn,%dn|%dn,%dn,%dn}",6*fHarmonic,6*fHarmonic,6*fHarmonic,5*fHarmonic,1*fHarmonic));
3132 fMixedHarmonicProductOfCorrelations->GetXaxis()->SetBinLabel(126,Form("#LT#LT5#GT#GT_{%dn,%dn|%dn,%dn,%dn}",5*fHarmonic,2*fHarmonic,3*fHarmonic,3*fHarmonic,1*fHarmonic));
3133 fMixedHarmonicProductOfCorrelations->GetXaxis()->SetBinLabel(127,Form("#LT#LT5#GT#GT_{%dn,%dn,%dn|%dn,%dn}",5*fHarmonic,1*fHarmonic,1*fHarmonic,4*fHarmonic,3*fHarmonic));
3134 fMixedHarmonicProductOfCorrelations->GetXaxis()->SetBinLabel(128,Form("#LT#LT5#GT#GT_{%dn,%dn|%dn,%dn,%dn}",5*fHarmonic,3*fHarmonic,4*fHarmonic,2*fHarmonic,2*fHarmonic));
3135 fMixedHarmonicProductOfCorrelations->GetXaxis()->SetBinLabel(129,Form("#LT#LT5#GT#GT_{%dn,%dn,%dn|%dn,%dn}",5*fHarmonic,2*fHarmonic,1*fHarmonic,4*fHarmonic,4*fHarmonic));
3136 fMixedHarmonicProductOfCorrelations->GetXaxis()->SetBinLabel(130,Form("#LT#LT5#GT#GT_{%dn,%dn|%dn,%dn,%dn}",6*fHarmonic,1*fHarmonic,3*fHarmonic,2*fHarmonic,2*fHarmonic));
3137 fMixedHarmonicProductOfCorrelations->GetXaxis()->SetBinLabel(131,Form("#LT#LT5#GT#GT_{%dn,%dn|%dn,%dn,%dn}",6*fHarmonic,3*fHarmonic,4*fHarmonic,4*fHarmonic,1*fHarmonic));
3138 fMixedHarmonicProductOfCorrelations->GetXaxis()->SetBinLabel(132,Form("#LT#LT5#GT#GT_{%dn,%dn,%dn|%dn,%dn}",6*fHarmonic,1*fHarmonic,1*fHarmonic,5*fHarmonic,3*fHarmonic));
3139 fMixedHarmonicProductOfCorrelations->GetXaxis()->SetBinLabel(133,Form("#LT#LT5#GT#GT_{%dn,%dn|%dn,%dn,%dn}",6*fHarmonic,3*fHarmonic,5*fHarmonic,2*fHarmonic,2*fHarmonic));
3140 fMixedHarmonicProductOfCorrelations->GetXaxis()->SetBinLabel(134,Form("#LT#LT5#GT#GT_{%dn,%dn|%dn,%dn,%dn}",6*fHarmonic,5*fHarmonic,4*fHarmonic,4*fHarmonic,3*fHarmonic));
3141 fMixedHarmonicProductOfCorrelations->GetXaxis()->SetBinLabel(135,Form("#LT#LT5#GT#GT_{%dn,%dn,%dn|%dn,%dn}",6*fHarmonic,3*fHarmonic,1*fHarmonic,5*fHarmonic,5*fHarmonic));
3142 fMixedHarmonicProductOfCorrelations->GetXaxis()->SetBinLabel(136,Form("#LT#LT5#GT#GT_{%dn,%dn|%dn,%dn,%dn}",6*fHarmonic,6*fHarmonic,5*fHarmonic,4*fHarmonic,3*fHarmonic));
3143 fMixedHarmonicProductOfCorrelations->GetXaxis()->SetBinLabel(137,Form("#LT#LT5#GT#GT_{%dn,%dn|%dn,%dn,%dn}",6*fHarmonic,2*fHarmonic,4*fHarmonic,3*fHarmonic,1*fHarmonic));
3144 fMixedHarmonicProductOfCorrelations->GetXaxis()->SetBinLabel(138,Form("#LT#LT5#GT#GT_{%dn,%dn,%dn|%dn,%dn}",6*fHarmonic,2*fHarmonic,1*fHarmonic,5*fHarmonic,4*fHarmonic));
3145 fMixedHarmonicProductOfCorrelations->GetXaxis()->SetBinLabel(139,Form("#LT#LT5#GT#GT_{%dn,%dn|%dn,%dn,%dn}",6*fHarmonic,4*fHarmonic,5*fHarmonic,3*fHarmonic,2*fHarmonic));
3147 fMixedHarmonicProductOfCorrelations->GetYaxis()->SetBinLabel(1,Form("#LT#LT2#GT#GT_{%dn|%dn}",1*fHarmonic,1*fHarmonic));
3148 fMixedHarmonicProductOfCorrelations->GetYaxis()->SetBinLabel(2,Form("#LT#LT2#GT#GT_{%dn|%dn}",2*fHarmonic,2*fHarmonic));
3149 fMixedHarmonicProductOfCorrelations->GetYaxis()->SetBinLabel(3,Form("#LT#LT2#GT#GT_{%dn|%dn}",3*fHarmonic,3*fHarmonic));
3150 fMixedHarmonicProductOfCorrelations->GetYaxis()->SetBinLabel(4,Form("#LT#LT2#GT#GT_{%dn|%dn}",4*fHarmonic,4*fHarmonic));
3151 fMixedHarmonicProductOfCorrelations->GetYaxis()->SetBinLabel(5,Form("#LT#LT2#GT#GT_{%dn|%dn}",5*fHarmonic,5*fHarmonic));
3152 fMixedHarmonicProductOfCorrelations->GetYaxis()->SetBinLabel(6,Form("#LT#LT2#GT#GT_{%dn|%dn}",6*fHarmonic,6*fHarmonic));
3153 fMixedHarmonicProductOfCorrelations->GetYaxis()->SetBinLabel(7,Form("#LT#LT3#GT#GT_{%dn|%dn,%dn}",2*fHarmonic,1*fHarmonic,1*fHarmonic));
3154 fMixedHarmonicProductOfCorrelations->GetYaxis()->SetBinLabel(8,Form("#LT#LT3#GT#GT_{%dn|%dn,%dn}",4*fHarmonic,2*fHarmonic,2*fHarmonic));
3155 fMixedHarmonicProductOfCorrelations->GetYaxis()->SetBinLabel(9,Form("#LT#LT3#GT#GT_{%dn|%dn,%dn}",6*fHarmonic,3*fHarmonic,3*fHarmonic));
3156 fMixedHarmonicProductOfCorrelations->GetYaxis()->SetBinLabel(10,Form("#LT#LT3#GT#GT_{%dn|%dn,%dn}",3*fHarmonic,2*fHarmonic,1*fHarmonic));
3157 fMixedHarmonicProductOfCorrelations->GetYaxis()->SetBinLabel(11,Form("#LT#LT3#GT#GT_{%dn|%dn,%dn}",4*fHarmonic,3*fHarmonic,1*fHarmonic));
3158 fMixedHarmonicProductOfCorrelations->GetYaxis()->SetBinLabel(12,Form("#LT#LT3#GT#GT_{%dn|%dn,%dn}",5*fHarmonic,3*fHarmonic,2*fHarmonic));
3159 fMixedHarmonicProductOfCorrelations->GetYaxis()->SetBinLabel(13,Form("#LT#LT3#GT#GT_{%dn|%dn,%dn}",5*fHarmonic,4*fHarmonic,1*fHarmonic));
3160 fMixedHarmonicProductOfCorrelations->GetYaxis()->SetBinLabel(14,Form("#LT#LT3#GT#GT_{%dn|%dn,%dn}",6*fHarmonic,4*fHarmonic,2*fHarmonic));
3161 fMixedHarmonicProductOfCorrelations->GetYaxis()->SetBinLabel(15,Form("#LT#LT3#GT#GT_{%dn|%dn,%dn}",6*fHarmonic,5*fHarmonic,1*fHarmonic));
3162 fMixedHarmonicProductOfCorrelations->GetYaxis()->SetBinLabel(16,Form("#LT#LT4#GT#GT_{%dn,%dn|%dn,%dn}",1*fHarmonic,1*fHarmonic,1*fHarmonic,1*fHarmonic));
3163 fMixedHarmonicProductOfCorrelations->GetYaxis()->SetBinLabel(17,Form("#LT#LT4#GT#GT_{%dn,%dn|%dn,%dn}",2*fHarmonic,2*fHarmonic,2*fHarmonic,2*fHarmonic));
3164 fMixedHarmonicProductOfCorrelations->GetYaxis()->SetBinLabel(18,Form("#LT#LT4#GT#GT_{%dn,%dn|%dn,%dn}",3*fHarmonic,3*fHarmonic,3*fHarmonic,3*fHarmonic));
3165 fMixedHarmonicProductOfCorrelations->GetYaxis()->SetBinLabel(19,Form("#LT#LT4#GT#GT_{%dn,%dn|%dn,%dn}",4*fHarmonic,4*fHarmonic,4*fHarmonic,4*fHarmonic));
3166 fMixedHarmonicProductOfCorrelations->GetYaxis()->SetBinLabel(20,Form("#LT#LT4#GT#GT_{%dn,%dn|%dn,%dn}",5*fHarmonic,5*fHarmonic,5*fHarmonic,5*fHarmonic));
3167 fMixedHarmonicProductOfCorrelations->GetYaxis()->SetBinLabel(21,Form("#LT#LT4#GT#GT_{%dn,%dn|%dn,%dn}",6*fHarmonic,6*fHarmonic,6*fHarmonic,6*fHarmonic));
3168 fMixedHarmonicProductOfCorrelations->GetYaxis()->SetBinLabel(22,Form("#LT#LT4#GT#GT_{%dn,%dn|%dn,%dn}",2*fHarmonic,1*fHarmonic,2*fHarmonic,1*fHarmonic));
3169 fMixedHarmonicProductOfCorrelations->GetYaxis()->SetBinLabel(23,Form("#LT#LT4#GT#GT_{%dn,%dn|%dn,%dn}",3*fHarmonic,1*fHarmonic,3*fHarmonic,1*fHarmonic));
3170 fMixedHarmonicProductOfCorrelations->GetYaxis()->SetBinLabel(24,Form("#LT#LT4#GT#GT_{%dn,%dn|%dn,%dn}",3*fHarmonic,2*fHarmonic,3*fHarmonic,2*fHarmonic));
3171 fMixedHarmonicProductOfCorrelations->GetYaxis()->SetBinLabel(25,Form("#LT#LT4#GT#GT_{%dn,%dn|%dn,%dn}",4*fHarmonic,1*fHarmonic,4*fHarmonic,1*fHarmonic));
3172 fMixedHarmonicProductOfCorrelations->GetYaxis()->SetBinLabel(26,Form("#LT#LT4#GT#GT_{%dn,%dn|%dn,%dn}",4*fHarmonic,2*fHarmonic,4*fHarmonic,2*fHarmonic));
3173 fMixedHarmonicProductOfCorrelations->GetYaxis()->SetBinLabel(27,Form("#LT#LT4#GT#GT_{%dn,%dn|%dn,%dn}",4*fHarmonic,3*fHarmonic,4*fHarmonic,3*fHarmonic));
3174 fMixedHarmonicProductOfCorrelations->GetYaxis()->SetBinLabel(28,Form("#LT#LT4#GT#GT_{%dn,%dn|%dn,%dn}",5*fHarmonic,1*fHarmonic,5*fHarmonic,1*fHarmonic));
3175 fMixedHarmonicProductOfCorrelations->GetYaxis()->SetBinLabel(29,Form("#LT#LT4#GT#GT_{%dn,%dn|%dn,%dn}",5*fHarmonic,2*fHarmonic,5*fHarmonic,2*fHarmonic));
3176 fMixedHarmonicProductOfCorrelations->GetYaxis()->SetBinLabel(30,Form("#LT#LT4#GT#GT_{%dn,%dn|%dn,%dn}",5*fHarmonic,3*fHarmonic,5*fHarmonic,3*fHarmonic));
3177 fMixedHarmonicProductOfCorrelations->GetYaxis()->SetBinLabel(31,Form("#LT#LT4#GT#GT_{%dn,%dn|%dn,%dn}",5*fHarmonic,4*fHarmonic,5*fHarmonic,4*fHarmonic));
3178 fMixedHarmonicProductOfCorrelations->GetYaxis()->SetBinLabel(32,Form("#LT#LT4#GT#GT_{%dn,%dn|%dn,%dn}",6*fHarmonic,1*fHarmonic,6*fHarmonic,1*fHarmonic));
3179 fMixedHarmonicProductOfCorrelations->GetYaxis()->SetBinLabel(33,Form("#LT#LT4#GT#GT_{%dn,%dn|%dn,%dn}",6*fHarmonic,2*fHarmonic,6*fHarmonic,2*fHarmonic));
3180 fMixedHarmonicProductOfCorrelations->GetYaxis()->SetBinLabel(34,Form("#LT#LT4#GT#GT_{%dn,%dn|%dn,%dn}",6*fHarmonic,3*fHarmonic,6*fHarmonic,3*fHarmonic));
3181 fMixedHarmonicProductOfCorrelations->GetYaxis()->SetBinLabel(35,Form("#LT#LT4#GT#GT_{%dn,%dn|%dn,%dn}",6*fHarmonic,4*fHarmonic,6*fHarmonic,4*fHarmonic));
3182 fMixedHarmonicProductOfCorrelations->GetYaxis()->SetBinLabel(36,Form("#LT#LT4#GT#GT_{%dn,%dn|%dn,%dn}",6*fHarmonic,5*fHarmonic,6*fHarmonic,5*fHarmonic));
3183 fMixedHarmonicProductOfCorrelations->GetYaxis()->SetBinLabel(37,Form("#LT#LT4#GT#GT_{%dn|%dn,%dn,%dn}",3*fHarmonic,1*fHarmonic,1*fHarmonic,1*fHarmonic));
3184 fMixedHarmonicProductOfCorrelations->GetYaxis()->SetBinLabel(38,Form("#LT#LT4#GT#GT_{%dn|%dn,%dn,%dn}",6*fHarmonic,2*fHarmonic,2*fHarmonic,2*fHarmonic));
3185 fMixedHarmonicProductOfCorrelations->GetYaxis()->SetBinLabel(39,Form("#LT#LT4#GT#GT_{%dn,%dn|%dn,%dn}",3*fHarmonic,1*fHarmonic,2*fHarmonic,2*fHarmonic));
3186 fMixedHarmonicProductOfCorrelations->GetYaxis()->SetBinLabel(40,Form("#LT#LT4#GT#GT_{%dn|%dn,%dn,%dn}",4*fHarmonic,2*fHarmonic,1*fHarmonic,1*fHarmonic));
3187 fMixedHarmonicProductOfCorrelations->GetYaxis()->SetBinLabel(41,Form("#LT#LT4#GT#GT_{%dn,%dn|%dn,%dn}",4*fHarmonic,2*fHarmonic,3*fHarmonic,3*fHarmonic));
3188 fMixedHarmonicProductOfCorrelations->GetYaxis()->SetBinLabel(42,Form("#LT#LT4#GT#GT_{%dn|%dn,%dn,%dn}",5*fHarmonic,2*fHarmonic,2*fHarmonic,1*fHarmonic));
3189 fMixedHarmonicProductOfCorrelations->GetYaxis()->SetBinLabel(43,Form("#LT#LT4#GT#GT_{%dn|%dn,%dn,%dn}",5*fHarmonic,3*fHarmonic,1*fHarmonic,1*fHarmonic));
3190 fMixedHarmonicProductOfCorrelations->GetYaxis()->SetBinLabel(44,Form("#LT#LT4#GT#GT_{%dn,%dn|%dn,%dn}",5*fHarmonic,1*fHarmonic,3*fHarmonic,3*fHarmonic));
3191 fMixedHarmonicProductOfCorrelations->GetYaxis()->SetBinLabel(45,Form("#LT#LT4#GT#GT_{%dn,%dn|%dn,%dn}",5*fHarmonic,3*fHarmonic,4*fHarmonic,4*fHarmonic));
3192 fMixedHarmonicProductOfCorrelations->GetYaxis()->SetBinLabel(46,Form("#LT#LT4#GT#GT_{%dn|%dn,%dn,%dn}",6*fHarmonic,4*fHarmonic,1*fHarmonic,1*fHarmonic));
3193 fMixedHarmonicProductOfCorrelations->GetYaxis()->SetBinLabel(47,Form("#LT#LT4#GT#GT_{%dn,%dn|%dn,%dn}",6*fHarmonic,2*fHarmonic,4*fHarmonic,4*fHarmonic));
3194 fMixedHarmonicProductOfCorrelations->GetYaxis()->SetBinLabel(48,Form("#LT#LT4#GT#GT_{%dn,%dn|%dn,%dn}",6*fHarmonic,4*fHarmonic,5*fHarmonic,5*fHarmonic));
3195 fMixedHarmonicProductOfCorrelations->GetYaxis()->SetBinLabel(49,Form("#LT#LT4#GT#GT_{%dn,%dn|%dn,%dn}",4*fHarmonic,1*fHarmonic,3*fHarmonic,2*fHarmonic));
3196 fMixedHarmonicProductOfCorrelations->GetYaxis()->SetBinLabel(50,Form("#LT#LT4#GT#GT_{%dn,%dn|%dn,%dn}",5*fHarmonic,1*fHarmonic,4*fHarmonic,2*fHarmonic));
3197 fMixedHarmonicProductOfCorrelations->GetYaxis()->SetBinLabel(51,Form("#LT#LT4#GT#GT_{%dn,%dn|%dn,%dn}",5*fHarmonic,2*fHarmonic,4*fHarmonic,3*fHarmonic));
3198 fMixedHarmonicProductOfCorrelations->GetYaxis()->SetBinLabel(52,Form("#LT#LT4#GT#GT_{%dn,%dn|%dn,%dn}",6*fHarmonic,1*fHarmonic,4*fHarmonic,3*fHarmonic));
3199 fMixedHarmonicProductOfCorrelations->GetYaxis()->SetBinLabel(53,Form("#LT#LT4#GT#GT_{%dn,%dn|%dn,%dn}",6*fHarmonic,1*fHarmonic,5*fHarmonic,2*fHarmonic));
3200 fMixedHarmonicProductOfCorrelations->GetYaxis()->SetBinLabel(54,Form("#LT#LT4#GT#GT_{%dn|%dn,%dn,%dn}",6*fHarmonic,3*fHarmonic,2*fHarmonic,1*fHarmonic));
3201 fMixedHarmonicProductOfCorrelations->GetYaxis()->SetBinLabel(55,Form("#LT#LT4#GT#GT_{%dn,%dn|%dn,%dn}",6*fHarmonic,2*fHarmonic,5*fHarmonic,3*fHarmonic));
3202 fMixedHarmonicProductOfCorrelations->GetYaxis()->SetBinLabel(56,Form("#LT#LT4#GT#GT_{%dn,%dn|%dn,%dn}",6*fHarmonic,3*fHarmonic,5*fHarmonic,4*fHarmonic));
3203 fMixedHarmonicProductOfCorrelations->GetYaxis()->SetBinLabel(57,Form("#LT#LT5#GT#GT_{%dn,%dn|%dn,%dn,%dn}",3*fHarmonic,2*fHarmonic,3*fHarmonic,1*fHarmonic,1*fHarmonic));
3204 fMixedHarmonicProductOfCorrelations->GetYaxis()->SetBinLabel(58,Form("#LT#LT5#GT#GT_{%dn,%dn|%dn,%dn,%dn}",4*fHarmonic,1*fHarmonic,2*fHarmonic,2*fHarmonic,1*fHarmonic));
3205 fMixedHarmonicProductOfCorrelations->GetYaxis()->SetBinLabel(59,Form("#LT#LT5#GT#GT_{%dn,%dn|%dn,%dn,%dn}",4*fHarmonic,2*fHarmonic,3*fHarmonic,2*fHarmonic,1*fHarmonic));
3206 fMixedHarmonicProductOfCorrelations->GetYaxis()->SetBinLabel(60,Form("#LT#LT5#GT#GT_{%dn,%dn|%dn,%dn,%dn}",4*fHarmonic,3*fHarmonic,3*fHarmonic,2*fHarmonic,2*fHarmonic));
3207 fMixedHarmonicProductOfCorrelations->GetYaxis()->SetBinLabel(61,Form("#LT#LT5#GT#GT_{%dn,%dn|%dn,%dn,%dn}",4*fHarmonic,2*fHarmonic,4*fHarmonic,1*fHarmonic,1*fHarmonic));
3208 fMixedHarmonicProductOfCorrelations->GetYaxis()->SetBinLabel(62,Form("#LT#LT5#GT#GT_{%dn,%dn|%dn,%dn,%dn}",4*fHarmonic,3*fHarmonic,4*fHarmonic,2*fHarmonic,1*fHarmonic));
3209 fMixedHarmonicProductOfCorrelations->GetYaxis()->SetBinLabel(63,Form("#LT#LT5#GT#GT_{%dn,%dn|%dn,%dn,%dn}",5*fHarmonic,1*fHarmonic,3*fHarmonic,2*fHarmonic,1*fHarmonic));
3210 fMixedHarmonicProductOfCorrelations->GetYaxis()->SetBinLabel(64,Form("#LT#LT5#GT#GT_{%dn,%dn|%dn,%dn,%dn}",5*fHarmonic,2*fHarmonic,5*fHarmonic,1*fHarmonic,1*fHarmonic));
3211 fMixedHarmonicProductOfCorrelations->GetYaxis()->SetBinLabel(65,Form("#LT#LT5#GT#GT_{%dn,%dn|%dn,%dn,%dn}",5*fHarmonic,2*fHarmonic,4*fHarmonic,2*fHarmonic,1*fHarmonic));
3212 fMixedHarmonicProductOfCorrelations->GetYaxis()->SetBinLabel(66,Form("#LT#LT5#GT#GT_{%dn,%dn|%dn,%dn,%dn}",5*fHarmonic,3*fHarmonic,4*fHarmonic,3*fHarmonic,1*fHarmonic));
3213 fMixedHarmonicProductOfCorrelations->GetYaxis()->SetBinLabel(67,Form("#LT#LT5#GT#GT_{%dn,%dn|%dn,%dn,%dn}",5*fHarmonic,4*fHarmonic,4*fHarmonic,3*fHarmonic,2*fHarmonic));
3214 fMixedHarmonicProductOfCorrelations->GetYaxis()->SetBinLabel(68,Form("#LT#LT5#GT#GT_{%dn,%dn|%dn,%dn,%dn}",5*fHarmonic,3*fHarmonic,5*fHarmonic,2*fHarmonic,1*fHarmonic));
3215 fMixedHarmonicProductOfCorrelations->GetYaxis()->SetBinLabel(69,Form("#LT#LT5#GT#GT_{%dn,%dn|%dn,%dn,%dn}",5*fHarmonic,4*fHarmonic,5*fHarmonic,2*fHarmonic,2*fHarmonic));
3216 fMixedHarmonicProductOfCorrelations->GetYaxis()->SetBinLabel(70,Form("#LT#LT5#GT#GT_{%dn,%dn|%dn,%dn,%dn}",5*fHarmonic,4*fHarmonic,5*fHarmonic,3*fHarmonic,1*fHarmonic));
3217 fMixedHarmonicProductOfCorrelations->GetYaxis()->SetBinLabel(71,Form("#LT#LT5#GT#GT_{%dn,%dn|%dn,%dn,%dn}",6*fHarmonic,1*fHarmonic,3*fHarmonic,3*fHarmonic,1*fHarmonic));
3218 fMixedHarmonicProductOfCorrelations->GetYaxis()->SetBinLabel(72,Form("#LT#LT5#GT#GT_{%dn,%dn|%dn,%dn,%dn}",6*fHarmonic,2*fHarmonic,3*fHarmonic,3*fHarmonic,2*fHarmonic));
3219 fMixedHarmonicProductOfCorrelations->GetYaxis()->SetBinLabel(73,Form("#LT#LT5#GT#GT_{%dn,%dn|%dn,%dn,%dn}",6*fHarmonic,1*fHarmonic,4*fHarmonic,2*fHarmonic,1*fHarmonic));
3220 fMixedHarmonicProductOfCorrelations->GetYaxis()->SetBinLabel(74,Form("#LT#LT5#GT#GT_{%dn,%dn|%dn,%dn,%dn}",6*fHarmonic,3*fHarmonic,4*fHarmonic,3*fHarmonic,2*fHarmonic));
3221 fMixedHarmonicProductOfCorrelations->GetYaxis()->SetBinLabel(75,Form("#LT#LT5#GT#GT_{%dn,%dn|%dn,%dn,%dn}",6*fHarmonic,4*fHarmonic,4*fHarmonic,3*fHarmonic,3*fHarmonic));
3222 fMixedHarmonicProductOfCorrelations->GetYaxis()->SetBinLabel(76,Form("#LT#LT5#GT#GT_{%dn,%dn|%dn,%dn,%dn}",6*fHarmonic,2*fHarmonic,5*fHarmonic,2*fHarmonic,1*fHarmonic));
3223 fMixedHarmonicProductOfCorrelations->GetYaxis()->SetBinLabel(77,Form("#LT#LT5#GT#GT_{%dn,%dn|%dn,%dn,%dn}",6*fHarmonic,3*fHarmonic,5*fHarmonic,3*fHarmonic,1*fHarmonic));
3224 fMixedHarmonicProductOfCorrelations->GetYaxis()->SetBinLabel(78,Form("#LT#LT5#GT#GT_{%dn,%dn|%dn,%dn,%dn}",6*fHarmonic,4*fHarmonic,5*fHarmonic,4*fHarmonic,1*fHarmonic));
3225 fMixedHarmonicProductOfCorrelations->GetYaxis()->SetBinLabel(79,Form("#LT#LT5#GT#GT_{%dn,%dn|%dn,%dn,%dn}",6*fHarmonic,5*fHarmonic,5*fHarmonic,3*fHarmonic,3*fHarmonic));
3226 fMixedHarmonicProductOfCorrelations->GetYaxis()->SetBinLabel(80,Form("#LT#LT5#GT#GT_{%dn,%dn|%dn,%dn,%dn}",6*fHarmonic,2*fHarmonic,6*fHarmonic,1*fHarmonic,1*fHarmonic));
3227 fMixedHarmonicProductOfCorrelations->GetYaxis()->SetBinLabel(81,Form("#LT#LT5#GT#GT_{%dn,%dn|%dn,%dn,%dn}",6*fHarmonic,3*fHarmonic,6*fHarmonic,2*fHarmonic,1*fHarmonic));
3228 fMixedHarmonicProductOfCorrelations->GetYaxis()->SetBinLabel(82,Form("#LT#LT5#GT#GT_{%dn,%dn|%dn,%dn,%dn}",6*fHarmonic,4*fHarmonic,6*fHarmonic,2*fHarmonic,2*fHarmonic));
3229 fMixedHarmonicProductOfCorrelations->GetYaxis()->SetBinLabel(83,Form("#LT#LT5#GT#GT_{%dn,%dn|%dn,%dn,%dn}",6*fHarmonic,4*fHarmonic,6*fHarmonic,3*fHarmonic,1*fHarmonic));
3230 fMixedHarmonicProductOfCorrelations->GetYaxis()->SetBinLabel(84,Form("#LT#LT5#GT#GT_{%dn,%dn|%dn,%dn,%dn}",6*fHarmonic,5*fHarmonic,5*fHarmonic,4*fHarmonic,2*fHarmonic));
3231 fMixedHarmonicProductOfCorrelations->GetYaxis()->SetBinLabel(85,Form("#LT#LT5#GT#GT_{%dn,%dn|%dn,%dn,%dn}",6*fHarmonic,5*fHarmonic,6*fHarmonic,3*fHarmonic,2*fHarmonic));
3232 fMixedHarmonicProductOfCorrelations->GetYaxis()->SetBinLabel(86,Form("#LT#LT5#GT#GT_{%dn,%dn|%dn,%dn,%dn}",6*fHarmonic,5*fHarmonic,6*fHarmonic,4*fHarmonic,1*fHarmonic));
3233 fMixedHarmonicProductOfCorrelations->GetYaxis()->SetBinLabel(87,Form("#LT#LT5#GT#GT_{%dn,%dn|%dn,%dn,%dn}",2*fHarmonic,1*fHarmonic,1*fHarmonic,1*fHarmonic,1*fHarmonic));
3234 fMixedHarmonicProductOfCorrelations->GetYaxis()->SetBinLabel(88,Form("#LT#LT5#GT#GT_{%dn,%dn|%dn,%dn,%dn}",2*fHarmonic,2*fHarmonic,2*fHarmonic,1*fHarmonic,1*fHarmonic));
3235 fMixedHarmonicProductOfCorrelations->GetYaxis()->SetBinLabel(89,Form("#LT#LT5#GT#GT_{%dn,%dn|%dn,%dn,%dn}",3*fHarmonic,3*fHarmonic,2*fHarmonic,2*fHarmonic,2*fHarmonic));
3236 fMixedHarmonicProductOfCorrelations->GetYaxis()->SetBinLabel(90,Form("#LT#LT5#GT#GT_{%dn|%dn,%dn,%dn,%dn}",4*fHarmonic,1*fHarmonic,1*fHarmonic,1*fHarmonic,1*fHarmonic));
3237 fMixedHarmonicProductOfCorrelations->GetYaxis()->SetBinLabel(91,Form("#LT#LT5#GT#GT_{%dn,%dn|%dn,%dn,%dn}",4*fHarmonic,2*fHarmonic,2*fHarmonic,2*fHarmonic,2*fHarmonic));
3238 fMixedHarmonicProductOfCorrelations->GetYaxis()->SetBinLabel(92,Form("#LT#LT5#GT#GT_{%dn,%dn|%dn,%dn,%dn}",4*fHarmonic,4*fHarmonic,4*fHarmonic,2*fHarmonic,2*fHarmonic));
3239 fMixedHarmonicProductOfCorrelations->GetYaxis()->SetBinLabel(93,Form("#LT#LT5#GT#GT_{%dn,%dn|%dn,%dn,%dn}",6*fHarmonic,3*fHarmonic,3*fHarmonic,3*fHarmonic,3*fHarmonic));
3240 fMixedHarmonicProductOfCorrelations->GetYaxis()->SetBinLabel(94,Form("#LT#LT5#GT#GT_{%dn,%dn|%dn,%dn,%dn}",6*fHarmonic,6*fHarmonic,4*fHarmonic,4*fHarmonic,4*fHarmonic));
3241 fMixedHarmonicProductOfCorrelations->GetYaxis()->SetBinLabel(95,Form("#LT#LT5#GT#GT_{%dn,%dn|%dn,%dn,%dn}",6*fHarmonic,6*fHarmonic,6*fHarmonic,3*fHarmonic,3*fHarmonic));
3242 fMixedHarmonicProductOfCorrelations->GetYaxis()->SetBinLabel(96,Form("#LT#LT5#GT#GT_{%dn,%dn|%dn,%dn,%dn}",3*fHarmonic,1*fHarmonic,2*fHarmonic,1*fHarmonic,1*fHarmonic));
3243 fMixedHarmonicProductOfCorrelations->GetYaxis()->SetBinLabel(97,Form("#LT#LT5#GT#GT_{%dn,%dn|%dn,%dn,%dn}",3*fHarmonic,2*fHarmonic,2*fHarmonic,2*fHarmonic,1*fHarmonic));
3244 fMixedHarmonicProductOfCorrelations->GetYaxis()->SetBinLabel(98,Form("#LT#LT5#GT#GT_{%dn,%dn|%dn,%dn,%dn}",3*fHarmonic,3*fHarmonic,3*fHarmonic,2*fHarmonic,1*fHarmonic));
3245 fMixedHarmonicProductOfCorrelations->GetYaxis()->SetBinLabel(99,Form("#LT#LT5#GT#GT_{%dn,%dn|%dn,%dn,%dn}",4*fHarmonic,1*fHarmonic,3*fHarmonic,1*fHarmonic,1*fHarmonic));
3246 fMixedHarmonicProductOfCorrelations->GetYaxis()->SetBinLabel(100,Form("#LT#LT5#GT#GT_{%dn,%dn,%dn|%dn,%dn}",4*fHarmonic,1*fHarmonic,1*fHarmonic,3*fHarmonic,3*fHarmonic));
3247 fMixedHarmonicProductOfCorrelations->GetYaxis()->SetBinLabel(101,Form("#LT#LT5#GT#GT_{%dn,%dn|%dn,%dn,%dn}",4*fHarmonic,3*fHarmonic,3*fHarmonic,3*fHarmonic,1*fHarmonic));
3248 fMixedHarmonicProductOfCorrelations->GetYaxis()->SetBinLabel(102,Form("#LT#LT5#GT#GT_{%dn,%dn|%dn,%dn,%dn}",4*fHarmonic,4*fHarmonic,3*fHarmonic,3*fHarmonic,2*fHarmonic));
3249 fMixedHarmonicProductOfCorrelations->GetYaxis()->SetBinLabel(103,Form("#LT#LT5#GT#GT_{%dn,%dn|%dn,%dn,%dn}",4*fHarmonic,4*fHarmonic,4*fHarmonic,3*fHarmonic,1*fHarmonic));
3250 fMixedHarmonicProductOfCorrelations->GetYaxis()->SetBinLabel(104,Form("#LT#LT5#GT#GT_{%dn|%dn,%dn,%dn,%dn}",5*fHarmonic,2*fHarmonic,1*fHarmonic,1*fHarmonic,1*fHarmonic));
3251 fMixedHarmonicProductOfCorrelations->GetYaxis()->SetBinLabel(105,Form("#LT#LT5#GT#GT_{%dn,%dn|%dn,%dn,%dn}",5*fHarmonic,1*fHarmonic,2*fHarmonic,2*fHarmonic,2*fHarmonic));
3252 fMixedHarmonicProductOfCorrelations->GetYaxis()->SetBinLabel(106,Form("#LT#LT5#GT#GT_{%dn,%dn|%dn,%dn,%dn}",5*fHarmonic,2*fHarmonic,3*fHarmonic,2*fHarmonic,2*fHarmonic));
3253 fMixedHarmonicProductOfCorrelations->GetYaxis()->SetBinLabel(107,Form("#LT#LT5#GT#GT_{%dn,%dn|%dn,%dn,%dn}",5*fHarmonic,3*fHarmonic,3*fHarmonic,3*fHarmonic,2*fHarmonic));
3254 fMixedHarmonicProductOfCorrelations->GetYaxis()->SetBinLabel(108,Form("#LT#LT5#GT#GT_{%dn,%dn|%dn,%dn,%dn}",5*fHarmonic,1*fHarmonic,4*fHarmonic,1*fHarmonic,1*fHarmonic));
3255 fMixedHarmonicProductOfCorrelations->GetYaxis()->SetBinLabel(109,Form("#LT#LT5#GT#GT_{%dn,%dn|%dn,%dn,%dn}",5*fHarmonic,4*fHarmonic,3*fHarmonic,3*fHarmonic,3*fHarmonic));
3256 fMixedHarmonicProductOfCorrelations->GetYaxis()->SetBinLabel(110,Form("#LT#LT5#GT#GT_{%dn,%dn|%dn,%dn,%dn}",5*fHarmonic,4*fHarmonic,4*fHarmonic,4*fHarmonic,1*fHarmonic));
3257 fMixedHarmonicProductOfCorrelations->GetYaxis()->SetBinLabel(111,Form("#LT#LT5#GT#GT_{%dn,%dn|%dn,%dn,%dn}",5*fHarmonic,5*fHarmonic,4*fHarmonic,3*fHarmonic,3*fHarmonic));
3258 fMixedHarmonicProductOfCorrelations->GetYaxis()->SetBinLabel(112,Form("#LT#LT5#GT#GT_{%dn,%dn|%dn,%dn,%dn}",5*fHarmonic,5*fHarmonic,4*fHarmonic,4*fHarmonic,2*fHarmonic));
3259 fMixedHarmonicProductOfCorrelations->GetYaxis()->SetBinLabel(113,Form("#LT#LT5#GT#GT_{%dn,%dn|%dn,%dn,%dn}",5*fHarmonic,5*fHarmonic,5*fHarmonic,3*fHarmonic,2*fHarmonic));
3260 fMixedHarmonicProductOfCorrelations->GetYaxis()->SetBinLabel(114,Form("#LT#LT5#GT#GT_{%dn,%dn|%dn,%dn,%dn}",5*fHarmonic,5*fHarmonic,5*fHarmonic,4*fHarmonic,1*fHarmonic));
3261 fMixedHarmonicProductOfCorrelations->GetYaxis()->SetBinLabel(115,Form("#LT#LT5#GT#GT_{%dn|%dn,%dn,%dn,%dn}",6*fHarmonic,2*fHarmonic,2*fHarmonic,1*fHarmonic,1*fHarmonic));
3262 fMixedHarmonicProductOfCorrelations->GetYaxis()->SetBinLabel(116,Form("#LT#LT5#GT#GT_{%dn|%dn,%dn,%dn,%dn}",6*fHarmonic,3*fHarmonic,1*fHarmonic,1*fHarmonic,1*fHarmonic));
3263 fMixedHarmonicProductOfCorrelations->GetYaxis()->SetBinLabel(117,Form("#LT#LT5#GT#GT_{%dn,%dn,%dn|%dn,%dn}",6*fHarmonic,1*fHarmonic,1*fHarmonic,4*fHarmonic,4*fHarmonic));
3264 fMixedHarmonicProductOfCorrelations->GetYaxis()->SetBinLabel(118,Form("#LT#LT5#GT#GT_{%dn,%dn|%dn,%dn,%dn}",6*fHarmonic,1*fHarmonic,5*fHarmonic,1*fHarmonic,1*fHarmonic));
3265 fMixedHarmonicProductOfCorrelations->GetYaxis()->SetBinLabel(119,Form("#LT#LT5#GT#GT_{%dn,%dn|%dn,%dn,%dn}",6*fHarmonic,2*fHarmonic,4*fHarmonic,2*fHarmonic,2*fHarmonic));
3266 fMixedHarmonicProductOfCorrelations->GetYaxis()->SetBinLabel(120,Form("#LT#LT5#GT#GT_{%dn,%dn|%dn,%dn,%dn}",6*fHarmonic,4*fHarmonic,4*fHarmonic,4*fHarmonic,2*fHarmonic));
3267 fMixedHarmonicProductOfCorrelations->GetYaxis()->SetBinLabel(121,Form("#LT#LT5#GT#GT_{%dn,%dn,%dn|%dn,%dn}",6*fHarmonic,2*fHarmonic,2*fHarmonic,5*fHarmonic,5*fHarmonic));
3268 fMixedHarmonicProductOfCorrelations->GetYaxis()->SetBinLabel(122,Form("#LT#LT5#GT#GT_{%dn,%dn|%dn,%dn,%dn}",6*fHarmonic,5*fHarmonic,5*fHarmonic,5*fHarmonic,1*fHarmonic));
3269 fMixedHarmonicProductOfCorrelations->GetYaxis()->SetBinLabel(123,Form("#LT#LT5#GT#GT_{%dn,%dn|%dn,%dn,%dn}",6*fHarmonic,6*fHarmonic,5*fHarmonic,5*fHarmonic,2*fHarmonic));
3270 fMixedHarmonicProductOfCorrelations->GetYaxis()->SetBinLabel(124,Form("#LT#LT5#GT#GT_{%dn,%dn|%dn,%dn,%dn}",6*fHarmonic,6*fHarmonic,6*fHarmonic,4*fHarmonic,2*fHarmonic));
3271 fMixedHarmonicProductOfCorrelations->GetYaxis()->SetBinLabel(125,Form("#LT#LT5#GT#GT_{%dn,%dn|%dn,%dn,%dn}",6*fHarmonic,6*fHarmonic,6*fHarmonic,5*fHarmonic,1*fHarmonic));
3272 fMixedHarmonicProductOfCorrelations->GetYaxis()->SetBinLabel(126,Form("#LT#LT5#GT#GT_{%dn,%dn|%dn,%dn,%dn}",5*fHarmonic,2*fHarmonic,3*fHarmonic,3*fHarmonic,1*fHarmonic));
3273 fMixedHarmonicProductOfCorrelations->GetYaxis()->SetBinLabel(127,Form("#LT#LT5#GT#GT_{%dn,%dn,%dn|%dn,%dn}",5*fHarmonic,1*fHarmonic,1*fHarmonic,4*fHarmonic,3*fHarmonic));
3274 fMixedHarmonicProductOfCorrelations->GetYaxis()->SetBinLabel(128,Form("#LT#LT5#GT#GT_{%dn,%dn|%dn,%dn,%dn}",5*fHarmonic,3*fHarmonic,4*fHarmonic,2*fHarmonic,2*fHarmonic));
3275 fMixedHarmonicProductOfCorrelations->GetYaxis()->SetBinLabel(129,Form("#LT#LT5#GT#GT_{%dn,%dn,%dn|%dn,%dn}",5*fHarmonic,2*fHarmonic,1*fHarmonic,4*fHarmonic,4*fHarmonic));
3276 fMixedHarmonicProductOfCorrelations->GetYaxis()->SetBinLabel(130,Form("#LT#LT5#GT#GT_{%dn,%dn|%dn,%dn,%dn}",6*fHarmonic,1*fHarmonic,3*fHarmonic,2*fHarmonic,2*fHarmonic));
3277 fMixedHarmonicProductOfCorrelations->GetYaxis()->SetBinLabel(131,Form("#LT#LT5#GT#GT_{%dn,%dn|%dn,%dn,%dn}",6*fHarmonic,3*fHarmonic,4*fHarmonic,4*fHarmonic,1*fHarmonic));
3278 fMixedHarmonicProductOfCorrelations->GetYaxis()->SetBinLabel(132,Form("#LT#LT5#GT#GT_{%dn,%dn,%dn|%dn,%dn}",6*fHarmonic,1*fHarmonic,1*fHarmonic,5*fHarmonic,3*fHarmonic));
3279 fMixedHarmonicProductOfCorrelations->GetYaxis()->SetBinLabel(133,Form("#LT#LT5#GT#GT_{%dn,%dn|%dn,%dn,%dn}",6*fHarmonic,3*fHarmonic,5*fHarmonic,2*fHarmonic,2*fHarmonic));
3280 fMixedHarmonicProductOfCorrelations->GetYaxis()->SetBinLabel(134,Form("#LT#LT5#GT#GT_{%dn,%dn|%dn,%dn,%dn}",6*fHarmonic,5*fHarmonic,4*fHarmonic,4*fHarmonic,3*fHarmonic));
3281 fMixedHarmonicProductOfCorrelations->GetYaxis()->SetBinLabel(135,Form("#LT#LT5#GT#GT_{%dn,%dn,%dn|%dn,%dn}",6*fHarmonic,3*fHarmonic,1*fHarmonic,5*fHarmonic,5*fHarmonic));
3282 fMixedHarmonicProductOfCorrelations->GetYaxis()->SetBinLabel(136,Form("#LT#LT5#GT#GT_{%dn,%dn|%dn,%dn,%dn}",6*fHarmonic,6*fHarmonic,5*fHarmonic,4*fHarmonic,3*fHarmonic));
3283 fMixedHarmonicProductOfCorrelations->GetYaxis()->SetBinLabel(137,Form("#LT#LT5#GT#GT_{%dn,%dn|%dn,%dn,%dn}",6*fHarmonic,2*fHarmonic,4*fHarmonic,3*fHarmonic,1*fHarmonic));
3284 fMixedHarmonicProductOfCorrelations->GetYaxis()->SetBinLabel(138,Form("#LT#LT5#GT#GT_{%dn,%dn,%dn|%dn,%dn}",6*fHarmonic,2*fHarmonic,1*fHarmonic,5*fHarmonic,4*fHarmonic));
3285 fMixedHarmonicProductOfCorrelations->GetYaxis()->SetBinLabel(139,Form("#LT#LT5#GT#GT_{%dn,%dn|%dn,%dn,%dn}",6*fHarmonic,4*fHarmonic,5*fHarmonic,3*fHarmonic,2*fHarmonic));
3286 fMixedHarmonicsErrorPropagation->Add(fMixedHarmonicProductOfCorrelations);
3288 } // end of void AliFlowAnalysisWithQCumulants::BookEverythingForMixedHarmonics()
3290 //=======================================================================================================================
3292 void AliFlowAnalysisWithQCumulants::InitializeArraysForNestedLoops()
3294 // Initialize arrays of all objects relevant for calculations with nested loops.
3297 for(Int_t sc=0;sc<2;sc++) // sin or cos terms
3299 fIntFlowDirectCorrectionTermsForNUA[sc] = NULL;
3302 // differential flow:
3304 for(Int_t t=0;t<2;t++) // type: RP or POI
3306 for(Int_t pe=0;pe<2;pe++) // pt or eta
3308 for(Int_t ci=0;ci<4;ci++) // correlation index
3310 fDiffFlowDirectCorrelations[t][pe][ci] = NULL;
3311 } // end of for(Int_t ci=0;ci<4;ci++) // correlation index
3312 } // end of for(Int_t pe=0;pe<2;pe++) // pt or eta
3313 } // end of for(Int_t t=0;t<2;t++) // type: RP or POI
3314 // correction terms for non-uniform acceptance:
3315 for(Int_t t=0;t<2;t++) // type: RP or POI
3317 for(Int_t pe=0;pe<2;pe++) // pt or eta
3319 for(Int_t sc=0;sc<2;sc++) // sin or cos terms
3321 for(Int_t cti=0;cti<9;cti++) // correction term index
3323 fDiffFlowDirectCorrectionTermsForNUA[t][pe][sc][cti] = NULL;
3326 } // end of for(Int_t pe=0;pe<2;pe++) // pt or eta
3327 } // end of for(Int_t t=0;t<2;t++) // type: RP or POI
3329 // other differential correlators:
3330 for(Int_t t=0;t<2;t++) // type: RP or POI
3332 for(Int_t pe=0;pe<2;pe++) // pt or eta
3334 for(Int_t sc=0;sc<2;sc++) // sin or cos terms
3336 for(Int_t ci=0;ci<1;ci++) // correlator index
3338 fOtherDirectDiffCorrelators[t][pe][sc][ci] = NULL;
3341 } // end of for(Int_t pe=0;pe<2;pe++) // pt or eta
3342 } // end of for(Int_t t=0;t<2;t++) // type: RP or POI
3344 } // end of void AliFlowAnalysisWithQCumulants::InitializeArraysForNestedLoops()
3346 //=======================================================================================================================
3348 void AliFlowAnalysisWithQCumulants::InitializeArraysForMixedHarmonics()
3350 // Initialize arrays of all objects relevant for mixed harmonics.
3352 for(Int_t power=0;power<2;power++) // linear or quadratic
3354 fMixedHarmonicEventWeights[power] = NULL;
3357 } // end of void AliFlowAnalysisWithQCumulants::InitializeArraysForMixedHarmonics()
3359 //=======================================================================================================================
3361 void AliFlowAnalysisWithQCumulants::InitializeArraysForControlHistograms()
3363 // Initialize arrays of all objects relevant for control histograms.
3365 for(Int_t ci=0;ci<4;ci++) // correlation index
3367 fCorrelation2468VsMult[ci] = NULL;
3370 } // end of void AliFlowAnalysisWithQCumulants::InitializeArraysForControlHistograms()
3372 //=======================================================================================================================
3374 void AliFlowAnalysisWithQCumulants::BookEverythingForNestedLoops()
3376 // Book all objects relevant for calculations with nested loops.
3378 TString sinCosFlag[2] = {"sin","cos"}; // to be improved (should I promote this to data members?)
3379 TString typeFlag[2] = {"RP","POI"}; // to be improved (should I promote this to data members?)
3380 TString ptEtaFlag[2] = {"p_{T}","#eta"}; // to be improved (should I promote this to data members?)
3381 TString reducedCorrelationIndex[4] = {"<2'>","<4'>","<6'>","<8'>"}; // to be improved (should I promote this to data members?)
3382 Double_t lowerPtEtaEdge[2] = {fPtMin+(fCrossCheckInPtBinNo-1)*fPtBinWidth,fEtaMin+(fCrossCheckInEtaBinNo-1)*fEtaBinWidth};
3383 Double_t upperPtEtaEdge[2] = {fPtMin+fCrossCheckInPtBinNo*fPtBinWidth,fEtaMin+fCrossCheckInEtaBinNo*fEtaBinWidth};
3385 TString evaluateNestedLoopsName = "fEvaluateNestedLoops";
3386 evaluateNestedLoopsName += fAnalysisLabel->Data();
3387 fEvaluateNestedLoops = new TProfile(evaluateNestedLoopsName.Data(),"Flags for nested loops",4,0,4);
3388 fEvaluateNestedLoops->SetLabelSize(0.03);
3389 fEvaluateNestedLoops->SetStats(kFALSE);
3390 (fEvaluateNestedLoops->GetXaxis())->SetBinLabel(1,"fEvaluateIntFlowNestedLoops");
3391 (fEvaluateNestedLoops->GetXaxis())->SetBinLabel(2,"fEvaluateDiffFlowNestedLoops");
3392 (fEvaluateNestedLoops->GetXaxis())->SetBinLabel(3,"fCrossCheckInPtBinNo");
3393 (fEvaluateNestedLoops->GetXaxis())->SetBinLabel(4,"fCrossCheckInEtaBinNo");
3394 fEvaluateNestedLoops->Fill(0.5,(Int_t)fEvaluateIntFlowNestedLoops);
3395 fEvaluateNestedLoops->Fill(1.5,(Int_t)fEvaluateDiffFlowNestedLoops);
3396 fEvaluateNestedLoops->Fill(2.5,fCrossCheckInPtBinNo);
3397 fEvaluateNestedLoops->Fill(3.5,fCrossCheckInEtaBinNo);
3398 fNestedLoopsList->Add(fEvaluateNestedLoops);
3399 // nested loops for integrated flow:
3400 if(fEvaluateIntFlowNestedLoops)
3403 TString intFlowDirectCorrelationsName = "fIntFlowDirectCorrelations";
3404 intFlowDirectCorrelationsName += fAnalysisLabel->Data();
3405 fIntFlowDirectCorrelations = new TProfile(intFlowDirectCorrelationsName.Data(),"Multiparticle correlations calculated with nested loops (for int. flow)",64,0,64,"s");
3406 fNestedLoopsList->Add(fIntFlowDirectCorrelations);
3407 if(fUsePhiWeights||fUsePtWeights||fUseEtaWeights||fUseTrackWeights)
3409 TString intFlowExtraDirectCorrelationsName = "fIntFlowExtraDirectCorrelations";
3410 intFlowExtraDirectCorrelationsName += fAnalysisLabel->Data();
3411 fIntFlowExtraDirectCorrelations = new TProfile(intFlowExtraDirectCorrelationsName.Data(),"Extra multiparticle correlations calculated with nested loops (for int. flow)",100,0,100,"s");
3412 fNestedLoopsList->Add(fIntFlowExtraDirectCorrelations);
3413 } // end of if(fUsePhiWeights||fUsePtWeights||fUseEtaWeights||fUseTrackWeights)
3414 // correction terms for non-uniform acceptance:
3415 for(Int_t sc=0;sc<2;sc++) // sin or cos terms
3417 TString intFlowDirectCorrectionTermsForNUAName = "fIntFlowDirectCorrectionTermsForNUA";
3418 intFlowDirectCorrectionTermsForNUAName += fAnalysisLabel->Data();
3419 fIntFlowDirectCorrectionTermsForNUA[sc] = new TProfile(Form("%s: %s terms",intFlowDirectCorrectionTermsForNUAName.Data(),sinCosFlag[sc].Data()),Form("Correction terms for non-uniform acceptance (%s terms)",sinCosFlag[sc].Data()),10,0,10,"s");
3420 fNestedLoopsList->Add(fIntFlowDirectCorrectionTermsForNUA[sc]);
3421 } // end of for(Int_t sc=0;sc<2;sc++)
3423 if(fCalculateMixedHarmonics)
3425 TString mixedHarmonicsNestedLoopsName = "fMixedHarmonicsNestedLoops";
3426 mixedHarmonicsNestedLoopsName += fAnalysisLabel->Data();
3427 fMixedHarmonicsNestedLoops = new TProfile(mixedHarmonicsNestedLoopsName.Data(),"Mixed harmonics calculated with nested loops",200,0,200); // TBI hardwired 200
3428 fNestedLoopsList->Add(fMixedHarmonicsNestedLoops);
3429 } // end of if(fCalculateMixedHarmonics)
3430 } // end of if(fEvaluateIntFlowNestedLoops)
3432 // nested loops for differential flow:
3433 if(fEvaluateDiffFlowNestedLoops)
3435 // reduced correlations:
3436 TString diffFlowDirectCorrelationsName = "fDiffFlowDirectCorrelations";
3437 diffFlowDirectCorrelationsName += fAnalysisLabel->Data();
3438 for(Int_t t=0;t<2;t++) // type: RP or POI
3440 for(Int_t pe=0;pe<1+(Int_t)fCalculateDiffFlowVsEta;pe++) // pt or eta
3442 for(Int_t rci=0;rci<4;rci++) // reduced correlation index
3444 // reduced correlations:
3445 fDiffFlowDirectCorrelations[t][pe][rci] = new TProfile(Form("%s, %s, %s, %s",diffFlowDirectCorrelationsName.Data(),typeFlag[t].Data(),ptEtaFlag[pe].Data(),reducedCorrelationIndex[rci].Data()),Form("%s, %s, %s, %s",diffFlowDirectCorrelationsName.Data(),typeFlag[t].Data(),ptEtaFlag[pe].Data(),reducedCorrelationIndex[rci].Data()),1,lowerPtEtaEdge[pe],upperPtEtaEdge[pe],"s");
3446 fDiffFlowDirectCorrelations[t][pe][rci]->SetXTitle(ptEtaFlag[pe].Data());
3447 fNestedLoopsList->Add(fDiffFlowDirectCorrelations[t][pe][rci]); // to be improved (add dedicated list to hold reduced correlations)
3448 } // end of for(Int_t rci=0;rci<4;rci++) // correlation index
3449 } // end of for(Int_t pe=0;pe<2;pe++) // pt or eta
3450 } // end of for(Int_t t=0;t<2;t++) // type: RP or POI
3452 // correction terms for non-uniform acceptance:
3453 TString diffFlowDirectCorrectionTermsForNUAName = "fDiffFlowDirectCorrectionTermsForNUA";
3454 diffFlowDirectCorrectionTermsForNUAName += fAnalysisLabel->Data();
3455 for(Int_t t=0;t<2;t++) // typeFlag (0 = RP, 1 = POI)
3457 for(Int_t pe=0;pe<1+(Int_t)fCalculateDiffFlowVsEta;pe++) // pt or eta
3459 for(Int_t sc=0;sc<2;sc++) // sin or cos
3461 for(Int_t cti=0;cti<9;cti++) // correction term index
3463 fDiffFlowDirectCorrectionTermsForNUA[t][pe][sc][cti] = new TProfile(Form("%s, %s, %s, %s, cti = %d",diffFlowDirectCorrectionTermsForNUAName.Data(),typeFlag[t].Data(),ptEtaFlag[pe].Data(),sinCosFlag[sc].Data(),cti+1),Form("%s, %s, %s, %s, cti = %d",diffFlowDirectCorrectionTermsForNUAName.Data(),typeFlag[t].Data(),ptEtaFlag[pe].Data(),sinCosFlag[sc].Data(),cti+1),1,lowerPtEtaEdge[pe],upperPtEtaEdge[pe],"s");
3464 fNestedLoopsList->Add(fDiffFlowDirectCorrectionTermsForNUA[t][pe][sc][cti]);
3469 // other differential correlators:
3470 TString otherDirectDiffCorrelatorsName = "fOtherDirectDiffCorrelators";
3471 otherDirectDiffCorrelatorsName += fAnalysisLabel->Data();
3472 for(Int_t t=0;t<2;t++) // typeFlag (0 = RP, 1 = POI)
3474 for(Int_t pe=0;pe<1+(Int_t)fCalculateDiffFlowVsEta;pe++) // pt or eta
3476 for(Int_t sc=0;sc<2;sc++) // sin or cos
3478 for(Int_t ci=0;ci<1;ci++) // correlator index
3480 fOtherDirectDiffCorrelators[t][pe][sc][ci] = new TProfile(Form("%s, %s, %s, %s, ci = %d",otherDirectDiffCorrelatorsName.Data(),typeFlag[t].Data(),ptEtaFlag[pe].Data(),sinCosFlag[sc].Data(),ci+1),Form("%s, %s, %s, %s, ci = %d",otherDirectDiffCorrelatorsName.Data(),typeFlag[t].Data(),ptEtaFlag[pe].Data(),sinCosFlag[sc].Data(),ci+1),1,lowerPtEtaEdge[pe],upperPtEtaEdge[pe]);
3481 fNestedLoopsList->Add(fOtherDirectDiffCorrelators[t][pe][sc][ci]);
3486 // number of RPs and POIs in selected pt and eta bins for cross-checkings:
3487 TString noOfParticlesInBinName = "fNoOfParticlesInBin";
3488 fNoOfParticlesInBin = new TH1D(noOfParticlesInBinName.Data(),"Number of RPs and POIs in selected p_{T} and #eta bin",4,0,4);
3489 fNoOfParticlesInBin->GetXaxis()->SetBinLabel(1,"# of RPs in p_{T} bin");
3490 fNoOfParticlesInBin->GetXaxis()->SetBinLabel(2,"# of RPs in #eta bin");
3491 fNoOfParticlesInBin->GetXaxis()->SetBinLabel(3,"# of POIs in p_{T} bin");
3492 fNoOfParticlesInBin->GetXaxis()->SetBinLabel(4,"# of POIs in #eta bin");
3493 fNestedLoopsList->Add(fNoOfParticlesInBin);
3494 } // end of if(fEvaluateDiffFlowNestedLoops)
3496 } // end of AliFlowAnalysisWithQCumulants::BookEverythingForNestedLoops()
3498 //=========================================================================================================
3500 void AliFlowAnalysisWithQCumulants::CalculateIntFlowCorrelations()
3502 // Calculate in this method all multiparticle azimuthal correlations.
3504 // Remark 1: All multiparticle correlations are stored in TProfile fIntFlowCorrelationsAllPro;
3505 // Remark 2: There is a special TProfile fIntFlowCorrelationsPro holding results
3506 // only for same harmonic's correlations <<2>>, <<4>>, <<6>> and <<8>>;
3507 // Remark 3: Binning of fIntFlowCorrelationsAllPro is organized as follows:
3508 // --------------------------------------------------------------------------------------------------------------------
3509 // 1st bin: <2>_{1n|1n} = two1n1n = cos(1n(phi1-phi2))>
3510 // 2nd bin: <2>_{2n|2n} = two2n2n = cos(2n(phi1-phi2))>
3511 // 3rd bin: <2>_{3n|3n} = two3n3n = cos(3n(phi1-phi2))>
3512 // 4th bin: <2>_{4n|4n} = two4n4n = cos(4n(phi1-phi2))>
3513 // 5th bin: ---- EMPTY ----
3514 // 6th bin: <3>_{2n|1n,1n} = three2n1n1n = <cos(n(2*phi1-phi2-phi3))>
3515 // 7th bin: <3>_{3n|2n,1n} = three3n2n1n = <cos(n(3*phi1-2*phi2-phi3))>
3516 // 8th bin: <3>_{4n|2n,2n} = three4n2n2n = <cos(n(4*phi1-2*phi2-2*phi3))>
3517 // 9th bin: <3>_{4n|3n,1n} = three4n3n1n = <cos(n(4*phi1-3*phi2-phi3))>
3518 // 10th bin: ---- EMPTY ----
3519 // 11th bin: <4>_{1n,1n|1n,1n} = four1n1n1n1n = <cos(n(phi1+phi2-phi3-phi4))>
3520 // 12th bin: <4>_{2n,1n|2n,1n} = four2n1n2n1n = <cos(n(2*phi1+phi2-2*phi3-phi4))>
3521 // 13th bin: <4>_{2n,2n|2n,2n} = four2n2n2n2n = <cos(2n(phi1+phi2-phi3-phi4))>
3522 // 14th bin: <4>_{3n|1n,1n,1n} = four3n1n1n1n = <cos(n(3*phi1-phi2-phi3-phi4))>
3523 // 15th bin: <4>_{3n,1n|3n,1n} = four3n1n3n1n = <cos(n(3*phi1+phi2-3*phi3-phi4))>
3524 // 16th bin: <4>_{3n,1n|2n,2n} = four3n1n2n2n = <cos(n(3*phi1+phi2-2*phi3-2*phi4))>
3525 // 17th bin: <4>_{4n|2n,1n,1n} = four4n2n1n1n = <cos(n(4*phi1-2*phi2-phi3-phi4))>
3526 // 18th bin: ---- EMPTY ----
3527 // 19th bin: <5>_{2n,1n|1n,1n,1n} = five2n1n1n1n1n = <cos(n(2*phi1+phi2-phi3-phi4-phi5))>
3528 // 20th bin: <5>_{2n,2n|2n,1n,1n} = five2n2n2n1n1n = <cos(n(2*phi1+2*phi2-2*phi3-phi4-phi5))>
3529 // 21st bin: <5>_{3n,1n|2n,1n,1n} = five3n1n2n1n1n = <cos(n(3*phi1+phi2-2*phi3-phi4-phi5))>
3530 // 22nd bin: <5>_{4n|1n,1n,1n,1n} = five4n1n1n1n1n = <cos(n(4*phi1-phi2-phi3-phi4-phi5))>
3531 // 23rd bin: ---- EMPTY ----
3532 // 24th bin: <6>_{1n,1n,1n|1n,1n,1n} = six1n1n1n1n1n1n = <cos(n(phi1+phi2+phi3-phi4-phi5-phi6))>
3533 // 25th bin: <6>_{2n,1n,1n|2n,1n,1n} = six2n1n1n2n1n1n = <cos(n(2*phi1+phi2+phi3-2*phi4-phi5-phi6))>
3534 // 26th bin: <6>_{2n,2n|1n,1n,1n,1n} = six2n2n1n1n1n1n = <cos(n(2*phi1+2*phi2-phi3-phi4-phi5-phi6))>
3535 // 27th bin: <6>_{3n,1n|1n,1n,1n,1n} = six3n1n1n1n1n1n = <cos(n(3*phi1+phi2-phi3-phi4-phi5-phi6))>
3536 // 28th bin: ---- EMPTY ----
3537 // 29th bin: <7>_{2n,1n,1n|1n,1n,1n,1n} = seven2n1n1n1n1n1n1n = <cos(n(2*phi1+phi2+phi3-phi4-phi5-phi6-phi7))>
3538 // 30th bin: ---- EMPTY ----
3539 // 31st bin: <8>_{1n,1n,1n,1n|1n,1n,1n,1n} = eight1n1n1n1n1n1n1n1n = <cos(n(phi1+phi2+phi3+phi4-phi5-phi6-phi7-phi8))>
3540 // 32nd bin: ---- EMPTY ----
3541 // Extra correlations for v3{5} study:
3542 // 33rd bin: <4>_{4n,2n|3n,3n} = four4n2n3n3n = <cos(n(4*phi1+2*phi2-3*phi3-3*phi4))>
3543 // 34th bin: <5>_{3n,3n|2n,2n,2n} = five3n3n2n2n2n = <cos(n(3*phi1+3*phi2-2*phi3-2*phi4-2*phi5))>
3544 // Extra correlations for Teaney-Yan study:
3545 // 35th bin: <2>_{5n|5n} = two5n5n = <cos(5n(phi1-phi2)>
3546 // 36th bin: <2>_{6n|6n} = two6n6n = <cos(6n(phi1-phi2)>
3547 // 37th bin: <3>_{5n|3n,2n} = three5n3n2n = <cos(n(5*phi1-3*phi2-2*phi3)>
3548 // 38th bin: <3>_{5n|4n,1n} = three5n4n1n = <cos(n(5*phi1-4*phi2-1*phi3)>
3549 // 39th bin: <3>_{6n|3n,3n} = three6n3n3n = <cos(n(6*phi1-3*phi2-3*phi3)>
3550 // 40th bin: <3>_{6n|4n,2n} = three6n4n2n = <cos(n(6*phi1-4*phi2-2*phi3)>
3551 // 41st bin: <3>_{6n|5n,1n} = three6n5n1n = <cos(n(6*phi1-5*phi2-1*phi3)>
3552 // 42nd bin: <4>_{6n|3n,2n,1n} = four6n3n2n1n = <cos(n(6*phi1-3*phi2-2*phi3-1*phi4)>
3553 // 43rd bin: <4>_{3n,2n|3n,2n} = four3n2n3n2n = <cos(n(3*phi1+2*phi2-3*phi3-2*phi4)>
3554 // 44th bin: <4>_{4n,1n|3n,2n} = four4n1n3n2n = <cos(n(4*phi1+1*phi2-3*phi3-2*phi4)>
3555 // 45th bin: <4>_{3n,3n|3n,3n} = four3n3n3n3n = <cos(3n*(phi1+phi2-phi3-phi4))>
3556 // 46th bin: <4>_{4n,2n|3n,3n} = four4n2n3n3n = <cos(n(4*phi1+2*phi2-3*phi3-3*phi4)>
3557 // 47th bin: <4>_{5n,1n|3n,3n} = four5n1n3n3n = <cos(n(5*phi1+1*phi2-3*phi3-3*phi4)>
3558 // 48th bin: <4>_{4n,2n|4n,2n} = four4n2n4n2n = <cos(n(4*phi1+2*phi2-4*phi3-2*phi4)>
3559 // 49th bin: <4>_{5n,1n|4n,2n} = four5n1n4n2n = <cos(n(5*phi1+1*phi2-4*phi3-2*phi4)>
3560 // 50th bin: <4>_{5n|3n,1n,1n} = four5n3n1n1n = <cos(n(5*phi1-3*phi2-1*phi3-1*phi4)>
3561 // 51st bin: <4>_{5n|2n,2n,1n} = four5n2n2n1n = <cos(n(5*phi1-2*phi2-2*phi3-1*phi4)>
3562 // 52nd bin: <4>_{5n,1n|5n,1n} = four5n1n5n1n = <cos(n(5*phi1+1*phi2-5*phi3-1*phi4)>
3563 // 53rd bin: <5>_{3n,3n|3n,2n,1n} = five3n3n3n2n1n = <cos(n(3*phi1+3*phi2-3*phi3-2*phi4-1*phi5)>
3564 // 54th bin: <5>_{4n,2n|3n,2n,1n} = five4n2n3n2n1n = <cos(n(4*phi1+2*phi2-3*phi3-2*phi4-1*phi5)>
3565 // 55th bin: <5>_{3n,2n|3n,1n,1n} = five3n2n3n1n1n = <cos(n(3*phi1+2*phi2-3*phi3-1*phi4-1*phi5)>
3566 // 56th bin: <5>_{3n,2n|2n,2n,1n} = five3n2n2n2n1n = <cos(n(3*phi1+2*phi2-2*phi3-2*phi4-1*phi5)>
3567 // 57th bin: <5>_{5n,1n|3n,2n,1n} = five5n1n3n2n1n = <cos(n(5*phi1+1*phi2-3*phi3-2*phi4-1*phi5)>
3568 // 58th bin: <6>_{3n,2n,1n|3n,2n,1n} = six3n2n1n3n2n1n = <cos(n(3*phi1+2*phi2+1*phi3-3*phi4-2*phi5-1*phi6)>
3569 // Extra correlations for Teaney-Yan study (B):
3570 // 59th bin: <4>_{6n|4n,1n,1n} = four6n4n1n1n = <cos(n(6*phi1-4*phi2-1*phi3-1*phi4)>
3571 // 60th bin: <4>_{6n|2n,2n,2n} = four6n2n2n2n = <cos(n(6*phi1-2*phi2-2*phi3-2*phi4)>
3572 // 61st bin: <5>_{6n|2n,2n,1n,1n} = five6n2n2n1n1n = <cos(n(6*phi1-2*phi2-2*phi3-1*phi4-1*phi5)>
3573 // 62nd bin: <5>_{4n,1n,1n|3n,3n} = five4n1n1n3n3n = <cos(n(4*phi1+1*phi2+1*phi3-3*phi4-3*phi5)>
3574 // 63rd bin: <6>_{3n,3n|2n,2n,1n,1n} = six3n3n2n2n1n1n = <cos(n(3*phi1+3*phi2-2*phi3-2*phi4-1*phi5-1*phi6)>
3575 // --------------------------------------------------------------------------------------------------------------------
3577 // Multiplicity of an event:
3578 Double_t dMult = (*fSpk)(0,0);
3579 // Real parts of non-weighted Q-vectors evaluated in harmonics n, 2n, 3n, 4n, 5n and 6n:
3580 Double_t dReQ1n = (*fReQ)(0,0);
3581 Double_t dReQ2n = (*fReQ)(1,0);
3582 Double_t dReQ3n = (*fReQ)(2,0);
3583 Double_t dReQ4n = (*fReQ)(3,0);
3584 Double_t dReQ5n = (*fReQ)(4,0);
3585 Double_t dReQ6n = (*fReQ)(5,0);
3586 // Imaginary parts of non-weighted Q-vectors evaluated in harmonics n, 2n, 3n, 4n, 5n and 6n:
3587 Double_t dImQ1n = (*fImQ)(0,0);
3588 Double_t dImQ2n = (*fImQ)(1,0);
3589 Double_t dImQ3n = (*fImQ)(2,0);
3590 Double_t dImQ4n = (*fImQ)(3,0);
3591 Double_t dImQ5n = (*fImQ)(4,0);
3592 Double_t dImQ6n = (*fImQ)(5,0);
3594 // Multiplicity bin of an event (relevant for all histos vs M):
3595 Double_t dMultiplicityBin = 0.;
3596 if(fMultiplicityIs==AliFlowCommonConstants::kRP)
3598 dMultiplicityBin = fNumberOfRPsEBE+0.5;
3599 } else if(fMultiplicityIs==AliFlowCommonConstants::kExternal)
3601 dMultiplicityBin = fReferenceMultiplicityEBE+0.5;
3602 } else if(fMultiplicityIs==AliFlowCommonConstants::kPOI)
3604 dMultiplicityBin = fNumberOfPOIsEBE+0.5;
3607 // Real parts of expressions involving various combinations of Q-vectors which appears
3608 // simultaneously in several equations for multiparticle correlations bellow:
3609 // Re[Q_{2n}Q_{n}^*Q_{n}^*]
3610 Double_t reQ2nQ1nstarQ1nstar = pow(dReQ1n,2.)*dReQ2n+2.*dReQ1n*dImQ1n*dImQ2n-pow(dImQ1n,2.)*dReQ2n;
3611 // Re[Q_{6n}Q_{3n}^*Q_{3n}^*]
3612 Double_t reQ6nQ3nstarQ3nstar = pow(dReQ3n,2.)*dReQ6n+2.*dReQ3n*dImQ3n*dImQ6n-pow(dImQ3n,2.)*dReQ6n;
3613 // Re[Q_{4n}Q_{2n}^*Q_{2n}^*]
3614 Double_t reQ4nQ2nstarQ2nstar = pow(dReQ2n,2.)*dReQ4n+2.*dReQ2n*dImQ2n*dImQ4n-pow(dImQ2n,2.)*dReQ4n;
3615 // Re[Q_{4n}Q_{3n}^*Q_{n}^*]
3616 Double_t reQ4nQ3nstarQ1nstar = dReQ4n*(dReQ3n*dReQ1n-dImQ3n*dImQ1n)+dImQ4n*(dReQ3n*dImQ1n+dImQ3n*dReQ1n);
3617 // Re[Q_{3n}Q_{2n}^*Q_{n}^*]
3618 Double_t reQ3nQ2nstarQ1nstar = dReQ3n*dReQ2n*dReQ1n-dReQ3n*dImQ2n*dImQ1n+dImQ3n*dReQ2n*dImQ1n
3619 + dImQ3n*dImQ2n*dReQ1n;
3620 // Re[Q_{5n}Q_{3n}^*Q_{2n}^*]
3621 Double_t reQ5nQ3nstarQ2nstar = dReQ5n*dReQ2n*dReQ3n-dReQ5n*dImQ2n*dImQ3n+dImQ5n*dReQ2n*dImQ3n
3622 + dImQ5n*dImQ2n*dReQ3n;
3623 // Re[Q_{5n}Q_{4n}^*Q_{1n}^*]
3624 Double_t reQ5nQ4nstarQ1nstar = dReQ5n*dReQ4n*dReQ1n-dReQ5n*dImQ4n*dImQ1n+dImQ5n*dReQ4n*dImQ1n
3625 + dImQ5n*dImQ4n*dReQ1n;
3626 // Re[Q_{6n}Q_{5n}^*Q_{1n}^*]
3627 Double_t reQ6nQ5nstarQ1nstar = dReQ6n*dReQ5n*dReQ1n-dReQ6n*dImQ5n*dImQ1n+dImQ6n*dReQ5n*dImQ1n
3628 + dImQ6n*dImQ5n*dReQ1n;
3629 // Re[Q_{6n}Q_{4n}^*Q_{2n}^*]
3630 Double_t reQ6nQ4nstarQ2nstar = dReQ6n*dReQ4n*dReQ2n-dReQ6n*dImQ4n*dImQ2n+dImQ6n*dReQ4n*dImQ2n
3631 + dImQ6n*dImQ4n*dReQ2n;
3632 // Re[Q_{3n}Q_{n}Q_{2n}^*Q_{2n}^*]
3633 Double_t reQ3nQ1nQ2nstarQ2nstar = (pow(dReQ2n,2.)-pow(dImQ2n,2.))*(dReQ3n*dReQ1n-dImQ3n*dImQ1n)
3634 + 2.*dReQ2n*dImQ2n*(dReQ3n*dImQ1n+dImQ3n*dReQ1n);
3635 // Re[Q_{3n}Q_{n}^*Q_{n}^*Q_{n}^*]
3636 Double_t reQ3nQ1nstarQ1nstarQ1nstar = dReQ3n*pow(dReQ1n,3)-3.*dReQ1n*dReQ3n*pow(dImQ1n,2)
3637 + 3.*dImQ1n*dImQ3n*pow(dReQ1n,2)-dImQ3n*pow(dImQ1n,3);
3638 // Re[Q_{6n}Q_{2n}^*Q_{2n}^*Q_{2n}^*]
3639 Double_t reQ6nQ2nstarQ2nstarQ2nstar = dReQ6n*pow(dReQ2n,3)-3.*dReQ2n*dReQ6n*pow(dImQ2n,2)
3640 + 3.*dImQ2n*dImQ6n*pow(dReQ2n,2)-dImQ6n*pow(dImQ2n,3);
3641 // Re[Q_{4n}Q_{2n}^*Q_{n}^*Q_{n}^*]
3642 Double_t reQ4nQ2nstarQ1nstarQ1nstar = (dReQ4n*dReQ2n+dImQ4n*dImQ2n)*(pow(dReQ1n,2)-pow(dImQ1n,2))
3643 + 2.*dReQ1n*dImQ1n*(dImQ4n*dReQ2n-dReQ4n*dImQ2n);
3644 // Re[Q_{4n}Q_{2n}^*Q_{3n}^*Q_{3n}^*]
3645 Double_t reQ4nQ2nQ3nstarQ3nstar = (dReQ4n*dReQ2n-dImQ4n*dImQ2n)*(dReQ3n*dReQ3n-dImQ3n*dImQ3n)
3646 + 2.*(dReQ4n*dImQ2n+dImQ4n*dReQ2n)*dReQ3n*dImQ3n;
3647 // Re[Q_{4n}Q_{n}Q_{3n}^*Q_{2n}^*]
3648 Double_t reQ4nQ1nQ3nstarQ2nstar = dImQ1n*dImQ2n*dImQ3n*dImQ4n+dImQ3n*dImQ4n*dReQ1n*dReQ2n
3649 + dImQ2n*dImQ4n*dReQ1n*dReQ3n-dImQ1n*dImQ4n*dReQ2n*dReQ3n
3650 - dImQ2n*dImQ3n*dReQ1n*dReQ4n+dImQ1n*dImQ3n*dReQ2n*dReQ4n
3651 + dImQ1n*dImQ2n*dReQ3n*dReQ4n+dReQ1n*dReQ2n*dReQ3n*dReQ4n;
3652 // Re[Q_{5n}Q_{n}Q_{4n}^*Q_{2n}^*]
3653 Double_t reQ5nQ1nQ4nstarQ2nstar = dImQ1n*dImQ2n*dImQ4n*dImQ5n+dImQ4n*dImQ5n*dReQ1n*dReQ2n
3654 + dImQ2n*dImQ5n*dReQ1n*dReQ4n-dImQ1n*dImQ5n*dReQ2n*dReQ4n
3655 - dImQ2n*dImQ4n*dReQ1n*dReQ5n+dImQ1n*dImQ4n*dReQ2n*dReQ5n
3656 + dImQ1n*dImQ2n*dReQ4n*dReQ5n+dReQ1n*dReQ2n*dReQ4n*dReQ5n;
3657 // Re[Q_{5n}Q_{n}Q_{3n}^*Q_{3n}^*]
3658 Double_t reQ5nQ1nQ3nstarQ3nstar = dImQ1n*pow(dImQ3n,2.)*dImQ5n+2.*dImQ3n*dImQ5n*dReQ1n*dReQ3n
3659 - dImQ1n*dImQ5n*pow(dReQ3n,2.)-pow(dImQ3n,2.)*dReQ1n*dReQ5n
3660 + 2.*dImQ1n*dImQ3n*dReQ3n*dReQ5n+dReQ1n*pow(dReQ3n,2.)*dReQ5n;
3661 // Re[Q_{5n}Q_{3n}^*Q_{n}^*Q_{n}^*]
3662 Double_t reQ5nQ3nstarQ1nstarQ1nstar = -pow(dImQ1n,2.)*dImQ3n*dImQ5n+dImQ3n*dImQ5n*pow(dReQ1n,2.)
3663 + 2.*dImQ1n*dImQ5n*dReQ1n*dReQ3n-2.*dImQ1n*dImQ3n*dReQ1n*dReQ5n
3664 - pow(dImQ1n,2.)*dReQ3n*dReQ5n+pow(dReQ1n,2.)*dReQ3n*dReQ5n;
3665 // Re[Q_{5n}Q_{2n}^*Q_{2n}^*Q_{n}^*]
3666 Double_t reQ5nQ2nstarQ2nstarQ1nstar = -pow(dImQ2n,2.)*dImQ1n*dImQ5n+dImQ1n*dImQ5n*pow(dReQ2n,2.)
3667 + 2.*dImQ2n*dImQ5n*dReQ2n*dReQ1n-2.*dImQ2n*dImQ1n*dReQ2n*dReQ5n
3668 - pow(dImQ2n,2.)*dReQ1n*dReQ5n+pow(dReQ2n,2.)*dReQ1n*dReQ5n;
3669 // Re[Q_{6n}Q_{4n}^*Q_{n}^*Q_{n}^*]
3670 Double_t reQ6nQ4nstarQ1nstarQ1nstar = -pow(dImQ1n,2.)*dImQ4n*dImQ6n+dImQ4n*dImQ6n*pow(dReQ1n,2.)
3671 + 2.*dImQ1n*dImQ6n*dReQ1n*dReQ4n-2.*dImQ1n*dImQ4n*dReQ1n*dReQ6n
3672 - pow(dImQ1n,2.)*dReQ4n*dReQ6n+pow(dReQ1n,2.)*dReQ4n*dReQ6n;
3673 // |Q_{2n}|^2 |Q_{n}|^2
3674 Double_t dQ2nQ1nQ2nstarQ1nstar = (pow(dReQ2n,2.)+pow(dImQ2n,2.))*(pow(dReQ1n,2.)+pow(dImQ1n,2.));
3675 // |Q_{4n}|^2 |Q_{2n}|^2
3676 Double_t dQ4nQ2nQ4nstarQ2nstar = (pow(dReQ4n,2.)+pow(dImQ4n,2.))*(pow(dReQ2n,2.)+pow(dImQ2n,2.));
3677 // |Q_{3n}|^2 |Q_{2n}|^2
3678 Double_t dQ3nQ2nQ3nstarQ2nstar = (pow(dReQ2n,2.)+pow(dImQ2n,2.))*(pow(dReQ3n,2.)+pow(dImQ3n,2.));
3679 // |Q_{5n}|^2 |Q_{n}|^2
3680 Double_t dQ5nQ1nQ5nstarQ1nstar = (pow(dReQ5n,2.)+pow(dImQ5n,2.))*(pow(dReQ1n,2.)+pow(dImQ1n,2.));
3681 // |Q_{3n}|^2 |Q_{n}|^2
3682 Double_t dQ3nQ1nQ3nstarQ1nstar = (pow(dReQ3n,2.)+pow(dImQ3n,2.))*(pow(dReQ1n,2.)+pow(dImQ1n,2.));
3683 // Re[Q_{2n}Q_{n}Q_{n}^*Q_{n}^*Q_{n}^*]
3684 Double_t reQ2nQ1nQ1nstarQ1nstarQ1nstar = (dReQ2n*dReQ1n-dImQ2n*dImQ1n)*(pow(dReQ1n,3)-3.*dReQ1n*pow(dImQ1n,2))
3685 + (dReQ2n*dImQ1n+dReQ1n*dImQ2n)*(3.*dImQ1n*pow(dReQ1n,2)-pow(dImQ1n,3));
3686 // Re[Q_{2n}Q_{2n}Q_{2n}^*Q_{n}^*Q_{n}^*]
3687 Double_t reQ2nQ2nQ2nstarQ1nstarQ1nstar = (pow(dReQ2n,2.)+pow(dImQ2n,2.))
3688 * (dReQ2n*(pow(dReQ1n,2.)-pow(dImQ1n,2.)) + 2.*dImQ2n*dReQ1n*dImQ1n);
3689 // Re[Q_{4n}Q_{n}^*Q_{n}^*Q_{n}^*Q_{n}^*]
3690 Double_t reQ4nQ1nstarQ1nstarQ1nstarQ1nstar = pow(dReQ1n,4.)*dReQ4n-6.*pow(dReQ1n,2.)*dReQ4n*pow(dImQ1n,2.)
3691 + pow(dImQ1n,4.)*dReQ4n+4.*pow(dReQ1n,3.)*dImQ1n*dImQ4n
3692 - 4.*pow(dImQ1n,3.)*dReQ1n*dImQ4n;
3693 // Re[Q_{3n}Q_{n}Q_{2n}^*Q_{n}^*Q_{n}^*]
3694 Double_t reQ3nQ1nQ2nstarQ1nstarQ1nstar = (pow(dReQ1n,2.)+pow(dImQ1n,2.))
3695 * (dReQ1n*dReQ2n*dReQ3n-dReQ3n*dImQ1n*dImQ2n
3696 + dReQ2n*dImQ1n*dImQ3n+dReQ1n*dImQ2n*dImQ3n);
3697 // Re[Q_{6n}Q_{n}Q_{3n}^*Q_{2n}^*Q_{n}^*]
3698 Double_t reQ6nQ3nstarQ2nstarQ1nstar = dReQ1n*dReQ2n*dReQ3n*dReQ6n-dReQ3n*dReQ6n*dImQ1n*dImQ2n
3699 - dReQ2n*dReQ6n*dImQ1n*dImQ3n-dReQ1n*dReQ6n*dImQ2n*dImQ3n
3700 + dReQ2n*dReQ3n*dImQ1n*dImQ6n+dReQ1n*dReQ3n*dImQ2n*dImQ6n
3701 + dReQ1n*dReQ2n*dImQ3n*dImQ6n-dImQ1n*dImQ2n*dImQ3n*dImQ6n;
3702 // Re[Q_{3n}Q_{3n}Q_{3n}^*Q_{2n}^*Q_{n}^*]
3703 Double_t reQ3nQ3nQ3nstarQ2nstarQ1nstar = (pow(dImQ3n,2.)+pow(dReQ3n,2.))
3704 * (dImQ2n*dImQ3n*dReQ1n+dImQ1n*dImQ3n*dReQ2n
3705 - dImQ1n*dImQ2n*dReQ3n+dReQ1n*dReQ2n*dReQ3n);
3706 // Re[Q_{3n}Q_{3n}Q_{2n}^*Q_{2n}^*Q_{2n}^*]
3707 Double_t reQ3nQ3nQ2nstarQ2nstarQ2nstar = pow(dReQ2n,3.)*pow(dReQ3n,2.)
3708 - 3.*dReQ2n*pow(dReQ3n,2.)*pow(dImQ2n,2.)
3709 + 6.*pow(dReQ2n,2.)*dReQ3n*dImQ2n*dImQ3n
3710 - 2.*dReQ3n*pow(dImQ2n,3.)*dImQ3n-pow(dReQ2n,3.)*pow(dImQ3n,2.)
3711 + 3.*dReQ2n*pow(dImQ2n,2.)*pow(dImQ3n,2.);
3712 // Re[Q_{4n}Q_{2n}Q_{3n}^*Q_{2n}^*Q_{n}^*]
3713 Double_t reQ4nQ2nQ3nstarQ2nstarQ1nstar = (pow(dImQ2n,2.)+pow(dReQ2n,2.))
3714 * (dImQ3n*dImQ4n*dReQ1n+dImQ1n*dImQ4n*dReQ3n
3715 - dImQ1n*dImQ3n*dReQ4n+dReQ1n*dReQ3n*dReQ4n);
3716 // Re[Q_{3n}Q_{2n}Q_{3n}^*Q_{n}^*Q_{n}^*]
3717 Double_t reQ3nQ2nQ3nstarQ1nstarQ1nstar = -(pow(dImQ3n,2.)+pow(dReQ3n,2.))
3718 * (-2.*dImQ1n*dImQ2n*dReQ1n+pow(dImQ1n,2.)*dReQ2n-pow(dReQ1n,2.)*dReQ2n);
3719 // Re[Q_{3n}Q_{2n}Q_{2n}^*Q_{2n}^*Q_{n}^*]
3720 Double_t reQ3nQ2nQ2nstarQ2nstarQ1nstar = (pow(dImQ2n,2.)+pow(dReQ2n,2.))
3721 * (dImQ2n*dImQ3n*dReQ1n+dImQ1n*dImQ3n*dReQ2n
3722 - dImQ1n*dImQ2n*dReQ3n+dReQ1n*dReQ2n*dReQ3n);
3723 // Re[Q_{5n}Q_{n}Q_{3n}^*Q_{2n}^*Q_{n}^*]
3724 Double_t reQ5nQ1nQ3nstarQ2nstarQ1nstar = (pow(dImQ1n,2.)+pow(dReQ1n,2.))
3725 * (dImQ3n*dImQ5n*dReQ2n+dImQ2n*dImQ5n*dReQ3n
3726 - dImQ2n*dImQ3n*dReQ5n+dReQ2n*dReQ3n*dReQ5n);
3727 // Re[Q_{2n}Q_{2n}Q_{n}^*Q_{n}^*Q_{n}^*Q_{n}^*]
3728 Double_t reQ2nQ2nQ1nstarQ1nstarQ1nstarQ1nstar = (pow(dReQ1n,2.)*dReQ2n-2.*dReQ1n*dReQ2n*dImQ1n-dReQ2n*pow(dImQ1n,2.)
3729 + dImQ2n*pow(dReQ1n,2.)+2.*dReQ1n*dImQ1n*dImQ2n-pow(dImQ1n,2.)*dImQ2n)
3730 * (pow(dReQ1n,2.)*dReQ2n+2.*dReQ1n*dReQ2n*dImQ1n-dReQ2n*pow(dImQ1n,2.)
3731 - dImQ2n*pow(dReQ1n,2.)+2.*dReQ1n*dImQ1n*dImQ2n+pow(dImQ1n,2.)*dImQ2n);
3732 // Re[Q_{3n}Q_{n}Q_{n}^*Q_{n}^*Q_{n}^*Q_{n}^*]
3733 Double_t reQ3nQ1nQ1nstarQ1nstarQ1nstarQ1nstar = (pow(dReQ1n,2.)+pow(dImQ1n,2.))
3734 * (pow(dReQ1n,3.)*dReQ3n-3.*dReQ1n*dReQ3n*pow(dImQ1n,2.)
3735 + 3.*pow(dReQ1n,2.)*dImQ1n*dImQ3n-pow(dImQ1n,3.)*dImQ3n);
3736 // |Q_{2n}|^2 |Q_{n}|^4
3737 Double_t dQ2nQ1nQ1nQ2nstarQ1nstarQ1nstar = (pow(dReQ2n,2.)+pow(dImQ2n,2.))*pow((pow(dReQ1n,2.)+pow(dImQ1n,2.)),2.);
3738 // |Q_{3n}|^2 |Q_{2n}|^2 |Q_{n}|^2
3739 Double_t dQ3nQ2nQ1nQ3nstarQ2nstarQ1nstar = (pow(dReQ3n,2.)+pow(dImQ3n,2.))*(pow(dReQ2n,2.)+pow(dImQ2n,2.))
3740 * (pow(dReQ1n,2.)+pow(dImQ1n,2.));
3741 // Re[Q_{2n}Q_{n}Q_{n}Q_{n}^*Q_{n}^*Q_{n}^*Q_{n}^*]
3742 Double_t reQ2nQ1nQ1nQ1nstarQ1nstarQ1nstarQ1nstar = pow((pow(dReQ1n,2.)+pow(dImQ1n,2.)),2.)
3743 * (pow(dReQ1n,2.)*dReQ2n-dReQ2n*pow(dImQ1n,2.)
3744 + 2.*dReQ1n*dImQ1n*dImQ2n);
3745 // Re[Q_{6n}Q_{2n}^*Q_{2n}^*Q_{n}^*Q_{n}^*]
3746 Double_t reQ6nQ2nstarQ2nstarQ1nstarQ1nstar = pow(dReQ1n*dReQ2n,2.)*dReQ6n-pow(dReQ2n*dImQ1n,2.)*dReQ6n
3747 - 4.*dReQ1n*dReQ2n*dReQ6n*dImQ1n*dImQ2n
3748 - pow(dReQ1n*dImQ2n,2.)*dReQ6n+pow(dImQ1n*dImQ2n,2.)*dReQ6n
3749 + 2.*dReQ1n*pow(dReQ2n,2.)*dImQ1n*dImQ6n
3750 + 2.*pow(dReQ1n,2.)*dReQ2n*dImQ2n*dImQ6n
3751 - 2.*dReQ2n*pow(dImQ1n,2.)*dImQ2n*dImQ6n
3752 - 2.*dReQ1n*dImQ1n*pow(dImQ2n,2.)*dImQ6n;
3753 // Re[Q_{4n}Q_{1n}Q_{1n}Q_{3n}^*Q_{3n}^*]
3754 Double_t reQ4nQ1nQ1nQ3nstarQ3nstar = pow(dReQ1n*dReQ3n,2.)*dReQ4n-pow(dReQ3n*dImQ1n,2.)*dReQ4n
3755 + 4.*dReQ1n*dReQ3n*dReQ4n*dImQ1n*dImQ3n
3756 - pow(dReQ1n*dImQ3n,2.)*dReQ4n+pow(dImQ1n*dImQ3n,2.)*dReQ4n
3757 - 2.*dReQ1n*pow(dReQ3n,2.)*dImQ1n*dImQ4n
3758 + 2.*pow(dReQ1n,2.)*dReQ3n*dImQ3n*dImQ4n
3759 - 2.*dReQ3n*pow(dImQ1n,2.)*dImQ3n*dImQ4n
3760 + 2.*dReQ1n*dImQ1n*pow(dImQ3n,2.)*dImQ4n;
3761 // Re[Q_{3n}Q_{3n}Q_{2n}^*Q_{2n}^*Q_{1n}^*Q_{1n}^*]
3762 Double_t reQ3nQ3nQ2nstarQ2nstarQ1nstarQ1nstar = (dReQ1n*dReQ2n*dReQ3n-dReQ2n*dReQ3n*dImQ1n-dReQ1n*dReQ3n*dImQ2n
3763 - dReQ3n*dImQ1n*dImQ2n+dReQ1n*dReQ2n*dImQ3n+dReQ2n*dImQ1n*dImQ3n
3764 + dReQ1n*dImQ2n*dImQ3n-dImQ1n*dImQ2n*dImQ3n)*(dReQ1n*dReQ2n*dReQ3n
3765 + dReQ2n*dReQ3n*dImQ1n+dReQ1n*dReQ3n*dImQ2n-dReQ3n*dImQ1n*dImQ2n
3766 - dReQ1n*dReQ2n*dImQ3n+dReQ2n*dImQ1n*dImQ3n+dReQ1n*dImQ2n*dImQ3n
3767 + dImQ1n*dImQ2n*dImQ3n);
3769 // Results for multiparticle azimuthal correlations:
3771 Double_t two1n1n = 0.; // <cos(n(phi1-phi2))>
3772 Double_t two2n2n = 0.; // <cos(2n(phi1-phi2))>
3773 Double_t two3n3n = 0.; // <cos(3n(phi1-phi2))>
3774 Double_t two4n4n = 0.; // <cos(4n(phi1-phi2))>
3777 two1n1n = (pow(dReQ1n,2.)+pow(dImQ1n,2.)-dMult)/(dMult*(dMult-1.));
3778 two2n2n = (pow(dReQ2n,2.)+pow(dImQ2n,2.)-dMult)/(dMult*(dMult-1.));
3779 two3n3n = (pow(dReQ3n,2.)+pow(dImQ3n,2.)-dMult)/(dMult*(dMult-1.));
3780 two4n4n = (pow(dReQ4n,2.)+pow(dImQ4n,2.)-dMult)/(dMult*(dMult-1.));
3781 // Average 2-particle correlations for single event:
3782 fIntFlowCorrelationsAllEBE->SetBinContent(1,two1n1n);
3783 fIntFlowCorrelationsAllEBE->SetBinContent(2,two2n2n);
3784 fIntFlowCorrelationsAllEBE->SetBinContent(3,two3n3n);
3785 fIntFlowCorrelationsAllEBE->SetBinContent(4,two4n4n);
3786 // Average 2-particle correlations for all events:
3787 fIntFlowCorrelationsAllPro->Fill(0.5,two1n1n,dMult*(dMult-1.));
3788 fIntFlowCorrelationsAllPro->Fill(1.5,two2n2n,dMult*(dMult-1.));
3789 fIntFlowCorrelationsAllPro->Fill(2.5,two3n3n,dMult*(dMult-1.));
3790 fIntFlowCorrelationsAllPro->Fill(3.5,two4n4n,dMult*(dMult-1.));
3791 // Store separetately <2>:
3792 fIntFlowCorrelationsEBE->SetBinContent(1,two1n1n); // <2>
3793 // Testing other multiplicity weights:
3794 Double_t mWeight2p = 0.;
3795 if(fMultiplicityWeight->Contains("combinations"))
3797 mWeight2p = dMult*(dMult-1.);
3798 } else if(fMultiplicityWeight->Contains("unit"))
3801 } else if(fMultiplicityWeight->Contains("multiplicity"))
3805 fIntFlowEventWeightsForCorrelationsEBE->SetBinContent(1,mWeight2p); // eW_<2>
3806 fIntFlowCorrelationsPro->Fill(0.5,two1n1n,mWeight2p);
3807 fIntFlowSquaredCorrelationsPro->Fill(0.5,two1n1n*two1n1n,mWeight2p);
3808 if(fCalculateCumulantsVsM)
3810 fIntFlowCorrelationsVsMPro[0]->Fill(dMultiplicityBin,two1n1n,mWeight2p);
3811 fIntFlowSquaredCorrelationsVsMPro[0]->Fill(dMultiplicityBin,two1n1n*two1n1n,mWeight2p);
3813 if(fCalculateAllCorrelationsVsM)
3815 fIntFlowCorrelationsAllVsMPro[0]->Fill(dMultiplicityBin,two1n1n,mWeight2p);
3816 fIntFlowCorrelationsAllVsMPro[1]->Fill(dMultiplicityBin,two2n2n,mWeight2p);
3817 fIntFlowCorrelationsAllVsMPro[2]->Fill(dMultiplicityBin,two3n3n,mWeight2p);
3818 fIntFlowCorrelationsAllVsMPro[3]->Fill(dMultiplicityBin,two4n4n,mWeight2p);
3820 if(fStoreControlHistograms)
3822 fCorrelation2468VsMult[0]->Fill(dMultiplicityBin,two1n1n);
3824 } // end of if(dMult>1)
3827 Double_t three2n1n1n = 0.; // <cos(n(2*phi1-phi2-phi3))>
3828 Double_t three3n2n1n = 0.; // <cos(n(3*phi1-2*phi2-phi3))>
3829 Double_t three4n2n2n = 0.; // <cos(n(4*phi1-2*phi2-2*phi3))>
3830 Double_t three4n3n1n = 0.; // <cos(n(4*phi1-3*phi2-phi3))>
3833 three2n1n1n = (reQ2nQ1nstarQ1nstar-2.*(pow(dReQ1n,2.)+pow(dImQ1n,2.))
3834 - (pow(dReQ2n,2.)+pow(dImQ2n,2.))+2.*dMult)
3835 / (dMult*(dMult-1.)*(dMult-2.));
3836 three3n2n1n = (reQ3nQ2nstarQ1nstar-(pow(dReQ3n,2.)+pow(dImQ3n,2.))
3837 - (pow(dReQ2n,2.)+pow(dImQ2n,2.))
3838 - (pow(dReQ1n,2.)+pow(dImQ1n,2.))+2.*dMult)
3839 / (dMult*(dMult-1.)*(dMult-2.));
3840 three4n2n2n = (reQ4nQ2nstarQ2nstar-2.*(pow(dReQ2n,2.)+pow(dImQ2n,2.))
3841 - (pow(dReQ4n,2.)+pow(dImQ4n,2.))+2.*dMult)
3842 / (dMult*(dMult-1.)*(dMult-2.));
3843 three4n3n1n = (reQ4nQ3nstarQ1nstar-(pow(dReQ4n,2.)+pow(dImQ4n,2.))
3844 - (pow(dReQ3n,2.)+pow(dImQ3n,2.))
3845 - (pow(dReQ1n,2.)+pow(dImQ1n,2.))+2.*dMult)
3846 / (dMult*(dMult-1.)*(dMult-2.));
3847 // Average 3-particle correlations for single event:
3848 fIntFlowCorrelationsAllEBE->SetBinContent(6,three2n1n1n);
3849 fIntFlowCorrelationsAllEBE->SetBinContent(7,three3n2n1n);
3850 fIntFlowCorrelationsAllEBE->SetBinContent(8,three4n2n2n);
3851 fIntFlowCorrelationsAllEBE->SetBinContent(9,three4n3n1n);
3852 // Average 3-particle correlations for all events:
3853 fIntFlowCorrelationsAllPro->Fill(5.5,three2n1n1n,dMult*(dMult-1.)*(dMult-2.));
3854 fIntFlowCorrelationsAllPro->Fill(6.5,three3n2n1n,dMult*(dMult-1.)*(dMult-2.));
3855 fIntFlowCorrelationsAllPro->Fill(7.5,three4n2n2n,dMult*(dMult-1.)*(dMult-2.));
3856 fIntFlowCorrelationsAllPro->Fill(8.5,three4n3n1n,dMult*(dMult-1.)*(dMult-2.));
3857 // Average 3-particle correlations vs M for all events:
3858 if(fCalculateAllCorrelationsVsM)
3860 fIntFlowCorrelationsAllVsMPro[5]->Fill(dMultiplicityBin,three2n1n1n,dMult*(dMult-1.)*(dMult-2.));
3861 fIntFlowCorrelationsAllVsMPro[6]->Fill(dMultiplicityBin,three3n2n1n,dMult*(dMult-1.)*(dMult-2.));
3862 fIntFlowCorrelationsAllVsMPro[7]->Fill(dMultiplicityBin,three4n2n2n,dMult*(dMult-1.)*(dMult-2.));
3863 fIntFlowCorrelationsAllVsMPro[8]->Fill(dMultiplicityBin,three4n3n1n,dMult*(dMult-1.)*(dMult-2.));
3865 } // end of if(dMult>2)
3868 Double_t four1n1n1n1n = 0.; // <cos(n(phi1+phi2-phi3-phi4))>
3869 Double_t four2n2n2n2n = 0.; // <cos(2n(phi1+phi2-phi3-phi4))>
3870 Double_t four2n1n2n1n = 0.; // <cos(n(2*phi1+phi2-2*phi3-phi4))>
3871 Double_t four3n1n1n1n = 0.; // <cos(n(3*phi1-phi2-phi3-phi4))>
3872 Double_t four4n2n1n1n = 0.; // <cos(n(4*phi1-2*phi2-phi3-phi4))>
3873 Double_t four3n1n2n2n = 0.; // <cos(n(3*phi1+phi2-2*phi3-2*phi4))>
3874 Double_t four3n1n3n1n = 0.; // <cos(n(3*phi1+phi2-3*phi3-phi4))>
3877 four1n1n1n1n = (2.*dMult*(dMult-3.)+pow((pow(dReQ1n,2.)+pow(dImQ1n,2.)),2.)-4.*(dMult-2.)*(pow(dReQ1n,2.)
3878 + pow(dImQ1n,2.))-2.*reQ2nQ1nstarQ1nstar+(pow(dReQ2n,2.)+pow(dImQ2n,2.)))
3879 / (dMult*(dMult-1)*(dMult-2.)*(dMult-3.));
3880 four2n2n2n2n = (2.*dMult*(dMult-3.)+pow((pow(dReQ2n,2.)+pow(dImQ2n,2.)),2.)-4.*(dMult-2.)*(pow(dReQ2n,2.)
3881 + pow(dImQ2n,2.))-2.*reQ4nQ2nstarQ2nstar+(pow(dReQ4n,2.)+pow(dImQ4n,2.)))
3882 / (dMult*(dMult-1)*(dMult-2.)*(dMult-3.));
3883 four2n1n2n1n = (dQ2nQ1nQ2nstarQ1nstar-2.*reQ3nQ2nstarQ1nstar-2.*reQ2nQ1nstarQ1nstar)
3884 / (dMult*(dMult-1.)*(dMult-2.)*(dMult-3.))
3885 - ((dMult-5.)*(pow(dReQ1n,2.)+pow(dImQ1n,2.))
3886 + (dMult-4.)*(pow(dReQ2n,2.)+pow(dImQ2n,2.))-(pow(dReQ3n,2.)+pow(dImQ3n,2.)))
3887 / (dMult*(dMult-1.)*(dMult-2.)*(dMult-3.))
3888 + (dMult-6.)/((dMult-1.)*(dMult-2.)*(dMult-3.));
3889 four3n1n1n1n = (reQ3nQ1nstarQ1nstarQ1nstar-3.*reQ3nQ2nstarQ1nstar-3.*reQ2nQ1nstarQ1nstar
3890 + 2.*(pow(dReQ3n,2.)+pow(dImQ3n,2.))+3.*(pow(dReQ2n,2.)+pow(dImQ2n,2.))
3891 + 6.*(pow(dReQ1n,2.)+pow(dImQ1n,2.))-6.*dMult)
3892 / (dMult*(dMult-1.)*(dMult-2.)*(dMult-3.));
3893 four4n2n1n1n = (reQ4nQ2nstarQ1nstarQ1nstar-2.*reQ4nQ3nstarQ1nstar-reQ4nQ2nstarQ2nstar-2.*reQ3nQ2nstarQ1nstar)
3894 / (dMult*(dMult-1.)*(dMult-2.)*(dMult-3.))
3895 - (reQ2nQ1nstarQ1nstar-2.*(pow(dReQ4n,2.)+pow(dImQ4n,2.))-2.*(pow(dReQ3n,2.)+pow(dImQ3n,2.))
3896 - 3.*(pow(dReQ2n,2.)+pow(dImQ2n,2.))-4.*(pow(dReQ1n,2.)+pow(dImQ1n,2.)))
3897 / (dMult*(dMult-1.)*(dMult-2.)*(dMult-3.))
3898 - 6./((dMult-1.)*(dMult-2.)*(dMult-3.));
3899 four3n1n2n2n = (reQ3nQ1nQ2nstarQ2nstar-reQ4nQ2nstarQ2nstar-reQ4nQ3nstarQ1nstar-2.*reQ3nQ2nstarQ1nstar)
3900 / (dMult*(dMult-1.)*(dMult-2.)*(dMult-3.))
3901 - (2.*reQ2nQ1nstarQ1nstar-(pow(dReQ4n,2.)+pow(dImQ4n,2.))-2.*(pow(dReQ3n,2.)+pow(dImQ3n,2.))
3902 - 4.*(pow(dReQ2n,2.)+pow(dImQ2n,2.))-4.*(pow(dReQ1n,2.)+pow(dImQ1n,2.)))
3903 / (dMult*(dMult-1.)*(dMult-2.)*(dMult-3.))
3904 - 6./((dMult-1.)*(dMult-2.)*(dMult-3.));
3905 four3n1n3n1n = ((pow(dReQ3n,2.)+pow(dImQ3n,2.))*(pow(dReQ1n,2.)+pow(dImQ1n,2.))
3906 - 2.*reQ4nQ3nstarQ1nstar-2.*reQ3nQ2nstarQ1nstar
3907 + pow(dReQ4n,2.)+pow(dImQ4n,2.)-(dMult-4.)*(pow(dReQ3n,2.)+pow(dImQ3n,2.))
3908 + pow(dReQ2n,2.)+pow(dImQ2n,2.)-(dMult-4.)*(pow(dReQ1n,2.)+pow(dImQ1n,2.))
3910 / (dMult*(dMult-1.)*(dMult-2.)*(dMult-3.));
3911 // Average 4-particle correlations for single event:
3912 fIntFlowCorrelationsAllEBE->SetBinContent(11,four1n1n1n1n);
3913 fIntFlowCorrelationsAllEBE->SetBinContent(12,four2n1n2n1n);
3914 fIntFlowCorrelationsAllEBE->SetBinContent(13,four2n2n2n2n);
3915 fIntFlowCorrelationsAllEBE->SetBinContent(14,four3n1n1n1n);
3916 fIntFlowCorrelationsAllEBE->SetBinContent(15,four3n1n3n1n);
3917 fIntFlowCorrelationsAllEBE->SetBinContent(16,four3n1n2n2n);
3918 fIntFlowCorrelationsAllEBE->SetBinContent(17,four4n2n1n1n);
3919 // Average 4-particle correlations for all events:
3920 fIntFlowCorrelationsAllPro->Fill(10.5,four1n1n1n1n,dMult*(dMult-1.)*(dMult-2.)*(dMult-3.));
3921 fIntFlowCorrelationsAllPro->Fill(11.5,four2n1n2n1n,dMult*(dMult-1.)*(dMult-2.)*(dMult-3.));
3922 fIntFlowCorrelationsAllPro->Fill(12.5,four2n2n2n2n,dMult*(dMult-1.)*(dMult-2.)*(dMult-3.));
3923 fIntFlowCorrelationsAllPro->Fill(13.5,four3n1n1n1n,dMult*(dMult-1.)*(dMult-2.)*(dMult-3.));
3924 fIntFlowCorrelationsAllPro->Fill(14.5,four3n1n3n1n,dMult*(dMult-1.)*(dMult-2.)*(dMult-3.));
3925 fIntFlowCorrelationsAllPro->Fill(15.5,four3n1n2n2n,dMult*(dMult-1.)*(dMult-2.)*(dMult-3.));
3926 fIntFlowCorrelationsAllPro->Fill(16.5,four4n2n1n1n,dMult*(dMult-1.)*(dMult-2.)*(dMult-3.));
3927 // Average 4-particle correlations vs M for all events:
3928 if(fCalculateAllCorrelationsVsM)
3930 fIntFlowCorrelationsAllVsMPro[10]->Fill(dMultiplicityBin,four1n1n1n1n,dMult*(dMult-1.)*(dMult-2.)*(dMult-3.));
3931 fIntFlowCorrelationsAllVsMPro[11]->Fill(dMultiplicityBin,four2n1n2n1n,dMult*(dMult-1.)*(dMult-2.)*(dMult-3.));
3932 fIntFlowCorrelationsAllVsMPro[12]->Fill(dMultiplicityBin,four2n2n2n2n,dMult*(dMult-1.)*(dMult-2.)*(dMult-3.));
3933 fIntFlowCorrelationsAllVsMPro[13]->Fill(dMultiplicityBin,four3n1n1n1n,dMult*(dMult-1.)*(dMult-2.)*(dMult-3.));
3934 fIntFlowCorrelationsAllVsMPro[14]->Fill(dMultiplicityBin,four3n1n3n1n,dMult*(dMult-1.)*(dMult-2.)*(dMult-3.));
3935 fIntFlowCorrelationsAllVsMPro[15]->Fill(dMultiplicityBin,four3n1n2n2n,dMult*(dMult-1.)*(dMult-2.)*(dMult-3.));
3936 fIntFlowCorrelationsAllVsMPro[16]->Fill(dMultiplicityBin,four4n2n1n1n,dMult*(dMult-1.)*(dMult-2.)*(dMult-3.));
3938 // Store separetately <4>:
3939 fIntFlowCorrelationsEBE->SetBinContent(2,four1n1n1n1n); // <4>
3940 // Testing other multiplicity weights:
3941 Double_t mWeight4p = 0.;
3942 if(fMultiplicityWeight->Contains("combinations"))
3944 mWeight4p = dMult*(dMult-1.)*(dMult-2.)*(dMult-3.);
3945 } else if(fMultiplicityWeight->Contains("unit"))
3948 } else if(fMultiplicityWeight->Contains("multiplicity"))
3952 fIntFlowEventWeightsForCorrelationsEBE->SetBinContent(2,mWeight4p); // eW_<4>
3953 fIntFlowCorrelationsPro->Fill(1.5,four1n1n1n1n,mWeight4p);
3954 fIntFlowSquaredCorrelationsPro->Fill(1.5,four1n1n1n1n*four1n1n1n1n,mWeight4p);
3955 if(fCalculateCumulantsVsM)
3957 fIntFlowCorrelationsVsMPro[1]->Fill(dMultiplicityBin,four1n1n1n1n,mWeight4p);
3958 fIntFlowSquaredCorrelationsVsMPro[1]->Fill(dMultiplicityBin,four1n1n1n1n*four1n1n1n1n,mWeight4p);
3960 if(fStoreControlHistograms)
3962 fCorrelation2468VsMult[1]->Fill(dMultiplicityBin,four1n1n1n1n);
3964 } // end of if(dMult>3)
3967 Double_t five2n1n1n1n1n = 0.; // <cos(n(2*phi1+phi2-phi3-phi4-phi5))>
3968 Double_t five2n2n2n1n1n = 0.; // <cos(n(2*phi1+2*phi2-2*phi3-phi4-phi5))>
3969 Double_t five3n1n2n1n1n = 0.; // <cos(n(3*phi1+phi2-2*phi3-phi4-phi5))>
3970 Double_t five4n1n1n1n1n = 0.; // <cos(n(4*phi1-phi2-phi3-phi4-phi5))>
3973 five2n1n1n1n1n = (reQ2nQ1nQ1nstarQ1nstarQ1nstar-reQ3nQ1nstarQ1nstarQ1nstar+5.*reQ3nQ2nstarQ1nstar
3974 - 3.*(dMult-5.)*reQ2nQ1nstarQ1nstar-2.*(pow(dReQ3n,2.)+pow(dImQ3n,2.))
3975 - 3.*(pow(dReQ1n,2.)+pow(dImQ1n,2.))*(pow(dReQ2n,2.)+pow(dImQ2n,2.))
3976 + 3.*(dMult-4.)*(pow(dReQ2n,2.)+pow(dImQ2n,2.))
3977 - 3.*pow((pow(dReQ1n,2.)+pow(dImQ1n,2.)),2.)
3978 + 6.*(2.*dMult-5.)*(pow(dReQ1n,2.)+pow(dImQ1n,2.))-6.*dMult*(dMult-4.))
3979 / (dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.));
3980 five2n2n2n1n1n = (reQ2nQ2nQ2nstarQ1nstarQ1nstar-reQ4nQ2nstarQ1nstarQ1nstar-2.*reQ3nQ1nQ2nstarQ2nstar
3981 + 3.*reQ4nQ2nstarQ2nstar+8.*reQ3nQ2nstarQ1nstar+2.*reQ4nQ3nstarQ1nstar
3982 - 2.*(dMult-6.)*reQ2nQ1nstarQ1nstar
3983 - 2.*(pow(dReQ4n,2.)+pow(dImQ4n,2.))-4.*(pow(dReQ3n,2.)+pow(dImQ3n,2.))
3984 - pow((pow(dReQ2n,2.)+pow(dImQ2n,2.)),2.)
3985 + 2.*(3.*dMult-10.)*(pow(dReQ2n,2.)+pow(dImQ2n,2.))
3986 - 4.*(pow(dReQ1n,2.)+pow(dImQ1n,2.))*(pow(dReQ2n,2.)+pow(dImQ2n,2.))
3987 + 4.*(dMult-5.)*(pow(dReQ1n,2.)+pow(dImQ1n,2.))-4.*dMult*(dMult-6.))
3988 / (dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.));
3989 five4n1n1n1n1n = (reQ4nQ1nstarQ1nstarQ1nstarQ1nstar-6.*reQ4nQ2nstarQ1nstarQ1nstar-4.*reQ3nQ1nstarQ1nstarQ1nstar
3990 + 8.*reQ4nQ3nstarQ1nstar+3.*reQ4nQ2nstarQ2nstar+12.*reQ3nQ2nstarQ1nstar+12.*reQ2nQ1nstarQ1nstar
3991 - 6.*(pow(dReQ4n,2.)+pow(dImQ4n,2.))-8.*(pow(dReQ3n,2.)+pow(dImQ3n,2.))
3992 - 12.*(pow(dReQ2n,2.)+pow(dImQ2n,2.))-24.*(pow(dReQ1n,2.)+pow(dImQ1n,2.))+24.*dMult)
3993 / (dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.));
3994 five3n1n2n1n1n = (reQ3nQ1nQ2nstarQ1nstarQ1nstar-reQ4nQ2nstarQ1nstarQ1nstar-reQ3nQ1nstarQ1nstarQ1nstar
3995 - reQ3nQ1nQ2nstarQ2nstar+4.*reQ4nQ3nstarQ1nstar+reQ4nQ2nstarQ2nstar
3996 - (2.*dMult-13.)*reQ3nQ2nstarQ1nstar+7.*reQ2nQ1nstarQ1nstar
3997 - 2.*(pow(dReQ4n,2.)+pow(dImQ4n,2.))
3998 + 2.*(dMult-5.)*(pow(dReQ3n,2.)+pow(dImQ3n,2.))
3999 - 2.*(pow(dReQ3n,2.)+pow(dImQ3n,2.))*(pow(dReQ1n,2.)+pow(dImQ1n,2.))
4000 + 2.*(dMult-6.)*(pow(dReQ2n,2.)+pow(dImQ2n,2.))
4001 - 2.*(pow(dReQ2n,2.)+pow(dImQ2n,2.))*(pow(dReQ1n,2.)+pow(dImQ1n,2.))
4002 - pow((pow(dReQ1n,2.)+pow(dImQ1n,2.)),2.)
4003 + 2.*(3.*dMult-11.)*(pow(dReQ1n,2.)+pow(dImQ1n,2.))-4.*dMult*(dMult-6.))
4004 / (dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.));
4005 // Average 5-particle correlations for single event:
4006 fIntFlowCorrelationsAllEBE->SetBinContent(19,five2n1n1n1n1n);
4007 fIntFlowCorrelationsAllEBE->SetBinContent(20,five2n2n2n1n1n);
4008 fIntFlowCorrelationsAllEBE->SetBinContent(21,five3n1n2n1n1n);
4009 fIntFlowCorrelationsAllEBE->SetBinContent(22,five4n1n1n1n1n);
4010 // Average 5-particle correlations for all events:
4011 fIntFlowCorrelationsAllPro->Fill(18.5,five2n1n1n1n1n,dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.));
4012 fIntFlowCorrelationsAllPro->Fill(19.5,five2n2n2n1n1n,dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.));
4013 fIntFlowCorrelationsAllPro->Fill(20.5,five3n1n2n1n1n,dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.));
4014 fIntFlowCorrelationsAllPro->Fill(21.5,five4n1n1n1n1n,dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.));
4015 // Average 5-particle correlations vs M for all events:
4016 if(fCalculateAllCorrelationsVsM)
4018 fIntFlowCorrelationsAllVsMPro[18]->Fill(dMultiplicityBin,five2n1n1n1n1n,dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.));
4019 fIntFlowCorrelationsAllVsMPro[19]->Fill(dMultiplicityBin,five2n2n2n1n1n,dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.));
4020 fIntFlowCorrelationsAllVsMPro[20]->Fill(dMultiplicityBin,five3n1n2n1n1n,dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.));
4021 fIntFlowCorrelationsAllVsMPro[21]->Fill(dMultiplicityBin,five4n1n1n1n1n,dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.));
4023 } // end of if(dMult>4)
4026 Double_t six1n1n1n1n1n1n = 0.; // <cos(n(phi1+phi2+phi3-phi4-phi5-phi6))>
4027 Double_t six2n2n1n1n1n1n = 0.; // <cos(n(2*phi1+2*phi2-phi3-phi4-phi5-phi6))>
4028 Double_t six3n1n1n1n1n1n = 0.; // <cos(n(3*phi1+phi2-phi3-phi4-phi5-phi6))>
4029 Double_t six2n1n1n2n1n1n = 0.; // <cos(n(2*phi1+phi2+phi3-2*phi4-phi5-phi6))>
4032 six1n1n1n1n1n1n = (pow(pow(dReQ1n,2.)+pow(dImQ1n,2.),3.)-6.*reQ2nQ1nQ1nstarQ1nstarQ1nstar
4033 + 4.*reQ3nQ1nstarQ1nstarQ1nstar-12.*reQ3nQ2nstarQ1nstar+18.*(dMult-4.)*reQ2nQ1nstarQ1nstar
4034 + 9.*(pow(dReQ1n,2.)+pow(dImQ1n,2.))*(pow(dReQ2n,2.)+pow(dImQ2n,2.))
4035 + 4.*(pow(dReQ3n,2.)+pow(dImQ3n,2.))-9.*(dMult-4.)*(pow(dReQ2n,2.)+pow(dImQ2n,2.))
4036 - 9.*(dMult-4.)*pow((pow(dReQ1n,2.)+pow(dImQ1n,2.)),2.)
4037 + 18.*(dMult*dMult-7.*dMult+10.)*(pow(dReQ1n,2.)+pow(dImQ1n,2.))
4038 - 6.*dMult*(dMult*dMult-9.*dMult+20.))
4039 / (dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.)*(dMult-5.));
4040 six2n1n1n2n1n1n = (dQ2nQ1nQ1nQ2nstarQ1nstarQ1nstar-4.*reQ3nQ1nQ2nstarQ1nstarQ1nstar
4041 - 4.*reQ2nQ1nQ1nstarQ1nstarQ1nstar-2.*reQ2nQ2nQ2nstarQ1nstarQ1nstar
4042 + 4.*reQ4nQ2nstarQ1nstarQ1nstar+4.*reQ3nQ1nQ2nstarQ2nstar+4.*reQ3nQ1nstarQ1nstarQ1nstar
4043 - 8.*reQ4nQ3nstarQ1nstar-4.*reQ4nQ2nstarQ2nstar+4.*(2.*dMult-13.)*reQ3nQ2nstarQ1nstar
4044 + 2.*(7.*dMult-34.)*reQ2nQ1nstarQ1nstar+4.*(pow(dReQ1n,2.)+pow(dImQ1n,2.))*(pow(dReQ3n,2.)+pow(dImQ3n,2.))
4045 - 4.*(dMult-7.)*(pow(dReQ1n,2.)+pow(dImQ1n,2.))*(pow(dReQ2n,2.)+pow(dImQ2n,2.))
4046 + 4.*(pow(dReQ4n,2.)+pow(dImQ4n,2.))-4.*(dMult-6.)*(pow(dReQ3n,2.)+pow(dImQ3n,2.))
4047 + pow((pow(dReQ2n,2.)+pow(dImQ2n,2.)),2.)+(2.*dMult*dMult-27.*dMult+76.)*(pow(dReQ2n,2.)+pow(dImQ2n,2.))
4048 - (dMult-12.)*pow((pow(dReQ1n,2.)+pow(dImQ1n,2.)),2.)
4049 + 4.*(dMult*dMult-15.*dMult+34.)*(pow(dReQ1n,2.)+pow(dImQ1n,2.))
4050 - 2.*dMult*(dMult*dMult-17.*dMult+60.))
4051 / (dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.)*(dMult-5.));
4052 six2n2n1n1n1n1n = (reQ2nQ2nQ1nstarQ1nstarQ1nstarQ1nstar-6.*reQ2nQ2nQ2nstarQ1nstarQ1nstar-reQ4nQ1nstarQ1nstarQ1nstarQ1nstar
4053 - 8.*reQ2nQ1nQ1nstarQ1nstarQ1nstar+8.*reQ3nQ1nstarQ1nstarQ1nstar+6.*reQ4nQ2nstarQ1nstarQ1nstar
4054 + 8.*reQ3nQ1nQ2nstarQ2nstar-40.*reQ3nQ2nstarQ1nstar-8.*reQ4nQ3nstarQ1nstar-9.*reQ4nQ2nstarQ2nstar
4055 + 24.*(dMult-4.)*reQ2nQ1nstarQ1nstar+24.*(pow(dReQ1n,2.)+pow(dImQ1n,2.))*(pow(dReQ2n,2.)+pow(dImQ2n,2.))
4056 + 6.*(pow(dReQ4n,2.)+pow(dImQ4n,2.))+16.*(pow(dReQ3n,2.)+pow(dImQ3n,2.))
4057 + 3.*pow((pow(dReQ2n,2.)+pow(dImQ2n,2.)),2.)-12.*(2.*dMult-7.)*(pow(dReQ2n,2.)+pow(dImQ2n,2.))
4058 + 12.*pow((pow(dReQ1n,2.)+pow(dImQ1n,2.)),2.)-48.*(dMult-3.)*(pow(dReQ1n,2.)+pow(dImQ1n,2.))
4059 + 24.*dMult*(dMult-5.))
4060 / (dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.)*(dMult-5.));
4061 six3n1n1n1n1n1n = (reQ3nQ1nQ1nstarQ1nstarQ1nstarQ1nstar-6.*reQ3nQ1nQ2nstarQ1nstarQ1nstar+6.*reQ4nQ2nstarQ1nstarQ1nstar
4062 - reQ4nQ1nstarQ1nstarQ1nstarQ1nstar-4.*reQ2nQ1nQ1nstarQ1nstarQ1nstar+3.*reQ3nQ1nQ2nstarQ2nstar
4063 - 4.*(dMult-5.)*reQ3nQ1nstarQ1nstarQ1nstar-14.*reQ4nQ3nstarQ1nstar
4064 - 3.*reQ4nQ2nstarQ2nstar+4.*(3.*dMult-17.)*reQ3nQ2nstarQ1nstar+12.*(dMult-6.)*reQ2nQ1nstarQ1nstar
4065 + 12.*(pow(dReQ1n,2.)+pow(dImQ1n,2.))*(pow(dReQ2n,2.)+pow(dImQ2n,2.))
4066 + 8.*(pow(dReQ1n,2.)+pow(dImQ1n,2.))*(pow(dReQ3n,2.)+pow(dImQ3n,2.))
4067 + 6.*(pow(dReQ4n,2.)+pow(dImQ4n,2.))-8.*(dMult-5.)*(pow(dReQ3n,2.)+pow(dImQ3n,2.))
4068 - 12.*(dMult-5.)*(pow(dReQ2n,2.)+pow(dImQ2n,2.))-48.*(dMult-3.)*(pow(dReQ1n,2.)+pow(dImQ1n,2.))
4069 + 12.*pow((pow(dReQ1n,2.)+pow(dImQ1n,2.)),2.)+24.*dMult*(dMult-5.))
4070 / (dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.)*(dMult-5.));
4071 // Average 6-particle correlations for single event:
4072 fIntFlowCorrelationsAllEBE->SetBinContent(24,six1n1n1n1n1n1n);
4073 fIntFlowCorrelationsAllEBE->SetBinContent(25,six2n1n1n2n1n1n);
4074 fIntFlowCorrelationsAllEBE->SetBinContent(26,six2n2n1n1n1n1n);
4075 fIntFlowCorrelationsAllEBE->SetBinContent(27,six3n1n1n1n1n1n);
4076 // Average 6-particle correlations for all events:
4077 fIntFlowCorrelationsAllPro->Fill(23.5,six1n1n1n1n1n1n,dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.)*(dMult-5.));
4078 fIntFlowCorrelationsAllPro->Fill(24.5,six2n1n1n2n1n1n,dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.)*(dMult-5.));
4079 fIntFlowCorrelationsAllPro->Fill(25.5,six2n2n1n1n1n1n,dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.)*(dMult-5.));
4080 fIntFlowCorrelationsAllPro->Fill(26.5,six3n1n1n1n1n1n,dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.)*(dMult-5.));
4081 // Average 6-particle correlations vs M for all events:
4082 if(fCalculateAllCorrelationsVsM)
4084 fIntFlowCorrelationsAllVsMPro[23]->Fill(dMultiplicityBin,six1n1n1n1n1n1n,dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.)*(dMult-5.));
4085 fIntFlowCorrelationsAllVsMPro[24]->Fill(dMultiplicityBin,six2n1n1n2n1n1n,dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.)*(dMult-5.));
4086 fIntFlowCorrelationsAllVsMPro[25]->Fill(dMultiplicityBin,six2n2n1n1n1n1n,dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.)*(dMult-5.));
4087 fIntFlowCorrelationsAllVsMPro[26]->Fill(dMultiplicityBin,six3n1n1n1n1n1n,dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.)*(dMult-5.));
4089 // Store separetately <6>:
4090 fIntFlowCorrelationsEBE->SetBinContent(3,six1n1n1n1n1n1n); // <6>
4091 // Testing other multiplicity weights:
4092 Double_t mWeight6p = 0.;
4093 if(fMultiplicityWeight->Contains("combinations"))
4095 mWeight6p = dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.)*(dMult-5.);
4096 } else if(fMultiplicityWeight->Contains("unit"))
4099 } else if(fMultiplicityWeight->Contains("multiplicity"))
4103 fIntFlowEventWeightsForCorrelationsEBE->SetBinContent(3,mWeight6p); // eW_<6>
4104 fIntFlowCorrelationsPro->Fill(2.5,six1n1n1n1n1n1n,mWeight6p);
4105 fIntFlowSquaredCorrelationsPro->Fill(2.5,six1n1n1n1n1n1n*six1n1n1n1n1n1n,mWeight6p);
4106 if(fCalculateCumulantsVsM)
4108 fIntFlowCorrelationsVsMPro[2]->Fill(dMultiplicityBin,six1n1n1n1n1n1n,mWeight6p);
4109 fIntFlowSquaredCorrelationsVsMPro[2]->Fill(dMultiplicityBin,six1n1n1n1n1n1n*six1n1n1n1n1n1n,mWeight6p);
4111 if(fStoreControlHistograms)
4113 fCorrelation2468VsMult[2]->Fill(dMultiplicityBin,six1n1n1n1n1n1n);
4115 } // end of if(dMult>5)
4118 Double_t seven2n1n1n1n1n1n1n = 0.; // <cos(n(2*phi1+phi2+phi3-phi4-phi5-phi6-phi7))>
4121 seven2n1n1n1n1n1n1n = (reQ2nQ1nQ1nQ1nstarQ1nstarQ1nstarQ1nstar-4.*pow(pow(dReQ1n,2.)+pow(dImQ1n,2.),3.)
4122 - reQ2nQ2nQ1nstarQ1nstarQ1nstarQ1nstar-2.*reQ3nQ1nQ1nstarQ1nstarQ1nstarQ1nstar
4123 + 9.*reQ2nQ2nQ2nstarQ1nstarQ1nstar+20.*reQ3nQ1nQ2nstarQ1nstarQ1nstar
4124 + 2.*reQ4nQ1nstarQ1nstarQ1nstarQ1nstar-8.*(dMult-8.)*reQ2nQ1nQ1nstarQ1nstarQ1nstar
4125 - 18.*reQ4nQ2nstarQ1nstarQ1nstar-14.*reQ3nQ1nQ2nstarQ2nstar
4126 + 8.*(dMult-7.)*reQ3nQ1nstarQ1nstarQ1nstar+28.*reQ4nQ3nstarQ1nstar
4127 + 12.*reQ4nQ2nstarQ2nstar-8.*(5.*dMult-31.)*reQ3nQ2nstarQ1nstar
4128 + 12.*(dMult*dMult-15.*dMult+46.)*reQ2nQ1nstarQ1nstar
4129 - 16.*(pow(dReQ1n,2.)+pow(dImQ1n,2.))*(pow(dReQ3n,2.)+pow(dImQ3n,2.))
4130 - 6.*pow(pow(dReQ1n,2.)+pow(dImQ1n,2.),2.)*(pow(dReQ2n,2.)+pow(dImQ2n,2.))
4131 - 3.*pow(pow(dReQ2n,2.)+pow(dImQ2n,2.),2.)
4132 + 12.*(2.*dMult-13.)*(pow(dReQ1n,2.)+pow(dImQ1n,2.))*(pow(dReQ2n,2.)+pow(dImQ2n,2.))
4133 - 12.*(pow(dReQ4n,2.)+pow(dImQ4n,2.))+16.*(dMult-6.)*(pow(dReQ3n,2.)+pow(dImQ3n,2.))
4134 - 12.*(dMult-8.)*(dMult-4.)*(pow(dReQ2n,2.)+pow(dImQ2n,2.))
4135 + 12.*(3.*dMult-14.)*pow(pow(dReQ1n,2.)+pow(dImQ1n,2.),2.)
4136 - 24.*(3.*dMult-7.)*(dMult-6.)*(pow(dReQ1n,2.)+pow(dImQ1n,2.))
4137 + 24.*dMult*(dMult-5.)*(dMult-6.))
4138 / (dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.)*(dMult-5.)*(dMult-6.));
4139 // Average 7-particle correlations for single event:
4140 fIntFlowCorrelationsAllEBE->SetBinContent(29,seven2n1n1n1n1n1n1n);
4141 // Average 7-particle correlations for all events:
4142 fIntFlowCorrelationsAllPro->Fill(28.5,seven2n1n1n1n1n1n1n,dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)
4143 *(dMult-4.)*(dMult-5.)*(dMult-6.));
4144 // Average 7-particle correlations vs M for all events:
4145 if(fCalculateAllCorrelationsVsM)
4147 fIntFlowCorrelationsAllVsMPro[28]->Fill(dMultiplicityBin,seven2n1n1n1n1n1n1n,dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)
4148 *(dMult-4.)*(dMult-5.)*(dMult-6.));
4150 } // end of if(dMult>6)
4153 Double_t eight1n1n1n1n1n1n1n1n = 0.; // <cos(n(phi1+phi2+phi3+phi4-phi5-phi6-phi7-phi8))>
4156 eight1n1n1n1n1n1n1n1n = (pow(pow(dReQ1n,2.)+pow(dImQ1n,2.),4.)-12.*reQ2nQ1nQ1nQ1nstarQ1nstarQ1nstarQ1nstar
4157 + 16.*reQ3nQ1nQ1nstarQ1nstarQ1nstarQ1nstar+6.*reQ2nQ2nQ1nstarQ1nstarQ1nstarQ1nstar
4158 - 12.*reQ4nQ1nstarQ1nstarQ1nstarQ1nstar-36.*reQ2nQ2nQ2nstarQ1nstarQ1nstar
4159 - 96.*reQ3nQ1nQ2nstarQ1nstarQ1nstar
4160 + 72.*reQ4nQ2nstarQ1nstarQ1nstar+48.*reQ3nQ1nQ2nstarQ2nstar
4161 - 64.*(dMult-6.)*reQ3nQ1nstarQ1nstarQ1nstar
4162 + 96.*(dMult-6.)*reQ2nQ1nQ1nstarQ1nstarQ1nstar
4163 - 96.*reQ4nQ3nstarQ1nstar-36.*reQ4nQ2nstarQ2nstar
4164 + 192.*(dMult-6.)*reQ3nQ2nstarQ1nstar
4165 - 144.*(dMult-7.)*(dMult-4.)*reQ2nQ1nstarQ1nstar
4166 + 64.*(pow(dReQ1n,2.)+pow(dImQ1n,2.))*(pow(dReQ3n,2.)+pow(dImQ3n,2.))
4167 - 144.*(dMult-6.)*(pow(dReQ1n,2.)+pow(dImQ1n,2.))*(pow(dReQ2n,2.)+pow(dImQ2n,2.))
4168 + 72.*(dMult-7.)*(dMult-4.)*(pow(pow(dReQ1n,2.)+pow(dImQ1n,2.),2.)+pow(dReQ2n,2.)+pow(dImQ2n,2.))
4169 - 96.*(dMult-7.)*(dMult-6.)*(dMult-2.)*(pow(dReQ1n,2.)+pow(dImQ1n,2.))
4170 + 36.*pow(pow(dReQ1n,2.)+pow(dImQ1n,2.),2.)*(pow(dReQ2n,2.)+pow(dImQ2n,2.))
4171 + 9.*pow(pow(dReQ2n,2.)+pow(dImQ2n,2.),2.)
4172 - 64.*(dMult-6.)*(pow(dReQ3n,2.)+pow(dImQ3n,2.))
4173 + 36.*(pow(dReQ4n,2.)+pow(dImQ4n,2.))
4174 - 16.*(dMult-6.)*pow(pow(dReQ1n,2.)+pow(dImQ1n,2.),3.)
4175 + 24.*dMult*(dMult-7.)*(dMult-6.)*(dMult-5.))
4176 / (dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.)*(dMult-5.)*(dMult-6.)*(dMult-7.));
4177 // Average 8-particle correlations for single event:
4178 fIntFlowCorrelationsAllEBE->SetBinContent(31,eight1n1n1n1n1n1n1n1n);
4179 // Average 8-particle correlations for all events:
4180 fIntFlowCorrelationsAllPro->Fill(30.5,eight1n1n1n1n1n1n1n1n,dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)
4181 *(dMult-4.)*(dMult-5.)*(dMult-6.)*(dMult-7.));
4182 // Average 8-particle correlations vs M for all events:
4183 if(fCalculateAllCorrelationsVsM)
4185 fIntFlowCorrelationsAllVsMPro[30]->Fill(dMultiplicityBin,eight1n1n1n1n1n1n1n1n,dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)
4186 *(dMult-4.)*(dMult-5.)*(dMult-6.)*(dMult-7.));
4188 // Store separetately <8>:
4189 fIntFlowCorrelationsEBE->SetBinContent(4,eight1n1n1n1n1n1n1n1n); // <8>
4190 // Testing other multiplicity weights:
4191 Double_t mWeight8p = 0.;
4192 if(fMultiplicityWeight->Contains("combinations"))
4194 mWeight8p = dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.)*(dMult-5.)*(dMult-6.)*(dMult-7.);
4195 } else if(fMultiplicityWeight->Contains("unit"))
4198 } else if(fMultiplicityWeight->Contains("multiplicity"))
4202 fIntFlowEventWeightsForCorrelationsEBE->SetBinContent(4,mWeight8p); // eW_<8>
4203 fIntFlowCorrelationsPro->Fill(3.5,eight1n1n1n1n1n1n1n1n,mWeight8p);
4204 fIntFlowSquaredCorrelationsPro->Fill(3.5,eight1n1n1n1n1n1n1n1n*eight1n1n1n1n1n1n1n1n,mWeight8p);
4205 if(fCalculateCumulantsVsM)
4207 fIntFlowCorrelationsVsMPro[3]->Fill(dMultiplicityBin,eight1n1n1n1n1n1n1n1n,mWeight8p);
4208 fIntFlowSquaredCorrelationsVsMPro[3]->Fill(dMultiplicityBin,eight1n1n1n1n1n1n1n1n*eight1n1n1n1n1n1n1n1n,mWeight8p);
4210 if(fStoreControlHistograms)
4212 fCorrelation2468VsMult[3]->Fill(dMultiplicityBin,eight1n1n1n1n1n1n1n1n);
4214 } // end of if(dMult>7)
4216 // EXTRA correlations for v3{5} study:
4218 Double_t four4n2n3n3n = 0.; // <cos(n(4*phi1+2*phi2-3*phi3-3*phi4))>
4221 four4n2n3n3n = (reQ4nQ2nQ3nstarQ3nstar-reQ6nQ4nstarQ2nstar-reQ6nQ3nstarQ3nstar
4222 - 2.*reQ4nQ3nstarQ1nstar-2.*reQ3nQ2nstarQ1nstar
4223 + (pow(dReQ6n,2.)+pow(dImQ6n,2.))+2.*(pow(dReQ4n,2.)+pow(dImQ4n,2.))
4224 + 2.*(2.*(pow(dReQ3n,2.)+pow(dImQ3n,2.))+(pow(dReQ2n,2.)+pow(dImQ2n,2.))
4225 + (pow(dReQ1n,2.)+pow(dImQ1n,2.))-3.*dMult))
4226 / (dMult*(dMult-1.)*(dMult-2.)*(dMult-3.));
4227 fIntFlowCorrelationsAllPro->Fill(32.5,four4n2n3n3n,dMult*(dMult-1.)*(dMult-2.)*(dMult-3.));
4228 // Average 4-particle correlations vs M for all events:
4229 if(fCalculateAllCorrelationsVsM)
4231 fIntFlowCorrelationsAllVsMPro[32]->Fill(dMultiplicityBin,four4n2n3n3n,dMult*(dMult-1.)*(dMult-2.)*(dMult-3.));
4233 } // end of if(dMult>3.)
4236 Double_t five3n3n2n2n2n = 0.; // <cos(n(3*phi1+3*phi2-2*phi3-2*phi4-2*phi5))>
4239 five3n3n2n2n2n = (reQ3nQ3nQ2nstarQ2nstarQ2nstar-reQ6nQ2nstarQ2nstarQ2nstar-3.*reQ4nQ2nQ3nstarQ3nstar
4240 - 6.*reQ3nQ1nQ2nstarQ2nstar+2.*reQ6nQ3nstarQ3nstar+3.*reQ6nQ4nstarQ2nstar
4241 + 6.*reQ4nQ3nstarQ1nstar+6.*reQ4nQ2nstarQ2nstar
4242 + 12.*reQ3nQ2nstarQ1nstar+6.*reQ2nQ1nstarQ1nstar
4243 - 2.*((pow(dReQ6n,2.)+pow(dImQ6n,2.))
4244 + 3.*(pow(dReQ4n,2.)+pow(dImQ4n,2.))
4245 + 6.*(pow(dReQ3n,2.)+pow(dImQ3n,2.))
4246 + 9.*(pow(dReQ2n,2.)+pow(dImQ2n,2.))
4247 + 6.*(pow(dReQ1n,2.)+pow(dImQ1n,2.))-12.*dMult))
4248 / (dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.));
4249 fIntFlowCorrelationsAllPro->Fill(33.5,five3n3n2n2n2n,dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.));
4250 if(fCalculateAllCorrelationsVsM)
4252 fIntFlowCorrelationsAllVsMPro[33]->Fill(dMultiplicityBin,five3n3n2n2n2n,dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.));
4254 } // end of if(dMult>4.)
4256 // EXTRA correlations for Teaney-Yan study:
4258 Double_t two5n5n = 0.; // <cos(5n(phi1-phi2))>
4259 Double_t two6n6n = 0.; // <cos(6n(phi1-phi2))>
4262 two5n5n = (pow(dReQ5n,2.)+pow(dImQ5n,2.)-dMult)/(dMult*(dMult-1.));
4263 two6n6n = (pow(dReQ6n,2.)+pow(dImQ6n,2.)-dMult)/(dMult*(dMult-1.));
4264 // Average 2-particle correlations for all events:
4265 fIntFlowCorrelationsAllPro->Fill(34.5,two5n5n,dMult*(dMult-1.));
4266 fIntFlowCorrelationsAllPro->Fill(35.5,two6n6n,dMult*(dMult-1.));
4267 if(fCalculateAllCorrelationsVsM)
4269 fIntFlowCorrelationsAllVsMPro[34]->Fill(dMultiplicityBin,two5n5n,dMult*(dMult-1.));
4270 fIntFlowCorrelationsAllVsMPro[35]->Fill(dMultiplicityBin,two6n6n,dMult*(dMult-1.));
4272 } // end of if(dMult>1)
4275 Double_t three5n3n2n = 0.; // <cos(n(5*phi1-3*phi2-2*phi3)>
4276 Double_t three5n4n1n = 0.; // <cos(n(5*phi1-4*phi2-1*phi3)>
4277 Double_t three6n3n3n = 0.; // <cos(n(6*phi1-3*phi2-3*phi3)>
4278 Double_t three6n4n2n = 0.; // <cos(n(6*phi1-4*phi2-2*phi3)>
4279 Double_t three6n5n1n = 0.; // <cos(n(6*phi1-5*phi2-1*phi3)>
4282 three5n3n2n = (reQ5nQ3nstarQ2nstar-(pow(dReQ5n,2.)+pow(dImQ5n,2.))
4283 - (pow(dReQ3n,2.)+pow(dImQ3n,2.))
4284 - (pow(dReQ2n,2.)+pow(dImQ2n,2.))+2.*dMult)
4285 / (dMult*(dMult-1.)*(dMult-2.));
4286 three5n4n1n = (reQ5nQ4nstarQ1nstar-(pow(dReQ5n,2.)+pow(dImQ5n,2.))
4287 - (pow(dReQ4n,2.)+pow(dImQ4n,2.))
4288 - (pow(dReQ1n,2.)+pow(dImQ1n,2.))+2.*dMult)
4289 / (dMult*(dMult-1.)*(dMult-2.));
4290 three6n3n3n = (reQ6nQ3nstarQ3nstar-2.*(pow(dReQ3n,2.)+pow(dImQ3n,2.))
4291 - (pow(dReQ6n,2.)+pow(dImQ6n,2.))+2.*dMult)
4292 / (dMult*(dMult-1.)*(dMult-2.));
4293 three6n4n2n = (reQ6nQ4nstarQ2nstar-(pow(dReQ6n,2.)+pow(dImQ6n,2.))
4294 - (pow(dReQ4n,2.)+pow(dImQ4n,2.))
4295 - (pow(dReQ2n,2.)+pow(dImQ2n,2.))+2.*dMult)
4296 / (dMult*(dMult-1.)*(dMult-2.));
4297 three6n5n1n = (reQ6nQ5nstarQ1nstar-(pow(dReQ6n,2.)+pow(dImQ6n,2.))
4298 - (pow(dReQ5n,2.)+pow(dImQ5n,2.))
4299 - (pow(dReQ1n,2.)+pow(dImQ1n,2.))+2.*dMult)
4300 / (dMult*(dMult-1.)*(dMult-2.));
4301 // Average 3-particle correlations for all events:
4302 fIntFlowCorrelationsAllPro->Fill(36.5,three5n3n2n,dMult*(dMult-1.)*(dMult-2.)); // <<cos(n(5*phi1-3*phi2-2*phi3)>>
4303 fIntFlowCorrelationsAllPro->Fill(37.5,three5n4n1n,dMult*(dMult-1.)*(dMult-2.)); // <<cos(n(5*phi1-4*phi2-1*phi3)>>
4304 fIntFlowCorrelationsAllPro->Fill(38.5,three6n3n3n,dMult*(dMult-1.)*(dMult-2.)); // <<cos(n(6*phi1-3*phi2-3*phi3)>>
4305 fIntFlowCorrelationsAllPro->Fill(39.5,three6n4n2n,dMult*(dMult-1.)*(dMult-2.)); // <<cos(n(6*phi1-4*phi2-2*phi3)>>
4306 fIntFlowCorrelationsAllPro->Fill(40.5,three6n5n1n,dMult*(dMult-1.)*(dMult-2.)); // <<cos(n(6*phi1-5*phi2-1*phi3)>>
4307 if(fCalculateAllCorrelationsVsM)
4309 fIntFlowCorrelationsAllVsMPro[36]->Fill(dMultiplicityBin,three5n3n2n,dMult*(dMult-1.)*(dMult-2.));
4310 fIntFlowCorrelationsAllVsMPro[37]->Fill(dMultiplicityBin,three5n4n1n,dMult*(dMult-1.)*(dMult-2.));
4311 fIntFlowCorrelationsAllVsMPro[38]->Fill(dMultiplicityBin,three6n3n3n,dMult*(dMult-1.)*(dMult-2.));
4312 fIntFlowCorrelationsAllVsMPro[39]->Fill(dMultiplicityBin,three6n4n2n,dMult*(dMult-1.)*(dMult-2.));
4313 fIntFlowCorrelationsAllVsMPro[40]->Fill(dMultiplicityBin,three6n5n1n,dMult*(dMult-1.)*(dMult-2.));
4315 } // end of if(dMult>2)
4318 Double_t four6n3n2n1n = 0.; // <cos(n(6*phi1-3*phi2-2*phi3-1*phi4)>
4319 Double_t four3n2n3n2n = 0.; // <cos(n(3*phi1+2*phi2-3*phi3-2*phi4)>
4320 Double_t four4n1n3n2n = 0.; // <cos(n(4*phi1+1*phi2-3*phi3-2*phi4)>
4321 Double_t four3n3n3n3n = 0.; // <cos(3n(phi1+phi2-phi3-phi4))>
4322 //Double_t four4n2n3n3n = 0.; // <cos(n(4*phi1+2*phi2-3*phi3-3*phi4)> // I already have this one above
4323 Double_t four5n1n3n3n = 0.; // <cos(n(5*phi1+1*phi2-3*phi3-3*phi4)>
4324 Double_t four4n2n4n2n = 0.; // <cos(n(4*phi1+2*phi2-4*phi3-2*phi4)>
4325 Double_t four5n1n4n2n = 0.; // <cos(n(5*phi1+1*phi2-4*phi3-2*phi4)>
4326 Double_t four5n3n1n1n = 0.; // <cos(n(5*phi1-3*phi2-1*phi3-1*phi4)>
4327 Double_t four5n2n2n1n = 0.; // <cos(n(5*phi1-2*phi2-2*phi3-1*phi4)>
4328 Double_t four5n1n5n1n = 0.; // <cos(n(5*phi1+1*phi2-5*phi3-1*phi4)>
4329 Double_t four6n4n1n1n = 0.; // <cos(n(6*phi1-4*phi2-1*phi3-1*phi4)>
4330 Double_t four6n2n2n2n = 0.; // <cos(n(6*phi1-2*phi2-2*phi3-2*phi4)>
4333 four6n3n2n1n = (reQ6nQ3nstarQ2nstarQ1nstar-reQ6nQ4nstarQ2nstar-reQ6nQ3nstarQ3nstar-reQ6nQ5nstarQ1nstar
4334 - reQ5nQ3nstarQ2nstar-reQ4nQ3nstarQ1nstar-reQ3nQ2nstarQ1nstar
4335 + 2.*(pow(dReQ6n,2.)+pow(dImQ6n,2.))+pow(dReQ5n,2.)+pow(dImQ5n,2.)
4336 + pow(dReQ4n,2.)+pow(dImQ4n,2.)+3.*(pow(dReQ3n,2.)+pow(dImQ3n,2.))
4337 + 2.*(pow(dReQ2n,2.)+pow(dImQ2n,2.))+2.*(pow(dReQ1n,2.)+pow(dImQ1n,2.))-6.*dMult)
4338 / (dMult*(dMult-1.)*(dMult-2.)*(dMult-3.));
4339 four3n2n3n2n = (dQ3nQ2nQ3nstarQ2nstar-2.*reQ5nQ3nstarQ2nstar-2.*reQ3nQ2nstarQ1nstar
4340 + pow(dReQ5n,2.)+pow(dImQ5n,2.)+pow(dReQ1n,2.)+pow(dImQ1n,2.)
4341 -(dMult-4.)*(pow(dReQ3n,2.)+pow(dImQ3n,2.)+pow(dReQ2n,2.)+pow(dImQ2n,2.))
4343 / (dMult*(dMult-1.)*(dMult-2.)*(dMult-3.));
4344 four4n1n3n2n = (reQ4nQ1nQ3nstarQ2nstar-reQ5nQ3nstarQ2nstar-reQ5nQ4nstarQ1nstar-reQ4nQ3nstarQ1nstar
4345 - reQ4nQ2nstarQ2nstar-reQ3nQ2nstarQ1nstar-reQ2nQ1nstarQ1nstar
4346 + pow(dReQ5n,2.)+pow(dImQ5n,2.)+2.*(pow(dReQ4n,2.)+pow(dImQ4n,2.))
4347 + 2.*(pow(dReQ3n,2.)+pow(dImQ3n,2.))+3.*(pow(dReQ2n,2.)+pow(dImQ2n,2.))
4348 + 3.*(pow(dReQ1n,2.)+pow(dImQ1n,2.))-6.*dMult)
4349 / (dMult*(dMult-1.)*(dMult-2.)*(dMult-3.));
4350 four3n3n3n3n = (2.*dMult*(dMult-3.)+pow((pow(dReQ3n,2.)+pow(dImQ3n,2.)),2.)-4.*(dMult-2.)*(pow(dReQ3n,2.)
4351 + pow(dImQ3n,2.))-2.*reQ6nQ3nstarQ3nstar+(pow(dReQ6n,2.)+pow(dImQ6n,2.)))
4352 / (dMult*(dMult-1)*(dMult-2.)*(dMult-3.));
4353 //four4n2n3n3n = ; // I already have this one above
4354 four5n1n3n3n = (reQ5nQ1nQ3nstarQ3nstar-reQ6nQ5nstarQ1nstar-reQ6nQ3nstarQ3nstar-2.*reQ5nQ3nstarQ2nstar
4355 - 2.*reQ3nQ2nstarQ1nstar+pow(dReQ6n,2.)+pow(dImQ6n,2.)+2.*(pow(dReQ5n,2.)+pow(dImQ5n,2.))
4356 + 4.*(pow(dReQ3n,2.)+pow(dImQ3n,2.))+2.*(pow(dReQ2n,2.)+pow(dImQ2n,2.))
4357 + 2.*(pow(dReQ1n,2.)+pow(dImQ1n,2.))-6.*dMult)
4358 / (dMult*(dMult-1.)*(dMult-2.)*(dMult-3.));
4359 four4n2n4n2n = (dQ4nQ2nQ4nstarQ2nstar-2.*reQ6nQ4nstarQ2nstar-2.*reQ4nQ2nstarQ2nstar)
4360 / (dMult*(dMult-1.)*(dMult-2.)*(dMult-3.))
4361 - ((dMult-5.)*(pow(dReQ2n,2.)+pow(dImQ2n,2.))
4362 + (dMult-4.)*(pow(dReQ4n,2.)+pow(dImQ4n,2.))-(pow(dReQ6n,2.)+pow(dImQ6n,2.)))
4363 / (dMult*(dMult-1.)*(dMult-2.)*(dMult-3.))
4364 + (dMult-6.)/((dMult-1.)*(dMult-2.)*(dMult-3.));
4365 four5n1n4n2n = (reQ5nQ1nQ4nstarQ2nstar-reQ6nQ5nstarQ1nstar-reQ6nQ4nstarQ2nstar-reQ5nQ4nstarQ1nstar
4366 - reQ5nQ3nstarQ2nstar-reQ4nQ3nstarQ1nstar-reQ2nQ1nstarQ1nstar+pow(dReQ6n,2.)+pow(dImQ6n,2.)
4367 + 2.*(pow(dReQ5n,2.)+pow(dImQ5n,2.))+2.*(pow(dReQ4n,2.)+pow(dImQ4n,2.))
4368 + pow(dReQ3n,2.)+pow(dImQ3n,2.)+2.*(pow(dReQ2n,2.)+pow(dImQ2n,2.))
4369 + 3.*(pow(dReQ1n,2.)+pow(dImQ1n,2.))-6.*dMult)
4370 / (dMult*(dMult-1.)*(dMult-2.)*(dMult-3.));
4371 four5n3n1n1n = (reQ5nQ3nstarQ1nstarQ1nstar-2.*reQ5nQ4nstarQ1nstar-reQ5nQ3nstarQ2nstar-2.*reQ4nQ3nstarQ1nstar
4372 - reQ2nQ1nstarQ1nstar+2.*(pow(dReQ5n,2.)+pow(dImQ5n,2.))+2.*(pow(dReQ4n,2.)+pow(dImQ4n,2.))
4373 + 2.*(pow(dReQ3n,2.)+pow(dImQ3n,2.))+pow(dReQ2n,2.)+pow(dImQ2n,2.)
4374 + 4.*(pow(dReQ1n,2.)+pow(dImQ1n,2.))-6.*dMult)
4375 / (dMult*(dMult-1.)*(dMult-2.)*(dMult-3.));
4376 four5n2n2n1n = (reQ5nQ2nstarQ2nstarQ1nstar-reQ5nQ4nstarQ1nstar-2.*reQ5nQ3nstarQ2nstar-reQ4nQ2nstarQ2nstar
4377 - 2.*reQ3nQ2nstarQ1nstar+2.*(pow(dReQ5n,2.)+pow(dImQ5n,2.))+pow(dReQ4n,2.)+pow(dImQ4n,2.)
4378 + 2.*(pow(dReQ3n,2.)+pow(dImQ3n,2.))+4.*(pow(dReQ2n,2.)+pow(dImQ2n,2.))
4379 + 2.*(pow(dReQ1n,2.)+pow(dImQ1n,2.))-6.*dMult)
4380 / (dMult*(dMult-1.)*(dMult-2.)*(dMult-3.));
4381 four5n1n5n1n = (dQ5nQ1nQ5nstarQ1nstar-2.*reQ6nQ5nstarQ1nstar-2.*reQ5nQ4nstarQ1nstar
4382 + pow(dReQ6n,2.)+pow(dImQ6n,2.)-(dMult-4.)*(pow(dReQ5n,2.)+pow(dImQ5n,2.))
4383 + pow(dReQ4n,2.)+pow(dImQ4n,2.)-(dMult-4.)*(pow(dReQ1n,2.)+pow(dImQ1n,2.))+dMult*(dMult-6.))
4384 / (dMult*(dMult-1.)*(dMult-2.)*(dMult-3.));
4386 // TBI: Recursive formula needed:
4387 four6n4n1n1n = (reQ6nQ4nstarQ1nstarQ1nstar
4388 - dMult*(dMult-1.)*(dMult-2.)*(three2n1n1n+2.*three5n4n1n+2.*three6n5n1n+three6n4n2n)
4389 - dMult*(dMult-1.)*(2.*two1n1n+1.*two4n4n+1.*two6n6n+1.*two2n2n+2.*two5n5n)
4391 / (dMult*(dMult-1.)*(dMult-2.)*(dMult-3.));
4393 four6n2n2n2n = (reQ6nQ2nstarQ2nstarQ2nstar-3.*reQ6nQ4nstarQ2nstar-3.*reQ4nQ2nstarQ2nstar
4394 + 2.*(pow(dReQ6n,2.)+pow(dImQ6n,2.))+3.*(pow(dReQ4n,2.)+pow(dImQ4n,2.))
4395 + 6.*(pow(dReQ2n,2.)+pow(dImQ2n,2.))-6.*dMult)
4396 / (dMult*(dMult-1.)*(dMult-2.)*(dMult-3.));
4397 // Average 4-particle correlations for all events:
4398 fIntFlowCorrelationsAllPro->Fill(41.5,four6n3n2n1n,dMult*(dMult-1.)*(dMult-2.)*(dMult-3.));
4399 fIntFlowCorrelationsAllPro->Fill(42.5,four3n2n3n2n,dMult*(dMult-1.)*(dMult-2.)*(dMult-3.));
4400 fIntFlowCorrelationsAllPro->Fill(43.5,four4n1n3n2n,dMult*(dMult-1.)*(dMult-2.)*(dMult-3.));
4401 fIntFlowCorrelationsAllPro->Fill(44.5,four3n3n3n3n,dMult*(dMult-1.)*(dMult-2.)*(dMult-3.));
4402 //fIntFlowCorrelationsAllPro->Fill(45.5,four4n2n3n3n,dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)); // I already have this one above
4403 fIntFlowCorrelationsAllPro->Fill(46.5,four5n1n3n3n,dMult*(dMult-1.)*(dMult-2.)*(dMult-3.));
4404 fIntFlowCorrelationsAllPro->Fill(47.5,four4n2n4n2n,dMult*(dMult-1.)*(dMult-2.)*(dMult-3.));
4405 fIntFlowCorrelationsAllPro->Fill(48.5,four5n1n4n2n,dMult*(dMult-1.)*(dMult-2.)*(dMult-3.));
4406 fIntFlowCorrelationsAllPro->Fill(49.5,four5n3n1n1n,dMult*(dMult-1.)*(dMult-2.)*(dMult-3.));
4407 fIntFlowCorrelationsAllPro->Fill(50.5,four5n2n2n1n,dMult*(dMult-1.)*(dMult-2.)*(dMult-3.));
4408 fIntFlowCorrelationsAllPro->Fill(51.5,four5n1n5n1n,dMult*(dMult-1.)*(dMult-2.)*(dMult-3.));
4409 fIntFlowCorrelationsAllPro->Fill(58.5,four6n4n1n1n,dMult*(dMult-1.)*(dMult-2.)*(dMult-3.));
4410 fIntFlowCorrelationsAllPro->Fill(59.5,four6n2n2n2n,dMult*(dMult-1.)*(dMult-2.)*(dMult-3.));
4411 if(fCalculateAllCorrelationsVsM)
4413 fIntFlowCorrelationsAllVsMPro[41]->Fill(dMultiplicityBin,four6n3n2n1n,dMult*(dMult-1.)*(dMult-2.)*(dMult-3.));
4414 fIntFlowCorrelationsAllVsMPro[42]->Fill(dMultiplicityBin,four3n2n3n2n,dMult*(dMult-1.)*(dMult-2.)*(dMult-3.));
4415 fIntFlowCorrelationsAllVsMPro[43]->Fill(dMultiplicityBin,four4n1n3n2n,dMult*(dMult-1.)*(dMult-2.)*(dMult-3.));
4416 fIntFlowCorrelationsAllVsMPro[44]->Fill(dMultiplicityBin,four3n3n3n3n,dMult*(dMult-1.)*(dMult-2.)*(dMult-3.));
4417 //fIntFlowCorrelationsAllVsMPro[45]->Fill(dMultiplicityBin,four4n2n3n3n,dMult*(dMult-1.)*(dMult-2.)*(dMult-3.));
4418 fIntFlowCorrelationsAllVsMPro[46]->Fill(dMultiplicityBin,four5n1n3n3n,dMult*(dMult-1.)*(dMult-2.)*(dMult-3.));
4419 fIntFlowCorrelationsAllVsMPro[47]->Fill(dMultiplicityBin,four4n2n4n2n,dMult*(dMult-1.)*(dMult-2.)*(dMult-3.));
4420 fIntFlowCorrelationsAllVsMPro[48]->Fill(dMultiplicityBin,four5n1n4n2n,dMult*(dMult-1.)*(dMult-2.)*(dMult-3.));
4421 fIntFlowCorrelationsAllVsMPro[49]->Fill(dMultiplicityBin,four5n3n1n1n,dMult*(dMult-1.)*(dMult-2.)*(dMult-3.));
4422 fIntFlowCorrelationsAllVsMPro[50]->Fill(dMultiplicityBin,four5n2n2n1n,dMult*(dMult-1.)*(dMult-2.)*(dMult-3.));
4423 fIntFlowCorrelationsAllVsMPro[51]->Fill(dMultiplicityBin,four5n1n5n1n,dMult*(dMult-1.)*(dMult-2.)*(dMult-3.));
4424 fIntFlowCorrelationsAllVsMPro[58]->Fill(dMultiplicityBin,four6n4n1n1n,dMult*(dMult-1.)*(dMult-2.)*(dMult-3.));
4425 fIntFlowCorrelationsAllVsMPro[59]->Fill(dMultiplicityBin,four6n2n2n2n,dMult*(dMult-1.)*(dMult-2.)*(dMult-3.));
4427 } // end of if(dMult>3)
4430 Double_t five3n3n3n2n1n = 0.; // <cos(n(3*phi1+3*phi2-3*phi3-2*phi4-1*phi5)>
4431 Double_t five4n2n3n2n1n = 0.; // <cos(n(4*phi1+2*phi2-3*phi3-2*phi4-1*phi5)>
4432 Double_t five3n2n3n1n1n = 0.; // <cos(n(3*phi1+2*phi2-3*phi3-1*phi4-1*phi5)>
4433 Double_t five3n2n2n2n1n = 0.; // <cos(n(3*phi1+2*phi2-2*phi3-2*phi4-1*phi5)>
4434 Double_t five5n1n3n2n1n = 0.; // <cos(n(5*phi1+1*phi2-3*phi3-2*phi4-1*phi5)>
4435 Double_t five6n2n2n1n1n = 0.; // <cos(n(6*phi1-2*phi2-2*phi3-1*phi4-1*phi5)>
4436 Double_t five4n1n1n3n3n = 0.; // <cos(n(4*phi1+1*phi2+1*phi3-3*phi4-3*phi5)>
4439 five3n3n3n2n1n = (reQ3nQ3nQ3nstarQ2nstarQ1nstar-reQ6nQ3nstarQ2nstarQ1nstar-reQ5nQ1nQ3nstarQ3nstar-reQ4nQ2nQ3nstarQ3nstar
4440 + reQ6nQ5nstarQ1nstar+reQ6nQ4nstarQ2nstar+3.*reQ6nQ3nstarQ3nstar+4.*reQ5nQ3nstarQ2nstar+4.*reQ4nQ3nstarQ1nstar
4441 - 2.*(dMult-6.)*reQ3nQ2nstarQ1nstar-2.*(pow(dReQ3n,2.)+pow(dImQ3n,2.))*(pow(dReQ2n,2.)+pow(dImQ2n,2.))
4442 - 2.*(pow(dReQ3n,2.)+pow(dImQ3n,2.))*(pow(dReQ1n,2.)+pow(dImQ1n,2.))
4443 - 2.*(pow(dReQ6n,2.)+pow(dImQ6n,2.))-2.*(pow(dReQ5n,2.)+pow(dImQ5n,2.))
4444 - 2.*(pow(dReQ4n,2.)+pow(dImQ4n,2.))+2.*(3.*dMult-10.)*(pow(dReQ3n,2.)+pow(dImQ3n,2.))
4445 - pow((pow(dReQ3n,2.)+pow(dImQ3n,2.)),2.)+2.*(dMult-5.)*(pow(dReQ2n,2.)+pow(dImQ2n,2.))
4446 + 2.*(dMult-5.)*(pow(dReQ1n,2.)+pow(dImQ1n,2.))-4.*dMult*(dMult-6.))
4447 / (dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.));
4448 five4n2n3n2n1n = (reQ4nQ2nQ3nstarQ2nstarQ1nstar-reQ6nQ3nstarQ2nstarQ1nstar-reQ5nQ1nQ4nstarQ2nstar
4449 - reQ4nQ2nQ3nstarQ3nstar-reQ4nQ1nQ3nstarQ2nstar-reQ4nQ2nstarQ1nstarQ1nstar
4450 - reQ3nQ1nQ2nstarQ2nstar-(pow(dReQ3n,2.)+pow(dImQ3n,2.))*(pow(dReQ2n,2.)+pow(dImQ2n,2.))
4451 + 3.*reQ6nQ4nstarQ2nstar+reQ6nQ5nstarQ1nstar+reQ6nQ3nstarQ3nstar+reQ5nQ4nstarQ1nstar
4452 + 3.*reQ5nQ3nstarQ2nstar-(dMult-7.)*reQ4nQ3nstarQ1nstar+3.*reQ4nQ2nstarQ2nstar+7.*reQ3nQ2nstarQ1nstar
4453 + 4.*reQ2nQ1nstarQ1nstar-(pow(dReQ4n,2.)+pow(dImQ4n,2.))*(pow(dReQ2n,2.)+pow(dImQ2n,2.))
4454 - (pow(dReQ2n,2.)+pow(dImQ2n,2.))*(pow(dReQ1n,2.)+pow(dImQ1n,2.))
4455 - 2.*(pow(dReQ6n,2.)+pow(dImQ6n,2.))-2.*(pow(dReQ5n,2.)+pow(dImQ5n,2.))
4456 + (dMult-8.)*(pow(dReQ4n,2.)+pow(dImQ4n,2.))+(dMult-10.)*(pow(dReQ3n,2.)+pow(dImQ3n,2.))
4457 + 2.*(dMult-7.)*(pow(dReQ2n,2.)+pow(dImQ2n,2.))+(dMult-12.)*(pow(dReQ1n,2.)+pow(dImQ1n,2.))
4458 - 2.*dMult*(dMult-12.))
4459 / (dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.));
4460 five3n2n3n1n1n = (reQ3nQ2nQ3nstarQ1nstarQ1nstar-reQ5nQ3nstarQ1nstarQ1nstar-2.*reQ4nQ1nQ3nstarQ2nstar-reQ3nQ1nstarQ1nstarQ1nstar
4461 - 2.*reQ3nQ1nQ2nstarQ2nstar+2.*reQ5nQ4nstarQ1nstar+3.*reQ5nQ3nstarQ2nstar+6.*reQ4nQ3nstarQ1nstar
4462 + 2.*reQ4nQ2nstarQ2nstar+9.*reQ3nQ2nstarQ1nstar-(dMult-8.)*reQ2nQ1nstarQ1nstar
4463 - (pow(dReQ3n,2.)+pow(dImQ3n,2.))*(pow(dReQ2n,2.)+pow(dImQ2n,2.))
4464 - 2.*(pow(dReQ3n,2.)+pow(dImQ3n,2.))*(pow(dReQ1n,2.)+pow(dImQ1n,2.))
4465 - 2.*(pow(dReQ5n,2.)+pow(dImQ5n,2.))-4.*(pow(dReQ4n,2.)+pow(dImQ4n,2.))
4466 + 2.*(dMult-6.)*(pow(dReQ3n,2.)+pow(dImQ3n,2.))+(dMult-12.)*(pow(dReQ2n,2.)+pow(dImQ2n,2.))
4467 + 2.*(dMult-9.)*(pow(dReQ1n,2.)+pow(dImQ1n,2.))-2.*dMult*(dMult-12.))
4468 / (dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.));
4469 five3n2n2n2n1n = (reQ3nQ2nQ2nstarQ2nstarQ1nstar-reQ5nQ2nstarQ2nstarQ1nstar-reQ4nQ1nQ3nstarQ2nstar-reQ3nQ1nQ2nstarQ2nstar
4470 - 2.*(pow(dReQ3n,2.)+pow(dImQ3n,2.))*(pow(dReQ2n,2.)+pow(dImQ2n,2.))+reQ5nQ4nstarQ1nstar
4471 + 4.*reQ5nQ3nstarQ2nstar+reQ4nQ3nstarQ1nstar+3.*reQ4nQ2nstarQ2nstar-2.*(dMult-6.)*reQ3nQ2nstarQ1nstar
4472 + 4.*reQ2nQ1nstarQ1nstar-2.*(pow(dReQ5n,2.)+pow(dImQ5n,2.))
4473 - 2.*(pow(dReQ4n,2.)+pow(dImQ4n,2.))+2.*(dMult-5.)*(pow(dReQ3n,2.)+pow(dImQ3n,2.))
4474 - 2.*(pow(dReQ2n,2.)+pow(dImQ2n,2.))*(pow(dReQ1n,2.)+pow(dImQ1n,2.))
4475 - pow((pow(dReQ2n,2.)+pow(dImQ2n,2.)),2.)+2.*(3.*dMult-10.)*(pow(dReQ2n,2.)+pow(dImQ2n,2.))
4476 + 2.*(dMult-6.)*(pow(dReQ1n,2.)+pow(dImQ1n,2.))-4.*dMult*(dMult-6.))
4477 / (dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.));
4478 five5n1n3n2n1n = (reQ5nQ1nQ3nstarQ2nstarQ1nstar-reQ6nQ3nstarQ2nstarQ1nstar-reQ5nQ1nQ4nstarQ2nstar-reQ5nQ1nQ3nstarQ3nstar
4479 - reQ4nQ1nQ3nstarQ2nstar-reQ5nQ3nstarQ1nstarQ1nstar-reQ5nQ2nstarQ2nstarQ1nstar
4480 + 3.*reQ6nQ5nstarQ1nstar+reQ6nQ4nstarQ2nstar+reQ6nQ3nstarQ3nstar+4.*reQ5nQ4nstarQ1nstar
4481 - (dMult-7.)*reQ5nQ3nstarQ2nstar+4.*reQ4nQ3nstarQ1nstar+reQ4nQ2nstarQ2nstar+6.*reQ3nQ2nstarQ1nstar
4482 + 3.*reQ2nQ1nstarQ1nstar-(pow(dReQ5n,2.)+pow(dImQ5n,2.))*(pow(dReQ1n,2.)+pow(dImQ1n,2.))
4483 - (pow(dReQ3n,2.)+pow(dImQ3n,2.))*(pow(dReQ1n,2.)+pow(dImQ1n,2.))
4484 - (pow(dReQ2n,2.)+pow(dImQ2n,2.))*(pow(dReQ1n,2.)+pow(dImQ1n,2.))
4485 - 2.*(pow(dReQ6n,2.)+pow(dImQ6n,2.))+(dMult-8.)*(pow(dReQ5n,2.)+pow(dImQ5n,2.))
4486 - 4.*(pow(dReQ4n,2.)+pow(dImQ4n,2.))+(dMult-10.)*(pow(dReQ3n,2.)+pow(dImQ3n,2.))
4487 + (dMult-10.)*(pow(dReQ2n,2.)+pow(dImQ2n,2.))+2.*(dMult-7.)*(pow(dReQ1n,2.)+pow(dImQ1n,2.))
4488 - 2.*dMult*(dMult-12.))
4489 / (dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.));
4490 // Peter Jochumzsen:
4491 five6n2n2n1n1n = (reQ6nQ2nstarQ2nstarQ1nstarQ1nstar
4492 - 12.*pow(dReQ1n,2.)-12.*pow(dImQ1n,2.)
4493 - 14.*pow(dReQ2n,2.)-14.*pow(dImQ2n,2.)
4494 - 8.*pow(dReQ3n,2.)-8.*pow(dImQ3n,2.)
4495 - 6.*pow(dReQ4n,2.)-6.*pow(dImQ4n,2.)
4496 - 4.*pow(dReQ5n,2.)-4.*pow(dImQ5n,2.)
4497 - 6.*pow(dReQ6n,2.)-6.*pow(dImQ6n,2.)
4498 + 2.*reQ2nQ1nstarQ1nstar + 8.*reQ3nQ2nstarQ1nstar
4499 + 5.*reQ6nQ4nstarQ2nstar - reQ6nQ4nstarQ1nstarQ1nstar
4500 + 2.*reQ6nQ3nstarQ3nstar - reQ6nQ2nstarQ2nstarQ2nstar
4501 + 4.*reQ4nQ2nstarQ2nstar - 2.*reQ4nQ2nstarQ1nstarQ1nstar
4502 + 2.*reQ5nQ4nstarQ1nstar - 2.*reQ5nQ2nstarQ2nstarQ1nstar
4503 + 4.*reQ4nQ3nstarQ1nstar + 4.*reQ5nQ3nstarQ2nstar
4504 + 4.*reQ6nQ5nstarQ1nstar - 4.*reQ6nQ3nstarQ2nstarQ1nstar + 24.*dMult)
4505 / (dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.));
4506 // Peter Jochumzsen:
4507 five4n1n1n3n3n = (reQ4nQ1nQ1nQ3nstarQ3nstar-16.*pow(dReQ1n,2.)-16.*pow(dImQ1n,2.)
4508 - 10.*pow(dReQ2n,2.)-10.*pow(dImQ2n,2.)-12.*pow(dReQ3n,2.)-12.*pow(dImQ3n,2.)
4509 - 6.*pow(dReQ4n,2.)-6.*pow(dImQ4n,2.)-4.*pow(dReQ5n,2.)-4.*pow(dImQ5n,2.)
4510 - 2.*pow(dReQ6n,2.)-2.*pow(dImQ6n,2.)+6.*reQ2nQ1nstarQ1nstar
4511 - 1.*reQ6nQ4nstarQ1nstarQ1nstar-1.*reQ4nQ2nQ3nstarQ3nstar
4512 + 1.*reQ6nQ4nstarQ2nstar-2.*reQ5nQ1nQ3nstarQ3nstar
4513 + 2.*reQ4nQ2nstarQ2nstar+4.*reQ4nQ3nstarQ1nstar
4514 - 2.*reQ3nQ1nstarQ1nstarQ1nstar+10.*reQ3nQ2nstarQ1nstar
4515 + 2.*reQ6nQ5nstarQ1nstar+2.*reQ6nQ3nstarQ3nstar
4516 - 4.*reQ4nQ1nQ3nstarQ2nstar+4.*reQ5nQ4nstarQ1nstar
4517 + 4.*reQ5nQ3nstarQ2nstar + 24.*dMult)
4518 / (dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.));
4519 // Average 5-particle correlations for all events:
4520 fIntFlowCorrelationsAllPro->Fill(52.5,five3n3n3n2n1n,dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.));
4521 fIntFlowCorrelationsAllPro->Fill(53.5,five4n2n3n2n1n,dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.));
4522 fIntFlowCorrelationsAllPro->Fill(54.5,five3n2n3n1n1n,dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.));
4523 fIntFlowCorrelationsAllPro->Fill(55.5,five3n2n2n2n1n,dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.));
4524 fIntFlowCorrelationsAllPro->Fill(56.5,five5n1n3n2n1n,dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.));
4525 fIntFlowCorrelationsAllPro->Fill(60.5,five6n2n2n1n1n,dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.));
4526 fIntFlowCorrelationsAllPro->Fill(61.5,five4n1n1n3n3n,dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.));
4527 if(fCalculateAllCorrelationsVsM)
4529 fIntFlowCorrelationsAllVsMPro[52]->Fill(dMultiplicityBin,five3n3n3n2n1n,dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.));
4530 fIntFlowCorrelationsAllVsMPro[53]->Fill(dMultiplicityBin,five4n2n3n2n1n,dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.));
4531 fIntFlowCorrelationsAllVsMPro[54]->Fill(dMultiplicityBin,five3n2n3n1n1n,dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.));
4532 fIntFlowCorrelationsAllVsMPro[55]->Fill(dMultiplicityBin,five3n2n2n2n1n,dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.));
4533 fIntFlowCorrelationsAllVsMPro[56]->Fill(dMultiplicityBin,five5n1n3n2n1n,dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.));
4534 fIntFlowCorrelationsAllVsMPro[60]->Fill(dMultiplicityBin,five6n2n2n1n1n,dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.));
4535 fIntFlowCorrelationsAllVsMPro[61]->Fill(dMultiplicityBin,five4n1n1n3n3n,dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.));
4537 } // end of if(dMult>4)
4540 Double_t six3n2n1n3n2n1n = 0.; // <cos(n(3*phi1+2*phi2+1*phi3-3*phi4-2*phi5-1*phi6)>
4541 Double_t six3n3n2n2n1n1n = 0.; // <cos(n(3*phi1+3*phi2-2*phi3-2*phi4-1*phi5-1*phi6)>
4544 six3n2n1n3n2n1n = (dQ3nQ2nQ1nQ3nstarQ2nstarQ1nstar-2.*reQ3nQ3nQ3nstarQ2nstarQ1nstar
4545 - 2.*reQ3nQ2nQ2nstarQ2nstarQ1nstar-2.*reQ3nQ1nQ2nstarQ1nstarQ1nstar
4546 - 2.*reQ3nQ2nQ3nstarQ1nstarQ1nstar-2.*reQ4nQ2nQ3nstarQ2nstarQ1nstar
4547 - 2.*reQ5nQ1nQ3nstarQ2nstarQ1nstar+4.*reQ6nQ3nstarQ2nstarQ1nstar
4548 + 2.*reQ5nQ1nQ4nstarQ2nstar+2.*reQ5nQ1nQ3nstarQ3nstar
4549 + 2.*reQ4nQ2nQ3nstarQ3nstar+6.*reQ4nQ1nQ3nstarQ2nstar
4550 + 2.*reQ5nQ3nstarQ1nstarQ1nstar+2.*reQ5nQ2nstarQ2nstarQ1nstar
4551 + 6.*reQ3nQ1nQ2nstarQ2nstar+2.*reQ4nQ2nstarQ1nstarQ1nstar
4552 - 4.*reQ6nQ5nstarQ1nstar-4.*reQ6nQ4nstarQ2nstar-6.*reQ5nQ4nstarQ1nstar
4553 - 4.*reQ6nQ3nstarQ3nstar+2.*(dMult-11.)*reQ5nQ3nstarQ2nstar
4554 + 2.*(dMult-13.)*reQ4nQ3nstarQ1nstar-8.*reQ4nQ2nstarQ2nstar
4555 + 2.*(5.*dMult-32.)*reQ3nQ2nstarQ1nstar+2.*reQ3nQ1nstarQ1nstarQ1nstar
4556 + 2.*(dMult-13.)*reQ2nQ1nstarQ1nstar
4557 - (dMult-10.)*(pow(dReQ3n,2.)+pow(dImQ3n,2.))*(pow(dReQ2n,2.)+pow(dImQ2n,2.))
4558 + (pow(dReQ5n,2.)+pow(dImQ5n,2.))*(pow(dReQ1n,2.)+pow(dImQ1n,2.))
4559 + (pow(dReQ4n,2.)+pow(dImQ4n,2.))*(pow(dReQ2n,2.)+pow(dImQ2n,2.))
4560 - (dMult-11.)*(pow(dReQ3n,2.)+pow(dImQ3n,2.))*(pow(dReQ1n,2.)+pow(dImQ1n,2.))
4561 - (dMult-10.)*(pow(dReQ2n,2.)+pow(dImQ2n,2.))*(pow(dReQ1n,2.)+pow(dImQ1n,2.))
4562 + 4.*(pow(dReQ6n,2.)+pow(dImQ6n,2.))-(dMult-12.)*(pow(dReQ5n,2.)+pow(dImQ5n,2.))
4563 - (dMult-16.)*(pow(dReQ4n,2.)+pow(dImQ4n,2.))+pow((pow(dReQ3n,2.)+pow(dImQ3n,2.)),2.)
4564 + (dMult*dMult-19.*dMult+68.)*(pow(dReQ3n,2.)+pow(dImQ3n,2.))
4565 + (dMult*dMult-19.*dMult+72.)*(pow(dReQ2n,2.)+pow(dImQ2n,2.))
4566 + pow((pow(dReQ2n,2.)+pow(dImQ2n,2.)),2.)+pow((pow(dReQ1n,2.)+pow(dImQ1n,2.)),2.)
4567 + (dMult*dMult-20.*dMult+80.)*(pow(dReQ1n,2.)+pow(dImQ1n,2.))
4568 - dMult*(dMult-12.)*(dMult-10.))
4569 / (dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.)*(dMult-5.));
4571 // Peter Jochumzsen:
4572 six3n3n2n2n1n1n = (reQ3nQ3nQ2nstarQ2nstarQ1nstarQ1nstar
4573 + (80.-16.*dMult)*pow(dReQ1n,2.)+(80.-16.*dMult)*pow(dImQ1n,2.)
4574 + (78.-16.*dMult)*pow(dReQ2n,2.)+(78.-16.*dMult)*pow(dImQ2n,2.)
4575 + (72.-16.*dMult)*pow(dReQ3n,2.)+(72.-16.*dMult)*pow(dImQ3n,2.)
4576 + 14.*pow(dReQ4n,2.)+14.*pow(dImQ4n,2.)
4577 + 8.*pow(dReQ5n,2.)+8.*pow(dImQ5n,2.)
4578 + 6.*pow(dReQ6n,2.)+6.*pow(dImQ6n,2.)
4579 + 1.*reQ6nQ2nstarQ2nstarQ2nstar - 1.*reQ6nQ2nstarQ2nstarQ1nstarQ1nstar
4580 - 76.*reQ3nQ2nstarQ1nstar + 4.*reQ3nQ1nstarQ1nstarQ1nstar
4581 - 8.*reQ3nQ2nstarQ1nstar + 8.*dQ2nQ1nQ2nstarQ1nstar
4582 + 4.*reQ5nQ2nstarQ2nstarQ1nstar - 2.*reQ6nQ3nstarQ3nstar
4583 + 4.*reQ6nQ3nstarQ2nstarQ1nstar - 4.*reQ5nQ4nstarQ1nstar
4584 + 16.*dMult*reQ3nQ2nstarQ1nstar - 2.*reQ4nQ2nstarQ2nstar
4585 - 4.*reQ3nQ3nQ3nstarQ2nstarQ1nstar -8.*reQ4nQ3nstarQ1nstar
4586 - 10.*reQ4nQ2nstarQ2nstar + 4.*reQ4nQ2nstarQ1nstarQ1nstar
4587 - 12.*reQ4nQ3nstarQ1nstar + 8.*dQ3nQ1nQ3nstarQ1nstar
4588 + 8.*reQ3nQ1nQ2nstarQ2nstar - 4.*reQ3nQ1nQ2nstarQ1nstarQ1nstar
4589 + 5.*reQ4nQ2nQ3nstarQ3nstar+2.*pow(pow(dReQ2n,2.)+pow(dImQ2n,2.),2.)
4590 + 4.*reQ5nQ1nQ3nstarQ3nstar+2.*pow(pow(dReQ3n,2.)+pow(dImQ3n,2.),2.)
4591 - 6.*reQ6nQ3nstarQ3nstar - 14.*reQ2nQ1nstarQ1nstar
4592 - 1.*reQ3nQ3nQ2nstarQ2nstarQ2nstar-4.*reQ3nQ2nQ2nstarQ2nstarQ1nstar
4593 - 1.*reQ4nQ1nQ1nQ3nstarQ3nstar-8.*reQ5nQ3nstarQ2nstar
4594 + 2.*pow(pow(dReQ1n,2.)+pow(dImQ1n,2.),2.) - 10.*reQ2nQ1nstarQ1nstar
4595 - 4.*reQ6nQ5nstarQ1nstar-5.*reQ6nQ4nstarQ2nstar
4596 + 1.*reQ6nQ4nstarQ1nstarQ1nstar-8.*reQ5nQ3nstarQ2nstar
4597 + 4.*reQ4nQ1nQ3nstarQ2nstar+8.*dQ3nQ2nQ3nstarQ2nstar
4598 - 120.*dMult + 16.*dMult*dMult)
4599 / (dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.)*(dMult-5.));
4601 // Average 6-particle correlations for all events:
4602 fIntFlowCorrelationsAllPro->Fill(57.5,six3n2n1n3n2n1n,dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.)*(dMult-5.));
4603 fIntFlowCorrelationsAllPro->Fill(62.5,six3n3n2n2n1n1n,dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.)*(dMult-5.));
4604 if(fCalculateAllCorrelationsVsM)
4606 fIntFlowCorrelationsAllVsMPro[57]->Fill(dMultiplicityBin,six3n2n1n3n2n1n,dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.)*(dMult-5.));
4607 fIntFlowCorrelationsAllVsMPro[62]->Fill(dMultiplicityBin,six3n3n2n2n1n1n,dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.)*(dMult-5.));
4609 } // end of if(dMult>5.)
4611 } // end of AliFlowAnalysisWithQCumulants::CalculateIntFlowCorrelations()
4613 //=====================================================================================================
4615 void AliFlowAnalysisWithQCumulants::CalculateMixedHarmonics()
4617 // Calculate in this method all multi-particle azimuthal correlations in mixed harmonics.
4618 // (Remark: For completeness sake, we also calculate here again correlations in the same harmonic.)
4620 // a) Access Q-vectors and multiplicity of current event;
4621 // b) Determine multiplicity weights and fill some histos;
4622 // c) Calculate 2-p correlations;
4623 // d) Calculate 3-p correlations;
4624 // e) Calculate 4-p correlations;
4625 // f) Calculate 5-p correlations;
4626 // g) Calculate 6-p correlations;
4627 // h) Calculate 7-p correlations;
4628 // i) Calculate 8-p correlations.
4630 // a) Access Q-vectors and multiplicity of current event:
4631 // Multiplicity of an event:
4632 Double_t dMult = (*fSpk)(0,0);
4633 // Real parts of non-weighted Q-vectors evaluated in harmonics n, 2n, 3n, 4n, 5n and 6n:
4634 Double_t dReQ1n = (*fReQ)(0,0);
4635 Double_t dReQ2n = (*fReQ)(1,0);
4636 Double_t dReQ3n = (*fReQ)(2,0);
4637 Double_t dReQ4n = (*fReQ)(3,0);
4638 Double_t dReQ5n = (*fReQ)(4,0);
4639 Double_t dReQ6n = (*fReQ)(5,0);
4640 Double_t dReQ7n = (*fReQ)(6,0);
4641 Double_t dReQ8n = (*fReQ)(7,0);
4642 Double_t dReQ9n = (*fReQ)(8,0);
4643 Double_t dReQ10n = (*fReQ)(9,0);
4644 Double_t dReQ11n = (*fReQ)(10,0);
4645 Double_t dReQ12n = (*fReQ)(11,0);
4646 // Imaginary parts of non-weighted Q-vectors evaluated in harmonics n, 2n, 3n, 4n, 5n and 6n:
4647 Double_t dImQ1n = (*fImQ)(0,0);
4648 Double_t dImQ2n = (*fImQ)(1,0);
4649 Double_t dImQ3n = (*fImQ)(2,0);
4650 Double_t dImQ4n = (*fImQ)(3,0);
4651 Double_t dImQ5n = (*fImQ)(4,0);
4652 Double_t dImQ6n = (*fImQ)(5,0);
4653 Double_t dImQ7n = (*fImQ)(6,0);
4654 Double_t dImQ8n = (*fImQ)(7,0);
4655 Double_t dImQ9n = (*fImQ)(8,0);
4656 Double_t dImQ10n = (*fImQ)(9,0);
4657 Double_t dImQ11n = (*fImQ)(10,0);
4658 Double_t dImQ12n = (*fImQ)(11,0);
4659 // All mixed correlators:
4660 Double_t allMixedCorrelators[139] = {0.};
4662 // Real parts of expressions involving various combinations of Q-vectors which appears
4663 // simultaneously in several equations for multiparticle correlations bellow:
4664 // Re[Q_{2n}Q_{n}^*Q_{n}^*]
4665 Double_t reQ2nQ1nstarQ1nstar = pow(dReQ1n,2.)*dReQ2n+2.*dReQ1n*dImQ1n*dImQ2n-pow(dImQ1n,2.)*dReQ2n;
4666 // Re[Q_{6n}Q_{3n}^*Q_{3n}^*]
4667 Double_t reQ6nQ3nstarQ3nstar = pow(dReQ3n,2.)*dReQ6n+2.*dReQ3n*dImQ3n*dImQ6n-pow(dImQ3n,2.)*dReQ6n;
4668 // Re[Q_{4n}Q_{2n}^*Q_{2n}^*]
4669 Double_t reQ4nQ2nstarQ2nstar = pow(dReQ2n,2.)*dReQ4n+2.*dReQ2n*dImQ2n*dImQ4n-pow(dImQ2n,2.)*dReQ4n;
4670 // Re[Q_{4n}Q_{3n}^*Q_{n}^*]
4671 Double_t reQ4nQ3nstarQ1nstar = dReQ4n*(dReQ3n*dReQ1n-dImQ3n*dImQ1n)+dImQ4n*(dReQ3n*dImQ1n+dImQ3n*dReQ1n);
4672 // Re[Q_{3n}Q_{2n}^*Q_{n}^*]
4673 Double_t reQ3nQ2nstarQ1nstar = dReQ3n*dReQ2n*dReQ1n-dReQ3n*dImQ2n*dImQ1n+dImQ3n*dReQ2n*dImQ1n
4674 + dImQ3n*dImQ2n*dReQ1n;
4675 // Re[Q_{5n}Q_{3n}^*Q_{2n}^*]
4676 Double_t reQ5nQ3nstarQ2nstar = dReQ5n*dReQ2n*dReQ3n-dReQ5n*dImQ2n*dImQ3n+dImQ5n*dReQ2n*dImQ3n
4677 + dImQ5n*dImQ2n*dReQ3n;
4678 // Re[Q_{5n}Q_{4n}^*Q_{1n}^*]
4679 Double_t reQ5nQ4nstarQ1nstar = dReQ5n*dReQ4n*dReQ1n-dReQ5n*dImQ4n*dImQ1n+dImQ5n*dReQ4n*dImQ1n
4680 + dImQ5n*dImQ4n*dReQ1n;
4681 // Re[Q_{6n}Q_{5n}^*Q_{1n}^*]
4682 Double_t reQ6nQ5nstarQ1nstar = dReQ6n*dReQ5n*dReQ1n-dReQ6n*dImQ5n*dImQ1n+dImQ6n*dReQ5n*dImQ1n
4683 + dImQ6n*dImQ5n*dReQ1n;
4684 // Re[Q_{6n}Q_{4n}^*Q_{2n}^*]
4685 Double_t reQ6nQ4nstarQ2nstar = dReQ6n*dReQ4n*dReQ2n-dReQ6n*dImQ4n*dImQ2n+dImQ6n*dReQ4n*dImQ2n
4686 + dImQ6n*dImQ4n*dReQ2n;
4687 // Re[Q_{3n}Q_{n}Q_{2n}^*Q_{2n}^*]
4688 Double_t reQ3nQ1nQ2nstarQ2nstar = (pow(dReQ2n,2.)-pow(dImQ2n,2.))*(dReQ3n*dReQ1n-dImQ3n*dImQ1n)
4689 + 2.*dReQ2n*dImQ2n*(dReQ3n*dImQ1n+dImQ3n*dReQ1n);
4690 // Re[Q_{3n}Q_{n}^*Q_{n}^*Q_{n}^*]
4691 Double_t reQ3nQ1nstarQ1nstarQ1nstar = dReQ3n*pow(dReQ1n,3)-3.*dReQ1n*dReQ3n*pow(dImQ1n,2)
4692 + 3.*dImQ1n*dImQ3n*pow(dReQ1n,2)-dImQ3n*pow(dImQ1n,3);
4693 // Re[Q_{6n}Q_{2n}^*Q_{2n}^*Q_{2n}^*]
4694 Double_t reQ6nQ2nstarQ2nstarQ2nstar = dReQ6n*pow(dReQ2n,3)-3.*dReQ2n*dReQ6n*pow(dImQ2n,2)
4695 + 3.*dImQ2n*dImQ6n*pow(dReQ2n,2)-dImQ6n*pow(dImQ2n,3);
4696 // Re[Q_{4n}Q_{2n}^*Q_{n}^*Q_{n}^*]
4697 Double_t reQ4nQ2nstarQ1nstarQ1nstar = (dReQ4n*dReQ2n+dImQ4n*dImQ2n)*(pow(dReQ1n,2)-pow(dImQ1n,2))
4698 + 2.*dReQ1n*dImQ1n*(dImQ4n*dReQ2n-dReQ4n*dImQ2n);
4699 // Re[Q_{4n}Q_{2n}^*Q_{3n}^*Q_{3n}^*]
4700 Double_t reQ4nQ2nQ3nstarQ3nstar = (dReQ4n*dReQ2n-dImQ4n*dImQ2n)*(dReQ3n*dReQ3n-dImQ3n*dImQ3n)
4701 + 2.*(dReQ4n*dImQ2n+dImQ4n*dReQ2n)*dReQ3n*dImQ3n;
4702 // Re[Q_{4n}Q_{n}Q_{3n}^*Q_{2n}^*]
4703 Double_t reQ4nQ1nQ3nstarQ2nstar = dImQ1n*dImQ2n*dImQ3n*dImQ4n+dImQ3n*dImQ4n*dReQ1n*dReQ2n
4704 + dImQ2n*dImQ4n*dReQ1n*dReQ3n-dImQ1n*dImQ4n*dReQ2n*dReQ3n
4705 - dImQ2n*dImQ3n*dReQ1n*dReQ4n+dImQ1n*dImQ3n*dReQ2n*dReQ4n
4706 + dImQ1n*dImQ2n*dReQ3n*dReQ4n+dReQ1n*dReQ2n*dReQ3n*dReQ4n;
4708 // Re[Q_{5n}Q_{n}Q_{4n}^*Q_{2n}^*]
4709 Double_t reQ5nQ1nQ4nstarQ2nstar = dImQ1n*dImQ2n*dImQ4n*dImQ5n+dImQ4n*dImQ5n*dReQ1n*dReQ2n
4710 + dImQ2n*dImQ5n*dReQ1n*dReQ4n-dImQ1n*dImQ5n*dReQ2n*dReQ4n
4711 - dImQ2n*dImQ4n*dReQ1n*dReQ5n+dImQ1n*dImQ4n*dReQ2n*dReQ5n
4712 + dImQ1n*dImQ2n*dReQ4n*dReQ5n+dReQ1n*dReQ2n*dReQ4n*dReQ5n;
4713 // Re[Q_{5n}Q_{n}Q_{3n}^*Q_{3n}^*]
4714 Double_t reQ5nQ1nQ3nstarQ3nstar = dImQ1n*pow(dImQ3n,2.)*dImQ5n+2.*dImQ3n*dImQ5n*dReQ1n*dReQ3n
4715 - dImQ1n*dImQ5n*pow(dReQ3n,2.)-pow(dImQ3n,2.)*dReQ1n*dReQ5n
4716 + 2.*dImQ1n*dImQ3n*dReQ3n*dReQ5n+dReQ1n*pow(dReQ3n,2.)*dReQ5n;
4717 // Re[Q_{5n}Q_{3n}^*Q_{n}^*Q_{n}^*]
4718 Double_t reQ5nQ3nstarQ1nstarQ1nstar = -pow(dImQ1n,2.)*dImQ3n*dImQ5n+dImQ3n*dImQ5n*pow(dReQ1n,2.)
4719 + 2.*dImQ1n*dImQ5n*dReQ1n*dReQ3n-2.*dImQ1n*dImQ3n*dReQ1n*dReQ5n
4720 - pow(dImQ1n,2.)*dReQ3n*dReQ5n+pow(dReQ1n,2.)*dReQ3n*dReQ5n;
4721 // Re[Q_{5n}Q_{2n}^*Q_{2n}^*Q_{n}^*]
4722 Double_t reQ5nQ2nstarQ2nstarQ1nstar = -pow(dImQ2n,2.)*dImQ1n*dImQ5n+dImQ1n*dImQ5n*pow(dReQ2n,2.)
4723 + 2.*dImQ2n*dImQ5n*dReQ2n*dReQ1n-2.*dImQ2n*dImQ1n*dReQ2n*dReQ5n
4724 - pow(dImQ2n,2.)*dReQ1n*dReQ5n+pow(dReQ2n,2.)*dReQ1n*dReQ5n;
4725 // Re[Q_{6n}Q_{4n}^*Q_{n}^*Q_{n}^*]
4726 Double_t reQ6nQ4nstarQ1nstarQ1nstar = -pow(dImQ1n,2.)*dImQ4n*dImQ6n+dImQ4n*dImQ6n*pow(dReQ1n,2.)
4727 + 2.*dImQ1n*dImQ6n*dReQ1n*dReQ4n-2.*dImQ1n*dImQ4n*dReQ1n*dReQ6n
4728 - pow(dImQ1n,2.)*dReQ4n*dReQ6n+pow(dReQ1n,2.)*dReQ4n*dReQ6n;
4729 /*// |Q_{2n}|^2 |Q_{n}|^2
4730 Double_t dQ2nQ1nQ2nstarQ1nstar = (pow(dReQ2n,2.)+pow(dImQ2n,2.))*(pow(dReQ1n,2.)+pow(dImQ1n,2.));
4731 // |Q_{4n}|^2 |Q_{2n}|^2
4732 Double_t dQ4nQ2nQ4nstarQ2nstar = (pow(dReQ4n,2.)+pow(dImQ4n,2.))*(pow(dReQ2n,2.)+pow(dImQ2n,2.));
4733 // |Q_{3n}|^2 |Q_{2n}|^2
4734 Double_t dQ3nQ2nQ3nstarQ2nstar = (pow(dReQ2n,2.)+pow(dImQ2n,2.))*(pow(dReQ3n,2.)+pow(dImQ3n,2.));
4735 // |Q_{5n}|^2 |Q_{n}|^2
4736 Double_t dQ5nQ1nQ5nstarQ1nstar = (pow(dReQ5n,2.)+pow(dImQ5n,2.))*(pow(dReQ1n,2.)+pow(dImQ1n,2.));
4737 // |Q_{3n}|^2 |Q_{n}|^2
4738 Double_t dQ3nQ1nQ3nstarQ1nstar = (pow(dReQ3n,2.)+pow(dImQ3n,2.))*(pow(dReQ1n,2.)+pow(dImQ1n,2.));*/
4739 // Re[Q_{2n}Q_{n}Q_{n}^*Q_{n}^*Q_{n}^*]
4740 /*Double_t reQ2nQ1nQ1nstarQ1nstarQ1nstar = (dReQ2n*dReQ1n-dImQ2n*dImQ1n)*(pow(dReQ1n,3)-3.*dReQ1n*pow(dImQ1n,2))
4741 + (dReQ2n*dImQ1n+dReQ1n*dImQ2n)*(3.*dImQ1n*pow(dReQ1n,2)-pow(dImQ1n,3));*/
4742 // Re[Q_{2n}Q_{2n}Q_{2n}^*Q_{n}^*Q_{n}^*]
4743 /*Double_t reQ2nQ2nQ2nstarQ1nstarQ1nstar = (pow(dReQ2n,2.)+pow(dImQ2n,2.))
4744 * (dReQ2n*(pow(dReQ1n,2.)-pow(dImQ1n,2.)) + 2.*dImQ2n*dReQ1n*dImQ1n);*/
4745 /*// Re[Q_{4n}Q_{n}^*Q_{n}^*Q_{n}^*Q_{n}^*]
4746 Double_t reQ4nQ1nstarQ1nstarQ1nstarQ1nstar = pow(dReQ1n,4.)*dReQ4n-6.*pow(dReQ1n,2.)*dReQ4n*pow(dImQ1n,2.)
4747 + pow(dImQ1n,4.)*dReQ4n+4.*pow(dReQ1n,3.)*dImQ1n*dImQ4n
4748 - 4.*pow(dImQ1n,3.)*dReQ1n*dImQ4n;*/
4749 // Re[Q_{3n}Q_{n}Q_{2n}^*Q_{n}^*Q_{n}^*]
4750 /*Double_t reQ3nQ1nQ2nstarQ1nstarQ1nstar = (pow(dReQ1n,2.)+pow(dImQ1n,2.))
4751 * (dReQ1n*dReQ2n*dReQ3n-dReQ3n*dImQ1n*dImQ2n
4752 + dReQ2n*dImQ1n*dImQ3n+dReQ1n*dImQ2n*dImQ3n);*/
4753 // Re[Q_{6n}Q_{n}Q_{3n}^*Q_{2n}^*Q_{n}^*]
4754 Double_t reQ6nQ3nstarQ2nstarQ1nstar = dReQ1n*dReQ2n*dReQ3n*dReQ6n-dReQ3n*dReQ6n*dImQ1n*dImQ2n
4755 - dReQ2n*dReQ6n*dImQ1n*dImQ3n-dReQ1n*dReQ6n*dImQ2n*dImQ3n
4756 + dReQ2n*dReQ3n*dImQ1n*dImQ6n+dReQ1n*dReQ3n*dImQ2n*dImQ6n
4757 + dReQ1n*dReQ2n*dImQ3n*dImQ6n-dImQ1n*dImQ2n*dImQ3n*dImQ6n;
4758 // Re[Q_{3n}Q_{3n}Q_{3n}^*Q_{2n}^*Q_{n}^*]
4759 /*Double_t reQ3nQ3nQ3nstarQ2nstarQ1nstar = (pow(dImQ3n,2.)+pow(dReQ3n,2.))
4760 * (dImQ2n*dImQ3n*dReQ1n+dImQ1n*dImQ3n*dReQ2n
4761 - dImQ1n*dImQ2n*dReQ3n+dReQ1n*dReQ2n*dReQ3n);*/
4762 /*// Re[Q_{3n}Q_{3n}Q_{2n}^*Q_{2n}^*Q_{2n}^*]
4763 Double_t reQ3nQ3nQ2nstarQ2nstarQ2nstar = pow(dReQ2n,3.)*pow(dReQ3n,2.)
4764 - 3.*dReQ2n*pow(dReQ3n,2.)*pow(dImQ2n,2.)
4765 + 6.*pow(dReQ2n,2.)*dReQ3n*dImQ2n*dImQ3n
4766 - 2.*dReQ3n*pow(dImQ2n,3.)*dImQ3n-pow(dReQ2n,3.)*pow(dImQ3n,2.)
4767 + 3.*dReQ2n*pow(dImQ2n,2.)*pow(dImQ3n,2.);*/
4768 // Re[Q_{4n}Q_{2n}Q_{3n}^*Q_{2n}^*Q_{n}^*]
4769 /*Double_t reQ4nQ2nQ3nstarQ2nstarQ1nstar = (pow(dImQ2n,2.)+pow(dReQ2n,2.))
4770 * (dImQ3n*dImQ4n*dReQ1n+dImQ1n*dImQ4n*dReQ3n
4771 - dImQ1n*dImQ3n*dReQ4n+dReQ1n*dReQ3n*dReQ4n);*/
4772 // Re[Q_{3n}Q_{2n}Q_{3n}^*Q_{n}^*Q_{n}^*]
4773 /*Double_t reQ3nQ2nQ3nstarQ1nstarQ1nstar = -(pow(dImQ3n,2.)+pow(dReQ3n,2.))
4774 * (-2.*dImQ1n*dImQ2n*dReQ1n+pow(dImQ1n,2.)*dReQ2n-pow(dReQ1n,2.)*dReQ2n);*/
4775 // Re[Q_{3n}Q_{2n}Q_{2n}^*Q_{2n}^*Q_{n}^*]
4776 /*Double_t reQ3nQ2nQ2nstarQ2nstarQ1nstar = (pow(dImQ2n,2.)+pow(dReQ2n,2.))
4777 * (dImQ2n*dImQ3n*dReQ1n+dImQ1n*dImQ3n*dReQ2n
4778 - dImQ1n*dImQ2n*dReQ3n+dReQ1n*dReQ2n*dReQ3n);*/
4779 /* // Re[Q_{5n}Q_{n}Q_{3n}^*Q_{2n}^*Q_{n}^*]
4780 Double_t reQ5nQ1nQ3nstarQ2nstarQ1nstar = (pow(dImQ1n,2.)+pow(dReQ1n,2.))
4781 * (dImQ3n*dImQ5n*dReQ2n+dImQ2n*dImQ5n*dReQ3n
4782 - dImQ2n*dImQ3n*dReQ5n+dReQ2n*dReQ3n*dReQ5n);
4785 // Re[Q_{2n}Q_{2n}Q_{n}^*Q_{n}^*Q_{n}^*Q_{n}^*]
4786 Double_t reQ2nQ2nQ1nstarQ1nstarQ1nstarQ1nstar = (pow(dReQ1n,2.)*dReQ2n-2.*dReQ1n*dReQ2n*dImQ1n-dReQ2n*pow(dImQ1n,2.)
4787 + dImQ2n*pow(dReQ1n,2.)+2.*dReQ1n*dImQ1n*dImQ2n-pow(dImQ1n,2.)*dImQ2n)
4788 * (pow(dReQ1n,2.)*dReQ2n+2.*dReQ1n*dReQ2n*dImQ1n-dReQ2n*pow(dImQ1n,2.)
4789 - dImQ2n*pow(dReQ1n,2.)+2.*dReQ1n*dImQ1n*dImQ2n+pow(dImQ1n,2.)*dImQ2n);
4790 // Re[Q_{3n}Q_{n}Q_{n}^*Q_{n}^*Q_{n}^*Q_{n}^*]
4791 Double_t reQ3nQ1nQ1nstarQ1nstarQ1nstarQ1nstar = (pow(dReQ1n,2.)+pow(dImQ1n,2.))
4792 * (pow(dReQ1n,3.)*dReQ3n-3.*dReQ1n*dReQ3n*pow(dImQ1n,2.)
4793 + 3.*pow(dReQ1n,2.)*dImQ1n*dImQ3n-pow(dImQ1n,3.)*dImQ3n);
4795 // |Q_{2n}|^2 |Q_{n}|^4
4796 //Double_t dQ2nQ1nQ1nQ2nstarQ1nstarQ1nstar = (pow(dReQ2n,2.)+pow(dImQ2n,2.))*pow((pow(dReQ1n,2.)+pow(dImQ1n,2.)),2.);
4798 // |Q_{3n}|^2 |Q_{2n}|^2 |Q_{n}|^2
4799 Double_t dQ3nQ2nQ1nQ3nstarQ2nstarQ1nstar = (pow(dReQ3n,2.)+pow(dImQ3n,2.))*(pow(dReQ2n,2.)+pow(dImQ2n,2.))
4800 * (pow(dReQ1n,2.)+pow(dImQ1n,2.));
4801 // Re[Q_{2n}Q_{n}Q_{n}Q_{n}^*Q_{n}^*Q_{n}^*Q_{n}^*]
4802 Double_t reQ2nQ1nQ1nQ1nstarQ1nstarQ1nstarQ1nstar = pow((pow(dReQ1n,2.)+pow(dImQ1n,2.)),2.)
4803 * (pow(dReQ1n,2.)*dReQ2n-dReQ2n*pow(dImQ1n,2.)
4804 + 2.*dReQ1n*dImQ1n*dImQ2n);
4806 // Re[Q_{6n}Q_{2n}^*Q_{2n}^*Q_{n}^*Q_{n}^*]
4807 /*Double_t reQ6nQ2nstarQ2nstarQ1nstarQ1nstar = pow(dReQ1n*dReQ2n,2.)*dReQ6n-pow(dReQ2n*dImQ1n,2.)*dReQ6n
4808 - 4.*dReQ1n*dReQ2n*dReQ6n*dImQ1n*dImQ2n
4809 - pow(dReQ1n*dImQ2n,2.)*dReQ6n+pow(dImQ1n*dImQ2n,2.)*dReQ6n
4810 + 2.*dReQ1n*pow(dReQ2n,2.)*dImQ1n*dImQ6n
4811 + 2.*pow(dReQ1n,2.)*dReQ2n*dImQ2n*dImQ6n
4812 - 2.*dReQ2n*pow(dImQ1n,2.)*dImQ2n*dImQ6n
4813 - 2.*dReQ1n*dImQ1n*pow(dImQ2n,2.)*dImQ6n;
4815 // Re[Q_{4n}Q_{1n}Q_{1n}Q_{3n}^*Q_{3n}^*]
4817 Double_t reQ4nQ1nQ1nQ3nstarQ3nstar = pow(dReQ1n*dReQ3n,2.)*dReQ4n-pow(dReQ3n*dImQ1n,2.)*dReQ4n
4818 + 4.*dReQ1n*dReQ3n*dReQ4n*dImQ1n*dImQ3n
4819 - pow(dReQ1n*dImQ3n,2.)*dReQ4n+pow(dImQ1n*dImQ3n,2.)*dReQ4n
4820 - 2.*dReQ1n*pow(dReQ3n,2.)*dImQ1n*dImQ4n
4821 + 2.*pow(dReQ1n,2.)*dReQ3n*dImQ3n*dImQ4n
4822 - 2.*dReQ3n*pow(dImQ1n,2.)*dImQ3n*dImQ4n
4823 + 2.*dReQ1n*dImQ1n*pow(dImQ3n,2.)*dImQ4n;*/
4825 // Re[Q_{3n}Q_{3n}Q_{2n}^*Q_{2n}^*Q_{1n}^*Q_{1n}^*]
4826 Double_t reQ3nQ3nQ2nstarQ2nstarQ1nstarQ1nstar = (dReQ1n*dReQ2n*dReQ3n-dReQ2n*dReQ3n*dImQ1n-dReQ1n*dReQ3n*dImQ2n
4827 - dReQ3n*dImQ1n*dImQ2n+dReQ1n*dReQ2n*dImQ3n+dReQ2n*dImQ1n*dImQ3n
4828 + dReQ1n*dImQ2n*dImQ3n-dImQ1n*dImQ2n*dImQ3n)*(dReQ1n*dReQ2n*dReQ3n
4829 + dReQ2n*dReQ3n*dImQ1n+dReQ1n*dReQ3n*dImQ2n-dReQ3n*dImQ1n*dImQ2n
4830 - dReQ1n*dReQ2n*dImQ3n+dReQ2n*dImQ1n*dImQ3n+dReQ1n*dImQ2n*dImQ3n
4831 + dImQ1n*dImQ2n*dImQ3n);
4834 // b) Determine multiplicity weights and fill some histos:
4835 Double_t d2pMultiplicityWeight = 0.; // weight for <2>_{...} to get <<2>>_{...}
4836 Double_t d3pMultiplicityWeight = 0.; // weight for <3>_{...} to get <<3>>_{...}
4837 Double_t d4pMultiplicityWeight = 0.; // weight for <4>_{...} to get <<4>>_{...}
4838 Double_t d5pMultiplicityWeight = 0.; // weight for <5>_{...} to get <<5>>_{...}
4839 Double_t d6pMultiplicityWeight = 0.; // weight for <6>_{...} to get <<6>>_{...}
4840 Double_t d7pMultiplicityWeight = 0.; // weight for <7>_{...} to get <<7>>_{...}
4841 Double_t d8pMultiplicityWeight = 0.; // weight for <8>_{...} to get <<8>>_{...}
4842 if(fMultiplicityWeight->Contains("combinations")) // default multiplicity weight
4844 d2pMultiplicityWeight = dMult*(dMult-1.);
4845 d3pMultiplicityWeight = dMult*(dMult-1.)*(dMult-2.);
4846 d4pMultiplicityWeight = dMult*(dMult-1.)*(dMult-2.)*(dMult-3.);
4847 d5pMultiplicityWeight = dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.);
4848 d6pMultiplicityWeight = dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.)*(dMult-5.);
4849 d7pMultiplicityWeight = dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.)*(dMult-5.)*(dMult-6.);
4850 d8pMultiplicityWeight = dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.)*(dMult-5.)*(dMult-6.)*(dMult-7.);
4851 } else if(fMultiplicityWeight->Contains("unit"))
4853 d2pMultiplicityWeight = 1.;
4854 d3pMultiplicityWeight = 1.;
4855 d4pMultiplicityWeight = 1.;
4856 d5pMultiplicityWeight = 1.;
4857 d6pMultiplicityWeight = 1.;
4858 d7pMultiplicityWeight = 1.;
4859 d8pMultiplicityWeight = 1.;
4860 } else if(fMultiplicityWeight->Contains("multiplicity"))
4862 d2pMultiplicityWeight = dMult;
4863 d3pMultiplicityWeight = dMult;
4864 d4pMultiplicityWeight = dMult;
4865 d5pMultiplicityWeight = dMult;
4866 d6pMultiplicityWeight = dMult;
4867 d7pMultiplicityWeight = dMult;
4868 d8pMultiplicityWeight = dMult;
4870 for(Int_t p=0;p<=1;p++) // power (0=linear,1=quadratic)
4872 fMixedHarmonicEventWeights[p]->Fill(0.5,pow(dMult,p+1));
4873 fMixedHarmonicEventWeights[p]->Fill(1.5,pow(d2pMultiplicityWeight,p+1));
4874 fMixedHarmonicEventWeights[p]->Fill(2.5,pow(d3pMultiplicityWeight,p+1));
4875 fMixedHarmonicEventWeights[p]->Fill(3.5,pow(d4pMultiplicityWeight,p+1));
4876 fMixedHarmonicEventWeights[p]->Fill(4.5,pow(d5pMultiplicityWeight,p+1));
4877 fMixedHarmonicEventWeights[p]->Fill(5.5,pow(d6pMultiplicityWeight,p+1));
4878 fMixedHarmonicEventWeights[p]->Fill(6.5,pow(d7pMultiplicityWeight,p+1));
4879 fMixedHarmonicEventWeights[p]->Fill(7.5,pow(d8pMultiplicityWeight,p+1));
4880 } // end of for(Int_t p=0;p<=1;p++) // power (0=linear,1=quadratic)
4881 fMixedHarmonicProductOfEventWeights->Fill(0.5,0.5,dMult*dMult);
4882 fMixedHarmonicProductOfEventWeights->Fill(0.5,1.5,dMult*d2pMultiplicityWeight);
4883 fMixedHarmonicProductOfEventWeights->Fill(0.5,2.5,dMult*d3pMultiplicityWeight);
4884 fMixedHarmonicProductOfEventWeights->Fill(0.5,3.5,dMult*d4pMultiplicityWeight);
4885 fMixedHarmonicProductOfEventWeights->Fill(0.5,4.5,dMult*d5pMultiplicityWeight);
4886 fMixedHarmonicProductOfEventWeights->Fill(0.5,5.5,dMult*d6pMultiplicityWeight);
4887 fMixedHarmonicProductOfEventWeights->Fill(0.5,6.5,dMult*d7pMultiplicityWeight);
4888 fMixedHarmonicProductOfEventWeights->Fill(0.5,7.5,dMult*d8pMultiplicityWeight);
4889 fMixedHarmonicProductOfEventWeights->Fill(1.5,1.5,d2pMultiplicityWeight*d2pMultiplicityWeight);
4890 fMixedHarmonicProductOfEventWeights->Fill(1.5,2.5,d2pMultiplicityWeight*d3pMultiplicityWeight);
4891 fMixedHarmonicProductOfEventWeights->Fill(1.5,3.5,d2pMultiplicityWeight*d4pMultiplicityWeight);
4892 fMixedHarmonicProductOfEventWeights->Fill(1.5,4.5,d2pMultiplicityWeight*d5pMultiplicityWeight);
4893 fMixedHarmonicProductOfEventWeights->Fill(1.5,5.5,d2pMultiplicityWeight*d6pMultiplicityWeight);
4894 fMixedHarmonicProductOfEventWeights->Fill(1.5,6.5,d2pMultiplicityWeight*d7pMultiplicityWeight);
4895 fMixedHarmonicProductOfEventWeights->Fill(1.5,7.5,d2pMultiplicityWeight*d8pMultiplicityWeight);
4896 fMixedHarmonicProductOfEventWeights->Fill(2.5,2.5,d3pMultiplicityWeight*d3pMultiplicityWeight);
4897 fMixedHarmonicProductOfEventWeights->Fill(2.5,3.5,d3pMultiplicityWeight*d4pMultiplicityWeight);
4898 fMixedHarmonicProductOfEventWeights->Fill(2.5,4.5,d3pMultiplicityWeight*d5pMultiplicityWeight);
4899 fMixedHarmonicProductOfEventWeights->Fill(2.5,5.5,d3pMultiplicityWeight*d6pMultiplicityWeight);
4900 fMixedHarmonicProductOfEventWeights->Fill(2.5,6.5,d3pMultiplicityWeight*d7pMultiplicityWeight);
4901 fMixedHarmonicProductOfEventWeights->Fill(2.5,7.5,d3pMultiplicityWeight*d8pMultiplicityWeight);
4902 fMixedHarmonicProductOfEventWeights->Fill(3.5,3.5,d4pMultiplicityWeight*d4pMultiplicityWeight);
4903 fMixedHarmonicProductOfEventWeights->Fill(3.5,4.5,d4pMultiplicityWeight*d5pMultiplicityWeight);
4904 fMixedHarmonicProductOfEventWeights->Fill(3.5,5.5,d4pMultiplicityWeight*d6pMultiplicityWeight);
4905 fMixedHarmonicProductOfEventWeights->Fill(3.5,6.5,d4pMultiplicityWeight*d7pMultiplicityWeight);
4906 fMixedHarmonicProductOfEventWeights->Fill(3.5,7.5,d4pMultiplicityWeight*d8pMultiplicityWeight);
4907 fMixedHarmonicProductOfEventWeights->Fill(4.5,4.5,d5pMultiplicityWeight*d5pMultiplicityWeight);
4908 fMixedHarmonicProductOfEventWeights->Fill(4.5,5.5,d5pMultiplicityWeight*d6pMultiplicityWeight);
4909 fMixedHarmonicProductOfEventWeights->Fill(4.5,6.5,d5pMultiplicityWeight*d7pMultiplicityWeight);
4910 fMixedHarmonicProductOfEventWeights->Fill(4.5,7.5,d5pMultiplicityWeight*d8pMultiplicityWeight);
4911 fMixedHarmonicProductOfEventWeights->Fill(5.5,5.5,d6pMultiplicityWeight*d6pMultiplicityWeight);
4912 fMixedHarmonicProductOfEventWeights->Fill(5.5,6.5,d6pMultiplicityWeight*d7pMultiplicityWeight);
4913 fMixedHarmonicProductOfEventWeights->Fill(5.5,7.5,d6pMultiplicityWeight*d8pMultiplicityWeight);
4914 fMixedHarmonicProductOfEventWeights->Fill(6.5,6.5,d7pMultiplicityWeight*d7pMultiplicityWeight);
4915 fMixedHarmonicProductOfEventWeights->Fill(6.5,7.5,d7pMultiplicityWeight*d8pMultiplicityWeight);
4916 fMixedHarmonicProductOfEventWeights->Fill(7.5,7.5,d8pMultiplicityWeight*d8pMultiplicityWeight);
4918 // c) Calculate 2-p correlations:
4919 Double_t two1n1n = 0.; // <2>_{1n|1n} = <cos(1n(phi1-phi2))>
4920 Double_t two2n2n = 0.; // <2>_{2n|2n} = <cos(2n(phi1-phi2))>
4921 Double_t two3n3n = 0.; // <2>_{3n|3n} = <cos(3n(phi1-phi2))>
4922 Double_t two4n4n = 0.; // <2>_{4n|4n} = <cos(4n(phi1-phi2))>
4923 Double_t two5n5n = 0.; // <2>_{5n|5n} = <cos(5n(phi1-phi2))>
4924 Double_t two6n6n = 0.; // <2>_{6n|6n} = <cos(6n(phi1-phi2))>
4927 two1n1n = (pow(dReQ1n,2.)+pow(dImQ1n,2.)-dMult)/(dMult*(dMult-1.));
4928 two2n2n = (pow(dReQ2n,2.)+pow(dImQ2n,2.)-dMult)/(dMult*(dMult-1.));
4929 two3n3n = (pow(dReQ3n,2.)+pow(dImQ3n,2.)-dMult)/(dMult*(dMult-1.));
4930 two4n4n = (pow(dReQ4n,2.)+pow(dImQ4n,2.)-dMult)/(dMult*(dMult-1.));
4931 two5n5n = (pow(dReQ5n,2.)+pow(dImQ5n,2.)-dMult)/(dMult*(dMult-1.));
4932 two6n6n = (pow(dReQ6n,2.)+pow(dImQ6n,2.)-dMult)/(dMult*(dMult-1.));
4933 f2pCorrelations->Fill(0.5,two1n1n,d2pMultiplicityWeight);
4934 f2pCorrelations->Fill(1.5,two2n2n,d2pMultiplicityWeight);
4935 f2pCorrelations->Fill(2.5,two3n3n,d2pMultiplicityWeight);
4936 f2pCorrelations->Fill(3.5,two4n4n,d2pMultiplicityWeight);
4937 f2pCorrelations->Fill(4.5,two5n5n,d2pMultiplicityWeight);
4938 f2pCorrelations->Fill(5.5,two6n6n,d2pMultiplicityWeight);
4939 allMixedCorrelators[0]=two1n1n;
4940 allMixedCorrelators[1]=two2n2n;
4941 allMixedCorrelators[2]=two3n3n;
4942 allMixedCorrelators[3]=two4n4n;
4943 allMixedCorrelators[4]=two5n5n;
4944 allMixedCorrelators[5]=two6n6n;
4945 } // end of if(dMult>1.)
4947 // d) Calculate 3-p correlations:
4948 // d1) Two distinct harmonics (3):
4949 Double_t three2n1n1n = 0.; // <3>_{2n|1n,1n} = <cos(n(2*phi1-1*phi2-1*phi3))>
4950 Double_t three4n2n2n = 0.; // <3>_{4n|2n,2n} = <cos(n(4*phi1-2*phi2-2*phi3))>
4951 Double_t three6n3n3n = 0.; // <3>_{6n|3n,3n} = <cos(n(6*phi1-3*phi2-3*phi3))>
4952 // d2) Three distinct harmonics (6):
4953 Double_t three3n2n1n = 0.; // <3>_{3n|2n,1n} = <cos(n(3*phi1-2*phi2-1*phi3))>
4954 Double_t three4n3n1n = 0.; // <3>_{4n|3n,1n} = <cos(n(4*phi1-3*phi2-1*phi3))>
4955 Double_t three5n3n2n = 0.; // <3>_{5n|3n,2n} = <cos(n(5*phi1-3*phi2-2*phi3))>
4956 Double_t three5n4n1n = 0.; // <3>_{5n|4n,1n} = <cos(n(5*phi1-4*phi2-1*phi3))>
4957 Double_t three6n4n2n = 0.; // <3>_{6n|4n,2n} = <cos(n(6*phi1-4*phi2-2*phi3))>
4958 Double_t three6n5n1n = 0.; // <3>_{6n|5n,1n} = <cos(n(6*phi1-5*phi2-1*phi3))>
4961 three2n1n1n = (pow(dReQ1n,2.)*dReQ2n+2.*dReQ1n*dImQ1n*dImQ2n-pow(dImQ1n,2.)*dReQ2n
4962 - 2.*(pow(dReQ1n,2.)+pow(dImQ1n,2.))-(pow(dReQ2n,2.)+pow(dImQ2n,2.))+2.*dMult)
4963 / (dMult*(dMult-1.)*(dMult-2.));
4964 three4n2n2n = (pow(dReQ2n,2.)*dReQ4n+2.*dReQ2n*dImQ2n*dImQ4n-pow(dImQ2n,2.)*dReQ4n
4965 - 2.*(pow(dReQ2n,2.)+pow(dImQ2n,2.))-(pow(dReQ4n,2.)+pow(dImQ4n,2.))+2.*dMult)
4966 / (dMult*(dMult-1.)*(dMult-2.));
4967 three6n3n3n = (reQ6nQ3nstarQ3nstar
4968 - 2.*(pow(dReQ3n,2.)+pow(dImQ3n,2.))
4969 - (pow(dReQ6n,2.)+pow(dImQ6n,2.))+2.*dMult)
4970 / (dMult*(dMult-1.)*(dMult-2.));
4971 three3n2n1n = (dReQ3n*dReQ2n*dReQ1n-dReQ3n*dImQ2n*dImQ1n+dImQ3n*dReQ2n*dImQ1n
4972 + dImQ3n*dImQ2n*dReQ1n-(pow(dReQ3n,2.)+pow(dImQ3n,2.))
4973 - (pow(dReQ2n,2.)+pow(dImQ2n,2.))-(pow(dReQ1n,2.)+pow(dImQ1n,2.))+2.*dMult)
4974 / (dMult*(dMult-1.)*(dMult-2.));
4975 three4n3n1n = (dReQ4n*(dReQ3n*dReQ1n-dImQ3n*dImQ1n)+dImQ4n*(dReQ3n*dImQ1n+dImQ3n*dReQ1n)
4976 - (pow(dReQ4n,2.)+pow(dImQ4n,2.))-(pow(dReQ3n,2.)+pow(dImQ3n,2.))
4977 - (pow(dReQ1n,2.)+pow(dImQ1n,2.))+2.*dMult)
4978 / (dMult*(dMult-1.)*(dMult-2.));
4979 three5n3n2n = (dReQ5n*dReQ2n*dReQ3n-dReQ5n*dImQ2n*dImQ3n+dImQ5n*dReQ2n*dImQ3n
4980 + dImQ5n*dImQ2n*dReQ3n-(pow(dReQ5n,2.)+pow(dImQ5n,2.))
4981 - (pow(dReQ3n,2.)+pow(dImQ3n,2.))
4982 - (pow(dReQ2n,2.)+pow(dImQ2n,2.))+2.*dMult)
4983 / (dMult*(dMult-1.)*(dMult-2.));
4984 three5n4n1n = (dReQ5n*dReQ4n*dReQ1n-dReQ5n*dImQ4n*dImQ1n+dImQ5n*dReQ4n*dImQ1n
4985 + dImQ5n*dImQ4n*dReQ1n-(pow(dReQ5n,2.)+pow(dImQ5n,2.))
4986 - (pow(dReQ4n,2.)+pow(dImQ4n,2.))
4987 - (pow(dReQ1n,2.)+pow(dImQ1n,2.))+2.*dMult)
4988 / (dMult*(dMult-1.)*(dMult-2.));
4989 three6n4n2n = (dReQ6n*dReQ4n*dReQ2n-dReQ6n*dImQ4n*dImQ2n+dImQ6n*dReQ4n*dImQ2n
4990 + dImQ6n*dImQ4n*dReQ2n-(pow(dReQ6n,2.)+pow(dImQ6n,2.))
4991 - (pow(dReQ4n,2.)+pow(dImQ4n,2.))-(pow(dReQ2n,2.)+pow(dImQ2n,2.))+2.*dMult)
4992 / (dMult*(dMult-1.)*(dMult-2.));
4993 three6n5n1n = (dReQ6n*dReQ5n*dReQ1n-dReQ6n*dImQ5n*dImQ1n+dImQ6n*dReQ5n*dImQ1n
4994 + dImQ6n*dImQ5n*dReQ1n-(pow(dReQ6n,2.)+pow(dImQ6n,2.))
4995 - (pow(dReQ5n,2.)+pow(dImQ5n,2.))
4996 - (pow(dReQ1n,2.)+pow(dImQ1n,2.))+2.*dMult)
4997 / (dMult*(dMult-1.)*(dMult-2.));
4998 f3pCorrelations->Fill(0.5,three2n1n1n,d3pMultiplicityWeight);
4999 f3pCorrelations->Fill(1.5,three4n2n2n,d3pMultiplicityWeight);
5000 f3pCorrelations->Fill(2.5,three6n3n3n,d3pMultiplicityWeight);
5001 //f3pCorrelations->Fill(3.5,0.,d3pMultiplicityWeight); // empty TBI
5002 f3pCorrelations->Fill(4.5,three3n2n1n,d3pMultiplicityWeight);
5003 f3pCorrelations->Fill(5.5,three4n3n1n,d3pMultiplicityWeight);
5004 f3pCorrelations->Fill(6.5,three5n3n2n,d3pMultiplicityWeight);
5005 f3pCorrelations->Fill(7.5,three5n4n1n,d3pMultiplicityWeight);
5006 f3pCorrelations->Fill(8.5,three6n4n2n,d3pMultiplicityWeight);
5007 f3pCorrelations->Fill(9.5,three6n5n1n,d3pMultiplicityWeight);
5008 allMixedCorrelators[6]=three2n1n1n;
5009 allMixedCorrelators[7]=three4n2n2n;
5010 allMixedCorrelators[8]=three6n3n3n;
5011 allMixedCorrelators[9]=three3n2n1n;
5012 allMixedCorrelators[10]=three4n3n1n;
5013 allMixedCorrelators[11]=three5n3n2n;
5014 allMixedCorrelators[12]=three5n4n1n;
5015 allMixedCorrelators[13]=three6n4n2n;
5016 allMixedCorrelators[14]=three6n5n1n;
5017 } // end of if(dMult>2.)
5019 // e) Calculate 4-p correlations:
5020 // e1) Single harmonic (6):
5021 Double_t four1n1n1n1n = 0.; // <4>_{1n,1n|1n,1n} = <cos(1*n(phi1+phi2-phi3-phi4))>
5022 Double_t four2n2n2n2n = 0.; // <4>_{2n,2n|2n,2n} = <cos(2*n(phi1+phi2-phi3-phi4))>
5023 Double_t four3n3n3n3n = 0.; // <4>_{3n,3n|3n,3n} = <cos(3*n(phi1+phi2-phi3-phi4))>
5024 Double_t four4n4n4n4n = 0.; // <4>_{4n,4n|4n,4n} = <cos(4*n(phi1+phi2-phi3-phi4))>
5025 Double_t four5n5n5n5n = 0.; // <4>_{5n,5n|5n,5n} = <cos(5*n(phi1+phi2-phi3-phi4))>
5026 Double_t four6n6n6n6n = 0.; // <4>_{6n,6n|6n,6n} = <cos(6*n(phi1+phi2-phi3-phi4))>
5027 // e2) "Standard candles" (15):
5028 Double_t four2n1n2n1n = 0.; // <4>_{2n,1n|2n,1n} = <cos(n(2*phi1+1*phi2-2*phi3-1*phi4))>
5029 Double_t four3n1n3n1n = 0.; // <4>_{3n,1n|3n,1n} = <cos(n(3*phi1+1*phi2-3*phi3-1*phi4))>
5030 Double_t four3n2n3n2n = 0.; // <4>_{3n,2n|3n,2n} = <cos(n(3*phi1+2*phi2-3*phi3-2*phi4))>
5031 Double_t four4n1n4n1n = 0.; // <4>_{4n,1n|4n,1n} = <cos(n(4*phi1+1*phi2-4*phi3-1*phi4))>
5032 Double_t four4n2n4n2n = 0.; // <4>_{4n,2n|4n,2n} = <cos(n(4*phi1+2*phi2-4*phi3-2*phi4))>
5033 Double_t four4n3n4n3n = 0.; // <4>_{4n,3n|4n,3n} = <cos(n(4*phi1+3*phi2-4*phi3-3*phi4))>
5034 Double_t four5n1n5n1n = 0.; // <4>_{5n,1n|5n,1n} = <cos(n(5*phi1+1*phi2-5*phi3-1*phi4))>
5035 Double_t four5n2n5n2n = 0.; // <4>_{5n,2n|5n,2n} = <cos(n(5*phi1+2*phi2-5*phi3-2*phi4))>
5036 Double_t four5n3n5n3n = 0.; // <4>_{5n,3n|5n,3n} = <cos(n(5*phi1+3*phi2-5*phi3-3*phi4))>
5037 Double_t four5n4n5n4n = 0.; // <4>_{5n,4n|5n,4n} = <cos(n(5*phi1+4*phi2-5*phi3-4*phi4))>
5038 Double_t four6n1n6n1n = 0.; // <4>_{6n,1n|6n,1n} = <cos(n(6*phi1+1*phi2-6*phi3-1*phi4))>
5039 Double_t four6n2n6n2n = 0.; // <4>_{6n,2n|6n,2n} = <cos(n(6*phi1+2*phi2-6*phi3-2*phi4))>
5040 Double_t four6n3n6n3n = 0.; // <4>_{6n,3n|6n,3n} = <cos(n(6*phi1+3*phi2-6*phi3-3*phi4))>
5041 Double_t four6n4n6n4n = 0.; // <4>_{6n,4n|6n,4n} = <cos(n(6*phi1+4*phi2-6*phi3-4*phi4))>
5042 Double_t four6n5n6n5n = 0.; // <4>_{6n,5n|6n,5n} = <cos(n(6*phi1+5*phi2-6*phi3-5*phi4))>
5043 // e3) Two distinct harmonics (2):
5044 Double_t four3n1n1n1n = 0.; // <4>_{3n|1n,1n,1n} = <cos(n(3*phi1-1*phi2-1*phi3-1*phi4))>
5045 Double_t four6n2n2n2n = 0.; // <4>_{6n|2n,2n,2n} = <cos(n(6*phi1-2*phi2-2*phi3-2*phi4))>
5046 // e4) Three distinct harmonics (10):
5047 Double_t four3n1n2n2n = 0.; // <4>_{3n,1n|2n,2n} = <cos(n(3*phi1+1*phi2-2*phi3-2*phi4))>
5048 Double_t four4n2n1n1n = 0.; // <4>_{4n|2n,1n,1n} = <cos(n(4*phi1-2*phi2-1*phi3-1*phi4))>
5049 Double_t four4n2n3n3n = 0.; // <4>_{4n,2n|3n,3n} = <cos(n(4*phi1+2*phi2-3*phi3-3*phi4))>
5050 Double_t four5n2n2n1n = 0.; // <4>_{5n|2n,2n,1n} = <cos(n(5*phi1-2*phi2-2*phi3-1*phi4))>
5051 Double_t four5n3n1n1n = 0.; // <4>_{5n|3n,1n,1n} = <cos(n(5*phi1-3*phi2-1*phi3-1*phi4))>
5052 Double_t four5n1n3n3n = 0.; // <4>_{5n,1n|3n,3n} = <cos(n(5*phi1+1*phi2-3*phi3-3*phi4))>
5053 Double_t four5n3n4n4n = 0.; // <4>_{5n,3n|4n,4n} = <cos(n(5*phi1+3*phi2-4*phi3-4*phi4))>
5054 Double_t four6n4n1n1n = 0.; // <4>_{6n|4n,1n,1n} = <cos(n(6*phi1-4*phi2-1*phi3-1*phi4))>
5055 Double_t four6n2n4n4n = 0.; // <4>_{6n,2n|4n,4n} = <cos(n(6*phi1+2*phi2-4*phi3-4*phi4))>
5056 Double_t four6n4n5n5n = 0.; // <4>_{6n,4n|5n,5n} = <cos(n(6*phi1+4*phi2-5*phi3-5*phi4))>
5057 // e5) Four distinct harmonics (8):
5058 Double_t four4n1n3n2n = 0.; // <4>_{4n,1n|3n,2n} = <cos(n(4*phi1+1*phi2-3*phi3-2*phi4))>
5059 Double_t four5n1n4n2n = 0.; // <4>_{5n,1n|4n,2n} = <cos(n(5*phi1+1*phi2-4*phi3-2*phi4))>
5060 Double_t four5n2n4n3n = 0.; // <4>_{5n,2n|4n,3n} = <cos(n(5*phi1+2*phi2-4*phi3-3*phi4))>
5061 Double_t four6n1n4n3n = 0.; // <4>_{6n,1n|4n,3n} = <cos(n(6*phi1+1*phi2-4*phi3-3*phi4))>
5062 Double_t four6n1n5n2n = 0.; // <4>_{6n,1n|5n,2n} = <cos(n(6*phi1+1*phi2-5*phi3-2*phi4))>
5063 Double_t four6n3n2n1n = 0.; // <4>_{6n|3n,2n,1n} = <cos(n(6*phi1-3*phi2-2*phi3-1*phi4))>
5064 Double_t four6n2n5n3n = 0.; // <4>_{6n,2n|5n,3n} = <cos(n(6*phi1+2*phi2-5*phi3-3*phi4))>
5065 Double_t four6n3n5n4n = 0.; // <4>_{6n,3n|5n,4n} = <cos(n(6*phi1+3*phi2-5*phi3-4*phi4))>
5068 // Single harmonic (6):
5069 four1n1n1n1n = (2.*dMult*(dMult-3.)+pow((pow(dReQ1n,2.)+pow(dImQ1n,2.)),2.)-4.*(dMult-2.)*(pow(dReQ1n,2.)
5070 + pow(dImQ1n,2.))-2.*(pow(dReQ1n,2.)*dReQ2n+2.*dReQ1n*dImQ1n*dImQ2n-pow(dImQ1n,2.)*dReQ2n)
5071 + (pow(dReQ2n,2.)+pow(dImQ2n,2.)))
5072 / (dMult*(dMult-1)*(dMult-2.)*(dMult-3.));
5073 four2n2n2n2n = (2.*dMult*(dMult-3.)+pow((pow(dReQ2n,2.)+pow(dImQ2n,2.)),2.)-4.*(dMult-2.)*(pow(dReQ2n,2.)
5074 + pow(dImQ2n,2.))-2.*(pow(dReQ2n,2.)*dReQ4n+2.*dReQ2n*dImQ2n*dImQ4n-pow(dImQ2n,2.)*dReQ4n)
5075 + (pow(dReQ4n,2.)+pow(dImQ4n,2.)))
5076 / (dMult*(dMult-1)*(dMult-2.)*(dMult-3.));
5077 four3n3n3n3n = (2.*dMult*(dMult-3.)+pow((pow(dReQ3n,2.)+pow(dImQ3n,2.)),2.)-4.*(dMult-2.)*(pow(dReQ3n,2.)
5078 + pow(dImQ3n,2.))-2.*(pow(dReQ3n,2.)*dReQ6n+2.*dReQ3n*dImQ3n*dImQ6n-pow(dImQ3n,2.)*dReQ6n)
5079 + (pow(dReQ6n,2.)+pow(dImQ6n,2.)))
5080 / (dMult*(dMult-1)*(dMult-2.)*(dMult-3.));
5081 four4n4n4n4n = (2.*dMult*(dMult-3.)+pow((pow(dReQ4n,2.)+pow(dImQ4n,2.)),2.)-4.*(dMult-2.)*(pow(dReQ4n,2.)
5082 + pow(dImQ4n,2.))-2.*(pow(dReQ4n,2.)*dReQ8n+2.*dReQ4n*dImQ4n*dImQ8n-pow(dImQ4n,2.)*dReQ8n)
5083 + (pow(dReQ8n,2.)+pow(dImQ8n,2.)))
5084 / (dMult*(dMult-1)*(dMult-2.)*(dMult-3.));
5085 four5n5n5n5n = (2.*dMult*(dMult-3.)+pow((pow(dReQ5n,2.)+pow(dImQ5n,2.)),2.)-4.*(dMult-2.)*(pow(dReQ5n,2.)
5086 + pow(dImQ5n,2.))-2.*(pow(dReQ5n,2.)*dReQ10n+2.*dReQ5n*dImQ5n*dImQ10n-pow(dImQ5n,2.)*dReQ10n)
5087 + (pow(dReQ10n,2.)+pow(dImQ10n,2.)))
5088 / (dMult*(dMult-1)*(dMult-2.)*(dMult-3.));
5089 four6n6n6n6n = (2.*dMult*(dMult-3.)+pow((pow(dReQ6n,2.)+pow(dImQ6n,2.)),2.)-4.*(dMult-2.)*(pow(dReQ6n,2.)
5090 + pow(dImQ6n,2.))-2.*(pow(dReQ6n,2.)*dReQ12n+2.*dReQ6n*dImQ6n*dImQ12n-pow(dImQ6n,2.)*dReQ12n)
5091 + (pow(dReQ12n,2.)+pow(dImQ12n,2.)))
5092 / (dMult*(dMult-1)*(dMult-2.)*(dMult-3.));
5093 // "Standard candles" (15):
5094 four2n1n2n1n = ((pow(dReQ2n,2.)+pow(dImQ2n,2.))*(pow(dReQ1n,2.)+pow(dImQ1n,2.))
5095 - 2.*(dReQ3n*dReQ2n*dReQ1n-dReQ3n*dImQ2n*dImQ1n+dImQ3n*dReQ2n*dImQ1n
5096 + dImQ3n*dImQ2n*dReQ1n)-2.*(pow(dReQ1n,2.)*dReQ2n
5097 + 2.*dReQ1n*dImQ1n*dImQ2n-pow(dImQ1n,2.)*dReQ2n))
5098 / (dMult*(dMult-1.)*(dMult-2.)*(dMult-3.))
5099 - ((dMult-5.)*(pow(dReQ1n,2.)+pow(dImQ1n,2.))
5100 + (dMult-4.)*(pow(dReQ2n,2.)+pow(dImQ2n,2.))-(pow(dReQ3n,2.)+pow(dImQ3n,2.)))
5101 / (dMult*(dMult-1.)*(dMult-2.)*(dMult-3.))
5102 + (dMult-6.)/((dMult-1.)*(dMult-2.)*(dMult-3.));
5103 four3n1n3n1n = ((pow(dReQ3n,2.)+pow(dImQ3n,2.))*(pow(dReQ1n,2.)+pow(dImQ1n,2.))
5104 - 2.*(dReQ4n*(dReQ3n*dReQ1n-dImQ3n*dImQ1n)+dImQ4n*(dReQ3n*dImQ1n+dImQ3n*dReQ1n))
5105 - 2.*(dReQ3n*dReQ2n*dReQ1n-dReQ3n*dImQ2n*dImQ1n+dImQ3n*dReQ2n*dImQ1n+dImQ3n*dImQ2n*dReQ1n)
5106 + pow(dReQ4n,2.)+pow(dImQ4n,2.)-(dMult-4.)*(pow(dReQ3n,2.)+pow(dImQ3n,2.))
5107 + pow(dReQ2n,2.)+pow(dImQ2n,2.)-(dMult-4.)*(pow(dReQ1n,2.)+pow(dImQ1n,2.))
5109 / (dMult*(dMult-1.)*(dMult-2.)*(dMult-3.));
5110 four3n2n3n2n = ((pow(dReQ2n,2.)+pow(dImQ2n,2.))*(pow(dReQ3n,2.)+pow(dImQ3n,2.))
5111 - 2.*(dReQ5n*dReQ2n*dReQ3n-dReQ5n*dImQ2n*dImQ3n+dImQ5n*dReQ2n*dImQ3n+dImQ5n*dImQ2n*dReQ3n)
5112 - 2.*(dReQ3n*dReQ2n*dReQ1n-dReQ3n*dImQ2n*dImQ1n+dImQ3n*dReQ2n*dImQ1n+dImQ3n*dImQ2n*dReQ1n)
5113 + pow(dReQ5n,2.)+pow(dImQ5n,2.)+pow(dReQ1n,2.)+pow(dImQ1n,2.)
5114 - (dMult-4.)*(pow(dReQ3n,2.)+pow(dImQ3n,2.)+pow(dReQ2n,2.)+pow(dImQ2n,2.))
5116 / (dMult*(dMult-1.)*(dMult-2.)*(dMult-3.));
5117 four4n1n4n1n = ((pow(dReQ4n,2.)+pow(dImQ4n,2.))*(pow(dReQ1n,2.)+pow(dImQ1n,2.))
5118 - 2.*(dReQ5n*dReQ4n*dReQ1n-dReQ5n*dImQ4n*dImQ1n+dImQ5n*dReQ1n*dImQ4n+dImQ5n*dImQ1n*dReQ4n)
5119 - 2.*(dReQ3n*dReQ4n*dReQ1n+dImQ3n*dImQ4n*dReQ1n+dReQ3n*dImQ4n*dImQ1n-dImQ3n*dImQ1n*dReQ4n)
5120 + pow(dReQ5n,2.)+pow(dImQ5n,2.)+pow(dReQ3n,2.)+pow(dImQ3n,2.)
5121 - (dMult-4.)*(pow(dReQ4n,2.)+pow(dImQ4n,2.)+pow(dReQ1n,2.)+pow(dImQ1n,2.))
5123 / (dMult*(dMult-1.)*(dMult-2.)*(dMult-3.));
5124 four4n2n4n2n = ((pow(dReQ4n,2.)+pow(dImQ4n,2.))*(pow(dReQ2n,2.)+pow(dImQ2n,2.))
5125 - 2.*(dReQ6n*dReQ4n*dReQ2n-dReQ6n*dImQ4n*dImQ2n+dImQ6n*dReQ4n*dImQ2n
5126 + dImQ6n*dImQ4n*dReQ2n)-2.*(pow(dReQ2n,2.)*dReQ4n
5127 + 2.*dReQ2n*dImQ2n*dImQ4n-pow(dImQ2n,2.)*dReQ4n))
5128 / (dMult*(dMult-1.)*(dMult-2.)*(dMult-3.))
5129 - ((dMult-5.)*(pow(dReQ2n,2.)+pow(dImQ2n,2.))
5130 + (dMult-4.)*(pow(dReQ4n,2.)+pow(dImQ4n,2.))-(pow(dReQ6n,2.)+pow(dImQ6n,2.)))
5131 / (dMult*(dMult-1.)*(dMult-2.)*(dMult-3.))
5132 + (dMult-6.)/((dMult-1.)*(dMult-2.)*(dMult-3.));
5133 four4n3n4n3n = ((pow(dReQ4n,2.)+pow(dImQ4n,2.))*(pow(dReQ3n,2.)+pow(dImQ3n,2.))
5134 - 2.*(dReQ7n*dReQ4n*dReQ3n-dReQ7n*dImQ4n*dImQ3n+dImQ7n*dReQ3n*dImQ4n+dImQ7n*dImQ3n*dReQ4n)
5135 - 2.*(dReQ1n*dReQ4n*dReQ3n+dImQ1n*dImQ4n*dReQ3n+dReQ1n*dImQ4n*dImQ3n-dImQ1n*dImQ3n*dReQ4n)
5136 + pow(dReQ7n,2.)+pow(dImQ7n,2.)+pow(dReQ1n,2.)+pow(dImQ1n,2.)
5137 - (dMult-4.)*(pow(dReQ4n,2.)+pow(dImQ4n,2.)+pow(dReQ3n,2.)+pow(dImQ3n,2.))
5139 / (dMult*(dMult-1.)*(dMult-2.)*(dMult-3.));
5140 four5n1n5n1n = (((pow(dReQ5n,2.)+pow(dImQ5n,2.))*(pow(dReQ1n,2.)+pow(dImQ1n,2.)))
5141 - 2.*(dReQ6n*dReQ5n*dReQ1n-dReQ6n*dImQ5n*dImQ1n+dImQ6n*dReQ5n*dImQ1n+dImQ6n*dImQ5n*dReQ1n)
5142 - 2.*(dReQ5n*dReQ4n*dReQ1n-dReQ5n*dImQ4n*dImQ1n+dImQ5n*dReQ4n*dImQ1n+dImQ5n*dImQ4n*dReQ1n)
5143 + pow(dReQ6n,2.)+pow(dImQ6n,2.)-(dMult-4.)*(pow(dReQ5n,2.)+pow(dImQ5n,2.))
5144 + pow(dReQ4n,2.)+pow(dImQ4n,2.)-(dMult-4.)*(pow(dReQ1n,2.)+pow(dImQ1n,2.))+dMult*(dMult-6.))
5145 / (dMult*(dMult-1.)*(dMult-2.)*(dMult-3.));
5146 four5n2n5n2n = ((pow(dReQ5n,2.)+pow(dImQ5n,2.))*(pow(dReQ2n,2.)+pow(dImQ2n,2.))
5147 - 2.*(dReQ7n*dReQ5n*dReQ2n-dReQ7n*dImQ5n*dImQ2n+dImQ7n*dReQ2n*dImQ5n+dImQ7n*dImQ2n*dReQ5n)
5148 - 2.*(dReQ3n*dReQ5n*dReQ2n+dImQ3n*dImQ5n*dReQ2n+dReQ3n*dImQ5n*dImQ2n-dImQ3n*dImQ2n*dReQ5n)
5149 + pow(dReQ7n,2.)+pow(dImQ7n,2.)+pow(dReQ3n,2.)+pow(dImQ3n,2.)
5150 - (dMult-4.)*(pow(dReQ5n,2.)+pow(dImQ5n,2.)+pow(dReQ2n,2.)+pow(dImQ2n,2.))
5152 / (dMult*(dMult-1.)*(dMult-2.)*(dMult-3.));
5153 four5n3n5n3n = ((pow(dReQ5n,2.)+pow(dImQ5n,2.))*(pow(dReQ3n,2.)+pow(dImQ3n,2.))
5154 - 2.*(dReQ8n*dReQ5n*dReQ3n-dReQ8n*dImQ5n*dImQ3n+dImQ8n*dReQ3n*dImQ5n+dImQ8n*dImQ3n*dReQ5n)
5155 - 2.*(dReQ2n*dReQ5n*dReQ3n+dImQ2n*dImQ5n*dReQ3n+dReQ2n*dImQ5n*dImQ3n-dImQ2n*dImQ3n*dReQ5n)
5156 + pow(dReQ8n,2.)+pow(dImQ8n,2.)+pow(dReQ2n,2.)+pow(dImQ2n,2.)
5157 - (dMult-4.)*(pow(dReQ5n,2.)+pow(dImQ5n,2.)+pow(dReQ3n,2.)+pow(dImQ3n,2.))
5159 / (dMult*(dMult-1.)*(dMult-2.)*(dMult-3.));
5160 four5n4n5n4n = ((pow(dReQ5n,2.)+pow(dImQ5n,2.))*(pow(dReQ4n,2.)+pow(dImQ4n,2.))
5161 - 2.*(dReQ9n*dReQ5n*dReQ4n-dReQ9n*dImQ5n*dImQ4n+dImQ9n*dReQ4n*dImQ5n+dImQ9n*dImQ4n*dReQ5n)
5162 - 2.*(dReQ1n*dReQ5n*dReQ4n+dImQ1n*dImQ5n*dReQ4n+dReQ1n*dImQ5n*dImQ4n-dImQ1n*dImQ4n*dReQ5n)
5163 + pow(dReQ9n,2.)+pow(dImQ9n,2.)+pow(dReQ1n,2.)+pow(dImQ1n,2.)
5164 - (dMult-4.)*(pow(dReQ5n,2.)+pow(dImQ5n,2.)+pow(dReQ4n,2.)+pow(dImQ4n,2.))
5166 / (dMult*(dMult-1.)*(dMult-2.)*(dMult-3.));
5167 four6n1n6n1n = ((pow(dReQ6n,2.)+pow(dImQ6n,2.))*(pow(dReQ1n,2.)+pow(dImQ1n,2.))
5168 - 2.*(dReQ7n*dReQ6n*dReQ1n-dReQ7n*dImQ6n*dImQ1n+dImQ7n*dReQ1n*dImQ6n+dImQ7n*dImQ1n*dReQ6n)
5169 - 2.*(dReQ5n*dReQ6n*dReQ1n+dImQ5n*dImQ6n*dReQ1n+dReQ5n*dImQ6n*dImQ1n-dImQ5n*dImQ1n*dReQ6n)
5170 + pow(dReQ7n,2.)+pow(dImQ7n,2.)+pow(dReQ5n,2.)+pow(dImQ5n,2.)
5171 - (dMult-4.)*(pow(dReQ6n,2.)+pow(dImQ6n,2.)+pow(dReQ1n,2.)+pow(dImQ1n,2.))
5173 / (dMult*(dMult-1.)*(dMult-2.)*(dMult-3.));
5174 four6n2n6n2n = ((pow(dReQ6n,2.)+pow(dImQ6n,2.))*(pow(dReQ2n,2.)+pow(dImQ2n,2.))
5175 - 2.*(dReQ8n*(dReQ6n*dReQ2n-dImQ6n*dImQ2n)+dImQ8n*(dReQ6n*dImQ2n+dImQ6n*dReQ2n))
5176 - 2.*(dReQ6n*dReQ4n*dReQ2n-dReQ6n*dImQ4n*dImQ2n+dImQ6n*dReQ4n*dImQ2n+dImQ6n*dImQ4n*dReQ2n)
5177 + pow(dReQ8n,2.)+pow(dImQ8n,2.)-(dMult-4.)*(pow(dReQ6n,2.)+pow(dImQ6n,2.))
5178 + pow(dReQ4n,2.)+pow(dImQ4n,2.)-(dMult-4.)*(pow(dReQ2n,2.)+pow(dImQ2n,2.))
5180 / (dMult*(dMult-1.)*(dMult-2.)*(dMult-3.));
5181 four6n3n6n3n = ((pow(dReQ6n,2.)+pow(dImQ6n,2.))*(pow(dReQ3n,2.)+pow(dImQ3n,2.))
5182 - 2.*(dReQ9n*dReQ6n*dReQ3n-dReQ9n*dImQ6n*dImQ3n+dImQ9n*dReQ6n*dImQ3n
5183 + dImQ9n*dImQ6n*dReQ3n)-2.*(pow(dReQ3n,2.)*dReQ6n
5184 + 2.*dReQ3n*dImQ3n*dImQ6n-pow(dImQ3n,2.)*dReQ6n))
5185 / (dMult*(dMult-1.)*(dMult-2.)*(dMult-3.))
5186 - ((dMult-5.)*(pow(dReQ3n,2.)+pow(dImQ3n,2.))
5187 + (dMult-4.)*(pow(dReQ6n,2.)+pow(dImQ6n,2.))-(pow(dReQ9n,2.)+pow(dImQ9n,2.)))
5188 / (dMult*(dMult-1.)*(dMult-2.)*(dMult-3.))
5189 + (dMult-6.)/((dMult-1.)*(dMult-2.)*(dMult-3.));
5190 four6n4n6n4n = ((pow(dReQ4n,2.)+pow(dImQ4n,2.))*(pow(dReQ6n,2.)+pow(dImQ6n,2.))
5191 - 2.*(dReQ10n*dReQ4n*dReQ6n-dReQ10n*dImQ4n*dImQ6n+dImQ10n*dReQ4n*dImQ6n+dImQ10n*dImQ4n*dReQ6n)
5192 - 2.*(dReQ6n*dReQ4n*dReQ2n-dReQ6n*dImQ4n*dImQ2n+dImQ6n*dReQ4n*dImQ2n+dImQ6n*dImQ4n*dReQ2n)
5193 + pow(dReQ10n,2.)+pow(dImQ10n,2.)+pow(dReQ2n,2.)+pow(dImQ2n,2.)
5194 - (dMult-4.)*(pow(dReQ6n,2.)+pow(dImQ6n,2.)+pow(dReQ4n,2.)+pow(dImQ4n,2.))
5196 / (dMult*(dMult-1.)*(dMult-2.)*(dMult-3.));
5197 four6n5n6n5n = ((pow(dReQ6n,2.)+pow(dImQ6n,2.))*(pow(dReQ5n,2.)+pow(dImQ5n,2.))
5198 - 2.*(dReQ11n*dReQ6n*dReQ5n-dReQ11n*dImQ6n*dImQ5n+dImQ11n*dReQ5n*dImQ6n+dImQ11n*dImQ5n*dReQ6n)
5199 - 2.*(dReQ1n*dReQ6n*dReQ5n+dImQ1n*dImQ6n*dReQ5n+dReQ1n*dImQ6n*dImQ5n-dImQ1n*dImQ5n*dReQ6n)
5200 + pow(dReQ11n,2.)+pow(dImQ11n,2.)+pow(dReQ1n,2.)+pow(dImQ1n,2.)
5201 - (dMult-4.)*(pow(dReQ6n,2.)+pow(dImQ6n,2.)+pow(dReQ5n,2.)+pow(dImQ5n,2.))
5203 / (dMult*(dMult-1.)*(dMult-2.)*(dMult-3.));
5204 // Two distinct harmonics (2):
5205 four3n1n1n1n = (dReQ3n*pow(dReQ1n,3)-3.*dReQ1n*dReQ3n*pow(dImQ1n,2)
5206 + 3.*dImQ1n*dImQ3n*pow(dReQ1n,2)-dImQ3n*pow(dImQ1n,3)
5207 - 3.*(dReQ3n*dReQ2n*dReQ1n-dReQ3n*dImQ2n*dImQ1n+dImQ3n*dReQ2n*dImQ1n+dImQ3n*dImQ2n*dReQ1n)
5208 - 3.*(pow(dReQ1n,2.)*dReQ2n+2.*dReQ1n*dImQ1n*dImQ2n-pow(dImQ1n,2.)*dReQ2n)
5209 + 2.*(pow(dReQ3n,2.)+pow(dImQ3n,2.))+3.*(pow(dReQ2n,2.)+pow(dImQ2n,2.))
5210 + 6.*(pow(dReQ1n,2.)+pow(dImQ1n,2.))-6.*dMult)
5211 / (dMult*(dMult-1.)*(dMult-2.)*(dMult-3.));
5212 four6n2n2n2n = (dReQ6n*pow(dReQ2n,3)-3.*dReQ2n*dReQ6n*pow(dImQ2n,2)
5213 + 3.*dImQ2n*dImQ6n*pow(dReQ2n,2)-dImQ6n*pow(dImQ2n,3)
5214 - 3.*(dReQ6n*dReQ4n*dReQ2n-dReQ6n*dImQ4n*dImQ2n+dImQ6n*dReQ4n*dImQ2n+dImQ6n*dImQ4n*dReQ2n)
5215 - 3.*(pow(dReQ2n,2.)*dReQ4n+2.*dReQ2n*dImQ2n*dImQ4n-pow(dImQ2n,2.)*dReQ4n)
5216 + 2.*(pow(dReQ6n,2.)+pow(dImQ6n,2.))+3.*(pow(dReQ4n,2.)+pow(dImQ4n,2.))
5217 + 6.*(pow(dReQ2n,2.)+pow(dImQ2n,2.))-6.*dMult)
5218 / (dMult*(dMult-1.)*(dMult-2.)*(dMult-3.));
5219 // Three distinct harmonics (10):
5220 four3n1n2n2n = ((pow(dReQ2n,2.)-pow(dImQ2n,2.))*(dReQ3n*dReQ1n-dImQ3n*dImQ1n)
5221 + 2.*dReQ2n*dImQ2n*(dReQ3n*dImQ1n+dImQ3n*dReQ1n)
5222 - (pow(dReQ2n,2.)*dReQ4n+2.*dReQ2n*dImQ2n*dImQ4n-pow(dImQ2n,2.)*dReQ4n)
5223 - (dReQ4n*(dReQ3n*dReQ1n-dImQ3n*dImQ1n)+dImQ4n*(dReQ3n*dImQ1n+dImQ3n*dReQ1n))
5224 - 2.*(dReQ3n*dReQ2n*dReQ1n-dReQ3n*dImQ2n*dImQ1n+dImQ3n*dReQ2n*dImQ1n+dImQ3n*dImQ2n*dReQ1n))
5225 / (dMult*(dMult-1.)*(dMult-2.)*(dMult-3.))
5226 - (2.*(pow(dReQ1n,2.)*dReQ2n+2.*dReQ1n*dImQ1n*dImQ2n-pow(dImQ1n,2.)*dReQ2n)
5227 - (pow(dReQ4n,2.)+pow(dImQ4n,2.))-2.*(pow(dReQ3n,2.)+pow(dImQ3n,2.))
5228 - 4.*(pow(dReQ2n,2.)+pow(dImQ2n,2.))-4.*(pow(dReQ1n,2.)+pow(dImQ1n,2.)))
5229 / (dMult*(dMult-1.)*(dMult-2.)*(dMult-3.))
5230 - 6./((dMult-1.)*(dMult-2.)*(dMult-3.));
5231 four4n2n1n1n = ((dReQ4n*dReQ2n+dImQ4n*dImQ2n)*(pow(dReQ1n,2)-pow(dImQ1n,2))
5232 + 2.*dReQ1n*dImQ1n*(dImQ4n*dReQ2n-dReQ4n*dImQ2n)
5233 - 2.*(dReQ4n*(dReQ3n*dReQ1n-dImQ3n*dImQ1n)+dImQ4n*(dReQ3n*dImQ1n+dImQ3n*dReQ1n))
5234 - (pow(dReQ2n,2.)*dReQ4n+2.*dReQ2n*dImQ2n*dImQ4n-pow(dImQ2n,2.)*dReQ4n)
5235 - 2.*(dReQ3n*dReQ2n*dReQ1n-dReQ3n*dImQ2n*dImQ1n+dImQ3n*dReQ2n*dImQ1n+dImQ3n*dImQ2n*dReQ1n))
5236 / (dMult*(dMult-1.)*(dMult-2.)*(dMult-3.))
5237 - ((pow(dReQ1n,2.)*dReQ2n+2.*dReQ1n*dImQ1n*dImQ2n-pow(dImQ1n,2.)*dReQ2n)
5238 - 2.*(pow(dReQ4n,2.)+pow(dImQ4n,2.))-2.*(pow(dReQ3n,2.)+pow(dImQ3n,2.))
5239 - 3.*(pow(dReQ2n,2.)+pow(dImQ2n,2.))-4.*(pow(dReQ1n,2.)+pow(dImQ1n,2.)))
5240 / (dMult*(dMult-1.)*(dMult-2.)*(dMult-3.))
5241 - 6./((dMult-1.)*(dMult-2.)*(dMult-3.));
5242 four4n2n3n3n = ((dReQ4n*dReQ2n-dImQ4n*dImQ2n)*(dReQ3n*dReQ3n-dImQ3n*dImQ3n)
5243 + 2.*(dReQ4n*dImQ2n+dImQ4n*dReQ2n)*dReQ3n*dImQ3n
5244 - (dReQ6n*dReQ4n*dReQ2n-dReQ6n*dImQ4n*dImQ2n+dImQ6n*dReQ4n*dImQ2n+dImQ6n*dImQ4n*dReQ2n)
5245 - (pow(dReQ3n,2.)*dReQ6n+2.*dReQ3n*dImQ3n*dImQ6n-pow(dImQ3n,2.)*dReQ6n)
5246 - 2.*(dReQ4n*(dReQ3n*dReQ1n-dImQ3n*dImQ1n)+dImQ4n*(dReQ3n*dImQ1n+dImQ3n*dReQ1n))
5247 - 2.*(dReQ3n*dReQ2n*dReQ1n-dReQ3n*dImQ2n*dImQ1n+dImQ3n*dReQ2n*dImQ1n+dImQ3n*dImQ2n*dReQ1n)
5248 + (pow(dReQ6n,2.)+pow(dImQ6n,2.))+2.*(pow(dReQ4n,2.)+pow(dImQ4n,2.))
5249 + 2.*(2.*(pow(dReQ3n,2.)+pow(dImQ3n,2.))+(pow(dReQ2n,2.)+pow(dImQ2n,2.))
5250 + (pow(dReQ1n,2.)+pow(dImQ1n,2.))-3.*dMult))
5251 / (dMult*(dMult-1.)*(dMult-2.)*(dMult-3.));
5252 four5n2n2n1n = (-pow(dImQ2n,2.)*dImQ1n*dImQ5n+dImQ1n*dImQ5n*pow(dReQ2n,2.)
5253 + 2.*dImQ2n*dImQ5n*dReQ2n*dReQ1n-2.*dImQ2n*dImQ1n*dReQ2n*dReQ5n
5254 - pow(dImQ2n,2.)*dReQ1n*dReQ5n+pow(dReQ2n,2.)*dReQ1n*dReQ5n
5255 - (dReQ5n*dReQ4n*dReQ1n-dReQ5n*dImQ4n*dImQ1n+dImQ5n*dReQ4n*dImQ1n+dImQ5n*dImQ4n*dReQ1n)
5256 - 2.*(dReQ5n*dReQ2n*dReQ3n-dReQ5n*dImQ2n*dImQ3n+dImQ5n*dReQ2n*dImQ3n+dImQ5n*dImQ2n*dReQ3n)
5257 - (pow(dReQ2n,2.)*dReQ4n+2.*dReQ2n*dImQ2n*dImQ4n-pow(dImQ2n,2.)*dReQ4n)
5258 - 2.*(dReQ3n*dReQ2n*dReQ1n-dReQ3n*dImQ2n*dImQ1n+dImQ3n*dReQ2n*dImQ1n+dImQ3n*dImQ2n*dReQ1n)
5259 + 2.*(pow(dReQ5n,2.)+pow(dImQ5n,2.))+pow(dReQ4n,2.)+pow(dImQ4n,2.)
5260 + 2.*(pow(dReQ3n,2.)+pow(dImQ3n,2.))+4.*(pow(dReQ2n,2.)+pow(dImQ2n,2.))
5261 + 2.*(pow(dReQ1n,2.)+pow(dImQ1n,2.))-6.*dMult)
5262 / (dMult*(dMult-1.)*(dMult-2.)*(dMult-3.));
5263 four5n3n1n1n = (-pow(dImQ1n,2.)*dImQ3n*dImQ5n+dImQ3n*dImQ5n*pow(dReQ1n,2.)
5264 + 2.*dImQ1n*dImQ5n*dReQ1n*dReQ3n-2.*dImQ1n*dImQ3n*dReQ1n*dReQ5n
5265 - pow(dImQ1n,2.)*dReQ3n*dReQ5n+pow(dReQ1n,2.)*dReQ3n*dReQ5n
5266 - 2.*(dReQ5n*dReQ4n*dReQ1n-dReQ5n*dImQ4n*dImQ1n+dImQ5n*dReQ4n*dImQ1n+dImQ5n*dImQ4n*dReQ1n)
5267 - (dReQ5n*dReQ2n*dReQ3n-dReQ5n*dImQ2n*dImQ3n+dImQ5n*dReQ2n*dImQ3n+dImQ5n*dImQ2n*dReQ3n)
5268 - 2.*(dReQ4n*(dReQ3n*dReQ1n-dImQ3n*dImQ1n)+dImQ4n*(dReQ3n*dImQ1n+dImQ3n*dReQ1n))
5269 - (pow(dReQ1n,2.)*dReQ2n+2.*dReQ1n*dImQ1n*dImQ2n-pow(dImQ1n,2.)*dReQ2n)
5270 + 2.*(pow(dReQ5n,2.)+pow(dImQ5n,2.))+2.*(pow(dReQ4n,2.)+pow(dImQ4n,2.))
5271 + 2.*(pow(dReQ3n,2.)+pow(dImQ3n,2.))+pow(dReQ2n,2.)+pow(dImQ2n,2.)
5272 + 4.*(pow(dReQ1n,2.)+pow(dImQ1n,2.))-6.*dMult)
5273 / (dMult*(dMult-1.)*(dMult-2.)*(dMult-3.));
5274 four5n1n3n3n = (dImQ1n*pow(dImQ3n,2.)*dImQ5n+2.*dImQ3n*dImQ5n*dReQ1n*dReQ3n
5275 - dImQ1n*dImQ5n*pow(dReQ3n,2.)-pow(dImQ3n,2.)*dReQ1n*dReQ5n
5276 + 2.*dImQ1n*dImQ3n*dReQ3n*dReQ5n+dReQ1n*pow(dReQ3n,2.)*dReQ5n
5277 - (dReQ6n*dReQ5n*dReQ1n-dReQ6n*dImQ5n*dImQ1n+dImQ6n*dReQ5n*dImQ1n+dImQ6n*dImQ5n*dReQ1n)
5278 - (pow(dReQ3n,2.)*dReQ6n+2.*dReQ3n*dImQ3n*dImQ6n-pow(dImQ3n,2.)*dReQ6n)
5279 - 2.*(dReQ5n*dReQ2n*dReQ3n-dReQ5n*dImQ2n*dImQ3n+dImQ5n*dReQ2n*dImQ3n+dImQ5n*dImQ2n*dReQ3n)
5280 - 2.*(dReQ3n*dReQ2n*dReQ1n-dReQ3n*dImQ2n*dImQ1n+dImQ3n*dReQ2n*dImQ1n+dImQ3n*dImQ2n*dReQ1n)
5281 + pow(dReQ6n,2.)+pow(dImQ6n,2.)+2.*(pow(dReQ5n,2.)+pow(dImQ5n,2.))
5282 + 4.*(pow(dReQ3n,2.)+pow(dImQ3n,2.))+2.*(pow(dReQ2n,2.)+pow(dImQ2n,2.))
5283 + 2.*(pow(dReQ1n,2.)+pow(dImQ1n,2.))-6.*dMult)
5284 / (dMult*(dMult-1.)*(dMult-2.)*(dMult-3.));
5285 four5n3n4n4n = ((pow(dReQ4n,2.)-pow(dImQ4n,2.))*(dReQ5n*dReQ3n-dImQ5n*dImQ3n)
5286 + 2.*dReQ4n*dImQ4n*(dReQ5n*dImQ3n+dImQ5n*dReQ3n)
5287 - (dReQ8n*dReQ3n*dReQ5n-dReQ8n*dImQ3n*dImQ5n+dImQ8n*dReQ3n*dImQ5n+dImQ8n*dImQ3n*dReQ5n)
5288 - (pow(dReQ4n,2.)*dReQ8n+2.*dReQ4n*dImQ4n*dImQ8n-pow(dImQ4n,2.)*dReQ8n)
5289 - 2.*(dReQ5n*dReQ4n*dReQ1n-dReQ5n*dImQ4n*dImQ1n+dImQ5n*dReQ4n*dImQ1n+dImQ5n*dImQ4n*dReQ1n)
5290 - 2.*(dReQ4n*dReQ3n*dReQ1n-dReQ4n*dImQ3n*dImQ1n+dImQ4n*dReQ3n*dImQ1n+dImQ4n*dImQ3n*dReQ1n)
5291 + pow(dReQ8n,2.)+pow(dImQ8n,2.)+2.*(pow(dReQ5n,2.)+pow(dImQ5n,2.))
5292 + 4.*(pow(dReQ4n,2.)+pow(dImQ4n,2.))+2.*(pow(dReQ3n,2.)+pow(dImQ3n,2.))
5293 + 2.*(pow(dReQ1n,2.)+pow(dImQ1n,2.))-6.*dMult)
5294 / (dMult*(dMult-1.)*(dMult-2.)*(dMult-3.));
5295 four6n4n1n1n = (-pow(dImQ1n,2.)*dImQ4n*dImQ6n+dImQ4n*dImQ6n*pow(dReQ1n,2.)
5296 + 2.*dImQ1n*dImQ6n*dReQ1n*dReQ4n-2.*dImQ1n*dImQ4n*dReQ1n*dReQ6n
5297 - pow(dImQ1n,2.)*dReQ4n*dReQ6n+pow(dReQ1n,2.)*dReQ4n*dReQ6n
5298 - 2.*(dReQ6n*dReQ5n*dReQ1n-dReQ6n*dImQ5n*dImQ1n+dImQ6n*dReQ5n*dImQ1n+dImQ6n*dImQ5n*dReQ1n)
5299 - (dReQ6n*dReQ4n*dReQ2n-dReQ6n*dImQ4n*dImQ2n+dImQ6n*dReQ4n*dImQ2n+dImQ6n*dImQ4n*dReQ2n)
5300 - 2.*(dReQ5n*dReQ4n*dReQ1n-dReQ5n*dImQ4n*dImQ1n+dImQ5n*dReQ4n*dImQ1n+dImQ5n*dImQ4n*dReQ1n)
5301 - (pow(dReQ1n,2.)*dReQ2n+2.*dReQ1n*dImQ1n*dImQ2n-pow(dImQ1n,2.)*dReQ2n)
5302 + 2.*(pow(dReQ6n,2.)+pow(dImQ6n,2.)+pow(dReQ5n,2.)+pow(dImQ5n,2.)
5303 + pow(dReQ4n,2.)+pow(dImQ4n,2.))+pow(dReQ2n,2.)+pow(dImQ2n,2.)
5304 + 4.*(pow(dReQ1n,2.)+pow(dImQ1n,2.))-6.*dMult)
5305 / (dMult*(dMult-1.)*(dMult-2.)*(dMult-3.));
5306 four6n2n4n4n = ((pow(dReQ4n,2.)-pow(dImQ4n,2.))*(dReQ6n*dReQ2n-dImQ6n*dImQ2n)
5307 + 2.*dReQ4n*dImQ4n*(dReQ6n*dImQ2n+dImQ6n*dReQ2n)
5308 - (pow(dReQ4n,2.)*dReQ8n+2.*dReQ4n*dImQ4n*dImQ8n-pow(dImQ4n,2.)*dReQ8n)
5309 - (dReQ8n*(dReQ6n*dReQ2n-dImQ6n*dImQ2n)+dImQ8n*(dReQ6n*dImQ2n+dImQ6n*dReQ2n))
5310 - 2.*(dReQ6n*dReQ4n*dReQ2n-dReQ6n*dImQ4n*dImQ2n+dImQ6n*dReQ4n*dImQ2n+dImQ6n*dImQ4n*dReQ2n))
5311 / (dMult*(dMult-1.)*(dMult-2.)*(dMult-3.))
5312 - (2.*(pow(dReQ2n,2.)*dReQ4n+2.*dReQ2n*dImQ2n*dImQ4n-pow(dImQ2n,2.)*dReQ4n)
5313 - (pow(dReQ8n,2.)+pow(dImQ8n,2.))-2.*(pow(dReQ6n,2.)+pow(dImQ6n,2.))
5314 - 4.*(pow(dReQ4n,2.)+pow(dImQ4n,2.))-4.*(pow(dReQ2n,2.)+pow(dImQ2n,2.)))
5315 / (dMult*(dMult-1.)*(dMult-2.)*(dMult-3.))
5316 - 6./((dMult-1.)*(dMult-2.)*(dMult-3.));
5317 four6n4n5n5n = ((pow(dReQ5n,2.)-pow(dImQ5n,2.))*(dReQ6n*dReQ4n-dImQ6n*dImQ4n)
5318 + 2.*dReQ5n*dImQ5n*(dReQ6n*dImQ4n+dImQ6n*dReQ4n)
5319 - (dReQ10n*dReQ4n*dReQ6n-dReQ10n*dImQ4n*dImQ6n+dImQ10n*dReQ4n*dImQ6n+dImQ10n*dImQ4n*dReQ6n)
5320 - (pow(dReQ5n,2.)*dReQ10n+2.*dReQ5n*dImQ5n*dImQ10n-pow(dImQ5n,2.)*dReQ10n)
5321 - 2.*(dReQ6n*dReQ5n*dReQ1n-dReQ6n*dImQ5n*dImQ1n+dImQ6n*dReQ5n*dImQ1n+dImQ6n*dImQ5n*dReQ1n)
5322 - 2.*(dReQ5n*dReQ4n*dReQ1n-dReQ5n*dImQ4n*dImQ1n+dImQ5n*dReQ4n*dImQ1n+dImQ5n*dImQ4n*dReQ1n)
5323 + pow(dReQ10n,2.)+pow(dImQ10n,2.)+2.*(pow(dReQ6n,2.)+pow(dImQ6n,2.))
5324 + 4.*(pow(dReQ5n,2.)+pow(dImQ5n,2.))+2.*(pow(dReQ4n,2.)+pow(dImQ4n,2.))
5325 + 2.*(pow(dReQ1n,2.)+pow(dImQ1n,2.))-6.*dMult)
5326 / (dMult*(dMult-1.)*(dMult-2.)*(dMult-3.));
5327 // Four distinct harmonics (8):
5328 four4n1n3n2n = (dImQ1n*dImQ2n*dImQ3n*dImQ4n+dImQ3n*dImQ4n*dReQ1n*dReQ2n
5329 + dImQ2n*dImQ4n*dReQ1n*dReQ3n-dImQ1n*dImQ4n*dReQ2n*dReQ3n
5330 - dImQ2n*dImQ3n*dReQ1n*dReQ4n+dImQ1n*dImQ3n*dReQ2n*dReQ4n
5331 + dImQ1n*dImQ2n*dReQ3n*dReQ4n+dReQ1n*dReQ2n*dReQ3n*dReQ4n
5332 - (dReQ5n*dReQ2n*dReQ3n-dReQ5n*dImQ2n*dImQ3n+dImQ5n*dReQ2n*dImQ3n+dImQ5n*dImQ2n*dReQ3n)
5333 - (dReQ5n*dReQ4n*dReQ1n-dReQ5n*dImQ4n*dImQ1n+dImQ5n*dReQ4n*dImQ1n+dImQ5n*dImQ4n*dReQ1n)
5334 - (dReQ4n*(dReQ3n*dReQ1n-dImQ3n*dImQ1n)+dImQ4n*(dReQ3n*dImQ1n+dImQ3n*dReQ1n))
5335 - (pow(dReQ2n,2.)*dReQ4n+2.*dReQ2n*dImQ2n*dImQ4n-pow(dImQ2n,2.)*dReQ4n)
5336 - (dReQ3n*dReQ2n*dReQ1n-dReQ3n*dImQ2n*dImQ1n+dImQ3n*dReQ2n*dImQ1n+dImQ3n*dImQ2n*dReQ1n)
5337 - (pow(dReQ1n,2.)*dReQ2n+2.*dReQ1n*dImQ1n*dImQ2n-pow(dImQ1n,2.)*dReQ2n)
5338 + pow(dReQ5n,2.)+pow(dImQ5n,2.)+2.*(pow(dReQ4n,2.)+pow(dImQ4n,2.))
5339 + 2.*(pow(dReQ3n,2.)+pow(dImQ3n,2.))+3.*(pow(dReQ2n,2.)+pow(dImQ2n,2.))
5340 + 3.*(pow(dReQ1n,2.)+pow(dImQ1n,2.))-6.*dMult)
5341 / (dMult*(dMult-1.)*(dMult-2.)*(dMult-3.));
5342 four5n1n4n2n = (dImQ1n*dImQ2n*dImQ4n*dImQ5n+dImQ4n*dImQ5n*dReQ1n*dReQ2n
5343 + dImQ2n*dImQ5n*dReQ1n*dReQ4n-dImQ1n*dImQ5n*dReQ2n*dReQ4n
5344 - dImQ2n*dImQ4n*dReQ1n*dReQ5n+dImQ1n*dImQ4n*dReQ2n*dReQ5n+dImQ1n*dImQ2n*dReQ4n*dReQ5n
5345 + dReQ1n*dReQ2n*dReQ4n*dReQ5n
5346 - (dReQ6n*dReQ5n*dReQ1n-dReQ6n*dImQ5n*dImQ1n+dImQ6n*dReQ5n*dImQ1n+dImQ6n*dImQ5n*dReQ1n)
5347 - (dReQ6n*dReQ4n*dReQ2n-dReQ6n*dImQ4n*dImQ2n+dImQ6n*dReQ4n*dImQ2n+dImQ6n*dImQ4n*dReQ2n)
5348 - (dReQ5n*dReQ4n*dReQ1n-dReQ5n*dImQ4n*dImQ1n+dImQ5n*dReQ4n*dImQ1n+dImQ5n*dImQ4n*dReQ1n)
5349 - (dReQ5n*dReQ2n*dReQ3n-dReQ5n*dImQ2n*dImQ3n+dImQ5n*dReQ2n*dImQ3n+dImQ5n*dImQ2n*dReQ3n)
5350 - (dReQ4n*(dReQ3n*dReQ1n-dImQ3n*dImQ1n)+dImQ4n*(dReQ3n*dImQ1n+dImQ3n*dReQ1n))
5351 - (pow(dReQ1n,2.)*dReQ2n+2.*dReQ1n*dImQ1n*dImQ2n-pow(dImQ1n,2.)*dReQ2n)
5352 + pow(dReQ6n,2.)+pow(dImQ6n,2.)
5353 + 2.*(pow(dReQ5n,2.)+pow(dImQ5n,2.))+2.*(pow(dReQ4n,2.)+pow(dImQ4n,2.))
5354 + pow(dReQ3n,2.)+pow(dImQ3n,2.)+2.*(pow(dReQ2n,2.)+pow(dImQ2n,2.))
5355 + 3.*(pow(dReQ1n,2.)+pow(dImQ1n,2.))-6.*dMult)
5356 / (dMult*(dMult-1.)*(dMult-2.)*(dMult-3.));
5357 four5n2n4n3n = (dImQ2n*dImQ3n*dImQ4n*dImQ5n+dImQ4n*dImQ5n*dReQ2n*dReQ3n
5358 + dImQ3n*dImQ5n*dReQ2n*dReQ4n-dImQ2n*dImQ5n*dReQ3n*dReQ4n
5359 - dImQ3n*dImQ4n*dReQ2n*dReQ5n+dImQ2n*dImQ4n*dReQ3n*dReQ5n
5360 + dImQ2n*dImQ3n*dReQ4n*dReQ5n+dReQ2n*dReQ3n*dReQ4n*dReQ5n
5361 - (dReQ7n*dReQ5n*dReQ2n-dReQ7n*dImQ5n*dImQ2n+dImQ7n*dReQ5n*dImQ2n+dImQ7n*dImQ5n*dReQ2n)
5362 - (dReQ7n*dReQ4n*dReQ3n-dReQ7n*dImQ4n*dImQ3n+dImQ7n*dReQ4n*dImQ3n+dImQ7n*dImQ4n*dReQ3n)
5363 - (dReQ5n*dReQ4n*dReQ1n-dReQ5n*dImQ4n*dImQ1n+dImQ5n*dReQ4n*dImQ1n+dImQ5n*dImQ4n*dReQ1n)
5364 - (dReQ5n*dReQ2n*dReQ3n-dReQ5n*dImQ2n*dImQ3n+dImQ5n*dReQ2n*dImQ3n+dImQ5n*dImQ2n*dReQ3n)
5365 - (pow(dReQ2n,2.)*dReQ4n+2.*dReQ2n*dImQ2n*dImQ4n-pow(dImQ2n,2.)*dReQ4n)
5366 - (dReQ3n*dReQ2n*dReQ1n-dReQ3n*dImQ2n*dImQ1n+dImQ3n*dReQ2n*dImQ1n+dImQ3n*dImQ2n*dReQ1n)
5367 + pow(dReQ7n,2.)+pow(dImQ7n,2.)+2.*(pow(dReQ5n,2.)+pow(dImQ5n,2.))
5368 + 2.*(pow(dReQ4n,2.)+pow(dImQ4n,2.))+2.*(pow(dReQ3n,2.)+pow(dImQ3n,2.))
5369 + 3.*(pow(dReQ2n,2.)+pow(dImQ2n,2.))+pow(dReQ1n,2.)+pow(dImQ1n,2.)-6.*dMult)
5370 / (dMult*(dMult-1.)*(dMult-2.)*(dMult-3.));
5371 four6n1n4n3n = (dImQ1n*dImQ3n*dImQ4n*dImQ6n+dImQ4n*dImQ6n*dReQ1n*dReQ3n
5372 + dImQ3n*dImQ6n*dReQ1n*dReQ4n-dImQ1n*dImQ6n*dReQ3n*dReQ4n
5373 - dImQ3n*dImQ4n*dReQ1n*dReQ6n+dImQ1n*dImQ4n*dReQ3n*dReQ6n+dImQ1n*dImQ3n*dReQ4n*dReQ6n
5374 + dReQ1n*dReQ3n*dReQ4n*dReQ6n
5375 - (dReQ7n*dReQ6n*dReQ1n-dReQ7n*dImQ6n*dImQ1n+dImQ7n*dReQ6n*dImQ1n+dImQ7n*dImQ6n*dReQ1n)
5376 - (dReQ7n*dReQ4n*dReQ3n-dReQ7n*dImQ4n*dImQ3n+dImQ7n*dReQ4n*dImQ3n+dImQ7n*dImQ4n*dReQ3n)
5377 - (dReQ6n*dReQ4n*dReQ2n-dReQ6n*dImQ4n*dImQ2n+dImQ6n*dReQ4n*dImQ2n+dImQ6n*dImQ4n*dReQ2n)
5378 - (pow(dReQ3n,2.)*dReQ6n+2.*dReQ3n*dImQ3n*dImQ6n-pow(dImQ3n,2.)*dReQ6n)
5379 - (dReQ4n*dReQ1n*dReQ3n-dReQ4n*dImQ1n*dImQ3n+dImQ4n*dReQ1n*dImQ3n+dImQ4n*dImQ1n*dReQ3n)
5380 - (dReQ3n*dReQ2n*dReQ1n-dReQ3n*dImQ2n*dImQ1n+dImQ3n*dReQ2n*dImQ1n+dImQ3n*dImQ2n*dReQ1n)
5381 + pow(dReQ7n,2.)+pow(dImQ7n,2.)+2.*(pow(dReQ6n,2.)+pow(dImQ6n,2.))
5382 + 2.*(pow(dReQ4n,2.)+pow(dImQ4n,2.))+3.*(pow(dReQ3n,2.)+pow(dImQ3n,2.))
5383 + pow(dReQ2n,2.)+pow(dImQ2n,2.)+2.*(pow(dReQ1n,2.)+pow(dImQ1n,2.))-6.*dMult)
5384 / (dMult*(dMult-1.)*(dMult-2.)*(dMult-3.));
5385 four6n1n5n2n = (dImQ1n*dImQ2n*dImQ5n*dImQ6n+dImQ5n*dImQ6n*dReQ1n*dReQ2n
5386 + dImQ2n*dImQ6n*dReQ1n*dReQ5n-dImQ1n*dImQ6n*dReQ2n*dReQ5n
5387 - dImQ2n*dImQ5n*dReQ1n*dReQ6n+dImQ1n*dImQ5n*dReQ2n*dReQ6n+dImQ1n*dImQ2n*dReQ5n*dReQ6n
5388 + dReQ1n*dReQ2n*dReQ5n*dReQ6n
5389 - (dReQ7n*dReQ6n*dReQ1n-dReQ7n*dImQ6n*dImQ1n+dImQ7n*dReQ6n*dImQ1n+dImQ7n*dImQ6n*dReQ1n)
5390 - (dReQ7n*dReQ5n*dReQ2n-dReQ7n*dImQ5n*dImQ2n+dImQ7n*dReQ5n*dImQ2n+dImQ7n*dImQ5n*dReQ2n)
5391 - (dReQ6n*dReQ5n*dReQ1n-dReQ6n*dImQ5n*dImQ1n+dImQ6n*dReQ5n*dImQ1n+dImQ6n*dImQ5n*dReQ1n)
5392 - (dReQ6n*dReQ4n*dReQ2n-dReQ6n*dImQ4n*dImQ2n+dImQ6n*dReQ4n*dImQ2n+dImQ6n*dImQ4n*dReQ2n)
5393 - (dReQ5n*dReQ4n*dReQ1n-dReQ5n*dImQ4n*dImQ1n+dImQ5n*dReQ4n*dImQ1n+dImQ5n*dImQ4n*dReQ1n)
5394 - (pow(dReQ1n,2.)*dReQ2n+2.*dReQ1n*dImQ1n*dImQ2n-pow(dImQ1n,2.)*dReQ2n)
5395 + pow(dReQ7n,2.)+pow(dImQ7n,2.)+2.*(pow(dReQ6n,2.)+pow(dImQ6n,2.))
5396 + 2.*(pow(dReQ5n,2.)+pow(dImQ5n,2.))+pow(dReQ4n,2.)+pow(dImQ4n,2.)
5397 + 2.*(pow(dReQ2n,2.)+pow(dImQ2n,2.))+3.*(pow(dReQ1n,2.)+pow(dImQ1n,2.))-6.*dMult)
5398 / (dMult*(dMult-1.)*(dMult-2.)*(dMult-3.));
5399 four6n3n2n1n = (dReQ1n*dReQ2n*dReQ3n*dReQ6n-dReQ3n*dReQ6n*dImQ1n*dImQ2n
5400 - dReQ2n*dReQ6n*dImQ1n*dImQ3n-dReQ1n*dReQ6n*dImQ2n*dImQ3n
5401 + dReQ2n*dReQ3n*dImQ1n*dImQ6n+dReQ1n*dReQ3n*dImQ2n*dImQ6n
5402 + dReQ1n*dReQ2n*dImQ3n*dImQ6n-dImQ1n*dImQ2n*dImQ3n*dImQ6n
5403 - (dReQ6n*dReQ4n*dReQ2n-dReQ6n*dImQ4n*dImQ2n+dImQ6n*dReQ4n*dImQ2n+dImQ6n*dImQ4n*dReQ2n)
5404 - (pow(dReQ3n,2.)*dReQ6n+2.*dReQ3n*dImQ3n*dImQ6n-pow(dImQ3n,2.)*dReQ6n)
5405 - (dReQ6n*dReQ5n*dReQ1n-dReQ6n*dImQ5n*dImQ1n+dImQ6n*dReQ5n*dImQ1n+dImQ6n*dImQ5n*dReQ1n)
5406 - (dReQ5n*dReQ2n*dReQ3n-dReQ5n*dImQ2n*dImQ3n+dImQ5n*dReQ2n*dImQ3n+dImQ5n*dImQ2n*dReQ3n)
5407 - (dReQ4n*(dReQ3n*dReQ1n-dImQ3n*dImQ1n)+dImQ4n*(dReQ3n*dImQ1n+dImQ3n*dReQ1n))
5408 - (dReQ3n*dReQ2n*dReQ1n-dReQ3n*dImQ2n*dImQ1n+dImQ3n*dReQ2n*dImQ1n+dImQ3n*dImQ2n*dReQ1n)
5409 + 2.*(pow(dReQ6n,2.)+pow(dImQ6n,2.))+pow(dReQ5n,2.)+pow(dImQ5n,2.)
5410 + pow(dReQ4n,2.)+pow(dImQ4n,2.)+3.*(pow(dReQ3n,2.)+pow(dImQ3n,2.))
5411 + 2.*(pow(dReQ2n,2.)+pow(dImQ2n,2.))+2.*(pow(dReQ1n,2.)+pow(dImQ1n,2.))-6.*dMult)
5412 / (dMult*(dMult-1.)*(dMult-2.)*(dMult-3.));
5413 four6n2n5n3n = (dImQ2n*dImQ3n*dImQ5n*dImQ6n+dImQ5n*dImQ6n*dReQ2n*dReQ3n
5414 + dImQ3n*dImQ6n*dReQ2n*dReQ5n-dImQ2n*dImQ6n*dReQ3n*dReQ5n
5415 - dImQ3n*dImQ5n*dReQ2n*dReQ6n+dImQ2n*dImQ5n*dReQ3n*dReQ6n+dImQ2n*dImQ3n*dReQ5n*dReQ6n
5416 + dReQ2n*dReQ3n*dReQ5n*dReQ6n
5417 - (dReQ8n*dReQ6n*dReQ2n-dReQ8n*dImQ6n*dImQ2n+dImQ8n*dReQ6n*dImQ2n+dImQ8n*dImQ6n*dReQ2n)
5418 - (dReQ8n*dReQ5n*dReQ3n-dReQ8n*dImQ5n*dImQ3n+dImQ8n*dReQ5n*dImQ3n+dImQ8n*dImQ5n*dReQ3n)
5419 - (dReQ6n*dReQ5n*dReQ1n-dReQ6n*dImQ5n*dImQ1n+dImQ6n*dReQ5n*dImQ1n+dImQ6n*dImQ5n*dReQ1n)
5420 - (pow(dReQ3n,2.)*dReQ6n+2.*dReQ3n*dImQ3n*dImQ6n-pow(dImQ3n,2.)*dReQ6n)
5421 - (dReQ5n*dReQ2n*dReQ3n-dReQ5n*dImQ2n*dImQ3n+dImQ5n*dReQ2n*dImQ3n+dImQ5n*dImQ2n*dReQ3n)
5422 - (dReQ3n*dReQ2n*dReQ1n-dReQ3n*dImQ2n*dImQ1n+dImQ3n*dReQ2n*dImQ1n+dImQ3n*dImQ2n*dReQ1n)
5423 + pow(dReQ8n,2.)+pow(dImQ8n,2.)+2.*(pow(dReQ6n,2.)+pow(dImQ6n,2.))
5424 + 2.*(pow(dReQ5n,2.)+pow(dImQ5n,2.))+3.*(pow(dReQ3n,2.)+pow(dImQ3n,2.))
5425 + 2.*(pow(dReQ2n,2.)+pow(dImQ2n,2.))+pow(dReQ1n,2.)+pow(dImQ1n,2.)-6.*dMult)
5426 / (dMult*(dMult-1.)*(dMult-2.)*(dMult-3.));
5427 four6n3n5n4n = (dImQ3n*dImQ4n*dImQ5n*dImQ6n+dImQ5n*dImQ6n*dReQ3n*dReQ4n
5428 + dImQ4n*dImQ6n*dReQ3n*dReQ5n-dImQ3n*dImQ6n*dReQ4n*dReQ5n
5429 - dImQ4n*dImQ5n*dReQ3n*dReQ6n+dImQ3n*dImQ5n*dReQ4n*dReQ6n+dImQ3n*dImQ4n*dReQ5n*dReQ6n
5430 + dReQ3n*dReQ4n*dReQ5n*dReQ6n
5431 - (dReQ9n*dReQ6n*dReQ3n-dReQ9n*dImQ6n*dImQ3n+dImQ9n*dReQ6n*dImQ3n+dImQ9n*dImQ6n*dReQ3n)
5432 - (dReQ9n*dReQ5n*dReQ4n-dReQ9n*dImQ5n*dImQ4n+dImQ9n*dReQ5n*dImQ4n+dImQ9n*dImQ5n*dReQ4n)
5433 - (dReQ6n*dReQ5n*dReQ1n-dReQ6n*dImQ5n*dImQ1n+dImQ6n*dReQ5n*dImQ1n+dImQ6n*dImQ5n*dReQ1n)
5434 - (dReQ6n*dReQ4n*dReQ2n-dReQ6n*dImQ4n*dImQ2n+dImQ6n*dReQ4n*dImQ2n+dImQ6n*dImQ4n*dReQ2n)
5435 - (dReQ5n*dReQ2n*dReQ3n-dReQ5n*dImQ2n*dImQ3n+dImQ5n*dReQ2n*dImQ3n+dImQ5n*dImQ2n*dReQ3n)
5436 - (dReQ4n*dReQ3n*dReQ1n-dReQ4n*dImQ3n*dImQ1n+dImQ4n*dReQ3n*dImQ1n+dImQ4n*dImQ3n*dReQ1n)
5437 + pow(dReQ9n,2.)+pow(dImQ9n,2.)+2.*(pow(dReQ6n,2.)+pow(dImQ6n,2.))
5438 + 2.*(pow(dReQ5n,2.)+pow(dImQ5n,2.))+2.*(pow(dReQ4n,2.)+pow(dImQ4n,2.))
5439 + 2.*(pow(dReQ3n,2.)+pow(dImQ3n,2.))+pow(dReQ2n,2.)+pow(dImQ2n,2.)
5440 + pow(dReQ1n,2.)+pow(dImQ1n,2.)-6.*dMult)
5441 / (dMult*(dMult-1.)*(dMult-2.)*(dMult-3.));
5442 f4pCorrelations->Fill(0.5,four1n1n1n1n,d4pMultiplicityWeight);
5443 f4pCorrelations->Fill(1.5,four2n2n2n2n,d4pMultiplicityWeight);
5444 f4pCorrelations->Fill(2.5,four3n3n3n3n,d4pMultiplicityWeight);
5445 f4pCorrelations->Fill(3.5,four4n4n4n4n,d4pMultiplicityWeight);
5446 f4pCorrelations->Fill(4.5,four5n5n5n5n,d4pMultiplicityWeight);
5447 f4pCorrelations->Fill(5.5,four6n6n6n6n,d4pMultiplicityWeight);
5448 //f4pCorrelations->Fill(6.5,0.,d4pMultiplicityWeight); // empty
5449 f4pCorrelations->Fill(7.5,four2n1n2n1n,d4pMultiplicityWeight);
5450 f4pCorrelations->Fill(8.5,four3n1n3n1n,d4pMultiplicityWeight);
5451 f4pCorrelations->Fill(9.5,four3n2n3n2n,d4pMultiplicityWeight);
5452 f4pCorrelations->Fill(10.5,four4n1n4n1n,d4pMultiplicityWeight);
5453 f4pCorrelations->Fill(11.5,four4n2n4n2n,d4pMultiplicityWeight);
5454 f4pCorrelations->Fill(12.5,four4n3n4n3n,d4pMultiplicityWeight);
5455 f4pCorrelations->Fill(13.5,four5n1n5n1n,d4pMultiplicityWeight);
5456 f4pCorrelations->Fill(14.5,four5n2n5n2n,d4pMultiplicityWeight);
5457 f4pCorrelations->Fill(15.5,four5n3n5n3n,d4pMultiplicityWeight);
5458 f4pCorrelations->Fill(16.5,four5n4n5n4n,d4pMultiplicityWeight);
5459 f4pCorrelations->Fill(17.5,four6n1n6n1n,d4pMultiplicityWeight);
5460 f4pCorrelations->Fill(18.5,four6n2n6n2n,d4pMultiplicityWeight);
5461 f4pCorrelations->Fill(19.5,four6n3n6n3n,d4pMultiplicityWeight);
5462 f4pCorrelations->Fill(20.5,four6n4n6n4n,d4pMultiplicityWeight);
5463 f4pCorrelations->Fill(21.5,four6n5n6n5n,d4pMultiplicityWeight);
5464 //f4pCorrelations->Fill(22.5,0.,d4pMultiplicityWeight); // empty
5465 f4pCorrelations->Fill(23.5,four3n1n1n1n,d4pMultiplicityWeight);
5466 f4pCorrelations->Fill(24.5,four6n2n2n2n,d4pMultiplicityWeight);
5467 //f4pCorrelations->Fill(25.5,0.,d4pMultiplicityWeight); // empty
5468 f4pCorrelations->Fill(26.5,four3n1n2n2n,d4pMultiplicityWeight);
5469 f4pCorrelations->Fill(27.5,four4n2n1n1n,d4pMultiplicityWeight);
5470 f4pCorrelations->Fill(28.5,four4n2n3n3n,d4pMultiplicityWeight);
5471 f4pCorrelations->Fill(29.5,four5n2n2n1n,d4pMultiplicityWeight);
5472 f4pCorrelations->Fill(30.5,four5n3n1n1n,d4pMultiplicityWeight);
5473 f4pCorrelations->Fill(31.5,four5n1n3n3n,d4pMultiplicityWeight);
5474 f4pCorrelations->Fill(32.5,four5n3n4n4n,d4pMultiplicityWeight);
5475 f4pCorrelations->Fill(33.5,four6n4n1n1n,d4pMultiplicityWeight);
5476 f4pCorrelations->Fill(34.5,four6n2n4n4n,d4pMultiplicityWeight);
5477 f4pCorrelations->Fill(35.5,four6n4n5n5n,d4pMultiplicityWeight);
5478 //f4pCorrelations->Fill(36.5,0.,d4pMultiplicityWeight); // empty
5479 f4pCorrelations->Fill(37.5,four4n1n3n2n,d4pMultiplicityWeight);
5480 f4pCorrelations->Fill(38.5,four5n1n4n2n,d4pMultiplicityWeight);
5481 f4pCorrelations->Fill(39.5,four5n2n4n3n,d4pMultiplicityWeight);
5482 f4pCorrelations->Fill(40.5,four6n1n4n3n,d4pMultiplicityWeight);
5483 f4pCorrelations->Fill(41.5,four6n1n5n2n,d4pMultiplicityWeight);
5484 f4pCorrelations->Fill(42.5,four6n3n2n1n,d4pMultiplicityWeight);
5485 f4pCorrelations->Fill(43.5,four6n2n5n3n,d4pMultiplicityWeight);
5486 f4pCorrelations->Fill(44.5,four6n3n5n4n,d4pMultiplicityWeight);
5487 allMixedCorrelators[15]=four1n1n1n1n;
5488 allMixedCorrelators[16]=four2n2n2n2n;
5489 allMixedCorrelators[17]=four3n3n3n3n;
5490 allMixedCorrelators[18]=four4n4n4n4n;
5491 allMixedCorrelators[19]=four5n5n5n5n;
5492 allMixedCorrelators[20]=four6n6n6n6n;
5493 allMixedCorrelators[21]=four2n1n2n1n;
5494 allMixedCorrelators[22]=four3n1n3n1n;
5495 allMixedCorrelators[23]=four3n2n3n2n;
5496 allMixedCorrelators[24]=four4n1n4n1n;
5497 allMixedCorrelators[25]=four4n2n4n2n;
5498 allMixedCorrelators[26]=four4n3n4n3n;
5499 allMixedCorrelators[27]=four5n1n5n1n;
5500 allMixedCorrelators[28]=four5n2n5n2n;
5501 allMixedCorrelators[29]=four5n3n5n3n;
5502 allMixedCorrelators[30]=four5n4n5n4n;
5503 allMixedCorrelators[31]=four6n1n6n1n;
5504 allMixedCorrelators[32]=four6n2n6n2n;
5505 allMixedCorrelators[33]=four6n3n6n3n;
5506 allMixedCorrelators[34]=four6n4n6n4n;
5507 allMixedCorrelators[35]=four6n5n6n5n;
5508 allMixedCorrelators[36]=four3n1n1n1n;
5509 allMixedCorrelators[37]=four6n2n2n2n;
5510 allMixedCorrelators[38]=four3n1n2n2n;
5511 allMixedCorrelators[39]=four4n2n1n1n;
5512 allMixedCorrelators[40]=four4n2n3n3n;
5513 allMixedCorrelators[41]=four5n2n2n1n;
5514 allMixedCorrelators[42]=four5n3n1n1n;
5515 allMixedCorrelators[43]=four5n1n3n3n;
5516 allMixedCorrelators[44]=four5n3n4n4n;
5517 allMixedCorrelators[45]=four6n4n1n1n;
5518 allMixedCorrelators[46]=four6n2n4n4n;
5519 allMixedCorrelators[47]=four6n4n5n5n;
5520 allMixedCorrelators[48]=four4n1n3n2n;
5521 allMixedCorrelators[49]=four5n1n4n2n;
5522 allMixedCorrelators[50]=four5n2n4n3n;
5523 allMixedCorrelators[51]=four6n1n4n3n;
5524 allMixedCorrelators[52]=four6n1n5n2n;
5525 allMixedCorrelators[53]=four6n3n2n1n;
5526 allMixedCorrelators[54]=four6n2n5n3n;
5527 allMixedCorrelators[55]=four6n3n5n4n;
5528 } // end of if(dMult>3.)
5530 // f) Calculate 5-p correlations:
5531 // f1) "Standard candles" (30):
5532 Double_t five3n2n3n1n1n = 0.; // <5>_{3n,2n|3n,1n,1n} = <cos(n(3*phi1+2*phi2-3*phi3-1*phi4-1*phi5))>
5533 Double_t five4n1n2n2n1n = 0.; // <5>_{4n,1n|2n,2n,1n} = <cos(n(4*phi1+1*phi2-2*phi3-2*phi4-1*phi5))>
5534 Double_t five4n2n3n2n1n = 0.; // <5>_{4n,2n|3n,2n,1n} = <cos(n(4*phi1+2*phi2-3*phi3-2*phi4-1*phi5))>
5535 Double_t five4n3n3n2n2n = 0.; // <5>_{4n,3n|3n,2n,2n} = <cos(n(4*phi1+3*phi2-3*phi3-2*phi4-2*phi5))>
5536 Double_t five4n2n4n1n1n = 0.; // <5>_{4n,2n|4n,1n,1n} = <cos(n(4*phi1+2*phi2-4*phi3-1*phi4-1*phi5))>
5537 Double_t five4n3n4n2n1n = 0.; // <5>_{4n,3n|4n,2n,1n} = <cos(n(4*phi1+3*phi2-4*phi3-2*phi4-1*phi5))>
5538 Double_t five5n1n3n2n1n = 0.; // <5>_{5n,1n|3n,2n,1n} = <cos(n(5*phi1+1*phi2-3*phi3-2*phi4-1*phi5))>
5539 Double_t five5n2n5n1n1n = 0.; // <5>_{5n,2n|5n,1n,1n} = <cos(n(5*phi1+2*phi2-5*phi3-1*phi4-1*phi5))>
5540 Double_t five5n2n4n2n1n = 0.; // <5>_{5n,2n|4n,2n,1n} = <cos(n(5*phi1+2*phi2-4*phi3-2*phi4-1*phi5))>
5541 Double_t five5n3n4n3n1n = 0.; // <5>_{5n,3n|4n,3n,1n} = <cos(n(5*phi1+3*phi2-4*phi3-3*phi4-1*phi5))>
5542 Double_t five5n4n4n3n2n = 0.; // <5>_{5n,4n|4n,3n,2n} = <cos(n(5*phi1+4*phi2-4*phi3-3*phi4-2*phi5))>
5543 Double_t five5n3n5n2n1n = 0.; // <5>_{5n,3n|5n,2n,1n} = <cos(n(5*phi1+3*phi2-5*phi3-2*phi4-1*phi5))>
5544 Double_t five5n4n5n2n2n = 0.; // <5>_{5n,4n|5n,2n,2n} = <cos(n(5*phi1+4*phi2-5*phi3-2*phi4-2*phi5))>
5545 Double_t five5n4n5n3n1n = 0.; // <5>_{5n,4n|5n,3n,1n} = <cos(n(5*phi1+4*phi2-5*phi3-3*phi4-1*phi5))>
5546 Double_t five6n1n3n3n1n = 0.; // <5>_{6n,1n|3n,3n,1n} = <cos(n(6*phi1+1*phi2-3*phi3-3*phi4-1*phi5))>
5547 Double_t five6n2n3n3n2n = 0.; // <5>_{6n,2n|3n,3n,2n} = <cos(n(6*phi1+2*phi2-3*phi3-3*phi4-2*phi5))>
5548 Double_t five6n1n4n2n1n = 0.; // <5>_{6n,1n|4n,2n,1n} = <cos(n(6*phi1+1*phi2-4*phi3-2*phi4-1*phi5))>
5549 Double_t five6n3n4n3n2n = 0.; // <5>_{6n,3n|4n,3n,2n} = <cos(n(6*phi1+3*phi2-4*phi3-3*phi4-2*phi5))>
5550 Double_t five6n4n4n3n3n = 0.; // <5>_{6n,4n|4n,3n,3n} = <cos(n(6*phi1+4*phi2-4*phi3-3*phi4-3*phi5))>
5551 Double_t five6n2n5n2n1n = 0.; // <5>_{6n,2n|5n,2n,1n} = <cos(n(6*phi1+2*phi2-5*phi3-2*phi4-1*phi5))>
5552 Double_t five6n3n5n3n1n = 0.; // <5>_{6n,3n|5n,3n,1n} = <cos(n(6*phi1+3*phi2-5*phi3-3*phi4-1*phi5))>
5553 Double_t five6n4n5n4n1n = 0.; // <5>_{6n,4n|5n,4n,1n} = <cos(n(6*phi1+4*phi2-5*phi3-4*phi4-1*phi5))>
5554 Double_t five6n5n5n3n3n = 0.; // <5>_{6n,5n|5n,3n,3n} = <cos(n(6*phi1+5*phi2-5*phi3-3*phi4-3*phi5))>
5555 Double_t five6n2n6n1n1n = 0.; // <5>_{6n,2n|6n,1n,1n} = <cos(n(6*phi1+2*phi2-6*phi3-1*phi4-1*phi5))>
5556 Double_t five6n3n6n2n1n = 0.; // <5>_{6n,3n|6n,2n,1n} = <cos(n(6*phi1+3*phi2-6*phi3-2*phi4-1*phi5))>
5557 Double_t five6n4n6n2n2n = 0.; // <5>_{6n,4n|6n,2n,2n} = <cos(n(6*phi1+4*phi2-6*phi3-2*phi4-2*phi5))>
5558 Double_t five6n4n6n3n1n = 0.; // <5>_{6n,4n|6n,3n,1n} = <cos(n(6*phi1+4*phi2-6*phi3-3*phi4-1*phi5))>
5559 Double_t five6n5n5n4n2n = 0.; // <5>_{6n,5n|5n,4n,2n} = <cos(n(6*phi1+5*phi2-5*phi3-4*phi4-2*phi5))>
5560 Double_t five6n5n6n3n2n = 0.; // <5>_{6n,5n|6n,3n,2n} = <cos(n(6*phi1+5*phi2-6*phi3-3*phi4-2*phi5))> // TBI swap with previous
5561 Double_t five6n5n6n4n1n = 0.; // <5>_{6n,5n|6n,4n,1n} = <cos(n(6*phi1+5*phi2-6*phi3-4*phi4-1*phi5))>
5562 // f2) Two distinct harmonics (9):
5563 Double_t five2n1n1n1n1n = 0.; // <5>_{2n,1n|1n,1n,1n} = <cos(n(2*phi1+1*phi2-1*phi3-1*phi4-1*phi5))>
5564 Double_t five2n2n2n1n1n = 0.; // <5>_{2n,2n|2n,1n,1n} = <cos(n(2*phi1+2*phi2-2*phi3-1*phi4-1*phi5))>
5565 Double_t five3n3n2n2n2n = 0.; // <5>_{3n,3n|2n,2n,2n} = <cos(n(3*phi1+3*phi2-2*phi3-2*phi4-2*phi5))>
5566 Double_t five4n1n1n1n1n = 0.; // <5>_{4n|1n,1n,1n,1n} = <cos(n(4*phi1-1*phi2-1*phi3-1*phi4-1*phi5))>
5567 Double_t five4n2n2n2n2n = 0.; // <5>_{4n,2n|2n,2n,2n} = <cos(n(4*phi1+2*phi2-2*phi3-2*phi4-2*phi5))>
5568 Double_t five4n4n4n2n2n = 0.; // <5>_{4n,4n|4n,2n,2n} = <cos(n(4*phi1+4*phi2-4*phi3-2*phi4-2*phi5))>
5569 Double_t five6n3n3n3n3n = 0.; // <5>_{6n,3n|3n,3n,3n} = <cos(n(6*phi1+3*phi2-3*phi3-3*phi4-3*phi5))>
5570 Double_t five6n6n4n4n4n = 0.; // <5>_{6n,6n|4n,4n,4n} = <cos(n(6*phi1+6*phi2-4*phi3-4*phi4-4*phi5))>
5571 Double_t five6n6n6n3n3n = 0.; // <5>_{6n,6n|6n,3n,3n} = <cos(n(6*phi1+6*phi2-6*phi3-3*phi4-3*phi5))>
5572 // f3) Three distinct harmonics (30):
5573 Double_t five3n1n2n1n1n = 0.; // <5>_{3n,1n|2n,1n,1n} = <cos(n(3*phi1+1*phi2-2*phi3-1*phi4-1*phi5))>
5574 Double_t five3n2n2n2n1n = 0.; // <5>_{3n,2n|2n,2n,1n} = <cos(n(3*phi1+2*phi2-2*phi3-2*phi4-1*phi5))>
5575 Double_t five3n3n3n2n1n = 0.; // <5>_{3n,3n|3n,2n,1n} = <cos(n(3*phi1+3*phi2-3*phi3-2*phi4-1*phi5))>
5576 Double_t five4n1n3n1n1n = 0.; // <5>_{4n,1n|3n,1n,1n} = <cos(n(4*phi1+1*phi2-3*phi3-1*phi4-1*phi5))>
5577 Double_t five4n1n1n3n3n = 0.; // <5>_{4n,1n,1n|3n,3n} = <cos(n(4*phi1+1*phi2+1*phi3-3*phi4-3*phi5))>
5578 Double_t five4n3n3n3n1n = 0.; // <5>_{4n,3n|3n,3n,1n} = <cos(n(4*phi1+3*phi2-3*phi3-3*phi4-1*phi5))>
5579 Double_t five4n4n3n3n2n = 0.; // <5>_{4n,4n|3n,3n,2n} = <cos(n(4*phi1+4*phi2-3*phi3-3*phi4-2*phi5))>
5580 Double_t five4n4n4n3n1n = 0.; // <5>_{4n,4n|4n,3n,1n} = <cos(n(4*phi1+4*phi2-4*phi3-3*phi4-1*phi5))>
5581 Double_t five5n2n1n1n1n = 0.; // <5>_{5n|2n,1n,1n,1n} = <cos(n(5*phi1-2*phi2-1*phi3-1*phi4-1*phi5))>
5582 Double_t five5n1n2n2n2n = 0.; // <5>_{5n,1n|2n,2n,2n} = <cos(n(5*phi1+1*phi2-2*phi3-2*phi4-2*phi5))>
5583 Double_t five5n2n3n2n2n = 0.; // <5>_{5n,2n|3n,2n,2n} = <cos(n(5*phi1+2*phi2-3*phi3-2*phi4-2*phi5))>
5584 Double_t five5n3n3n3n2n = 0.; // <5>_{5n,3n|3n,3n,2n} = <cos(n(5*phi1+3*phi2-3*phi3-3*phi4-2*phi5))>
5585 Double_t five5n1n4n1n1n = 0.; // <5>_{5n,1n|4n,1n,1n} = <cos(n(5*phi1+1*phi2-4*phi3-1*phi4-1*phi5))>
5586 Double_t five5n4n3n3n3n = 0.; // <5>_{5n,4n|3n,3n,3n} = <cos(n(5*phi1+4*phi2-3*phi3-3*phi4-3*phi5))>
5587 Double_t five5n4n4n4n1n = 0.; // <5>_{5n,4n|4n,4n,1n} = <cos(n(5*phi1+4*phi2-4*phi3-4*phi4-1*phi5))>
5588 Double_t five5n5n4n3n3n = 0.; // <5>_{5n,5n|4n,3n,3n} = <cos(n(5*phi1+5*phi2-4*phi3-3*phi4-3*phi5))>
5589 Double_t five5n5n4n4n2n = 0.; // <5>_{5n,5n|4n,4n,2n} = <cos(n(5*phi1+5*phi2-4*phi3-4*phi4-2*phi5))>
5590 Double_t five5n5n5n3n2n = 0.; // <5>_{5n,5n|5n,3n,2n} = <cos(n(5*phi1+5*phi2-5*phi3-3*phi4-2*phi5))>
5591 Double_t five5n5n5n4n1n = 0.; // <5>_{5n,5n|5n,4n,1n} = <cos(n(5*phi1+5*phi2-5*phi3-4*phi4-1*phi5))>
5592 Double_t five6n2n2n1n1n = 0.; // <5>_{6n|2n,2n,1n,1n} = <cos(n(6*phi1-2*phi2-2*phi3-1*phi4-1*phi5))>
5593 Double_t five6n3n1n1n1n = 0.; // <5>_{6n|3n,1n,1n,1n} = <cos(n(6*phi1-3*phi2-1*phi3-1*phi4-1*phi5))>
5594 Double_t five6n1n1n4n4n = 0.; // <5>_{6n,1n,1n|4n,4n} = <cos(n(6*phi1+1*phi2+1*phi3-4*phi4-4*phi5))>
5595 Double_t five6n1n5n1n1n = 0.; // <5>_{6n,1n|5n,1n,1n} = <cos(n(6*phi1+1*phi2-5*phi3-1*phi4-1*phi5))>
5596 Double_t five6n2n4n2n2n = 0.; // <5>_{6n,2n|4n,2n,2n} = <cos(n(6*phi1+2*phi2-4*phi3-2*phi4-2*phi5))>
5597 Double_t five6n4n4n4n2n = 0.; // <5>_{6n,4n|4n,4n,2n} = <cos(n(6*phi1+4*phi2-4*phi3-4*phi4-2*phi5))>
5598 Double_t five6n2n2n5n5n = 0.; // <5>_{6n,2n,2n|5n,5n} = <cos(n(6*phi1+2*phi2+2*phi3-5*phi4-5*phi5))>
5599 Double_t five6n5n5n5n1n = 0.; // <5>_{6n,5n|5n,5n,1n} = <cos(n(6*phi1+5*phi2-5*phi3-5*phi4-1*phi5))>
5600 Double_t five6n6n5n5n2n = 0.; // <5>_{6n,6n|5n,5n,2n} = <cos(n(6*phi1+6*phi2-5*phi3-5*phi4-2*phi5))>
5601 Double_t five6n6n6n4n2n = 0.; // <5>_{6n,6n|6n,4n,2n} = <cos(n(6*phi1+6*phi2-6*phi3-4*phi4-2*phi5))>
5602 Double_t five6n6n6n5n1n = 0.; // <5>_{6n,6n|6n,5n,1n} = <cos(n(6*phi1+6*phi2-6*phi3-5*phi4-1*phi5))> // TBI swap with the one above
5603 // Four distinct harmonics (11):
5604 Double_t five5n2n3n3n1n = 0.; // <5>_{5n,2n|3n,3n,1n} = <cos(n(5*phi1+2*phi2-3*phi3-3*phi4-1*phi5))>
5605 Double_t five5n1n1n4n3n = 0.; // <5>_{5n,1n,1n|4n,3n} = <cos(n(5*phi1+1*phi2+1*phi3-4*phi4-3*phi5))>
5606 Double_t five5n3n4n2n2n = 0.; // <5>_{5n,3n|4n,2n,2n} = <cos(n(5*phi1+3*phi2-4*phi3-2*phi4-2*phi5))>
5607 Double_t five5n2n1n4n4n = 0.; // <5>_{5n,2n,1n|4n,4n} = <cos(n(5*phi1+2*phi2+1*phi3-4*phi4-4*phi5))>
5608 Double_t five6n1n3n2n2n = 0.; // <5>_{6n,1n|3n,2n,2n} = <cos(n(6*phi1+1*phi2-3*phi3-2*phi4-2*phi5))>
5609 Double_t five6n3n4n4n1n = 0.; // <5>_{6n,3n|4n,4n,1n} = <cos(n(6*phi1+3*phi2-4*phi3-4*phi4-1*phi5))>
5610 Double_t five6n1n1n5n3n = 0.; // <5>_{6n,1n,1n|5n,3n} = <cos(n(6*phi1+1*phi2+1*phi3-5*phi4-3*phi5))>
5611 Double_t five6n3n5n2n2n = 0.; // <5>_{6n,3n|5n,2n,2n} = <cos(n(6*phi1+3*phi2-5*phi3-2*phi4-2*phi5))>
5612 Double_t five6n5n4n4n3n = 0.; // <5>_{6n,5n|4n,4n,3n} = <cos(n(6*phi1+5*phi2-4*phi3-4*phi4-3*phi5))>
5613 Double_t five6n3n1n5n5n = 0.; // <5>_{6n,3n,1n|5n,5n} = <cos(n(6*phi1+3*phi2+1*phi3-5*phi4-5*phi5))>
5614 Double_t five6n6n5n4n3n = 0.; // <5>_{6n,6n|5n,4n,3n} = <cos(n(6*phi1+6*phi2-5*phi3-4*phi4-3*phi5))>
5615 // Five distinct harmonics (3):
5616 Double_t five6n2n4n3n1n = 0.; // <5>_{6n,2n|4n,3n,1n} = <cos(n(6*phi1+2*phi2-4*phi3-3*phi4-1*phi5))>
5617 Double_t five6n2n1n5n4n = 0.; // <5>_{6n,2n,1n|5n,4n} = <cos(n(6*phi1+2*phi2+1*phi3-5*phi4-4*phi5))>
5618 Double_t five6n4n5n3n2n = 0.; // <5>_{6n,4n|5n,3n,2n} = <cos(n(6*phi1+4*phi2-5*phi3-3*phi4-2*phi5))>
5621 five3n2n3n1n1n = (-(pow(dImQ3n,2.)+pow(dReQ3n,2.))
5622 * (-2.*dImQ1n*dImQ2n*dReQ1n+pow(dImQ1n,2.)*dReQ2n-pow(dReQ1n,2.)*dReQ2n)
5623 - (-pow(dImQ1n,2.)*dImQ3n*dImQ5n+dImQ3n*dImQ5n*pow(dReQ1n,2.)
5624 + 2.*dImQ1n*dImQ5n*dReQ1n*dReQ3n-2.*dImQ1n*dImQ3n*dReQ1n*dReQ5n
5625 - pow(dImQ1n,2.)*dReQ3n*dReQ5n+pow(dReQ1n,2.)*dReQ3n*dReQ5n)
5626 - 2.*(dImQ1n*dImQ2n*dImQ3n*dImQ4n+dImQ3n*dImQ4n*dReQ1n*dReQ2n
5627 + dImQ2n*dImQ4n*dReQ1n*dReQ3n-dImQ1n*dImQ4n*dReQ2n*dReQ3n
5628 - dImQ2n*dImQ3n*dReQ1n*dReQ4n+dImQ1n*dImQ3n*dReQ2n*dReQ4n
5629 + dImQ1n*dImQ2n*dReQ3n*dReQ4n+dReQ1n*dReQ2n*dReQ3n*dReQ4n)
5630 - (dReQ3n*pow(dReQ1n,3.)-3.*dReQ1n*dReQ3n*pow(dImQ1n,2.)
5631 + 3.*dImQ1n*dImQ3n*pow(dReQ1n,2.)-dImQ3n*pow(dImQ1n,3.))
5632 - 2.*((pow(dReQ2n,2.)-pow(dImQ2n,2.))*(dReQ3n*dReQ1n-dImQ3n*dImQ1n)
5633 + 2.*dReQ2n*dImQ2n*(dReQ3n*dImQ1n+dImQ3n*dReQ1n))
5634 + 2.*(dReQ5n*dReQ4n*dReQ1n-dReQ5n*dImQ4n*dImQ1n+dImQ5n*dReQ4n*dImQ1n+dImQ5n*dImQ4n*dReQ1n)
5635 + 3.*(dReQ5n*dReQ2n*dReQ3n-dReQ5n*dImQ2n*dImQ3n+dImQ5n*dReQ2n*dImQ3n+dImQ5n*dImQ2n*dReQ3n)
5636 + 6.*(dReQ4n*(dReQ3n*dReQ1n-dImQ3n*dImQ1n)+dImQ4n*(dReQ3n*dImQ1n+dImQ3n*dReQ1n))
5637 + 2.*(pow(dReQ2n,2.)*dReQ4n+2.*dReQ2n*dImQ2n*dImQ4n-pow(dImQ2n,2.)*dReQ4n)
5638 + 9.*(dReQ3n*dReQ2n*dReQ1n-dReQ3n*dImQ2n*dImQ1n+dImQ3n*dReQ2n*dImQ1n+dImQ3n*dImQ2n*dReQ1n)
5639 - (dMult-8.)*(pow(dReQ1n,2.)*dReQ2n+2.*dReQ1n*dImQ1n*dImQ2n-pow(dImQ1n,2.)*dReQ2n)
5640 - (pow(dReQ3n,2.)+pow(dImQ3n,2.))*(pow(dReQ2n,2.)+pow(dImQ2n,2.))
5641 - 2.*(pow(dReQ3n,2.)+pow(dImQ3n,2.))*(pow(dReQ1n,2.)+pow(dImQ1n,2.))
5642 - 2.*(pow(dReQ5n,2.)+pow(dImQ5n,2.))-4.*(pow(dReQ4n,2.)+pow(dImQ4n,2.))
5643 + 2.*(dMult-6.)*(pow(dReQ3n,2.)+pow(dImQ3n,2.))+(dMult-12.)*(pow(dReQ2n,2.)+pow(dImQ2n,2.))
5644 + 2.*(dMult-9.)*(pow(dReQ1n,2.)+pow(dImQ1n,2.))-2.*dMult*(dMult-12.))
5645 / (dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.));
5646 five4n1n2n2n1n = ((pow(dReQ1n,2.)+pow(dImQ1n,2.))
5647 * (pow(dReQ2n,2.)*dReQ4n-pow(dImQ2n,2.)*dReQ4n+2.*dReQ2n*dImQ2n*dImQ4n)
5648 - 2.*(dImQ1n*dImQ2n*dImQ3n*dImQ4n+dImQ3n*dImQ4n*dReQ1n*dReQ2n
5649 + dImQ2n*dImQ4n*dReQ1n*dReQ3n-dImQ1n*dImQ4n*dReQ2n*dReQ3n
5650 - dImQ2n*dImQ3n*dReQ1n*dReQ4n+dImQ1n*dImQ3n*dReQ2n*dReQ4n
5651 + dImQ1n*dImQ2n*dReQ3n*dReQ4n+dReQ1n*dReQ2n*dReQ3n*dReQ4n)
5652 - 2.*((dReQ4n*dReQ2n+dImQ4n*dImQ2n)*(pow(dReQ1n,2.)-pow(dImQ1n,2.))
5653 + 2.*dReQ1n*dImQ1n*(dImQ4n*dReQ2n-dReQ4n*dImQ2n))
5654 - (-pow(dImQ2n,2.)*dImQ1n*dImQ5n+dImQ1n*dImQ5n*pow(dReQ2n,2.)
5655 + 2.*dImQ2n*dImQ5n*dReQ2n*dReQ1n-2.*dImQ2n*dImQ1n*dReQ2n*dReQ5n
5656 - pow(dImQ2n,2.)*dReQ1n*dReQ5n+pow(dReQ2n,2.)*dReQ1n*dReQ5n)
5657 - ((pow(dReQ2n,2.)-pow(dImQ2n,2.))*(dReQ3n*dReQ1n-dImQ3n*dImQ1n)
5658 + 2.*dReQ2n*dImQ2n*(dReQ3n*dImQ1n+dImQ3n*dReQ1n))
5659 + (dReQ5n*dReQ4n*dReQ1n-dReQ5n*dImQ4n*dImQ1n+dImQ5n*dReQ4n*dImQ1n+dImQ5n*dImQ4n*dReQ1n)
5660 + 2.*(dReQ5n*dReQ2n*dReQ3n-dReQ5n*dImQ2n*dImQ3n+dImQ5n*dReQ2n*dImQ3n+dImQ5n*dImQ2n*dReQ3n)
5661 + 2.*(dReQ4n*(dReQ3n*dReQ1n-dImQ3n*dImQ1n)+dImQ4n*(dReQ3n*dImQ1n+dImQ3n*dReQ1n))
5662 + 2.*(pow(dReQ1n,2.)*dReQ2n+2.*dReQ1n*dImQ1n*dImQ2n-pow(dImQ1n,2.)*dReQ2n)
5663 + 3.*(dReQ4n*(dReQ3n*dReQ1n-dImQ3n*dImQ1n)+dImQ4n*(dReQ3n*dImQ1n+dImQ3n*dReQ1n))
5664 + 4.*(pow(dReQ1n,2.)*dReQ2n+2.*dReQ1n*dImQ1n*dImQ2n-pow(dImQ1n,2.)*dReQ2n)
5665 + 2.*(dReQ5n*dReQ4n*dReQ1n-dReQ5n*dImQ4n*dImQ1n+dImQ5n*dReQ4n*dImQ1n+dImQ5n*dImQ4n*dReQ1n)
5666 + 6.*(dReQ3n*dReQ2n*dReQ1n-dReQ3n*dImQ2n*dImQ1n+dImQ3n*dReQ2n*dImQ1n+dImQ3n*dImQ2n*dReQ1n)
5667 + 2.*(dReQ3n*dReQ2n*dReQ1n-dReQ3n*dImQ2n*dImQ1n+dImQ3n*dReQ2n*dImQ1n+dImQ3n*dImQ2n*dReQ1n)
5668 - (dMult-6.)*(pow(dReQ2n,2.)*dReQ4n+2.*dReQ2n*dImQ2n*dImQ4n-pow(dImQ2n,2.)*dReQ4n)
5669 - 4.*(pow(dReQ1n,2.)+pow(dImQ1n,2.))-2.*(pow(dReQ5n,2.)+pow(dImQ5n,2.))
5670 - 4.*(pow(dReQ3n,2.)+pow(dImQ3n,2.))
5671 - (pow(dReQ4n,2.)+pow(dImQ4n,2.))*(pow(dReQ1n,2.)+pow(dImQ1n,2.))
5672 - 2.*(pow(dReQ2n,2.)+pow(dImQ2n,2.))*(pow(dReQ1n,2.)+pow(dImQ1n,2.))
5673 + 2.*(dMult-6.)*(pow(dReQ1n,2.)+pow(dImQ1n,2.))
5674 - 2.*(pow(dReQ3n,2.)+pow(dImQ3n,2.))+(dMult-8.)*(pow(dReQ4n,2.)+pow(dImQ4n,2.))
5675 + 2.*(dMult-8.)*(pow(dReQ2n,2.)+pow(dImQ2n,2.))-2.*dMult*(dMult-12.))
5676 / (dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.));
5677 five4n2n3n2n1n = ((pow(dImQ2n,2.)+pow(dReQ2n,2.))*(dImQ3n*dImQ4n*dReQ1n+dImQ1n*dImQ4n*dReQ3n
5678 - dImQ1n*dImQ3n*dReQ4n+dReQ1n*dReQ3n*dReQ4n)
5679 - (dReQ1n*dReQ2n*dReQ3n*dReQ6n-dReQ3n*dReQ6n*dImQ1n*dImQ2n
5680 - dReQ2n*dReQ6n*dImQ1n*dImQ3n-dReQ1n*dReQ6n*dImQ2n*dImQ3n
5681 + dReQ2n*dReQ3n*dImQ1n*dImQ6n+dReQ1n*dReQ3n*dImQ2n*dImQ6n
5682 + dReQ1n*dReQ2n*dImQ3n*dImQ6n-dImQ1n*dImQ2n*dImQ3n*dImQ6n)
5683 - (dImQ1n*dImQ2n*dImQ4n*dImQ5n+dImQ4n*dImQ5n*dReQ1n*dReQ2n
5684 + dImQ2n*dImQ5n*dReQ1n*dReQ4n-dImQ1n*dImQ5n*dReQ2n*dReQ4n
5685 - dImQ2n*dImQ4n*dReQ1n*dReQ5n+dImQ1n*dImQ4n*dReQ2n*dReQ5n
5686 + dImQ1n*dImQ2n*dReQ4n*dReQ5n+dReQ1n*dReQ2n*dReQ4n*dReQ5n)
5687 - ((dReQ4n*dReQ2n-dImQ4n*dImQ2n)*(dReQ3n*dReQ3n-dImQ3n*dImQ3n)
5688 + 2.*(dReQ4n*dImQ2n+dImQ4n*dReQ2n)*dReQ3n*dImQ3n)
5689 - (dImQ1n*dImQ2n*dImQ3n*dImQ4n+dImQ3n*dImQ4n*dReQ1n*dReQ2n
5690 + dImQ2n*dImQ4n*dReQ1n*dReQ3n-dImQ1n*dImQ4n*dReQ2n*dReQ3n
5691 - dImQ2n*dImQ3n*dReQ1n*dReQ4n+dImQ1n*dImQ3n*dReQ2n*dReQ4n
5692 + dImQ1n*dImQ2n*dReQ3n*dReQ4n+dReQ1n*dReQ2n*dReQ3n*dReQ4n)
5693 - ((dReQ4n*dReQ2n+dImQ4n*dImQ2n)*(pow(dReQ1n,2.)-pow(dImQ1n,2.))
5694 + 2.*dReQ1n*dImQ1n*(dImQ4n*dReQ2n-dReQ4n*dImQ2n))
5695 - ((pow(dReQ2n,2.)-pow(dImQ2n,2.))*(dReQ3n*dReQ1n-dImQ3n*dImQ1n)
5696 + 2.*dReQ2n*dImQ2n*(dReQ3n*dImQ1n+dImQ3n*dReQ1n))
5697 - (pow(dReQ3n,2.)+pow(dImQ3n,2.))*(pow(dReQ2n,2.)+pow(dImQ2n,2.))
5698 + 3.*(dReQ6n*dReQ4n*dReQ2n-dReQ6n*dImQ4n*dImQ2n+dImQ6n*dReQ4n*dImQ2n+dImQ6n*dImQ4n*dReQ2n)
5699 + (dReQ6n*dReQ5n*dReQ1n-dReQ6n*dImQ5n*dImQ1n+dImQ6n*dReQ5n*dImQ1n+dImQ6n*dImQ5n*dReQ1n)
5700 + pow(dReQ3n,2.)*dReQ6n+2.*dReQ3n*dImQ3n*dImQ6n-pow(dImQ3n,2.)*dReQ6n
5701 + dReQ5n*dReQ4n*dReQ1n-dReQ5n*dImQ4n*dImQ1n+dImQ5n*dReQ4n*dImQ1n+dImQ5n*dImQ4n*dReQ1n
5702 + 3.*(dReQ5n*dReQ2n*dReQ3n-dReQ5n*dImQ2n*dImQ3n+dImQ5n*dReQ2n*dImQ3n+dImQ5n*dImQ2n*dReQ3n)
5703 - (dMult-7.)*(dReQ4n*(dReQ3n*dReQ1n-dImQ3n*dImQ1n)+dImQ4n*(dReQ3n*dImQ1n+dImQ3n*dReQ1n))
5704 + 3.*(pow(dReQ2n,2.)*dReQ4n+2.*dReQ2n*dImQ2n*dImQ4n-pow(dImQ2n,2.)*dReQ4n)
5705 + 7.*(dReQ3n*dReQ2n*dReQ1n-dReQ3n*dImQ2n*dImQ1n+dImQ3n*dReQ2n*dImQ1n+dImQ3n*dImQ2n*dReQ1n)
5706 + 4.*(pow(dReQ1n,2.)*dReQ2n+2.*dReQ1n*dImQ1n*dImQ2n-pow(dImQ1n,2.)*dReQ2n)
5707 - (pow(dReQ4n,2.)+pow(dImQ4n,2.))*(pow(dReQ2n,2.)+pow(dImQ2n,2.))
5708 - (pow(dReQ2n,2.)+pow(dImQ2n,2.))*(pow(dReQ1n,2.)+pow(dImQ1n,2.))
5709 - 2.*(pow(dReQ6n,2.)+pow(dImQ6n,2.))-2.*(pow(dReQ5n,2.)+pow(dImQ5n,2.))
5710 + (dMult-8.)*(pow(dReQ4n,2.)+pow(dImQ4n,2.))+(dMult-10.)*(pow(dReQ3n,2.)+pow(dImQ3n,2.))
5711 + 2.*(dMult-7.)*(pow(dReQ2n,2.)+pow(dImQ2n,2.))+(dMult-12.)*(pow(dReQ1n,2.)+pow(dImQ1n,2.))
5712 - 2.*dMult*(dMult-12.))
5713 / (dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.));
5715 // *********************************************************************
5716 Double_t reQ7nQ3nstarQ2nstarQ2nstar = (dReQ7n*dReQ3n+dImQ7n*dImQ3n)*(pow(dReQ2n,2)-pow(dImQ2n,2))
5717 + 2.*dReQ2n*dImQ2n*(dImQ7n*dReQ3n-dReQ7n*dImQ3n);
5718 Double_t reQ5nQ2nQ4nstarQ3nstar = dImQ2n*dImQ3n*dImQ4n*dImQ5n+dImQ4n*dImQ5n*dReQ2n*dReQ3n
5719 + dImQ3n*dImQ5n*dReQ2n*dReQ4n-dImQ2n*dImQ5n*dReQ3n*dReQ4n
5720 - dImQ3n*dImQ4n*dReQ2n*dReQ5n+dImQ2n*dImQ4n*dReQ3n*dReQ5n
5721 + dImQ2n*dImQ3n*dReQ4n*dReQ5n+dReQ2n*dReQ3n*dReQ4n*dReQ5n;
5722 Double_t reQ7nQ4nstarQ3nstar = dReQ7n*dReQ4n*dReQ3n-dReQ7n*dImQ4n*dImQ3n+dImQ7n*dReQ4n*dImQ3n
5723 + dImQ7n*dImQ4n*dReQ3n;
5726 Double_t reQ7nQ5nstarQ2nstar = dReQ7n*dReQ5n*dReQ2n-dReQ7n*dImQ5n*dImQ2n+dImQ7n*dReQ5n*dImQ2n
5727 + dImQ7n*dImQ5n*dReQ2n;
5729 // <5>_{6n,4n|4n,3n,3n}:
5730 Double_t reQ10nQ4nstarQ3nstarQ3nstar = (dReQ10n*dReQ4n+dImQ10n*dImQ4n)*(pow(dReQ3n,2)-pow(dImQ3n,2))
5731 + 2.*dReQ3n*dImQ3n*(dImQ10n*dReQ4n-dReQ10n*dImQ4n);
5732 Double_t reQ7nQ3nQ6nstarQ4nstar = dImQ3n*dImQ4n*dImQ6n*dImQ7n+dImQ6n*dImQ7n*dReQ3n*dReQ4n
5733 + dImQ4n*dImQ7n*dReQ3n*dReQ6n-dImQ3n*dImQ7n*dReQ4n*dReQ6n
5734 - dImQ4n*dImQ6n*dReQ3n*dReQ7n+dImQ3n*dImQ6n*dReQ4n*dReQ7n
5735 + dImQ3n*dImQ4n*dReQ6n*dReQ7n+dReQ3n*dReQ4n*dReQ6n*dReQ7n;
5736 Double_t reQ10nQ7nstarQ3nstar = dReQ10n*dReQ7n*dReQ3n-dReQ10n*dImQ7n*dImQ3n+dImQ10n*dReQ7n*dImQ3n
5737 + dImQ10n*dImQ7n*dReQ3n;
5738 Double_t reQ10nQ6nstarQ4nstar = dReQ10n*dReQ6n*dReQ4n-dReQ10n*dImQ6n*dImQ4n+dImQ10n*dReQ6n*dImQ4n
5739 + dImQ10n*dImQ6n*dReQ4n;
5740 Double_t reQ6nQ1nQ4nstarQ3nstar = dImQ1n*dImQ3n*dImQ4n*dImQ6n+dImQ4n*dImQ6n*dReQ1n*dReQ3n
5741 + dImQ3n*dImQ6n*dReQ1n*dReQ4n-dImQ1n*dImQ6n*dReQ3n*dReQ4n
5742 - dImQ3n*dImQ4n*dReQ1n*dReQ6n+dImQ1n*dImQ4n*dReQ3n*dReQ6n
5743 + dImQ1n*dImQ3n*dReQ4n*dReQ6n+dReQ1n*dReQ3n*dReQ4n*dReQ6n;
5744 Double_t reQ7nQ6nstarQ1nstar = dReQ7n*dReQ6n*dReQ1n-dReQ7n*dImQ6n*dImQ1n+dImQ7n*dReQ6n*dImQ1n
5745 + dImQ7n*dImQ6n*dReQ1n;
5746 // <5>_{6n,5n|5n,3n,3n}:
5747 /*Double_t reQ11nQ5nstarQ3nstarQ3nstar = (dReQ11n*dReQ5n+dImQ11n*dImQ5n)*(pow(dReQ3n,2)-pow(dImQ3n,2))
5748 + 2.*dReQ3n*dImQ3n*(dImQ11n*dReQ5n-dReQ11n*dImQ5n); */
5749 Double_t reQ6nQ2nQ5nstarQ3nstar = dImQ2n*dImQ3n*dImQ5n*dImQ6n+dImQ5n*dImQ6n*dReQ2n*dReQ3n
5750 + dImQ3n*dImQ6n*dReQ2n*dReQ5n-dImQ2n*dImQ6n*dReQ3n*dReQ5n
5751 - dImQ3n*dImQ5n*dReQ2n*dReQ6n+dImQ2n*dImQ5n*dReQ3n*dReQ6n
5752 + dImQ2n*dImQ3n*dReQ5n*dReQ6n+dReQ2n*dReQ3n*dReQ5n*dReQ6n;
5753 Double_t reQ8nQ3nQ6nstarQ5nstar = dImQ3n*dImQ5n*dImQ6n*dImQ8n+dImQ6n*dImQ8n*dReQ3n*dReQ5n
5754 + dImQ5n*dImQ8n*dReQ3n*dReQ6n-dImQ3n*dImQ8n*dReQ5n*dReQ6n
5755 - dImQ5n*dImQ6n*dReQ3n*dReQ8n+dImQ3n*dImQ6n*dReQ5n*dReQ8n
5756 + dImQ3n*dImQ5n*dReQ6n*dReQ8n+dReQ3n*dReQ5n*dReQ6n*dReQ8n;
5757 Double_t reQ11nQ6nstarQ5nstar = dReQ11n*dReQ6n*dReQ5n-dReQ11n*dImQ6n*dImQ5n+dImQ11n*dReQ6n*dImQ5n
5758 + dImQ11n*dImQ6n*dReQ5n;
5759 Double_t reQ8nQ6nstarQ2nstar = dReQ8n*dReQ6n*dReQ2n-dReQ8n*dImQ6n*dImQ2n+dImQ8n*dReQ6n*dImQ2n
5760 + dImQ8n*dImQ6n*dReQ2n;
5761 Double_t reQ11nQ8nstarQ3nstar = dReQ11n*dReQ8n*dReQ3n-dReQ11n*dImQ8n*dImQ3n+dImQ11n*dReQ8n*dImQ3n
5762 + dImQ11n*dImQ8n*dReQ3n;
5763 Double_t reQ8nQ5nstarQ3nstar = dReQ8n*dReQ5n*dReQ3n-dReQ8n*dImQ5n*dImQ3n+dImQ8n*dReQ5n*dImQ3n
5764 + dImQ8n*dImQ5n*dReQ3n;
5765 // <5>_{5n,2n|5n,1n,1n}
5766 Double_t reQ7nQ5nstarQ1nstarQ1nstar = (dReQ7n*dReQ5n+dImQ7n*dImQ5n)*(pow(dReQ1n,2)-pow(dImQ1n,2))
5767 + 2.*dReQ1n*dImQ1n*(dImQ7n*dReQ5n-dReQ7n*dImQ5n);
5768 Double_t reQ6nQ1nQ5nstarQ2nstar = dImQ1n*dImQ2n*dImQ5n*dImQ6n+dImQ5n*dImQ6n*dReQ1n*dReQ2n
5769 + dImQ2n*dImQ6n*dReQ1n*dReQ5n-dImQ1n*dImQ6n*dReQ2n*dReQ5n
5770 - dImQ2n*dImQ5n*dReQ1n*dReQ6n+dImQ1n*dImQ5n*dReQ2n*dReQ6n
5771 + dImQ1n*dImQ2n*dReQ5n*dReQ6n+dReQ1n*dReQ2n*dReQ5n*dReQ6n;
5772 // <5>_{5n,4n|5n,2n,2n}
5773 Double_t reQ9nQ5nstarQ2nstarQ2nstar = (dReQ9n*dReQ5n+dImQ9n*dImQ5n)*(pow(dReQ2n,2)-pow(dImQ2n,2))
5774 + 2.*dReQ2n*dImQ2n*(dImQ9n*dReQ5n-dReQ9n*dImQ5n);
5775 Double_t reQ7nQ2nQ5nstarQ4nstar = dImQ2n*dImQ4n*dImQ5n*dImQ7n+dImQ5n*dImQ7n*dReQ2n*dReQ4n
5776 + dImQ4n*dImQ7n*dReQ2n*dReQ5n-dImQ2n*dImQ7n*dReQ4n*dReQ5n
5777 - dImQ4n*dImQ5n*dReQ2n*dReQ7n+dImQ2n*dImQ5n*dReQ4n*dReQ7n
5778 + dImQ2n*dImQ4n*dReQ5n*dReQ7n+dReQ2n*dReQ4n*dReQ5n*dReQ7n;
5779 Double_t reQ9nQ5nstarQ4nstar = dReQ9n*dReQ5n*dReQ4n-dReQ9n*dImQ5n*dImQ4n+dImQ9n*dReQ5n*dImQ4n
5780 + dImQ9n*dImQ5n*dReQ4n;
5781 Double_t reQ9nQ7nstarQ2nstar = dReQ9n*dReQ7n*dReQ2n-dReQ9n*dImQ7n*dImQ2n+dImQ9n*dReQ7n*dImQ2n
5782 + dImQ9n*dImQ7n*dReQ2n;
5783 // <5>_{6n,2n|6n,1n,1n}
5784 Double_t reQ8nQ6nstarQ1nstarQ1nstar = (dReQ8n*dReQ6n+dImQ8n*dImQ6n)*(pow(dReQ1n,2)-pow(dImQ1n,2))
5785 + 2.*dReQ1n*dImQ1n*(dImQ8n*dReQ6n-dReQ8n*dImQ6n);
5786 Double_t reQ7nQ1nQ6nstarQ2nstar = dImQ1n*dImQ2n*dImQ6n*dImQ7n+dImQ6n*dImQ7n*dReQ1n*dReQ2n
5787 + dImQ2n*dImQ7n*dReQ1n*dReQ6n-dImQ1n*dImQ7n*dReQ2n*dReQ6n
5788 - dImQ2n*dImQ6n*dReQ1n*dReQ7n+dImQ1n*dImQ6n*dReQ2n*dReQ7n
5789 + dImQ1n*dImQ2n*dReQ6n*dReQ7n+dReQ1n*dReQ2n*dReQ6n*dReQ7n;
5790 Double_t reQ8nQ7nstarQ1nstar = dReQ8n*dReQ7n*dReQ1n-dReQ8n*dImQ7n*dImQ1n+dImQ8n*dReQ7n*dImQ1n
5791 + dImQ8n*dImQ7n*dReQ1n;
5792 // <5>_{5n,2n|4n,2n,1n}
5793 Double_t reQ5nQ2nQ4nstarQ2nstarQ1nstar = (pow(dReQ2n,2.)+pow(dImQ2n,2.))
5794 * (dReQ1n*dReQ4n*dReQ5n-dReQ5n*dImQ1n*dImQ4n
5795 + dReQ4n*dImQ1n*dImQ5n+dReQ1n*dImQ4n*dImQ5n);
5796 Double_t reQ7nQ4nstarQ2nstarQ1nstar = dReQ1n*dReQ2n*dReQ4n*dReQ7n-dReQ4n*dReQ7n*dImQ1n*dImQ2n
5797 - dReQ2n*dReQ7n*dImQ1n*dImQ4n-dReQ1n*dReQ7n*dImQ2n*dImQ4n
5798 + dReQ2n*dReQ4n*dImQ1n*dImQ7n+dReQ1n*dReQ4n*dImQ2n*dImQ7n
5799 + dReQ1n*dReQ2n*dImQ4n*dImQ7n-dImQ1n*dImQ2n*dImQ4n*dImQ7n;
5800 // <5>_{4n,3n|4n,2n,1n}:
5801 Double_t reQ4nQ3nQ4nstarQ2nstarQ1nstar = (dReQ1n*dReQ2n*dReQ3n-dReQ3n*dImQ1n*dImQ2n
5802 + dReQ2n*dImQ1n*dImQ3n+dReQ1n*dImQ2n*dImQ3n)
5803 * (pow(dReQ4n,2.)+pow(dImQ4n,2.));
5805 Double_t reQ4nQ1nQ3nstarQ2nstar = dImQ1n*dImQ2n*dImQ3n*dImQ4n+dImQ3n*dImQ4n*dReQ1n*dReQ2n
5806 + dImQ2n*dImQ4n*dReQ1n*dReQ3n-dImQ1n*dImQ4n*dReQ2n*dReQ3n
5807 - dImQ2n*dImQ3n*dReQ1n*dReQ4n+dImQ1n*dImQ3n*dReQ2n*dReQ4n
5808 + dImQ1n*dImQ2n*dReQ3n*dReQ4n+dReQ1n*dReQ2n*dReQ3n*dReQ4n;
5810 // <5>_{5n,3n|4n,3n,1n}:
5811 Double_t reQ5nQ3nQ4nstarQ3nstarQ1nstar = (pow(dReQ3n,2.)+pow(dImQ3n,2.))
5812 * (dReQ1n*dReQ4n*dReQ5n-dReQ5n*dImQ1n*dImQ4n
5813 + dReQ4n*dImQ1n*dImQ5n+dReQ1n*dImQ4n*dImQ5n);
5814 Double_t reQ5nQ3nQ4nstarQ4nstar = dReQ3n*pow(dReQ4n,2.)*dReQ5n+2.*dReQ4n*dReQ5n*dImQ3n*dImQ4n
5815 - dReQ3n*dReQ5n*pow(dImQ4n,2.)-pow(dReQ4n,2.)*dImQ3n*dImQ5n
5816 + 2.*dReQ3n*dReQ4n*dImQ4n*dImQ5n+dImQ3n*pow(dImQ4n,2.)*dImQ5n;
5817 Double_t reQ7nQ1nQ5nstarQ3nstar = dImQ1n*dImQ3n*dImQ5n*dImQ7n+dImQ5n*dImQ7n*dReQ1n*dReQ3n
5818 + dImQ3n*dImQ7n*dReQ1n*dReQ5n-dImQ1n*dImQ7n*dReQ3n*dReQ5n
5819 - dImQ3n*dImQ5n*dReQ1n*dReQ7n+dImQ1n*dImQ5n*dReQ3n*dReQ7n
5820 + dImQ1n*dImQ3n*dReQ5n*dReQ7n+dReQ1n*dReQ3n*dReQ5n*dReQ7n;
5821 Double_t reQ8nQ4nstarQ3nstarQ1nstar = dReQ1n*dReQ3n*dReQ4n*dReQ8n-dReQ4n*dReQ8n*dImQ1n*dImQ3n
5822 - dReQ3n*dReQ8n*dImQ1n*dImQ4n-dReQ1n*dReQ8n*dImQ3n*dImQ4n
5823 + dReQ3n*dReQ4n*dImQ1n*dImQ8n+dReQ1n*dReQ4n*dImQ3n*dImQ8n
5824 + dReQ1n*dReQ3n*dImQ4n*dImQ8n-dImQ1n*dImQ3n*dImQ4n*dImQ8n;
5825 Double_t reQ8nQ4nstarQ4nstar = pow(dReQ4n,2.)*dReQ8n-dReQ8n*pow(dImQ4n,2.)+2.*dReQ4n*dImQ4n*dImQ8n;
5826 // <5>_{5n,4n|4n,3n,2n}:
5827 Double_t reQ5nQ4nQ4nstarQ3nstarQ2nstar = (pow(dReQ4n,2.)+pow(dImQ4n,2.))
5828 * (dReQ2n*dReQ3n*dReQ5n-dReQ5n*dImQ2n*dImQ3n
5829 + dReQ3n*dImQ2n*dImQ5n+dReQ2n*dImQ3n*dImQ5n);
5830 Double_t reQ6nQ3nQ5nstarQ4nstar = dImQ4n*dImQ3n*dImQ6n*dImQ5n+dImQ6n*dImQ5n*dReQ4n*dReQ3n
5831 + dImQ3n*dImQ5n*dReQ4n*dReQ6n-dImQ4n*dImQ5n*dReQ3n*dReQ6n
5832 - dImQ3n*dImQ6n*dReQ4n*dReQ5n+dImQ4n*dImQ6n*dReQ3n*dReQ5n
5833 + dImQ4n*dImQ3n*dReQ6n*dReQ5n+dReQ4n*dReQ3n*dReQ6n*dReQ5n;
5834 Double_t reQ9nQ4nstarQ3nstarQ2nstar = dReQ2n*dReQ3n*dReQ4n*dReQ9n-dReQ4n*dReQ9n*dImQ2n*dImQ3n
5835 - dReQ3n*dReQ9n*dImQ2n*dImQ4n-dReQ2n*dReQ9n*dImQ3n*dImQ4n
5836 + dReQ3n*dReQ4n*dImQ2n*dImQ9n+dReQ2n*dReQ4n*dImQ3n*dImQ9n
5837 + dReQ2n*dReQ3n*dImQ4n*dImQ9n-dImQ2n*dImQ3n*dImQ4n*dImQ9n;
5838 Double_t reQ9nQ6nstarQ3nstar = dReQ9n*dReQ6n*dReQ3n-dReQ9n*dImQ6n*dImQ3n+dImQ9n*dReQ6n*dImQ3n
5839 + dImQ9n*dImQ6n*dReQ3n;
5840 // <5>_{5n,3n|5n,2n,1n}:
5841 Double_t reQ5nQ3nQ5nstarQ2nstarQ1nstar = (dReQ1n*dReQ2n*dReQ3n-dReQ3n*dImQ1n*dImQ2n
5842 + dReQ2n*dImQ1n*dImQ3n+dReQ1n*dImQ2n*dImQ3n)
5843 * (pow(dReQ5n,2.)+pow(dImQ5n,2.));
5844 Double_t reQ8nQ5nstarQ2nstarQ1nstar = dReQ1n*dReQ2n*dReQ5n*dReQ8n-dReQ5n*dReQ8n*dImQ1n*dImQ2n
5845 - dReQ2n*dReQ8n*dImQ1n*dImQ5n-dReQ1n*dReQ8n*dImQ2n*dImQ5n
5846 + dReQ2n*dReQ5n*dImQ1n*dImQ8n+dReQ1n*dReQ5n*dImQ2n*dImQ8n
5847 + dReQ1n*dReQ2n*dImQ5n*dImQ8n-dImQ1n*dImQ2n*dImQ5n*dImQ8n;
5848 // <5>_{5n,4n|5n,3n,1n}:
5849 Double_t reQ5nQ4nQ5nstarQ3nstarQ1nstar = (dReQ1n*dReQ3n*dReQ4n-dReQ4n*dImQ1n*dImQ3n
5850 + dReQ3n*dImQ1n*dImQ4n+dReQ1n*dImQ3n*dImQ4n)
5851 * (pow(dReQ5n,2.)+pow(dImQ5n,2.));
5852 Double_t reQ8nQ1nQ5nstarQ4nstar = dImQ4n*dImQ1n*dImQ8n*dImQ5n+dImQ8n*dImQ5n*dReQ4n*dReQ1n
5853 + dImQ1n*dImQ5n*dReQ4n*dReQ8n-dImQ4n*dImQ5n*dReQ1n*dReQ8n
5854 - dImQ1n*dImQ8n*dReQ4n*dReQ5n+dImQ4n*dImQ8n*dReQ1n*dReQ5n
5855 + dImQ4n*dImQ1n*dReQ8n*dReQ5n+dReQ4n*dReQ1n*dReQ8n*dReQ5n;
5856 Double_t reQ9nQ5nstarQ3nstarQ1nstar = dReQ1n*dReQ3n*dReQ5n*dReQ9n-dReQ5n*dReQ9n*dImQ1n*dImQ3n
5857 - dReQ3n*dReQ9n*dImQ1n*dImQ5n-dReQ1n*dReQ9n*dImQ3n*dImQ5n
5858 + dReQ3n*dReQ5n*dImQ1n*dImQ9n+dReQ1n*dReQ5n*dImQ3n*dImQ9n
5859 + dReQ1n*dReQ3n*dImQ5n*dImQ9n-dImQ1n*dImQ3n*dImQ5n*dImQ9n;
5860 Double_t reQ9nQ8nstarQ1nstar = dReQ9n*dReQ8n*dReQ1n-dReQ9n*dImQ8n*dImQ1n+dImQ9n*dReQ8n*dImQ1n
5861 + dImQ9n*dImQ8n*dReQ1n;
5862 // <5>_{6n,1n|4n,2n,1n}:
5863 Double_t reQ6nQ1nQ4nstarQ2nstarQ1nstar = (dReQ2n*dReQ4n*dReQ6n-dReQ6n*dImQ2n*dImQ4n
5864 + dReQ4n*dImQ2n*dImQ6n+dReQ2n*dImQ4n*dImQ6n)
5865 * (pow(dReQ1n,2.)+pow(dImQ1n,2.));
5866 // <5>_{6n,3n|4n,3n,2n}:
5867 Double_t reQ6nQ3nQ4nstarQ3nstarQ2nstar = (dReQ2n*dReQ4n*dReQ6n-dReQ6n*dImQ2n*dImQ4n
5868 + dReQ4n*dImQ2n*dImQ6n+dReQ2n*dImQ4n*dImQ6n)
5869 * (pow(dReQ3n,2.)+pow(dImQ3n,2.));
5870 Double_t reQ7nQ2nQ6nstarQ3nstar = dImQ3n*dImQ2n*dImQ7n*dImQ6n+dImQ7n*dImQ6n*dReQ3n*dReQ2n
5871 + dImQ2n*dImQ6n*dReQ3n*dReQ7n-dImQ3n*dImQ6n*dReQ2n*dReQ7n
5872 - dImQ2n*dImQ7n*dReQ3n*dReQ6n+dImQ3n*dImQ7n*dReQ2n*dReQ6n
5873 + dImQ3n*dImQ2n*dReQ7n*dReQ6n+dReQ3n*dReQ2n*dReQ7n*dReQ6n;
5874 // <5>_{6n,2n|5n,2n,1n}:
5875 Double_t reQ6nQ2nQ5nstarQ2nstarQ1nstar = (pow(dReQ2n,2.)+pow(dImQ2n,2.))
5876 * (dReQ1n*dReQ5n*dReQ6n-dReQ6n*dImQ1n*dImQ5n
5877 + dReQ5n*dImQ1n*dImQ6n+dReQ1n*dImQ5n*dImQ6n);
5878 // <5>_{6n,3n|5n,3n,1n}:
5879 Double_t reQ6nQ3nQ5nstarQ3nstarQ1nstar = (pow(dReQ3n,2.)+pow(dImQ3n,2.))
5880 * (dReQ1n*dReQ5n*dReQ6n-dReQ6n*dImQ1n*dImQ5n
5881 + dReQ5n*dImQ1n*dImQ6n+dReQ1n*dImQ5n*dImQ6n);
5882 Double_t reQ8nQ1nQ6nstarQ3nstar = dImQ3n*dImQ1n*dImQ8n*dImQ6n+dImQ8n*dImQ6n*dReQ3n*dReQ1n
5883 + dImQ1n*dImQ6n*dReQ3n*dReQ8n-dImQ3n*dImQ6n*dReQ1n*dReQ8n
5884 - dImQ1n*dImQ8n*dReQ3n*dReQ6n+dImQ3n*dImQ8n*dReQ1n*dReQ6n
5885 + dImQ3n*dImQ1n*dReQ8n*dReQ6n+dReQ3n*dReQ1n*dReQ8n*dReQ6n;
5886 // <5>_{6n,4n|5n,4n,1n}:
5887 Double_t reQ6nQ4nQ5nstarQ4nstarQ1nstar = (pow(dReQ4n,2.)+pow(dImQ4n,2.))
5888 * (dReQ1n*dReQ5n*dReQ6n-dReQ6n*dImQ1n*dImQ5n
5889 + dReQ5n*dImQ1n*dImQ6n+dReQ1n*dImQ5n*dImQ6n);
5890 Double_t reQ6nQ4nQ5nstarQ5nstar = dReQ4n*pow(dReQ5n,2.)*dReQ6n+2.*dReQ5n*dReQ6n*dImQ4n*dImQ5n
5891 - dReQ4n*dReQ6n*pow(dImQ5n,2.)-pow(dReQ5n,2.)*dImQ4n*dImQ6n
5892 + 2.*dReQ4n*dReQ5n*dImQ5n*dImQ6n+dImQ4n*pow(dImQ5n,2.)*dImQ6n;
5893 Double_t reQ9nQ1nQ6nstarQ4nstar = dImQ4n*dImQ1n*dImQ9n*dImQ6n+dImQ9n*dImQ6n*dReQ4n*dReQ1n
5894 + dImQ1n*dImQ6n*dReQ4n*dReQ9n-dImQ4n*dImQ6n*dReQ1n*dReQ9n
5895 - dImQ1n*dImQ9n*dReQ4n*dReQ6n+dImQ4n*dImQ9n*dReQ1n*dReQ6n
5896 + dImQ4n*dImQ1n*dReQ9n*dReQ6n+dReQ4n*dReQ1n*dReQ9n*dReQ6n;
5897 Double_t reQ10nQ5nstarQ4nstarQ1nstar = dReQ1n*dReQ4n*dReQ5n*dReQ10n-dReQ5n*dReQ10n*dImQ1n*dImQ4n
5898 - dReQ4n*dReQ10n*dImQ1n*dImQ5n-dReQ1n*dReQ10n*dImQ4n*dImQ5n
5899 + dReQ4n*dReQ5n*dImQ1n*dImQ10n+dReQ1n*dReQ5n*dImQ4n*dImQ10n
5900 + dReQ1n*dReQ4n*dImQ5n*dImQ10n-dImQ1n*dImQ4n*dImQ5n*dImQ10n;
5901 Double_t reQ10nQ9nstarQ1nstar = dReQ10n*dReQ9n*dReQ1n-dReQ10n*dImQ9n*dImQ1n+dImQ10n*dReQ9n*dImQ1n
5902 + dImQ10n*dImQ9n*dReQ1n;
5903 Double_t reQ10nQ5nstarQ5nstar = pow(dReQ5n,2.)*dReQ10n-dReQ10n*pow(dImQ5n,2.)+2.*dReQ5n*dImQ5n*dImQ10n;
5904 // <5>_{6n,3n|6n,2n,1n}:
5905 Double_t reQ6nQ3nQ6nstarQ2nstarQ1nstar = (dReQ1n*dReQ2n*dReQ3n-dReQ3n*dImQ1n*dImQ2n
5906 + dReQ2n*dImQ1n*dImQ3n+dReQ1n*dImQ2n*dImQ3n)
5907 * (pow(dReQ6n,2.)+pow(dImQ6n,2.));
5908 Double_t reQ9nQ6nstarQ2nstarQ1nstar = dReQ1n*dReQ2n*dReQ6n*dReQ9n-dReQ6n*dReQ9n*dImQ1n*dImQ2n
5909 - dReQ2n*dReQ9n*dImQ1n*dImQ6n-dReQ1n*dReQ9n*dImQ2n*dImQ6n
5910 + dReQ2n*dReQ6n*dImQ1n*dImQ9n+dReQ1n*dReQ6n*dImQ2n*dImQ9n
5911 + dReQ1n*dReQ2n*dImQ6n*dImQ9n-dImQ1n*dImQ2n*dImQ6n*dImQ9n;
5912 // <5>_{6n,4n|6n,3n,1n}:
5913 Double_t reQ6nQ4nQ6nstarQ3nstarQ1nstar = (dReQ1n*dReQ3n*dReQ4n-dReQ4n*dImQ1n*dImQ3n
5914 + dReQ3n*dImQ1n*dImQ4n+dReQ1n*dImQ3n*dImQ4n)
5915 * (pow(dReQ6n,2.)+pow(dImQ6n,2.));
5916 Double_t reQ10nQ6nstarQ3nstarQ1nstar = dReQ1n*dReQ3n*dReQ6n*dReQ10n-dReQ6n*dReQ10n*dImQ1n*dImQ3n
5917 - dReQ3n*dReQ10n*dImQ1n*dImQ6n-dReQ1n*dReQ10n*dImQ3n*dImQ6n
5918 + dReQ3n*dReQ6n*dImQ1n*dImQ10n+dReQ1n*dReQ6n*dImQ3n*dImQ10n
5919 + dReQ1n*dReQ3n*dImQ6n*dImQ10n-dImQ1n*dImQ3n*dImQ6n*dImQ10n;
5920 // <5>_{6n,5n|5n,4n,2n}:
5921 Double_t reQ6nQ5nQ5nstarQ4nstarQ2nstar = (dReQ2n*dReQ4n*dReQ6n-dReQ6n*dImQ2n*dImQ4n
5922 + dReQ4n*dImQ2n*dImQ6n+dReQ2n*dImQ4n*dImQ6n)
5923 * (pow(dReQ5n,2.)+pow(dImQ5n,2.));
5924 Double_t reQ7nQ4nQ6nstarQ5nstar = dImQ5n*dImQ4n*dImQ7n*dImQ6n+dImQ7n*dImQ6n*dReQ5n*dReQ4n
5925 + dImQ4n*dImQ6n*dReQ5n*dReQ7n-dImQ5n*dImQ6n*dReQ4n*dReQ7n
5926 - dImQ4n*dImQ7n*dReQ5n*dReQ6n+dImQ5n*dImQ7n*dReQ4n*dReQ6n
5927 + dImQ5n*dImQ4n*dReQ7n*dReQ6n+dReQ5n*dReQ4n*dReQ7n*dReQ6n;
5928 Double_t reQ9nQ2nQ6nstarQ5nstar = dImQ5n*dImQ2n*dImQ9n*dImQ6n+dImQ9n*dImQ6n*dReQ5n*dReQ2n
5929 + dImQ2n*dImQ6n*dReQ5n*dReQ9n-dImQ5n*dImQ6n*dReQ2n*dReQ9n
5930 - dImQ2n*dImQ9n*dReQ5n*dReQ6n+dImQ5n*dImQ9n*dReQ2n*dReQ6n
5931 + dImQ5n*dImQ2n*dReQ9n*dReQ6n+dReQ5n*dReQ2n*dReQ9n*dReQ6n;
5932 Double_t reQ11nQ5nstarQ4nstarQ2nstar = dReQ2n*dReQ4n*dReQ5n*dReQ11n-dReQ5n*dReQ11n*dImQ2n*dImQ4n
5933 - dReQ4n*dReQ11n*dImQ2n*dImQ5n-dReQ2n*dReQ11n*dImQ4n*dImQ5n
5934 + dReQ4n*dReQ5n*dImQ2n*dImQ11n+dReQ2n*dReQ5n*dImQ4n*dImQ11n
5935 + dReQ2n*dReQ4n*dImQ5n*dImQ11n-dImQ2n*dImQ4n*dImQ5n*dImQ11n;
5936 Double_t reQ11nQ9nstarQ2nstar = dReQ11n*dReQ9n*dReQ2n-dReQ11n*dImQ9n*dImQ2n+dImQ11n*dReQ9n*dImQ2n
5937 + dImQ11n*dImQ9n*dReQ2n;
5938 Double_t reQ11nQ7nstarQ4nstar = dReQ11n*dReQ7n*dReQ4n-dReQ11n*dImQ7n*dImQ4n+dImQ11n*dReQ7n*dImQ4n
5939 + dImQ11n*dImQ7n*dReQ4n;
5940 // <5>_{6n,5n|6n,3n,2n}:
5941 Double_t reQ6nQ5nQ6nstarQ3nstarQ2nstar = (dReQ2n*dReQ3n*dReQ5n-dReQ5n*dImQ2n*dImQ3n
5942 + dReQ3n*dImQ2n*dImQ5n+dReQ2n*dImQ3n*dImQ5n)
5943 * (pow(dReQ6n,2.)+pow(dImQ6n,2.));
5944 Double_t reQ11nQ6nstarQ3nstarQ2nstar = dReQ2n*dReQ3n*dReQ6n*dReQ11n-dReQ6n*dReQ11n*dImQ2n*dImQ3n
5945 - dReQ3n*dReQ11n*dImQ2n*dImQ6n-dReQ2n*dReQ11n*dImQ3n*dImQ6n
5946 + dReQ3n*dReQ6n*dImQ2n*dImQ11n+dReQ2n*dReQ6n*dImQ3n*dImQ11n
5947 + dReQ2n*dReQ3n*dImQ6n*dImQ11n-dImQ2n*dImQ3n*dImQ6n*dImQ11n;
5948 // <5>_{6n,5n|6n,4n,1n}:
5949 Double_t reQ6nQ5nQ6nstarQ4nstarQ1nstar = (dReQ1n*dReQ4n*dReQ5n-dReQ5n*dImQ1n*dImQ4n
5950 + dReQ4n*dImQ1n*dImQ5n+dReQ1n*dImQ4n*dImQ5n)
5951 * (pow(dReQ6n,2.)+pow(dImQ6n,2.));
5952 Double_t reQ10nQ1nQ6nstarQ5nstar = dImQ5n*dImQ1n*dImQ10n*dImQ6n+dImQ10n*dImQ6n*dReQ5n*dReQ1n
5953 + dImQ1n*dImQ6n*dReQ5n*dReQ10n-dImQ5n*dImQ6n*dReQ1n*dReQ10n
5954 - dImQ1n*dImQ10n*dReQ5n*dReQ6n+dImQ5n*dImQ10n*dReQ1n*dReQ6n
5955 + dImQ5n*dImQ1n*dReQ10n*dReQ6n+dReQ5n*dReQ1n*dReQ10n*dReQ6n;
5956 Double_t reQ11nQ10nstarQ1nstar = dReQ11n*dReQ10n*dReQ1n-dReQ11n*dImQ10n*dImQ1n+dImQ11n*dReQ10n*dImQ1n
5957 + dImQ11n*dImQ10n*dReQ1n;
5958 Double_t reQ11nQ6nstarQ4nstarQ1nstar = dReQ1n*dReQ4n*dReQ6n*dReQ11n-dReQ6n*dReQ11n*dImQ1n*dImQ4n
5959 - dReQ4n*dReQ11n*dImQ1n*dImQ6n-dReQ1n*dReQ11n*dImQ4n*dImQ6n
5960 + dReQ4n*dReQ6n*dImQ1n*dImQ11n+dReQ1n*dReQ6n*dImQ4n*dImQ11n
5961 + dReQ1n*dReQ4n*dImQ6n*dImQ11n-dImQ1n*dImQ4n*dImQ6n*dImQ11n;
5962 // <5>_{4n,1n|3n,1n,1n}:
5963 Double_t reQ4nQ1nQ3nstarQ1nstarQ1nstar = (pow(dReQ1n,2.)+pow(dImQ1n,2.))
5964 * (dReQ1n*dReQ3n*dReQ4n-dReQ4n*dImQ1n*dImQ3n
5965 + dReQ3n*dImQ1n*dImQ4n+dReQ1n*dImQ3n*dImQ4n);
5966 Double_t reQ4nQ1nQ4nstarQ1nstar = (pow(dReQ4n,2.)+pow(dImQ4n,2.))*(pow(dReQ1n,2.)+pow(dImQ1n,2.));
5967 Double_t reQ3nQ1nQ3nstarQ1nstar = (pow(dReQ3n,2.)+pow(dImQ3n,2.))*(pow(dReQ1n,2.)+pow(dImQ1n,2.));
5968 // <5>_{4n,3n|3n,3n,1n}:
5969 Double_t reQ4nQ3nQ3nstarQ3nstarQ1nstar = (pow(dReQ3n,2.)+pow(dImQ3n,2.))
5970 * (dReQ4n*(dReQ3n*dReQ1n-dImQ3n*dImQ1n)+dImQ4n*(dReQ3n*dImQ1n+dImQ3n*dReQ1n));
5971 Double_t reQ7nQ3nstarQ3nstarQ1nstar = (dReQ7n*dReQ1n+dImQ7n*dImQ1n)*(pow(dReQ3n,2)-pow(dImQ3n,2))
5972 + 2.*dReQ3n*dImQ3n*(dImQ7n*dReQ1n-dReQ7n*dImQ1n);
5973 // <5>_{4n,4n|4n,3n,1n}:
5974 Double_t reQ4nQ4nQ4nstarQ3nstarQ1nstar = (pow(dReQ4n,2.)+pow(dImQ4n,2.))
5975 * reQ4nQ3nstarQ1nstar;
5976 Double_t reQ7nQ1nQ4nstarQ4nstar = dReQ1n*pow(dReQ4n,2.)*dReQ7n+2.*dReQ4n*dReQ7n*dImQ1n*dImQ4n
5977 - dReQ1n*dReQ7n*pow(dImQ4n,2.)-pow(dReQ4n,2.)*dImQ1n*dImQ7n
5978 + 2.*dReQ1n*dReQ4n*dImQ4n*dImQ7n+dImQ1n*pow(dImQ4n,2.)*dImQ7n;
5979 // <5>_{5n,2n|3n,2n,2n}:
5980 Double_t reQ5nQ2nQ3nstarQ2nstarQ2nstar = (pow(dReQ2n,2.)+pow(dImQ2n,2.))
5981 * reQ5nQ3nstarQ2nstar;
5982 // <5>_{5n,3n|3n,3n,2n}:
5983 Double_t reQ5nQ3nQ3nstarQ3nstarQ2nstar = (pow(dImQ3n,2.)+pow(dReQ3n,2.))
5984 * (dImQ3n*dImQ5n*dReQ2n+dImQ2n*dImQ5n*dReQ3n
5985 - dImQ2n*dImQ3n*dReQ5n+dReQ2n*dReQ3n*dReQ5n);
5986 Double_t reQ8nQ3nstarQ3nstarQ2nstar = (dReQ8n*dReQ2n+dImQ8n*dImQ2n)*(pow(dReQ3n,2)-pow(dImQ3n,2))
5987 + 2.*dReQ3n*dImQ3n*(dImQ8n*dReQ2n-dReQ8n*dImQ2n);
5989 Double_t reQ5nQ1nQ3nstarQ2nstar = dImQ2n*dImQ1n*dImQ5n*dImQ3n+dImQ5n*dImQ3n*dReQ2n*dReQ1n
5990 + dImQ1n*dImQ3n*dReQ2n*dReQ5n-dImQ2n*dImQ3n*dReQ1n*dReQ5n
5991 - dImQ1n*dImQ5n*dReQ2n*dReQ3n+dImQ2n*dImQ5n*dReQ1n*dReQ3n
5992 + dImQ2n*dImQ1n*dReQ5n*dReQ3n+dReQ2n*dReQ1n*dReQ5n*dReQ3n;
5994 // <5>_{5n,1n|4n,1n,1n}:
5995 Double_t reQ5nQ1nQ4nstarQ1nstarQ1nstar = (pow(dImQ1n,2.)+pow(dReQ1n,2.))
5996 * (dImQ1n*dImQ5n*dReQ4n+dImQ4n*dImQ5n*dReQ1n
5997 - dImQ4n*dImQ1n*dReQ5n+dReQ4n*dReQ1n*dReQ5n);
5998 // <5>_{5n,4n|4n,4n,1n}:
5999 Double_t reQ5nQ4nQ4nstarQ4nstarQ1nstar = (pow(dImQ4n,2.)+pow(dReQ4n,2.))
6000 * (dImQ4n*dImQ5n*dReQ1n+dImQ1n*dImQ5n*dReQ4n
6001 - dImQ1n*dImQ4n*dReQ5n+dReQ1n*dReQ4n*dReQ5n);
6002 Double_t reQ9nQ4nstarQ4nstarQ1nstar = (dReQ9n*dReQ1n+dImQ9n*dImQ1n)*(pow(dReQ4n,2)-pow(dImQ4n,2))
6003 + 2.*dReQ4n*dImQ4n*(dImQ9n*dReQ1n-dReQ9n*dImQ1n);
6004 // <5>_{5n,5n|5n,3n,2n}:
6005 Double_t reQ5nQ5nQ5nstarQ3nstarQ2nstar = (pow(dImQ5n,2.)+pow(dReQ5n,2.))
6006 * (dImQ3n*dImQ5n*dReQ2n+dImQ2n*dImQ5n*dReQ3n
6007 - dImQ2n*dImQ3n*dReQ5n+dReQ2n*dReQ3n*dReQ5n);
6008 Double_t reQ7nQ3nQ5nstarQ5nstar = dReQ3n*pow(dReQ5n,2.)*dReQ7n+2.*dReQ5n*dReQ7n*dImQ3n*dImQ5n
6009 - dReQ3n*dReQ7n*pow(dImQ5n,2.)-pow(dReQ5n,2.)*dImQ3n*dImQ7n
6010 + 2.*dReQ3n*dReQ5n*dImQ5n*dImQ7n+dImQ3n*pow(dImQ5n,2.)*dImQ7n;
6011 Double_t reQ8nQ2nQ5nstarQ5nstar = dReQ2n*pow(dReQ5n,2.)*dReQ8n+2.*dReQ5n*dReQ8n*dImQ2n*dImQ5n
6012 - dReQ2n*dReQ8n*pow(dImQ5n,2.)-pow(dReQ5n,2.)*dImQ2n*dImQ8n
6013 + 2.*dReQ2n*dReQ5n*dImQ5n*dImQ8n+dImQ2n*pow(dImQ5n,2.)*dImQ8n;
6014 Double_t reQ10nQ5nstarQ3nstarQ2nstar = dReQ2n*dReQ3n*dReQ5n*dReQ10n-dReQ5n*dReQ10n*dImQ2n*dImQ3n
6015 - dReQ3n*dReQ10n*dImQ2n*dImQ5n-dReQ2n*dReQ10n*dImQ3n*dImQ5n
6016 + dReQ3n*dReQ5n*dImQ2n*dImQ10n+dReQ2n*dReQ5n*dImQ3n*dImQ10n
6017 + dReQ2n*dReQ3n*dImQ5n*dImQ10n-dImQ2n*dImQ3n*dImQ5n*dImQ10n;
6018 Double_t reQ10nQ8nstarQ2nstar = dReQ10n*dReQ8n*dReQ2n-dReQ10n*dImQ8n*dImQ2n+dImQ10n*dReQ8n*dImQ2n
6019 + dImQ10n*dImQ8n*dReQ2n;
6020 // <5>_{5n,5n|5n,4n,1n}:
6021 Double_t reQ5nQ5nQ5nstarQ4nstarQ1nstar = (pow(dImQ5n,2.)+pow(dReQ5n,2.))
6022 * (dImQ4n*dImQ5n*dReQ1n+dImQ1n*dImQ5n*dReQ4n
6023 - dImQ1n*dImQ4n*dReQ5n+dReQ1n*dReQ4n*dReQ5n);
6024 Double_t reQ9nQ1nQ5nstarQ5nstar = dReQ1n*pow(dReQ5n,2.)*dReQ9n+2.*dReQ5n*dReQ9n*dImQ1n*dImQ5n
6025 - dReQ1n*dReQ9n*pow(dImQ5n,2.)-pow(dReQ5n,2.)*dImQ1n*dImQ9n
6026 + 2.*dReQ1n*dReQ5n*dImQ5n*dImQ9n+dImQ1n*pow(dImQ5n,2.)*dImQ9n;
6027 // <5>_{6n,1n|5n,1n,1n}:
6028 Double_t reQ6nQ1nQ5nstarQ1nstarQ1nstar = (pow(dReQ1n,2.)+pow(dImQ1n,2.))
6029 * (dReQ1n*dReQ5n*dReQ6n-dReQ6n*dImQ1n*dImQ5n
6030 + dReQ5n*dImQ1n*dImQ6n+dReQ1n*dImQ5n*dImQ6n);
6031 // <5>_{6n,5n|5n,5n,1n}:
6032 Double_t reQ6nQ5nQ5nstarQ5nstarQ1nstar = (pow(dImQ5n,2.)+pow(dReQ5n,2.))
6033 * (dImQ5n*dImQ6n*dReQ1n+dImQ1n*dImQ6n*dReQ5n
6034 - dImQ1n*dImQ5n*dReQ6n+dReQ1n*dReQ5n*dReQ6n);
6035 Double_t reQ11nQ5nstarQ5nstarQ1nstar = (dReQ11n*dReQ1n+dImQ11n*dImQ1n)*(pow(dReQ5n,2)-pow(dImQ5n,2))
6036 + 2.*dReQ5n*dImQ5n*(dImQ11n*dReQ1n-dReQ11n*dImQ1n);
6037 // <5>_{6n,6n|6n,5n,1n}:
6038 Double_t reQ6nQ6nQ6nstarQ5nstarQ1nstar = (pow(dReQ6n,2.)+pow(dImQ6n,2.))
6039 * reQ6nQ5nstarQ1nstar;
6040 Double_t reQ7nQ5nQ6nstarQ6nstar = dReQ5n*pow(dReQ6n,2.)*dReQ7n+2.*dReQ6n*dReQ7n*dImQ5n*dImQ6n
6041 - dReQ5n*dReQ7n*pow(dImQ6n,2.)-pow(dReQ6n,2.)*dImQ5n*dImQ7n
6042 + 2.*dReQ5n*dReQ6n*dImQ6n*dImQ7n+dImQ5n*pow(dImQ6n,2.)*dImQ7n;
6043 Double_t reQ11nQ1nQ6nstarQ6nstar = dReQ1n*pow(dReQ6n,2.)*dReQ11n+2.*dReQ6n*dReQ11n*dImQ1n*dImQ6n
6044 - dReQ1n*dReQ11n*pow(dImQ6n,2.)-pow(dReQ6n,2.)*dImQ1n*dImQ11n
6045 + 2.*dReQ1n*dReQ6n*dImQ6n*dImQ11n+dImQ1n*pow(dImQ6n,2.)*dImQ11n;
6046 Double_t reQ12nQ6nstarQ6nstar = pow(dReQ6n,2.)*dReQ12n-dReQ12n*pow(dImQ6n,2.)+2.*dReQ6n*dImQ6n*dImQ12n;
6047 Double_t reQ12nQ11nstarQ1nstar = dReQ12n*dReQ11n*dReQ1n-dReQ12n*dImQ11n*dImQ1n+dImQ12n*dReQ11n*dImQ1n
6048 + dImQ12n*dImQ11n*dReQ1n;
6049 Double_t reQ12nQ6nstarQ5nstarQ1nstar = dReQ1n*dReQ5n*dReQ6n*dReQ12n-dReQ6n*dReQ12n*dImQ1n*dImQ5n
6050 - dReQ5n*dReQ12n*dImQ1n*dImQ6n-dReQ1n*dReQ12n*dImQ5n*dImQ6n
6051 + dReQ5n*dReQ6n*dImQ1n*dImQ12n+dReQ1n*dReQ6n*dImQ5n*dImQ12n
6052 + dReQ1n*dReQ5n*dImQ6n*dImQ12n-dImQ1n*dImQ5n*dImQ6n*dImQ12n;
6053 Double_t reQ12nQ7nstarQ5nstar = dReQ12n*dReQ7n*dReQ5n-dReQ12n*dImQ7n*dImQ5n+dImQ12n*dReQ7n*dImQ5n
6054 + dImQ12n*dImQ7n*dReQ5n;
6055 // <5>_{6n,2n|4n,3n,1n}:
6056 Double_t reQ6nQ2nQ4nstarQ3nstarQ1nstar = dReQ1n*dReQ2n*dReQ3n*dReQ4n*dReQ6n+dReQ3n*dReQ4n*dReQ6n*dImQ1n*dImQ2n
6057 - dReQ2n*dReQ4n*dReQ6n*dImQ1n*dImQ3n+dReQ1n*dReQ4n*dReQ6n*dImQ2n*dImQ3n
6058 - dReQ2n*dReQ3n*dReQ6n*dImQ1n*dImQ4n+dReQ1n*dReQ3n*dReQ6n*dImQ2n*dImQ4n
6059 - dReQ1n*dReQ2n*dReQ6n*dImQ3n*dImQ4n-dReQ6n*dImQ1n*dImQ2n*dImQ3n*dImQ4n
6060 + dReQ2n*dReQ3n*dReQ4n*dImQ1n*dImQ6n-dReQ1n*dReQ3n*dReQ4n*dImQ2n*dImQ6n
6061 + dReQ1n*dReQ2n*dReQ4n*dImQ3n*dImQ6n+dReQ4n*dImQ1n*dImQ2n*dImQ3n*dImQ6n
6062 + dReQ1n*dReQ2n*dReQ3n*dImQ4n*dImQ6n+dReQ3n*dImQ1n*dImQ2n*dImQ4n*dImQ6n
6063 - dReQ2n*dImQ1n*dImQ3n*dImQ4n*dImQ6n+dReQ1n*dImQ2n*dImQ3n*dImQ4n*dImQ6n;
6064 Double_t reQ6nQ2nQ4nstarQ4nstar = dReQ2n*pow(dReQ4n,2.)*dReQ6n+2.*dReQ4n*dReQ6n*dImQ2n*dImQ4n
6065 - dReQ2n*dReQ6n*pow(dImQ4n,2.)-pow(dReQ4n,2.)*dImQ2n*dImQ6n
6066 + 2.*dReQ2n*dReQ4n*dImQ4n*dImQ6n+dImQ2n*pow(dImQ4n,2.)*dImQ6n;
6067 // <5>_{6n,2n,1n|5n,4n}:
6068 Double_t reQ6nQ2nQ1nQ5nstarQ4nstar = dReQ1n*dReQ2n*dReQ4n*dReQ6n*dReQ5n - dReQ4n*dReQ6n*dReQ5n*dImQ1n*dImQ2n
6069 + dReQ2n*dReQ6n*dReQ5n*dImQ1n*dImQ4n + dReQ1n*dReQ6n*dReQ5n*dImQ2n*dImQ4n
6070 - dReQ2n*dReQ4n*dReQ5n*dImQ1n*dImQ6n - dReQ1n*dReQ4n*dReQ5n*dImQ2n*dImQ6n
6071 + dReQ1n*dReQ2n*dReQ5n*dImQ4n*dImQ6n - dReQ5n*dImQ1n*dImQ2n*dImQ4n*dImQ6n
6072 + dReQ2n*dReQ4n*dReQ6n*dImQ1n*dImQ5n + dReQ1n*dReQ4n*dReQ6n*dImQ2n*dImQ5n
6073 - dReQ1n*dReQ2n*dReQ6n*dImQ4n*dImQ5n + dReQ6n*dImQ1n*dImQ2n*dImQ4n*dImQ5n
6074 + dReQ1n*dReQ2n*dReQ4n*dImQ6n*dImQ5n - dReQ4n*dImQ1n*dImQ2n*dImQ6n*dImQ5n
6075 + dReQ2n*dImQ1n*dImQ4n*dImQ6n*dImQ5n + dReQ1n*dImQ2n*dImQ4n*dImQ6n*dImQ5n;
6077 // <5>_{6n,4n|5n,3n,2n}:
6078 Double_t reQ6nQ4nQ5nstarQ3nstarQ2nstar = dReQ2n*dReQ3n*dReQ4n*dReQ5n*dReQ6n - dReQ4n*dReQ5n*dReQ6n*dImQ2n*dImQ3n
6079 + dReQ3n*dReQ5n*dReQ6n*dImQ2n*dImQ4n + dReQ2n*dReQ5n*dReQ6n*dImQ3n*dImQ4n
6080 - dReQ3n*dReQ4n*dReQ6n*dImQ2n*dImQ5n - dReQ2n*dReQ4n*dReQ6n*dImQ3n*dImQ5n
6081 + dReQ2n*dReQ3n*dReQ6n*dImQ4n*dImQ5n - dReQ6n*dImQ2n*dImQ3n*dImQ4n*dImQ5n
6082 + dReQ3n*dReQ4n*dReQ5n*dImQ2n*dImQ6n + dReQ2n*dReQ4n*dReQ5n*dImQ3n*dImQ6n
6083 - dReQ2n*dReQ3n*dReQ5n*dImQ4n*dImQ6n + dReQ5n*dImQ2n*dImQ3n*dImQ4n*dImQ6n
6084 + dReQ2n*dReQ3n*dReQ4n*dImQ5n*dImQ6n - dReQ4n*dImQ2n*dImQ3n*dImQ5n*dImQ6n
6085 + dReQ3n*dImQ2n*dImQ4n*dImQ5n*dImQ6n + dReQ2n*dImQ3n*dImQ4n*dImQ5n*dImQ6n;
6086 Double_t reQ8nQ2nQ6nstarQ4nstar = dImQ4n*dImQ2n*dImQ8n*dImQ6n+dImQ8n*dImQ6n*dReQ4n*dReQ2n
6087 + dImQ2n*dImQ6n*dReQ4n*dReQ8n-dImQ4n*dImQ6n*dReQ2n*dReQ8n
6088 - dImQ2n*dImQ8n*dReQ4n*dReQ6n+dImQ4n*dImQ8n*dReQ2n*dReQ6n
6089 + dImQ4n*dImQ2n*dReQ8n*dReQ6n+dReQ4n*dReQ2n*dReQ8n*dReQ6n;
6091 // <5>_{4n,4n|3n,3n,2n}:
6092 Double_t reQ4nQ4nQ3nstarQ3nstarQ2nstar = dReQ2n*pow(dReQ3n,2.)*pow(dReQ4n,2.)-2.*dReQ3n*pow(dReQ4n,2.)*dImQ2n*dImQ3n
6093 - dReQ2n*pow(dReQ4n,2.)*pow(dImQ3n,2.)+2.*pow(dReQ3n,2.)*dReQ4n*dImQ2n*dImQ4n
6094 + 4.*dReQ2n*dReQ3n*dReQ4n*dImQ3n*dImQ4n - 2.*dReQ4n*dImQ2n*pow(dImQ3n,2.)*dImQ4n
6095 - dReQ2n*pow(dReQ3n,2.)*pow(dImQ4n,2.) + 2.*dReQ3n*dImQ2n*dImQ3n*pow(dImQ4n,2.)
6096 + dReQ2n*pow(dImQ3n,2.)*pow(dImQ4n,2.);
6098 // <5>_{5n|2n,1n,1n,1n}:
6099 Double_t reQ5nQ2nstarQ1nstarQ1nstarQ1nstar = pow(dReQ1n,3.)*dReQ2n*dReQ5n-3.*dReQ1n*dReQ2n*dReQ5n*pow(dImQ1n,2.)
6100 - 3.*pow(dReQ1n,2.)*dReQ5n*dImQ1n*dImQ2n+dReQ5n*pow(dImQ1n,3.)*dImQ2n
6101 + 3.*pow(dReQ1n,2.)*dReQ2n*dImQ1n*dImQ5n-dReQ2n*pow(dImQ1n,3.)*dImQ5n
6102 + pow(dReQ1n,3.)*dImQ2n*dImQ5n-3.*dReQ1n*pow(dImQ1n,2.)*dImQ2n*dImQ5n;
6104 // <5>_{5n,1n|2n,2n,2n}:
6105 Double_t reQ5nQ1nQ2nstarQ2nstarQ2nstar = dReQ1n*pow(dReQ2n,3.)*dReQ5n+3.*pow(dReQ2n,2.)*dReQ5n*dImQ1n*dImQ2n
6106 - 3.*dReQ1n*dReQ2n*dReQ5n*pow(dImQ2n,2.)-dReQ5n*dImQ1n*pow(dImQ2n,3.)
6107 - pow(dReQ2n,3.)*dImQ1n*dImQ5n+3.*dReQ1n*pow(dReQ2n,2.)*dImQ2n*dImQ5n
6108 + 3.*dReQ2n*dImQ1n*pow(dImQ2n,2.)*dImQ5n-dReQ1n*pow(dImQ2n,3.)*dImQ5n;
6111 // <5>_{5n,4n|3n,3n,3n}:
6112 Double_t reQ5nQ4nQ3nstarQ3nstarQ3nstar = dReQ4n*pow(dReQ3n,3.)*dReQ5n+3.*pow(dReQ3n,2.)*dReQ5n*dImQ4n*dImQ3n
6113 - 3.*dReQ4n*dReQ3n*dReQ5n*pow(dImQ3n,2.)-dReQ5n*dImQ4n*pow(dImQ3n,3.)
6114 - pow(dReQ3n,3.)*dImQ4n*dImQ5n+3.*dReQ4n*pow(dReQ3n,2.)*dImQ3n*dImQ5n
6115 + 3.*dReQ3n*dImQ4n*pow(dImQ3n,2.)*dImQ5n-dReQ4n*pow(dImQ3n,3.)*dImQ5n;
6117 Double_t reQ9nQ3nstarQ3nstarQ3nstar = dReQ9n*pow(dReQ3n,3)-3.*dReQ3n*dReQ9n*pow(dImQ3n,2)
6118 + 3.*dImQ3n*dImQ9n*pow(dReQ3n,2)-dImQ9n*pow(dImQ3n,3);
6119 // <5>_{5n,5n|4n,3n,3n}:
6120 Double_t reQ5nQ5nQ4nstarQ3nstarQ3nstar = dReQ4n*pow(dReQ3n,2.)*pow(dReQ5n,2.) - 2.*dReQ3n*pow(dReQ5n,2.)*dImQ4n*dImQ3n
6121 - dReQ4n*pow(dReQ5n,2.)*pow(dImQ3n,2.) + 2.*pow(dReQ3n,2.)*dReQ5n*dImQ4n*dImQ5n
6122 + 4.*dReQ4n*dReQ3n*dReQ5n*dImQ3n*dImQ5n - 2.*dReQ5n*dImQ4n*pow(dImQ3n,2.)*dImQ5n
6123 - dReQ4n*pow(dReQ3n,2.)*pow(dImQ5n,2.) + 2.*dReQ3n*dImQ4n*dImQ3n*pow(dImQ5n,2.)
6124 + dReQ4n*pow(dImQ3n,2.)*pow(dImQ5n,2.);
6126 // <5>_{5n,5n|4n,4n,2n}:
6127 Double_t reQ5nQ5nQ4nstarQ4nstarQ2nstar = dReQ2n*pow(dReQ4n,2.)*pow(dReQ5n,2.) - 2.*dReQ4n*pow(dReQ5n,2.)*dImQ2n*dImQ4n
6128 - dReQ2n*pow(dReQ5n,2.)*pow(dImQ4n,2.) + 2.*pow(dReQ4n,2.)*dReQ5n*dImQ2n*dImQ5n
6129 + 4.*dReQ2n*dReQ4n*dReQ5n*dImQ4n*dImQ5n - 2.*dReQ5n*dImQ2n*pow(dImQ4n,2.)*dImQ5n
6130 - dReQ2n*pow(dReQ4n,2.)*pow(dImQ5n,2.) + 2.*dReQ4n*dImQ2n*dImQ4n*pow(dImQ5n,2.)
6131 + dReQ2n*pow(dImQ4n,2.)*pow(dImQ5n,2.);
6132 Double_t reQ10nQ4nstarQ4nstarQ2nstar = (dReQ10n*dReQ2n+dImQ10n*dImQ2n)*(pow(dReQ4n,2)-pow(dImQ4n,2))
6133 + 2.*dReQ4n*dImQ4n*(dImQ10n*dReQ2n-dReQ10n*dImQ2n);
6134 // <5>_{6n|3n,1n,1n,1n}:
6135 Double_t reQ6nQ3nstarQ1nstarQ1nstarQ1nstar = pow(dReQ1n,3.)*dReQ3n*dReQ6n-3.*dReQ1n*dReQ3n*dReQ6n*pow(dImQ1n,2.)
6136 - 3.*pow(dReQ1n,2.)*dReQ6n*dImQ1n*dImQ3n+dReQ6n*pow(dImQ1n,3.)*dImQ3n
6137 + 3.*pow(dReQ1n,2.)*dReQ3n*dImQ1n*dImQ6n-dReQ3n*pow(dImQ1n,3.)*dImQ6n
6138 + pow(dReQ1n,3.)*dImQ3n*dImQ6n-3.*dReQ1n*pow(dImQ1n,2.)*dImQ3n*dImQ6n;
6139 // <5>_{6n,1n,1n|4n,4n}:
6140 Double_t reQ6nQ1nQ1nQ4nstarQ4nstar = pow(dReQ1n,2.)*pow(dReQ4n,2.)*dReQ6n - pow(dReQ4n,2.)*dReQ6n*pow(dImQ1n,2.)
6141 + 4.*dReQ1n*dReQ4n*dReQ6n*dImQ1n*dImQ4n - pow(dReQ1n,2.)*dReQ6n*pow(dImQ4n,2.)
6142 + dReQ6n*pow(dImQ1n,2.)*pow(dImQ4n,2.) - 2.*dReQ1n*pow(dReQ4n,2.)*dImQ1n*dImQ6n
6143 + 2.*pow(dReQ1n,2.)*dReQ4n*dImQ4n*dImQ6n - 2.*dReQ4n*pow(dImQ1n,2.)*dImQ4n*dImQ6n
6144 + 2.*dReQ1n*dImQ1n*pow(dImQ4n,2.)*dImQ6n;
6147 // <5>_{6n,2n,2n|5n,5n}:
6148 Double_t reQ6nQ2nQ2nQ5nstarQ5nstar = pow(dReQ2n,2.)*pow(dReQ5n,2.)*dReQ6n - pow(dReQ5n,2.)*dReQ6n*pow(dImQ2n,2.)
6149 + 4.*dReQ2n*dReQ5n*dReQ6n*dImQ2n*dImQ5n - pow(dReQ2n,2.)*dReQ6n*pow(dImQ5n,2.)
6150 + dReQ6n*pow(dImQ2n,2.)*pow(dImQ5n,2.) - 2.*dReQ2n*pow(dReQ5n,2.)*dImQ2n*dImQ6n
6151 + 2.*pow(dReQ2n,2.)*dReQ5n*dImQ5n*dImQ6n - 2.*dReQ5n*pow(dImQ2n,2.)*dImQ5n*dImQ6n
6152 + 2.*dReQ2n*dImQ2n*pow(dImQ5n,2.)*dImQ6n;
6153 Double_t reQ10nQ6nstarQ2nstarQ2nstar = (dReQ10n*dReQ6n+dImQ10n*dImQ6n)*(pow(dReQ2n,2)-pow(dImQ2n,2))
6154 + 2.*dReQ2n*dImQ2n*(dImQ10n*dReQ6n-dReQ10n*dImQ6n);
6155 // <5>_{6n,6n|5n,5n,2n}:
6156 Double_t reQ6nQ6nQ5nstarQ5nstarQ2nstar = dReQ2n*pow(dReQ5n,2.)*pow(dReQ6n,2.) - 2.*dReQ5n*pow(dReQ6n,2.)*dImQ2n*dImQ5n
6157 - dReQ2n*pow(dReQ6n,2.)*pow(dImQ5n,2.) + 2.*pow(dReQ5n,2.)*dReQ6n*dImQ2n*dImQ6n
6158 + 4.*dReQ2n*dReQ5n*dReQ6n*dImQ5n*dImQ6n - 2.*dReQ6n*dImQ2n*pow(dImQ5n,2.)*dImQ6n
6159 - dReQ2n*pow(dReQ5n,2.)*pow(dImQ6n,2.) + 2.*dReQ5n*dImQ2n*dImQ5n*pow(dImQ6n,2.)
6160 + dReQ2n*pow(dImQ5n,2.)*pow(dImQ6n,2.);
6161 Double_t reQ10nQ2nQ6nstarQ6nstar = dImQ2n*pow(dImQ6n,2.)*dImQ10n+2.*dImQ6n*dImQ10n*dReQ2n*dReQ6n
6162 - dImQ2n*dImQ10n*pow(dReQ6n,2.)-pow(dImQ6n,2.)*dReQ2n*dReQ10n
6163 + 2.*dImQ2n*dImQ6n*dReQ6n*dReQ10n+dReQ2n*pow(dReQ6n,2.)*dReQ10n;
6164 Double_t reQ12nQ5nstarQ5nstarQ2nstar = (dReQ12n*dReQ2n+dImQ12n*dImQ2n)*(pow(dReQ5n,2)-pow(dImQ5n,2))
6165 + 2.*dReQ5n*dImQ5n*(dImQ12n*dReQ2n-dReQ12n*dImQ2n);
6166 Double_t reQ12nQ10nstarQ2nstar = dReQ12n*dReQ10n*dReQ2n-dReQ12n*dImQ10n*dImQ2n+dImQ12n*dReQ10n*dImQ2n
6167 + dImQ12n*dImQ10n*dReQ2n;
6168 // <5>_{5n,2n|3n,3n,1n}:
6169 Double_t reQ5nQ2nQ3nstarQ3nstarQ1nstar = dReQ1n*dReQ2n*pow(dReQ3n,2.)*dReQ5n + pow(dReQ3n,2.)*dReQ5n*dImQ1n*dImQ2n
6170 - 2.*dReQ2n*dReQ3n*dReQ5n*dImQ1n*dImQ3n + 2.*dReQ1n*dReQ3n*dReQ5n*dImQ2n*dImQ3n
6171 - dReQ1n*dReQ2n*dReQ5n*pow(dImQ3n,2.) - dReQ5n*dImQ1n*dImQ2n*pow(dImQ3n,2.)
6172 + dReQ2n*pow(dReQ3n,2.)*dImQ1n*dImQ5n - dReQ1n*pow(dReQ3n,2.)*dImQ2n*dImQ5n
6173 + 2.*dReQ1n*dReQ2n*dReQ3n*dImQ3n*dImQ5n + 2.*dReQ3n*dImQ1n*dImQ2n*dImQ3n*dImQ5n
6174 - dReQ2n*dImQ1n*pow(dImQ3n,2.)*dImQ5n + dReQ1n*dImQ2n*pow(dImQ3n,2.)*dImQ5n;
6175 // <5>_{5n,1n,1n|4n,3n}:
6176 Double_t reQ5nQ1nQ1nQ4nstarQ3nstar = pow(dReQ1n,2.)*dReQ3n*dReQ4n*dReQ5n - dReQ3n*dReQ4n*dReQ5n*pow(dImQ1n,2.)
6177 + 2.*dReQ1n*dReQ4n*dReQ5n*dImQ1n*dImQ3n + 2.*dReQ1n*dReQ3n*dReQ5n*dImQ1n*dImQ4n
6178 - pow(dReQ1n,2.)*dReQ5n*dImQ3n*dImQ4n + dReQ5n*pow(dImQ1n,2.)*dImQ3n*dImQ4n
6179 - 2.*dReQ1n*dReQ3n*dReQ4n*dImQ1n*dImQ5n + pow(dReQ1n,2.)*dReQ4n*dImQ3n*dImQ5n
6180 - dReQ4n*pow(dImQ1n,2.)*dImQ3n*dImQ5n + pow(dReQ1n,2.)*dReQ3n*dImQ4n*dImQ5n
6181 - dReQ3n*pow(dImQ1n,2.)*dImQ4n*dImQ5n + 2.*dReQ1n*dImQ1n*dImQ3n*dImQ4n*dImQ5n;
6182 // <5>_{5n,3n|4n,2n,2n}:
6183 Double_t reQ5nQ3nQ4nstarQ2nstarQ2nstar = dReQ4n*dReQ3n*pow(dReQ2n,2.)*dReQ5n + pow(dReQ2n,2.)*dReQ5n*dImQ4n*dImQ3n
6184 - 2.*dReQ3n*dReQ2n*dReQ5n*dImQ4n*dImQ2n + 2.*dReQ4n*dReQ2n*dReQ5n*dImQ3n*dImQ2n
6185 - dReQ4n*dReQ3n*dReQ5n*pow(dImQ2n,2.) - dReQ5n*dImQ4n*dImQ3n*pow(dImQ2n,2.)
6186 + dReQ3n*pow(dReQ2n,2.)*dImQ4n*dImQ5n - dReQ4n*pow(dReQ2n,2.)*dImQ3n*dImQ5n
6187 + 2.*dReQ4n*dReQ3n*dReQ2n*dImQ2n*dImQ5n + 2.*dReQ2n*dImQ4n*dImQ3n*dImQ2n*dImQ5n
6188 - dReQ3n*dImQ4n*pow(dImQ2n,2.)*dImQ5n + dReQ4n*dImQ3n*pow(dImQ2n,2.)*dImQ5n;
6189 Double_t reQ8nQ4nstarQ2nstarQ2nstar = (dReQ8n*dReQ4n+dImQ8n*dImQ4n)*(pow(dReQ2n,2)-pow(dImQ2n,2))
6190 + 2.*dReQ2n*dImQ2n*(dImQ8n*dReQ4n-dReQ8n*dImQ4n);
6191 // <5>_{5n,2n,1n|4n,4n}:
6192 Double_t reQ5nQ2nQ1nQ4nstarQ4nstar = dReQ1n*dReQ2n*pow(dReQ4n,2.)*dReQ5n - pow(dReQ4n,2.)*dReQ5n*dImQ1n*dImQ2n
6193 + 2.*dReQ2n*dReQ4n*dReQ5n*dImQ1n*dImQ4n + 2.*dReQ1n*dReQ4n*dReQ5n*dImQ2n*dImQ4n
6194 - dReQ1n*dReQ2n*dReQ5n*pow(dImQ4n,2.) + dReQ5n*dImQ1n*dImQ2n*pow(dImQ4n,2.)
6195 - dReQ2n*pow(dReQ4n,2.)*dImQ1n*dImQ5n - dReQ1n*pow(dReQ4n,2.)*dImQ2n*dImQ5n
6196 + 2.*dReQ1n*dReQ2n*dReQ4n*dImQ4n*dImQ5n - 2.*dReQ4n*dImQ1n*dImQ2n*dImQ4n*dImQ5n
6197 + dReQ2n*dImQ1n*pow(dImQ4n,2.)*dImQ5n + dReQ1n*dImQ2n*pow(dImQ4n,2.)*dImQ5n;
6198 // <5>_{6n,1n|3n,2n,2n}:
6199 Double_t reQ6nQ1nQ3nstarQ2nstarQ2nstar = dReQ3n*dReQ1n*pow(dReQ2n,2.)*dReQ6n + pow(dReQ2n,2.)*dReQ6n*dImQ3n*dImQ1n
6200 - 2.*dReQ1n*dReQ2n*dReQ6n*dImQ3n*dImQ2n + 2.*dReQ3n*dReQ2n*dReQ6n*dImQ1n*dImQ2n
6201 - dReQ3n*dReQ1n*dReQ6n*pow(dImQ2n,2.) - dReQ6n*dImQ3n*dImQ1n*pow(dImQ2n,2.)
6202 + dReQ1n*pow(dReQ2n,2.)*dImQ3n*dImQ6n - dReQ3n*pow(dReQ2n,2.)*dImQ1n*dImQ6n
6203 + 2.*dReQ3n*dReQ1n*dReQ2n*dImQ2n*dImQ6n + 2.*dReQ2n*dImQ3n*dImQ1n*dImQ2n*dImQ6n
6204 - dReQ1n*dImQ3n*pow(dImQ2n,2.)*dImQ6n + dReQ3n*dImQ1n*pow(dImQ2n,2.)*dImQ6n;
6206 // <5>_{6n,3n|4n,4n,1n}:
6207 Double_t reQ6nQ3nQ4nstarQ4nstarQ1nstar = dReQ1n*dReQ3n*pow(dReQ4n,2.)*dReQ6n + pow(dReQ4n,2.)*dReQ6n*dImQ1n*dImQ3n
6208 - 2.*dReQ3n*dReQ4n*dReQ6n*dImQ1n*dImQ4n + 2.*dReQ1n*dReQ4n*dReQ6n*dImQ3n*dImQ4n
6209 - dReQ1n*dReQ3n*dReQ6n*pow(dImQ4n,2.) - dReQ6n*dImQ1n*dImQ3n*pow(dImQ4n,2.)
6210 + dReQ3n*pow(dReQ4n,2.)*dImQ1n*dImQ6n - dReQ1n*pow(dReQ4n,2.)*dImQ3n*dImQ6n
6211 + 2.*dReQ1n*dReQ3n*dReQ4n*dImQ4n*dImQ6n + 2.*dReQ4n*dImQ1n*dImQ3n*dImQ4n*dImQ6n
6212 - dReQ3n*dImQ1n*pow(dImQ4n,2.)*dImQ6n + dReQ1n*dImQ3n*pow(dImQ4n,2.)*dImQ6n;
6214 // five6n1n1n5n3n = 0.; // <5>_{6n,1n,1n|5n,3n} = <cos(n(6*phi1+1*phi2+1*phi3-5*phi4-3*phi5))>
6215 Double_t reQ6nQ1nQ1nQ5nstarQ3nstar = pow(dReQ1n,2.)*dReQ3n*dReQ5n*dReQ6n - dReQ3n*dReQ5n*dReQ6n*pow(dImQ1n,2.)
6216 + 2.*dReQ1n*dReQ5n*dReQ6n*dImQ1n*dImQ3n + 2.*dReQ1n*dReQ3n*dReQ6n*dImQ1n*dImQ5n
6217 - pow(dReQ1n,2.)*dReQ6n*dImQ3n*dImQ5n + dReQ6n*pow(dImQ1n,2.)*dImQ3n*dImQ5n
6218 - 2.*dReQ1n*dReQ3n*dReQ5n*dImQ1n*dImQ6n + pow(dReQ1n,2.)*dReQ5n*dImQ3n*dImQ6n
6219 - dReQ5n*pow(dImQ1n,2.)*dImQ3n*dImQ6n + pow(dReQ1n,2.)*dReQ3n*dImQ5n*dImQ6n
6220 - dReQ3n*pow(dImQ1n,2.)*dImQ5n*dImQ6n + 2.*dReQ1n*dImQ1n*dImQ3n*dImQ5n*dImQ6n;
6222 // <5>_{6n,3n|5n,2n,2n}:
6223 Double_t reQ6nQ3nQ5nstarQ2nstarQ2nstar = dReQ5n*dReQ3n*pow(dReQ2n,2.)*dReQ6n + pow(dReQ2n,2.)*dReQ6n*dImQ5n*dImQ3n
6224 - 2.*dReQ3n*dReQ2n*dReQ6n*dImQ5n*dImQ2n + 2.*dReQ5n*dReQ2n*dReQ6n*dImQ3n*dImQ2n
6225 - dReQ5n*dReQ3n*dReQ6n*pow(dImQ2n,2.) - dReQ6n*dImQ5n*dImQ3n*pow(dImQ2n,2.)
6226 + dReQ3n*pow(dReQ2n,2.)*dImQ5n*dImQ6n - dReQ5n*pow(dReQ2n,2.)*dImQ3n*dImQ6n
6227 + 2.*dReQ5n*dReQ3n*dReQ2n*dImQ2n*dImQ6n + 2.*dReQ2n*dImQ5n*dImQ3n*dImQ2n*dImQ6n
6228 - dReQ3n*dImQ5n*pow(dImQ2n,2.)*dImQ6n + dReQ5n*dImQ3n*pow(dImQ2n,2.)*dImQ6n;
6230 // <5>_{6n,5n|4n,4n,3n}:
6231 Double_t reQ6nQ5nQ4nstarQ4nstarQ3nstar = dReQ3n*dReQ5n*pow(dReQ4n,2.)*dReQ6n + pow(dReQ4n,2.)*dReQ6n*dImQ3n*dImQ5n
6232 - 2.*dReQ5n*dReQ4n*dReQ6n*dImQ3n*dImQ4n + 2.*dReQ3n*dReQ4n*dReQ6n*dImQ5n*dImQ4n
6233 - dReQ3n*dReQ5n*dReQ6n*pow(dImQ4n,2.) - dReQ6n*dImQ3n*dImQ5n*pow(dImQ4n,2.)
6234 + dReQ5n*pow(dReQ4n,2.)*dImQ3n*dImQ6n - dReQ3n*pow(dReQ4n,2.)*dImQ5n*dImQ6n
6235 + 2.*dReQ3n*dReQ5n*dReQ4n*dImQ4n*dImQ6n + 2.*dReQ4n*dImQ3n*dImQ5n*dImQ4n*dImQ6n
6236 - dReQ5n*dImQ3n*pow(dImQ4n,2.)*dImQ6n + dReQ3n*dImQ5n*pow(dImQ4n,2.)*dImQ6n;
6237 Double_t reQ11nQ4nstarQ4nstarQ3nstar = (dReQ11n*dReQ3n+dImQ11n*dImQ3n)*(pow(dReQ4n,2)-pow(dImQ4n,2))
6238 + 2.*dReQ4n*dImQ4n*(dImQ11n*dReQ3n-dReQ11n*dImQ3n);
6240 // <5>_{6n,3n,1n|5n,5n}:
6241 Double_t reQ6nQ3nQ1nQ5nstarQ5nstar = dReQ1n*dReQ3n*pow(dReQ5n,2.)*dReQ6n - pow(dReQ5n,2.)*dReQ6n*dImQ1n*dImQ3n
6242 + 2.*dReQ3n*dReQ5n*dReQ6n*dImQ1n*dImQ5n + 2.*dReQ1n*dReQ5n*dReQ6n*dImQ3n*dImQ5n
6243 - dReQ1n*dReQ3n*dReQ6n*pow(dImQ5n,2.) + dReQ6n*dImQ1n*dImQ3n*pow(dImQ5n,2.)
6244 - dReQ3n*pow(dReQ5n,2.)*dImQ1n*dImQ6n - dReQ1n*pow(dReQ5n,2.)*dImQ3n*dImQ6n
6245 + 2.*dReQ1n*dReQ3n*dReQ5n*dImQ5n*dImQ6n - 2.*dReQ5n*dImQ1n*dImQ3n*dImQ5n*dImQ6n
6246 + dReQ3n*dImQ1n*pow(dImQ5n,2.)*dImQ6n + dReQ1n*dImQ3n*pow(dImQ5n,2.)*dImQ6n;
6248 // <5>_{6n,6n|5n,4n,3n}:
6249 Double_t reQ6nQ6nQ5nstarQ4nstarQ3nstar = dReQ3n*dReQ4n*dReQ5n*pow(dReQ6n,2.) - dReQ5n*pow(dReQ6n,2.)*dImQ3n*dImQ4n
6250 - dReQ4n*pow(dReQ6n,2.)*dImQ3n*dImQ5n - dReQ3n*pow(dReQ6n,2.)*dImQ4n*dImQ5n
6251 + 2.*dReQ4n*dReQ5n*dReQ6n*dImQ3n*dImQ6n + 2.*dReQ3n*dReQ5n*dReQ6n*dImQ4n*dImQ6n
6252 + 2.*dReQ3n*dReQ4n*dReQ6n*dImQ5n*dImQ6n - 2.*dReQ6n*dImQ3n*dImQ4n*dImQ5n*dImQ6n
6253 - dReQ3n*dReQ4n*dReQ5n*pow(dImQ6n,2.) + dReQ5n*dImQ3n*dImQ4n*pow(dImQ6n,2.)
6254 + dReQ4n*dImQ3n*dImQ5n*pow(dImQ6n,2.) + dReQ3n*dImQ4n*dImQ5n*pow(dImQ6n,2.);
6257 Double_t reQ8nQ4nQ6nstarQ6nstar = dImQ4n*pow(dImQ6n,2.)*dImQ8n+2.*dImQ6n*dImQ8n*dReQ4n*dReQ6n
6258 - dImQ4n*dImQ8n*pow(dReQ6n,2.)-pow(dImQ6n,2.)*dReQ4n*dReQ8n
6259 + 2.*dImQ4n*dImQ6n*dReQ6n*dReQ8n+dReQ4n*pow(dReQ6n,2.)*dReQ8n;
6262 Double_t reQ9nQ3nQ6nstarQ6nstar = dImQ3n*pow(dImQ6n,2.)*dImQ9n+2.*dImQ6n*dImQ9n*dReQ3n*dReQ6n
6263 - dImQ3n*dImQ9n*pow(dReQ6n,2.)-pow(dImQ6n,2.)*dReQ3n*dReQ9n
6264 + 2.*dImQ3n*dImQ6n*dReQ6n*dReQ9n+dReQ3n*pow(dReQ6n,2.)*dReQ9n;
6267 Double_t reQ12nQ5nstarQ4nstarQ3nstar = dReQ3n*dReQ5n*dReQ4n*dReQ12n-dReQ4n*dReQ12n*dImQ3n*dImQ5n
6268 - dReQ5n*dReQ12n*dImQ3n*dImQ4n-dReQ3n*dReQ12n*dImQ5n*dImQ4n
6269 + dReQ5n*dReQ4n*dImQ3n*dImQ12n+dReQ3n*dReQ4n*dImQ5n*dImQ12n
6270 + dReQ3n*dReQ5n*dImQ4n*dImQ12n-dImQ3n*dImQ5n*dImQ4n*dImQ12n;
6271 Double_t reQ12nQ9nstarQ3nstar = dReQ12n*dReQ9n*dReQ3n-dReQ12n*dImQ9n*dImQ3n+dImQ12n*dReQ9n*dImQ3n
6272 + dImQ12n*dImQ9n*dReQ3n;
6273 Double_t reQ12nQ8nstarQ4nstar = dReQ12n*dReQ8n*dReQ4n-dReQ12n*dImQ8n*dImQ4n+dImQ12n*dReQ8n*dImQ4n
6274 + dImQ12n*dImQ8n*dReQ4n;
6277 five4n3n3n2n2n = ((pow(dReQ3n,2.)+pow(dImQ3n,2.))
6278 * (pow(dReQ2n,2.)*dReQ4n-pow(dImQ2n,2.)*dReQ4n+2.*dReQ2n*dImQ2n*dImQ4n)
6279 - ((dReQ7n*dReQ3n+dImQ7n*dImQ3n)*(pow(dReQ2n,2.)-pow(dImQ2n,2.))
6280 + 2.*dReQ2n*dImQ2n*(dImQ7n*dReQ3n-dReQ7n*dImQ3n))
6281 - ((pow(dReQ2n,2.)-pow(dImQ2n,2.))*(dReQ3n*dReQ1n-dImQ3n*dImQ1n)
6282 + 2.*dReQ2n*dImQ2n*(dReQ3n*dImQ1n+dImQ3n*dReQ1n))
6283 - 2.*(dImQ1n*dImQ2n*dImQ3n*dImQ4n+dImQ3n*dImQ4n*dReQ1n*dReQ2n
6284 + dImQ2n*dImQ4n*dReQ1n*dReQ3n-dImQ1n*dImQ4n*dReQ2n*dReQ3n
6285 - dImQ2n*dImQ3n*dReQ1n*dReQ4n+dImQ1n*dImQ3n*dReQ2n*dReQ4n
6286 + dImQ1n*dImQ2n*dReQ3n*dReQ4n+dReQ1n*dReQ2n*dReQ3n*dReQ4n)
6287 - 2.*(dImQ2n*dImQ3n*dImQ4n*dImQ5n+dImQ4n*dImQ5n*dReQ2n*dReQ3n
6288 + dImQ3n*dImQ5n*dReQ2n*dReQ4n-dImQ2n*dImQ5n*dReQ3n*dReQ4n
6289 - dImQ3n*dImQ4n*dReQ2n*dReQ5n+dImQ2n*dImQ4n*dReQ3n*dReQ5n
6290 + dImQ2n*dImQ3n*dReQ4n*dReQ5n+dReQ2n*dReQ3n*dReQ4n*dReQ5n)
6291 + 2.*(pow(dReQ1n,2.)*dReQ2n+2.*dReQ1n*dImQ1n*dImQ2n-pow(dImQ1n,2.)*dReQ2n)
6292 + 1.*(dReQ7n*dReQ4n*dReQ3n-dReQ7n*dImQ4n*dImQ3n+dImQ7n*dReQ4n*dImQ3n+dImQ7n*dImQ4n*dReQ3n)
6293 + 3.*(dReQ4n*(dReQ3n*dReQ1n-dImQ3n*dImQ1n)+dImQ4n*(dReQ3n*dImQ1n+dImQ3n*dReQ1n))
6294 + 2.*(dReQ5n*dReQ4n*dReQ1n-dReQ5n*dImQ4n*dImQ1n+dImQ5n*dReQ4n*dImQ1n+dImQ5n*dImQ4n*dReQ1n)
6295 + 2.*(dReQ7n*dReQ5n*dReQ2n-dReQ7n*dImQ5n*dImQ2n+dImQ7n*dReQ5n*dImQ2n+dImQ7n*dImQ5n*dReQ2n)
6296 + 2.*(dReQ7n*dReQ4n*dReQ3n-dReQ7n*dImQ4n*dImQ3n+dImQ7n*dReQ4n*dImQ3n+dImQ7n*dImQ4n*dReQ3n)
6297 + 6.*(dReQ3n*dReQ2n*dReQ1n-dReQ3n*dImQ2n*dImQ1n+dImQ3n*dReQ2n*dImQ1n+dImQ3n*dImQ2n*dReQ1n)
6298 + 6.*(dReQ5n*dReQ2n*dReQ3n-dReQ5n*dImQ2n*dImQ3n+dImQ5n*dReQ2n*dImQ3n+dImQ5n*dImQ2n*dReQ3n)
6299 - (dMult-6.)*(pow(dReQ2n,2.)*dReQ4n+2.*dReQ2n*dImQ2n*dImQ4n-pow(dImQ2n,2.)*dReQ4n)
6300 - (pow(dReQ4n,2.)+pow(dImQ4n,2.))*(pow(dReQ3n,2.)+pow(dImQ3n,2.))
6301 - 2.*(pow(dReQ3n,2.)+pow(dImQ3n,2.))*(pow(dReQ2n,2.)+pow(dImQ2n,2.))
6302 - 2.*(pow(dReQ7n,2.)+pow(dImQ7n,2.))
6303 - 4.*(pow(dReQ5n,2.)+pow(dImQ5n,2.))
6304 - 2.*(pow(dReQ1n,2.)+pow(dImQ1n,2.))
6305 - 4.*(pow(dReQ1n,2.)+pow(dImQ1n,2.))
6306 + (dMult-8.)*(pow(dReQ4n,2.)+pow(dImQ4n,2.))
6307 + 2.*(dMult-8.)*(pow(dReQ2n,2.)+pow(dImQ2n,2.))
6308 + 2.*(dMult-6.)*(pow(dReQ3n,2.)+pow(dImQ3n,2.))
6309 - 2.*dMult*(dMult-12.))
6310 / (dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.));
6311 five4n2n4n1n1n = ((pow(dReQ4n,2.)+pow(dImQ4n,2.))
6312 * (pow(dReQ1n,2.)*dReQ2n-pow(dImQ1n,2.)*dReQ2n+2.*dReQ1n*dImQ1n*dImQ2n)
6313 - reQ6nQ4nstarQ1nstarQ1nstar
6314 - reQ4nQ2nstarQ1nstarQ1nstar
6315 - 2.*reQ4nQ1nQ3nstarQ2nstar
6316 - 2.*reQ5nQ1nQ4nstarQ2nstar
6317 + 2.*reQ3nQ2nstarQ1nstar
6318 + reQ6nQ4nstarQ2nstar
6319 + 3.*reQ4nQ2nstarQ2nstar
6320 + 2.*reQ5nQ3nstarQ2nstar
6321 + 2.*reQ6nQ5nstarQ1nstar
6322 + 2.*reQ6nQ4nstarQ2nstar
6323 + 6.*reQ4nQ3nstarQ1nstar
6324 + 6.*reQ5nQ4nstarQ1nstar
6325 - (dMult-6.)*(pow(dReQ1n,2.)*dReQ2n+2.*dReQ1n*dImQ1n*dImQ2n-pow(dImQ1n,2.)*dReQ2n)
6326 - (pow(dReQ2n,2.)+pow(dImQ2n,2.))*(pow(dReQ4n,2.)+pow(dImQ4n,2.))
6327 - 2.*(pow(dReQ1n,2.)+pow(dImQ1n,2.))*(pow(dReQ4n,2.)+pow(dImQ4n,2.))
6328 - 2.*(pow(dReQ6n,2.)+pow(dImQ6n,2.))-4.*(pow(dReQ5n,2.)+pow(dImQ5n,2.))
6329 - 2.*(pow(dReQ2n,2.)+pow(dImQ2n,2.))-4.*(pow(dReQ3n,2.)+pow(dImQ3n,2.))
6330 + (dMult-8.)*(pow(dReQ2n,2.)+pow(dImQ2n,2.))
6331 + 2.*(dMult-8.)*(pow(dReQ1n,2.)+pow(dImQ1n,2.))
6332 + 2.*(dMult-6.)*(pow(dReQ4n,2.)+pow(dImQ4n,2.))-2.*dMult*(dMult-12.))
6333 / (dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.));
6335 five4n3n4n2n1n = (reQ4nQ3nQ4nstarQ2nstarQ1nstar
6336 - reQ5nQ2nQ4nstarQ3nstar
6337 - reQ6nQ1nQ4nstarQ3nstar
6338 - reQ4nQ1nQ3nstarQ2nstar
6339 - reQ7nQ4nstarQ2nstarQ1nstar
6340 - reQ4nQ2nstarQ1nstarQ1nstar
6341 - reQ4nQ2nQ3nstarQ3nstar
6342 + reQ4nQ3nstarQ1nstar
6343 + reQ7nQ4nstarQ3nstar
6344 + 3.*reQ4nQ3nstarQ1nstar
6345 + 2.*reQ7nQ4nstarQ3nstar
6346 + reQ5nQ3nstarQ2nstar
6347 + reQ7nQ5nstarQ2nstar
6348 + reQ6nQ3nstarQ3nstar
6349 + reQ4nQ3nstarQ1nstar
6350 + reQ7nQ6nstarQ1nstar
6351 + reQ2nQ1nstarQ1nstar
6352 - (dMult-6.)*reQ3nQ2nstarQ1nstar
6353 + 3.*reQ5nQ4nstarQ1nstar
6354 + reQ4nQ3nstarQ1nstar
6355 + 2.*reQ4nQ2nstarQ2nstar
6356 + 3.*reQ6nQ4nstarQ2nstar
6357 + reQ3nQ2nstarQ1nstar
6358 + reQ4nQ2nstarQ2nstar
6359 - (pow(dReQ4n,2.)+pow(dImQ4n,2.))*(pow(dReQ3n,2.)+pow(dImQ3n,2.))
6360 - (pow(dReQ4n,2.)+pow(dImQ4n,2.))*(pow(dReQ1n,2.)+pow(dImQ1n,2.))
6361 - (pow(dReQ4n,2.)+pow(dImQ4n,2.))*(pow(dReQ2n,2.)+pow(dImQ2n,2.))
6362 - 2.*(pow(dReQ7n,2.)+pow(dImQ7n,2.))
6363 - 2.*(pow(dReQ1n,2.)+pow(dImQ1n,2.))
6364 - 2.*(pow(dReQ5n,2.)+pow(dImQ5n,2.))
6365 - 2.*(pow(dReQ3n,2.)+pow(dImQ3n,2.))
6366 - 2.*(pow(dReQ6n,2.)+pow(dImQ6n,2.))
6367 - 2.*(pow(dReQ2n,2.)+pow(dImQ2n,2.))
6368 + (dMult-8.)*(pow(dReQ3n,2.)+pow(dImQ3n,2.))
6369 + (dMult-8.)*(pow(dReQ2n,2.)+pow(dImQ2n,2.))
6370 + (dMult-8.)*(pow(dReQ1n,2.)+pow(dImQ1n,2.))
6371 + 2.*(dMult-6.)*(pow(dReQ4n,2.)+pow(dImQ4n,2.))-2.*dMult*(dMult-12.))
6372 / (dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.));
6373 five5n1n3n2n1n = ((pow(dImQ1n,2.)+pow(dReQ1n,2.))*(dImQ3n*dImQ5n*dReQ2n+dImQ2n*dImQ5n*dReQ3n
6374 - dImQ2n*dImQ3n*dReQ5n+dReQ2n*dReQ3n*dReQ5n)
6375 - (dReQ1n*dReQ2n*dReQ3n*dReQ6n-dReQ3n*dReQ6n*dImQ1n*dImQ2n
6376 - dReQ2n*dReQ6n*dImQ1n*dImQ3n-dReQ1n*dReQ6n*dImQ2n*dImQ3n
6377 + dReQ2n*dReQ3n*dImQ1n*dImQ6n+dReQ1n*dReQ3n*dImQ2n*dImQ6n
6378 + dReQ1n*dReQ2n*dImQ3n*dImQ6n-dImQ1n*dImQ2n*dImQ3n*dImQ6n)
6379 - (dImQ1n*dImQ2n*dImQ4n*dImQ5n+dImQ4n*dImQ5n*dReQ1n*dReQ2n
6380 + dImQ2n*dImQ5n*dReQ1n*dReQ4n-dImQ1n*dImQ5n*dReQ2n*dReQ4n
6381 - dImQ2n*dImQ4n*dReQ1n*dReQ5n+dImQ1n*dImQ4n*dReQ2n*dReQ5n
6382 + dImQ1n*dImQ2n*dReQ4n*dReQ5n+dReQ1n*dReQ2n*dReQ4n*dReQ5n)
6383 - (dImQ1n*pow(dImQ3n,2.)*dImQ5n+2.*dImQ3n*dImQ5n*dReQ1n*dReQ3n
6384 - dImQ1n*dImQ5n*pow(dReQ3n,2.)-pow(dImQ3n,2.)*dReQ1n*dReQ5n
6385 + 2.*dImQ1n*dImQ3n*dReQ3n*dReQ5n+dReQ1n*pow(dReQ3n,2.)*dReQ5n)
6386 - (dImQ1n*dImQ2n*dImQ3n*dImQ4n+dImQ3n*dImQ4n*dReQ1n*dReQ2n
6387 + dImQ2n*dImQ4n*dReQ1n*dReQ3n-dImQ1n*dImQ4n*dReQ2n*dReQ3n
6388 - dImQ2n*dImQ3n*dReQ1n*dReQ4n+dImQ1n*dImQ3n*dReQ2n*dReQ4n
6389 + dImQ1n*dImQ2n*dReQ3n*dReQ4n+dReQ1n*dReQ2n*dReQ3n*dReQ4n)
6390 - (-pow(dImQ1n,2.)*dImQ3n*dImQ5n+dImQ3n*dImQ5n*pow(dReQ1n,2.)
6391 + 2.*dImQ1n*dImQ5n*dReQ1n*dReQ3n-2.*dImQ1n*dImQ3n*dReQ1n*dReQ5n
6392 - pow(dImQ1n,2.)*dReQ3n*dReQ5n+pow(dReQ1n,2.)*dReQ3n*dReQ5n)
6393 - (-pow(dImQ2n,2.)*dImQ1n*dImQ5n+dImQ1n*dImQ5n*pow(dReQ2n,2.)
6394 + 2.*dImQ2n*dImQ5n*dReQ2n*dReQ1n-2.*dImQ2n*dImQ1n*dReQ2n*dReQ5n
6395 - pow(dImQ2n,2.)*dReQ1n*dReQ5n+pow(dReQ2n,2.)*dReQ1n*dReQ5n)
6396 + 3.*(dReQ6n*dReQ5n*dReQ1n-dReQ6n*dImQ5n*dImQ1n+dImQ6n*dReQ5n*dImQ1n+dImQ6n*dImQ5n*dReQ1n)
6397 + dReQ6n*dReQ4n*dReQ2n-dReQ6n*dImQ4n*dImQ2n+dImQ6n*dReQ4n*dImQ2n+dImQ6n*dImQ4n*dReQ2n
6398 + pow(dReQ3n,2.)*dReQ6n+2.*dReQ3n*dImQ3n*dImQ6n-pow(dImQ3n,2.)*dReQ6n
6399 + 4.*(dReQ5n*dReQ4n*dReQ1n-dReQ5n*dImQ4n*dImQ1n+dImQ5n*dReQ4n*dImQ1n+dImQ5n*dImQ4n*dReQ1n)
6400 - (dMult-7.)*(dReQ5n*dReQ2n*dReQ3n-dReQ5n*dImQ2n*dImQ3n+dImQ5n*dReQ2n*dImQ3n+dImQ5n*dImQ2n*dReQ3n)
6401 + 4.*(dReQ4n*(dReQ3n*dReQ1n-dImQ3n*dImQ1n)+dImQ4n*(dReQ3n*dImQ1n+dImQ3n*dReQ1n))
6402 + pow(dReQ2n,2.)*dReQ4n+2.*dReQ2n*dImQ2n*dImQ4n-pow(dImQ2n,2.)*dReQ4n
6403 + 6.*(dReQ3n*dReQ2n*dReQ1n-dReQ3n*dImQ2n*dImQ1n+dImQ3n*dReQ2n*dImQ1n+dImQ3n*dImQ2n*dReQ1n)
6404 + 3.*(pow(dReQ1n,2.)*dReQ2n+2.*dReQ1n*dImQ1n*dImQ2n-pow(dImQ1n,2.)*dReQ2n)
6405 - (pow(dReQ5n,2.)+pow(dImQ5n,2.))*(pow(dReQ1n,2.)+pow(dImQ1n,2.))
6406 - (pow(dReQ3n,2.)+pow(dImQ3n,2.))*(pow(dReQ1n,2.)+pow(dImQ1n,2.))
6407 - (pow(dReQ2n,2.)+pow(dImQ2n,2.))*(pow(dReQ1n,2.)+pow(dImQ1n,2.))
6408 - 2.*(pow(dReQ6n,2.)+pow(dImQ6n,2.))+(dMult-8.)*(pow(dReQ5n,2.)+pow(dImQ5n,2.))
6409 - 4.*(pow(dReQ4n,2.)+pow(dImQ4n,2.))+(dMult-10.)*(pow(dReQ3n,2.)+pow(dImQ3n,2.))
6410 + (dMult-10.)*(pow(dReQ2n,2.)+pow(dImQ2n,2.))+2.*(dMult-7.)*(pow(dReQ1n,2.)+pow(dImQ1n,2.))
6411 - 2.*dMult*(dMult-12.))
6412 / (dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.));
6414 five5n2n5n1n1n = ((pow(dReQ5n,2.)+pow(dImQ5n,2.))
6415 * (pow(dReQ1n,2.)*dReQ2n-pow(dImQ1n,2.)*dReQ2n+2.*dReQ1n*dImQ1n*dImQ2n)
6416 - reQ7nQ5nstarQ1nstarQ1nstar
6417 - reQ5nQ3nstarQ1nstarQ1nstar
6418 - 2.*reQ5nQ1nQ4nstarQ2nstar
6419 - 2.*reQ6nQ1nQ5nstarQ2nstar
6420 + 2.*reQ4nQ3nstarQ1nstar
6421 + reQ7nQ5nstarQ2nstar
6422 + 3.*reQ5nQ3nstarQ2nstar
6423 + 2.*reQ6nQ4nstarQ2nstar
6424 + 2.*reQ7nQ6nstarQ1nstar
6425 + 2.*reQ7nQ5nstarQ2nstar
6426 + 6.*reQ5nQ4nstarQ1nstar
6427 + 6.*reQ6nQ5nstarQ1nstar
6428 - (dMult-6.)*(pow(dReQ1n,2.)*dReQ2n+2.*dReQ1n*dImQ1n*dImQ2n-pow(dImQ1n,2.)*dReQ2n)
6429 - (pow(dReQ2n,2.)+pow(dImQ2n,2.))*(pow(dReQ5n,2.)+pow(dImQ5n,2.))
6430 - 2.*(pow(dReQ1n,2.)+pow(dImQ1n,2.))*(pow(dReQ5n,2.)+pow(dImQ5n,2.))
6431 - 2.*(pow(dReQ7n,2.)+pow(dImQ7n,2.))-4.*(pow(dReQ6n,2.)+pow(dImQ6n,2.))
6432 - 2.*(pow(dReQ3n,2.)+pow(dImQ3n,2.))-4.*(pow(dReQ4n,2.)+pow(dImQ4n,2.))
6433 + (dMult-8.)*(pow(dReQ2n,2.)+pow(dImQ2n,2.))
6434 + 2.*(dMult-8.)*(pow(dReQ1n,2.)+pow(dImQ1n,2.))
6435 + 2.*(dMult-6.)*(pow(dReQ5n,2.)+pow(dImQ5n,2.))-2.*dMult*(dMult-12.))
6436 / (dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.));
6438 five5n2n4n2n1n = (reQ5nQ2nQ4nstarQ2nstarQ1nstar
6439 - reQ5nQ2nQ4nstarQ3nstar
6440 - reQ6nQ1nQ5nstarQ2nstar
6441 - reQ5nQ2nstarQ2nstarQ1nstar
6442 - reQ7nQ4nstarQ2nstarQ1nstar
6443 - reQ4nQ1nQ3nstarQ2nstar
6444 - reQ5nQ1nQ4nstarQ2nstar
6445 + reQ2nQ1nstarQ1nstar
6446 + reQ7nQ5nstarQ2nstar
6447 + 3.*reQ5nQ3nstarQ2nstar
6448 + 2.*reQ7nQ5nstarQ2nstar
6449 + reQ5nQ3nstarQ2nstar
6450 + reQ7nQ4nstarQ3nstar
6451 + reQ6nQ5nstarQ1nstar
6452 + reQ2nQ1nstarQ1nstar
6453 + reQ7nQ6nstarQ1nstar
6454 + reQ3nQ2nstarQ1nstar
6455 - (dMult-6.)*reQ5nQ4nstarQ1nstar
6456 + 3.*reQ3nQ2nstarQ1nstar
6457 + reQ2nQ1nstarQ1nstar
6458 + 2.*reQ4nQ2nstarQ2nstar
6459 + 3.*reQ6nQ4nstarQ2nstar
6460 + reQ4nQ3nstarQ1nstar
6461 + reQ4nQ2nstarQ2nstar
6462 - (pow(dReQ2n,2.)+pow(dImQ2n,2.))*(pow(dReQ5n,2.)+pow(dImQ5n,2.))
6463 - (pow(dReQ2n,2.)+pow(dImQ2n,2.))*(pow(dReQ1n,2.)+pow(dImQ1n,2.))
6464 - (pow(dReQ2n,2.)+pow(dImQ2n,2.))*(pow(dReQ4n,2.)+pow(dImQ4n,2.))
6465 - 2.*(pow(dReQ7n,2.)+pow(dImQ7n,2.))
6466 - 2.*(pow(dReQ3n,2.)+pow(dImQ3n,2.))
6467 - 2.*(pow(dReQ3n,2.)+pow(dImQ3n,2.))
6468 - 2.*(pow(dReQ1n,2.)+pow(dImQ1n,2.))
6469 - 2.*(pow(dReQ6n,2.)+pow(dImQ6n,2.))
6470 - 2.*(pow(dReQ2n,2.)+pow(dImQ2n,2.))
6471 + (dMult-8.)*(pow(dReQ5n,2.)+pow(dImQ5n,2.))
6472 + (dMult-8.)*(pow(dReQ4n,2.)+pow(dImQ4n,2.))
6473 + (dMult-8.)*(pow(dReQ1n,2.)+pow(dImQ1n,2.))
6474 + 2.*(dMult-6.)*(pow(dReQ2n,2.)+pow(dImQ2n,2.))-2.*dMult*(dMult-12.))
6475 / (dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.));
6477 five5n3n4n3n1n = (reQ5nQ3nQ4nstarQ3nstarQ1nstar
6478 - reQ5nQ3nQ4nstarQ4nstar
6479 - reQ7nQ1nQ5nstarQ3nstar
6480 - reQ5nQ3nstarQ1nstarQ1nstar
6481 - reQ8nQ4nstarQ3nstarQ1nstar
6482 - reQ4nQ1nQ3nstarQ2nstar
6483 - reQ5nQ2nQ4nstarQ3nstar
6484 + reQ3nQ2nstarQ1nstar
6485 + reQ8nQ5nstarQ3nstar
6486 + 3.*reQ5nQ3nstarQ2nstar
6487 + 2.*reQ8nQ5nstarQ3nstar
6488 + reQ5nQ4nstarQ1nstar
6489 + reQ8nQ4nstarQ4nstar
6490 + reQ7nQ5nstarQ2nstar
6491 + reQ3nQ2nstarQ1nstar
6492 + reQ8nQ7nstarQ1nstar
6493 + reQ2nQ1nstarQ1nstar
6494 - (dMult-6.)*reQ5nQ4nstarQ1nstar
6495 + 3.*reQ4nQ3nstarQ1nstar
6496 + reQ3nQ2nstarQ1nstar
6497 + 2.*reQ4nQ3nstarQ1nstar
6498 + 3.*reQ7nQ4nstarQ3nstar
6499 + reQ4nQ2nstarQ2nstar
6500 + reQ4nQ3nstarQ1nstar
6501 - (pow(dReQ3n,2.)+pow(dImQ3n,2.))*(pow(dReQ5n,2.)+pow(dImQ5n,2.))
6502 - (pow(dReQ3n,2.)+pow(dImQ3n,2.))*(pow(dReQ1n,2.)+pow(dImQ1n,2.))
6503 - (pow(dReQ3n,2.)+pow(dImQ3n,2.))*(pow(dReQ4n,2.)+pow(dImQ4n,2.))
6504 - 2.*(pow(dReQ8n,2.)+pow(dImQ8n,2.))
6505 - 2.*(pow(dReQ2n,2.)+pow(dImQ2n,2.))
6506 - 2.*(pow(dReQ4n,2.)+pow(dImQ4n,2.))
6507 - 2.*(pow(dReQ2n,2.)+pow(dImQ2n,2.))
6508 - 2.*(pow(dReQ7n,2.)+pow(dImQ7n,2.))
6509 - 2.*(pow(dReQ1n,2.)+pow(dImQ1n,2.))
6510 + (dMult-8.)*(pow(dReQ5n,2.)+pow(dImQ5n,2.))
6511 + (dMult-8.)*(pow(dReQ4n,2.)+pow(dImQ4n,2.))
6512 + (dMult-8.)*(pow(dReQ1n,2.)+pow(dImQ1n,2.))
6513 + 2.*(dMult-6.)*(pow(dReQ3n,2.)+pow(dImQ3n,2.))-2.*dMult*(dMult-12.))
6514 / (dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.));
6516 five5n4n4n3n2n = (reQ5nQ4nQ4nstarQ3nstarQ2nstar
6517 - reQ6nQ3nQ5nstarQ4nstar
6518 - reQ7nQ2nQ5nstarQ4nstar
6519 - reQ5nQ1nQ4nstarQ2nstar
6520 - reQ9nQ4nstarQ3nstarQ2nstar
6521 - reQ4nQ1nQ3nstarQ2nstar
6522 - reQ5nQ2nQ4nstarQ3nstar
6523 + reQ4nQ2nstarQ2nstar
6524 + reQ9nQ5nstarQ4nstar
6525 + 3.*reQ5nQ4nstarQ1nstar
6526 + 2.*reQ9nQ5nstarQ4nstar
6527 + reQ6nQ5nstarQ1nstar
6528 + reQ9nQ6nstarQ3nstar
6529 + reQ7nQ5nstarQ2nstar
6530 + reQ4nQ2nstarQ2nstar
6531 + reQ9nQ7nstarQ2nstar
6532 + reQ2nQ1nstarQ1nstar
6533 - (dMult-6.)*reQ5nQ3nstarQ2nstar
6534 + 3.*reQ6nQ4nstarQ2nstar
6535 + reQ4nQ2nstarQ2nstar
6536 + 2.*reQ4nQ3nstarQ1nstar
6537 + 3.*reQ7nQ4nstarQ3nstar
6538 + reQ3nQ2nstarQ1nstar
6539 + reQ4nQ3nstarQ1nstar
6540 - (pow(dReQ4n,2.)+pow(dImQ4n,2.))*(pow(dReQ5n,2.)+pow(dImQ5n,2.))
6541 - (pow(dReQ4n,2.)+pow(dImQ4n,2.))*(pow(dReQ2n,2.)+pow(dImQ2n,2.))
6542 - (pow(dReQ4n,2.)+pow(dImQ4n,2.))*(pow(dReQ3n,2.)+pow(dImQ3n,2.))
6543 - 2.*(pow(dReQ9n,2.)+pow(dImQ9n,2.))
6544 - 2.*(pow(dReQ1n,2.)+pow(dImQ1n,2.))
6545 - 2.*(pow(dReQ6n,2.)+pow(dImQ6n,2.))
6546 - 2.*(pow(dReQ2n,2.)+pow(dImQ2n,2.))
6547 - 2.*(pow(dReQ7n,2.)+pow(dImQ7n,2.))
6548 - 2.*(pow(dReQ1n,2.)+pow(dImQ1n,2.))
6549 + (dMult-8.)*(pow(dReQ5n,2.)+pow(dImQ5n,2.))
6550 + (dMult-8.)*(pow(dReQ3n,2.)+pow(dImQ3n,2.))
6551 + (dMult-8.)*(pow(dReQ2n,2.)+pow(dImQ2n,2.))
6552 + 2.*(dMult-6.)*(pow(dReQ4n,2.)+pow(dImQ4n,2.))-2.*dMult*(dMult-12.))
6553 / (dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.));
6555 five5n3n5n2n1n = (reQ5nQ3nQ5nstarQ2nstarQ1nstar
6556 - reQ6nQ2nQ5nstarQ3nstar
6557 - reQ7nQ1nQ5nstarQ3nstar
6558 - reQ5nQ1nQ3nstarQ3nstar
6559 - reQ8nQ5nstarQ2nstarQ1nstar
6560 - reQ5nQ2nstarQ2nstarQ1nstar
6561 - reQ5nQ2nQ4nstarQ3nstar
6562 + reQ5nQ4nstarQ1nstar
6563 + reQ8nQ5nstarQ3nstar
6564 + 3.*reQ5nQ3nstarQ2nstar
6565 + 2.*reQ8nQ5nstarQ3nstar
6566 + reQ6nQ3nstarQ3nstar
6567 + reQ8nQ6nstarQ2nstar
6568 + reQ7nQ4nstarQ3nstar
6569 + reQ5nQ4nstarQ1nstar
6570 + reQ8nQ7nstarQ1nstar
6571 + reQ3nQ2nstarQ1nstar
6572 - (dMult-6.)*reQ3nQ2nstarQ1nstar
6573 + 3.*reQ6nQ5nstarQ1nstar
6574 + reQ5nQ4nstarQ1nstar
6575 + 2.*reQ5nQ3nstarQ2nstar
6576 + 3.*reQ7nQ5nstarQ2nstar
6577 + reQ4nQ2nstarQ2nstar
6578 + reQ5nQ3nstarQ2nstar
6579 - (pow(dReQ5n,2.)+pow(dImQ5n,2.))*(pow(dReQ3n,2.)+pow(dImQ3n,2.))
6580 - (pow(dReQ5n,2.)+pow(dImQ5n,2.))*(pow(dReQ1n,2.)+pow(dImQ1n,2.))
6581 - (pow(dReQ5n,2.)+pow(dImQ5n,2.))*(pow(dReQ2n,2.)+pow(dImQ2n,2.))
6582 - 2.*(pow(dReQ8n,2.)+pow(dImQ8n,2.))
6583 - 2.*(pow(dReQ2n,2.)+pow(dImQ2n,2.))
6584 - 2.*(pow(dReQ6n,2.)+pow(dImQ6n,2.))
6585 - 2.*(pow(dReQ4n,2.)+pow(dImQ4n,2.))
6586 - 2.*(pow(dReQ7n,2.)+pow(dImQ7n,2.))
6587 - 2.*(pow(dReQ3n,2.)+pow(dImQ3n,2.))
6588 + (dMult-8.)*(pow(dReQ3n,2.)+pow(dImQ3n,2.))
6589 + (dMult-8.)*(pow(dReQ2n,2.)+pow(dImQ2n,2.))
6590 + (dMult-8.)*(pow(dReQ1n,2.)+pow(dImQ1n,2.))
6591 + 2.*(dMult-6.)*(pow(dReQ5n,2.)+pow(dImQ5n,2.))-2.*dMult*(dMult-12.))
6592 / (dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.));
6594 five5n4n5n2n2n = ((pow(dReQ5n,2.)+pow(dImQ5n,2.))
6595 * (pow(dReQ2n,2.)*dReQ4n-pow(dImQ2n,2.)*dReQ4n+2.*dReQ2n*dImQ2n*dImQ4n)
6596 - reQ9nQ5nstarQ2nstarQ2nstar
6597 - reQ5nQ2nstarQ2nstarQ1nstar
6598 - 2.*reQ5nQ2nQ4nstarQ3nstar
6599 - 2.*reQ7nQ2nQ5nstarQ4nstar
6600 + 2.*reQ3nQ2nstarQ1nstar
6601 + reQ9nQ5nstarQ4nstar
6602 + 3.*reQ5nQ4nstarQ1nstar
6603 + 2.*reQ7nQ4nstarQ3nstar
6604 + 2.*reQ9nQ7nstarQ2nstar
6605 + 2.*reQ9nQ5nstarQ4nstar
6606 + 6.*reQ5nQ3nstarQ2nstar
6607 + 6.*reQ7nQ5nstarQ2nstar
6608 - (dMult-6.)*(pow(dReQ2n,2.)*dReQ4n+2.*dReQ2n*dImQ2n*dImQ4n-pow(dImQ2n,2.)*dReQ4n)
6609 - (pow(dReQ4n,2.)+pow(dImQ4n,2.))*(pow(dReQ5n,2.)+pow(dImQ5n,2.))
6610 - 2.*(pow(dReQ2n,2.)+pow(dImQ2n,2.))*(pow(dReQ5n,2.)+pow(dImQ5n,2.))
6611 - 2.*(pow(dReQ9n,2.)+pow(dImQ9n,2.))-4.*(pow(dReQ7n,2.)+pow(dImQ7n,2.))
6612 - 2.*(pow(dReQ1n,2.)+pow(dImQ1n,2.))-4.*(pow(dReQ3n,2.)+pow(dImQ3n,2.))
6613 + (dMult-8.)*(pow(dReQ4n,2.)+pow(dImQ4n,2.))
6614 + 2.*(dMult-8.)*(pow(dReQ2n,2.)+pow(dImQ2n,2.))
6615 + 2.*(dMult-6.)*(pow(dReQ5n,2.)+pow(dImQ5n,2.))-2.*dMult*(dMult-12.))
6616 / (dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.));
6618 five5n4n5n3n1n = (reQ5nQ4nQ5nstarQ3nstarQ1nstar
6619 - reQ6nQ3nQ5nstarQ4nstar
6620 - reQ8nQ1nQ5nstarQ4nstar
6621 - reQ5nQ1nQ4nstarQ2nstar
6622 - reQ9nQ5nstarQ3nstarQ1nstar
6623 - reQ5nQ3nstarQ1nstarQ1nstar
6624 - reQ5nQ3nQ4nstarQ4nstar
6625 + reQ5nQ4nstarQ1nstar
6626 + reQ9nQ5nstarQ4nstar
6627 + 3.*reQ5nQ4nstarQ1nstar
6628 + 2.*reQ9nQ5nstarQ4nstar
6629 + reQ6nQ4nstarQ2nstar
6630 + reQ9nQ6nstarQ3nstar
6631 + reQ8nQ4nstarQ4nstar
6632 + reQ5nQ4nstarQ1nstar
6633 + reQ9nQ8nstarQ1nstar
6634 + reQ2nQ1nstarQ1nstar
6635 - (dMult-6.)*reQ4nQ3nstarQ1nstar
6636 + 3.*reQ6nQ5nstarQ1nstar
6637 + reQ5nQ4nstarQ1nstar
6638 + 2.*reQ5nQ3nstarQ2nstar
6639 + 3.*reQ8nQ5nstarQ3nstar
6640 + reQ4nQ3nstarQ1nstar
6641 + reQ5nQ3nstarQ2nstar
6642 - (pow(dReQ5n,2.)+pow(dImQ5n,2.))*(pow(dReQ4n,2.)+pow(dImQ4n,2.))
6643 - (pow(dReQ5n,2.)+pow(dImQ5n,2.))*(pow(dReQ1n,2.)+pow(dImQ1n,2.))
6644 - (pow(dReQ5n,2.)+pow(dImQ5n,2.))*(pow(dReQ3n,2.)+pow(dImQ3n,2.))
6645 - 2.*(pow(dReQ9n,2.)+pow(dImQ9n,2.))
6646 - 2.*(pow(dReQ1n,2.)+pow(dImQ1n,2.))
6647 - 2.*(pow(dReQ6n,2.)+pow(dImQ6n,2.))
6648 - 2.*(pow(dReQ4n,2.)+pow(dImQ4n,2.))
6649 - 2.*(pow(dReQ8n,2.)+pow(dImQ8n,2.))
6650 - 2.*(pow(dReQ2n,2.)+pow(dImQ2n,2.))
6651 + (dMult-8.)*(pow(dReQ4n,2.)+pow(dImQ4n,2.))
6652 + (dMult-8.)*(pow(dReQ3n,2.)+pow(dImQ3n,2.))
6653 + (dMult-8.)*(pow(dReQ1n,2.)+pow(dImQ1n,2.))
6654 + 2.*(dMult-6.)*(pow(dReQ5n,2.)+pow(dImQ5n,2.))-2.*dMult*(dMult-12.))
6655 / (dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.));
6656 five6n1n3n3n1n = ((pow(dReQ1n,2.)+pow(dImQ1n,2.))
6657 * (pow(dReQ3n,2.)*dReQ6n-pow(dImQ3n,2.)*dReQ6n+2.*dReQ3n*dImQ3n*dImQ6n)
6658 - 2.*(dImQ1n*dImQ3n*dImQ4n*dImQ6n+dImQ4n*dImQ6n*dReQ1n*dReQ3n
6659 + dImQ3n*dImQ6n*dReQ1n*dReQ4n-dImQ1n*dImQ6n*dReQ3n*dReQ4n
6660 - dImQ3n*dImQ4n*dReQ1n*dReQ6n+dImQ1n*dImQ4n*dReQ3n*dReQ6n
6661 + dImQ1n*dImQ3n*dReQ4n*dReQ6n+dReQ1n*dReQ3n*dReQ4n*dReQ6n)
6662 - 2.*(dReQ1n*dReQ2n*dReQ3n*dReQ6n-dReQ3n*dReQ6n*dImQ1n*dImQ2n
6663 - dReQ2n*dReQ6n*dImQ1n*dImQ3n-dReQ1n*dReQ6n*dImQ2n*dImQ3n
6664 + dReQ2n*dReQ3n*dImQ1n*dImQ6n+dReQ1n*dReQ3n*dImQ2n*dImQ6n
6665 + dReQ1n*dReQ2n*dImQ3n*dImQ6n-dImQ1n*dImQ2n*dImQ3n*dImQ6n)
6666 - (-pow(dImQ3n,2.)*dImQ1n*dImQ7n+dImQ1n*dImQ7n*pow(dReQ3n,2.)
6667 + 2.*dImQ3n*dImQ7n*dReQ3n*dReQ1n-2.*dImQ3n*dImQ1n*dReQ3n*dReQ7n
6668 - pow(dImQ3n,2.)*dReQ1n*dReQ7n+pow(dReQ3n,2.)*dReQ1n*dReQ7n)
6669 - ((pow(dReQ3n,2.)-pow(dImQ3n,2.))*(dReQ5n*dReQ1n-dImQ5n*dImQ1n)
6670 + 2.*dReQ3n*dImQ3n*(dReQ5n*dImQ1n+dImQ5n*dReQ1n))
6671 + 2.*(dReQ3n*dReQ2n*dReQ1n-dReQ3n*dImQ2n*dImQ1n+dImQ3n*dReQ2n*dImQ1n+dImQ3n*dImQ2n*dReQ1n)
6672 + (dReQ7n*dReQ6n*dReQ1n-dReQ7n*dImQ6n*dImQ1n+dImQ7n*dReQ6n*dImQ1n+dImQ7n*dImQ6n*dReQ1n)
6673 + 2.*(dReQ7n*dReQ3n*dReQ4n-dReQ7n*dImQ3n*dImQ4n+dImQ7n*dReQ3n*dImQ4n+dImQ7n*dImQ3n*dReQ4n)
6674 + 2.*(dReQ6n*(dReQ4n*dReQ2n-dImQ4n*dImQ2n)+dImQ6n*(dReQ4n*dImQ2n+dImQ4n*dReQ2n))
6675 + 3.*(dReQ6n*(dReQ5n*dReQ1n-dImQ5n*dImQ1n)+dImQ6n*(dReQ5n*dImQ1n+dImQ5n*dReQ1n))
6676 + 4.*(dReQ3n*dReQ2n*dReQ1n-dReQ3n*dImQ2n*dImQ1n+dImQ3n*dReQ2n*dImQ1n+dImQ3n*dImQ2n*dReQ1n)
6677 + 2.*(dReQ7n*dReQ6n*dReQ1n-dReQ7n*dImQ6n*dImQ1n+dImQ7n*dReQ6n*dImQ1n+dImQ7n*dImQ6n*dReQ1n)
6678 + 6.*(dReQ4n*dReQ3n*dReQ1n-dReQ4n*dImQ3n*dImQ1n+dImQ4n*dReQ3n*dImQ1n+dImQ4n*dImQ3n*dReQ1n)
6679 + 2.*(dReQ5n*dReQ3n*dReQ2n-dReQ5n*dImQ3n*dImQ2n+dImQ5n*dReQ3n*dImQ2n+dImQ5n*dImQ3n*dReQ2n)
6680 - (dMult-6.)*(pow(dReQ3n,2.)*dReQ6n+2.*dReQ3n*dImQ3n*dImQ6n-pow(dImQ3n,2.)*dReQ6n)
6681 - 4.*(pow(dReQ2n,2.)+pow(dImQ2n,2.))-2.*(pow(dReQ7n,2.)+pow(dImQ7n,2.))
6682 - 4.*(pow(dReQ4n,2.)+pow(dImQ4n,2.))
6683 - (pow(dReQ6n,2.)+pow(dImQ6n,2.))*(pow(dReQ1n,2.)+pow(dImQ1n,2.))
6684 - 2.*(pow(dReQ3n,2.)+pow(dImQ3n,2.))*(pow(dReQ1n,2.)+pow(dImQ1n,2.))
6685 + 2.*(dMult-6.)*(pow(dReQ1n,2.)+pow(dImQ1n,2.))
6686 - 2.*(pow(dReQ5n,2.)+pow(dImQ5n,2.))+(dMult-8.)*(pow(dReQ6n,2.)+pow(dImQ6n,2.))
6687 + 2.*(dMult-8.)*(pow(dReQ3n,2.)+pow(dImQ3n,2.))-2.*dMult*(dMult-12.))
6688 / (dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.));
6689 five6n2n3n3n2n = ((pow(dReQ2n,2.)+pow(dImQ2n,2.))
6690 * (pow(dReQ3n,2.)*dReQ6n-pow(dImQ3n,2.)*dReQ6n+2.*dReQ3n*dImQ3n*dImQ6n)
6691 - 2.*(dImQ2n*dImQ3n*dImQ5n*dImQ6n+dImQ5n*dImQ6n*dReQ2n*dReQ3n
6692 + dImQ3n*dImQ6n*dReQ2n*dReQ5n-dImQ2n*dImQ6n*dReQ3n*dReQ5n
6693 - dImQ3n*dImQ5n*dReQ2n*dReQ6n+dImQ2n*dImQ5n*dReQ3n*dReQ6n
6694 + dImQ2n*dImQ3n*dReQ5n*dReQ6n+dReQ2n*dReQ3n*dReQ5n*dReQ6n)
6695 - 2.*(dReQ1n*dReQ2n*dReQ3n*dReQ6n-dReQ3n*dReQ6n*dImQ1n*dImQ2n
6696 - dReQ2n*dReQ6n*dImQ1n*dImQ3n-dReQ1n*dReQ6n*dImQ2n*dImQ3n
6697 + dReQ2n*dReQ3n*dImQ1n*dImQ6n+dReQ1n*dReQ3n*dImQ2n*dImQ6n
6698 + dReQ1n*dReQ2n*dImQ3n*dImQ6n-dImQ1n*dImQ2n*dImQ3n*dImQ6n)
6699 - (-pow(dImQ3n,2.)*dImQ2n*dImQ8n+dImQ2n*dImQ8n*pow(dReQ3n,2.)
6700 + 2.*dImQ3n*dImQ8n*dReQ3n*dReQ2n-2.*dImQ3n*dImQ2n*dReQ3n*dReQ8n
6701 - pow(dImQ3n,2.)*dReQ2n*dReQ8n+pow(dReQ3n,2.)*dReQ2n*dReQ8n)
6702 - ((pow(dReQ3n,2.)-pow(dImQ3n,2.))*(dReQ4n*dReQ2n-dImQ4n*dImQ2n)
6703 + 2.*dReQ3n*dImQ3n*(dReQ4n*dImQ2n+dImQ4n*dReQ2n))
6704 + 2.*(dReQ3n*dReQ2n*dReQ1n-dReQ3n*dImQ2n*dImQ1n+dImQ3n*dReQ2n*dImQ1n+dImQ3n*dImQ2n*dReQ1n)
6705 + (dReQ8n*dReQ6n*dReQ2n-dReQ8n*dImQ6n*dImQ2n+dImQ8n*dReQ6n*dImQ2n+dImQ8n*dImQ6n*dReQ2n)
6706 + 2.*(dReQ8n*dReQ3n*dReQ5n-dReQ8n*dImQ3n*dImQ5n+dImQ8n*dReQ3n*dImQ5n+dImQ8n*dImQ3n*dReQ5n)
6707 + 2.*(dReQ6n*(dReQ5n*dReQ1n-dImQ5n*dImQ1n)+dImQ6n*(dReQ5n*dImQ1n+dImQ5n*dReQ1n))
6708 + 3.*(dReQ6n*(dReQ4n*dReQ2n-dImQ4n*dImQ2n)+dImQ6n*(dReQ4n*dImQ2n+dImQ4n*dReQ2n))
6709 + 4.*(dReQ3n*dReQ2n*dReQ1n-dReQ3n*dImQ2n*dImQ1n+dImQ3n*dReQ2n*dImQ1n+dImQ3n*dImQ2n*dReQ1n)
6710 + 2.*(dReQ8n*dReQ6n*dReQ2n-dReQ8n*dImQ6n*dImQ2n+dImQ8n*dReQ6n*dImQ2n+dImQ8n*dImQ6n*dReQ2n)
6711 + 6.*(dReQ5n*dReQ3n*dReQ2n-dReQ5n*dImQ3n*dImQ2n+dImQ5n*dReQ3n*dImQ2n+dImQ5n*dImQ3n*dReQ2n)
6712 + 2.*(dReQ4n*dReQ3n*dReQ1n-dReQ4n*dImQ3n*dImQ1n+dImQ4n*dReQ3n*dImQ1n+dImQ4n*dImQ3n*dReQ1n)
6713 - (dMult-6.)*(pow(dReQ3n,2.)*dReQ6n+2.*dReQ3n*dImQ3n*dImQ6n-pow(dImQ3n,2.)*dReQ6n)
6714 - 4.*(pow(dReQ1n,2.)+pow(dImQ1n,2.))-2.*(pow(dReQ8n,2.)+pow(dImQ8n,2.))
6715 - 4.*(pow(dReQ5n,2.)+pow(dImQ5n,2.))
6716 - (pow(dReQ6n,2.)+pow(dImQ6n,2.))*(pow(dReQ2n,2.)+pow(dImQ2n,2.))
6717 - 2.*(pow(dReQ3n,2.)+pow(dImQ3n,2.))*(pow(dReQ2n,2.)+pow(dImQ2n,2.))
6718 + 2.*(dMult-6.)*(pow(dReQ2n,2.)+pow(dImQ2n,2.))
6719 - 2.*(pow(dReQ4n,2.)+pow(dImQ4n,2.))+(dMult-8.)*(pow(dReQ6n,2.)+pow(dImQ6n,2.))
6720 + 2.*(dMult-8.)*(pow(dReQ3n,2.)+pow(dImQ3n,2.))-2.*dMult*(dMult-12.))
6721 / (dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.));
6723 five6n1n4n2n1n = (reQ6nQ1nQ4nstarQ2nstarQ1nstar
6724 - reQ6nQ1nQ4nstarQ3nstar
6725 - reQ6nQ1nQ5nstarQ2nstar
6726 - reQ6nQ3nstarQ2nstarQ1nstar
6727 - reQ7nQ4nstarQ2nstarQ1nstar
6728 - reQ5nQ1nQ4nstarQ2nstar
6729 - reQ6nQ4nstarQ1nstarQ1nstar
6730 + reQ2nQ1nstarQ1nstar
6731 + reQ7nQ6nstarQ1nstar
6732 + 3.*reQ6nQ5nstarQ1nstar
6733 + 2.*reQ7nQ6nstarQ1nstar
6734 + reQ6nQ3nstarQ3nstar
6735 + reQ7nQ4nstarQ3nstar
6736 + reQ6nQ5nstarQ1nstar
6737 + reQ2nQ1nstarQ1nstar
6738 + reQ7nQ5nstarQ2nstar
6739 + reQ5nQ3nstarQ2nstar
6740 - (dMult-6.)*reQ6nQ4nstarQ2nstar
6741 + 3.*reQ3nQ2nstarQ1nstar
6742 + reQ2nQ1nstarQ1nstar
6743 + 2.*reQ4nQ3nstarQ1nstar
6744 + 3.*reQ5nQ4nstarQ1nstar
6745 + reQ5nQ4nstarQ1nstar
6746 + reQ4nQ3nstarQ1nstar
6747 - (pow(dReQ1n,2.)+pow(dImQ1n,2.))*(pow(dReQ6n,2.)+pow(dImQ6n,2.))
6748 - (pow(dReQ1n,2.)+pow(dImQ1n,2.))*(pow(dReQ2n,2.)+pow(dImQ2n,2.))
6749 - (pow(dReQ1n,2.)+pow(dImQ1n,2.))*(pow(dReQ4n,2.)+pow(dImQ4n,2.))
6750 - 2.*(pow(dReQ7n,2.)+pow(dImQ7n,2.))
6751 - 2.*(pow(dReQ5n,2.)+pow(dImQ5n,2.))
6752 - 2.*(pow(dReQ3n,2.)+pow(dImQ3n,2.))
6753 - 2.*(pow(dReQ1n,2.)+pow(dImQ1n,2.))
6754 - 2.*(pow(dReQ5n,2.)+pow(dImQ5n,2.))
6755 - 2.*(pow(dReQ3n,2.)+pow(dImQ3n,2.))
6756 + (dMult-8.)*(pow(dReQ6n,2.)+pow(dImQ6n,2.))
6757 + (dMult-8.)*(pow(dReQ4n,2.)+pow(dImQ4n,2.))
6758 + (dMult-8.)*(pow(dReQ2n,2.)+pow(dImQ2n,2.))
6759 + 2.*(dMult-6.)*(pow(dReQ1n,2.)+pow(dImQ1n,2.))-2.*dMult*(dMult-12.))
6760 / (dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.));
6762 five6n3n4n3n2n = (reQ6nQ3nQ4nstarQ3nstarQ2nstar
6763 - reQ6nQ3nQ5nstarQ4nstar
6764 - reQ7nQ2nQ6nstarQ3nstar
6765 - reQ6nQ3nstarQ2nstarQ1nstar
6766 - reQ9nQ4nstarQ3nstarQ2nstar
6767 - reQ4nQ2nQ3nstarQ3nstar
6768 - reQ6nQ1nQ4nstarQ3nstar
6769 + reQ3nQ2nstarQ1nstar
6770 + reQ9nQ6nstarQ3nstar
6771 + 3.*reQ6nQ3nstarQ3nstar
6772 + 2.*reQ9nQ6nstarQ3nstar
6773 + reQ6nQ5nstarQ1nstar
6774 + reQ9nQ5nstarQ4nstar
6775 + reQ7nQ6nstarQ1nstar
6776 + reQ3nQ2nstarQ1nstar
6777 + reQ9nQ7nstarQ2nstar
6778 + reQ3nQ2nstarQ1nstar
6779 - (dMult-6.)*reQ6nQ4nstarQ2nstar
6780 + 3.*reQ5nQ3nstarQ2nstar
6781 + reQ3nQ2nstarQ1nstar
6782 + 2.*reQ4nQ3nstarQ1nstar
6783 + 3.*reQ7nQ4nstarQ3nstar
6784 + reQ4nQ3nstarQ1nstar
6785 + reQ4nQ3nstarQ1nstar
6786 - (pow(dReQ3n,2.)+pow(dImQ3n,2.))*(pow(dReQ6n,2.)+pow(dImQ6n,2.))
6787 - (pow(dReQ3n,2.)+pow(dImQ3n,2.))*(pow(dReQ2n,2.)+pow(dImQ2n,2.))
6788 - (pow(dReQ3n,2.)+pow(dImQ3n,2.))*(pow(dReQ4n,2.)+pow(dImQ4n,2.))
6789 - 2.*(pow(dReQ9n,2.)+pow(dImQ9n,2.))
6790 - 2.*(pow(dReQ3n,2.)+pow(dImQ3n,2.))
6791 - 2.*(pow(dReQ5n,2.)+pow(dImQ5n,2.))
6792 - 2.*(pow(dReQ1n,2.)+pow(dImQ1n,2.))
6793 - 2.*(pow(dReQ7n,2.)+pow(dImQ7n,2.))
6794 - 2.*(pow(dReQ1n,2.)+pow(dImQ1n,2.))
6795 + (dMult-8.)*(pow(dReQ6n,2.)+pow(dImQ6n,2.))
6796 + (dMult-8.)*(pow(dReQ4n,2.)+pow(dImQ4n,2.))
6797 + (dMult-8.)*(pow(dReQ2n,2.)+pow(dImQ2n,2.))
6798 + 2.*(dMult-6.)*(pow(dReQ3n,2.)+pow(dImQ3n,2.))-2.*dMult*(dMult-12.))
6799 / (dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.));
6800 five6n4n4n3n3n = ((pow(dReQ4n,2.)+pow(dImQ4n,2.))
6801 * (pow(dReQ3n,2.)*dReQ6n-pow(dImQ3n,2.)*dReQ6n+2.*dReQ3n*dImQ3n*dImQ6n)
6802 - ((dReQ10n*dReQ4n+dImQ10n*dImQ4n)*(pow(dReQ3n,2)-pow(dImQ3n,2))
6803 + 2.*dReQ3n*dImQ3n*(dImQ10n*dReQ4n-dReQ10n*dImQ4n))
6804 - ((dReQ4n*dReQ2n-dImQ4n*dImQ2n)*(dReQ3n*dReQ3n-dImQ3n*dImQ3n)
6805 + 2.*(dReQ4n*dImQ2n+dImQ4n*dReQ2n)*dReQ3n*dImQ3n)
6806 - 2.*(dImQ1n*dImQ3n*dImQ4n*dImQ6n+dImQ4n*dImQ6n*dReQ1n*dReQ3n
6807 + dImQ3n*dImQ6n*dReQ1n*dReQ4n-dImQ1n*dImQ6n*dReQ3n*dReQ4n
6808 - dImQ3n*dImQ4n*dReQ1n*dReQ6n+dImQ1n*dImQ4n*dReQ3n*dReQ6n
6809 + dImQ1n*dImQ3n*dReQ4n*dReQ6n+dReQ1n*dReQ3n*dReQ4n*dReQ6n)
6810 - 2.*(dImQ3n*dImQ4n*dImQ6n*dImQ7n+dImQ6n*dImQ7n*dReQ3n*dReQ4n
6811 + dImQ4n*dImQ7n*dReQ3n*dReQ6n-dImQ3n*dImQ7n*dReQ4n*dReQ6n
6812 - dImQ4n*dImQ6n*dReQ3n*dReQ7n+dImQ3n*dImQ6n*dReQ4n*dReQ7n
6813 + dImQ3n*dImQ4n*dReQ6n*dReQ7n+dReQ3n*dReQ4n*dReQ6n*dReQ7n)
6814 + 2.*(dReQ3n*dReQ2n*dReQ1n-dReQ3n*dImQ2n*dImQ1n+dImQ3n*dReQ2n*dImQ1n+dImQ3n*dImQ2n*dReQ1n)
6815 + 1.*(dReQ10n*dReQ6n*dReQ4n-dReQ10n*dImQ6n*dImQ4n+dImQ10n*dReQ6n*dImQ4n+dImQ10n*dImQ6n*dReQ4n)
6816 + 3.*(dReQ6n*dReQ4n*dReQ2n-dReQ6n*dImQ4n*dImQ2n+dImQ6n*dReQ4n*dImQ2n+dImQ6n*dImQ4n*dReQ2n)
6817 + 2.*(dReQ7n*dReQ6n*dReQ1n-dReQ7n*dImQ6n*dImQ1n+dImQ7n*dReQ6n*dImQ1n+dImQ7n*dImQ6n*dReQ1n)
6818 + 2.*(dReQ10n*dReQ7n*dReQ3n-dReQ10n*dImQ7n*dImQ3n+dImQ10n*dReQ7n*dImQ3n+dImQ10n*dImQ7n*dReQ3n)
6819 + 2.*(dReQ10n*dReQ6n*dReQ4n-dReQ10n*dImQ6n*dImQ4n+dImQ10n*dReQ6n*dImQ4n+dImQ10n*dImQ6n*dReQ4n)
6820 + 6.*(dReQ4n*(dReQ3n*dReQ1n-dImQ3n*dImQ1n)+dImQ4n*(dReQ3n*dImQ1n+dImQ3n*dReQ1n))
6821 + 6.*(dReQ7n*dReQ4n*dReQ3n-dReQ7n*dImQ4n*dImQ3n+dImQ7n*dReQ4n*dImQ3n+dImQ7n*dImQ4n*dReQ3n)
6822 - (dMult-6.)*(pow(dReQ3n,2.)*dReQ6n+2.*dReQ3n*dImQ3n*dImQ6n-pow(dImQ3n,2.)*dReQ6n)
6823 - (pow(dReQ6n,2.)+pow(dImQ6n,2.))*(pow(dReQ4n,2.)+pow(dImQ4n,2.))
6824 - 2.*(pow(dReQ3n,2.)+pow(dImQ3n,2.))*(pow(dReQ4n,2.)+pow(dImQ4n,2.))
6825 - 2.*(pow(dReQ10n,2.)+pow(dImQ10n,2.))-4.*(pow(dReQ7n,2.)+pow(dImQ7n,2.))
6826 - 2.*(pow(dReQ2n,2.)+pow(dImQ2n,2.))-4.*(pow(dReQ1n,2.)+pow(dImQ1n,2.))
6827 + (dMult-8.)*(pow(dReQ6n,2.)+pow(dImQ6n,2.))
6828 + 2.*(dMult-8.)*(pow(dReQ3n,2.)+pow(dImQ3n,2.))
6829 + 2.*(dMult-6.)*(pow(dReQ4n,2.)+pow(dImQ4n,2.))-2.*dMult*(dMult-12.))
6830 / (dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.));
6832 five6n2n5n2n1n = (reQ6nQ2nQ5nstarQ2nstarQ1nstar
6833 - reQ6nQ2nQ5nstarQ3nstar
6834 - reQ7nQ1nQ6nstarQ2nstar
6835 - reQ6nQ3nstarQ2nstarQ1nstar
6836 - reQ8nQ5nstarQ2nstarQ1nstar
6837 - reQ5nQ1nQ4nstarQ2nstar
6838 - reQ6nQ1nQ5nstarQ2nstar
6839 + reQ2nQ1nstarQ1nstar
6840 + reQ8nQ6nstarQ2nstar
6841 + 3.*reQ6nQ4nstarQ2nstar
6842 + 2.*reQ8nQ6nstarQ2nstar
6843 + reQ6nQ3nstarQ3nstar
6844 + reQ8nQ5nstarQ3nstar
6845 + reQ7nQ6nstarQ1nstar
6846 + reQ2nQ1nstarQ1nstar
6847 + reQ8nQ7nstarQ1nstar
6848 + reQ4nQ3nstarQ1nstar
6849 - (dMult-6.)*reQ6nQ5nstarQ1nstar
6850 + 3.*reQ3nQ2nstarQ1nstar
6851 + reQ2nQ1nstarQ1nstar
6852 + 2.*reQ5nQ3nstarQ2nstar
6853 + 3.*reQ7nQ5nstarQ2nstar
6854 + reQ5nQ4nstarQ1nstar
6855 + reQ5nQ3nstarQ2nstar
6856 - (pow(dReQ2n,2.)+pow(dImQ2n,2.))*(pow(dReQ6n,2.)+pow(dImQ6n,2.))
6857 - (pow(dReQ2n,2.)+pow(dImQ2n,2.))*(pow(dReQ1n,2.)+pow(dImQ1n,2.))
6858 - (pow(dReQ2n,2.)+pow(dImQ2n,2.))*(pow(dReQ5n,2.)+pow(dImQ5n,2.))
6859 - 2.*(pow(dReQ8n,2.)+pow(dImQ8n,2.))
6860 - 2.*(pow(dReQ4n,2.)+pow(dImQ4n,2.))
6861 - 2.*(pow(dReQ3n,2.)+pow(dImQ3n,2.))
6862 - 2.*(pow(dReQ1n,2.)+pow(dImQ1n,2.))
6863 - 2.*(pow(dReQ7n,2.)+pow(dImQ7n,2.))
6864 - 2.*(pow(dReQ3n,2.)+pow(dImQ3n,2.))
6865 + (dMult-8.)*(pow(dReQ6n,2.)+pow(dImQ6n,2.))
6866 + (dMult-8.)*(pow(dReQ5n,2.)+pow(dImQ5n,2.))
6867 + (dMult-8.)*(pow(dReQ1n,2.)+pow(dImQ1n,2.))
6868 + 2.*(dMult-6.)*(pow(dReQ2n,2.)+pow(dImQ2n,2.))-2.*dMult*(dMult-12.))
6869 / (dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.));
6871 five6n3n5n3n1n = (reQ6nQ3nQ5nstarQ3nstarQ1nstar
6872 - reQ6nQ3nQ5nstarQ4nstar
6873 - reQ8nQ1nQ6nstarQ3nstar
6874 - reQ6nQ3nstarQ2nstarQ1nstar
6875 - reQ9nQ5nstarQ3nstarQ1nstar
6876 - reQ5nQ1nQ3nstarQ3nstar
6877 - reQ6nQ2nQ5nstarQ3nstar
6878 + reQ3nQ2nstarQ1nstar
6879 + reQ9nQ6nstarQ3nstar
6880 + 3.*reQ6nQ3nstarQ3nstar
6881 + 2.*reQ9nQ6nstarQ3nstar
6882 + reQ6nQ4nstarQ2nstar
6883 + reQ9nQ5nstarQ4nstar
6884 + reQ8nQ6nstarQ2nstar
6885 + reQ3nQ2nstarQ1nstar
6886 + reQ9nQ8nstarQ1nstar
6887 + reQ3nQ2nstarQ1nstar
6888 - (dMult-6.)*reQ6nQ5nstarQ1nstar
6889 + 3.*reQ4nQ3nstarQ1nstar
6890 + reQ3nQ2nstarQ1nstar
6891 + 2.*reQ5nQ3nstarQ2nstar
6892 + 3.*reQ8nQ5nstarQ3nstar
6893 + reQ5nQ3nstarQ2nstar
6894 + reQ5nQ3nstarQ2nstar
6895 - (pow(dReQ3n,2.)+pow(dImQ3n,2.))*(pow(dReQ6n,2.)+pow(dImQ6n,2.))
6896 - (pow(dReQ3n,2.)+pow(dImQ3n,2.))*(pow(dReQ1n,2.)+pow(dImQ1n,2.))
6897 - (pow(dReQ3n,2.)+pow(dImQ3n,2.))*(pow(dReQ5n,2.)+pow(dImQ5n,2.))
6898 - 2.*(pow(dReQ9n,2.)+pow(dImQ9n,2.))
6899 - 2.*(pow(dReQ3n,2.)+pow(dImQ3n,2.))
6900 - 2.*(pow(dReQ4n,2.)+pow(dImQ4n,2.))
6901 - 2.*(pow(dReQ2n,2.)+pow(dImQ2n,2.))
6902 - 2.*(pow(dReQ8n,2.)+pow(dImQ8n,2.))
6903 - 2.*(pow(dReQ2n,2.)+pow(dImQ2n,2.))
6904 + (dMult-8.)*(pow(dReQ6n,2.)+pow(dImQ6n,2.))
6905 + (dMult-8.)*(pow(dReQ5n,2.)+pow(dImQ5n,2.))
6906 + (dMult-8.)*(pow(dReQ1n,2.)+pow(dImQ1n,2.))
6907 + 2.*(dMult-6.)*(pow(dReQ3n,2.)+pow(dImQ3n,2.))-2.*dMult*(dMult-12.))
6908 / (dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.));
6910 five6n4n5n4n1n = (reQ6nQ4nQ5nstarQ4nstarQ1nstar
6911 - reQ6nQ4nQ5nstarQ5nstar
6912 - reQ9nQ1nQ6nstarQ4nstar
6913 - reQ6nQ4nstarQ1nstarQ1nstar
6914 - reQ10nQ5nstarQ4nstarQ1nstar
6915 - reQ5nQ1nQ4nstarQ2nstar
6916 - reQ6nQ3nQ5nstarQ4nstar
6917 + reQ4nQ3nstarQ1nstar
6918 + reQ10nQ6nstarQ4nstar
6919 + 3.*reQ6nQ4nstarQ2nstar
6920 + 2.*reQ10nQ6nstarQ4nstar
6921 + reQ6nQ5nstarQ1nstar
6922 + reQ10nQ5nstarQ5nstar
6923 + reQ9nQ6nstarQ3nstar
6924 + reQ4nQ3nstarQ1nstar
6925 + reQ10nQ9nstarQ1nstar
6926 + reQ2nQ1nstarQ1nstar
6927 - (dMult-6.)*reQ6nQ5nstarQ1nstar
6928 + 3.*reQ5nQ4nstarQ1nstar
6929 + reQ4nQ3nstarQ1nstar
6930 + 2.*reQ5nQ4nstarQ1nstar
6931 + 3.*reQ9nQ5nstarQ4nstar
6932 + reQ5nQ3nstarQ2nstar
6933 + reQ5nQ4nstarQ1nstar
6934 - (pow(dReQ4n,2.)+pow(dImQ4n,2.))*(pow(dReQ6n,2.)+pow(dImQ6n,2.))
6935 - (pow(dReQ4n,2.)+pow(dImQ4n,2.))*(pow(dReQ1n,2.)+pow(dImQ1n,2.))
6936 - (pow(dReQ4n,2.)+pow(dImQ4n,2.))*(pow(dReQ5n,2.)+pow(dImQ5n,2.))
6937 - 2.*(pow(dReQ10n,2.)+pow(dImQ10n,2.))
6938 - 2.*(pow(dReQ2n,2.)+pow(dImQ2n,2.))
6939 - 2.*(pow(dReQ5n,2.)+pow(dImQ5n,2.))
6940 - 2.*(pow(dReQ3n,2.)+pow(dImQ3n,2.))
6941 - 2.*(pow(dReQ9n,2.)+pow(dImQ9n,2.))
6942 - 2.*(pow(dReQ1n,2.)+pow(dImQ1n,2.))
6943 + (dMult-8.)*(pow(dReQ6n,2.)+pow(dImQ6n,2.))
6944 + (dMult-8.)*(pow(dReQ5n,2.)+pow(dImQ5n,2.))
6945 + (dMult-8.)*(pow(dReQ1n,2.)+pow(dImQ1n,2.))
6946 + 2.*(dMult-6.)*(pow(dReQ4n,2.)+pow(dImQ4n,2.))-2.*dMult*(dMult-12.))
6947 / (dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.));
6948 five6n5n5n3n3n = ((pow(dReQ5n,2.)+pow(dImQ5n,2.))
6949 * (pow(dReQ3n,2.)*dReQ6n-pow(dImQ3n,2.)*dReQ6n+2.*dReQ3n*dImQ3n*dImQ6n)
6950 - ((dReQ11n*dReQ5n+dImQ11n*dImQ5n)*(pow(dReQ3n,2)-pow(dImQ3n,2))
6951 + 2.*dReQ3n*dImQ3n*(dImQ11n*dReQ5n-dReQ11n*dImQ5n))
6952 - (dImQ1n*pow(dImQ3n,2.)*dImQ5n+2.*dImQ3n*dImQ5n*dReQ1n*dReQ3n
6953 - dImQ1n*dImQ5n*pow(dReQ3n,2.)-pow(dImQ3n,2.)*dReQ1n*dReQ5n
6954 + 2.*dImQ1n*dImQ3n*dReQ3n*dReQ5n+dReQ1n*pow(dReQ3n,2.)*dReQ5n)
6955 - 2.*(dImQ2n*dImQ3n*dImQ5n*dImQ6n+dImQ5n*dImQ6n*dReQ2n*dReQ3n
6956 + dImQ3n*dImQ6n*dReQ2n*dReQ5n-dImQ2n*dImQ6n*dReQ3n*dReQ5n
6957 - dImQ3n*dImQ5n*dReQ2n*dReQ6n+dImQ2n*dImQ5n*dReQ3n*dReQ6n
6958 + dImQ2n*dImQ3n*dReQ5n*dReQ6n+dReQ2n*dReQ3n*dReQ5n*dReQ6n)
6959 - 2.*(dImQ3n*dImQ5n*dImQ6n*dImQ8n+dImQ6n*dImQ8n*dReQ3n*dReQ5n
6960 + dImQ5n*dImQ8n*dReQ3n*dReQ6n-dImQ3n*dImQ8n*dReQ5n*dReQ6n
6961 - dImQ5n*dImQ6n*dReQ3n*dReQ8n+dImQ3n*dImQ6n*dReQ5n*dReQ8n
6962 + dImQ3n*dImQ5n*dReQ6n*dReQ8n+dReQ3n*dReQ5n*dReQ6n*dReQ8n)
6963 + 2.*(dReQ3n*dReQ2n*dReQ1n-dReQ3n*dImQ2n*dImQ1n+dImQ3n*dReQ2n*dImQ1n+dImQ3n*dImQ2n*dReQ1n)
6964 + 1.*(dReQ11n*dReQ6n*dReQ5n-dReQ11n*dImQ6n*dImQ5n+dImQ11n*dReQ6n*dImQ5n+dImQ11n*dImQ6n*dReQ5n)
6965 + 3.*(dReQ6n*dReQ5n*dReQ1n-dReQ6n*dImQ5n*dImQ1n+dImQ6n*dReQ5n*dImQ1n+dImQ6n*dImQ5n*dReQ1n)
6966 + 2.*(dReQ8n*dReQ6n*dReQ2n-dReQ8n*dImQ6n*dImQ2n+dImQ8n*dReQ6n*dImQ2n+dImQ8n*dImQ6n*dReQ2n)
6967 + 2.*(dReQ11n*dReQ8n*dReQ3n-dReQ11n*dImQ8n*dImQ3n+dImQ11n*dReQ8n*dImQ3n+dImQ11n*dImQ8n*dReQ3n)
6968 + 2.*(dReQ11n*dReQ6n*dReQ5n-dReQ11n*dImQ6n*dImQ5n+dImQ11n*dReQ6n*dImQ5n+dImQ11n*dImQ6n*dReQ5n)
6969 + 6.*(dReQ5n*dReQ2n*dReQ3n-dReQ5n*dImQ2n*dImQ3n+dImQ5n*dReQ2n*dImQ3n+dImQ5n*dImQ2n*dReQ3n)
6970 + 6.*(dReQ8n*dReQ5n*dReQ3n-dReQ8n*dImQ5n*dImQ3n+dImQ8n*dReQ5n*dImQ3n+dImQ8n*dImQ5n*dReQ3n)
6971 - (dMult-6.)*(pow(dReQ3n,2.)*dReQ6n+2.*dReQ3n*dImQ3n*dImQ6n-pow(dImQ3n,2.)*dReQ6n)
6972 - (pow(dReQ6n,2.)+pow(dImQ6n,2.))*(pow(dReQ5n,2.)+pow(dImQ5n,2.))
6973 - 2.*(pow(dReQ3n,2.)+pow(dImQ3n,2.))*(pow(dReQ5n,2.)+pow(dImQ5n,2.))
6974 - 2.*(pow(dReQ11n,2.)+pow(dImQ11n,2.))-4.*(pow(dReQ8n,2.)+pow(dImQ8n,2.))
6975 - 2.*(pow(dReQ1n,2.)+pow(dImQ1n,2.))-4.*(pow(dReQ2n,2.)+pow(dImQ2n,2.))
6976 + (dMult-8.)*(pow(dReQ6n,2.)+pow(dImQ6n,2.))
6977 + 2.*(dMult-8.)*(pow(dReQ3n,2.)+pow(dImQ3n,2.))
6978 + 2.*(dMult-6.)*(pow(dReQ5n,2.)+pow(dImQ5n,2.))-2.*dMult*(dMult-12.))
6979 / (dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.));
6981 five6n2n6n1n1n = ((pow(dReQ6n,2.)+pow(dImQ6n,2.))
6982 * (pow(dReQ1n,2.)*dReQ2n-pow(dImQ1n,2.)*dReQ2n+2.*dReQ1n*dImQ1n*dImQ2n)
6983 - reQ8nQ6nstarQ1nstarQ1nstar
6984 - reQ6nQ4nstarQ1nstarQ1nstar
6985 - 2.*reQ6nQ1nQ5nstarQ2nstar
6986 - 2.*reQ7nQ1nQ6nstarQ2nstar
6987 + 2.*reQ5nQ4nstarQ1nstar
6988 + reQ8nQ6nstarQ2nstar
6989 + 3.*reQ6nQ4nstarQ2nstar
6990 + 2.*reQ7nQ5nstarQ2nstar
6991 + 2.*reQ8nQ7nstarQ1nstar
6992 + 2.*reQ8nQ6nstarQ2nstar
6993 + 6.*reQ6nQ5nstarQ1nstar
6994 + 6.*reQ7nQ6nstarQ1nstar
6995 - (dMult-6.)*(pow(dReQ1n,2.)*dReQ2n+2.*dReQ1n*dImQ1n*dImQ2n-pow(dImQ1n,2.)*dReQ2n)
6996 - (pow(dReQ2n,2.)+pow(dImQ2n,2.))*(pow(dReQ6n,2.)+pow(dImQ6n,2.))
6997 - 2.*(pow(dReQ1n,2.)+pow(dImQ1n,2.))*(pow(dReQ6n,2.)+pow(dImQ6n,2.))
6998 - 2.*(pow(dReQ8n,2.)+pow(dImQ8n,2.))-4.*(pow(dReQ7n,2.)+pow(dImQ7n,2.))
6999 - 2.*(pow(dReQ4n,2.)+pow(dImQ4n,2.))-4.*(pow(dReQ5n,2.)+pow(dImQ5n,2.))
7000 + (dMult-8.)*(pow(dReQ2n,2.)+pow(dImQ2n,2.))
7001 + 2.*(dMult-8.)*(pow(dReQ1n,2.)+pow(dImQ1n,2.))
7002 + 2.*(dMult-6.)*(pow(dReQ6n,2.)+pow(dImQ6n,2.))-2.*dMult*(dMult-12.))
7003 / (dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.));
7004 five6n3n6n2n1n = (reQ6nQ3nQ6nstarQ2nstarQ1nstar
7005 - reQ7nQ2nQ6nstarQ3nstar
7006 - reQ8nQ1nQ6nstarQ3nstar
7007 - reQ6nQ1nQ4nstarQ3nstar
7008 - reQ9nQ6nstarQ2nstarQ1nstar
7009 - reQ6nQ3nstarQ2nstarQ1nstar
7010 - reQ6nQ2nQ5nstarQ3nstar
7011 + reQ6nQ5nstarQ1nstar
7012 + reQ9nQ6nstarQ3nstar
7013 + 3.*reQ6nQ3nstarQ3nstar
7014 + 2.*reQ9nQ6nstarQ3nstar
7015 + reQ7nQ4nstarQ3nstar
7016 + reQ9nQ7nstarQ2nstar
7017 + reQ8nQ5nstarQ3nstar
7018 + reQ6nQ5nstarQ1nstar
7019 + reQ9nQ8nstarQ1nstar
7020 + reQ4nQ3nstarQ1nstar
7021 - (dMult-6.)*reQ3nQ2nstarQ1nstar
7022 + 3.*reQ7nQ6nstarQ1nstar
7023 + reQ6nQ5nstarQ1nstar
7024 + 2.*reQ6nQ4nstarQ2nstar
7025 + 3.*reQ8nQ6nstarQ2nstar
7026 + reQ5nQ3nstarQ2nstar
7027 + reQ6nQ4nstarQ2nstar
7028 - (pow(dReQ6n,2.)+pow(dImQ6n,2.))*(pow(dReQ3n,2.)+pow(dImQ3n,2.))
7029 - (pow(dReQ6n,2.)+pow(dImQ6n,2.))*(pow(dReQ1n,2.)+pow(dImQ1n,2.))
7030 - (pow(dReQ6n,2.)+pow(dImQ6n,2.))*(pow(dReQ2n,2.)+pow(dImQ2n,2.))
7031 - 2.*(pow(dReQ9n,2.)+pow(dImQ9n,2.))
7032 - 2.*(pow(dReQ3n,2.)+pow(dImQ3n,2.))
7033 - 2.*(pow(dReQ7n,2.)+pow(dImQ7n,2.))
7034 - 2.*(pow(dReQ5n,2.)+pow(dImQ5n,2.))
7035 - 2.*(pow(dReQ8n,2.)+pow(dImQ8n,2.))
7036 - 2.*(pow(dReQ4n,2.)+pow(dImQ4n,2.))
7037 + (dMult-8.)*(pow(dReQ3n,2.)+pow(dImQ3n,2.))
7038 + (dMult-8.)*(pow(dReQ2n,2.)+pow(dImQ2n,2.))
7039 + (dMult-8.)*(pow(dReQ1n,2.)+pow(dImQ1n,2.))
7040 + 2.*(dMult-6.)*(pow(dReQ6n,2.)+pow(dImQ6n,2.))-2.*dMult*(dMult-12.))
7041 / (dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.));
7042 five6n4n6n2n2n = (-(pow(dImQ6n,2.)+pow(dReQ6n,2.))
7043 * (-2.*dImQ2n*dImQ4n*dReQ2n+pow(dImQ2n,2.)*dReQ4n-pow(dReQ2n,2.)*dReQ4n)
7044 - (-pow(dImQ2n,2.)*dImQ6n*dImQ10n+dImQ6n*dImQ10n*pow(dReQ2n,2.)
7045 + 2.*dImQ2n*dImQ10n*dReQ2n*dReQ6n-2.*dImQ2n*dImQ6n*dReQ2n*dReQ10n
7046 - pow(dImQ2n,2.)*dReQ6n*dReQ10n+pow(dReQ2n,2.)*dReQ6n*dReQ10n)
7047 - 2.*(dImQ2n*dImQ4n*dImQ6n*dImQ8n+dImQ6n*dImQ8n*dReQ2n*dReQ4n
7048 + dImQ4n*dImQ8n*dReQ2n*dReQ6n-dImQ2n*dImQ8n*dReQ4n*dReQ6n
7049 - dImQ4n*dImQ6n*dReQ2n*dReQ8n+dImQ2n*dImQ6n*dReQ4n*dReQ8n
7050 + dImQ2n*dImQ4n*dReQ6n*dReQ8n+dReQ2n*dReQ4n*dReQ6n*dReQ8n)
7051 - (dReQ6n*pow(dReQ2n,3.)-3.*dReQ2n*dReQ6n*pow(dImQ2n,2.)
7052 + 3.*dImQ2n*dImQ6n*pow(dReQ2n,2.)-dImQ6n*pow(dImQ2n,3.))
7053 - 2.*((pow(dReQ4n,2.)-pow(dImQ4n,2.))*(dReQ6n*dReQ2n-dImQ6n*dImQ2n)
7054 + 2.*dReQ4n*dImQ4n*(dReQ6n*dImQ2n+dImQ6n*dReQ2n))
7055 + 2.*(dReQ10n*dReQ8n*dReQ2n-dReQ10n*dImQ8n*dImQ2n+dImQ10n*dReQ8n*dImQ2n+dImQ10n*dImQ8n*dReQ2n)
7056 + 3.*(dReQ10n*dReQ4n*dReQ6n-dReQ10n*dImQ4n*dImQ6n+dImQ10n*dReQ4n*dImQ6n+dImQ10n*dImQ4n*dReQ6n)
7057 + 6.*(dReQ8n*(dReQ6n*dReQ2n-dImQ6n*dImQ2n)+dImQ8n*(dReQ6n*dImQ2n+dImQ6n*dReQ2n))
7058 + 2.*(pow(dReQ4n,2.)*dReQ8n+2.*dReQ4n*dImQ4n*dImQ8n-pow(dImQ4n,2.)*dReQ8n)
7059 + 9.*(dReQ6n*dReQ4n*dReQ2n-dReQ6n*dImQ4n*dImQ2n+dImQ6n*dReQ4n*dImQ2n+dImQ6n*dImQ4n*dReQ2n)
7060 - (dMult-8.)*(pow(dReQ2n,2.)*dReQ4n+2.*dReQ2n*dImQ2n*dImQ4n-pow(dImQ2n,2.)*dReQ4n)
7061 - (pow(dReQ6n,2.)+pow(dImQ6n,2.))*(pow(dReQ4n,2.)+pow(dImQ4n,2.))
7062 - 2.*(pow(dReQ6n,2.)+pow(dImQ6n,2.))*(pow(dReQ2n,2.)+pow(dImQ2n,2.))
7063 - 2.*(pow(dReQ10n,2.)+pow(dImQ10n,2.))-4.*(pow(dReQ8n,2.)+pow(dImQ8n,2.))
7064 + 2.*(dMult-6.)*(pow(dReQ6n,2.)+pow(dImQ6n,2.))+(dMult-12.)*(pow(dReQ4n,2.)+pow(dImQ4n,2.))
7065 + 2.*(dMult-9.)*(pow(dReQ2n,2.)+pow(dImQ2n,2.))-2.*dMult*(dMult-12.))
7066 / (dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.));
7068 five6n4n6n3n1n = (reQ6nQ4nQ6nstarQ3nstarQ1nstar
7069 - reQ7nQ3nQ6nstarQ4nstar
7070 - reQ9nQ1nQ6nstarQ4nstar
7071 - reQ6nQ1nQ4nstarQ3nstar
7072 - reQ10nQ6nstarQ3nstarQ1nstar
7073 - reQ6nQ3nstarQ2nstarQ1nstar
7074 - reQ6nQ3nQ5nstarQ4nstar
7075 + reQ6nQ5nstarQ1nstar
7076 + reQ10nQ6nstarQ4nstar
7077 + 3.*reQ6nQ4nstarQ2nstar
7078 + 2.*reQ10nQ6nstarQ4nstar
7079 + reQ7nQ4nstarQ3nstar
7080 + reQ10nQ7nstarQ3nstar
7081 + reQ9nQ5nstarQ4nstar
7082 + reQ6nQ5nstarQ1nstar
7083 + reQ10nQ9nstarQ1nstar
7084 + reQ3nQ2nstarQ1nstar
7085 - (dMult-6.)*reQ4nQ3nstarQ1nstar
7086 + 3.*reQ7nQ6nstarQ1nstar
7087 + reQ6nQ5nstarQ1nstar
7088 + 2.*reQ6nQ3nstarQ3nstar
7089 + 3.*reQ9nQ6nstarQ3nstar
7090 + reQ5nQ3nstarQ2nstar
7091 + reQ6nQ3nstarQ3nstar
7092 - (pow(dReQ6n,2.)+pow(dImQ6n,2.))*(pow(dReQ4n,2.)+pow(dImQ4n,2.))
7093 - (pow(dReQ6n,2.)+pow(dImQ6n,2.))*(pow(dReQ1n,2.)+pow(dImQ1n,2.))
7094 - (pow(dReQ6n,2.)+pow(dImQ6n,2.))*(pow(dReQ3n,2.)+pow(dImQ3n,2.))
7095 - 2.*(pow(dReQ10n,2.)+pow(dImQ10n,2.))
7096 - 2.*(pow(dReQ2n,2.)+pow(dImQ2n,2.))
7097 - 2.*(pow(dReQ7n,2.)+pow(dImQ7n,2.))
7098 - 2.*(pow(dReQ5n,2.)+pow(dImQ5n,2.))
7099 - 2.*(pow(dReQ9n,2.)+pow(dImQ9n,2.))
7100 - 2.*(pow(dReQ3n,2.)+pow(dImQ3n,2.))
7101 + (dMult-8.)*(pow(dReQ4n,2.)+pow(dImQ4n,2.))
7102 + (dMult-8.)*(pow(dReQ3n,2.)+pow(dImQ3n,2.))
7103 + (dMult-8.)*(pow(dReQ1n,2.)+pow(dImQ1n,2.))
7104 + 2.*(dMult-6.)*(pow(dReQ6n,2.)+pow(dImQ6n,2.))-2.*dMult*(dMult-12.))
7105 / (dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.));
7107 five6n5n5n4n2n = (reQ6nQ5nQ5nstarQ4nstarQ2nstar
7108 - reQ7nQ4nQ6nstarQ5nstar
7109 - reQ9nQ2nQ6nstarQ5nstar
7110 - reQ6nQ1nQ5nstarQ2nstar
7111 - reQ11nQ5nstarQ4nstarQ2nstar
7112 - reQ5nQ1nQ4nstarQ2nstar
7113 - reQ6nQ3nQ5nstarQ4nstar
7114 + reQ5nQ3nstarQ2nstar
7115 + reQ11nQ6nstarQ5nstar
7116 + 3.*reQ6nQ5nstarQ1nstar
7117 + 2.*reQ11nQ6nstarQ5nstar
7118 + reQ7nQ6nstarQ1nstar
7119 + reQ11nQ7nstarQ4nstar
7120 + reQ9nQ6nstarQ3nstar
7121 + reQ5nQ3nstarQ2nstar
7122 + reQ11nQ9nstarQ2nstar
7123 + reQ2nQ1nstarQ1nstar
7124 - (dMult-6.)*reQ6nQ4nstarQ2nstar
7125 + 3.*reQ7nQ5nstarQ2nstar
7126 + reQ5nQ3nstarQ2nstar
7127 + 2.*reQ5nQ4nstarQ1nstar
7128 + 3.*reQ9nQ5nstarQ4nstar
7129 + reQ4nQ3nstarQ1nstar
7130 + reQ5nQ4nstarQ1nstar
7131 - (pow(dReQ5n,2.)+pow(dImQ5n,2.))*(pow(dReQ6n,2.)+pow(dImQ6n,2.))
7132 - (pow(dReQ5n,2.)+pow(dImQ5n,2.))*(pow(dReQ2n,2.)+pow(dImQ2n,2.))
7133 - (pow(dReQ5n,2.)+pow(dImQ5n,2.))*(pow(dReQ4n,2.)+pow(dImQ4n,2.))
7134 - 2.*(pow(dReQ11n,2.)+pow(dImQ11n,2.))
7135 - 2.*(pow(dReQ1n,2.)+pow(dImQ1n,2.))
7136 - 2.*(pow(dReQ7n,2.)+pow(dImQ7n,2.))
7137 - 2.*(pow(dReQ3n,2.)+pow(dImQ3n,2.))
7138 - 2.*(pow(dReQ9n,2.)+pow(dImQ9n,2.))
7139 - 2.*(pow(dReQ1n,2.)+pow(dImQ1n,2.))
7140 + (dMult-8.)*(pow(dReQ6n,2.)+pow(dImQ6n,2.))
7141 + (dMult-8.)*(pow(dReQ4n,2.)+pow(dImQ4n,2.))
7142 + (dMult-8.)*(pow(dReQ2n,2.)+pow(dImQ2n,2.))
7143 + 2.*(dMult-6.)*(pow(dReQ5n,2.)+pow(dImQ5n,2.))-2.*dMult*(dMult-12.))
7144 / (dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.));
7146 five6n5n6n3n2n = (reQ6nQ5nQ6nstarQ3nstarQ2nstar
7147 - reQ8nQ3nQ6nstarQ5nstar
7148 - reQ9nQ2nQ6nstarQ5nstar
7149 - reQ6nQ2nQ5nstarQ3nstar
7150 - reQ11nQ6nstarQ3nstarQ2nstar
7151 - reQ6nQ3nstarQ2nstarQ1nstar
7152 - reQ6nQ3nQ5nstarQ4nstar
7153 + reQ6nQ4nstarQ2nstar
7154 + reQ11nQ6nstarQ5nstar
7155 + 3.*reQ6nQ5nstarQ1nstar
7156 + 2.*reQ11nQ6nstarQ5nstar
7157 + reQ8nQ5nstarQ3nstar
7158 + reQ11nQ8nstarQ3nstar
7159 + reQ9nQ5nstarQ4nstar
7160 + reQ6nQ4nstarQ2nstar
7161 + reQ11nQ9nstarQ2nstar
7162 + reQ3nQ2nstarQ1nstar
7163 - (dMult-6.)*reQ5nQ3nstarQ2nstar
7164 + 3.*reQ8nQ6nstarQ2nstar
7165 + reQ6nQ4nstarQ2nstar
7166 + 2.*reQ6nQ3nstarQ3nstar
7167 + 3.*reQ9nQ6nstarQ3nstar
7168 + reQ4nQ3nstarQ1nstar
7169 + reQ6nQ3nstarQ3nstar
7170 - (pow(dReQ6n,2.)+pow(dImQ6n,2.))*(pow(dReQ5n,2.)+pow(dImQ5n,2.))
7171 - (pow(dReQ6n,2.)+pow(dImQ6n,2.))*(pow(dReQ2n,2.)+pow(dImQ2n,2.))
7172 - (pow(dReQ6n,2.)+pow(dImQ6n,2.))*(pow(dReQ3n,2.)+pow(dImQ3n,2.))
7173 - 2.*(pow(dReQ11n,2.)+pow(dImQ11n,2.))
7174 - 2.*(pow(dReQ1n,2.)+pow(dImQ1n,2.))
7175 - 2.*(pow(dReQ8n,2.)+pow(dImQ8n,2.))
7176 - 2.*(pow(dReQ4n,2.)+pow(dImQ4n,2.))
7177 - 2.*(pow(dReQ9n,2.)+pow(dImQ9n,2.))
7178 - 2.*(pow(dReQ3n,2.)+pow(dImQ3n,2.))
7179 + (dMult-8.)*(pow(dReQ5n,2.)+pow(dImQ5n,2.))
7180 + (dMult-8.)*(pow(dReQ3n,2.)+pow(dImQ3n,2.))
7181 + (dMult-8.)*(pow(dReQ2n,2.)+pow(dImQ2n,2.))
7182 + 2.*(dMult-6.)*(pow(dReQ6n,2.)+pow(dImQ6n,2.))-2.*dMult*(dMult-12.))
7183 / (dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.));
7185 five6n5n6n4n1n = (reQ6nQ5nQ6nstarQ4nstarQ1nstar
7186 - reQ7nQ4nQ6nstarQ5nstar
7187 - reQ10nQ1nQ6nstarQ5nstar
7188 - reQ6nQ1nQ5nstarQ2nstar
7189 - reQ11nQ6nstarQ4nstarQ1nstar
7190 - reQ6nQ4nstarQ1nstarQ1nstar
7191 - reQ6nQ4nQ5nstarQ5nstar
7192 + reQ6nQ5nstarQ1nstar
7193 + reQ11nQ6nstarQ5nstar
7194 + 3.*reQ6nQ5nstarQ1nstar
7195 + 2.*reQ11nQ6nstarQ5nstar
7196 + reQ7nQ5nstarQ2nstar
7197 + reQ11nQ7nstarQ4nstar
7198 + reQ10nQ5nstarQ5nstar
7199 + reQ6nQ5nstarQ1nstar
7200 + reQ11nQ10nstarQ1nstar
7201 + reQ2nQ1nstarQ1nstar
7202 - (dMult-6.)*reQ5nQ4nstarQ1nstar
7203 + 3.*reQ7nQ6nstarQ1nstar
7204 + reQ6nQ5nstarQ1nstar
7205 + 2.*reQ6nQ4nstarQ2nstar
7206 + 3.*reQ10nQ6nstarQ4nstar
7207 + reQ5nQ4nstarQ1nstar
7208 + reQ6nQ4nstarQ2nstar
7209 - (pow(dReQ6n,2.)+pow(dImQ6n,2.))*(pow(dReQ5n,2.)+pow(dImQ5n,2.))
7210 - (pow(dReQ6n,2.)+pow(dImQ6n,2.))*(pow(dReQ1n,2.)+pow(dImQ1n,2.))
7211 - (pow(dReQ6n,2.)+pow(dImQ6n,2.))*(pow(dReQ4n,2.)+pow(dImQ4n,2.))
7212 - 2.*(pow(dReQ11n,2.)+pow(dImQ11n,2.))
7213 - 2.*(pow(dReQ1n,2.)+pow(dImQ1n,2.))
7214 - 2.*(pow(dReQ7n,2.)+pow(dImQ7n,2.))
7215 - 2.*(pow(dReQ5n,2.)+pow(dImQ5n,2.))
7216 - 2.*(pow(dReQ10n,2.)+pow(dImQ10n,2.))
7217 - 2.*(pow(dReQ2n,2.)+pow(dImQ2n,2.))
7218 + (dMult-8.)*(pow(dReQ5n,2.)+pow(dImQ5n,2.))
7219 + (dMult-8.)*(pow(dReQ4n,2.)+pow(dImQ4n,2.))
7220 + (dMult-8.)*(pow(dReQ1n,2.)+pow(dImQ1n,2.))
7221 + 2.*(dMult-6.)*(pow(dReQ6n,2.)+pow(dImQ6n,2.))-2.*dMult*(dMult-12.))
7222 / (dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.));
7223 // f2) Two distinct harmonics (9):
7224 five2n1n1n1n1n = ((dReQ2n*dReQ1n-dImQ2n*dImQ1n)*(pow(dReQ1n,3)-3.*dReQ1n*pow(dImQ1n,2))
7225 + (dReQ2n*dImQ1n+dReQ1n*dImQ2n)*(3.*dImQ1n*pow(dReQ1n,2)-pow(dImQ1n,3))
7226 - (dReQ3n*pow(dReQ1n,3)-3.*dReQ1n*dReQ3n*pow(dImQ1n,2)
7227 + 3.*dImQ1n*dImQ3n*pow(dReQ1n,2)-dImQ3n*pow(dImQ1n,3))
7228 + 5.*(dReQ3n*dReQ2n*dReQ1n-dReQ3n*dImQ2n*dImQ1n+dImQ3n*dReQ2n*dImQ1n+dImQ3n*dImQ2n*dReQ1n)
7229 - 3.*(dMult-5.)*(pow(dReQ1n,2.)*dReQ2n+2.*dReQ1n*dImQ1n*dImQ2n-pow(dImQ1n,2.)*dReQ2n)
7230 - 2.*(pow(dReQ3n,2.)+pow(dImQ3n,2.))
7231 - 3.*(pow(dReQ1n,2.)+pow(dImQ1n,2.))*(pow(dReQ2n,2.)+pow(dImQ2n,2.))
7232 + 3.*(dMult-4.)*(pow(dReQ2n,2.)+pow(dImQ2n,2.))
7233 - 3.*pow((pow(dReQ1n,2.)+pow(dImQ1n,2.)),2.)
7234 + 6.*(2.*dMult-5.)*(pow(dReQ1n,2.)+pow(dImQ1n,2.))-6.*dMult*(dMult-4.))
7235 / (dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.));
7236 five2n2n2n1n1n = ((pow(dReQ2n,2.)+pow(dImQ2n,2.))*(dReQ2n*(pow(dReQ1n,2.)-pow(dImQ1n,2.))+2.*dImQ2n*dReQ1n*dImQ1n)
7237 - ((dReQ4n*dReQ2n+dImQ4n*dImQ2n)*(pow(dReQ1n,2)-pow(dImQ1n,2))
7238 + 2.*dReQ1n*dImQ1n*(dImQ4n*dReQ2n-dReQ4n*dImQ2n))
7239 - 2.*((pow(dReQ2n,2.)-pow(dImQ2n,2.))*(dReQ3n*dReQ1n-dImQ3n*dImQ1n)
7240 + 2.*dReQ2n*dImQ2n*(dReQ3n*dImQ1n+dImQ3n*dReQ1n))
7241 + 3.*(pow(dReQ2n,2.)*dReQ4n+2.*dReQ2n*dImQ2n*dImQ4n-pow(dImQ2n,2.)*dReQ4n)
7242 + 8.*(dReQ3n*dReQ2n*dReQ1n-dReQ3n*dImQ2n*dImQ1n+dImQ3n*dReQ2n*dImQ1n+dImQ3n*dImQ2n*dReQ1n)
7243 + 2.*(dReQ4n*(dReQ3n*dReQ1n-dImQ3n*dImQ1n)+dImQ4n*(dReQ3n*dImQ1n+dImQ3n*dReQ1n))
7244 - 2.*(dMult-6.)*(pow(dReQ1n,2.)*dReQ2n+2.*dReQ1n*dImQ1n*dImQ2n-pow(dImQ1n,2.)*dReQ2n)
7245 - 2.*(pow(dReQ4n,2.)+pow(dImQ4n,2.))-4.*(pow(dReQ3n,2.)+pow(dImQ3n,2.))
7246 - pow((pow(dReQ2n,2.)+pow(dImQ2n,2.)),2.)
7247 + 2.*(3.*dMult-10.)*(pow(dReQ2n,2.)+pow(dImQ2n,2.))
7248 - 4.*(pow(dReQ1n,2.)+pow(dImQ1n,2.))*(pow(dReQ2n,2.)+pow(dImQ2n,2.))
7249 + 4.*(dMult-5.)*(pow(dReQ1n,2.)+pow(dImQ1n,2.))-4.*dMult*(dMult-6.))
7250 / (dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.));
7251 five3n3n2n2n2n = (pow(dReQ2n,3.)*pow(dReQ3n,2.)-3.*dReQ2n*pow(dReQ3n,2.)*pow(dImQ2n,2.)
7252 + 6.*pow(dReQ2n,2.)*dReQ3n*dImQ2n*dImQ3n-2.*dReQ3n*pow(dImQ2n,3.)*dImQ3n
7253 - pow(dReQ2n,3.)*pow(dImQ3n,2.)+3.*dReQ2n*pow(dImQ2n,2.)*pow(dImQ3n,2.)
7254 - (dReQ6n*pow(dReQ2n,3)-3.*dReQ2n*dReQ6n*pow(dImQ2n,2)
7255 + 3.*dImQ2n*dImQ6n*pow(dReQ2n,2)-dImQ6n*pow(dImQ2n,3))
7256 - 3.*((dReQ4n*dReQ2n-dImQ4n*dImQ2n)*(dReQ3n*dReQ3n-dImQ3n*dImQ3n)
7257 + 2.*(dReQ4n*dImQ2n+dImQ4n*dReQ2n)*dReQ3n*dImQ3n)
7258 - 6.*((pow(dReQ2n,2.)-pow(dImQ2n,2.))*(dReQ3n*dReQ1n-dImQ3n*dImQ1n)
7259 + 2.*dReQ2n*dImQ2n*(dReQ3n*dImQ1n+dImQ3n*dReQ1n))
7260 + 2.*(pow(dReQ3n,2.)*dReQ6n+2.*dReQ3n*dImQ3n*dImQ6n-pow(dImQ3n,2.)*dReQ6n)
7261 + 3.*(dReQ6n*dReQ4n*dReQ2n-dReQ6n*dImQ4n*dImQ2n+dImQ6n*dReQ4n*dImQ2n+dImQ6n*dImQ4n*dReQ2n)
7262 + 6.*(dReQ4n*(dReQ3n*dReQ1n-dImQ3n*dImQ1n)+dImQ4n*(dReQ3n*dImQ1n+dImQ3n*dReQ1n))
7263 + 6.*(pow(dReQ2n,2.)*dReQ4n+2.*dReQ2n*dImQ2n*dImQ4n-pow(dImQ2n,2.)*dReQ4n)
7264 + 12.*(dReQ3n*dReQ2n*dReQ1n-dReQ3n*dImQ2n*dImQ1n+dImQ3n*dReQ2n*dImQ1n+dImQ3n*dImQ2n*dReQ1n)
7265 + 6.*(pow(dReQ1n,2.)*dReQ2n+2.*dReQ1n*dImQ1n*dImQ2n-pow(dImQ1n,2.)*dReQ2n)
7266 - 2.*((pow(dReQ6n,2.)+pow(dImQ6n,2.))+3.*(pow(dReQ4n,2.)+pow(dImQ4n,2.))
7267 + 6.*(pow(dReQ3n,2.)+pow(dImQ3n,2.))+9.*(pow(dReQ2n,2.)+pow(dImQ2n,2.))
7268 + 6.*(pow(dReQ1n,2.)+pow(dImQ1n,2.))-12.*dMult))
7269 / (dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.));
7270 five4n1n1n1n1n = (pow(dReQ1n,4.)*dReQ4n-6.*pow(dReQ1n,2.)*dReQ4n*pow(dImQ1n,2.)
7271 + pow(dImQ1n,4.)*dReQ4n+4.*pow(dReQ1n,3.)*dImQ1n*dImQ4n-4.*pow(dImQ1n,3.)*dReQ1n*dImQ4n
7272 - 6.*((dReQ4n*dReQ2n+dImQ4n*dImQ2n)*(pow(dReQ1n,2)-pow(dImQ1n,2))
7273 + 2.*dReQ1n*dImQ1n*(dImQ4n*dReQ2n-dReQ4n*dImQ2n))
7274 - 4.*(dReQ3n*pow(dReQ1n,3)-3.*dReQ1n*dReQ3n*pow(dImQ1n,2)
7275 + 3.*dImQ1n*dImQ3n*pow(dReQ1n,2)-dImQ3n*pow(dImQ1n,3))
7276 + 8.*(dReQ4n*(dReQ3n*dReQ1n-dImQ3n*dImQ1n)+dImQ4n*(dReQ3n*dImQ1n+dImQ3n*dReQ1n))
7277 + 3.*(pow(dReQ2n,2.)*dReQ4n+2.*dReQ2n*dImQ2n*dImQ4n-pow(dImQ2n,2.)*dReQ4n)
7278 + 12.*(dReQ3n*dReQ2n*dReQ1n-dReQ3n*dImQ2n*dImQ1n+dImQ3n*dReQ2n*dImQ1n+dImQ3n*dImQ2n*dReQ1n)
7279 + 12.*(pow(dReQ1n,2.)*dReQ2n+2.*dReQ1n*dImQ1n*dImQ2n-pow(dImQ1n,2.)*dReQ2n)
7280 - 6.*(pow(dReQ4n,2.)+pow(dImQ4n,2.))-8.*(pow(dReQ3n,2.)+pow(dImQ3n,2.))
7281 - 12.*(pow(dReQ2n,2.)+pow(dImQ2n,2.))-24.*(pow(dReQ1n,2.)+pow(dImQ1n,2.))+24.*dMult)
7282 / (dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.));
7283 five4n2n2n2n2n = ((dReQ4n*dReQ2n-dImQ4n*dImQ2n)*(pow(dReQ2n,3)-3.*dReQ2n*pow(dImQ2n,2))
7284 + (dReQ4n*dImQ2n+dReQ2n*dImQ4n)*(3.*dImQ2n*pow(dReQ2n,2)-pow(dImQ2n,3))
7285 - (dReQ6n*pow(dReQ2n,3)-3.*dReQ2n*dReQ6n*pow(dImQ2n,2)
7286 + 3.*dImQ2n*dImQ6n*pow(dReQ2n,2)-dImQ6n*pow(dImQ2n,3))
7287 + 5.*(dReQ6n*dReQ4n*dReQ2n-dReQ6n*dImQ4n*dImQ2n+dImQ6n*dReQ4n*dImQ2n+dImQ6n*dImQ4n*dReQ2n)
7288 - 3.*(dMult-5.)*(pow(dReQ2n,2.)*dReQ4n+2.*dReQ2n*dImQ2n*dImQ4n-pow(dImQ2n,2.)*dReQ4n)
7289 - 2.*(pow(dReQ6n,2.)+pow(dImQ6n,2.))
7290 - 3.*(pow(dReQ2n,2.)+pow(dImQ2n,2.))*(pow(dReQ4n,2.)+pow(dImQ4n,2.))
7291 + 3.*(dMult-4.)*(pow(dReQ4n,2.)+pow(dImQ4n,2.))
7292 - 3.*pow((pow(dReQ2n,2.)+pow(dImQ2n,2.)),2.)
7293 + 6.*(2.*dMult-5.)*(pow(dReQ2n,2.)+pow(dImQ2n,2.))-6.*dMult*(dMult-4.))
7294 / (dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.));
7295 five4n4n4n2n2n = ((pow(dReQ4n,2.)+pow(dImQ4n,2.))*(dReQ4n*(pow(dReQ2n,2.)-pow(dImQ2n,2.))+2.*dImQ4n*dReQ2n*dImQ2n)
7296 - ((dReQ8n*dReQ4n+dImQ8n*dImQ4n)*(pow(dReQ2n,2)-pow(dImQ2n,2))
7297 + 2.*dReQ2n*dImQ2n*(dImQ8n*dReQ4n-dReQ8n*dImQ4n))
7298 - 2.*((pow(dReQ4n,2.)-pow(dImQ4n,2.))*(dReQ6n*dReQ2n-dImQ6n*dImQ2n)
7299 + 2.*dReQ4n*dImQ4n*(dReQ6n*dImQ2n+dImQ6n*dReQ2n))
7300 + 3.*(pow(dReQ4n,2.)*dReQ8n+2.*dReQ4n*dImQ4n*dImQ8n-pow(dImQ4n,2.)*dReQ8n)
7301 + 8.*(dReQ6n*dReQ4n*dReQ2n-dReQ6n*dImQ4n*dImQ2n+dImQ6n*dReQ4n*dImQ2n+dImQ6n*dImQ4n*dReQ2n)
7302 + 2.*(dReQ8n*(dReQ6n*dReQ2n-dImQ6n*dImQ2n)+dImQ8n*(dReQ6n*dImQ2n+dImQ6n*dReQ2n))
7303 - 2.*(dMult-6.)*(pow(dReQ2n,2.)*dReQ4n+2.*dReQ2n*dImQ2n*dImQ4n-pow(dImQ2n,2.)*dReQ4n)
7304 - 2.*(pow(dReQ8n,2.)+pow(dImQ8n,2.))-4.*(pow(dReQ6n,2.)+pow(dImQ6n,2.))
7305 - pow((pow(dReQ4n,2.)+pow(dImQ4n,2.)),2.)
7306 + 2.*(3.*dMult-10.)*(pow(dReQ4n,2.)+pow(dImQ4n,2.))
7307 - 4.*(pow(dReQ2n,2.)+pow(dImQ2n,2.))*(pow(dReQ4n,2.)+pow(dImQ4n,2.))
7308 + 4.*(dMult-5.)*(pow(dReQ2n,2.)+pow(dImQ2n,2.))-4.*dMult*(dMult-6.))
7309 / (dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.));
7310 five6n3n3n3n3n = ((dReQ6n*dReQ3n-dImQ6n*dImQ3n)*(pow(dReQ3n,3)-3.*dReQ3n*pow(dImQ3n,2))
7311 + (dReQ6n*dImQ3n+dReQ3n*dImQ6n)*(3.*dImQ3n*pow(dReQ3n,2)-pow(dImQ3n,3))
7312 - (dReQ9n*pow(dReQ3n,3)-3.*dReQ3n*dReQ9n*pow(dImQ3n,2)
7313 + 3.*dImQ3n*dImQ9n*pow(dReQ3n,2)-dImQ9n*pow(dImQ3n,3))
7314 + 5.*(dReQ9n*dReQ6n*dReQ3n-dReQ9n*dImQ6n*dImQ3n+dImQ9n*dReQ6n*dImQ3n+dImQ9n*dImQ6n*dReQ3n)
7315 - 3.*(dMult-5.)*(pow(dReQ3n,2.)*dReQ6n+2.*dReQ3n*dImQ3n*dImQ6n-pow(dImQ3n,2.)*dReQ6n)
7316 - 2.*(pow(dReQ9n,2.)+pow(dImQ9n,2.))
7317 - 3.*(pow(dReQ3n,2.)+pow(dImQ3n,2.))*(pow(dReQ6n,2.)+pow(dImQ6n,2.))
7318 + 3.*(dMult-4.)*(pow(dReQ6n,2.)+pow(dImQ6n,2.))
7319 - 3.*pow((pow(dReQ3n,2.)+pow(dImQ3n,2.)),2.)
7320 + 6.*(2.*dMult-5.)*(pow(dReQ3n,2.)+pow(dImQ3n,2.))-6.*dMult*(dMult-4.))
7321 / (dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.));
7322 five6n6n4n4n4n = (pow(dReQ4n,3.)*pow(dReQ6n,2.)-3.*dReQ4n*pow(dReQ6n,2.)*pow(dImQ4n,2.)
7323 + 6.*pow(dReQ4n,2.)*dReQ6n*dImQ4n*dImQ6n-2.*dReQ6n*pow(dImQ4n,3.)*dImQ6n
7324 - pow(dReQ4n,3.)*pow(dImQ6n,2.)+3.*dReQ4n*pow(dImQ4n,2.)*pow(dImQ6n,2.)
7325 - (dReQ12n*pow(dReQ4n,3)-3.*dReQ4n*dReQ12n*pow(dImQ4n,2)
7326 + 3.*dImQ4n*dImQ12n*pow(dReQ4n,2)-dImQ12n*pow(dImQ4n,3))
7327 - 3.*((dReQ8n*dReQ4n-dImQ8n*dImQ4n)*(dReQ6n*dReQ6n-dImQ6n*dImQ6n)
7328 + 2.*(dReQ8n*dImQ4n+dImQ8n*dReQ4n)*dReQ6n*dImQ6n)
7329 - 6.*((pow(dReQ4n,2.)-pow(dImQ4n,2.))*(dReQ6n*dReQ2n-dImQ6n*dImQ2n)
7330 + 2.*dReQ4n*dImQ4n*(dReQ6n*dImQ2n+dImQ6n*dReQ2n))
7331 + 2.*(pow(dReQ6n,2.)*dReQ12n+2.*dReQ6n*dImQ6n*dImQ12n-pow(dImQ6n,2.)*dReQ12n)
7332 + 3.*(dReQ12n*dReQ8n*dReQ4n-dReQ12n*dImQ8n*dImQ4n+dImQ12n*dReQ8n*dImQ4n+dImQ12n*dImQ8n*dReQ4n)
7333 + 6.*(dReQ8n*(dReQ6n*dReQ2n-dImQ6n*dImQ2n)+dImQ8n*(dReQ6n*dImQ2n+dImQ6n*dReQ2n))
7334 + 6.*(pow(dReQ4n,2.)*dReQ8n+2.*dReQ4n*dImQ4n*dImQ8n-pow(dImQ4n,2.)*dReQ8n)
7335 + 12.*(dReQ6n*dReQ4n*dReQ2n-dReQ6n*dImQ4n*dImQ2n+dImQ6n*dReQ4n*dImQ2n+dImQ6n*dImQ4n*dReQ2n)
7336 + 6.*(pow(dReQ2n,2.)*dReQ4n+2.*dReQ2n*dImQ2n*dImQ4n-pow(dImQ2n,2.)*dReQ4n)
7337 - 2.*((pow(dReQ12n,2.)+pow(dImQ12n,2.))+3.*(pow(dReQ8n,2.)+pow(dImQ8n,2.))
7338 + 6.*(pow(dReQ6n,2.)+pow(dImQ6n,2.))+9.*(pow(dReQ4n,2.)+pow(dImQ4n,2.))
7339 + 6.*(pow(dReQ2n,2.)+pow(dImQ2n,2.))-12.*dMult))
7340 / (dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.));
7341 five6n6n6n3n3n = ((pow(dReQ6n,2.)+pow(dImQ6n,2.))*(dReQ6n*(pow(dReQ3n,2.)-pow(dImQ3n,2.))+2.*dImQ6n*dReQ3n*dImQ3n)
7342 - ((dReQ12n*dReQ6n+dImQ12n*dImQ6n)*(pow(dReQ3n,2)-pow(dImQ3n,2))
7343 + 2.*dReQ3n*dImQ3n*(dImQ12n*dReQ6n-dReQ12n*dImQ6n))
7344 - 2.*((pow(dReQ6n,2.)-pow(dImQ6n,2.))*(dReQ9n*dReQ3n-dImQ9n*dImQ3n)
7345 + 2.*dReQ6n*dImQ6n*(dReQ9n*dImQ3n+dImQ9n*dReQ3n))
7346 + 3.*(pow(dReQ6n,2.)*dReQ12n+2.*dReQ6n*dImQ6n*dImQ12n-pow(dImQ6n,2.)*dReQ12n)
7347 + 8.*(dReQ9n*dReQ6n*dReQ3n-dReQ9n*dImQ6n*dImQ3n+dImQ9n*dReQ6n*dImQ3n+dImQ9n*dImQ6n*dReQ3n)
7348 + 2.*(dReQ12n*(dReQ9n*dReQ3n-dImQ9n*dImQ3n)+dImQ12n*(dReQ9n*dImQ3n+dImQ9n*dReQ3n))
7349 - 2.*(dMult-6.)*(pow(dReQ3n,2.)*dReQ6n+2.*dReQ3n*dImQ3n*dImQ6n-pow(dImQ3n,2.)*dReQ6n)
7350 - 2.*(pow(dReQ12n,2.)+pow(dImQ12n,2.))-4.*(pow(dReQ9n,2.)+pow(dImQ9n,2.))
7351 - pow((pow(dReQ6n,2.)+pow(dImQ6n,2.)),2.)
7352 + 2.*(3.*dMult-10.)*(pow(dReQ6n,2.)+pow(dImQ6n,2.))
7353 - 4.*(pow(dReQ3n,2.)+pow(dImQ3n,2.))*(pow(dReQ6n,2.)+pow(dImQ6n,2.))
7354 + 4.*(dMult-5.)*(pow(dReQ3n,2.)+pow(dImQ3n,2.))-4.*dMult*(dMult-6.))
7355 / (dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.));
7356 // f3) Three distinct harmonics (30):
7357 five3n1n2n1n1n = ((pow(dReQ1n,2.)+pow(dImQ1n,2.))*(dReQ1n*dReQ2n*dReQ3n-dReQ3n*dImQ1n*dImQ2n
7358 + dReQ2n*dImQ1n*dImQ3n+dReQ1n*dImQ2n*dImQ3n)
7359 - ((dReQ4n*dReQ2n+dImQ4n*dImQ2n)*(pow(dReQ1n,2)-pow(dImQ1n,2))
7360 + 2.*dReQ1n*dImQ1n*(dImQ4n*dReQ2n-dReQ4n*dImQ2n))
7361 - (dReQ3n*pow(dReQ1n,3)-3.*dReQ1n*dReQ3n*pow(dImQ1n,2)
7362 + 3.*dImQ1n*dImQ3n*pow(dReQ1n,2)-dImQ3n*pow(dImQ1n,3))
7363 - ((pow(dReQ2n,2.)-pow(dImQ2n,2.))*(dReQ3n*dReQ1n-dImQ3n*dImQ1n)
7364 + 2.*dReQ2n*dImQ2n*(dReQ3n*dImQ1n+dImQ3n*dReQ1n))
7365 + 4.*(dReQ4n*(dReQ3n*dReQ1n-dImQ3n*dImQ1n)+dImQ4n*(dReQ3n*dImQ1n+dImQ3n*dReQ1n))
7366 + pow(dReQ2n,2.)*dReQ4n+2.*dReQ2n*dImQ2n*dImQ4n-pow(dImQ2n,2.)*dReQ4n
7367 - (2.*dMult-13.)*(dReQ3n*dReQ2n*dReQ1n-dReQ3n*dImQ2n*dImQ1n+dImQ3n*dReQ2n*dImQ1n
7368 + dImQ3n*dImQ2n*dReQ1n)
7369 + 7.*(pow(dReQ1n,2.)*dReQ2n+2.*dReQ1n*dImQ1n*dImQ2n-pow(dImQ1n,2.)*dReQ2n)
7370 - 2.*(pow(dReQ4n,2.)+pow(dImQ4n,2.))
7371 + 2.*(dMult-5.)*(pow(dReQ3n,2.)+pow(dImQ3n,2.))
7372 - 2.*(pow(dReQ3n,2.)+pow(dImQ3n,2.))*(pow(dReQ1n,2.)+pow(dImQ1n,2.))
7373 + 2.*(dMult-6.)*(pow(dReQ2n,2.)+pow(dImQ2n,2.))
7374 - 2.*(pow(dReQ2n,2.)+pow(dImQ2n,2.))*(pow(dReQ1n,2.)+pow(dImQ1n,2.))
7375 - pow((pow(dReQ1n,2.)+pow(dImQ1n,2.)),2.)
7376 + 2.*(3.*dMult-11.)*(pow(dReQ1n,2.)+pow(dImQ1n,2.))-4.*dMult*(dMult-6.))
7377 / (dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.));
7378 five3n2n2n2n1n = ((pow(dImQ2n,2.)+pow(dReQ2n,2.))*(dImQ2n*dImQ3n*dReQ1n+dImQ1n*dImQ3n*dReQ2n
7379 - dImQ1n*dImQ2n*dReQ3n+dReQ1n*dReQ2n*dReQ3n)
7380 - (-pow(dImQ2n,2.)*dImQ1n*dImQ5n+dImQ1n*dImQ5n*pow(dReQ2n,2.)
7381 + 2.*dImQ2n*dImQ5n*dReQ2n*dReQ1n-2.*dImQ2n*dImQ1n*dReQ2n*dReQ5n
7382 - pow(dImQ2n,2.)*dReQ1n*dReQ5n+pow(dReQ2n,2.)*dReQ1n*dReQ5n)
7383 - (dImQ1n*dImQ2n*dImQ3n*dImQ4n+dImQ3n*dImQ4n*dReQ1n*dReQ2n
7384 + dImQ2n*dImQ4n*dReQ1n*dReQ3n-dImQ1n*dImQ4n*dReQ2n*dReQ3n
7385 - dImQ2n*dImQ3n*dReQ1n*dReQ4n+dImQ1n*dImQ3n*dReQ2n*dReQ4n
7386 + dImQ1n*dImQ2n*dReQ3n*dReQ4n+dReQ1n*dReQ2n*dReQ3n*dReQ4n)
7387 - ((pow(dReQ2n,2.)-pow(dImQ2n,2.))*(dReQ3n*dReQ1n-dImQ3n*dImQ1n)
7388 + 2.*dReQ2n*dImQ2n*(dReQ3n*dImQ1n+dImQ3n*dReQ1n))
7389 - 2.*(pow(dReQ3n,2.)+pow(dImQ3n,2.))*(pow(dReQ2n,2.)+pow(dImQ2n,2.))
7390 + (dReQ5n*dReQ4n*dReQ1n-dReQ5n*dImQ4n*dImQ1n+dImQ5n*dReQ4n*dImQ1n+dImQ5n*dImQ4n*dReQ1n)
7391 + 4.*(dReQ5n*dReQ2n*dReQ3n-dReQ5n*dImQ2n*dImQ3n+dImQ5n*dReQ2n*dImQ3n+dImQ5n*dImQ2n*dReQ3n)
7392 + dReQ4n*(dReQ3n*dReQ1n-dImQ3n*dImQ1n)+dImQ4n*(dReQ3n*dImQ1n+dImQ3n*dReQ1n)
7393 + 3.*(pow(dReQ2n,2.)*dReQ4n+2.*dReQ2n*dImQ2n*dImQ4n-pow(dImQ2n,2.)*dReQ4n)
7394 - 2.*(dMult-6.)*(dReQ3n*dReQ2n*dReQ1n-dReQ3n*dImQ2n*dImQ1n+dImQ3n*dReQ2n*dImQ1n+dImQ3n*dImQ2n*dReQ1n)
7395 + 4.*(pow(dReQ1n,2.)*dReQ2n+2.*dReQ1n*dImQ1n*dImQ2n-pow(dImQ1n,2.)*dReQ2n)
7396 - 2.*(pow(dReQ5n,2.)+pow(dImQ5n,2.))
7397 - 2.*(pow(dReQ4n,2.)+pow(dImQ4n,2.))+2.*(dMult-5.)*(pow(dReQ3n,2.)+pow(dImQ3n,2.))
7398 - 2.*(pow(dReQ2n,2.)+pow(dImQ2n,2.))*(pow(dReQ1n,2.)+pow(dImQ1n,2.))
7399 - pow((pow(dReQ2n,2.)+pow(dImQ2n,2.)),2.)+2.*(3.*dMult-10.)*(pow(dReQ2n,2.)+pow(dImQ2n,2.))
7400 + 2.*(dMult-6.)*(pow(dReQ1n,2.)+pow(dImQ1n,2.))-4.*dMult*(dMult-6.))
7401 / (dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.));
7402 five3n3n3n2n1n = ((pow(dImQ3n,2.)+pow(dReQ3n,2.))*(dImQ2n*dImQ3n*dReQ1n+dImQ1n*dImQ3n*dReQ2n
7403 - dImQ1n*dImQ2n*dReQ3n+dReQ1n*dReQ2n*dReQ3n)
7404 - (dReQ1n*dReQ2n*dReQ3n*dReQ6n-dReQ3n*dReQ6n*dImQ1n*dImQ2n
7405 - dReQ2n*dReQ6n*dImQ1n*dImQ3n-dReQ1n*dReQ6n*dImQ2n*dImQ3n
7406 + dReQ2n*dReQ3n*dImQ1n*dImQ6n+dReQ1n*dReQ3n*dImQ2n*dImQ6n
7407 + dReQ1n*dReQ2n*dImQ3n*dImQ6n-dImQ1n*dImQ2n*dImQ3n*dImQ6n)
7408 - (dImQ1n*pow(dImQ3n,2.)*dImQ5n+2.*dImQ3n*dImQ5n*dReQ1n*dReQ3n
7409 - dImQ1n*dImQ5n*pow(dReQ3n,2.)-pow(dImQ3n,2.)*dReQ1n*dReQ5n
7410 + 2.*dImQ1n*dImQ3n*dReQ3n*dReQ5n+dReQ1n*pow(dReQ3n,2.)*dReQ5n)
7411 - ((dReQ4n*dReQ2n-dImQ4n*dImQ2n)*(dReQ3n*dReQ3n-dImQ3n*dImQ3n)
7412 + 2.*(dReQ4n*dImQ2n+dImQ4n*dReQ2n)*dReQ3n*dImQ3n)
7413 + dReQ6n*dReQ5n*dReQ1n-dReQ6n*dImQ5n*dImQ1n+dImQ6n*dReQ5n*dImQ1n+dImQ6n*dImQ5n*dReQ1n
7414 + dReQ6n*dReQ4n*dReQ2n-dReQ6n*dImQ4n*dImQ2n+dImQ6n*dReQ4n*dImQ2n+dImQ6n*dImQ4n*dReQ2n
7415 + 3.*(pow(dReQ3n,2.)*dReQ6n+2.*dReQ3n*dImQ3n*dImQ6n-pow(dImQ3n,2.)*dReQ6n)
7416 + 4.*(dReQ5n*dReQ2n*dReQ3n-dReQ5n*dImQ2n*dImQ3n+dImQ5n*dReQ2n*dImQ3n+dImQ5n*dImQ2n*dReQ3n)
7417 + 4.*(dReQ4n*(dReQ3n*dReQ1n-dImQ3n*dImQ1n)+dImQ4n*(dReQ3n*dImQ1n+dImQ3n*dReQ1n))
7418 - 2.*(dMult-6.)*(dReQ3n*dReQ2n*dReQ1n-dReQ3n*dImQ2n*dImQ1n+dImQ3n*dReQ2n*dImQ1n+dImQ3n*dImQ2n*dReQ1n)
7419 - 2.*(pow(dReQ3n,2.)+pow(dImQ3n,2.))*(pow(dReQ2n,2.)+pow(dImQ2n,2.))
7420 - 2.*(pow(dReQ3n,2.)+pow(dImQ3n,2.))*(pow(dReQ1n,2.)+pow(dImQ1n,2.))
7421 - 2.*(pow(dReQ6n,2.)+pow(dImQ6n,2.))-2.*(pow(dReQ5n,2.)+pow(dImQ5n,2.))
7422 - 2.*(pow(dReQ4n,2.)+pow(dImQ4n,2.))+2.*(3.*dMult-10.)*(pow(dReQ3n,2.)+pow(dImQ3n,2.))
7423 - pow((pow(dReQ3n,2.)+pow(dImQ3n,2.)),2.)+2.*(dMult-5.)*(pow(dReQ2n,2.)+pow(dImQ2n,2.))
7424 + 2.*(dMult-5.)*(pow(dReQ1n,2.)+pow(dImQ1n,2.))-4.*dMult*(dMult-6.))
7425 / (dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.));
7426 five4n1n3n1n1n = (reQ4nQ1nQ3nstarQ1nstarQ1nstar
7427 - reQ4nQ1nQ3nstarQ2nstar
7428 - reQ4nQ1nQ4nstarQ1nstar
7429 - reQ4nQ2nstarQ1nstarQ1nstar
7430 - reQ5nQ3nstarQ1nstarQ1nstar
7431 - reQ3nQ1nQ3nstarQ1nstar
7432 - dMult*reQ4nQ3nstarQ1nstar
7433 + dMult*(pow(dReQ1n,2.)+pow(dImQ1n,2.))
7434 + reQ5nQ4nstarQ1nstar
7435 + 3.*reQ4nQ3nstarQ1nstar
7436 + 2.*reQ5nQ4nstarQ1nstar
7437 + reQ4nQ2nstarQ2nstar
7438 + reQ5nQ3nstarQ2nstar
7439 + dMult*(pow(dReQ4n,2.)+pow(dImQ4n,2.))
7440 + dMult*(pow(dReQ1n,2.)+pow(dImQ1n,2.))
7441 + reQ5nQ4nstarQ1nstar
7442 + reQ3nQ2nstarQ1nstar
7443 - (dMult-6.)*reQ4nQ3nstarQ1nstar
7444 + 3.*reQ2nQ1nstarQ1nstar
7445 + dMult*(pow(dReQ1n,2.)+pow(dImQ1n,2.))
7446 + 2.*reQ3nQ2nstarQ1nstar
7447 + 3.*reQ4nQ3nstarQ1nstar
7448 + dMult*(pow(dReQ3n,2.)+pow(dImQ3n,2.))
7449 + reQ3nQ2nstarQ1nstar
7450 - (pow(dReQ1n,2.)+pow(dImQ1n,2.))*(pow(dReQ4n,2.)+pow(dImQ4n,2.))
7451 - (pow(dReQ1n,2.)+pow(dImQ1n,2.))*(pow(dReQ1n,2.)+pow(dImQ1n,2.))
7452 - (pow(dReQ1n,2.)+pow(dImQ1n,2.))*(pow(dReQ3n,2.)+pow(dImQ3n,2.))
7453 - 2.*(pow(dReQ5n,2.)+pow(dImQ5n,2.))
7454 - 2.*(pow(dReQ3n,2.)+pow(dImQ3n,2.))
7455 - 2.*(pow(dReQ2n,2.)+pow(dImQ2n,2.))
7457 - 2.*(pow(dReQ4n,2.)+pow(dImQ4n,2.))
7458 - 2.*(pow(dReQ2n,2.)+pow(dImQ2n,2.))
7459 + (dMult-8.)*(pow(dReQ4n,2.)+pow(dImQ4n,2.))
7460 + (dMult-8.)*(pow(dReQ3n,2.)+pow(dImQ3n,2.))
7461 + (dMult-8.)*(pow(dReQ1n,2.)+pow(dImQ1n,2.))
7462 + 2.*(dMult-6.)*(pow(dReQ1n,2.)+pow(dImQ1n,2.))-2.*dMult*(dMult-12.))
7463 / (dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.));
7464 five4n1n1n3n3n = // calculated by Peter Jochumzsen
7465 (pow(dReQ1n*dReQ3n,2.)*dReQ4n-pow(dReQ3n*dImQ1n,2.)*dReQ4n
7466 + 4.*dReQ1n*dReQ3n*dReQ4n*dImQ1n*dImQ3n
7467 - pow(dReQ1n*dImQ3n,2.)*dReQ4n+pow(dImQ1n*dImQ3n,2.)*dReQ4n
7468 - 2.*dReQ1n*pow(dReQ3n,2.)*dImQ1n*dImQ4n+2.*pow(dReQ1n,2.)*dReQ3n*dImQ3n*dImQ4n
7469 - 2.*dReQ3n*pow(dImQ1n,2.)*dImQ3n*dImQ4n+2.*dReQ1n*dImQ1n*pow(dImQ3n,2.)*dImQ4n
7470 + 6.*(pow(dReQ1n,2.)*dReQ2n+2.*dReQ1n*dImQ1n*dImQ2n-pow(dImQ1n,2.)*dReQ2n)
7471 - 1.*(-pow(dImQ1n,2.)*dImQ4n*dImQ6n+dImQ4n*dImQ6n*pow(dReQ1n,2.)
7472 + 2.*dImQ1n*dImQ6n*dReQ1n*dReQ4n-2.*dImQ1n*dImQ4n*dReQ1n*dReQ6n
7473 - pow(dImQ1n,2.)*dReQ4n*dReQ6n+pow(dReQ1n,2.)*dReQ4n*dReQ6n)
7474 - 1.*((dReQ4n*dReQ2n-dImQ4n*dImQ2n)*(dReQ3n*dReQ3n-dImQ3n*dImQ3n)
7475 + 2.*(dReQ4n*dImQ2n+dImQ4n*dReQ2n)*dReQ3n*dImQ3n)
7476 + 1.*(dReQ6n*dReQ4n*dReQ2n-dReQ6n*dImQ4n*dImQ2n+dImQ6n*dReQ4n*dImQ2n+dImQ6n*dImQ4n*dReQ2n)
7477 - 2.*(dImQ1n*pow(dImQ3n,2.)*dImQ5n+2.*dImQ3n*dImQ5n*dReQ1n*dReQ3n
7478 - dImQ1n*dImQ5n*pow(dReQ3n,2.)-pow(dImQ3n,2.)*dReQ1n*dReQ5n
7479 + 2.*dImQ1n*dImQ3n*dReQ3n*dReQ5n+dReQ1n*pow(dReQ3n,2.)*dReQ5n)
7480 + 2.*(pow(dReQ2n,2.)*dReQ4n+2.*dReQ2n*dImQ2n*dImQ4n-pow(dImQ2n,2.)*dReQ4n)
7481 + 4.*(dReQ4n*(dReQ3n*dReQ1n-dImQ3n*dImQ1n)+dImQ4n*(dReQ3n*dImQ1n+dImQ3n*dReQ1n))
7482 - 2.*(dReQ3n*pow(dReQ1n,3.)-3.*dReQ1n*dReQ3n*pow(dImQ1n,2.)
7483 + 3.*dImQ1n*dImQ3n*pow(dReQ1n,2.)-dImQ3n*pow(dImQ1n,3.))
7484 + 10.*(dReQ3n*dReQ2n*dReQ1n-dReQ3n*dImQ2n*dImQ1n+dImQ3n*dReQ2n*dImQ1n+dImQ3n*dImQ2n*dReQ1n)
7485 + 2.*(dReQ6n*dReQ5n*dReQ1n-dReQ6n*dImQ5n*dImQ1n+dImQ6n*dReQ5n*dImQ1n+dImQ6n*dImQ5n*dReQ1n)
7486 + 2.*(pow(dReQ3n,2.)*dReQ6n+2.*dReQ3n*dImQ3n*dImQ6n-pow(dImQ3n,2.)*dReQ6n)
7487 - 4.*(dImQ1n*dImQ2n*dImQ3n*dImQ4n+dImQ3n*dImQ4n*dReQ1n*dReQ2n
7488 + dImQ2n*dImQ4n*dReQ1n*dReQ3n-dImQ1n*dImQ4n*dReQ2n*dReQ3n
7489 - dImQ2n*dImQ3n*dReQ1n*dReQ4n+dImQ1n*dImQ3n*dReQ2n*dReQ4n
7490 + dImQ1n*dImQ2n*dReQ3n*dReQ4n+dReQ1n*dReQ2n*dReQ3n*dReQ4n)
7491 + 4.*(dReQ5n*dReQ4n*dReQ1n-dReQ5n*dImQ4n*dImQ1n+dImQ5n*dReQ4n*dImQ1n+dImQ5n*dImQ4n*dReQ1n)
7492 + 4.*(dReQ5n*dReQ2n*dReQ3n-dReQ5n*dImQ2n*dImQ3n+dImQ5n*dReQ2n*dImQ3n+dImQ5n*dImQ2n*dReQ3n)
7493 - 16.*pow(dReQ1n,2.)-16.*pow(dImQ1n,2.)
7494 - 10.*pow(dReQ2n,2.)-10.*pow(dImQ2n,2.)-12.*pow(dReQ3n,2.)-12.*pow(dImQ3n,2.)
7495 - 6.*pow(dReQ4n,2.)-6.*pow(dImQ4n,2.)-4.*pow(dReQ5n,2.)-4.*pow(dImQ5n,2.)
7496 - 2.*pow(dReQ6n,2.)-2.*pow(dImQ6n,2.)+24.*dMult)
7497 / (dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.));
7499 five4n3n3n3n1n = (reQ4nQ3nQ3nstarQ3nstarQ1nstar
7500 - (pow(dReQ4n,2.)+pow(dImQ4n,2.))*(pow(dReQ3n,2.)+pow(dImQ3n,2.))
7501 - reQ6nQ1nQ4nstarQ3nstar
7502 - dMult*reQ4nQ3nstarQ1nstar
7503 - reQ7nQ3nstarQ3nstarQ1nstar
7504 - reQ3nQ1nQ3nstarQ1nstar
7505 - reQ4nQ2nQ3nstarQ3nstar
7506 + reQ3nQ2nstarQ1nstar
7507 + reQ7nQ4nstarQ3nstar
7508 + 3.*reQ4nQ3nstarQ1nstar
7509 + 2.*reQ7nQ4nstarQ3nstar
7510 + dMult*(pow(dReQ4n,2.)+pow(dImQ4n,2.))
7511 + reQ7nQ4nstarQ3nstar
7512 + reQ6nQ4nstarQ2nstar
7513 + reQ3nQ2nstarQ1nstar
7514 + reQ7nQ6nstarQ1nstar
7515 + dMult*(pow(dReQ1n,2.)+pow(dImQ1n,2.))
7516 - (dMult-6.)*reQ4nQ3nstarQ1nstar
7517 + 3.*reQ4nQ3nstarQ1nstar
7518 + reQ3nQ2nstarQ1nstar
7519 + 2.*dMult*(pow(dReQ3n,2.)+pow(dImQ3n,2.))
7520 + 3.*reQ6nQ3nstarQ3nstar
7521 + reQ3nQ2nstarQ1nstar
7522 + dMult*(pow(dReQ3n,2.)+pow(dImQ3n,2.))
7523 - (pow(dReQ3n,2.)+pow(dImQ3n,2.))*(pow(dReQ4n,2.)+pow(dImQ4n,2.))
7524 - (pow(dReQ3n,2.)+pow(dImQ3n,2.))*(pow(dReQ1n,2.)+pow(dImQ1n,2.))
7525 - (pow(dReQ3n,2.)+pow(dImQ3n,2.))*(pow(dReQ3n,2.)+pow(dImQ3n,2.))
7526 - 2.*(pow(dReQ7n,2.)+pow(dImQ7n,2.))
7527 - 2.*(pow(dReQ1n,2.)+pow(dImQ1n,2.))
7528 - 2.*(pow(dReQ4n,2.)+pow(dImQ4n,2.))
7529 - 2.*(pow(dReQ2n,2.)+pow(dImQ2n,2.))
7530 - 2.*(pow(dReQ6n,2.)+pow(dImQ6n,2.))
7532 + (dMult-8.)*(pow(dReQ4n,2.)+pow(dImQ4n,2.))
7533 + (dMult-8.)*(pow(dReQ3n,2.)+pow(dImQ3n,2.))
7534 + (dMult-8.)*(pow(dReQ1n,2.)+pow(dImQ1n,2.))
7535 + 2.*(dMult-6.)*(pow(dReQ3n,2.)+pow(dImQ3n,2.))-2.*dMult*(dMult-12.))
7536 / (dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.));
7539 five4n4n3n3n2n = (reQ4nQ4nQ3nstarQ3nstarQ2nstar
7540 - reQ5nQ3nQ4nstarQ4nstar-reQ5nQ3nQ4nstarQ4nstar-reQ6nQ2nQ4nstarQ4nstar
7541 - reQ4nQ1nQ3nstarQ2nstar-reQ4nQ1nQ3nstarQ2nstar-reQ4nQ2nQ3nstarQ3nstar
7542 - reQ8nQ3nstarQ3nstarQ2nstar-reQ4nQ2nQ3nstarQ3nstar-reQ4nQ1nQ3nstarQ2nstar-reQ4nQ1nQ3nstarQ2nstar
7543 + 2.*(reQ4nQ3nstarQ1nstar+reQ4nQ2nstarQ2nstar+reQ4nQ3nstarQ1nstar+reQ8nQ4nstarQ4nstar)
7544 + reQ5nQ4nstarQ1nstar+reQ5nQ4nstarQ1nstar+reQ6nQ4nstarQ2nstar
7545 + reQ8nQ6nstarQ2nstar+reQ8nQ5nstarQ3nstar+reQ8nQ5nstarQ3nstar
7546 + reQ5nQ4nstarQ1nstar+reQ2nQ1nstarQ1nstar+reQ3nQ2nstarQ1nstar
7547 + reQ5nQ4nstarQ1nstar+reQ2nQ1nstarQ1nstar+reQ3nQ2nstarQ1nstar
7548 + reQ6nQ4nstarQ2nstar+reQ3nQ2nstarQ1nstar+reQ3nQ2nstarQ1nstar
7549 + 2.*(reQ6nQ3nstarQ3nstar+reQ5nQ3nstarQ2nstar+reQ5nQ3nstarQ2nstar)
7550 + 2.*(reQ4nQ3nstarQ1nstar+reQ4nQ3nstarQ1nstar+reQ4nQ2nstarQ2nstar)
7551 - 6.*(pow(dReQ4n,2.)+pow(dImQ4n,2.))
7552 - 2.*(pow(dReQ8n,2.)+pow(dImQ8n,2.)+pow(dReQ1n,2.)+pow(dImQ1n,2.)+pow(dReQ2n,2.)+pow(dImQ2n,2.)+pow(dReQ1n,2.)+pow(dImQ1n,2.))
7553 - 2.*(pow(dReQ5n,2.)+pow(dImQ5n,2.)+pow(dReQ5n,2.)+pow(dImQ5n,2.)+pow(dReQ6n,2.)+pow(dImQ6n,2.))
7554 - 2.*(pow(dReQ2n,2.)+pow(dImQ2n,2.)+pow(dReQ1n,2.)+pow(dImQ1n,2.)+pow(dReQ1n,2.)+pow(dImQ1n,2.))
7555 - 6.*(pow(dReQ4n,2.)+pow(dImQ4n,2.)+pow(dReQ3n,2.)+pow(dImQ3n,2.)+pow(dReQ3n,2.)+pow(dImQ3n,2.)+pow(dReQ2n,2.)+pow(dImQ2n,2.))
7557 / (dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.));
7560 // correct recursive formula, not needed for the time being.
7561 five4n4n3n3n2n = (reQ4nQ4nQ3nstarQ3nstarQ2nstar
7562 - dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)
7563 * (2.*four4n2n3n3n+4.*four4n1n3n2n+1.*four8n3n3n2n+1.*four6n2n4n4n+2.*four5n3n4n4n)
7564 - dMult*(dMult-1.)*(dMult-2.)
7565 * (4.*three4n3n1n+2.*three4n2n2n+2.*three5n3n2n+1.*three6n3n3n+1.*three8n4n4n
7566 + 4.*three3n2n1n+2.*three2n1n1n+1.*three8n6n2n+2.*three8n5n3n+2.*three6n4n2n+4.*three5n4n1n)
7568 * (1.*two2n2n+2.*two3n3n+2.*two4n4n+2.*two5n5n+1.*two6n6n+4.*two1n1n+2.*two2n2n+1.*two8n8n)
7570 / (dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.));
7574 five4n4n4n3n1n = (reQ4nQ4nQ4nstarQ3nstarQ1nstar
7575 - reQ5nQ3nQ4nstarQ4nstar
7576 - reQ7nQ1nQ4nstarQ4nstar
7577 - (pow(dReQ4n,2.)+pow(dImQ4n,2.))*(pow(dReQ1n,2.)+pow(dImQ1n,2.))
7578 - reQ8nQ4nstarQ3nstarQ1nstar
7579 - dMult*reQ4nQ3nstarQ1nstar
7580 - (pow(dReQ4n,2.)+pow(dImQ4n,2.))*(pow(dReQ3n,2.)+pow(dImQ3n,2.))
7581 + reQ4nQ3nstarQ1nstar
7582 + reQ8nQ4nstarQ4nstar
7583 + 3.*dMult*(pow(dReQ4n,2.)+pow(dImQ4n,2.))
7584 + 2.*reQ8nQ4nstarQ4nstar
7585 + reQ5nQ4nstarQ1nstar
7586 + reQ8nQ5nstarQ3nstar
7587 + reQ7nQ4nstarQ3nstar
7588 + reQ4nQ3nstarQ1nstar
7589 + reQ8nQ7nstarQ1nstar
7590 + dMult*(pow(dReQ1n,2.)+pow(dImQ1n,2.))
7591 - (dMult-6.)*reQ4nQ3nstarQ1nstar
7592 + 3.*reQ5nQ4nstarQ1nstar
7593 + reQ4nQ3nstarQ1nstar
7594 + 2.*reQ4nQ3nstarQ1nstar
7595 + 3.*reQ7nQ4nstarQ3nstar
7596 + dMult*(pow(dReQ3n,2.)+pow(dImQ3n,2.))
7597 + reQ4nQ3nstarQ1nstar
7598 - (pow(dReQ4n,2.)+pow(dImQ4n,2.))*(pow(dReQ4n,2.)+pow(dImQ4n,2.))
7599 - (pow(dReQ4n,2.)+pow(dImQ4n,2.))*(pow(dReQ1n,2.)+pow(dImQ1n,2.))
7600 - (pow(dReQ4n,2.)+pow(dImQ4n,2.))*(pow(dReQ3n,2.)+pow(dImQ3n,2.))
7601 - 2.*(pow(dReQ8n,2.)+pow(dImQ8n,2.))
7603 - 2.*(pow(dReQ5n,2.)+pow(dImQ5n,2.))
7604 - 2.*(pow(dReQ3n,2.)+pow(dImQ3n,2.))
7605 - 2.*(pow(dReQ7n,2.)+pow(dImQ7n,2.))
7606 - 2.*(pow(dReQ1n,2.)+pow(dImQ1n,2.))
7607 + (dMult-8.)*(pow(dReQ4n,2.)+pow(dImQ4n,2.))
7608 + (dMult-8.)*(pow(dReQ3n,2.)+pow(dImQ3n,2.))
7609 + (dMult-8.)*(pow(dReQ1n,2.)+pow(dImQ1n,2.))
7610 + 2.*(dMult-6.)*(pow(dReQ4n,2.)+pow(dImQ4n,2.))-2.*dMult*(dMult-12.))
7611 / (dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.));
7613 five5n2n1n1n1n = (reQ5nQ2nstarQ1nstarQ1nstarQ1nstar
7614 - reQ5nQ2nstarQ2nstarQ1nstar-reQ5nQ2nstarQ2nstarQ1nstar-reQ5nQ2nstarQ2nstarQ1nstar
7615 - reQ5nQ3nstarQ1nstarQ1nstar-reQ5nQ3nstarQ1nstarQ1nstar-reQ5nQ3nstarQ1nstarQ1nstar
7616 - reQ3nQ1nstarQ1nstarQ1nstar-reQ4nQ2nstarQ1nstarQ1nstar-reQ4nQ2nstarQ1nstarQ1nstar-reQ4nQ2nstarQ1nstarQ1nstar
7617 + 2.*(reQ5nQ4nstarQ1nstar+reQ5nQ4nstarQ1nstar+reQ5nQ4nstarQ1nstar+reQ5nQ3nstarQ2nstar)
7618 + reQ5nQ3nstarQ2nstar+reQ5nQ3nstarQ2nstar+reQ5nQ3nstarQ2nstar
7619 + reQ3nQ2nstarQ1nstar+reQ3nQ2nstarQ1nstar+reQ3nQ2nstarQ1nstar
7620 + reQ4nQ2nstarQ2nstar+reQ4nQ3nstarQ1nstar+reQ4nQ3nstarQ1nstar
7621 + reQ4nQ2nstarQ2nstar+reQ4nQ3nstarQ1nstar+reQ4nQ3nstarQ1nstar
7622 + reQ4nQ2nstarQ2nstar+reQ4nQ3nstarQ1nstar+reQ4nQ3nstarQ1nstar
7623 + 2.*(reQ2nQ1nstarQ1nstar+reQ2nQ1nstarQ1nstar+reQ2nQ1nstarQ1nstar)
7624 + 2.*(reQ3nQ2nstarQ1nstar+reQ3nQ2nstarQ1nstar+reQ3nQ2nstarQ1nstar)
7625 - 6.*(pow(dReQ5n,2.)+pow(dImQ5n,2.))
7626 - 2.*(pow(dReQ3n,2.)+pow(dImQ3n,2.)+pow(dReQ4n,2.)+pow(dImQ4n,2.)+pow(dReQ4n,2.)+pow(dImQ4n,2.)+pow(dReQ4n,2.)+pow(dImQ4n,2.))
7627 - 2.*(pow(dReQ2n,2.)+pow(dImQ2n,2.)+pow(dReQ2n,2.)+pow(dImQ2n,2.)+pow(dReQ2n,2.)+pow(dImQ2n,2.))
7628 - 2.*(pow(dReQ3n,2.)+pow(dImQ3n,2.)+pow(dReQ3n,2.)+pow(dImQ3n,2.)+pow(dReQ3n,2.)+pow(dImQ3n,2.))
7629 - 6.*(pow(dReQ2n,2.)+pow(dImQ2n,2.)+pow(dReQ1n,2.)+pow(dImQ1n,2.)+pow(dReQ1n,2.)+pow(dImQ1n,2.)+pow(dReQ1n,2.)+pow(dImQ1n,2.))
7631 / (dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.));
7633 five5n1n2n2n2n = (reQ5nQ1nQ2nstarQ2nstarQ2nstar
7634 - reQ5nQ1nQ4nstarQ2nstar-reQ5nQ1nQ4nstarQ2nstar-reQ5nQ1nQ4nstarQ2nstar
7635 - reQ5nQ2nstarQ2nstarQ1nstar-reQ5nQ2nstarQ2nstarQ1nstar-reQ5nQ2nstarQ2nstarQ1nstar
7636 - reQ6nQ2nstarQ2nstarQ2nstar-reQ3nQ1nQ2nstarQ2nstar-reQ3nQ1nQ2nstarQ2nstar-reQ3nQ1nQ2nstarQ2nstar
7637 + 2.*(reQ5nQ3nstarQ2nstar+reQ5nQ3nstarQ2nstar+reQ5nQ3nstarQ2nstar+reQ6nQ5nstarQ1nstar)
7638 + reQ5nQ4nstarQ1nstar+reQ5nQ4nstarQ1nstar+reQ5nQ4nstarQ1nstar
7639 + reQ6nQ4nstarQ2nstar+reQ6nQ4nstarQ2nstar+reQ6nQ4nstarQ2nstar
7640 + reQ4nQ3nstarQ1nstar+reQ3nQ2nstarQ1nstar+reQ3nQ2nstarQ1nstar
7641 + reQ4nQ3nstarQ1nstar+reQ3nQ2nstarQ1nstar+reQ3nQ2nstarQ1nstar
7642 + reQ4nQ3nstarQ1nstar+reQ3nQ2nstarQ1nstar+reQ3nQ2nstarQ1nstar
7643 + 2.*(reQ4nQ2nstarQ2nstar+reQ4nQ2nstarQ2nstar+reQ4nQ2nstarQ2nstar)
7644 + 2.*(reQ2nQ1nstarQ1nstar+reQ2nQ1nstarQ1nstar+reQ2nQ1nstarQ1nstar)
7645 - 6.*(pow(dReQ5n,2.)+pow(dImQ5n,2.))
7646 - 2.*(pow(dReQ6n,2.)+pow(dImQ6n,2.)+pow(dReQ3n,2.)+pow(dImQ3n,2.)+pow(dReQ3n,2.)+pow(dImQ3n,2.)+pow(dReQ3n,2.)+pow(dImQ3n,2.))
7647 - 2.*(pow(dReQ4n,2.)+pow(dImQ4n,2.)+pow(dReQ4n,2.)+pow(dImQ4n,2.)+pow(dReQ4n,2.)+pow(dImQ4n,2.))
7648 - 2.*(pow(dReQ1n,2.)+pow(dImQ1n,2.)+pow(dReQ1n,2.)+pow(dImQ1n,2.)+pow(dReQ1n,2.)+pow(dImQ1n,2.))
7649 - 6.*(pow(dReQ1n,2.)+pow(dImQ1n,2.)+pow(dReQ2n,2.)+pow(dImQ2n,2.)+pow(dReQ2n,2.)+pow(dImQ2n,2.)+pow(dReQ2n,2.)+pow(dImQ2n,2.))
7651 / (dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.));
7653 five5n2n3n2n2n = (reQ5nQ2nQ3nstarQ2nstarQ2nstar
7654 - reQ5nQ2nQ4nstarQ3nstar
7655 - (pow(dReQ5n,2.)+pow(dImQ5n,2.))*(pow(dReQ2n,2.)+pow(dImQ2n,2.))
7656 - reQ5nQ2nstarQ2nstarQ1nstar
7657 - reQ7nQ3nstarQ2nstarQ2nstar
7658 - (pow(dReQ3n,2.)+pow(dImQ3n,2.))*(pow(dReQ2n,2.)+pow(dImQ2n,2.))
7659 - dMult*reQ5nQ3nstarQ2nstar
7660 + dMult*(pow(dReQ2n,2.)+pow(dImQ2n,2.))
7661 + reQ7nQ5nstarQ2nstar
7662 + 3.*reQ5nQ3nstarQ2nstar
7663 + 2.*reQ7nQ5nstarQ2nstar
7664 + reQ5nQ4nstarQ1nstar
7665 + reQ7nQ4nstarQ3nstar
7666 + dMult*(pow(dReQ5n,2.)+pow(dImQ5n,2.))
7667 + dMult*(pow(dReQ2n,2.)+pow(dImQ2n,2.))
7668 + reQ7nQ5nstarQ2nstar
7669 + reQ3nQ2nstarQ1nstar
7670 - (dMult-6.)*reQ5nQ3nstarQ2nstar
7671 + 3.*reQ4nQ2nstarQ2nstar
7672 + dMult*(pow(dReQ2n,2.)+pow(dImQ2n,2.))
7673 + 2.*reQ3nQ2nstarQ1nstar
7674 + 3.*reQ5nQ3nstarQ2nstar
7675 + dMult*(pow(dReQ3n,2.)+pow(dImQ3n,2.))
7676 + reQ3nQ2nstarQ1nstar
7677 - (pow(dReQ2n,2.)+pow(dImQ2n,2.))*(pow(dReQ5n,2.)+pow(dImQ5n,2.))
7678 - (pow(dReQ2n,2.)+pow(dImQ2n,2.))*(pow(dReQ2n,2.)+pow(dImQ2n,2.))
7679 - (pow(dReQ2n,2.)+pow(dImQ2n,2.))*(pow(dReQ3n,2.)+pow(dImQ3n,2.))
7680 - 2.*(pow(dReQ7n,2.)+pow(dImQ7n,2.))
7681 - 2.*(pow(dReQ3n,2.)+pow(dImQ3n,2.))
7682 - 2.*(pow(dReQ4n,2.)+pow(dImQ4n,2.))
7684 - 2.*(pow(dReQ5n,2.)+pow(dImQ5n,2.))
7685 - 2.*(pow(dReQ1n,2.)+pow(dImQ1n,2.))
7686 + (dMult-8.)*(pow(dReQ5n,2.)+pow(dImQ5n,2.))
7687 + (dMult-8.)*(pow(dReQ3n,2.)+pow(dImQ3n,2.))
7688 + (dMult-8.)*(pow(dReQ2n,2.)+pow(dImQ2n,2.))
7689 + 2.*(dMult-6.)*(pow(dReQ2n,2.)+pow(dImQ2n,2.))-2.*dMult*(dMult-12.))
7690 / (dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.));
7692 five5n3n3n3n2n = (reQ5nQ3nQ3nstarQ3nstarQ2nstar
7693 - (pow(dReQ5n,2.)+pow(dImQ5n,2.))*(pow(dReQ3n,2.)+pow(dImQ3n,2.))
7694 - reQ6nQ2nQ5nstarQ3nstar
7695 - dMult*reQ5nQ3nstarQ2nstar
7696 - reQ8nQ3nstarQ3nstarQ2nstar
7697 - (pow(dReQ3n,2.)+pow(dImQ3n,2.))*(pow(dReQ2n,2.)+pow(dImQ2n,2.))
7698 - reQ5nQ1nQ3nstarQ3nstar
7699 + reQ3nQ2nstarQ1nstar
7700 + reQ8nQ5nstarQ3nstar
7701 + 3.*reQ5nQ3nstarQ2nstar
7702 + 2.*reQ8nQ5nstarQ3nstar
7703 + dMult*(pow(dReQ5n,2.)+pow(dImQ5n,2.))
7704 + reQ8nQ5nstarQ3nstar
7705 + reQ6nQ5nstarQ1nstar
7706 + reQ3nQ2nstarQ1nstar
7707 + reQ8nQ6nstarQ2nstar
7708 + dMult*(pow(dReQ2n,2.)+pow(dImQ2n,2.))
7709 - (dMult-6.)*reQ5nQ3nstarQ2nstar
7710 + 3.*reQ5nQ3nstarQ2nstar
7711 + reQ3nQ2nstarQ1nstar
7712 + 2.*dMult*(pow(dReQ3n,2.)+pow(dImQ3n,2.))
7713 + 3.*reQ6nQ3nstarQ3nstar
7714 + reQ3nQ2nstarQ1nstar
7715 + dMult*(pow(dReQ3n,2.)+pow(dImQ3n,2.))
7716 - (pow(dReQ3n,2.)+pow(dImQ3n,2.))*(pow(dReQ5n,2.)+pow(dImQ5n,2.))
7717 - (pow(dReQ3n,2.)+pow(dImQ3n,2.))*(pow(dReQ2n,2.)+pow(dImQ2n,2.))
7718 - (pow(dReQ3n,2.)+pow(dImQ3n,2.))*(pow(dReQ3n,2.)+pow(dImQ3n,2.))
7719 - 2.*(pow(dReQ8n,2.)+pow(dImQ8n,2.))
7720 - 2.*(pow(dReQ2n,2.)+pow(dImQ2n,2.))
7721 - 2.*(pow(dReQ5n,2.)+pow(dImQ5n,2.))
7722 - 2.*(pow(dReQ1n,2.)+pow(dImQ1n,2.))
7723 - 2.*(pow(dReQ6n,2.)+pow(dImQ6n,2.))
7725 + (dMult-8.)*(pow(dReQ5n,2.)+pow(dImQ5n,2.))
7726 + (dMult-8.)*(pow(dReQ3n,2.)+pow(dImQ3n,2.))
7727 + (dMult-8.)*(pow(dReQ2n,2.)+pow(dImQ2n,2.))
7728 + 2.*(dMult-6.)*(pow(dReQ3n,2.)+pow(dImQ3n,2.))-2.*dMult*(dMult-12.))
7729 / (dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.));
7731 five5n1n4n1n1n = (reQ5nQ1nQ4nstarQ1nstarQ1nstar
7732 - reQ5nQ1nQ4nstarQ2nstar
7733 - (pow(dReQ5n,2.)+pow(dImQ5n,2.))*(pow(dReQ1n,2.)+pow(dImQ1n,2.))
7734 - reQ5nQ3nstarQ1nstarQ1nstar
7735 - reQ6nQ4nstarQ1nstarQ1nstar
7736 - (pow(dReQ4n,2.)+pow(dImQ4n,2.))*(pow(dReQ1n,2.)+pow(dImQ1n,2.))
7737 - dMult*reQ5nQ4nstarQ1nstar
7738 + dMult*(pow(dReQ1n,2.)+pow(dImQ1n,2.))
7739 + reQ6nQ5nstarQ1nstar
7740 + 3.*reQ5nQ4nstarQ1nstar
7741 + 2.*reQ6nQ5nstarQ1nstar
7742 + reQ5nQ3nstarQ2nstar
7743 + reQ6nQ4nstarQ2nstar
7744 + dMult*(pow(dReQ5n,2.)+pow(dImQ5n,2.))
7745 + dMult*(pow(dReQ1n,2.)+pow(dImQ1n,2.))
7746 + reQ6nQ5nstarQ1nstar
7747 + reQ4nQ3nstarQ1nstar
7748 - (dMult-6.)*reQ5nQ4nstarQ1nstar
7749 + 3.*reQ2nQ1nstarQ1nstar
7750 + dMult*(pow(dReQ1n,2.)+pow(dImQ1n,2.))
7751 + 2.*reQ4nQ3nstarQ1nstar
7752 + 3.*reQ5nQ4nstarQ1nstar
7753 + dMult*(pow(dReQ4n,2.)+pow(dImQ4n,2.))
7754 + reQ4nQ3nstarQ1nstar
7755 - (pow(dReQ1n,2.)+pow(dImQ1n,2.))*(pow(dReQ5n,2.)+pow(dImQ5n,2.))
7756 - (pow(dReQ1n,2.)+pow(dImQ1n,2.))*(pow(dReQ1n,2.)+pow(dImQ1n,2.))
7757 - (pow(dReQ1n,2.)+pow(dImQ1n,2.))*(pow(dReQ4n,2.)+pow(dImQ4n,2.))
7758 - 2.*(pow(dReQ6n,2.)+pow(dImQ6n,2.))
7759 - 2.*(pow(dReQ4n,2.)+pow(dImQ4n,2.))
7760 - 2.*(pow(dReQ2n,2.)+pow(dImQ2n,2.))
7762 - 2.*(pow(dReQ5n,2.)+pow(dImQ5n,2.))
7763 - 2.*(pow(dReQ3n,2.)+pow(dImQ3n,2.))
7764 + (dMult-8.)*(pow(dReQ5n,2.)+pow(dImQ5n,2.))
7765 + (dMult-8.)*(pow(dReQ4n,2.)+pow(dImQ4n,2.))
7766 + (dMult-8.)*(pow(dReQ1n,2.)+pow(dImQ1n,2.))
7767 + 2.*(dMult-6.)*(pow(dReQ1n,2.)+pow(dImQ1n,2.))-2.*dMult*(dMult-12.))
7768 / (dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.));
7770 five5n4n3n3n3n = (reQ5nQ4nQ3nstarQ3nstarQ3nstar
7771 - reQ6nQ3nQ5nstarQ4nstar-reQ6nQ3nQ5nstarQ4nstar-reQ6nQ3nQ5nstarQ4nstar
7772 - reQ5nQ1nQ3nstarQ3nstar-reQ5nQ1nQ3nstarQ3nstar-reQ5nQ1nQ3nstarQ3nstar
7773 - reQ9nQ3nstarQ3nstarQ3nstar-reQ4nQ2nQ3nstarQ3nstar-reQ4nQ2nQ3nstarQ3nstar-reQ4nQ2nQ3nstarQ3nstar
7774 + 2.*(reQ5nQ3nstarQ2nstar+reQ5nQ3nstarQ2nstar+reQ5nQ3nstarQ2nstar+reQ9nQ5nstarQ4nstar)
7775 + reQ6nQ5nstarQ1nstar+reQ6nQ5nstarQ1nstar+reQ6nQ5nstarQ1nstar
7776 + reQ9nQ6nstarQ3nstar+reQ9nQ6nstarQ3nstar+reQ9nQ6nstarQ3nstar
7777 + reQ6nQ4nstarQ2nstar+reQ3nQ2nstarQ1nstar+reQ3nQ2nstarQ1nstar
7778 + reQ6nQ4nstarQ2nstar+reQ3nQ2nstarQ1nstar+reQ3nQ2nstarQ1nstar
7779 + reQ6nQ4nstarQ2nstar+reQ3nQ2nstarQ1nstar+reQ3nQ2nstarQ1nstar
7780 + 2.*(reQ6nQ3nstarQ3nstar+reQ6nQ3nstarQ3nstar+reQ6nQ3nstarQ3nstar)
7781 + 2.*(reQ4nQ3nstarQ1nstar+reQ4nQ3nstarQ1nstar+reQ4nQ3nstarQ1nstar)
7782 - 6.*(pow(dReQ5n,2.)+pow(dImQ5n,2.))
7783 - 2.*(pow(dReQ9n,2.)+pow(dImQ9n,2.)+pow(dReQ2n,2.)+pow(dImQ2n,2.)+pow(dReQ2n,2.)+pow(dImQ2n,2.)+pow(dReQ2n,2.)+pow(dImQ2n,2.))
7784 - 2.*(pow(dReQ6n,2.)+pow(dImQ6n,2.)+pow(dReQ6n,2.)+pow(dImQ6n,2.)+pow(dReQ6n,2.)+pow(dImQ6n,2.))
7785 - 2.*(pow(dReQ1n,2.)+pow(dImQ1n,2.)+pow(dReQ1n,2.)+pow(dImQ1n,2.)+pow(dReQ1n,2.)+pow(dImQ1n,2.))
7786 - 6.*(pow(dReQ4n,2.)+pow(dImQ4n,2.)+pow(dReQ3n,2.)+pow(dImQ3n,2.)+pow(dReQ3n,2.)+pow(dImQ3n,2.)+pow(dReQ3n,2.)+pow(dImQ3n,2.))
7788 / (dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.));
7790 five5n4n4n4n1n = (reQ5nQ4nQ4nstarQ4nstarQ1nstar
7791 - (pow(dReQ5n,2.)+pow(dImQ5n,2.))*(pow(dReQ4n,2.)+pow(dImQ4n,2.))
7792 - reQ8nQ1nQ5nstarQ4nstar
7793 - dMult*reQ5nQ4nstarQ1nstar
7794 - reQ9nQ4nstarQ4nstarQ1nstar
7795 - (pow(dReQ4n,2.)+pow(dImQ4n,2.))*(pow(dReQ1n,2.)+pow(dImQ1n,2.))
7796 - reQ5nQ3nQ4nstarQ4nstar
7797 + reQ4nQ3nstarQ1nstar
7798 + reQ9nQ5nstarQ4nstar
7799 + 3.*reQ5nQ4nstarQ1nstar
7800 + 2.*reQ9nQ5nstarQ4nstar
7801 + dMult*(pow(dReQ5n,2.)+pow(dImQ5n,2.))
7802 + reQ9nQ5nstarQ4nstar
7803 + reQ8nQ5nstarQ3nstar
7804 + reQ4nQ3nstarQ1nstar
7805 + reQ9nQ8nstarQ1nstar
7806 + dMult*(pow(dReQ1n,2.)+pow(dImQ1n,2.))
7807 - (dMult-6.)*reQ5nQ4nstarQ1nstar
7808 + 3.*reQ5nQ4nstarQ1nstar
7809 + reQ4nQ3nstarQ1nstar
7810 + 2.*dMult*(pow(dReQ4n,2.)+pow(dImQ4n,2.))
7811 + 3.*reQ8nQ4nstarQ4nstar
7812 + reQ4nQ3nstarQ1nstar
7813 + dMult*(pow(dReQ4n,2.)+pow(dImQ4n,2.))
7814 - (pow(dReQ4n,2.)+pow(dImQ4n,2.))*(pow(dReQ5n,2.)+pow(dImQ5n,2.))
7815 - (pow(dReQ4n,2.)+pow(dImQ4n,2.))*(pow(dReQ1n,2.)+pow(dImQ1n,2.))
7816 - (pow(dReQ4n,2.)+pow(dImQ4n,2.))*(pow(dReQ4n,2.)+pow(dImQ4n,2.))
7817 - 2.*(pow(dReQ9n,2.)+pow(dImQ9n,2.))
7818 - 2.*(pow(dReQ1n,2.)+pow(dImQ1n,2.))
7819 - 2.*(pow(dReQ5n,2.)+pow(dImQ5n,2.))
7820 - 2.*(pow(dReQ3n,2.)+pow(dImQ3n,2.))
7821 - 2.*(pow(dReQ8n,2.)+pow(dImQ8n,2.))
7823 + (dMult-8.)*(pow(dReQ5n,2.)+pow(dImQ5n,2.))
7824 + (dMult-8.)*(pow(dReQ4n,2.)+pow(dImQ4n,2.))
7825 + (dMult-8.)*(pow(dReQ1n,2.)+pow(dImQ1n,2.))
7826 + 2.*(dMult-6.)*(pow(dReQ4n,2.)+pow(dImQ4n,2.))-2.*dMult*(dMult-12.))
7827 / (dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.));
7829 five5n5n4n3n3n = (reQ5nQ5nQ4nstarQ3nstarQ3nstar
7830 - reQ6nQ4nQ5nstarQ5nstar-reQ7nQ3nQ5nstarQ5nstar-reQ7nQ3nQ5nstarQ5nstar
7831 - reQ5nQ2nQ4nstarQ3nstar-reQ5nQ1nQ3nstarQ3nstar-reQ5nQ2nQ4nstarQ3nstar
7832 - reQ10nQ4nstarQ3nstarQ3nstar-reQ5nQ2nQ4nstarQ3nstar-reQ5nQ1nQ3nstarQ3nstar-reQ5nQ2nQ4nstarQ3nstar
7833 + 2.*(reQ5nQ4nstarQ1nstar+reQ5nQ3nstarQ2nstar+reQ5nQ3nstarQ2nstar+reQ10nQ5nstarQ5nstar)
7834 + reQ6nQ5nstarQ1nstar+reQ7nQ5nstarQ2nstar+reQ7nQ5nstarQ2nstar
7835 + reQ10nQ7nstarQ3nstar+reQ10nQ6nstarQ4nstar+reQ10nQ7nstarQ3nstar
7836 + reQ6nQ5nstarQ1nstar+reQ3nQ2nstarQ1nstar+reQ3nQ2nstarQ1nstar
7837 + reQ7nQ5nstarQ2nstar+reQ3nQ2nstarQ1nstar+reQ4nQ2nstarQ2nstar
7838 + reQ7nQ5nstarQ2nstar+reQ3nQ2nstarQ1nstar+reQ4nQ2nstarQ2nstar
7839 + 2.*(reQ7nQ4nstarQ3nstar+reQ7nQ4nstarQ3nstar+reQ6nQ3nstarQ3nstar)
7840 + 2.*(reQ5nQ4nstarQ1nstar+reQ5nQ3nstarQ2nstar+reQ5nQ3nstarQ2nstar)
7841 - 6.*(pow(dReQ5n,2.)+pow(dImQ5n,2.))
7842 - 2.*(pow(dReQ10n,2.)+pow(dImQ10n,2.)+pow(dReQ2n,2.)+pow(dImQ2n,2.)+pow(dReQ2n,2.)+pow(dImQ2n,2.)+pow(dReQ1n,2.)+pow(dImQ1n,2.))
7843 - 2.*(pow(dReQ6n,2.)+pow(dImQ6n,2.)+pow(dReQ7n,2.)+pow(dImQ7n,2.)+pow(dReQ7n,2.)+pow(dImQ7n,2.))
7844 - 2.*(pow(dReQ2n,2.)+pow(dImQ2n,2.)+pow(dReQ2n,2.)+pow(dImQ2n,2.)+pow(dReQ1n,2.)+pow(dImQ1n,2.))
7845 - 6.*(pow(dReQ5n,2.)+pow(dImQ5n,2.)+pow(dReQ4n,2.)+pow(dImQ4n,2.)+pow(dReQ3n,2.)+pow(dImQ3n,2.)+pow(dReQ3n,2.)+pow(dImQ3n,2.))
7847 / (dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.));
7849 five5n5n4n4n2n = (reQ5nQ5nQ4nstarQ4nstarQ2nstar
7850 - reQ6nQ4nQ5nstarQ5nstar-reQ6nQ4nQ5nstarQ5nstar-reQ8nQ2nQ5nstarQ5nstar
7851 - reQ5nQ1nQ4nstarQ2nstar-reQ5nQ1nQ4nstarQ2nstar-reQ5nQ3nQ4nstarQ4nstar
7852 - reQ10nQ4nstarQ4nstarQ2nstar-reQ5nQ3nQ4nstarQ4nstar-reQ5nQ1nQ4nstarQ2nstar-reQ5nQ1nQ4nstarQ2nstar
7853 + 2.*(reQ5nQ4nstarQ1nstar+reQ5nQ3nstarQ2nstar+reQ5nQ4nstarQ1nstar+reQ10nQ5nstarQ5nstar)
7854 + reQ6nQ5nstarQ1nstar+reQ6nQ5nstarQ1nstar+reQ8nQ5nstarQ3nstar
7855 + reQ10nQ8nstarQ2nstar+reQ10nQ6nstarQ4nstar+reQ10nQ6nstarQ4nstar
7856 + reQ6nQ5nstarQ1nstar+reQ2nQ1nstarQ1nstar+reQ4nQ3nstarQ1nstar
7857 + reQ6nQ5nstarQ1nstar+reQ2nQ1nstarQ1nstar+reQ4nQ3nstarQ1nstar
7858 + reQ8nQ5nstarQ3nstar+reQ4nQ3nstarQ1nstar+reQ4nQ3nstarQ1nstar
7859 + 2.*(reQ8nQ4nstarQ4nstar+reQ6nQ4nstarQ2nstar+reQ6nQ4nstarQ2nstar)
7860 + 2.*(reQ5nQ4nstarQ1nstar+reQ5nQ4nstarQ1nstar+reQ5nQ3nstarQ2nstar)
7861 - 6.*(pow(dReQ5n,2.)+pow(dImQ5n,2.))
7862 - 2.*(pow(dReQ10n,2.)+pow(dImQ10n,2.)+pow(dReQ1n,2.)+pow(dImQ1n,2.)+pow(dReQ3n,2.)+pow(dImQ3n,2.)+pow(dReQ1n,2.)+pow(dImQ1n,2.))
7863 - 2.*(pow(dReQ6n,2.)+pow(dImQ6n,2.)+pow(dReQ6n,2.)+pow(dImQ6n,2.)+pow(dReQ8n,2.)+pow(dImQ8n,2.))
7864 - 2.*(pow(dReQ3n,2.)+pow(dImQ3n,2.)+pow(dReQ1n,2.)+pow(dImQ1n,2.)+pow(dReQ1n,2.)+pow(dImQ1n,2.))
7865 - 6.*(pow(dReQ5n,2.)+pow(dImQ5n,2.)+pow(dReQ4n,2.)+pow(dImQ4n,2.)+pow(dReQ4n,2.)+pow(dImQ4n,2.)+pow(dReQ2n,2.)+pow(dImQ2n,2.))
7867 / (dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.));
7869 five5n5n5n3n2n = (reQ5nQ5nQ5nstarQ3nstarQ2nstar
7870 - reQ7nQ3nQ5nstarQ5nstar
7871 - reQ8nQ2nQ5nstarQ5nstar
7872 - (pow(dReQ5n,2.)+pow(dImQ5n,2.))*(pow(dReQ2n,2.)+pow(dImQ2n,2.))
7873 - reQ10nQ5nstarQ3nstarQ2nstar
7874 - dMult*reQ5nQ3nstarQ2nstar
7875 - (pow(dReQ5n,2.)+pow(dImQ5n,2.))*(pow(dReQ3n,2.)+pow(dImQ3n,2.))
7876 + reQ5nQ3nstarQ2nstar
7877 + reQ10nQ5nstarQ5nstar
7878 + 3.*dMult*(pow(dReQ5n,2.)+pow(dImQ5n,2.))
7879 + 2.*reQ10nQ5nstarQ5nstar
7880 + reQ7nQ5nstarQ2nstar
7881 + reQ10nQ7nstarQ3nstar
7882 + reQ8nQ5nstarQ3nstar
7883 + reQ5nQ3nstarQ2nstar
7884 + reQ10nQ8nstarQ2nstar
7885 + dMult*(pow(dReQ2n,2.)+pow(dImQ2n,2.))
7886 - (dMult-6.)*reQ5nQ3nstarQ2nstar
7887 + 3.*reQ7nQ5nstarQ2nstar
7888 + reQ5nQ3nstarQ2nstar
7889 + 2.*reQ5nQ3nstarQ2nstar
7890 + 3.*reQ8nQ5nstarQ3nstar
7891 + dMult*(pow(dReQ3n,2.)+pow(dImQ3n,2.))
7892 + reQ5nQ3nstarQ2nstar
7893 - (pow(dReQ5n,2.)+pow(dImQ5n,2.))*(pow(dReQ5n,2.)+pow(dImQ5n,2.))
7894 - (pow(dReQ5n,2.)+pow(dImQ5n,2.))*(pow(dReQ2n,2.)+pow(dImQ2n,2.))
7895 - (pow(dReQ5n,2.)+pow(dImQ5n,2.))*(pow(dReQ3n,2.)+pow(dImQ3n,2.))
7896 - 2.*(pow(dReQ10n,2.)+pow(dImQ10n,2.))
7898 - 2.*(pow(dReQ7n,2.)+pow(dImQ7n,2.))
7899 - 2.*(pow(dReQ3n,2.)+pow(dImQ3n,2.))
7900 - 2.*(pow(dReQ8n,2.)+pow(dImQ8n,2.))
7901 - 2.*(pow(dReQ2n,2.)+pow(dImQ2n,2.))
7902 + (dMult-8.)*(pow(dReQ5n,2.)+pow(dImQ5n,2.))
7903 + (dMult-8.)*(pow(dReQ3n,2.)+pow(dImQ3n,2.))
7904 + (dMult-8.)*(pow(dReQ2n,2.)+pow(dImQ2n,2.))
7905 + 2.*(dMult-6.)*(pow(dReQ5n,2.)+pow(dImQ5n,2.))-2.*dMult*(dMult-12.))
7906 / (dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.));
7908 five5n5n5n4n1n = (reQ5nQ5nQ5nstarQ4nstarQ1nstar
7909 - reQ6nQ4nQ5nstarQ5nstar
7910 - reQ9nQ1nQ5nstarQ5nstar
7911 - (pow(dReQ5n,2.)+pow(dImQ5n,2.))*(pow(dReQ1n,2.)+pow(dImQ1n,2.))
7912 - reQ10nQ5nstarQ4nstarQ1nstar
7913 - dMult*reQ5nQ4nstarQ1nstar
7914 - (pow(dReQ5n,2.)+pow(dImQ5n,2.))*(pow(dReQ4n,2.)+pow(dImQ4n,2.))
7915 + reQ5nQ4nstarQ1nstar
7916 + reQ10nQ5nstarQ5nstar
7917 + 3.*dMult*(pow(dReQ5n,2.)+pow(dImQ5n,2.))
7918 + 2.*reQ10nQ5nstarQ5nstar
7919 + reQ6nQ5nstarQ1nstar
7920 + reQ10nQ6nstarQ4nstar
7921 + reQ9nQ5nstarQ4nstar
7922 + reQ5nQ4nstarQ1nstar
7923 + reQ10nQ9nstarQ1nstar
7924 + dMult*(pow(dReQ1n,2.)+pow(dImQ1n,2.))
7925 - (dMult-6.)*reQ5nQ4nstarQ1nstar
7926 + 3.*reQ6nQ5nstarQ1nstar
7927 + reQ5nQ4nstarQ1nstar
7928 + 2.*reQ5nQ4nstarQ1nstar
7929 + 3.*reQ9nQ5nstarQ4nstar
7930 + dMult*(pow(dReQ4n,2.)+pow(dImQ4n,2.))
7931 + reQ5nQ4nstarQ1nstar
7932 - (pow(dReQ5n,2.)+pow(dImQ5n,2.))*(pow(dReQ5n,2.)+pow(dImQ5n,2.))
7933 - (pow(dReQ5n,2.)+pow(dImQ5n,2.))*(pow(dReQ1n,2.)+pow(dImQ1n,2.))
7934 - (pow(dReQ5n,2.)+pow(dImQ5n,2.))*(pow(dReQ4n,2.)+pow(dImQ4n,2.))
7935 - 2.*(pow(dReQ10n,2.)+pow(dImQ10n,2.))
7937 - 2.*(pow(dReQ6n,2.)+pow(dImQ6n,2.))
7938 - 2.*(pow(dReQ4n,2.)+pow(dImQ4n,2.))
7939 - 2.*(pow(dReQ9n,2.)+pow(dImQ9n,2.))
7940 - 2.*(pow(dReQ1n,2.)+pow(dImQ1n,2.))
7941 + (dMult-8.)*(pow(dReQ5n,2.)+pow(dImQ5n,2.))
7942 + (dMult-8.)*(pow(dReQ4n,2.)+pow(dImQ4n,2.))
7943 + (dMult-8.)*(pow(dReQ1n,2.)+pow(dImQ1n,2.))
7944 + 2.*(dMult-6.)*(pow(dReQ5n,2.)+pow(dImQ5n,2.))-2.*dMult*(dMult-12.))
7945 / (dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.));
7946 five6n2n2n1n1n = // calculated by Peter Jochumzsen
7947 (pow(dReQ1n*dReQ2n,2.)*dReQ6n-pow(dReQ2n*dImQ1n,2.)*dReQ6n
7948 - 4.*dReQ1n*dReQ2n*dReQ6n*dImQ1n*dImQ2n
7949 - pow(dReQ1n*dImQ2n,2.)*dReQ6n+pow(dImQ1n*dImQ2n,2.)*dReQ6n
7950 + 2.*dReQ1n*pow(dReQ2n,2.)*dImQ1n*dImQ6n+2.*pow(dReQ1n,2.)*dReQ2n*dImQ2n*dImQ6n
7951 - 2.*dReQ2n*pow(dImQ1n,2.)*dImQ2n*dImQ6n-2.*dReQ1n*dImQ1n*pow(dImQ2n,2.)*dImQ6n
7952 + 2.*(pow(dReQ1n,2.)*dReQ2n+2.*dReQ1n*dImQ1n*dImQ2n-pow(dImQ1n,2.)*dReQ2n)
7953 + 8.*(dReQ3n*dReQ2n*dReQ1n-dReQ3n*dImQ2n*dImQ1n+dImQ3n*dReQ2n*dImQ1n+dImQ3n*dImQ2n*dReQ1n)
7954 + 5.*(dReQ6n*dReQ4n*dReQ2n-dReQ6n*dImQ4n*dImQ2n+dImQ6n*dReQ4n*dImQ2n+dImQ6n*dImQ4n*dReQ2n)
7955 - (-pow(dImQ1n,2.)*dImQ4n*dImQ6n+dImQ4n*dImQ6n*pow(dReQ1n,2.)
7956 + 2.*dImQ1n*dImQ6n*dReQ1n*dReQ4n-2.*dImQ1n*dImQ4n*dReQ1n*dReQ6n
7957 - pow(dImQ1n,2.)*dReQ4n*dReQ6n+pow(dReQ1n,2.)*dReQ4n*dReQ6n)
7958 + 2.*(pow(dReQ3n,2.)*dReQ6n+2.*dReQ3n*dImQ3n*dImQ6n-pow(dImQ3n,2.)*dReQ6n)
7959 - (dReQ6n*pow(dReQ2n,3.)-3.*dReQ2n*dReQ6n*pow(dImQ2n,2.)
7960 + 3.*dImQ2n*dImQ6n*pow(dReQ2n,2.)-dImQ6n*pow(dImQ2n,3.))
7961 + 4.*(pow(dReQ2n,2.)*dReQ4n+2.*dReQ2n*dImQ2n*dImQ4n-pow(dImQ2n,2.)*dReQ4n)
7962 - 2.*((dReQ4n*dReQ2n+dImQ4n*dImQ2n)*(pow(dReQ1n,2.)-pow(dImQ1n,2.))
7963 + 2.*dReQ1n*dImQ1n*(dImQ4n*dReQ2n-dReQ4n*dImQ2n))
7964 + 2.*(dReQ5n*dReQ4n*dReQ1n-dReQ5n*dImQ4n*dImQ1n+dImQ5n*dReQ4n*dImQ1n+dImQ5n*dImQ4n*dReQ1n)
7965 - 2.*(-pow(dImQ2n,2.)*dImQ1n*dImQ5n+dImQ1n*dImQ5n*pow(dReQ2n,2.)
7966 + 2.*dImQ2n*dImQ5n*dReQ2n*dReQ1n-2.*dImQ2n*dImQ1n*dReQ2n*dReQ5n
7967 - pow(dImQ2n,2.)*dReQ1n*dReQ5n+pow(dReQ2n,2.)*dReQ1n*dReQ5n)
7968 + 4.*(dReQ4n*(dReQ3n*dReQ1n-dImQ3n*dImQ1n)+dImQ4n*(dReQ3n*dImQ1n+dImQ3n*dReQ1n))
7969 + 4.*(dReQ5n*dReQ2n*dReQ3n-dReQ5n*dImQ2n*dImQ3n+dImQ5n*dReQ2n*dImQ3n+dImQ5n*dImQ2n*dReQ3n)
7970 + 4.*(dReQ6n*dReQ5n*dReQ1n-dReQ6n*dImQ5n*dImQ1n+dImQ6n*dReQ5n*dImQ1n+dImQ6n*dImQ5n*dReQ1n)
7971 - 4.*(dReQ1n*dReQ2n*dReQ3n*dReQ6n-dReQ3n*dReQ6n*dImQ1n*dImQ2n
7972 - dReQ2n*dReQ6n*dImQ1n*dImQ3n-dReQ1n*dReQ6n*dImQ2n*dImQ3n
7973 + dReQ2n*dReQ3n*dImQ1n*dImQ6n+dReQ1n*dReQ3n*dImQ2n*dImQ6n
7974 + dReQ1n*dReQ2n*dImQ3n*dImQ6n-dImQ1n*dImQ2n*dImQ3n*dImQ6n)
7975 - 12.*pow(dReQ1n,2.)-12.*pow(dImQ1n,2.)-14.*pow(dReQ2n,2.)-14.*pow(dImQ2n,2.)
7976 - 8.*pow(dReQ3n,2.)-8.*pow(dImQ3n,2.)-6.*pow(dReQ4n,2.)-6.*pow(dImQ4n,2.)
7977 - 4.*pow(dReQ5n,2.)-4.*pow(dImQ5n,2.)-6.*pow(dReQ6n,2.)-6.*pow(dImQ6n,2.)+24.*dMult)
7978 / (dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.));
7980 five6n3n1n1n1n = (reQ6nQ3nstarQ1nstarQ1nstarQ1nstar
7981 - reQ6nQ3nstarQ2nstarQ1nstar-reQ6nQ3nstarQ2nstarQ1nstar-reQ6nQ3nstarQ2nstarQ1nstar
7982 - reQ6nQ4nstarQ1nstarQ1nstar-reQ6nQ4nstarQ1nstarQ1nstar-reQ6nQ4nstarQ1nstarQ1nstar
7983 - reQ3nQ1nstarQ1nstarQ1nstar-reQ5nQ3nstarQ1nstarQ1nstar-reQ5nQ3nstarQ1nstarQ1nstar-reQ5nQ3nstarQ1nstarQ1nstar
7984 + 2.*(reQ6nQ5nstarQ1nstar+reQ6nQ5nstarQ1nstar+reQ6nQ5nstarQ1nstar+reQ6nQ3nstarQ3nstar)
7985 + reQ6nQ4nstarQ2nstar+reQ6nQ4nstarQ2nstar+reQ6nQ4nstarQ2nstar
7986 + reQ3nQ2nstarQ1nstar+reQ3nQ2nstarQ1nstar+reQ3nQ2nstarQ1nstar
7987 + reQ5nQ3nstarQ2nstar+reQ5nQ4nstarQ1nstar+reQ5nQ4nstarQ1nstar
7988 + reQ5nQ3nstarQ2nstar+reQ5nQ4nstarQ1nstar+reQ5nQ4nstarQ1nstar
7989 + reQ5nQ3nstarQ2nstar+reQ5nQ4nstarQ1nstar+reQ5nQ4nstarQ1nstar
7990 + 2.*(reQ2nQ1nstarQ1nstar+reQ2nQ1nstarQ1nstar+reQ2nQ1nstarQ1nstar)
7991 + 2.*(reQ4nQ3nstarQ1nstar+reQ4nQ3nstarQ1nstar+reQ4nQ3nstarQ1nstar)
7992 - 6.*(pow(dReQ6n,2.)+pow(dImQ6n,2.))
7993 - 2.*(pow(dReQ3n,2.)+pow(dImQ3n,2.)+pow(dReQ5n,2.)+pow(dImQ5n,2.)+pow(dReQ5n,2.)+pow(dImQ5n,2.)+pow(dReQ5n,2.)+pow(dImQ5n,2.))
7994 - 2.*(pow(dReQ2n,2.)+pow(dImQ2n,2.)+pow(dReQ2n,2.)+pow(dImQ2n,2.)+pow(dReQ2n,2.)+pow(dImQ2n,2.))
7995 - 2.*(pow(dReQ4n,2.)+pow(dImQ4n,2.)+pow(dReQ4n,2.)+pow(dImQ4n,2.)+pow(dReQ4n,2.)+pow(dImQ4n,2.))
7996 - 6.*(pow(dReQ3n,2.)+pow(dImQ3n,2.)+pow(dReQ1n,2.)+pow(dImQ1n,2.)+pow(dReQ1n,2.)+pow(dImQ1n,2.)+pow(dReQ1n,2.)+pow(dImQ1n,2.))
7998 / (dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.));
8002 five6n1n1n4n4n = (reQ6nQ1nQ1nQ4nstarQ4nstar
8003 - reQ6nQ2nQ4nstarQ4nstar-reQ7nQ1nQ4nstarQ4nstar-reQ7nQ1nQ4nstarQ4nstar
8004 - reQ6nQ1nQ4nstarQ3nstar-reQ4nQ2nstarQ1nstarQ1nstar-reQ6nQ1nQ4nstarQ3nstar
8005 - reQ8nQ6nstarQ1nstarQ1nstar-reQ6nQ1nQ4nstarQ3nstar-reQ4nQ2nstarQ1nstarQ1nstar-reQ6nQ1nQ4nstarQ3nstar
8006 + 2.*(reQ6nQ4nstarQ2nstar+reQ4nQ3nstarQ1nstar+reQ4nQ3nstarQ1nstar+reQ8nQ4nstarQ4nstar)
8007 + reQ4nQ2nstarQ2nstar+reQ7nQ4nstarQ3nstar+reQ7nQ4nstarQ3nstar // ?? 1st term
8008 + reQ8nQ7nstarQ1nstar+reQ8nQ6nstarQ2nstar+reQ8nQ7nstarQ1nstar
8009 + reQ4nQ2nstarQ2nstar+reQ3nQ2nstarQ1nstar+reQ3nQ2nstarQ1nstar
8010 + reQ7nQ4nstarQ3nstar+reQ3nQ2nstarQ1nstar+reQ6nQ3nstarQ3nstar
8011 + reQ7nQ4nstarQ3nstar+reQ3nQ2nstarQ1nstar+reQ6nQ3nstarQ3nstar
8012 + 2.*(reQ7nQ6nstarQ1nstar+reQ7nQ6nstarQ1nstar+reQ2nQ1nstarQ1nstar)
8013 + 2.*(reQ6nQ4nstarQ2nstar+reQ4nQ3nstarQ1nstar+reQ4nQ3nstarQ1nstar)
8014 - 6.*(pow(dReQ4n,2.)+pow(dImQ4n,2.))
8015 - 2.*(pow(dReQ8n,2.)+pow(dImQ8n,2.)+pow(dReQ3n,2.)+pow(dImQ3n,2.)+pow(dReQ3n,2.)+pow(dImQ3n,2.)+pow(dReQ2n,2.)+pow(dImQ2n,2.))
8016 - 2.*(pow(dReQ2n,2.)+pow(dImQ2n,2.)+pow(dReQ7n,2.)+pow(dImQ7n,2.)+pow(dReQ7n,2.)+pow(dImQ7n,2.))
8017 - 2.*(pow(dReQ3n,2.)+pow(dImQ3n,2.)+pow(dReQ3n,2.)+pow(dImQ3n,2.)+pow(dReQ2n,2.)+pow(dImQ2n,2.))
8018 - 6.*(pow(dReQ4n,2.)+pow(dImQ4n,2.)+pow(dReQ6n,2.)+pow(dImQ6n,2.)+pow(dReQ1n,2.)+pow(dImQ1n,2.)+pow(dReQ1n,2.)+pow(dImQ1n,2.))
8020 / (dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.));
8023 five6n1n5n1n1n = (reQ6nQ1nQ5nstarQ1nstarQ1nstar
8024 - reQ6nQ1nQ5nstarQ2nstar
8025 - (pow(dReQ6n,2.)+pow(dImQ6n,2.))*(pow(dReQ1n,2.)+pow(dImQ1n,2.))
8026 - reQ6nQ4nstarQ1nstarQ1nstar
8027 - reQ7nQ5nstarQ1nstarQ1nstar
8028 - (pow(dReQ5n,2.)+pow(dImQ5n,2.))*(pow(dReQ1n,2.)+pow(dImQ1n,2.))
8029 - dMult*reQ6nQ5nstarQ1nstar
8030 + dMult*(pow(dReQ1n,2.)+pow(dImQ1n,2.))
8031 + reQ7nQ6nstarQ1nstar
8032 + 3.*reQ6nQ5nstarQ1nstar
8033 + 2.*reQ7nQ6nstarQ1nstar
8034 + reQ6nQ4nstarQ2nstar
8035 + reQ7nQ5nstarQ2nstar
8036 + dMult*(pow(dReQ6n,2.)+pow(dImQ6n,2.))
8037 + dMult*(pow(dReQ1n,2.)+pow(dImQ1n,2.))
8038 + reQ7nQ6nstarQ1nstar
8039 + reQ5nQ4nstarQ1nstar
8040 - (dMult-6.)*reQ6nQ5nstarQ1nstar
8041 + 3.*reQ2nQ1nstarQ1nstar
8042 + dMult*(pow(dReQ1n,2.)+pow(dImQ1n,2.))
8043 + 2.*reQ5nQ4nstarQ1nstar
8044 + 3.*reQ6nQ5nstarQ1nstar
8045 + dMult*(pow(dReQ5n,2.)+pow(dImQ5n,2.))
8046 + reQ5nQ4nstarQ1nstar
8047 - (pow(dReQ1n,2.)+pow(dImQ1n,2.))*(pow(dReQ6n,2.)+pow(dImQ6n,2.))
8048 - (pow(dReQ1n,2.)+pow(dImQ1n,2.))*(pow(dReQ1n,2.)+pow(dImQ1n,2.))
8049 - (pow(dReQ1n,2.)+pow(dImQ1n,2.))*(pow(dReQ5n,2.)+pow(dImQ5n,2.))
8050 - 2.*(pow(dReQ7n,2.)+pow(dImQ7n,2.))
8051 - 2.*(pow(dReQ5n,2.)+pow(dImQ5n,2.))
8052 - 2.*(pow(dReQ2n,2.)+pow(dImQ2n,2.))
8054 - 2.*(pow(dReQ6n,2.)+pow(dImQ6n,2.))
8055 - 2.*(pow(dReQ4n,2.)+pow(dImQ4n,2.))
8056 + (dMult-8.)*(pow(dReQ6n,2.)+pow(dImQ6n,2.))
8057 + (dMult-8.)*(pow(dReQ5n,2.)+pow(dImQ5n,2.))
8058 + (dMult-8.)*(pow(dReQ1n,2.)+pow(dImQ1n,2.))
8059 + 2.*(dMult-6.)*(pow(dReQ1n,2.)+pow(dImQ1n,2.))-2.*dMult*(dMult-12.))
8060 / (dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.));
8061 five6n2n4n2n2n = ((pow(dReQ2n,2.)+pow(dImQ2n,2.))*(dReQ2n*dReQ4n*dReQ6n-dReQ6n*dImQ2n*dImQ4n
8062 + dReQ4n*dImQ2n*dImQ6n+dReQ2n*dImQ4n*dImQ6n)
8063 - ((dReQ8n*dReQ4n+dImQ8n*dImQ4n)*(pow(dReQ2n,2)-pow(dImQ2n,2))
8064 + 2.*dReQ2n*dImQ2n*(dImQ8n*dReQ4n-dReQ8n*dImQ4n))
8065 - (dReQ6n*pow(dReQ2n,3)-3.*dReQ2n*dReQ6n*pow(dImQ2n,2)
8066 + 3.*dImQ2n*dImQ6n*pow(dReQ2n,2)-dImQ6n*pow(dImQ2n,3))
8067 - ((pow(dReQ4n,2.)-pow(dImQ4n,2.))*(dReQ6n*dReQ2n-dImQ6n*dImQ2n)
8068 + 2.*dReQ4n*dImQ4n*(dReQ6n*dImQ2n+dImQ6n*dReQ2n))
8069 + 4.*(dReQ8n*(dReQ6n*dReQ2n-dImQ6n*dImQ2n)+dImQ8n*(dReQ6n*dImQ2n+dImQ6n*dReQ2n))
8070 + pow(dReQ4n,2.)*dReQ8n+2.*dReQ4n*dImQ4n*dImQ8n-pow(dImQ4n,2.)*dReQ8n
8071 - (2.*dMult-13.)*(dReQ6n*dReQ4n*dReQ2n-dReQ6n*dImQ4n*dImQ2n+dImQ6n*dReQ4n*dImQ2n
8072 + dImQ6n*dImQ4n*dReQ2n)
8073 + 7.*(pow(dReQ2n,2.)*dReQ4n+2.*dReQ2n*dImQ2n*dImQ4n-pow(dImQ2n,2.)*dReQ4n)
8074 - 2.*(pow(dReQ8n,2.)+pow(dImQ8n,2.))
8075 + 2.*(dMult-5.)*(pow(dReQ6n,2.)+pow(dImQ6n,2.))
8076 - 2.*(pow(dReQ6n,2.)+pow(dImQ6n,2.))*(pow(dReQ2n,2.)+pow(dImQ2n,2.))
8077 + 2.*(dMult-6.)*(pow(dReQ4n,2.)+pow(dImQ4n,2.))
8078 - 2.*(pow(dReQ4n,2.)+pow(dImQ4n,2.))*(pow(dReQ2n,2.)+pow(dImQ2n,2.))
8079 - pow((pow(dReQ2n,2.)+pow(dImQ2n,2.)),2.)
8080 + 2.*(3.*dMult-11.)*(pow(dReQ2n,2.)+pow(dImQ2n,2.))-4.*dMult*(dMult-6.))
8081 / (dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.));
8082 five6n4n4n4n2n = ((pow(dImQ4n,2.)+pow(dReQ4n,2.))*(dImQ4n*dImQ6n*dReQ2n+dImQ2n*dImQ6n*dReQ4n
8083 - dImQ2n*dImQ4n*dReQ6n+dReQ2n*dReQ4n*dReQ6n)
8084 - (-pow(dImQ4n,2.)*dImQ2n*dImQ10n+dImQ2n*dImQ10n*pow(dReQ4n,2.)
8085 + 2.*dImQ4n*dImQ10n*dReQ4n*dReQ2n-2.*dImQ4n*dImQ2n*dReQ4n*dReQ10n
8086 - pow(dImQ4n,2.)*dReQ2n*dReQ10n+pow(dReQ4n,2.)*dReQ2n*dReQ10n)
8087 - (dImQ2n*dImQ4n*dImQ6n*dImQ8n+dImQ6n*dImQ8n*dReQ2n*dReQ4n
8088 + dImQ4n*dImQ8n*dReQ2n*dReQ6n-dImQ2n*dImQ8n*dReQ4n*dReQ6n
8089 - dImQ4n*dImQ6n*dReQ2n*dReQ8n+dImQ2n*dImQ6n*dReQ4n*dReQ8n
8090 + dImQ2n*dImQ4n*dReQ6n*dReQ8n+dReQ2n*dReQ4n*dReQ6n*dReQ8n)
8091 - ((pow(dReQ4n,2.)-pow(dImQ4n,2.))*(dReQ6n*dReQ2n-dImQ6n*dImQ2n)
8092 + 2.*dReQ4n*dImQ4n*(dReQ6n*dImQ2n+dImQ6n*dReQ2n))
8093 - 2.*(pow(dReQ6n,2.)+pow(dImQ6n,2.))*(pow(dReQ4n,2.)+pow(dImQ4n,2.))
8094 + (dReQ10n*dReQ8n*dReQ2n-dReQ10n*dImQ8n*dImQ2n+dImQ10n*dReQ8n*dImQ2n+dImQ10n*dImQ8n*dReQ2n)
8095 + 4.*(dReQ10n*dReQ4n*dReQ6n-dReQ10n*dImQ4n*dImQ6n+dImQ10n*dReQ4n*dImQ6n+dImQ10n*dImQ4n*dReQ6n)
8096 + dReQ8n*(dReQ6n*dReQ2n-dImQ6n*dImQ2n)+dImQ8n*(dReQ6n*dImQ2n+dImQ6n*dReQ2n)
8097 + 3.*(pow(dReQ4n,2.)*dReQ8n+2.*dReQ4n*dImQ4n*dImQ8n-pow(dImQ4n,2.)*dReQ8n)
8098 - 2.*(dMult-6.)*(dReQ6n*dReQ4n*dReQ2n-dReQ6n*dImQ4n*dImQ2n+dImQ6n*dReQ4n*dImQ2n+dImQ6n*dImQ4n*dReQ2n)
8099 + 4.*(pow(dReQ2n,2.)*dReQ4n+2.*dReQ2n*dImQ2n*dImQ4n-pow(dImQ2n,2.)*dReQ4n)
8100 - 2.*(pow(dReQ10n,2.)+pow(dImQ10n,2.))
8101 - 2.*(pow(dReQ8n,2.)+pow(dImQ8n,2.))+2.*(dMult-5.)*(pow(dReQ6n,2.)+pow(dImQ6n,2.))
8102 - 2.*(pow(dReQ4n,2.)+pow(dImQ4n,2.))*(pow(dReQ2n,2.)+pow(dImQ2n,2.))
8103 - pow((pow(dReQ4n,2.)+pow(dImQ4n,2.)),2.)+2.*(3.*dMult-10.)*(pow(dReQ4n,2.)+pow(dImQ4n,2.))
8104 + 2.*(dMult-6.)*(pow(dReQ2n,2.)+pow(dImQ2n,2.))-4.*dMult*(dMult-6.))
8105 / (dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.));
8107 five6n2n2n5n5n = (reQ6nQ2nQ2nQ5nstarQ5nstar
8108 - reQ6nQ4nQ5nstarQ5nstar-reQ8nQ2nQ5nstarQ5nstar-reQ8nQ2nQ5nstarQ5nstar
8109 - reQ6nQ2nQ5nstarQ3nstar-reQ5nQ2nstarQ2nstarQ1nstar-reQ6nQ2nQ5nstarQ3nstar
8110 - reQ10nQ6nstarQ2nstarQ2nstar-reQ6nQ2nQ5nstarQ3nstar-reQ5nQ2nstarQ2nstarQ1nstar-reQ6nQ2nQ5nstarQ3nstar
8111 + 2.*(reQ6nQ5nstarQ1nstar+reQ5nQ3nstarQ2nstar+reQ5nQ3nstarQ2nstar+reQ10nQ5nstarQ5nstar)
8112 + reQ5nQ4nstarQ1nstar+reQ8nQ5nstarQ3nstar+reQ8nQ5nstarQ3nstar
8113 + reQ10nQ8nstarQ2nstar+reQ10nQ6nstarQ4nstar+reQ10nQ8nstarQ2nstar
8114 + reQ5nQ4nstarQ1nstar+reQ3nQ2nstarQ1nstar+reQ3nQ2nstarQ1nstar
8115 + reQ8nQ5nstarQ3nstar+reQ3nQ2nstarQ1nstar+reQ6nQ3nstarQ3nstar
8116 + reQ8nQ5nstarQ3nstar+reQ3nQ2nstarQ1nstar+reQ6nQ3nstarQ3nstar
8117 + 2.*(reQ8nQ6nstarQ2nstar+reQ8nQ6nstarQ2nstar+reQ4nQ2nstarQ2nstar)
8118 + 2.*(reQ6nQ5nstarQ1nstar+reQ5nQ3nstarQ2nstar+reQ5nQ3nstarQ2nstar)
8119 - 6.*(pow(dReQ5n,2.)+pow(dImQ5n,2.))
8120 - 2.*(pow(dReQ10n,2.)+pow(dImQ10n,2.)+pow(dReQ3n,2.)+pow(dImQ3n,2.)+pow(dReQ3n,2.)+pow(dImQ3n,2.)+pow(dReQ1n,2.)+pow(dImQ1n,2.))
8121 - 2.*(pow(dReQ4n,2.)+pow(dImQ4n,2.)+pow(dReQ8n,2.)+pow(dImQ8n,2.)+pow(dReQ8n,2.)+pow(dImQ8n,2.))
8122 - 2.*(pow(dReQ3n,2.)+pow(dImQ3n,2.)+pow(dReQ3n,2.)+pow(dImQ3n,2.)+pow(dReQ1n,2.)+pow(dImQ1n,2.))
8123 - 6.*(pow(dReQ5n,2.)+pow(dImQ5n,2.)+pow(dReQ6n,2.)+pow(dImQ6n,2.)+pow(dReQ2n,2.)+pow(dImQ2n,2.)+pow(dReQ2n,2.)+pow(dImQ2n,2.))
8125 / (dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.));
8127 five6n5n5n5n1n = (reQ6nQ5nQ5nstarQ5nstarQ1nstar
8128 - (pow(dReQ6n,2.)+pow(dImQ6n,2.))*(pow(dReQ5n,2.)+pow(dImQ5n,2.))
8129 - reQ10nQ1nQ6nstarQ5nstar
8130 - dMult*reQ6nQ5nstarQ1nstar
8131 - reQ11nQ5nstarQ5nstarQ1nstar
8132 - (pow(dReQ5n,2.)+pow(dImQ5n,2.))*(pow(dReQ1n,2.)+pow(dImQ1n,2.))
8133 - reQ6nQ4nQ5nstarQ5nstar
8134 + reQ5nQ4nstarQ1nstar
8135 + reQ11nQ6nstarQ5nstar
8136 + 3.*reQ6nQ5nstarQ1nstar
8137 + 2.*reQ11nQ6nstarQ5nstar
8138 + dMult*(pow(dReQ6n,2.)+pow(dImQ6n,2.))
8139 + reQ11nQ6nstarQ5nstar
8140 + reQ10nQ6nstarQ4nstar
8141 + reQ5nQ4nstarQ1nstar
8142 + reQ11nQ10nstarQ1nstar
8143 + dMult*(pow(dReQ1n,2.)+pow(dImQ1n,2.))
8144 - (dMult-6.)*reQ6nQ5nstarQ1nstar
8145 + 3.*reQ6nQ5nstarQ1nstar
8146 + reQ5nQ4nstarQ1nstar
8147 + 2.*dMult*(pow(dReQ5n,2.)+pow(dImQ5n,2.))
8148 + 3.*reQ10nQ5nstarQ5nstar
8149 + reQ5nQ4nstarQ1nstar
8150 + dMult*(pow(dReQ5n,2.)+pow(dImQ5n,2.))
8151 - (pow(dReQ5n,2.)+pow(dImQ5n,2.))*(pow(dReQ6n,2.)+pow(dImQ6n,2.))
8152 - (pow(dReQ5n,2.)+pow(dImQ5n,2.))*(pow(dReQ1n,2.)+pow(dImQ1n,2.))
8153 - (pow(dReQ5n,2.)+pow(dImQ5n,2.))*(pow(dReQ5n,2.)+pow(dImQ5n,2.))
8154 - 2.*(pow(dReQ11n,2.)+pow(dImQ11n,2.))
8155 - 2.*(pow(dReQ1n,2.)+pow(dImQ1n,2.))
8156 - 2.*(pow(dReQ6n,2.)+pow(dImQ6n,2.))
8157 - 2.*(pow(dReQ4n,2.)+pow(dImQ4n,2.))
8158 - 2.*(pow(dReQ10n,2.)+pow(dImQ10n,2.))
8160 + (dMult-8.)*(pow(dReQ6n,2.)+pow(dImQ6n,2.))
8161 + (dMult-8.)*(pow(dReQ5n,2.)+pow(dImQ5n,2.))
8162 + (dMult-8.)*(pow(dReQ1n,2.)+pow(dImQ1n,2.))
8163 + 2.*(dMult-6.)*(pow(dReQ5n,2.)+pow(dImQ5n,2.))-2.*dMult*(dMult-12.))
8164 / (dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.));
8166 five6n6n5n5n2n = (reQ6nQ6nQ5nstarQ5nstarQ2nstar
8167 - reQ7nQ5nQ6nstarQ6nstar-reQ7nQ5nQ6nstarQ6nstar-reQ10nQ2nQ6nstarQ6nstar
8168 - reQ6nQ1nQ5nstarQ2nstar-reQ6nQ1nQ5nstarQ2nstar-reQ6nQ4nQ5nstarQ5nstar
8169 - reQ12nQ5nstarQ5nstarQ2nstar-reQ6nQ4nQ5nstarQ5nstar-reQ6nQ1nQ5nstarQ2nstar-reQ6nQ1nQ5nstarQ2nstar
8170 + 2.*(reQ6nQ5nstarQ1nstar+reQ6nQ4nstarQ2nstar+reQ6nQ5nstarQ1nstar+reQ12nQ6nstarQ6nstar)
8171 + reQ7nQ6nstarQ1nstar+reQ7nQ6nstarQ1nstar+reQ10nQ6nstarQ4nstar
8172 + reQ12nQ10nstarQ2nstar+reQ12nQ7nstarQ5nstar+reQ12nQ7nstarQ5nstar
8173 + reQ7nQ6nstarQ1nstar+reQ2nQ1nstarQ1nstar+reQ5nQ4nstarQ1nstar
8174 + reQ7nQ6nstarQ1nstar+reQ2nQ1nstarQ1nstar+reQ5nQ4nstarQ1nstar
8175 + reQ10nQ6nstarQ4nstar+reQ5nQ4nstarQ1nstar+reQ5nQ4nstarQ1nstar
8176 + 2.*(reQ10nQ5nstarQ5nstar+reQ7nQ5nstarQ2nstar+reQ7nQ5nstarQ2nstar)
8177 + 2.*(reQ6nQ5nstarQ1nstar+reQ6nQ5nstarQ1nstar+reQ6nQ4nstarQ2nstar)
8178 - 6.*(pow(dReQ6n,2.)+pow(dImQ6n,2.))
8179 - 2.*(pow(dReQ12n,2.)+pow(dImQ12n,2.)+pow(dReQ1n,2.)+pow(dImQ1n,2.)+pow(dReQ4n,2.)+pow(dImQ4n,2.)+pow(dReQ1n,2.)+pow(dImQ1n,2.))
8180 - 2.*(pow(dReQ7n,2.)+pow(dImQ7n,2.)+pow(dReQ7n,2.)+pow(dImQ7n,2.)+pow(dReQ10n,2.)+pow(dImQ10n,2.))
8181 - 2.*(pow(dReQ4n,2.)+pow(dImQ4n,2.)+pow(dReQ1n,2.)+pow(dImQ1n,2.)+pow(dReQ1n,2.)+pow(dImQ1n,2.))
8182 - 6.*(pow(dReQ6n,2.)+pow(dImQ6n,2.)+pow(dReQ5n,2.)+pow(dImQ5n,2.)+pow(dReQ5n,2.)+pow(dImQ5n,2.)+pow(dReQ2n,2.)+pow(dImQ2n,2.))
8184 / (dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.));
8185 five6n6n6n4n2n = ((pow(dImQ6n,2.)+pow(dReQ6n,2.))*(dImQ4n*dImQ6n*dReQ2n+dImQ2n*dImQ6n*dReQ4n
8186 - dImQ2n*dImQ4n*dReQ6n+dReQ2n*dReQ4n*dReQ6n)
8187 - (dReQ2n*dReQ4n*dReQ6n*dReQ12n-dReQ6n*dReQ12n*dImQ2n*dImQ4n
8188 - dReQ4n*dReQ12n*dImQ2n*dImQ6n-dReQ2n*dReQ12n*dImQ4n*dImQ6n
8189 + dReQ4n*dReQ6n*dImQ2n*dImQ12n+dReQ2n*dReQ6n*dImQ4n*dImQ12n
8190 + dReQ2n*dReQ4n*dImQ6n*dImQ12n-dImQ2n*dImQ4n*dImQ6n*dImQ12n)
8191 - (dImQ2n*pow(dImQ6n,2.)*dImQ10n+2.*dImQ6n*dImQ10n*dReQ2n*dReQ6n
8192 - dImQ2n*dImQ10n*pow(dReQ6n,2.)-pow(dImQ6n,2.)*dReQ2n*dReQ10n
8193 + 2.*dImQ2n*dImQ6n*dReQ6n*dReQ10n+dReQ2n*pow(dReQ6n,2.)*dReQ10n)
8194 - ((dReQ8n*dReQ4n-dImQ8n*dImQ4n)*(dReQ6n*dReQ6n-dImQ6n*dImQ6n)
8195 + 2.*(dReQ8n*dImQ4n+dImQ8n*dReQ4n)*dReQ6n*dImQ6n)
8196 + dReQ12n*dReQ10n*dReQ2n-dReQ12n*dImQ10n*dImQ2n+dImQ12n*dReQ10n*dImQ2n+dImQ12n*dImQ10n*dReQ2n
8197 + dReQ12n*dReQ8n*dReQ4n-dReQ12n*dImQ8n*dImQ4n+dImQ12n*dReQ8n*dImQ4n+dImQ12n*dImQ8n*dReQ4n
8198 + 3.*(pow(dReQ6n,2.)*dReQ12n+2.*dReQ6n*dImQ6n*dImQ12n-pow(dImQ6n,2.)*dReQ12n)
8199 + 4.*(dReQ10n*dReQ4n*dReQ6n-dReQ10n*dImQ4n*dImQ6n+dImQ10n*dReQ4n*dImQ6n+dImQ10n*dImQ4n*dReQ6n)
8200 + 4.*(dReQ8n*(dReQ6n*dReQ2n-dImQ6n*dImQ2n)+dImQ8n*(dReQ6n*dImQ2n+dImQ6n*dReQ2n))
8201 - 2.*(dMult-6.)*(dReQ6n*dReQ4n*dReQ2n-dReQ6n*dImQ4n*dImQ2n+dImQ6n*dReQ4n*dImQ2n+dImQ6n*dImQ4n*dReQ2n)
8202 - 2.*(pow(dReQ6n,2.)+pow(dImQ6n,2.))*(pow(dReQ4n,2.)+pow(dImQ4n,2.))
8203 - 2.*(pow(dReQ6n,2.)+pow(dImQ6n,2.))*(pow(dReQ2n,2.)+pow(dImQ2n,2.))
8204 - 2.*(pow(dReQ12n,2.)+pow(dImQ12n,2.))-2.*(pow(dReQ10n,2.)+pow(dImQ10n,2.))
8205 - 2.*(pow(dReQ8n,2.)+pow(dImQ8n,2.))+2.*(3.*dMult-10.)*(pow(dReQ6n,2.)+pow(dImQ6n,2.))
8206 - pow((pow(dReQ6n,2.)+pow(dImQ6n,2.)),2.)+2.*(dMult-5.)*(pow(dReQ4n,2.)+pow(dImQ4n,2.))
8207 + 2.*(dMult-5.)*(pow(dReQ2n,2.)+pow(dImQ2n,2.))-4.*dMult*(dMult-6.))
8208 / (dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.));
8209 // to be polished (and TBI swap with the one above):
8210 five6n6n6n5n1n = (reQ6nQ6nQ6nstarQ5nstarQ1nstar
8211 - reQ7nQ5nQ6nstarQ6nstar
8212 - reQ11nQ1nQ6nstarQ6nstar
8213 - (pow(dReQ6n,2.)+pow(dImQ6n,2.))*(pow(dReQ1n,2.)+pow(dImQ1n,2.))
8214 - reQ12nQ6nstarQ5nstarQ1nstar
8215 - dMult*reQ6nQ5nstarQ1nstar
8216 - (pow(dReQ6n,2.)+pow(dImQ6n,2.))*(pow(dReQ5n,2.)+pow(dImQ5n,2.))
8217 + reQ6nQ5nstarQ1nstar
8218 + reQ12nQ6nstarQ6nstar
8219 + 3.*dMult*(pow(dReQ6n,2.)+pow(dImQ6n,2.))
8220 + 2.*reQ12nQ6nstarQ6nstar
8221 + reQ7nQ6nstarQ1nstar
8222 + reQ12nQ7nstarQ5nstar
8223 + reQ11nQ6nstarQ5nstar
8224 + reQ6nQ5nstarQ1nstar
8225 + reQ12nQ11nstarQ1nstar
8226 + dMult*(pow(dReQ1n,2.)+pow(dImQ1n,2.))
8227 - (dMult-6.)*reQ6nQ5nstarQ1nstar
8228 + 3.*reQ7nQ6nstarQ1nstar
8229 + reQ6nQ5nstarQ1nstar
8230 + 2.*reQ6nQ5nstarQ1nstar
8231 + 3.*reQ11nQ6nstarQ5nstar
8232 + dMult*(pow(dReQ5n,2.)+pow(dImQ5n,2.))
8233 + reQ6nQ5nstarQ1nstar
8234 - (pow(dReQ6n,2.)+pow(dImQ6n,2.))*(pow(dReQ6n,2.)+pow(dImQ6n,2.))
8235 - (pow(dReQ6n,2.)+pow(dImQ6n,2.))*(pow(dReQ1n,2.)+pow(dImQ1n,2.))
8236 - (pow(dReQ6n,2.)+pow(dImQ6n,2.))*(pow(dReQ5n,2.)+pow(dImQ5n,2.))
8237 - 2.*(pow(dReQ12n,2.)+pow(dImQ12n,2.))
8239 - 2.*(pow(dReQ7n,2.)+pow(dImQ7n,2.))
8240 - 2.*(pow(dReQ5n,2.)+pow(dImQ5n,2.))
8241 - 2.*(pow(dReQ11n,2.)+pow(dImQ11n,2.))
8242 - 2.*(pow(dReQ1n,2.)+pow(dImQ1n,2.))
8243 + (dMult-8.)*(pow(dReQ6n,2.)+pow(dImQ6n,2.))
8244 + (dMult-8.)*(pow(dReQ5n,2.)+pow(dImQ5n,2.))
8245 + (dMult-8.)*(pow(dReQ1n,2.)+pow(dImQ1n,2.))
8246 + 2.*(dMult-6.)*(pow(dReQ6n,2.)+pow(dImQ6n,2.))-2.*dMult*(dMult-12.))
8247 / (dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.));
8248 // Four distinct harmonics (11):
8250 five5n2n3n3n1n = (reQ5nQ2nQ3nstarQ3nstarQ1nstar
8251 - reQ5nQ2nQ4nstarQ3nstar-reQ5nQ2nQ4nstarQ3nstar-reQ6nQ1nQ5nstarQ2nstar
8252 - reQ5nQ3nstarQ1nstarQ1nstar-reQ5nQ3nstarQ1nstarQ1nstar-reQ5nQ1nQ3nstarQ3nstar
8253 - reQ7nQ3nstarQ3nstarQ1nstar-reQ4nQ2nQ3nstarQ3nstar-reQ3nQ1nQ2nstarQ2nstar-reQ3nQ1nQ2nstarQ2nstar
8254 + 2.*(reQ5nQ3nstarQ2nstar+reQ5nQ4nstarQ1nstar+reQ5nQ3nstarQ2nstar+reQ7nQ5nstarQ2nstar)
8255 + reQ5nQ4nstarQ1nstar+reQ5nQ4nstarQ1nstar+reQ6nQ5nstarQ1nstar
8256 + reQ7nQ6nstarQ1nstar+reQ7nQ4nstarQ3nstar+reQ7nQ4nstarQ3nstar
8257 + reQ4nQ2nstarQ2nstar+reQ2nQ1nstarQ1nstar+reQ3nQ2nstarQ1nstar
8258 + reQ4nQ2nstarQ2nstar+reQ2nQ1nstarQ1nstar+reQ3nQ2nstarQ1nstar
8259 + reQ6nQ4nstarQ2nstar+reQ4nQ3nstarQ1nstar+reQ4nQ3nstarQ1nstar
8260 + 2.*(reQ6nQ3nstarQ3nstar+reQ4nQ3nstarQ1nstar+reQ4nQ3nstarQ1nstar)
8261 + 2.*(reQ3nQ2nstarQ1nstar+reQ3nQ2nstarQ1nstar+reQ2nQ1nstarQ1nstar)
8262 - 6.*(pow(dReQ5n,2.)+pow(dImQ5n,2.))
8263 - 2.*(pow(dReQ7n,2.)+pow(dImQ7n,2.)+pow(dReQ2n,2.)+pow(dImQ2n,2.)+pow(dReQ4n,2.)+pow(dImQ4n,2.)+pow(dReQ2n,2.)+pow(dImQ2n,2.))
8264 - 2.*(pow(dReQ4n,2.)+pow(dImQ4n,2.)+pow(dReQ4n,2.)+pow(dImQ4n,2.)+pow(dReQ6n,2.)+pow(dImQ6n,2.))
8265 - 2.*(pow(dReQ1n,2.)+pow(dImQ1n,2.)+pow(dReQ1n,2.)+pow(dImQ1n,2.)+pow(dReQ1n,2.)+pow(dImQ1n,2.))
8266 - 6.*(pow(dReQ2n,2.)+pow(dImQ2n,2.)+pow(dReQ3n,2.)+pow(dImQ3n,2.)+pow(dReQ3n,2.)+pow(dImQ3n,2.)+pow(dReQ1n,2.)+pow(dImQ1n,2.))
8268 / (dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.));
8270 five5n1n1n4n3n = (reQ5nQ1nQ1nQ4nstarQ3nstar
8271 - reQ5nQ2nQ4nstarQ3nstar-reQ6nQ1nQ4nstarQ3nstar-reQ6nQ1nQ4nstarQ3nstar
8272 - reQ5nQ1nQ4nstarQ2nstar-reQ4nQ2nstarQ1nstarQ1nstar-reQ5nQ1nQ4nstarQ2nstar
8273 - reQ7nQ5nstarQ1nstarQ1nstar-reQ5nQ1nQ3nstarQ3nstar-reQ3nQ1nstarQ1nstarQ1nstar-reQ5nQ1nQ3nstarQ3nstar
8274 + 2.*(reQ5nQ4nstarQ1nstar+reQ4nQ3nstarQ1nstar+reQ4nQ3nstarQ1nstar+reQ7nQ4nstarQ3nstar)
8275 + reQ4nQ2nstarQ2nstar+reQ6nQ4nstarQ2nstar+reQ6nQ4nstarQ2nstar
8276 + reQ7nQ6nstarQ1nstar+reQ7nQ5nstarQ2nstar+reQ7nQ6nstarQ1nstar
8277 + reQ3nQ2nstarQ1nstar+reQ2nQ1nstarQ1nstar+reQ2nQ1nstarQ1nstar
8278 + reQ6nQ3nstarQ3nstar+reQ3nQ2nstarQ1nstar+reQ5nQ3nstarQ2nstar
8279 + reQ6nQ3nstarQ3nstar+reQ3nQ2nstarQ1nstar+reQ5nQ3nstarQ2nstar
8280 + 2.*(reQ6nQ5nstarQ1nstar+reQ6nQ5nstarQ1nstar+reQ2nQ1nstarQ1nstar)
8281 + 2.*(reQ5nQ3nstarQ2nstar+reQ3nQ2nstarQ1nstar+reQ3nQ2nstarQ1nstar)
8282 - 6.*(pow(dReQ4n,2.)+pow(dImQ4n,2.))
8283 - 2.*(pow(dReQ7n,2.)+pow(dImQ7n,2.)+pow(dReQ3n,2.)+pow(dImQ3n,2.)+pow(dReQ3n,2.)+pow(dImQ3n,2.)+pow(dReQ1n,2.)+pow(dImQ1n,2.))
8284 - 2.*(pow(dReQ2n,2.)+pow(dImQ2n,2.)+pow(dReQ6n,2.)+pow(dImQ6n,2.)+pow(dReQ6n,2.)+pow(dImQ6n,2.))
8285 - 2.*(pow(dReQ2n,2.)+pow(dImQ2n,2.)+pow(dReQ2n,2.)+pow(dImQ2n,2.)+pow(dReQ2n,2.)+pow(dImQ2n,2.))
8286 - 6.*(pow(dReQ3n,2.)+pow(dImQ3n,2.)+pow(dReQ5n,2.)+pow(dImQ5n,2.)+pow(dReQ1n,2.)+pow(dImQ1n,2.)+pow(dReQ1n,2.)+pow(dImQ1n,2.))
8288 / (dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.));
8290 five5n3n4n2n2n = (reQ5nQ3nQ4nstarQ2nstarQ2nstar
8291 - reQ5nQ3nQ4nstarQ4nstar-reQ6nQ2nQ5nstarQ3nstar-reQ6nQ2nQ5nstarQ3nstar
8292 - reQ5nQ1nQ4nstarQ2nstar-reQ5nQ2nstarQ2nstarQ1nstar-reQ5nQ1nQ4nstarQ2nstar
8293 - reQ8nQ4nstarQ2nstarQ2nstar-reQ4nQ2nQ3nstarQ3nstar-reQ3nQ1nQ2nstarQ2nstar-reQ4nQ2nQ3nstarQ3nstar
8294 + 2.*(reQ5nQ4nstarQ1nstar+reQ5nQ3nstarQ2nstar+reQ5nQ3nstarQ2nstar+reQ8nQ5nstarQ3nstar)
8295 + reQ5nQ4nstarQ1nstar+reQ6nQ5nstarQ1nstar+reQ6nQ5nstarQ1nstar
8296 + reQ8nQ6nstarQ2nstar+reQ8nQ4nstarQ4nstar+reQ8nQ6nstarQ2nstar
8297 + reQ4nQ3nstarQ1nstar+reQ2nQ1nstarQ1nstar+reQ2nQ1nstarQ1nstar
8298 + reQ6nQ3nstarQ3nstar+reQ3nQ2nstarQ1nstar+reQ4nQ3nstarQ1nstar
8299 + reQ6nQ3nstarQ3nstar+reQ3nQ2nstarQ1nstar+reQ4nQ3nstarQ1nstar
8300 + 2.*(reQ6nQ4nstarQ2nstar+reQ6nQ4nstarQ2nstar+reQ4nQ2nstarQ2nstar)
8301 + 2.*(reQ4nQ3nstarQ1nstar+reQ3nQ2nstarQ1nstar+reQ3nQ2nstarQ1nstar)
8302 - 6.*(pow(dReQ5n,2.)+pow(dImQ5n,2.))
8303 - 2.*(pow(dReQ8n,2.)+pow(dImQ8n,2.)+pow(dReQ3n,2.)+pow(dImQ3n,2.)+pow(dReQ3n,2.)+pow(dImQ3n,2.)+pow(dReQ1n,2.)+pow(dImQ1n,2.))
8304 - 2.*(pow(dReQ4n,2.)+pow(dImQ4n,2.)+pow(dReQ6n,2.)+pow(dImQ6n,2.)+pow(dReQ6n,2.)+pow(dImQ6n,2.))
8305 - 2.*(pow(dReQ1n,2.)+pow(dImQ1n,2.)+pow(dReQ1n,2.)+pow(dImQ1n,2.)+pow(dReQ1n,2.)+pow(dImQ1n,2.))
8306 - 6.*(pow(dReQ3n,2.)+pow(dImQ3n,2.)+pow(dReQ4n,2.)+pow(dImQ4n,2.)+pow(dReQ2n,2.)+pow(dImQ2n,2.)+pow(dReQ2n,2.)+pow(dImQ2n,2.))
8308 / (dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.));
8310 // to be polished!!!:
8311 five5n2n1n4n4n = (reQ5nQ2nQ1nQ4nstarQ4nstar
8312 - reQ5nQ3nQ4nstarQ4nstar-reQ6nQ2nQ4nstarQ4nstar-reQ7nQ1nQ4nstarQ4nstar
8313 - reQ5nQ1nQ4nstarQ2nstar-reQ4nQ2nstarQ1nstarQ1nstar-reQ5nQ2nQ4nstarQ3nstar
8314 - reQ8nQ5nstarQ2nstarQ1nstar-reQ5nQ2nQ4nstarQ3nstar-reQ4nQ2nstarQ1nstarQ1nstar-reQ5nQ1nQ4nstarQ2nstar
8315 + 2.*(reQ5nQ4nstarQ1nstar+reQ4nQ3nstarQ1nstar+reQ4nQ2nstarQ2nstar+reQ8nQ4nstarQ4nstar)
8316 + reQ4nQ3nstarQ1nstar+reQ6nQ4nstarQ2nstar+reQ7nQ4nstarQ3nstar
8317 + reQ8nQ7nstarQ1nstar+reQ8nQ5nstarQ3nstar+reQ8nQ6nstarQ2nstar
8318 + reQ4nQ3nstarQ1nstar+reQ2nQ1nstarQ1nstar+reQ3nQ2nstarQ1nstar
8319 + reQ6nQ4nstarQ2nstar+reQ2nQ1nstarQ1nstar+reQ5nQ3nstarQ2nstar
8320 + reQ7nQ4nstarQ3nstar+reQ3nQ2nstarQ1nstar+reQ5nQ3nstarQ2nstar
8321 + 2.*(reQ7nQ5nstarQ2nstar+reQ6nQ5nstarQ1nstar+reQ3nQ2nstarQ1nstar)
8322 + 2.*(reQ5nQ4nstarQ1nstar+reQ4nQ2nstarQ2nstar+reQ4nQ3nstarQ1nstar)
8323 - 6.*(pow(dReQ4n,2.)+pow(dImQ4n,2.))
8324 - 2.*(pow(dReQ8n,2.)+pow(dImQ8n,2.)+pow(dReQ2n,2.)+pow(dImQ2n,2.)+pow(dReQ3n,2.)+pow(dImQ3n,2.)+pow(dReQ1n,2.)+pow(dImQ1n,2.))
8325 - 2.*(pow(dReQ3n,2.)+pow(dImQ3n,2.)+pow(dReQ6n,2.)+pow(dImQ6n,2.)+pow(dReQ7n,2.)+pow(dImQ7n,2.))
8326 - 2.*(pow(dReQ3n,2.)+pow(dImQ3n,2.)+pow(dReQ2n,2.)+pow(dImQ2n,2.)+pow(dReQ1n,2.)+pow(dImQ1n,2.))
8327 - 6.*(pow(dReQ4n,2.)+pow(dImQ4n,2.)+pow(dReQ5n,2.)+pow(dImQ5n,2.)+pow(dReQ2n,2.)+pow(dImQ2n,2.)+pow(dReQ1n,2.)+pow(dImQ1n,2.))
8329 / (dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.));
8333 five6n1n3n2n2n = (reQ6nQ1nQ3nstarQ2nstarQ2nstar
8334 - reQ6nQ1nQ4nstarQ3nstar-reQ6nQ1nQ5nstarQ2nstar-reQ6nQ1nQ5nstarQ2nstar
8335 - reQ6nQ3nstarQ2nstarQ1nstar-reQ6nQ2nstarQ2nstarQ2nstar-reQ6nQ3nstarQ2nstarQ1nstar
8336 - reQ7nQ3nstarQ2nstarQ2nstar-reQ4nQ1nQ3nstarQ2nstar-reQ3nQ1nQ2nstarQ2nstar-reQ4nQ1nQ3nstarQ2nstar
8337 + 2.*(reQ6nQ3nstarQ3nstar+reQ6nQ4nstarQ2nstar+reQ6nQ4nstarQ2nstar+reQ7nQ6nstarQ1nstar)
8338 + reQ6nQ4nstarQ2nstar+reQ6nQ5nstarQ1nstar+reQ6nQ5nstarQ1nstar
8339 + reQ7nQ5nstarQ2nstar+reQ7nQ4nstarQ3nstar+reQ7nQ5nstarQ2nstar
8340 + reQ4nQ3nstarQ1nstar+reQ3nQ2nstarQ1nstar+reQ3nQ2nstarQ1nstar
8341 + reQ5nQ4nstarQ1nstar+reQ4nQ2nstarQ2nstar+reQ4nQ3nstarQ1nstar
8342 + reQ5nQ4nstarQ1nstar+reQ4nQ2nstarQ2nstar+reQ4nQ3nstarQ1nstar
8343 + 2.*(reQ5nQ3nstarQ2nstar+reQ5nQ3nstarQ2nstar+reQ4nQ2nstarQ2nstar)
8344 + 2.*(reQ3nQ2nstarQ1nstar+reQ2nQ1nstarQ1nstar+reQ2nQ1nstarQ1nstar)
8345 - 6.*(pow(dReQ6n,2.)+pow(dImQ6n,2.))
8346 - 2.*(pow(dReQ7n,2.)+pow(dImQ7n,2.)+pow(dReQ4n,2.)+pow(dImQ4n,2.)+pow(dReQ4n,2.)+pow(dImQ4n,2.)+pow(dReQ3n,2.)+pow(dImQ3n,2.))
8347 - 2.*(pow(dReQ4n,2.)+pow(dImQ4n,2.)+pow(dReQ5n,2.)+pow(dImQ5n,2.)+pow(dReQ5n,2.)+pow(dImQ5n,2.))
8348 - 2.*(pow(dReQ1n,2.)+pow(dImQ1n,2.)+pow(dReQ1n,2.)+pow(dImQ1n,2.)+pow(dReQ2n,2.)+pow(dImQ2n,2.))
8349 - 6.*(pow(dReQ1n,2.)+pow(dImQ1n,2.)+pow(dReQ3n,2.)+pow(dImQ3n,2.)+pow(dReQ2n,2.)+pow(dImQ2n,2.)+pow(dReQ2n,2.)+pow(dImQ2n,2.))
8351 / (dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.));
8355 five6n3n4n4n1n = (reQ6nQ3nQ4nstarQ4nstarQ1nstar
8356 - reQ8nQ1nQ6nstarQ3nstar-reQ6nQ3nQ5nstarQ4nstar-reQ6nQ3nQ5nstarQ4nstar
8357 - reQ6nQ4nstarQ1nstarQ1nstar-reQ6nQ2nQ4nstarQ4nstar-reQ6nQ4nstarQ1nstarQ1nstar
8358 - reQ9nQ4nstarQ4nstarQ1nstar-reQ4nQ1nQ3nstarQ2nstar-reQ5nQ3nQ4nstarQ4nstar-reQ4nQ1nQ3nstarQ2nstar
8359 + 2.*(reQ6nQ5nstarQ1nstar+reQ6nQ4nstarQ2nstar+reQ6nQ4nstarQ2nstar+reQ9nQ6nstarQ3nstar)
8360 + reQ8nQ6nstarQ2nstar+reQ6nQ5nstarQ1nstar+reQ6nQ5nstarQ1nstar
8361 + reQ9nQ5nstarQ4nstar+reQ9nQ8nstarQ1nstar+reQ9nQ5nstarQ4nstar
8362 + reQ8nQ5nstarQ3nstar+reQ5nQ4nstarQ1nstar+reQ5nQ4nstarQ1nstar
8363 + reQ5nQ3nstarQ2nstar+reQ4nQ2nstarQ2nstar+reQ2nQ1nstarQ1nstar
8364 + reQ5nQ3nstarQ2nstar+reQ4nQ2nstarQ2nstar+reQ2nQ1nstarQ1nstar
8365 + 2.*(reQ5nQ4nstarQ1nstar+reQ5nQ4nstarQ1nstar+reQ8nQ4nstarQ4nstar)
8366 + 2.*(reQ3nQ2nstarQ1nstar+reQ4nQ3nstarQ1nstar+reQ4nQ3nstarQ1nstar)
8367 - 6.*(pow(dReQ6n,2.)+pow(dImQ6n,2.))
8368 - 2.*(pow(dReQ9n,2.)+pow(dImQ9n,2.)+pow(dReQ2n,2.)+pow(dImQ2n,2.)+pow(dReQ2n,2.)+pow(dImQ2n,2.)+pow(dReQ5n,2.)+pow(dImQ5n,2.))
8369 - 2.*(pow(dReQ8n,2.)+pow(dImQ8n,2.)+pow(dReQ5n,2.)+pow(dImQ5n,2.)+pow(dReQ5n,2.)+pow(dImQ5n,2.))
8370 - 2.*(pow(dReQ1n,2.)+pow(dImQ1n,2.)+pow(dReQ1n,2.)+pow(dImQ1n,2.)+pow(dReQ2n,2.)+pow(dImQ2n,2.))
8371 - 6.*(pow(dReQ3n,2.)+pow(dImQ3n,2.)+pow(dReQ1n,2.)+pow(dImQ1n,2.)+pow(dReQ4n,2.)+pow(dImQ4n,2.)+pow(dReQ4n,2.)+pow(dImQ4n,2.))
8373 / (dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.));
8376 five6n1n1n5n3n = (reQ6nQ1nQ1nQ5nstarQ3nstar
8377 - reQ6nQ2nQ5nstarQ3nstar-reQ7nQ1nQ5nstarQ3nstar-reQ7nQ1nQ5nstarQ3nstar
8378 - reQ6nQ1nQ5nstarQ2nstar-reQ5nQ3nstarQ1nstarQ1nstar-reQ6nQ1nQ5nstarQ2nstar
8379 - reQ8nQ6nstarQ1nstarQ1nstar-reQ6nQ1nQ4nstarQ3nstar-reQ3nQ1nstarQ1nstarQ1nstar-reQ6nQ1nQ4nstarQ3nstar
8380 + 2.*(reQ6nQ5nstarQ1nstar+reQ5nQ4nstarQ1nstar+reQ5nQ4nstarQ1nstar+reQ8nQ5nstarQ3nstar)
8381 + reQ5nQ3nstarQ2nstar+reQ7nQ5nstarQ2nstar+reQ7nQ5nstarQ2nstar
8382 + reQ8nQ7nstarQ1nstar+reQ8nQ6nstarQ2nstar+reQ8nQ7nstarQ1nstar
8383 + reQ3nQ2nstarQ1nstar+reQ2nQ1nstarQ1nstar+reQ2nQ1nstarQ1nstar
8384 + reQ7nQ4nstarQ3nstar+reQ4nQ3nstarQ1nstar+reQ6nQ4nstarQ2nstar
8385 + reQ7nQ4nstarQ3nstar+reQ4nQ3nstarQ1nstar+reQ6nQ4nstarQ2nstar
8386 + 2.*(reQ7nQ6nstarQ1nstar+reQ7nQ6nstarQ1nstar+reQ2nQ1nstarQ1nstar)
8387 + 2.*(reQ6nQ3nstarQ3nstar+reQ3nQ2nstarQ1nstar+reQ3nQ2nstarQ1nstar)
8388 - 6.*(pow(dReQ5n,2.)+pow(dImQ5n,2.))
8389 - 2.*(pow(dReQ8n,2.)+pow(dImQ8n,2.)+pow(dReQ4n,2.)+pow(dImQ4n,2.)+pow(dReQ4n,2.)+pow(dImQ4n,2.)+pow(dReQ1n,2.)+pow(dImQ1n,2.))
8390 - 2.*(pow(dReQ2n,2.)+pow(dImQ2n,2.)+pow(dReQ7n,2.)+pow(dImQ7n,2.)+pow(dReQ7n,2.)+pow(dImQ7n,2.))
8391 - 2.*(pow(dReQ2n,2.)+pow(dImQ2n,2.)+pow(dReQ2n,2.)+pow(dImQ2n,2.)+pow(dReQ3n,2.)+pow(dImQ3n,2.))
8392 - 6.*(pow(dReQ3n,2.)+pow(dImQ3n,2.)+pow(dReQ6n,2.)+pow(dImQ6n,2.)+pow(dReQ1n,2.)+pow(dImQ1n,2.)+pow(dReQ1n,2.)+pow(dImQ1n,2.))
8394 / (dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.));
8396 five6n3n5n2n2n = (reQ6nQ3nQ5nstarQ2nstarQ2nstar
8397 - reQ6nQ3nQ5nstarQ4nstar-reQ7nQ2nQ6nstarQ3nstar-reQ7nQ2nQ6nstarQ3nstar
8398 - reQ6nQ1nQ5nstarQ2nstar-reQ6nQ2nstarQ2nstarQ2nstar-reQ6nQ1nQ5nstarQ2nstar
8399 - reQ9nQ5nstarQ2nstarQ2nstar-reQ5nQ2nQ4nstarQ3nstar-reQ3nQ1nQ2nstarQ2nstar-reQ5nQ2nQ4nstarQ3nstar
8400 + 2.*(reQ6nQ5nstarQ1nstar+reQ6nQ4nstarQ2nstar+reQ6nQ4nstarQ2nstar+reQ9nQ6nstarQ3nstar)
8401 + reQ6nQ4nstarQ2nstar+reQ7nQ6nstarQ1nstar+reQ7nQ6nstarQ1nstar
8402 + reQ9nQ7nstarQ2nstar+reQ9nQ5nstarQ4nstar+reQ9nQ7nstarQ2nstar
8403 + reQ4nQ3nstarQ1nstar+reQ2nQ1nstarQ1nstar+reQ2nQ1nstarQ1nstar
8404 + reQ7nQ4nstarQ3nstar+reQ4nQ2nstarQ2nstar+reQ5nQ4nstarQ1nstar
8405 + reQ7nQ4nstarQ3nstar+reQ4nQ2nstarQ2nstar+reQ5nQ4nstarQ1nstar
8406 + 2.*(reQ7nQ5nstarQ2nstar+reQ7nQ5nstarQ2nstar+reQ4nQ2nstarQ2nstar)
8407 + 2.*(reQ5nQ3nstarQ2nstar+reQ3nQ2nstarQ1nstar+reQ3nQ2nstarQ1nstar)
8408 - 6.*(pow(dReQ6n,2.)+pow(dImQ6n,2.))
8409 - 2.*(pow(dReQ9n,2.)+pow(dImQ9n,2.)+pow(dReQ4n,2.)+pow(dImQ4n,2.)+pow(dReQ4n,2.)+pow(dImQ4n,2.)+pow(dReQ1n,2.)+pow(dImQ1n,2.))
8410 - 2.*(pow(dReQ4n,2.)+pow(dImQ4n,2.)+pow(dReQ7n,2.)+pow(dImQ7n,2.)+pow(dReQ7n,2.)+pow(dImQ7n,2.))
8411 - 2.*(pow(dReQ1n,2.)+pow(dImQ1n,2.)+pow(dReQ1n,2.)+pow(dImQ1n,2.)+pow(dReQ2n,2.)+pow(dImQ2n,2.))
8412 - 6.*(pow(dReQ3n,2.)+pow(dImQ3n,2.)+pow(dReQ5n,2.)+pow(dImQ5n,2.)+pow(dReQ2n,2.)+pow(dImQ2n,2.)+pow(dReQ2n,2.)+pow(dImQ2n,2.))
8414 / (dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.));
8417 five6n5n4n4n3n = (reQ6nQ5nQ4nstarQ4nstarQ3nstar
8418 - reQ7nQ4nQ6nstarQ5nstar-reQ7nQ4nQ6nstarQ5nstar-reQ8nQ3nQ6nstarQ5nstar
8419 - reQ6nQ1nQ4nstarQ3nstar-reQ6nQ1nQ4nstarQ3nstar-reQ6nQ2nQ4nstarQ4nstar
8420 - reQ11nQ4nstarQ4nstarQ3nstar-reQ5nQ3nQ4nstarQ4nstar-reQ5nQ2nQ4nstarQ3nstar-reQ5nQ2nQ4nstarQ3nstar
8421 + 2.*(reQ6nQ4nstarQ2nstar+reQ6nQ3nstarQ3nstar+reQ6nQ4nstarQ2nstar+reQ11nQ6nstarQ5nstar)
8422 + reQ7nQ6nstarQ1nstar+reQ7nQ6nstarQ1nstar+reQ8nQ6nstarQ2nstar
8423 + reQ11nQ8nstarQ3nstar+reQ11nQ7nstarQ4nstar+reQ11nQ7nstarQ4nstar
8424 + reQ7nQ5nstarQ2nstar+reQ3nQ2nstarQ1nstar+reQ4nQ2nstarQ2nstar
8425 + reQ7nQ5nstarQ2nstar+reQ3nQ2nstarQ1nstar+reQ4nQ2nstarQ2nstar
8426 + reQ8nQ5nstarQ3nstar+reQ4nQ3nstarQ1nstar+reQ4nQ3nstarQ1nstar
8427 + 2.*(reQ8nQ4nstarQ4nstar+reQ7nQ4nstarQ3nstar+reQ7nQ4nstarQ3nstar)
8428 + 2.*(reQ5nQ4nstarQ1nstar+reQ5nQ4nstarQ1nstar+reQ5nQ3nstarQ2nstar)
8429 - 6.*(pow(dReQ6n,2.)+pow(dImQ6n,2.))
8430 - 2.*(pow(dReQ11n,2.)+pow(dImQ11n,2.)+pow(dReQ2n,2.)+pow(dImQ2n,2.)+pow(dReQ3n,2.)+pow(dImQ3n,2.)+pow(dReQ2n,2.)+pow(dImQ2n,2.))
8431 - 2.*(pow(dReQ7n,2.)+pow(dImQ7n,2.)+pow(dReQ7n,2.)+pow(dImQ7n,2.)+pow(dReQ8n,2.)+pow(dImQ8n,2.))
8432 - 2.*(pow(dReQ2n,2.)+pow(dImQ2n,2.)+pow(dReQ1n,2.)+pow(dImQ1n,2.)+pow(dReQ1n,2.)+pow(dImQ1n,2.))
8433 - 6.*(pow(dReQ5n,2.)+pow(dImQ5n,2.)+pow(dReQ4n,2.)+pow(dImQ4n,2.)+pow(dReQ4n,2.)+pow(dImQ4n,2.)+pow(dReQ3n,2.)+pow(dImQ3n,2.))
8435 / (dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.));
8437 five6n3n1n5n5n = (reQ6nQ3nQ1nQ5nstarQ5nstar
8438 - reQ6nQ4nQ5nstarQ5nstar-reQ7nQ3nQ5nstarQ5nstar-reQ9nQ1nQ5nstarQ5nstar
8439 - reQ6nQ1nQ5nstarQ2nstar-reQ5nQ3nstarQ1nstarQ1nstar-reQ6nQ3nQ5nstarQ4nstar
8440 - reQ10nQ6nstarQ3nstarQ1nstar-reQ6nQ3nQ5nstarQ4nstar-reQ5nQ3nstarQ1nstarQ1nstar-reQ6nQ1nQ5nstarQ2nstar
8441 + 2.*(reQ6nQ5nstarQ1nstar+reQ5nQ4nstarQ1nstar+reQ5nQ3nstarQ2nstar+reQ10nQ5nstarQ5nstar)
8442 + reQ5nQ4nstarQ1nstar+reQ7nQ5nstarQ2nstar+reQ9nQ5nstarQ4nstar
8443 + reQ10nQ9nstarQ1nstar+reQ10nQ6nstarQ4nstar+reQ10nQ7nstarQ3nstar
8444 + reQ5nQ4nstarQ1nstar+reQ2nQ1nstarQ1nstar+reQ4nQ3nstarQ1nstar
8445 + reQ7nQ5nstarQ2nstar+reQ2nQ1nstarQ1nstar+reQ6nQ4nstarQ2nstar
8446 + reQ9nQ5nstarQ4nstar+reQ4nQ3nstarQ1nstar+reQ6nQ4nstarQ2nstar
8447 + 2.*(reQ9nQ6nstarQ3nstar+reQ7nQ6nstarQ1nstar+reQ4nQ3nstarQ1nstar)
8448 + 2.*(reQ6nQ5nstarQ1nstar+reQ5nQ3nstarQ2nstar+reQ5nQ4nstarQ1nstar)
8449 - 6.*(pow(dReQ5n,2.)+pow(dImQ5n,2.))
8450 - 2.*(pow(dReQ10n,2.)+pow(dImQ10n,2.)+pow(dReQ2n,2.)+pow(dImQ2n,2.)+pow(dReQ4n,2.)+pow(dImQ4n,2.)+pow(dReQ1n,2.)+pow(dImQ1n,2.))
8451 - 2.*(pow(dReQ4n,2.)+pow(dImQ4n,2.)+pow(dReQ7n,2.)+pow(dImQ7n,2.)+pow(dReQ9n,2.)+pow(dImQ9n,2.))
8452 - 2.*(pow(dReQ4n,2.)+pow(dImQ4n,2.)+pow(dReQ2n,2.)+pow(dImQ2n,2.)+pow(dReQ1n,2.)+pow(dImQ1n,2.))
8453 - 6.*(pow(dReQ5n,2.)+pow(dImQ5n,2.)+pow(dReQ6n,2.)+pow(dImQ6n,2.)+pow(dReQ3n,2.)+pow(dImQ3n,2.)+pow(dReQ1n,2.)+pow(dImQ1n,2.))
8455 / (dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.));
8457 five6n6n5n4n3n = (reQ6nQ6nQ5nstarQ4nstarQ3nstar
8458 - reQ7nQ5nQ6nstarQ6nstar-reQ8nQ4nQ6nstarQ6nstar-reQ9nQ3nQ6nstarQ6nstar
8459 - reQ6nQ2nQ5nstarQ3nstar-reQ6nQ1nQ4nstarQ3nstar-reQ6nQ3nQ5nstarQ4nstar
8460 - reQ12nQ5nstarQ4nstarQ3nstar-reQ6nQ3nQ5nstarQ4nstar-reQ6nQ1nQ4nstarQ3nstar-reQ6nQ2nQ5nstarQ3nstar
8461 + 2.*(reQ6nQ5nstarQ1nstar+reQ6nQ3nstarQ3nstar+reQ6nQ4nstarQ2nstar+reQ12nQ6nstarQ6nstar)
8462 + reQ7nQ6nstarQ1nstar+reQ8nQ6nstarQ2nstar+reQ9nQ6nstarQ3nstar
8463 + reQ12nQ9nstarQ3nstar+reQ12nQ7nstarQ5nstar+reQ12nQ8nstarQ4nstar
8464 + reQ7nQ6nstarQ1nstar+reQ3nQ2nstarQ1nstar+reQ4nQ3nstarQ1nstar
8465 + reQ8nQ6nstarQ2nstar+reQ3nQ2nstarQ1nstar+reQ5nQ3nstarQ2nstar
8466 + reQ9nQ6nstarQ3nstar+reQ4nQ3nstarQ1nstar+reQ5nQ3nstarQ2nstar
8467 + 2.*(reQ9nQ5nstarQ4nstar+reQ8nQ5nstarQ3nstar+reQ7nQ4nstarQ3nstar)
8468 + 2.*(reQ6nQ5nstarQ1nstar+reQ6nQ4nstarQ2nstar+reQ6nQ3nstarQ3nstar)
8469 - 6.*(pow(dReQ6n,2.)+pow(dImQ6n,2.))
8470 - 2.*(pow(dReQ12n,2.)+pow(dImQ12n,2.)+pow(dReQ2n,2.)+pow(dImQ2n,2.)+pow(dReQ3n,2.)+pow(dImQ3n,2.)+pow(dReQ1n,2.)+pow(dImQ1n,2.))
8471 - 2.*(pow(dReQ7n,2.)+pow(dImQ7n,2.)+pow(dReQ8n,2.)+pow(dImQ8n,2.)+pow(dReQ9n,2.)+pow(dImQ9n,2.))
8472 - 2.*(pow(dReQ3n,2.)+pow(dImQ3n,2.)+pow(dReQ2n,2.)+pow(dImQ2n,2.)+pow(dReQ1n,2.)+pow(dImQ1n,2.))
8473 - 6.*(pow(dReQ6n,2.)+pow(dImQ6n,2.)+pow(dReQ5n,2.)+pow(dImQ5n,2.)+pow(dReQ4n,2.)+pow(dImQ4n,2.)+pow(dReQ3n,2.)+pow(dImQ3n,2.))
8475 / (dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.));
8476 // Five distinct harmonics (3):
8479 five6n2n4n3n1n = (reQ6nQ2nQ4nstarQ3nstarQ1nstar
8480 - reQ6nQ2nQ4nstarQ4nstar-reQ6nQ2nQ5nstarQ3nstar-reQ7nQ1nQ6nstarQ2nstar
8481 - reQ6nQ4nstarQ1nstarQ1nstar-reQ6nQ3nstarQ2nstarQ1nstar-reQ6nQ1nQ4nstarQ3nstar
8482 - reQ8nQ4nstarQ3nstarQ1nstar-reQ5nQ2nQ4nstarQ3nstar-reQ3nQ1nQ2nstarQ2nstar-reQ4nQ1nQ3nstarQ2nstar
8483 + 2.*(reQ6nQ4nstarQ2nstar+reQ6nQ5nstarQ1nstar+reQ6nQ3nstarQ3nstar+reQ8nQ6nstarQ2nstar)
8484 + 1.*(reQ6nQ4nstarQ2nstar+reQ6nQ5nstarQ1nstar+reQ7nQ6nstarQ1nstar)
8485 + 1.*(reQ8nQ7nstarQ1nstar+reQ8nQ4nstarQ4nstar+reQ8nQ5nstarQ3nstar)
8486 + 1.*(reQ4nQ2nstarQ2nstar+reQ2nQ1nstarQ1nstar+reQ3nQ2nstarQ1nstar)
8487 + 1.*(reQ5nQ3nstarQ2nstar+reQ3nQ2nstarQ1nstar+reQ4nQ3nstarQ1nstar)
8488 + 1.*(reQ7nQ5nstarQ2nstar+reQ5nQ3nstarQ2nstar+reQ5nQ4nstarQ1nstar)
8489 + 2.*(reQ7nQ4nstarQ3nstar+reQ5nQ4nstarQ1nstar+reQ4nQ3nstarQ1nstar)
8490 + 2.*(reQ4nQ2nstarQ2nstar+reQ3nQ2nstarQ1nstar+reQ2nQ1nstarQ1nstar) // 3 - 1
8491 - 6.*(pow(dReQ6n,2.)+pow(dImQ6n,2.))
8492 - 2.*(pow(dReQ8n,2.)+pow(dImQ8n,2.)+pow(dReQ3n,2.)+pow(dImQ3n,2.)+pow(dReQ5n,2.)+pow(dImQ5n,2.)+pow(dReQ2n,2.)+pow(dImQ2n,2.))
8493 - 2.*(pow(dReQ4n,2.)+pow(dImQ4n,2.)+pow(dReQ5n,2.)+pow(dImQ5n,2.)+pow(dReQ7n,2.)+pow(dImQ7n,2.))
8494 - 2.*(pow(dReQ1n,2.)+pow(dImQ1n,2.)+pow(dReQ1n,2.)+pow(dImQ1n,2.)+pow(dReQ2n,2.)+pow(dImQ2n,2.))
8495 - 6.*(pow(dReQ4n,2.)+pow(dImQ4n,2.)+pow(dReQ3n,2.)+pow(dImQ3n,2.)+pow(dReQ2n,2.)+pow(dImQ2n,2.)+pow(dReQ1n,2.)+pow(dImQ1n,2.))
8497 / (dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.));
8501 five6n2n1n5n4n = (reQ6nQ2nQ1nQ5nstarQ4nstar
8502 - reQ6nQ3nQ5nstarQ4nstar-reQ7nQ2nQ5nstarQ4nstar-reQ8nQ1nQ5nstarQ4nstar
8503 - reQ6nQ1nQ5nstarQ2nstar-reQ5nQ2nstarQ2nstarQ1nstar-reQ6nQ2nQ5nstarQ3nstar
8504 - reQ9nQ6nstarQ2nstarQ1nstar-reQ6nQ2nQ4nstarQ4nstar-reQ4nQ2nstarQ1nstarQ1nstar-reQ6nQ1nQ4nstarQ3nstar
8505 + 2.*(reQ6nQ5nstarQ1nstar+reQ5nQ4nstarQ1nstar+reQ5nQ3nstarQ2nstar+reQ9nQ5nstarQ4nstar)
8506 + reQ5nQ3nstarQ2nstar+reQ7nQ5nstarQ2nstar+reQ8nQ5nstarQ3nstar
8507 + reQ9nQ8nstarQ1nstar+reQ9nQ6nstarQ3nstar+reQ9nQ7nstarQ2nstar
8508 + reQ4nQ3nstarQ1nstar+reQ2nQ1nstarQ1nstar+reQ3nQ2nstarQ1nstar
8509 + reQ7nQ4nstarQ3nstar+reQ3nQ2nstarQ1nstar+reQ6nQ3nstarQ3nstar
8510 + reQ8nQ4nstarQ4nstar+reQ4nQ2nstarQ2nstar+reQ6nQ4nstarQ2nstar
8511 + 2.*(reQ8nQ6nstarQ2nstar+reQ7nQ6nstarQ1nstar+reQ3nQ2nstarQ1nstar)
8512 + 2.*(reQ6nQ4nstarQ2nstar+reQ4nQ2nstarQ2nstar+reQ4nQ3nstarQ1nstar)
8513 - 6.*(pow(dReQ5n,2.)+pow(dImQ5n,2.))
8514 - 2.*(pow(dReQ9n,2.)+pow(dImQ9n,2.)+pow(dReQ3n,2.)+pow(dImQ3n,2.)+pow(dReQ4n,2.)+pow(dImQ4n,2.)+pow(dReQ1n,2.)+pow(dImQ1n,2.))
8515 - 2.*(pow(dReQ3n,2.)+pow(dImQ3n,2.)+pow(dReQ7n,2.)+pow(dImQ7n,2.)+pow(dReQ8n,2.)+pow(dImQ8n,2.))
8516 - 2.*(pow(dReQ3n,2.)+pow(dImQ3n,2.)+pow(dReQ2n,2.)+pow(dImQ2n,2.)+pow(dReQ2n,2.)+pow(dImQ2n,2.))
8517 - 6.*(pow(dReQ4n,2.)+pow(dImQ4n,2.)+pow(dReQ6n,2.)+pow(dImQ6n,2.)+pow(dReQ2n,2.)+pow(dImQ2n,2.)+pow(dReQ1n,2.)+pow(dImQ1n,2.))
8519 / (dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.));
8524 five6n4n5n3n2n = (reQ6nQ4nQ5nstarQ3nstarQ2nstar
8525 - reQ6nQ4nQ5nstarQ5nstar-reQ7nQ3nQ6nstarQ4nstar-reQ8nQ2nQ6nstarQ4nstar
8526 - reQ6nQ1nQ5nstarQ2nstar-reQ6nQ3nstarQ2nstarQ1nstar-reQ6nQ2nQ5nstarQ3nstar
8527 - reQ10nQ5nstarQ3nstarQ2nstar-reQ5nQ3nQ4nstarQ4nstar-reQ4nQ1nQ3nstarQ2nstar-reQ5nQ2nQ4nstarQ3nstar
8528 + 2.*(reQ6nQ5nstarQ1nstar+reQ6nQ4nstarQ2nstar+reQ6nQ3nstarQ3nstar+reQ10nQ6nstarQ4nstar)
8529 + 1.*(reQ6nQ5nstarQ1nstar+reQ7nQ6nstarQ1nstar+reQ8nQ6nstarQ2nstar)
8530 + 1.*(reQ10nQ8nstarQ2nstar+reQ10nQ5nstarQ5nstar+reQ10nQ7nstarQ3nstar)
8531 + 1.*(reQ5nQ4nstarQ1nstar+reQ2nQ1nstarQ1nstar+reQ3nQ2nstarQ1nstar)
8532 + 1.*(reQ7nQ4nstarQ3nstar+reQ3nQ2nstarQ1nstar+reQ5nQ3nstarQ2nstar)
8533 + 1.*(reQ8nQ4nstarQ4nstar+reQ4nQ3nstarQ1nstar+reQ5nQ4nstarQ1nstar)
8534 + 2.*(reQ8nQ5nstarQ3nstar+reQ7nQ5nstarQ2nstar+reQ5nQ3nstarQ2nstar)
8535 + 2.*(reQ5nQ4nstarQ1nstar+reQ4nQ3nstarQ1nstar+reQ4nQ2nstarQ2nstar) // 3 - 1
8536 - 6.*(pow(dReQ6n,2.)+pow(dImQ6n,2.))
8537 - 2.*(pow(dReQ10n,2.)+pow(dImQ10n,2.)+pow(dReQ3n,2.)+pow(dImQ3n,2.)+pow(dReQ4n,2.)+pow(dImQ4n,2.)+pow(dReQ1n,2.)+pow(dImQ1n,2.))
8538 - 2.*(pow(dReQ5n,2.)+pow(dImQ5n,2.)+pow(dReQ7n,2.)+pow(dImQ7n,2.)+pow(dReQ8n,2.)+pow(dImQ8n,2.))
8539 - 2.*(pow(dReQ2n,2.)+pow(dImQ2n,2.)+pow(dReQ1n,2.)+pow(dImQ1n,2.)+pow(dReQ1n,2.)+pow(dImQ1n,2.))
8540 - 6.*(pow(dReQ4n,2.)+pow(dImQ4n,2.)+pow(dReQ5n,2.)+pow(dImQ5n,2.)+pow(dReQ2n,2.)+pow(dImQ2n,2.)+pow(dReQ3n,2.)+pow(dImQ3n,2.))
8542 / (dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.));
8546 f5pCorrelations->Fill(0.5,five3n2n3n1n1n,d5pMultiplicityWeight);
8547 f5pCorrelations->Fill(1.5,five4n1n2n2n1n,d5pMultiplicityWeight);
8548 f5pCorrelations->Fill(2.5,five4n2n3n2n1n,d5pMultiplicityWeight);
8549 f5pCorrelations->Fill(3.5,five4n3n3n2n2n,d5pMultiplicityWeight);
8550 f5pCorrelations->Fill(4.5,five4n2n4n1n1n,d5pMultiplicityWeight);
8551 f5pCorrelations->Fill(5.5,five4n3n4n2n1n,d5pMultiplicityWeight);
8552 f5pCorrelations->Fill(6.5,five5n1n3n2n1n,d5pMultiplicityWeight);
8553 f5pCorrelations->Fill(7.5,five5n2n5n1n1n,d5pMultiplicityWeight);
8554 f5pCorrelations->Fill(8.5,five5n2n4n2n1n,d5pMultiplicityWeight);
8555 f5pCorrelations->Fill(9.5,five5n3n4n3n1n,d5pMultiplicityWeight);
8556 f5pCorrelations->Fill(10.5,five5n4n4n3n2n,d5pMultiplicityWeight);
8557 f5pCorrelations->Fill(11.5,five5n3n5n2n1n,d5pMultiplicityWeight);
8558 f5pCorrelations->Fill(12.5,five5n4n5n2n2n,d5pMultiplicityWeight);
8559 f5pCorrelations->Fill(13.5,five5n4n5n3n1n,d5pMultiplicityWeight);
8560 f5pCorrelations->Fill(14.5,five6n1n3n3n1n,d5pMultiplicityWeight);
8561 f5pCorrelations->Fill(15.5,five6n2n3n3n2n,d5pMultiplicityWeight);
8562 f5pCorrelations->Fill(16.5,five6n1n4n2n1n,d5pMultiplicityWeight);
8563 f5pCorrelations->Fill(17.5,five6n3n4n3n2n,d5pMultiplicityWeight);
8564 f5pCorrelations->Fill(18.5,five6n4n4n3n3n,d5pMultiplicityWeight);
8565 f5pCorrelations->Fill(19.5,five6n2n5n2n1n,d5pMultiplicityWeight);
8566 f5pCorrelations->Fill(20.5,five6n3n5n3n1n,d5pMultiplicityWeight);
8567 f5pCorrelations->Fill(21.5,five6n4n5n4n1n,d5pMultiplicityWeight);
8568 f5pCorrelations->Fill(22.5,five6n5n5n3n3n,d5pMultiplicityWeight);
8569 f5pCorrelations->Fill(23.5,five6n2n6n1n1n,d5pMultiplicityWeight);
8570 f5pCorrelations->Fill(24.5,five6n3n6n2n1n,d5pMultiplicityWeight);
8571 f5pCorrelations->Fill(25.5,five6n4n6n2n2n,d5pMultiplicityWeight);
8572 f5pCorrelations->Fill(26.5,five6n4n6n3n1n,d5pMultiplicityWeight);
8573 f5pCorrelations->Fill(27.5,five6n5n5n4n2n,d5pMultiplicityWeight);
8574 f5pCorrelations->Fill(28.5,five6n5n6n3n2n,d5pMultiplicityWeight);
8575 f5pCorrelations->Fill(29.5,five6n5n6n4n1n,d5pMultiplicityWeight);
8576 //f5pCorrelations->Fill(30.5,-44.,d5pMultiplicityWeight);
8577 f5pCorrelations->Fill(31.5,five2n1n1n1n1n,d5pMultiplicityWeight);
8578 f5pCorrelations->Fill(32.5,five2n2n2n1n1n,d5pMultiplicityWeight);
8579 f5pCorrelations->Fill(33.5,five3n3n2n2n2n,d5pMultiplicityWeight);
8580 f5pCorrelations->Fill(34.5,five4n1n1n1n1n,d5pMultiplicityWeight);
8581 f5pCorrelations->Fill(35.5,five4n2n2n2n2n,d5pMultiplicityWeight);
8582 f5pCorrelations->Fill(36.5,five4n4n4n2n2n,d5pMultiplicityWeight);
8583 f5pCorrelations->Fill(37.5,five6n3n3n3n3n,d5pMultiplicityWeight);
8584 f5pCorrelations->Fill(38.5,five6n6n4n4n4n,d5pMultiplicityWeight);
8585 f5pCorrelations->Fill(39.5,five6n6n6n3n3n,d5pMultiplicityWeight);
8586 //f5pCorrelations->Fill(40.5,-44.,d5pMultiplicityWeight);
8587 f5pCorrelations->Fill(41.5,five3n1n2n1n1n,d5pMultiplicityWeight);
8588 f5pCorrelations->Fill(42.5,five3n2n2n2n1n,d5pMultiplicityWeight);
8589 f5pCorrelations->Fill(43.5,five3n3n3n2n1n,d5pMultiplicityWeight);
8590 f5pCorrelations->Fill(44.5,five4n1n3n1n1n,d5pMultiplicityWeight);
8591 f5pCorrelations->Fill(45.5,five4n1n1n3n3n,d5pMultiplicityWeight);
8592 f5pCorrelations->Fill(46.5,five4n3n3n3n1n,d5pMultiplicityWeight);
8593 f5pCorrelations->Fill(47.5,five4n4n3n3n2n,d5pMultiplicityWeight);
8594 f5pCorrelations->Fill(48.5,five4n4n4n3n1n,d5pMultiplicityWeight);
8595 f5pCorrelations->Fill(49.5,five5n2n1n1n1n,d5pMultiplicityWeight);
8596 f5pCorrelations->Fill(50.5,five5n1n2n2n2n,d5pMultiplicityWeight);
8597 f5pCorrelations->Fill(51.5,five5n2n3n2n2n,d5pMultiplicityWeight);
8598 f5pCorrelations->Fill(52.5,five5n3n3n3n2n,d5pMultiplicityWeight);
8599 f5pCorrelations->Fill(53.5,five5n1n4n1n1n,d5pMultiplicityWeight);
8600 f5pCorrelations->Fill(54.5,five5n4n3n3n3n,d5pMultiplicityWeight);
8601 f5pCorrelations->Fill(55.5,five5n4n4n4n1n,d5pMultiplicityWeight);
8602 f5pCorrelations->Fill(56.5,five5n5n4n3n3n,d5pMultiplicityWeight);
8603 f5pCorrelations->Fill(57.5,five5n5n4n4n2n,d5pMultiplicityWeight);
8604 f5pCorrelations->Fill(58.5,five5n5n5n3n2n,d5pMultiplicityWeight);
8605 f5pCorrelations->Fill(59.5,five5n5n5n4n1n,d5pMultiplicityWeight);
8606 f5pCorrelations->Fill(60.5,five6n2n2n1n1n,d5pMultiplicityWeight);
8607 f5pCorrelations->Fill(61.5,five6n3n1n1n1n,d5pMultiplicityWeight);
8608 f5pCorrelations->Fill(62.5,five6n1n1n4n4n,d5pMultiplicityWeight);
8609 f5pCorrelations->Fill(63.5,five6n1n5n1n1n,d5pMultiplicityWeight);
8610 f5pCorrelations->Fill(64.5,five6n2n4n2n2n,d5pMultiplicityWeight);
8611 f5pCorrelations->Fill(65.5,five6n4n4n4n2n,d5pMultiplicityWeight);
8612 f5pCorrelations->Fill(66.5,five6n2n2n5n5n,d5pMultiplicityWeight);
8613 f5pCorrelations->Fill(67.5,five6n5n5n5n1n,d5pMultiplicityWeight);
8614 f5pCorrelations->Fill(68.5,five6n6n5n5n2n,d5pMultiplicityWeight);
8615 f5pCorrelations->Fill(69.5,five6n6n6n4n2n,d5pMultiplicityWeight);
8616 f5pCorrelations->Fill(70.5,five6n6n6n5n1n,d5pMultiplicityWeight);
8617 //f5pCorrelations->Fill(71.5,-44.,d5pMultiplicityWeight);
8618 f5pCorrelations->Fill(72.5,five5n2n3n3n1n,d5pMultiplicityWeight);
8619 f5pCorrelations->Fill(73.5,five5n1n1n4n3n,d5pMultiplicityWeight);
8620 f5pCorrelations->Fill(74.5,five5n3n4n2n2n,d5pMultiplicityWeight);
8621 f5pCorrelations->Fill(75.5,five5n2n1n4n4n,d5pMultiplicityWeight);
8622 f5pCorrelations->Fill(76.5,five6n1n3n2n2n,d5pMultiplicityWeight);
8623 f5pCorrelations->Fill(77.5,five6n3n4n4n1n,d5pMultiplicityWeight);
8624 f5pCorrelations->Fill(78.5,five6n1n1n5n3n,d5pMultiplicityWeight);
8625 f5pCorrelations->Fill(79.5,five6n3n5n2n2n,d5pMultiplicityWeight);
8626 f5pCorrelations->Fill(80.5,five6n5n4n4n3n,d5pMultiplicityWeight);
8627 f5pCorrelations->Fill(81.5,five6n3n1n5n5n,d5pMultiplicityWeight);
8628 f5pCorrelations->Fill(82.5,five6n6n5n4n3n,d5pMultiplicityWeight);
8629 //f5pCorrelations->Fill(83.5,-44.,d5pMultiplicityWeight);
8630 f5pCorrelations->Fill(84.5,five6n2n4n3n1n,d5pMultiplicityWeight);
8631 f5pCorrelations->Fill(85.5,five6n2n1n5n4n,d5pMultiplicityWeight);
8632 f5pCorrelations->Fill(86.5,five6n4n5n3n2n,d5pMultiplicityWeight);
8633 allMixedCorrelators[56]=five3n2n3n1n1n;
8634 allMixedCorrelators[57]=five4n1n2n2n1n;
8635 allMixedCorrelators[58]=five4n2n3n2n1n;
8636 allMixedCorrelators[59]=five4n3n3n2n2n;
8637 allMixedCorrelators[60]=five4n2n4n1n1n;
8638 allMixedCorrelators[61]=five4n3n4n2n1n;
8639 allMixedCorrelators[62]=five5n1n3n2n1n;
8640 allMixedCorrelators[63]=five5n2n5n1n1n;
8641 allMixedCorrelators[64]=five5n2n4n2n1n;
8642 allMixedCorrelators[65]=five5n3n4n3n1n;
8643 allMixedCorrelators[66]=five5n4n4n3n2n;
8644 allMixedCorrelators[67]=five5n3n5n2n1n;
8645 allMixedCorrelators[68]=five5n4n5n2n2n;
8646 allMixedCorrelators[69]=five5n4n5n3n1n;
8647 allMixedCorrelators[70]=five6n1n3n3n1n;
8648 allMixedCorrelators[71]=five6n2n3n3n2n;
8649 allMixedCorrelators[72]=five6n1n4n2n1n;
8650 allMixedCorrelators[73]=five6n3n4n3n2n;
8651 allMixedCorrelators[74]=five6n4n4n3n3n;
8652 allMixedCorrelators[75]=five6n2n5n2n1n;
8653 allMixedCorrelators[76]=five6n3n5n3n1n;
8654 allMixedCorrelators[77]=five6n4n5n4n1n;
8655 allMixedCorrelators[78]=five6n5n5n3n3n;
8656 allMixedCorrelators[79]=five6n2n6n1n1n;
8657 allMixedCorrelators[80]=five6n3n6n2n1n;
8658 allMixedCorrelators[81]=five6n4n6n2n2n;
8659 allMixedCorrelators[82]=five6n4n6n3n1n;
8660 allMixedCorrelators[83]=five6n5n5n4n2n;
8661 allMixedCorrelators[84]=five6n5n6n3n2n;
8662 allMixedCorrelators[85]=five6n5n6n4n1n;
8663 allMixedCorrelators[86]=five2n1n1n1n1n;
8664 allMixedCorrelators[87]=five2n2n2n1n1n;
8665 allMixedCorrelators[88]=five3n3n2n2n2n;
8666 allMixedCorrelators[89]=five4n1n1n1n1n;
8667 allMixedCorrelators[90]=five4n2n2n2n2n;
8668 allMixedCorrelators[91]=five4n4n4n2n2n;
8669 allMixedCorrelators[92]=five6n3n3n3n3n;
8670 allMixedCorrelators[93]=five6n6n4n4n4n;
8671 allMixedCorrelators[94]=five6n6n6n3n3n;
8672 allMixedCorrelators[95]=five3n1n2n1n1n;
8673 allMixedCorrelators[96]=five3n2n2n2n1n;
8674 allMixedCorrelators[97]=five3n3n3n2n1n;
8675 allMixedCorrelators[98]=five4n1n3n1n1n;
8676 allMixedCorrelators[99]=five4n1n1n3n3n;
8677 allMixedCorrelators[100]=five4n3n3n3n1n;
8678 allMixedCorrelators[101]=five4n4n3n3n2n;
8679 allMixedCorrelators[102]=five4n4n4n3n1n;
8680 allMixedCorrelators[103]=five5n2n1n1n1n;
8681 allMixedCorrelators[104]=five5n1n2n2n2n;
8682 allMixedCorrelators[105]=five5n2n3n2n2n;
8683 allMixedCorrelators[106]=five5n3n3n3n2n;
8684 allMixedCorrelators[107]=five5n1n4n1n1n;
8685 allMixedCorrelators[108]=five5n4n3n3n3n;
8686 allMixedCorrelators[109]=five5n4n4n4n1n;
8687 allMixedCorrelators[110]=five5n5n4n3n3n;
8688 allMixedCorrelators[111]=five5n5n4n4n2n;
8689 allMixedCorrelators[112]=five5n5n5n3n2n;
8690 allMixedCorrelators[113]=five5n5n5n4n1n;
8691 allMixedCorrelators[114]=five6n2n2n1n1n;
8692 allMixedCorrelators[115]=five6n3n1n1n1n;
8693 allMixedCorrelators[116]=five6n1n1n4n4n;
8694 allMixedCorrelators[117]=five6n1n5n1n1n;
8695 allMixedCorrelators[118]=five6n2n4n2n2n;
8696 allMixedCorrelators[119]=five6n4n4n4n2n;
8697 allMixedCorrelators[120]=five6n2n2n5n5n;
8698 allMixedCorrelators[121]=five6n5n5n5n1n;
8699 allMixedCorrelators[122]=five6n6n5n5n2n;
8700 allMixedCorrelators[123]=five6n6n6n4n2n;
8701 allMixedCorrelators[124]=five6n6n6n5n1n;
8702 allMixedCorrelators[125]=five5n2n3n3n1n;
8703 allMixedCorrelators[126]=five5n1n1n4n3n;
8704 allMixedCorrelators[127]=five5n3n4n2n2n;
8705 allMixedCorrelators[128]=five5n2n1n4n4n;
8706 allMixedCorrelators[129]=five6n1n3n2n2n;
8707 allMixedCorrelators[130]=five6n3n4n4n1n;
8708 allMixedCorrelators[131]=five6n1n1n5n3n;
8709 allMixedCorrelators[132]=five6n3n5n2n2n;
8710 allMixedCorrelators[133]=five6n5n4n4n3n;
8711 allMixedCorrelators[134]=five6n3n1n5n5n;
8712 allMixedCorrelators[135]=five6n6n5n4n3n;
8713 allMixedCorrelators[136]=five6n2n4n3n1n;
8714 allMixedCorrelators[137]=five6n2n1n5n4n;
8715 allMixedCorrelators[138]=five6n4n5n3n2n;
8716 } // end of if(dMult>4.)
8718 // Products of mixed harmonics:
8721 for(Int_t x=1;x<=139;x++)
8725 dwx=d2pMultiplicityWeight;
8726 } else if(x>=7 && x<16)
8728 dwx=d3pMultiplicityWeight;
8729 } else if(x>=16 && x<57)
8731 dwx=d4pMultiplicityWeight;
8732 } else if(x>=57 && x<140)
8734 dwx=d5pMultiplicityWeight;
8736 for(Int_t y=x+1;y<=139;y++)
8740 dwy=d2pMultiplicityWeight;
8741 } else if(y>=7 && y<16)
8743 dwy=d3pMultiplicityWeight;
8744 } else if(y>=16 && y<57)
8746 dwy=d4pMultiplicityWeight;
8747 } else if(y>=57 && y<140)
8749 dwy=d5pMultiplicityWeight;
8751 fMixedHarmonicProductOfCorrelations->Fill(x-0.5,y-0.5,allMixedCorrelators[x-1]*allMixedCorrelators[y-1],dwx*dwy);
8752 } // end of for(Int_t y=x+1;y<=139;y++)
8753 } // end of for(Int_t x=1;x<=139;x++)
8755 } // end of void AliFlowAnalysisWithQCumulants::CalculateMixedHarmonics()
8757 //===================================================================================================================
8759 void AliFlowAnalysisWithQCumulants::CalculateCumulantsMixedHarmonics()
8761 // Calculate in this method all multi-particle cumulants for azimuthal correlations in mixed harmonics.
8762 // (Remark: For completeness sake, we also calculate here again cumulants in the same harmonic.)
8764 // a) Calculate 2-p cumulants;
8765 // b) Calculate 3-p cumulants;
8766 // c) Calculate 4-p cumulants;
8767 // d) Calculate 5-p cumulants.
8769 // a) Calculate 2-p cumulants:
8770 for(Int_t b=1;b<=6;b++)
8772 f2pCumulants->SetBinContent(b,f2pCorrelations->GetBinContent(b));
8773 Double_t dSumWLinear = 0.; // sum of linear event weights
8774 Double_t dSumWQuadratic = 0.; // sum of quadratic event weights
8775 Double_t dSpread = 0.; // weighted and biased estimator for sigma
8776 Double_t dError = 0.; // weighted and unbiased estimator for error
8777 dSumWLinear = fMixedHarmonicEventWeights[0]->GetBinContent(2);
8778 dSumWQuadratic = fMixedHarmonicEventWeights[1]->GetBinContent(2);
8779 dSpread = f2pCorrelations->GetBinError(b);
8780 if(pow(dSumWLinear,2.)>dSumWQuadratic)
8782 dError = (pow(dSumWQuadratic,0.5)/dSumWLinear)*dSpread*pow(pow(dSumWLinear,2.)/(pow(dSumWLinear,2.)-dSumWQuadratic),0.5);
8783 f2pCumulants->SetBinError(b,dError);
8784 } // end of if(pow(dSumWLinear,2.)>dSumWQuadratic)
8785 } // end of for(Int_t b=1;b<=6;b++)
8787 // b) Calculate 3-p cumulants:
8788 for(Int_t b=1;b<=10;b++)
8790 f3pCumulants->SetBinContent(b,f3pCorrelations->GetBinContent(b));
8791 Double_t dSumWLinear = 0.; // sum of linear event weights
8792 Double_t dSumWQuadratic = 0.; // sum of quadratic event weights
8793 Double_t dSpread = 0.; // weighted and biased estimator for sigma
8794 Double_t dError = 0.; // weighted and unbiased estimator for sigma
8795 dSumWLinear = fMixedHarmonicEventWeights[0]->GetBinContent(3);
8796 dSumWQuadratic = fMixedHarmonicEventWeights[1]->GetBinContent(3);
8797 dSpread = f3pCorrelations->GetBinError(b);
8798 if(pow(dSumWLinear,2.)>dSumWQuadratic)
8800 dError = (pow(dSumWQuadratic,0.5)/dSumWLinear)*dSpread*pow(pow(dSumWLinear,2.)/(pow(dSumWLinear,2.)-dSumWQuadratic),0.5);
8801 f3pCumulants->SetBinError(b,dError);
8802 } // end of if(pow(dSumWLinear,2.)>dSumWQuadratic)
8803 } // end of for(Int_t b=1;b<=10;b++)
8805 // c) Calculate 4-p cumulants:
8806 // c1) "Single harmonic":
8807 for(Int_t b=1;b<=6;b++)
8809 f4pCumulants->SetBinContent(b,f4pCorrelations->GetBinContent(b)-2.*pow(f2pCorrelations->GetBinContent(b),2.));
8810 Double_t dSumWLinearTwo = 0.; // sum of linear event weights for <2>
8811 Double_t dSumWQuadraticTwo = 0.; // sum of quadratic event weights <2>
8812 Double_t dSpreadTwo = 0.; // weighted and biased estimator for sigma of <2>
8813 Double_t dSumWLinearFour = 0.; // sum of linear event weights for <4>
8814 Double_t dSumWQuadraticFour = 0.; // sum of quadratic event weights <4>
8815 Double_t dSpreadFour = 0.; // weighted and biased estimator for sigma of <4>
8816 dSumWLinearTwo = fMixedHarmonicEventWeights[0]->GetBinContent(2);
8817 dSumWQuadraticTwo = fMixedHarmonicEventWeights[1]->GetBinContent(2);
8818 dSpreadTwo = f2pCorrelations->GetBinError(b);
8819 dSumWLinearFour = fMixedHarmonicEventWeights[0]->GetBinContent(4);
8820 dSumWQuadraticFour = fMixedHarmonicEventWeights[1]->GetBinContent(4);
8821 dSpreadFour = f4pCorrelations->GetBinError(b);
8822 if(pow(dSumWLinearTwo,2.)>dSumWQuadraticTwo && pow(dSumWLinearFour,2.)>dSumWQuadraticFour)
8824 Double_t dError = 16.*pow(f2pCorrelations->GetBinContent(b),2.)
8825 * pow((pow(dSumWQuadraticTwo,0.5)/dSumWLinearTwo)*dSpreadTwo*pow(pow(dSumWLinearTwo,2.)/(pow(dSumWLinearTwo,2.)-dSumWQuadraticTwo),0.5),2.)
8826 + pow((pow(dSumWQuadraticFour,0.5)/dSumWLinearFour)*dSpreadFour*pow(pow(dSumWLinearFour,2.)/(pow(dSumWLinearFour,2.)-dSumWQuadraticFour),0.5),2.)
8827 - 8.*f2pCorrelations->GetBinContent(b)
8828 * fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,4))
8829 * (fMixedHarmonicProductOfCorrelations->GetBinContent(fMixedHarmonicProductOfCorrelations->GetBin(b,b+15))
8830 - f2pCorrelations->GetBinContent(b)*f4pCorrelations->GetBinContent(b))
8831 / (dSumWLinearTwo*dSumWLinearFour-fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,4)));
8834 f4pCumulants->SetBinError(b,pow(dError,0.5));
8836 } // end of if(pow(dSumWLinearTwo,2.)>dSumWQuadraticTwo && pow(dSumWLinearFour,2.)>dSumWQuadraticFour)
8837 } // end of for(Int_t b=1;b<=6;b++)
8838 // c2) "Standard candles":
8839 // <4>_{2n,1n|2n,1n}:
8840 f4pCumulants->SetBinContent(8,f4pCorrelations->GetBinContent(8)-f2pCorrelations->GetBinContent(2)*f2pCorrelations->GetBinContent(1));
8842 Double_t dSumWLinearTwo1n1n = 0.; // sum of linear event weights for <2>
8843 Double_t dSumWQuadraticTwo1n1n = 0.; // sum of quadratic event weights <2>
8844 Double_t dSpreadTwo1n1n = 0.; // weighted and biased estimator for sigma of <2>
8845 Double_t dSumWLinearTwo2n2n = 0.; // sum of linear event weights for <2>
8846 Double_t dSumWQuadraticTwo2n2n = 0.; // sum of quadratic event weights <2>
8847 Double_t dSpreadTwo2n2n = 0.; // weighted and biased estimator for sigma of <2>
8848 Double_t dSumWLinearFour2n1n2n1n = 0.; // sum of linear event weights for <4>
8849 Double_t dSumWQuadraticFour2n1n2n1n = 0.; // sum of quadratic event weights <4>
8850 Double_t dSpreadFour2n1n2n1n = 0.; // weighted and biased estimator for sigma of <4>
8851 dSumWLinearTwo1n1n = fMixedHarmonicEventWeights[0]->GetBinContent(2);
8852 dSumWQuadraticTwo1n1n = fMixedHarmonicEventWeights[1]->GetBinContent(2);
8853 dSpreadTwo1n1n = f2pCorrelations->GetBinError(1);
8854 dSumWLinearTwo2n2n = fMixedHarmonicEventWeights[0]->GetBinContent(2);
8855 dSumWQuadraticTwo2n2n = fMixedHarmonicEventWeights[1]->GetBinContent(2);
8856 dSpreadTwo2n2n = f2pCorrelations->GetBinError(2);
8857 dSumWLinearFour2n1n2n1n = fMixedHarmonicEventWeights[0]->GetBinContent(4);
8858 dSumWQuadraticFour2n1n2n1n = fMixedHarmonicEventWeights[1]->GetBinContent(4);
8859 dSpreadFour2n1n2n1n = f4pCorrelations->GetBinError(8);
8860 if(pow(dSumWLinearTwo1n1n,2.)>dSumWQuadraticTwo1n1n &&
8861 pow(dSumWLinearTwo2n2n,2.)>dSumWQuadraticTwo2n2n &&
8862 pow(dSumWLinearFour2n1n2n1n,2.)>dSumWQuadraticFour2n1n2n1n)
8864 Double_t dError = pow(f2pCorrelations->GetBinContent(2),2.)
8865 * pow((pow(dSumWQuadraticTwo1n1n,0.5)/dSumWLinearTwo1n1n)
8866 * dSpreadTwo1n1n*pow(pow(dSumWLinearTwo1n1n,2.)/(pow(dSumWLinearTwo1n1n,2.)-dSumWQuadraticTwo1n1n),0.5),2.)
8867 + pow(f2pCorrelations->GetBinContent(1),2.)
8868 * pow((pow(dSumWQuadraticTwo2n2n,0.5)/dSumWLinearTwo2n2n)
8869 * dSpreadTwo2n2n*pow(pow(dSumWLinearTwo2n2n,2.)/(pow(dSumWLinearTwo2n2n,2.)-dSumWQuadraticTwo2n2n),0.5),2.)
8870 + pow((pow(dSumWQuadraticFour2n1n2n1n,0.5)/dSumWLinearFour2n1n2n1n)
8871 * dSpreadFour2n1n2n1n*pow(pow(dSumWLinearFour2n1n2n1n,2.)/(pow(dSumWLinearFour2n1n2n1n,2.)-dSumWQuadraticFour2n1n2n1n),0.5),2.)
8872 + 2.*f2pCorrelations->GetBinContent(2)*f2pCorrelations->GetBinContent(1)
8873 * fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,2))
8874 * (fMixedHarmonicProductOfCorrelations->GetBinContent(fMixedHarmonicProductOfCorrelations->GetBin(1,2))
8875 - f2pCorrelations->GetBinContent(1)*f2pCorrelations->GetBinContent(2))
8876 / (dSumWLinearTwo1n1n*dSumWLinearTwo2n2n-fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,2)))
8877 - 2.*f2pCorrelations->GetBinContent(2)
8878 * fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,4))
8879 * (fMixedHarmonicProductOfCorrelations->GetBinContent(fMixedHarmonicProductOfCorrelations->GetBin(1,22))
8880 - f2pCorrelations->GetBinContent(1)*f4pCorrelations->GetBinContent(8))
8881 / (dSumWLinearTwo1n1n*dSumWLinearFour2n1n2n1n-fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,4)))
8882 - 2.*f2pCorrelations->GetBinContent(1)
8883 * fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,4))
8884 * (fMixedHarmonicProductOfCorrelations->GetBinContent(fMixedHarmonicProductOfCorrelations->GetBin(2,22))
8885 - f2pCorrelations->GetBinContent(2)*f4pCorrelations->GetBinContent(8))
8886 / (dSumWLinearTwo2n2n*dSumWLinearFour2n1n2n1n-fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,4)));
8889 f4pCumulants->SetBinError(8,pow(dError,0.5));
8893 // <4>_{3n,1n|3n,1n}:
8894 f4pCumulants->SetBinContent(9,f4pCorrelations->GetBinContent(9)-f2pCorrelations->GetBinContent(3)*f2pCorrelations->GetBinContent(1));
8896 Double_t dSumWLinearTwo1n1n = 0.; // sum of linear event weights for <2>
8897 Double_t dSumWQuadraticTwo1n1n = 0.; // sum of quadratic event weights <2>
8898 Double_t dSpreadTwo1n1n = 0.; // weighted and biased estimator for sigma of <2>
8899 Double_t dSumWLinearTwo3n3n = 0.; // sum of linear event weights for <2>
8900 Double_t dSumWQuadraticTwo3n3n = 0.; // sum of quadratic event weights <2>
8901 Double_t dSpreadTwo3n3n = 0.; // weighted and biased estimator for sigma of <2>
8902 Double_t dSumWLinearFour3n1n3n1n = 0.; // sum of linear event weights for <4>
8903 Double_t dSumWQuadraticFour3n1n3n1n = 0.; // sum of quadratic event weights <4>
8904 Double_t dSpreadFour3n1n3n1n = 0.; // weighted and biased estimator for sigma of <4>
8905 dSumWLinearTwo1n1n = fMixedHarmonicEventWeights[0]->GetBinContent(2);
8906 dSumWQuadraticTwo1n1n = fMixedHarmonicEventWeights[1]->GetBinContent(2);
8907 dSpreadTwo1n1n = f2pCorrelations->GetBinError(1);
8908 dSumWLinearTwo3n3n = fMixedHarmonicEventWeights[0]->GetBinContent(2);
8909 dSumWQuadraticTwo3n3n = fMixedHarmonicEventWeights[1]->GetBinContent(2);
8910 dSpreadTwo3n3n = f2pCorrelations->GetBinError(3);
8911 dSumWLinearFour3n1n3n1n = fMixedHarmonicEventWeights[0]->GetBinContent(4);
8912 dSumWQuadraticFour3n1n3n1n = fMixedHarmonicEventWeights[1]->GetBinContent(4);
8913 dSpreadFour3n1n3n1n = f4pCorrelations->GetBinError(9);
8914 if(pow(dSumWLinearTwo1n1n,2.)>dSumWQuadraticTwo1n1n &&
8915 pow(dSumWLinearTwo3n3n,2.)>dSumWQuadraticTwo3n3n &&
8916 pow(dSumWLinearFour3n1n3n1n,2.)>dSumWQuadraticFour3n1n3n1n)
8918 Double_t dError = pow(f2pCorrelations->GetBinContent(3),2.)
8919 * pow((pow(dSumWQuadraticTwo1n1n,0.5)/dSumWLinearTwo1n1n)
8920 * dSpreadTwo1n1n*pow(pow(dSumWLinearTwo1n1n,2.)/(pow(dSumWLinearTwo1n1n,2.)-dSumWQuadraticTwo1n1n),0.5),2.)
8921 + pow(f2pCorrelations->GetBinContent(1),2.)
8922 * pow((pow(dSumWQuadraticTwo3n3n,0.5)/dSumWLinearTwo3n3n)
8923 * dSpreadTwo3n3n*pow(pow(dSumWLinearTwo3n3n,2.)/(pow(dSumWLinearTwo3n3n,2.)-dSumWQuadraticTwo3n3n),0.5),2.)
8924 + pow((pow(dSumWQuadraticFour3n1n3n1n,0.5)/dSumWLinearFour3n1n3n1n)
8925 * dSpreadFour3n1n3n1n*pow(pow(dSumWLinearFour3n1n3n1n,2.)/(pow(dSumWLinearFour3n1n3n1n,2.)-dSumWQuadraticFour3n1n3n1n),0.5),2.)
8926 + 2.*f2pCorrelations->GetBinContent(3)*f2pCorrelations->GetBinContent(1)
8927 * fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,2))
8928 * (fMixedHarmonicProductOfCorrelations->GetBinContent(fMixedHarmonicProductOfCorrelations->GetBin(1,3))
8929 - f2pCorrelations->GetBinContent(1)*f2pCorrelations->GetBinContent(3))
8930 / (dSumWLinearTwo1n1n*dSumWLinearTwo3n3n-fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,2)))
8931 - 2.*f2pCorrelations->GetBinContent(3)
8932 * fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,4))
8933 * (fMixedHarmonicProductOfCorrelations->GetBinContent(fMixedHarmonicProductOfCorrelations->GetBin(1,23))
8934 - f2pCorrelations->GetBinContent(1)*f4pCorrelations->GetBinContent(9))
8935 / (dSumWLinearTwo1n1n*dSumWLinearFour3n1n3n1n-fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,4)))
8936 - 2.*f2pCorrelations->GetBinContent(1)
8937 * fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,4))
8938 * (fMixedHarmonicProductOfCorrelations->GetBinContent(fMixedHarmonicProductOfCorrelations->GetBin(3,23))
8939 - f2pCorrelations->GetBinContent(3)*f4pCorrelations->GetBinContent(9))
8940 / (dSumWLinearTwo3n3n*dSumWLinearFour3n1n3n1n-fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,4)));
8943 f4pCumulants->SetBinError(9,pow(dError,0.5));
8947 // <4>_{3n,2n|3n,2n}:
8948 f4pCumulants->SetBinContent(10,f4pCorrelations->GetBinContent(10)-f2pCorrelations->GetBinContent(3)*f2pCorrelations->GetBinContent(2));
8950 Double_t dSumWLinearTwo2n2n = 0.; // sum of linear event weights for <2>
8951 Double_t dSumWQuadraticTwo2n2n = 0.; // sum of quadratic event weights <2>
8952 Double_t dSpreadTwo2n2n = 0.; // weighted and biased estimator for sigma of <2>
8953 Double_t dSumWLinearTwo3n3n = 0.; // sum of linear event weights for <2>
8954 Double_t dSumWQuadraticTwo3n3n = 0.; // sum of quadratic event weights <2>
8955 Double_t dSpreadTwo3n3n = 0.; // weighted and biased estimator for sigma of <2>
8956 Double_t dSumWLinearFour3n2n3n2n = 0.; // sum of linear event weights for <4>
8957 Double_t dSumWQuadraticFour3n2n3n2n = 0.; // sum of quadratic event weights <4>
8958 Double_t dSpreadFour3n2n3n2n = 0.; // weighted and biased estimator for sigma of <4>
8959 dSumWLinearTwo2n2n = fMixedHarmonicEventWeights[0]->GetBinContent(2);
8960 dSumWQuadraticTwo2n2n = fMixedHarmonicEventWeights[1]->GetBinContent(2);
8961 dSpreadTwo2n2n = f2pCorrelations->GetBinError(2);
8962 dSumWLinearTwo3n3n = fMixedHarmonicEventWeights[0]->GetBinContent(2);
8963 dSumWQuadraticTwo3n3n = fMixedHarmonicEventWeights[1]->GetBinContent(2);
8964 dSpreadTwo3n3n = f2pCorrelations->GetBinError(3);
8965 dSumWLinearFour3n2n3n2n = fMixedHarmonicEventWeights[0]->GetBinContent(4);
8966 dSumWQuadraticFour3n2n3n2n = fMixedHarmonicEventWeights[1]->GetBinContent(4);
8967 dSpreadFour3n2n3n2n = f4pCorrelations->GetBinError(10);
8968 if(pow(dSumWLinearTwo2n2n,2.)>dSumWQuadraticTwo2n2n &&
8969 pow(dSumWLinearTwo3n3n,2.)>dSumWQuadraticTwo3n3n &&
8970 pow(dSumWLinearFour3n2n3n2n,2.)>dSumWQuadraticFour3n2n3n2n)
8972 Double_t dError = pow(f2pCorrelations->GetBinContent(3),2.)
8973 * pow((pow(dSumWQuadraticTwo2n2n,0.5)/dSumWLinearTwo2n2n)
8974 * dSpreadTwo2n2n*pow(pow(dSumWLinearTwo2n2n,2.)/(pow(dSumWLinearTwo2n2n,2.)-dSumWQuadraticTwo2n2n),0.5),2.)
8975 + pow(f2pCorrelations->GetBinContent(2),2.)
8976 * pow((pow(dSumWQuadraticTwo3n3n,0.5)/dSumWLinearTwo3n3n)
8977 * dSpreadTwo3n3n*pow(pow(dSumWLinearTwo3n3n,2.)/(pow(dSumWLinearTwo3n3n,2.)-dSumWQuadraticTwo3n3n),0.5),2.)
8978 + pow((pow(dSumWQuadraticFour3n2n3n2n,0.5)/dSumWLinearFour3n2n3n2n)
8979 * dSpreadFour3n2n3n2n*pow(pow(dSumWLinearFour3n2n3n2n,2.)/(pow(dSumWLinearFour3n2n3n2n,2.)-dSumWQuadraticFour3n2n3n2n),0.5),2.)
8980 + 2.*f2pCorrelations->GetBinContent(3)*f2pCorrelations->GetBinContent(2)
8981 * fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,2))
8982 * (fMixedHarmonicProductOfCorrelations->GetBinContent(fMixedHarmonicProductOfCorrelations->GetBin(2,3))
8983 - f2pCorrelations->GetBinContent(2)*f2pCorrelations->GetBinContent(3))
8984 / (dSumWLinearTwo2n2n*dSumWLinearTwo3n3n-fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,2)))
8985 - 2.*f2pCorrelations->GetBinContent(3)
8986 * fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,4))
8987 * (fMixedHarmonicProductOfCorrelations->GetBinContent(fMixedHarmonicProductOfCorrelations->GetBin(2,24))
8988 - f2pCorrelations->GetBinContent(2)*f4pCorrelations->GetBinContent(10))
8989 / (dSumWLinearTwo2n2n*dSumWLinearFour3n2n3n2n-fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,4)))
8990 - 2.*f2pCorrelations->GetBinContent(2)
8991 * fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,4))
8992 * (fMixedHarmonicProductOfCorrelations->GetBinContent(fMixedHarmonicProductOfCorrelations->GetBin(3,24))
8993 - f2pCorrelations->GetBinContent(3)*f4pCorrelations->GetBinContent(10))
8994 / (dSumWLinearTwo3n3n*dSumWLinearFour3n2n3n2n-fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,4)));
8997 f4pCumulants->SetBinError(10,pow(dError,0.5));
9001 // <4>_{4n,1n|4n,1n}
9002 f4pCumulants->SetBinContent(11,f4pCorrelations->GetBinContent(11)-f2pCorrelations->GetBinContent(4)*f2pCorrelations->GetBinContent(1));
9004 Double_t dSumWLinearTwo1n1n = 0.; // sum of linear event weights for <2>
9005 Double_t dSumWQuadraticTwo1n1n = 0.; // sum of quadratic event weights <2>
9006 Double_t dSpreadTwo1n1n = 0.; // weighted and biased estimator for sigma of <2>
9007 Double_t dSumWLinearTwo4n4n = 0.; // sum of linear event weights for <2>
9008 Double_t dSumWQuadraticTwo4n4n = 0.; // sum of quadratic event weights <2>
9009 Double_t dSpreadTwo4n4n = 0.; // weighted and biased estimator for sigma of <2>
9010 Double_t dSumWLinearFour4n1n4n1n = 0.; // sum of linear event weights for <4>
9011 Double_t dSumWQuadraticFour4n1n4n1n = 0.; // sum of quadratic event weights <4>
9012 Double_t dSpreadFour4n1n4n1n = 0.; // weighted and biased estimator for sigma of <4>
9013 dSumWLinearTwo1n1n = fMixedHarmonicEventWeights[0]->GetBinContent(2);
9014 dSumWQuadraticTwo1n1n = fMixedHarmonicEventWeights[1]->GetBinContent(2);
9015 dSpreadTwo1n1n = f2pCorrelations->GetBinError(1);
9016 dSumWLinearTwo4n4n = fMixedHarmonicEventWeights[0]->GetBinContent(2);
9017 dSumWQuadraticTwo4n4n = fMixedHarmonicEventWeights[1]->GetBinContent(2);
9018 dSpreadTwo4n4n = f2pCorrelations->GetBinError(4);
9019 dSumWLinearFour4n1n4n1n = fMixedHarmonicEventWeights[0]->GetBinContent(4);
9020 dSumWQuadraticFour4n1n4n1n = fMixedHarmonicEventWeights[1]->GetBinContent(4);
9021 dSpreadFour4n1n4n1n = f4pCorrelations->GetBinError(11);
9022 if(pow(dSumWLinearTwo1n1n,2.)>dSumWQuadraticTwo1n1n &&
9023 pow(dSumWLinearTwo4n4n,2.)>dSumWQuadraticTwo4n4n &&
9024 pow(dSumWLinearFour4n1n4n1n,2.)>dSumWQuadraticFour4n1n4n1n)
9026 Double_t dError = pow(f2pCorrelations->GetBinContent(4),2.)
9027 * pow((pow(dSumWQuadraticTwo1n1n,0.5)/dSumWLinearTwo1n1n)
9028 * dSpreadTwo1n1n*pow(pow(dSumWLinearTwo1n1n,2.)/(pow(dSumWLinearTwo1n1n,2.)-dSumWQuadraticTwo1n1n),0.5),2.)
9029 + pow(f2pCorrelations->GetBinContent(1),2.)
9030 * pow((pow(dSumWQuadraticTwo4n4n,0.5)/dSumWLinearTwo4n4n)
9031 * dSpreadTwo4n4n*pow(pow(dSumWLinearTwo4n4n,2.)/(pow(dSumWLinearTwo4n4n,2.)-dSumWQuadraticTwo4n4n),0.5),2.)
9032 + pow((pow(dSumWQuadraticFour4n1n4n1n,0.5)/dSumWLinearFour4n1n4n1n)
9033 * dSpreadFour4n1n4n1n*pow(pow(dSumWLinearFour4n1n4n1n,2.)/(pow(dSumWLinearFour4n1n4n1n,2.)-dSumWQuadraticFour4n1n4n1n),0.5),2.)
9034 + 2.*f2pCorrelations->GetBinContent(4)*f2pCorrelations->GetBinContent(1)
9035 * fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,2))
9036 * (fMixedHarmonicProductOfCorrelations->GetBinContent(fMixedHarmonicProductOfCorrelations->GetBin(1,4))
9037 - f2pCorrelations->GetBinContent(1)*f2pCorrelations->GetBinContent(4))
9038 / (dSumWLinearTwo1n1n*dSumWLinearTwo4n4n-fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,2)))
9039 - 2.*f2pCorrelations->GetBinContent(4)
9040 * fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,4))
9041 * (fMixedHarmonicProductOfCorrelations->GetBinContent(fMixedHarmonicProductOfCorrelations->GetBin(1,25))
9042 - f2pCorrelations->GetBinContent(1)*f4pCorrelations->GetBinContent(11))
9043 / (dSumWLinearTwo1n1n*dSumWLinearFour4n1n4n1n-fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,4)))
9044 - 2.*f2pCorrelations->GetBinContent(1)
9045 * fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,4))
9046 * (fMixedHarmonicProductOfCorrelations->GetBinContent(fMixedHarmonicProductOfCorrelations->GetBin(4,25))
9047 - f2pCorrelations->GetBinContent(4)*f4pCorrelations->GetBinContent(11))
9048 / (dSumWLinearTwo4n4n*dSumWLinearFour4n1n4n1n-fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,4)));
9051 f4pCumulants->SetBinError(11,pow(dError,0.5));
9055 // <4>_{4n,2n|4n,2n}
9056 f4pCumulants->SetBinContent(12,f4pCorrelations->GetBinContent(12)-f2pCorrelations->GetBinContent(4)*f2pCorrelations->GetBinContent(2));
9058 Double_t dSumWLinearTwo2n2n = 0.; // sum of linear event weights for <2>
9059 Double_t dSumWQuadraticTwo2n2n = 0.; // sum of quadratic event weights <2>
9060 Double_t dSpreadTwo2n2n = 0.; // weighted and biased estimator for sigma of <2>
9061 Double_t dSumWLinearTwo4n4n = 0.; // sum of linear event weights for <2>
9062 Double_t dSumWQuadraticTwo4n4n = 0.; // sum of quadratic event weights <2>
9063 Double_t dSpreadTwo4n4n = 0.; // weighted and biased estimator for sigma of <2>
9064 Double_t dSumWLinearFour4n2n4n2n = 0.; // sum of linear event weights for <4>
9065 Double_t dSumWQuadraticFour4n2n4n2n = 0.; // sum of quadratic event weights <4>
9066 Double_t dSpreadFour4n2n4n2n = 0.; // weighted and biased estimator for sigma of <4>
9067 dSumWLinearTwo2n2n = fMixedHarmonicEventWeights[0]->GetBinContent(2);
9068 dSumWQuadraticTwo2n2n = fMixedHarmonicEventWeights[1]->GetBinContent(2);
9069 dSpreadTwo2n2n = f2pCorrelations->GetBinError(2);
9070 dSumWLinearTwo4n4n = fMixedHarmonicEventWeights[0]->GetBinContent(2);
9071 dSumWQuadraticTwo4n4n = fMixedHarmonicEventWeights[1]->GetBinContent(2);
9072 dSpreadTwo4n4n = f2pCorrelations->GetBinError(4);
9073 dSumWLinearFour4n2n4n2n = fMixedHarmonicEventWeights[0]->GetBinContent(4);
9074 dSumWQuadraticFour4n2n4n2n = fMixedHarmonicEventWeights[1]->GetBinContent(4);
9075 dSpreadFour4n2n4n2n = f4pCorrelations->GetBinError(12);
9076 if(pow(dSumWLinearTwo2n2n,2.)>dSumWQuadraticTwo2n2n &&
9077 pow(dSumWLinearTwo4n4n,2.)>dSumWQuadraticTwo4n4n &&
9078 pow(dSumWLinearFour4n2n4n2n,2.)>dSumWQuadraticFour4n2n4n2n)
9080 Double_t dError = pow(f2pCorrelations->GetBinContent(4),2.)
9081 * pow((pow(dSumWQuadraticTwo2n2n,0.5)/dSumWLinearTwo2n2n)
9082 * dSpreadTwo2n2n*pow(pow(dSumWLinearTwo2n2n,2.)/(pow(dSumWLinearTwo2n2n,2.)-dSumWQuadraticTwo2n2n),0.5),2.)
9083 + pow(f2pCorrelations->GetBinContent(2),2.)
9084 * pow((pow(dSumWQuadraticTwo4n4n,0.5)/dSumWLinearTwo4n4n)
9085 * dSpreadTwo4n4n*pow(pow(dSumWLinearTwo4n4n,2.)/(pow(dSumWLinearTwo4n4n,2.)-dSumWQuadraticTwo4n4n),0.5),2.)
9086 + pow((pow(dSumWQuadraticFour4n2n4n2n,0.5)/dSumWLinearFour4n2n4n2n)
9087 * dSpreadFour4n2n4n2n*pow(pow(dSumWLinearFour4n2n4n2n,2.)/(pow(dSumWLinearFour4n2n4n2n,2.)-dSumWQuadraticFour4n2n4n2n),0.5),2.)
9088 + 2.*f2pCorrelations->GetBinContent(4)*f2pCorrelations->GetBinContent(2)
9089 * fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,2))
9090 * (fMixedHarmonicProductOfCorrelations->GetBinContent(fMixedHarmonicProductOfCorrelations->GetBin(2,4))
9091 - f2pCorrelations->GetBinContent(2)*f2pCorrelations->GetBinContent(4))
9092 / (dSumWLinearTwo2n2n*dSumWLinearTwo4n4n-fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,2)))
9093 - 2.*f2pCorrelations->GetBinContent(4)
9094 * fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,4))
9095 * (fMixedHarmonicProductOfCorrelations->GetBinContent(fMixedHarmonicProductOfCorrelations->GetBin(2,25))
9096 - f2pCorrelations->GetBinContent(2)*f4pCorrelations->GetBinContent(12))
9097 / (dSumWLinearTwo2n2n*dSumWLinearFour4n2n4n2n-fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,4)))
9098 - 2.*f2pCorrelations->GetBinContent(2)
9099 * fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,4))
9100 * (fMixedHarmonicProductOfCorrelations->GetBinContent(fMixedHarmonicProductOfCorrelations->GetBin(4,25))
9101 - f2pCorrelations->GetBinContent(4)*f4pCorrelations->GetBinContent(12))
9102 / (dSumWLinearTwo4n4n*dSumWLinearFour4n2n4n2n-fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,4)));
9105 f4pCumulants->SetBinError(12,pow(dError,0.5));
9109 // <4>_{4n,3n|4n,3n}
9110 f4pCumulants->SetBinContent(13,f4pCorrelations->GetBinContent(13)-f2pCorrelations->GetBinContent(4)*f2pCorrelations->GetBinContent(3));
9112 Double_t dSumWLinearTwo3n3n = 0.; // sum of linear event weights for <2>
9113 Double_t dSumWQuadraticTwo3n3n = 0.; // sum of quadratic event weights <2>
9114 Double_t dSpreadTwo3n3n = 0.; // weighted and biased estimator for sigma of <2>
9115 Double_t dSumWLinearTwo4n4n = 0.; // sum of linear event weights for <2>
9116 Double_t dSumWQuadraticTwo4n4n = 0.; // sum of quadratic event weights <2>
9117 Double_t dSpreadTwo4n4n = 0.; // weighted and biased estimator for sigma of <2>
9118 Double_t dSumWLinearFour4n3n4n3n = 0.; // sum of linear event weights for <4>
9119 Double_t dSumWQuadraticFour4n3n4n3n = 0.; // sum of quadratic event weights <4>
9120 Double_t dSpreadFour4n3n4n3n = 0.; // weighted and biased estimator for sigma of <4>
9121 dSumWLinearTwo3n3n = fMixedHarmonicEventWeights[0]->GetBinContent(2);
9122 dSumWQuadraticTwo3n3n = fMixedHarmonicEventWeights[1]->GetBinContent(2);
9123 dSpreadTwo3n3n = f2pCorrelations->GetBinError(3);
9124 dSumWLinearTwo4n4n = fMixedHarmonicEventWeights[0]->GetBinContent(2);
9125 dSumWQuadraticTwo4n4n = fMixedHarmonicEventWeights[1]->GetBinContent(2);
9126 dSpreadTwo4n4n = f2pCorrelations->GetBinError(4);
9127 dSumWLinearFour4n3n4n3n = fMixedHarmonicEventWeights[0]->GetBinContent(4);
9128 dSumWQuadraticFour4n3n4n3n = fMixedHarmonicEventWeights[1]->GetBinContent(4);
9129 dSpreadFour4n3n4n3n = f4pCorrelations->GetBinError(13);
9130 if(pow(dSumWLinearTwo3n3n,2.)>dSumWQuadraticTwo3n3n &&
9131 pow(dSumWLinearTwo4n4n,2.)>dSumWQuadraticTwo4n4n &&
9132 pow(dSumWLinearFour4n3n4n3n,2.)>dSumWQuadraticFour4n3n4n3n)
9134 Double_t dError = pow(f2pCorrelations->GetBinContent(4),2.)
9135 * pow((pow(dSumWQuadraticTwo3n3n,0.5)/dSumWLinearTwo3n3n)
9136 * dSpreadTwo3n3n*pow(pow(dSumWLinearTwo3n3n,2.)/(pow(dSumWLinearTwo3n3n,2.)-dSumWQuadraticTwo3n3n),0.5),2.)
9137 + pow(f2pCorrelations->GetBinContent(3),2.)
9138 * pow((pow(dSumWQuadraticTwo4n4n,0.5)/dSumWLinearTwo4n4n)
9139 * dSpreadTwo4n4n*pow(pow(dSumWLinearTwo4n4n,2.)/(pow(dSumWLinearTwo4n4n,2.)-dSumWQuadraticTwo4n4n),0.5),2.)
9140 + pow((pow(dSumWQuadraticFour4n3n4n3n,0.5)/dSumWLinearFour4n3n4n3n)
9141 * dSpreadFour4n3n4n3n*pow(pow(dSumWLinearFour4n3n4n3n,2.)/(pow(dSumWLinearFour4n3n4n3n,2.)-dSumWQuadraticFour4n3n4n3n),0.5),2.)
9142 + 2.*f2pCorrelations->GetBinContent(4)*f2pCorrelations->GetBinContent(3)
9143 * fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,2))
9144 * (fMixedHarmonicProductOfCorrelations->GetBinContent(fMixedHarmonicProductOfCorrelations->GetBin(3,4))
9145 - f2pCorrelations->GetBinContent(3)*f2pCorrelations->GetBinContent(4))
9146 / (dSumWLinearTwo3n3n*dSumWLinearTwo4n4n-fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,2)))
9147 - 2.*f2pCorrelations->GetBinContent(4)
9148 * fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,4))
9149 * (fMixedHarmonicProductOfCorrelations->GetBinContent(fMixedHarmonicProductOfCorrelations->GetBin(3,26))
9150 - f2pCorrelations->GetBinContent(3)*f4pCorrelations->GetBinContent(13))
9151 / (dSumWLinearTwo3n3n*dSumWLinearFour4n3n4n3n-fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,4)))
9152 - 2.*f2pCorrelations->GetBinContent(3)
9153 * fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,4))
9154 * (fMixedHarmonicProductOfCorrelations->GetBinContent(fMixedHarmonicProductOfCorrelations->GetBin(4,26))
9155 - f2pCorrelations->GetBinContent(4)*f4pCorrelations->GetBinContent(13))
9156 / (dSumWLinearTwo4n4n*dSumWLinearFour4n3n4n3n-fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,4)));
9159 f4pCumulants->SetBinError(13,pow(dError,0.5));
9163 // <4>_{5n,1n|5n,1n}
9164 f4pCumulants->SetBinContent(14,f4pCorrelations->GetBinContent(14)-f2pCorrelations->GetBinContent(5)*f2pCorrelations->GetBinContent(1));
9166 Double_t dSumWLinearTwo1n1n = 0.; // sum of linear event weights for <2>
9167 Double_t dSumWQuadraticTwo1n1n = 0.; // sum of quadratic event weights <2>
9168 Double_t dSpreadTwo1n1n = 0.; // weighted and biased estimator for sigma of <2>
9169 Double_t dSumWLinearTwo5n5n = 0.; // sum of linear event weights for <2>
9170 Double_t dSumWQuadraticTwo5n5n = 0.; // sum of quadratic event weights <2>
9171 Double_t dSpreadTwo5n5n = 0.; // weighted and biased estimator for sigma of <2>
9172 Double_t dSumWLinearFour5n1n5n1n = 0.; // sum of linear event weights for <4>
9173 Double_t dSumWQuadraticFour5n1n5n1n = 0.; // sum of quadratic event weights <4>
9174 Double_t dSpreadFour5n1n5n1n = 0.; // weighted and biased estimator for sigma of <4>
9175 dSumWLinearTwo1n1n = fMixedHarmonicEventWeights[0]->GetBinContent(2);
9176 dSumWQuadraticTwo1n1n = fMixedHarmonicEventWeights[1]->GetBinContent(2);
9177 dSpreadTwo1n1n = f2pCorrelations->GetBinError(1);
9178 dSumWLinearTwo5n5n = fMixedHarmonicEventWeights[0]->GetBinContent(2);
9179 dSumWQuadraticTwo5n5n = fMixedHarmonicEventWeights[1]->GetBinContent(2);
9180 dSpreadTwo5n5n = f2pCorrelations->GetBinError(5);
9181 dSumWLinearFour5n1n5n1n = fMixedHarmonicEventWeights[0]->GetBinContent(4);
9182 dSumWQuadraticFour5n1n5n1n = fMixedHarmonicEventWeights[1]->GetBinContent(4);
9183 dSpreadFour5n1n5n1n = f4pCorrelations->GetBinError(14);
9184 if(pow(dSumWLinearTwo1n1n,2.)>dSumWQuadraticTwo1n1n &&
9185 pow(dSumWLinearTwo5n5n,2.)>dSumWQuadraticTwo5n5n &&
9186 pow(dSumWLinearFour5n1n5n1n,2.)>dSumWQuadraticFour5n1n5n1n)
9188 Double_t dError = pow(f2pCorrelations->GetBinContent(5),2.)
9189 * pow((pow(dSumWQuadraticTwo1n1n,0.5)/dSumWLinearTwo1n1n)
9190 * dSpreadTwo1n1n*pow(pow(dSumWLinearTwo1n1n,2.)/(pow(dSumWLinearTwo1n1n,2.)-dSumWQuadraticTwo1n1n),0.5),2.)
9191 + pow(f2pCorrelations->GetBinContent(1),2.)
9192 * pow((pow(dSumWQuadraticTwo5n5n,0.5)/dSumWLinearTwo5n5n)
9193 * dSpreadTwo5n5n*pow(pow(dSumWLinearTwo5n5n,2.)/(pow(dSumWLinearTwo5n5n,2.)-dSumWQuadraticTwo5n5n),0.5),2.)
9194 + pow((pow(dSumWQuadraticFour5n1n5n1n,0.5)/dSumWLinearFour5n1n5n1n)
9195 * dSpreadFour5n1n5n1n*pow(pow(dSumWLinearFour5n1n5n1n,2.)/(pow(dSumWLinearFour5n1n5n1n,2.)-dSumWQuadraticFour5n1n5n1n),0.5),2.)
9196 + 2.*f2pCorrelations->GetBinContent(5)*f2pCorrelations->GetBinContent(1)
9197 * fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,2))
9198 * (fMixedHarmonicProductOfCorrelations->GetBinContent(fMixedHarmonicProductOfCorrelations->GetBin(1,5))
9199 - f2pCorrelations->GetBinContent(1)*f2pCorrelations->GetBinContent(5))
9200 / (dSumWLinearTwo1n1n*dSumWLinearTwo5n5n-fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,2)))
9201 - 2.*f2pCorrelations->GetBinContent(5)
9202 * fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,4))
9203 * (fMixedHarmonicProductOfCorrelations->GetBinContent(fMixedHarmonicProductOfCorrelations->GetBin(1,28))
9204 - f2pCorrelations->GetBinContent(1)*f4pCorrelations->GetBinContent(14))
9205 / (dSumWLinearTwo1n1n*dSumWLinearFour5n1n5n1n-fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,4)))
9206 - 2.*f2pCorrelations->GetBinContent(1)
9207 * fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,4))
9208 * (fMixedHarmonicProductOfCorrelations->GetBinContent(fMixedHarmonicProductOfCorrelations->GetBin(5,28))
9209 - f2pCorrelations->GetBinContent(5)*f4pCorrelations->GetBinContent(14))
9210 / (dSumWLinearTwo5n5n*dSumWLinearFour5n1n5n1n-fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,4)));
9213 f4pCumulants->SetBinError(14,pow(dError,0.5));
9217 // <4>_{5n,2n|5n,2n}
9218 f4pCumulants->SetBinContent(15,f4pCorrelations->GetBinContent(15)-f2pCorrelations->GetBinContent(5)*f2pCorrelations->GetBinContent(2));
9220 Double_t dSumWLinearTwo2n2n = 0.; // sum of linear event weights for <2>
9221 Double_t dSumWQuadraticTwo2n2n = 0.; // sum of quadratic event weights <2>
9222 Double_t dSpreadTwo2n2n = 0.; // weighted and biased estimator for sigma of <2>
9223 Double_t dSumWLinearTwo5n5n = 0.; // sum of linear event weights for <2>
9224 Double_t dSumWQuadraticTwo5n5n = 0.; // sum of quadratic event weights <2>
9225 Double_t dSpreadTwo5n5n = 0.; // weighted and biased estimator for sigma of <2>
9226 Double_t dSumWLinearFour5n2n5n2n = 0.; // sum of linear event weights for <4>
9227 Double_t dSumWQuadraticFour5n2n5n2n = 0.; // sum of quadratic event weights <4>
9228 Double_t dSpreadFour5n2n5n2n = 0.; // weighted and biased estimator for sigma of <4>
9229 dSumWLinearTwo2n2n = fMixedHarmonicEventWeights[0]->GetBinContent(2);
9230 dSumWQuadraticTwo2n2n = fMixedHarmonicEventWeights[1]->GetBinContent(2);
9231 dSpreadTwo2n2n = f2pCorrelations->GetBinError(2);
9232 dSumWLinearTwo5n5n = fMixedHarmonicEventWeights[0]->GetBinContent(2);
9233 dSumWQuadraticTwo5n5n = fMixedHarmonicEventWeights[1]->GetBinContent(2);
9234 dSpreadTwo5n5n = f2pCorrelations->GetBinError(5);
9235 dSumWLinearFour5n2n5n2n = fMixedHarmonicEventWeights[0]->GetBinContent(4);
9236 dSumWQuadraticFour5n2n5n2n = fMixedHarmonicEventWeights[1]->GetBinContent(4);
9237 dSpreadFour5n2n5n2n = f4pCorrelations->GetBinError(15);
9238 if(pow(dSumWLinearTwo2n2n,2.)>dSumWQuadraticTwo2n2n &&
9239 pow(dSumWLinearTwo5n5n,2.)>dSumWQuadraticTwo5n5n &&
9240 pow(dSumWLinearFour5n2n5n2n,2.)>dSumWQuadraticFour5n2n5n2n)
9242 Double_t dError = pow(f2pCorrelations->GetBinContent(5),2.)
9243 * pow((pow(dSumWQuadraticTwo2n2n,0.5)/dSumWLinearTwo2n2n)
9244 * dSpreadTwo2n2n*pow(pow(dSumWLinearTwo2n2n,2.)/(pow(dSumWLinearTwo2n2n,2.)-dSumWQuadraticTwo2n2n),0.5),2.)
9245 + pow(f2pCorrelations->GetBinContent(2),2.)
9246 * pow((pow(dSumWQuadraticTwo5n5n,0.5)/dSumWLinearTwo5n5n)
9247 * dSpreadTwo5n5n*pow(pow(dSumWLinearTwo5n5n,2.)/(pow(dSumWLinearTwo5n5n,2.)-dSumWQuadraticTwo5n5n),0.5),2.)
9248 + pow((pow(dSumWQuadraticFour5n2n5n2n,0.5)/dSumWLinearFour5n2n5n2n)
9249 * dSpreadFour5n2n5n2n*pow(pow(dSumWLinearFour5n2n5n2n,2.)/(pow(dSumWLinearFour5n2n5n2n,2.)-dSumWQuadraticFour5n2n5n2n),0.5),2.)
9250 + 2.*f2pCorrelations->GetBinContent(5)*f2pCorrelations->GetBinContent(2)
9251 * fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,2))
9252 * (fMixedHarmonicProductOfCorrelations->GetBinContent(fMixedHarmonicProductOfCorrelations->GetBin(2,5))
9253 - f2pCorrelations->GetBinContent(2)*f2pCorrelations->GetBinContent(5))
9254 / (dSumWLinearTwo2n2n*dSumWLinearTwo5n5n-fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,2)))
9255 - 2.*f2pCorrelations->GetBinContent(5)
9256 * fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,4))
9257 * (fMixedHarmonicProductOfCorrelations->GetBinContent(fMixedHarmonicProductOfCorrelations->GetBin(2,29))
9258 - f2pCorrelations->GetBinContent(2)*f4pCorrelations->GetBinContent(15))
9259 / (dSumWLinearTwo2n2n*dSumWLinearFour5n2n5n2n-fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,4)))
9260 - 2.*f2pCorrelations->GetBinContent(2)
9261 * fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,4))
9262 * (fMixedHarmonicProductOfCorrelations->GetBinContent(fMixedHarmonicProductOfCorrelations->GetBin(5,29))
9263 - f2pCorrelations->GetBinContent(5)*f4pCorrelations->GetBinContent(15))
9264 / (dSumWLinearTwo5n5n*dSumWLinearFour5n2n5n2n-fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,4)));
9267 f4pCumulants->SetBinError(15,pow(dError,0.5));
9271 // <4>_{5n,3n|5n,3n}
9272 f4pCumulants->SetBinContent(16,f4pCorrelations->GetBinContent(16)-f2pCorrelations->GetBinContent(5)*f2pCorrelations->GetBinContent(3));
9274 Double_t dSumWLinearTwo3n3n = 0.; // sum of linear event weights for <2>
9275 Double_t dSumWQuadraticTwo3n3n = 0.; // sum of quadratic event weights <2>
9276 Double_t dSpreadTwo3n3n = 0.; // weighted and biased estimator for sigma of <2>
9277 Double_t dSumWLinearTwo5n5n = 0.; // sum of linear event weights for <2>
9278 Double_t dSumWQuadraticTwo5n5n = 0.; // sum of quadratic event weights <2>
9279 Double_t dSpreadTwo5n5n = 0.; // weighted and biased estimator for sigma of <2>
9280 Double_t dSumWLinearFour5n3n5n3n = 0.; // sum of linear event weights for <4>
9281 Double_t dSumWQuadraticFour5n3n5n3n = 0.; // sum of quadratic event weights <4>
9282 Double_t dSpreadFour5n3n5n3n = 0.; // weighted and biased estimator for sigma of <4>
9283 dSumWLinearTwo3n3n = fMixedHarmonicEventWeights[0]->GetBinContent(2);
9284 dSumWQuadraticTwo3n3n = fMixedHarmonicEventWeights[1]->GetBinContent(2);
9285 dSpreadTwo3n3n = f2pCorrelations->GetBinError(3);
9286 dSumWLinearTwo5n5n = fMixedHarmonicEventWeights[0]->GetBinContent(2);
9287 dSumWQuadraticTwo5n5n = fMixedHarmonicEventWeights[1]->GetBinContent(2);
9288 dSpreadTwo5n5n = f2pCorrelations->GetBinError(5);
9289 dSumWLinearFour5n3n5n3n = fMixedHarmonicEventWeights[0]->GetBinContent(4);
9290 dSumWQuadraticFour5n3n5n3n = fMixedHarmonicEventWeights[1]->GetBinContent(4);
9291 dSpreadFour5n3n5n3n = f4pCorrelations->GetBinError(16);
9292 if(pow(dSumWLinearTwo3n3n,2.)>dSumWQuadraticTwo3n3n &&
9293 pow(dSumWLinearTwo5n5n,2.)>dSumWQuadraticTwo5n5n &&
9294 pow(dSumWLinearFour5n3n5n3n,2.)>dSumWQuadraticFour5n3n5n3n)
9296 Double_t dError = pow(f2pCorrelations->GetBinContent(5),2.)
9297 * pow((pow(dSumWQuadraticTwo3n3n,0.5)/dSumWLinearTwo3n3n)
9298 * dSpreadTwo3n3n*pow(pow(dSumWLinearTwo3n3n,2.)/(pow(dSumWLinearTwo3n3n,2.)-dSumWQuadraticTwo3n3n),0.5),2.)
9299 + pow(f2pCorrelations->GetBinContent(3),2.)
9300 * pow((pow(dSumWQuadraticTwo5n5n,0.5)/dSumWLinearTwo5n5n)
9301 * dSpreadTwo5n5n*pow(pow(dSumWLinearTwo5n5n,2.)/(pow(dSumWLinearTwo5n5n,2.)-dSumWQuadraticTwo5n5n),0.5),2.)
9302 + pow((pow(dSumWQuadraticFour5n3n5n3n,0.5)/dSumWLinearFour5n3n5n3n)
9303 * dSpreadFour5n3n5n3n*pow(pow(dSumWLinearFour5n3n5n3n,2.)/(pow(dSumWLinearFour5n3n5n3n,2.)-dSumWQuadraticFour5n3n5n3n),0.5),2.)
9304 + 2.*f2pCorrelations->GetBinContent(5)*f2pCorrelations->GetBinContent(3)
9305 * fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,2))
9306 * (fMixedHarmonicProductOfCorrelations->GetBinContent(fMixedHarmonicProductOfCorrelations->GetBin(3,5))
9307 - f2pCorrelations->GetBinContent(3)*f2pCorrelations->GetBinContent(5))
9308 / (dSumWLinearTwo3n3n*dSumWLinearTwo5n5n-fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,2)))
9309 - 2.*f2pCorrelations->GetBinContent(5)
9310 * fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,4))
9311 * (fMixedHarmonicProductOfCorrelations->GetBinContent(fMixedHarmonicProductOfCorrelations->GetBin(3,30))
9312 - f2pCorrelations->GetBinContent(3)*f4pCorrelations->GetBinContent(16))
9313 / (dSumWLinearTwo3n3n*dSumWLinearFour5n3n5n3n-fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,4)))
9314 - 2.*f2pCorrelations->GetBinContent(3)
9315 * fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,4))
9316 * (fMixedHarmonicProductOfCorrelations->GetBinContent(fMixedHarmonicProductOfCorrelations->GetBin(5,30))
9317 - f2pCorrelations->GetBinContent(5)*f4pCorrelations->GetBinContent(16))
9318 / (dSumWLinearTwo5n5n*dSumWLinearFour5n3n5n3n-fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,4)));
9321 f4pCumulants->SetBinError(16,pow(dError,0.5));
9325 // <4>_{5n,4n|5n,4n}
9326 f4pCumulants->SetBinContent(17,f4pCorrelations->GetBinContent(17)-f2pCorrelations->GetBinContent(5)*f2pCorrelations->GetBinContent(4));
9328 Double_t dSumWLinearTwo4n4n = 0.; // sum of linear event weights for <2>
9329 Double_t dSumWQuadraticTwo4n4n = 0.; // sum of quadratic event weights <2>
9330 Double_t dSpreadTwo4n4n = 0.; // weighted and biased estimator for sigma of <2>
9331 Double_t dSumWLinearTwo5n5n = 0.; // sum of linear event weights for <2>
9332 Double_t dSumWQuadraticTwo5n5n = 0.; // sum of quadratic event weights <2>
9333 Double_t dSpreadTwo5n5n = 0.; // weighted and biased estimator for sigma of <2>
9334 Double_t dSumWLinearFour5n4n5n4n = 0.; // sum of linear event weights for <4>
9335 Double_t dSumWQuadraticFour5n4n5n4n = 0.; // sum of quadratic event weights <4>
9336 Double_t dSpreadFour5n4n5n4n = 0.; // weighted and biased estimator for sigma of <4>
9337 dSumWLinearTwo4n4n = fMixedHarmonicEventWeights[0]->GetBinContent(2);
9338 dSumWQuadraticTwo4n4n = fMixedHarmonicEventWeights[1]->GetBinContent(2);
9339 dSpreadTwo4n4n = f2pCorrelations->GetBinError(4);
9340 dSumWLinearTwo5n5n = fMixedHarmonicEventWeights[0]->GetBinContent(2);
9341 dSumWQuadraticTwo5n5n = fMixedHarmonicEventWeights[1]->GetBinContent(2);
9342 dSpreadTwo5n5n = f2pCorrelations->GetBinError(5);
9343 dSumWLinearFour5n4n5n4n = fMixedHarmonicEventWeights[0]->GetBinContent(4);
9344 dSumWQuadraticFour5n4n5n4n = fMixedHarmonicEventWeights[1]->GetBinContent(4);
9345 dSpreadFour5n4n5n4n = f4pCorrelations->GetBinError(17);
9346 if(pow(dSumWLinearTwo4n4n,2.)>dSumWQuadraticTwo4n4n &&
9347 pow(dSumWLinearTwo5n5n,2.)>dSumWQuadraticTwo5n5n &&
9348 pow(dSumWLinearFour5n4n5n4n,2.)>dSumWQuadraticFour5n4n5n4n)
9350 Double_t dError = pow(f2pCorrelations->GetBinContent(5),2.)
9351 * pow((pow(dSumWQuadraticTwo4n4n,0.5)/dSumWLinearTwo4n4n)
9352 * dSpreadTwo4n4n*pow(pow(dSumWLinearTwo4n4n,2.)/(pow(dSumWLinearTwo4n4n,2.)-dSumWQuadraticTwo4n4n),0.5),2.)
9353 + pow(f2pCorrelations->GetBinContent(4),2.)
9354 * pow((pow(dSumWQuadraticTwo5n5n,0.5)/dSumWLinearTwo5n5n)
9355 * dSpreadTwo5n5n*pow(pow(dSumWLinearTwo5n5n,2.)/(pow(dSumWLinearTwo5n5n,2.)-dSumWQuadraticTwo5n5n),0.5),2.)
9356 + pow((pow(dSumWQuadraticFour5n4n5n4n,0.5)/dSumWLinearFour5n4n5n4n)
9357 * dSpreadFour5n4n5n4n*pow(pow(dSumWLinearFour5n4n5n4n,2.)/(pow(dSumWLinearFour5n4n5n4n,2.)-dSumWQuadraticFour5n4n5n4n),0.5),2.)
9358 + 2.*f2pCorrelations->GetBinContent(5)*f2pCorrelations->GetBinContent(4)
9359 * fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,2))
9360 * (fMixedHarmonicProductOfCorrelations->GetBinContent(fMixedHarmonicProductOfCorrelations->GetBin(4,5))
9361 - f2pCorrelations->GetBinContent(4)*f2pCorrelations->GetBinContent(5))
9362 / (dSumWLinearTwo4n4n*dSumWLinearTwo5n5n-fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,2)))
9363 - 2.*f2pCorrelations->GetBinContent(5)
9364 * fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,4))
9365 * (fMixedHarmonicProductOfCorrelations->GetBinContent(fMixedHarmonicProductOfCorrelations->GetBin(4,31))
9366 - f2pCorrelations->GetBinContent(4)*f4pCorrelations->GetBinContent(17))
9367 / (dSumWLinearTwo4n4n*dSumWLinearFour5n4n5n4n-fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,4)))
9368 - 2.*f2pCorrelations->GetBinContent(4)
9369 * fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,4))
9370 * (fMixedHarmonicProductOfCorrelations->GetBinContent(fMixedHarmonicProductOfCorrelations->GetBin(5,31))
9371 - f2pCorrelations->GetBinContent(5)*f4pCorrelations->GetBinContent(17))
9372 / (dSumWLinearTwo5n5n*dSumWLinearFour5n4n5n4n-fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,4)));
9375 f4pCumulants->SetBinError(17,pow(dError,0.5));
9379 // <4>_{6n,1n|6n,1n}
9380 f4pCumulants->SetBinContent(18,f4pCorrelations->GetBinContent(18)-f2pCorrelations->GetBinContent(6)*f2pCorrelations->GetBinContent(1));
9382 Double_t dSumWLinearTwo1n1n = 0.; // sum of linear event weights for <2>
9383 Double_t dSumWQuadraticTwo1n1n = 0.; // sum of quadratic event weights <2>
9384 Double_t dSpreadTwo1n1n = 0.; // weighted and biased estimator for sigma of <2>
9385 Double_t dSumWLinearTwo6n6n = 0.; // sum of linear event weights for <2>
9386 Double_t dSumWQuadraticTwo6n6n = 0.; // sum of quadratic event weights <2>
9387 Double_t dSpreadTwo6n6n = 0.; // weighted and biased estimator for sigma of <2>
9388 Double_t dSumWLinearFour6n1n6n1n = 0.; // sum of linear event weights for <4>
9389 Double_t dSumWQuadraticFour6n1n6n1n = 0.; // sum of quadratic event weights <4>
9390 Double_t dSpreadFour6n1n6n1n = 0.; // weighted and biased estimator for sigma of <4>
9391 dSumWLinearTwo1n1n = fMixedHarmonicEventWeights[0]->GetBinContent(2);
9392 dSumWQuadraticTwo1n1n = fMixedHarmonicEventWeights[1]->GetBinContent(2);
9393 dSpreadTwo1n1n = f2pCorrelations->GetBinError(1);
9394 dSumWLinearTwo6n6n = fMixedHarmonicEventWeights[0]->GetBinContent(2);
9395 dSumWQuadraticTwo6n6n = fMixedHarmonicEventWeights[1]->GetBinContent(2);
9396 dSpreadTwo6n6n = f2pCorrelations->GetBinError(6);
9397 dSumWLinearFour6n1n6n1n = fMixedHarmonicEventWeights[0]->GetBinContent(4);
9398 dSumWQuadraticFour6n1n6n1n = fMixedHarmonicEventWeights[1]->GetBinContent(4);
9399 dSpreadFour6n1n6n1n = f4pCorrelations->GetBinError(18);
9400 if(pow(dSumWLinearTwo1n1n,2.)>dSumWQuadraticTwo1n1n &&
9401 pow(dSumWLinearTwo6n6n,2.)>dSumWQuadraticTwo6n6n &&
9402 pow(dSumWLinearFour6n1n6n1n,2.)>dSumWQuadraticFour6n1n6n1n)
9404 Double_t dError = pow(f2pCorrelations->GetBinContent(6),2.)
9405 * pow((pow(dSumWQuadraticTwo1n1n,0.5)/dSumWLinearTwo1n1n)
9406 * dSpreadTwo1n1n*pow(pow(dSumWLinearTwo1n1n,2.)/(pow(dSumWLinearTwo1n1n,2.)-dSumWQuadraticTwo1n1n),0.5),2.)
9407 + pow(f2pCorrelations->GetBinContent(1),2.)
9408 * pow((pow(dSumWQuadraticTwo6n6n,0.5)/dSumWLinearTwo6n6n)
9409 * dSpreadTwo6n6n*pow(pow(dSumWLinearTwo6n6n,2.)/(pow(dSumWLinearTwo6n6n,2.)-dSumWQuadraticTwo6n6n),0.5),2.)
9410 + pow((pow(dSumWQuadraticFour6n1n6n1n,0.5)/dSumWLinearFour6n1n6n1n)
9411 * dSpreadFour6n1n6n1n*pow(pow(dSumWLinearFour6n1n6n1n,2.)/(pow(dSumWLinearFour6n1n6n1n,2.)-dSumWQuadraticFour6n1n6n1n),0.5),2.)
9412 + 2.*f2pCorrelations->GetBinContent(6)*f2pCorrelations->GetBinContent(1)
9413 * fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,2))
9414 * (fMixedHarmonicProductOfCorrelations->GetBinContent(fMixedHarmonicProductOfCorrelations->GetBin(1,6))
9415 - f2pCorrelations->GetBinContent(1)*f2pCorrelations->GetBinContent(6))
9416 / (dSumWLinearTwo1n1n*dSumWLinearTwo6n6n-fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,2)))
9417 - 2.*f2pCorrelations->GetBinContent(6)
9418 * fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,4))
9419 * (fMixedHarmonicProductOfCorrelations->GetBinContent(fMixedHarmonicProductOfCorrelations->GetBin(1,32))
9420 - f2pCorrelations->GetBinContent(1)*f4pCorrelations->GetBinContent(18))
9421 / (dSumWLinearTwo1n1n*dSumWLinearFour6n1n6n1n-fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,4)))
9422 - 2.*f2pCorrelations->GetBinContent(1)
9423 * fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,4))
9424 * (fMixedHarmonicProductOfCorrelations->GetBinContent(fMixedHarmonicProductOfCorrelations->GetBin(6,32))
9425 - f2pCorrelations->GetBinContent(6)*f4pCorrelations->GetBinContent(18))
9426 / (dSumWLinearTwo6n6n*dSumWLinearFour6n1n6n1n-fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,4)));
9429 f4pCumulants->SetBinError(18,pow(dError,0.5));
9433 // <4>_{6n,2n|6n,2n}
9434 f4pCumulants->SetBinContent(19,f4pCorrelations->GetBinContent(19)-f2pCorrelations->GetBinContent(6)*f2pCorrelations->GetBinContent(2));
9436 Double_t dSumWLinearTwo2n2n = 0.; // sum of linear event weights for <2>
9437 Double_t dSumWQuadraticTwo2n2n = 0.; // sum of quadratic event weights <2>
9438 Double_t dSpreadTwo2n2n = 0.; // weighted and biased estimator for sigma of <2>
9439 Double_t dSumWLinearTwo6n6n = 0.; // sum of linear event weights for <2>
9440 Double_t dSumWQuadraticTwo6n6n = 0.; // sum of quadratic event weights <2>
9441 Double_t dSpreadTwo6n6n = 0.; // weighted and biased estimator for sigma of <2>
9442 Double_t dSumWLinearFour6n2n6n2n = 0.; // sum of linear event weights for <4>
9443 Double_t dSumWQuadraticFour6n2n6n2n = 0.; // sum of quadratic event weights <4>
9444 Double_t dSpreadFour6n2n6n2n = 0.; // weighted and biased estimator for sigma of <4>
9445 dSumWLinearTwo2n2n = fMixedHarmonicEventWeights[0]->GetBinContent(2);
9446 dSumWQuadraticTwo2n2n = fMixedHarmonicEventWeights[1]->GetBinContent(2);
9447 dSpreadTwo2n2n = f2pCorrelations->GetBinError(2);
9448 dSumWLinearTwo6n6n = fMixedHarmonicEventWeights[0]->GetBinContent(2);
9449 dSumWQuadraticTwo6n6n = fMixedHarmonicEventWeights[1]->GetBinContent(2);
9450 dSpreadTwo6n6n = f2pCorrelations->GetBinError(6);
9451 dSumWLinearFour6n2n6n2n = fMixedHarmonicEventWeights[0]->GetBinContent(4);
9452 dSumWQuadraticFour6n2n6n2n = fMixedHarmonicEventWeights[1]->GetBinContent(4);
9453 dSpreadFour6n2n6n2n = f4pCorrelations->GetBinError(19);
9454 if(pow(dSumWLinearTwo2n2n,2.)>dSumWQuadraticTwo2n2n &&
9455 pow(dSumWLinearTwo6n6n,2.)>dSumWQuadraticTwo6n6n &&
9456 pow(dSumWLinearFour6n2n6n2n,2.)>dSumWQuadraticFour6n2n6n2n)
9458 Double_t dError = pow(f2pCorrelations->GetBinContent(6),2.)
9459 * pow((pow(dSumWQuadraticTwo2n2n,0.5)/dSumWLinearTwo2n2n)
9460 * dSpreadTwo2n2n*pow(pow(dSumWLinearTwo2n2n,2.)/(pow(dSumWLinearTwo2n2n,2.)-dSumWQuadraticTwo2n2n),0.5),2.)
9461 + pow(f2pCorrelations->GetBinContent(2),2.)
9462 * pow((pow(dSumWQuadraticTwo6n6n,0.5)/dSumWLinearTwo6n6n)
9463 * dSpreadTwo6n6n*pow(pow(dSumWLinearTwo6n6n,2.)/(pow(dSumWLinearTwo6n6n,2.)-dSumWQuadraticTwo6n6n),0.5),2.)
9464 + pow((pow(dSumWQuadraticFour6n2n6n2n,0.5)/dSumWLinearFour6n2n6n2n)
9465 * dSpreadFour6n2n6n2n*pow(pow(dSumWLinearFour6n2n6n2n,2.)/(pow(dSumWLinearFour6n2n6n2n,2.)-dSumWQuadraticFour6n2n6n2n),0.5),2.)
9466 + 2.*f2pCorrelations->GetBinContent(6)*f2pCorrelations->GetBinContent(2)
9467 * fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,2))
9468 * (fMixedHarmonicProductOfCorrelations->GetBinContent(fMixedHarmonicProductOfCorrelations->GetBin(2,6))
9469 - f2pCorrelations->GetBinContent(2)*f2pCorrelations->GetBinContent(6))
9470 / (dSumWLinearTwo2n2n*dSumWLinearTwo6n6n-fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,2)))
9471 - 2.*f2pCorrelations->GetBinContent(6)
9472 * fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,4))
9473 * (fMixedHarmonicProductOfCorrelations->GetBinContent(fMixedHarmonicProductOfCorrelations->GetBin(2,33))
9474 - f2pCorrelations->GetBinContent(2)*f4pCorrelations->GetBinContent(19))
9475 / (dSumWLinearTwo2n2n*dSumWLinearFour6n2n6n2n-fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,4)))
9476 - 2.*f2pCorrelations->GetBinContent(2)
9477 * fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,4))
9478 * (fMixedHarmonicProductOfCorrelations->GetBinContent(fMixedHarmonicProductOfCorrelations->GetBin(6,33))
9479 - f2pCorrelations->GetBinContent(6)*f4pCorrelations->GetBinContent(19))
9480 / (dSumWLinearTwo6n6n*dSumWLinearFour6n2n6n2n-fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,4)));
9483 f4pCumulants->SetBinError(19,pow(dError,0.5));
9487 // <4>_{6n,3n|6n,3n}
9488 f4pCumulants->SetBinContent(20,f4pCorrelations->GetBinContent(20)-f2pCorrelations->GetBinContent(6)*f2pCorrelations->GetBinContent(3));
9490 Double_t dSumWLinearTwo3n3n = 0.; // sum of linear event weights for <2>
9491 Double_t dSumWQuadraticTwo3n3n = 0.; // sum of quadratic event weights <2>
9492 Double_t dSpreadTwo3n3n = 0.; // weighted and biased estimator for sigma of <2>
9493 Double_t dSumWLinearTwo6n6n = 0.; // sum of linear event weights for <2>
9494 Double_t dSumWQuadraticTwo6n6n = 0.; // sum of quadratic event weights <2>
9495 Double_t dSpreadTwo6n6n = 0.; // weighted and biased estimator for sigma of <2>
9496 Double_t dSumWLinearFour6n3n6n3n = 0.; // sum of linear event weights for <4>
9497 Double_t dSumWQuadraticFour6n3n6n3n = 0.; // sum of quadratic event weights <4>
9498 Double_t dSpreadFour6n3n6n3n = 0.; // weighted and biased estimator for sigma of <4>
9499 dSumWLinearTwo3n3n = fMixedHarmonicEventWeights[0]->GetBinContent(2);
9500 dSumWQuadraticTwo3n3n = fMixedHarmonicEventWeights[1]->GetBinContent(2);
9501 dSpreadTwo3n3n = f2pCorrelations->GetBinError(3);
9502 dSumWLinearTwo6n6n = fMixedHarmonicEventWeights[0]->GetBinContent(2);
9503 dSumWQuadraticTwo6n6n = fMixedHarmonicEventWeights[1]->GetBinContent(2);
9504 dSpreadTwo6n6n = f2pCorrelations->GetBinError(6);
9505 dSumWLinearFour6n3n6n3n = fMixedHarmonicEventWeights[0]->GetBinContent(4);
9506 dSumWQuadraticFour6n3n6n3n = fMixedHarmonicEventWeights[1]->GetBinContent(4);
9507 dSpreadFour6n3n6n3n = f4pCorrelations->GetBinError(20);
9508 if(pow(dSumWLinearTwo3n3n,2.)>dSumWQuadraticTwo3n3n &&
9509 pow(dSumWLinearTwo6n6n,2.)>dSumWQuadraticTwo6n6n &&
9510 pow(dSumWLinearFour6n3n6n3n,2.)>dSumWQuadraticFour6n3n6n3n)
9512 Double_t dError = pow(f2pCorrelations->GetBinContent(6),2.)
9513 * pow((pow(dSumWQuadraticTwo3n3n,0.5)/dSumWLinearTwo3n3n)
9514 * dSpreadTwo3n3n*pow(pow(dSumWLinearTwo3n3n,2.)/(pow(dSumWLinearTwo3n3n,2.)-dSumWQuadraticTwo3n3n),0.5),2.)
9515 + pow(f2pCorrelations->GetBinContent(3),2.)
9516 * pow((pow(dSumWQuadraticTwo6n6n,0.5)/dSumWLinearTwo6n6n)
9517 * dSpreadTwo6n6n*pow(pow(dSumWLinearTwo6n6n,2.)/(pow(dSumWLinearTwo6n6n,2.)-dSumWQuadraticTwo6n6n),0.5),2.)
9518 + pow((pow(dSumWQuadraticFour6n3n6n3n,0.5)/dSumWLinearFour6n3n6n3n)
9519 * dSpreadFour6n3n6n3n*pow(pow(dSumWLinearFour6n3n6n3n,2.)/(pow(dSumWLinearFour6n3n6n3n,2.)-dSumWQuadraticFour6n3n6n3n),0.5),2.)
9520 + 2.*f2pCorrelations->GetBinContent(6)*f2pCorrelations->GetBinContent(3)
9521 * fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,2))
9522 * (fMixedHarmonicProductOfCorrelations->GetBinContent(fMixedHarmonicProductOfCorrelations->GetBin(3,6))
9523 - f2pCorrelations->GetBinContent(3)*f2pCorrelations->GetBinContent(6))
9524 / (dSumWLinearTwo3n3n*dSumWLinearTwo6n6n-fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,2)))
9525 - 2.*f2pCorrelations->GetBinContent(6)
9526 * fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,4))
9527 * (fMixedHarmonicProductOfCorrelations->GetBinContent(fMixedHarmonicProductOfCorrelations->GetBin(3,34))
9528 - f2pCorrelations->GetBinContent(3)*f4pCorrelations->GetBinContent(20))
9529 / (dSumWLinearTwo3n3n*dSumWLinearFour6n3n6n3n-fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,4)))
9530 - 2.*f2pCorrelations->GetBinContent(3)
9531 * fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,4))
9532 * (fMixedHarmonicProductOfCorrelations->GetBinContent(fMixedHarmonicProductOfCorrelations->GetBin(6,34))
9533 - f2pCorrelations->GetBinContent(6)*f4pCorrelations->GetBinContent(20))
9534 / (dSumWLinearTwo6n6n*dSumWLinearFour6n3n6n3n-fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,4)));
9537 f4pCumulants->SetBinError(20,pow(dError,0.5));
9541 // <4>_{6n,4n|6n,4n}
9542 f4pCumulants->SetBinContent(21,f4pCorrelations->GetBinContent(21)-f2pCorrelations->GetBinContent(6)*f2pCorrelations->GetBinContent(4));
9544 Double_t dSumWLinearTwo4n4n = 0.; // sum of linear event weights for <2>
9545 Double_t dSumWQuadraticTwo4n4n = 0.; // sum of quadratic event weights <2>
9546 Double_t dSpreadTwo4n4n = 0.; // weighted and biased estimator for sigma of <2>
9547 Double_t dSumWLinearTwo6n6n = 0.; // sum of linear event weights for <2>
9548 Double_t dSumWQuadraticTwo6n6n = 0.; // sum of quadratic event weights <2>
9549 Double_t dSpreadTwo6n6n = 0.; // weighted and biased estimator for sigma of <2>
9550 Double_t dSumWLinearFour6n4n6n4n = 0.; // sum of linear event weights for <4>
9551 Double_t dSumWQuadraticFour6n4n6n4n = 0.; // sum of quadratic event weights <4>
9552 Double_t dSpreadFour6n4n6n4n = 0.; // weighted and biased estimator for sigma of <4>
9553 dSumWLinearTwo4n4n = fMixedHarmonicEventWeights[0]->GetBinContent(2);
9554 dSumWQuadraticTwo4n4n = fMixedHarmonicEventWeights[1]->GetBinContent(2);
9555 dSpreadTwo4n4n = f2pCorrelations->GetBinError(4);
9556 dSumWLinearTwo6n6n = fMixedHarmonicEventWeights[0]->GetBinContent(2);
9557 dSumWQuadraticTwo6n6n = fMixedHarmonicEventWeights[1]->GetBinContent(2);
9558 dSpreadTwo6n6n = f2pCorrelations->GetBinError(6);
9559 dSumWLinearFour6n4n6n4n = fMixedHarmonicEventWeights[0]->GetBinContent(4);
9560 dSumWQuadraticFour6n4n6n4n = fMixedHarmonicEventWeights[1]->GetBinContent(4);
9561 dSpreadFour6n4n6n4n = f4pCorrelations->GetBinError(21);
9562 if(pow(dSumWLinearTwo4n4n,2.)>dSumWQuadraticTwo4n4n &&
9563 pow(dSumWLinearTwo6n6n,2.)>dSumWQuadraticTwo6n6n &&
9564 pow(dSumWLinearFour6n4n6n4n,2.)>dSumWQuadraticFour6n4n6n4n)
9566 Double_t dError = pow(f2pCorrelations->GetBinContent(6),2.)
9567 * pow((pow(dSumWQuadraticTwo4n4n,0.5)/dSumWLinearTwo4n4n)
9568 * dSpreadTwo4n4n*pow(pow(dSumWLinearTwo4n4n,2.)/(pow(dSumWLinearTwo4n4n,2.)-dSumWQuadraticTwo4n4n),0.5),2.)
9569 + pow(f2pCorrelations->GetBinContent(4),2.)
9570 * pow((pow(dSumWQuadraticTwo6n6n,0.5)/dSumWLinearTwo6n6n)
9571 * dSpreadTwo6n6n*pow(pow(dSumWLinearTwo6n6n,2.)/(pow(dSumWLinearTwo6n6n,2.)-dSumWQuadraticTwo6n6n),0.5),2.)
9572 + pow((pow(dSumWQuadraticFour6n4n6n4n,0.5)/dSumWLinearFour6n4n6n4n)
9573 * dSpreadFour6n4n6n4n*pow(pow(dSumWLinearFour6n4n6n4n,2.)/(pow(dSumWLinearFour6n4n6n4n,2.)-dSumWQuadraticFour6n4n6n4n),0.5),2.)
9574 + 2.*f2pCorrelations->GetBinContent(6)*f2pCorrelations->GetBinContent(4)
9575 * fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,2))
9576 * (fMixedHarmonicProductOfCorrelations->GetBinContent(fMixedHarmonicProductOfCorrelations->GetBin(4,6))
9577 - f2pCorrelations->GetBinContent(4)*f2pCorrelations->GetBinContent(6))
9578 / (dSumWLinearTwo4n4n*dSumWLinearTwo6n6n-fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,2)))
9579 - 2.*f2pCorrelations->GetBinContent(6)
9580 * fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,4))
9581 * (fMixedHarmonicProductOfCorrelations->GetBinContent(fMixedHarmonicProductOfCorrelations->GetBin(4,35))
9582 - f2pCorrelations->GetBinContent(4)*f4pCorrelations->GetBinContent(21))
9583 / (dSumWLinearTwo4n4n*dSumWLinearFour6n4n6n4n-fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,4)))
9584 - 2.*f2pCorrelations->GetBinContent(4)
9585 * fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,4))
9586 * (fMixedHarmonicProductOfCorrelations->GetBinContent(fMixedHarmonicProductOfCorrelations->GetBin(6,35))
9587 - f2pCorrelations->GetBinContent(6)*f4pCorrelations->GetBinContent(21))
9588 / (dSumWLinearTwo6n6n*dSumWLinearFour6n4n6n4n-fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,4)));
9591 f4pCumulants->SetBinError(21,pow(dError,0.5));
9595 // <4>_{6n,5n|6n,5n}
9596 f4pCumulants->SetBinContent(22,f4pCorrelations->GetBinContent(22)-f2pCorrelations->GetBinContent(6)*f2pCorrelations->GetBinContent(5));
9598 Double_t dSumWLinearTwo5n5n = 0.; // sum of linear event weights for <2>
9599 Double_t dSumWQuadraticTwo5n5n = 0.; // sum of quadratic event weights <2>
9600 Double_t dSpreadTwo5n5n = 0.; // weighted and biased estimator for sigma of <2>
9601 Double_t dSumWLinearTwo6n6n = 0.; // sum of linear event weights for <2>
9602 Double_t dSumWQuadraticTwo6n6n = 0.; // sum of quadratic event weights <2>
9603 Double_t dSpreadTwo6n6n = 0.; // weighted and biased estimator for sigma of <2>
9604 Double_t dSumWLinearFour6n5n6n5n = 0.; // sum of linear event weights for <4>
9605 Double_t dSumWQuadraticFour6n5n6n5n = 0.; // sum of quadratic event weights <4>
9606 Double_t dSpreadFour6n5n6n5n = 0.; // weighted and biased estimator for sigma of <4>
9607 dSumWLinearTwo5n5n = fMixedHarmonicEventWeights[0]->GetBinContent(2);
9608 dSumWQuadraticTwo5n5n = fMixedHarmonicEventWeights[1]->GetBinContent(2);
9609 dSpreadTwo5n5n = f2pCorrelations->GetBinError(5);
9610 dSumWLinearTwo6n6n = fMixedHarmonicEventWeights[0]->GetBinContent(2);
9611 dSumWQuadraticTwo6n6n = fMixedHarmonicEventWeights[1]->GetBinContent(2);
9612 dSpreadTwo6n6n = f2pCorrelations->GetBinError(6);
9613 dSumWLinearFour6n5n6n5n = fMixedHarmonicEventWeights[0]->GetBinContent(4);
9614 dSumWQuadraticFour6n5n6n5n = fMixedHarmonicEventWeights[1]->GetBinContent(4);
9615 dSpreadFour6n5n6n5n = f4pCorrelations->GetBinError(22);
9616 if(pow(dSumWLinearTwo5n5n,2.)>dSumWQuadraticTwo5n5n &&
9617 pow(dSumWLinearTwo6n6n,2.)>dSumWQuadraticTwo6n6n &&
9618 pow(dSumWLinearFour6n5n6n5n,2.)>dSumWQuadraticFour6n5n6n5n)
9620 Double_t dError = pow(f2pCorrelations->GetBinContent(6),2.)
9621 * pow((pow(dSumWQuadraticTwo5n5n,0.5)/dSumWLinearTwo5n5n)
9622 * dSpreadTwo5n5n*pow(pow(dSumWLinearTwo5n5n,2.)/(pow(dSumWLinearTwo5n5n,2.)-dSumWQuadraticTwo5n5n),0.5),2.)
9623 + pow(f2pCorrelations->GetBinContent(5),2.)
9624 * pow((pow(dSumWQuadraticTwo6n6n,0.5)/dSumWLinearTwo6n6n)
9625 * dSpreadTwo6n6n*pow(pow(dSumWLinearTwo6n6n,2.)/(pow(dSumWLinearTwo6n6n,2.)-dSumWQuadraticTwo6n6n),0.5),2.)
9626 + pow((pow(dSumWQuadraticFour6n5n6n5n,0.5)/dSumWLinearFour6n5n6n5n)
9627 * dSpreadFour6n5n6n5n*pow(pow(dSumWLinearFour6n5n6n5n,2.)/(pow(dSumWLinearFour6n5n6n5n,2.)-dSumWQuadraticFour6n5n6n5n),0.5),2.)
9628 + 2.*f2pCorrelations->GetBinContent(6)*f2pCorrelations->GetBinContent(5)
9629 * fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,2))
9630 * (fMixedHarmonicProductOfCorrelations->GetBinContent(fMixedHarmonicProductOfCorrelations->GetBin(5,6))
9631 - f2pCorrelations->GetBinContent(5)*f2pCorrelations->GetBinContent(6))
9632 / (dSumWLinearTwo5n5n*dSumWLinearTwo6n6n-fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,2)))
9633 - 2.*f2pCorrelations->GetBinContent(6)
9634 * fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,4))
9635 * (fMixedHarmonicProductOfCorrelations->GetBinContent(fMixedHarmonicProductOfCorrelations->GetBin(5,36))
9636 - f2pCorrelations->GetBinContent(5)*f4pCorrelations->GetBinContent(22))
9637 / (dSumWLinearTwo5n5n*dSumWLinearFour6n5n6n5n-fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,4)))
9638 - 2.*f2pCorrelations->GetBinContent(5)
9639 * fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,4))
9640 * (fMixedHarmonicProductOfCorrelations->GetBinContent(fMixedHarmonicProductOfCorrelations->GetBin(6,36))
9641 - f2pCorrelations->GetBinContent(6)*f4pCorrelations->GetBinContent(22))
9642 / (dSumWLinearTwo6n6n*dSumWLinearFour6n5n6n5n-fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,4)));
9645 f4pCumulants->SetBinError(22,pow(dError,0.5));
9650 // c3) "Two distinct harmonics":
9651 for(Int_t b=24;b<=25;b++)
9653 f4pCumulants->SetBinContent(b,f4pCorrelations->GetBinContent(b));
9654 Double_t dSumWLinear = 0.; // sum of linear event weights
9655 Double_t dSumWQuadratic = 0.; // sum of quadratic event weights
9656 Double_t dSpread = 0.; // weighted and biased estimator for sigma
9657 Double_t dError = 0.; // weighted and unbiased estimator for sigma
9658 dSumWLinear = fMixedHarmonicEventWeights[0]->GetBinContent(4);
9659 dSumWQuadratic = fMixedHarmonicEventWeights[1]->GetBinContent(4);
9660 dSpread = f4pCorrelations->GetBinError(b);
9661 if(pow(dSumWLinear,2.)>dSumWQuadratic)
9663 dError = (pow(dSumWQuadratic,0.5)/dSumWLinear)*dSpread*pow(pow(dSumWLinear,2.)/(pow(dSumWLinear,2.)-dSumWQuadratic),0.5);
9664 f4pCumulants->SetBinError(b,dError);
9665 } // end of if(pow(dSumWLinear,2.)>dSumWQuadratic)
9666 } // end of for(Int_t b=24;b<=25;b++)
9667 // c4) "Three distinct harmonics":
9668 for(Int_t b=27;b<=36;b++)
9670 f4pCumulants->SetBinContent(b,f4pCorrelations->GetBinContent(b));
9671 Double_t dSumWLinear = 0.; // sum of linear event weights
9672 Double_t dSumWQuadratic = 0.; // sum of quadratic event weights
9673 Double_t dSpread = 0.; // weighted and biased estimator for sigma
9674 Double_t dError = 0.; // weighted and unbiased estimator for sigma
9675 dSumWLinear = fMixedHarmonicEventWeights[0]->GetBinContent(4);
9676 dSumWQuadratic = fMixedHarmonicEventWeights[1]->GetBinContent(4);
9677 dSpread = f4pCorrelations->GetBinError(b);
9678 if(pow(dSumWLinear,2.)>dSumWQuadratic)
9680 dError = (pow(dSumWQuadratic,0.5)/dSumWLinear)*dSpread*pow(pow(dSumWLinear,2.)/(pow(dSumWLinear,2.)-dSumWQuadratic),0.5);
9681 f4pCumulants->SetBinError(b,dError);
9682 } // end of if(pow(dSumWLinear,2.)>dSumWQuadratic)
9683 } // end of for(Int_t b=27;b<=36;b++)
9684 // c5) "Four distinct harmonics":
9685 for(Int_t b=38;b<=45;b++)
9687 f4pCumulants->SetBinContent(b,f4pCorrelations->GetBinContent(b));
9688 Double_t dSumWLinear = 0.; // sum of linear event weights
9689 Double_t dSumWQuadratic = 0.; // sum of quadratic event weights
9690 Double_t dSpread = 0.; // weighted and biased estimator for sigma
9691 Double_t dError = 0.; // weighted and unbiased estimator for sigma
9692 dSumWLinear = fMixedHarmonicEventWeights[0]->GetBinContent(4);
9693 dSumWQuadratic = fMixedHarmonicEventWeights[1]->GetBinContent(4);
9694 dSpread = f4pCorrelations->GetBinError(b);
9695 if(pow(dSumWLinear,2.)>dSumWQuadratic)
9697 dError = (pow(dSumWQuadratic,0.5)/dSumWLinear)*dSpread*pow(pow(dSumWLinear,2.)/(pow(dSumWLinear,2.)-dSumWQuadratic),0.5);
9698 f4pCumulants->SetBinError(b,dError);
9699 } // end of if(pow(dSumWLinear,2.)>dSumWQuadratic)
9700 } // end of for(Int_t b=38;b<=45;b++)
9702 // d) Calculate 5-p cumulants:
9703 // d1) "Standard candles":
9704 f5pCumulants->SetBinContent(1,f5pCorrelations->GetBinContent(1)-f3pCorrelations->GetBinContent(1)*f2pCorrelations->GetBinContent(3));
9706 Double_t dSumWLinearTwo3n3n = 0.; // sum of linear event weights for <2>
9707 Double_t dSumWQuadraticTwo3n3n = 0.; // sum of quadratic event weights <2>
9708 Double_t dSpreadTwo3n3n = 0.; // weighted and biased estimator for sigma of <2>
9709 Double_t dSumWLinearThree2n1n1n = 0.; // sum of linear event weights for <2>
9710 Double_t dSumWQuadraticThree2n1n1n = 0.; // sum of quadratic event weights <2>
9711 Double_t dSpreadThree2n1n1n = 0.; // weighted and biased estimator for sigma of <2>
9712 Double_t dSumWLinearFive3n2n3n1n1n = 0.; // sum of linear event weights for <4>
9713 Double_t dSumWQuadraticFive3n2n3n1n1n = 0.; // sum of quadratic event weights <4>
9714 Double_t dSpreadFive3n2n3n1n1n = 0.; // weighted and biased estimator for sigma of <4>
9715 dSumWLinearTwo3n3n = fMixedHarmonicEventWeights[0]->GetBinContent(2);
9716 dSumWQuadraticTwo3n3n = fMixedHarmonicEventWeights[1]->GetBinContent(2);
9717 dSpreadTwo3n3n = f2pCorrelations->GetBinError(3);
9718 dSumWLinearThree2n1n1n = fMixedHarmonicEventWeights[0]->GetBinContent(3);
9719 dSumWQuadraticThree2n1n1n = fMixedHarmonicEventWeights[1]->GetBinContent(3);
9720 dSpreadThree2n1n1n = f3pCorrelations->GetBinError(1);
9721 dSumWLinearFive3n2n3n1n1n = fMixedHarmonicEventWeights[0]->GetBinContent(5);
9722 dSumWQuadraticFive3n2n3n1n1n = fMixedHarmonicEventWeights[1]->GetBinContent(5);
9723 dSpreadFive3n2n3n1n1n = f5pCorrelations->GetBinError(1);
9724 if(pow(dSumWLinearTwo3n3n,2.)>dSumWQuadraticTwo3n3n &&
9725 pow(dSumWLinearThree2n1n1n,2.)>dSumWQuadraticThree2n1n1n &&
9726 pow(dSumWLinearFive3n2n3n1n1n,2.)>dSumWQuadraticFive3n2n3n1n1n)
9728 Double_t dError = pow(f3pCorrelations->GetBinContent(1),2.)
9729 * pow((pow(dSumWQuadraticTwo3n3n,0.5)/dSumWLinearTwo3n3n)
9730 * dSpreadTwo3n3n*pow(pow(dSumWLinearTwo3n3n,2.)/(pow(dSumWLinearTwo3n3n,2.)-dSumWQuadraticTwo3n3n),0.5),2.)
9731 + pow(f2pCorrelations->GetBinContent(3),2.)
9732 * pow((pow(dSumWQuadraticThree2n1n1n,0.5)/dSumWLinearThree2n1n1n)
9733 * dSpreadThree2n1n1n*pow(pow(dSumWLinearThree2n1n1n,2.)/(pow(dSumWLinearThree2n1n1n,2.)-dSumWQuadraticThree2n1n1n),0.5),2.)
9734 + pow((pow(dSumWQuadraticFive3n2n3n1n1n,0.5)/dSumWLinearFive3n2n3n1n1n)
9735 * dSpreadFive3n2n3n1n1n*pow(pow(dSumWLinearFive3n2n3n1n1n,2.)/(pow(dSumWLinearFive3n2n3n1n1n,2.)-dSumWQuadraticFive3n2n3n1n1n),0.5),2.)
9736 + 2.*f3pCorrelations->GetBinContent(1)*f2pCorrelations->GetBinContent(3)
9737 * fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,3))
9738 * (fMixedHarmonicProductOfCorrelations->GetBinContent(fMixedHarmonicProductOfCorrelations->GetBin(3,7))
9739 - f2pCorrelations->GetBinContent(3)*f3pCorrelations->GetBinContent(1))
9740 / (dSumWLinearTwo3n3n*dSumWLinearThree2n1n1n-fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,3)))
9741 - 2.*f3pCorrelations->GetBinContent(1)
9742 * fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,5))
9743 * (fMixedHarmonicProductOfCorrelations->GetBinContent(fMixedHarmonicProductOfCorrelations->GetBin(3,57))
9744 - f2pCorrelations->GetBinContent(3)*f5pCorrelations->GetBinContent(1))
9745 / (dSumWLinearTwo3n3n*dSumWLinearFive3n2n3n1n1n-fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,5)))
9746 - 2.*f2pCorrelations->GetBinContent(3)
9747 * fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(3,5))
9748 * (fMixedHarmonicProductOfCorrelations->GetBinContent(fMixedHarmonicProductOfCorrelations->GetBin(7,57))
9749 - f3pCorrelations->GetBinContent(1)*f5pCorrelations->GetBinContent(1))
9750 / (dSumWLinearThree2n1n1n*dSumWLinearFive3n2n3n1n1n-fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(3,5)));
9753 f5pCumulants->SetBinError(1,pow(dError,0.5));
9758 f5pCumulants->SetBinContent(2,f5pCorrelations->GetBinContent(2)-f3pCorrelations->GetBinContent(2)*f2pCorrelations->GetBinContent(1));
9760 Double_t dSumWLinearTwo1n1n = 0.; // sum of linear event weights for <2>
9761 Double_t dSumWQuadraticTwo1n1n = 0.; // sum of quadratic event weights <2>
9762 Double_t dSpreadTwo1n1n = 0.; // weighted and biased estimator for sigma of <2>
9763 Double_t dSumWLinearThree4n2n2n = 0.; // sum of linear event weights for <2>
9764 Double_t dSumWQuadraticThree4n2n2n = 0.; // sum of quadratic event weights <2>
9765 Double_t dSpreadThree4n2n2n = 0.; // weighted and biased estimator for sigma of <2>
9766 Double_t dSumWLinearFive4n1n2n2n1n = 0.; // sum of linear event weights for <4>
9767 Double_t dSumWQuadraticFive4n1n2n2n1n = 0.; // sum of quadratic event weights <4>
9768 Double_t dSpreadFive4n1n2n2n1n = 0.; // weighted and biased estimator for sigma of <4>
9769 dSumWLinearTwo1n1n = fMixedHarmonicEventWeights[0]->GetBinContent(2);
9770 dSumWQuadraticTwo1n1n = fMixedHarmonicEventWeights[1]->GetBinContent(2);
9771 dSpreadTwo1n1n = f2pCorrelations->GetBinError(1);
9772 dSumWLinearThree4n2n2n = fMixedHarmonicEventWeights[0]->GetBinContent(3);
9773 dSumWQuadraticThree4n2n2n = fMixedHarmonicEventWeights[1]->GetBinContent(3);
9774 dSpreadThree4n2n2n = f3pCorrelations->GetBinError(2);
9775 dSumWLinearFive4n1n2n2n1n = fMixedHarmonicEventWeights[0]->GetBinContent(5);
9776 dSumWQuadraticFive4n1n2n2n1n = fMixedHarmonicEventWeights[1]->GetBinContent(5);
9777 dSpreadFive4n1n2n2n1n = f5pCorrelations->GetBinError(2);
9778 if(pow(dSumWLinearTwo1n1n,2.)>dSumWQuadraticTwo1n1n &&
9779 pow(dSumWLinearThree4n2n2n,2.)>dSumWQuadraticThree4n2n2n &&
9780 pow(dSumWLinearFive4n1n2n2n1n,2.)>dSumWQuadraticFive4n1n2n2n1n)
9782 Double_t dError = pow(f3pCorrelations->GetBinContent(2),2.)
9783 * pow((pow(dSumWQuadraticTwo1n1n,0.5)/dSumWLinearTwo1n1n)
9784 * dSpreadTwo1n1n*pow(pow(dSumWLinearTwo1n1n,2.)/(pow(dSumWLinearTwo1n1n,2.)-dSumWQuadraticTwo1n1n),0.5),2.)
9785 + pow(f2pCorrelations->GetBinContent(1),2.)
9786 * pow((pow(dSumWQuadraticThree4n2n2n,0.5)/dSumWLinearThree4n2n2n)
9787 * dSpreadThree4n2n2n*pow(pow(dSumWLinearThree4n2n2n,2.)/(pow(dSumWLinearThree4n2n2n,2.)-dSumWQuadraticThree4n2n2n),0.5),2.)
9788 + pow((pow(dSumWQuadraticFive4n1n2n2n1n,0.5)/dSumWLinearFive4n1n2n2n1n)
9789 * dSpreadFive4n1n2n2n1n*pow(pow(dSumWLinearFive4n1n2n2n1n,2.)/(pow(dSumWLinearFive4n1n2n2n1n,2.)-dSumWQuadraticFive4n1n2n2n1n),0.5),2.)
9790 + 2.*f3pCorrelations->GetBinContent(2)*f2pCorrelations->GetBinContent(1)
9791 * fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,3))
9792 * (fMixedHarmonicProductOfCorrelations->GetBinContent(fMixedHarmonicProductOfCorrelations->GetBin(1,8))
9793 - f2pCorrelations->GetBinContent(1)*f3pCorrelations->GetBinContent(2))
9794 / (dSumWLinearTwo1n1n*dSumWLinearThree4n2n2n-fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,3)))
9795 - 2.*f3pCorrelations->GetBinContent(2)
9796 * fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,5))
9797 * (fMixedHarmonicProductOfCorrelations->GetBinContent(fMixedHarmonicProductOfCorrelations->GetBin(1,58))
9798 - f2pCorrelations->GetBinContent(1)*f5pCorrelations->GetBinContent(2))
9799 / (dSumWLinearTwo1n1n*dSumWLinearFive4n1n2n2n1n-fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,5)))
9800 - 2.*f2pCorrelations->GetBinContent(1)
9801 * fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(3,5))
9802 * (fMixedHarmonicProductOfCorrelations->GetBinContent(fMixedHarmonicProductOfCorrelations->GetBin(8,58))
9803 - f3pCorrelations->GetBinContent(2)*f5pCorrelations->GetBinContent(2))
9804 / (dSumWLinearThree4n2n2n*dSumWLinearFive4n1n2n2n1n-fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(3,5)));
9807 f5pCumulants->SetBinError(2,pow(dError,0.5));
9811 f5pCumulants->SetBinContent(3,f5pCorrelations->GetBinContent(3)-f3pCorrelations->GetBinContent(6)*f2pCorrelations->GetBinContent(2));
9813 Double_t dSumWLinearTwo2n2n = 0.; // sum of linear event weights for <2>
9814 Double_t dSumWQuadraticTwo2n2n = 0.; // sum of quadratic event weights <2>
9815 Double_t dSpreadTwo2n2n = 0.; // weighted and biased estimator for sigma of <2>
9816 Double_t dSumWLinearThree4n3n1n = 0.; // sum of linear event weights for <2>
9817 Double_t dSumWQuadraticThree4n3n1n = 0.; // sum of quadratic event weights <2>
9818 Double_t dSpreadThree4n3n1n = 0.; // weighted and biased estimator for sigma of <2>
9819 Double_t dSumWLinearFive4n2n3n2n1n = 0.; // sum of linear event weights for <4>
9820 Double_t dSumWQuadraticFive4n2n3n2n1n = 0.; // sum of quadratic event weights <4>
9821 Double_t dSpreadFive4n2n3n2n1n = 0.; // weighted and biased estimator for sigma of <4>
9822 dSumWLinearTwo2n2n = fMixedHarmonicEventWeights[0]->GetBinContent(2);
9823 dSumWQuadraticTwo2n2n = fMixedHarmonicEventWeights[1]->GetBinContent(2);
9824 dSpreadTwo2n2n = f2pCorrelations->GetBinError(2);
9825 dSumWLinearThree4n3n1n = fMixedHarmonicEventWeights[0]->GetBinContent(3);
9826 dSumWQuadraticThree4n3n1n = fMixedHarmonicEventWeights[1]->GetBinContent(3);
9827 dSpreadThree4n3n1n = f3pCorrelations->GetBinError(6);
9828 dSumWLinearFive4n2n3n2n1n = fMixedHarmonicEventWeights[0]->GetBinContent(5);
9829 dSumWQuadraticFive4n2n3n2n1n = fMixedHarmonicEventWeights[1]->GetBinContent(5);
9830 dSpreadFive4n2n3n2n1n = f5pCorrelations->GetBinError(3);
9831 if(pow(dSumWLinearTwo2n2n,2.)>dSumWQuadraticTwo2n2n &&
9832 pow(dSumWLinearThree4n3n1n,2.)>dSumWQuadraticThree4n3n1n &&
9833 pow(dSumWLinearFive4n2n3n2n1n,2.)>dSumWQuadraticFive4n2n3n2n1n)
9835 Double_t dError = pow(f3pCorrelations->GetBinContent(6),2.)
9836 * pow((pow(dSumWQuadraticTwo2n2n,0.5)/dSumWLinearTwo2n2n)
9837 * dSpreadTwo2n2n*pow(pow(dSumWLinearTwo2n2n,2.)/(pow(dSumWLinearTwo2n2n,2.)-dSumWQuadraticTwo2n2n),0.5),2.)
9838 + pow(f2pCorrelations->GetBinContent(2),2.)
9839 * pow((pow(dSumWQuadraticThree4n3n1n,0.5)/dSumWLinearThree4n3n1n)
9840 * dSpreadThree4n3n1n*pow(pow(dSumWLinearThree4n3n1n,2.)/(pow(dSumWLinearThree4n3n1n,2.)-dSumWQuadraticThree4n3n1n),0.5),2.)
9841 + pow((pow(dSumWQuadraticFive4n2n3n2n1n,0.5)/dSumWLinearFive4n2n3n2n1n)
9842 * dSpreadFive4n2n3n2n1n*pow(pow(dSumWLinearFive4n2n3n2n1n,2.)/(pow(dSumWLinearFive4n2n3n2n1n,2.)-dSumWQuadraticFive4n2n3n2n1n),0.5),2.)
9843 + 2.*f3pCorrelations->GetBinContent(6)*f2pCorrelations->GetBinContent(2)
9844 * fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,3))
9845 * (fMixedHarmonicProductOfCorrelations->GetBinContent(fMixedHarmonicProductOfCorrelations->GetBin(2,11))
9846 - f2pCorrelations->GetBinContent(2)*f3pCorrelations->GetBinContent(6))
9847 / (dSumWLinearTwo2n2n*dSumWLinearThree4n3n1n-fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,3)))
9848 - 2.*f3pCorrelations->GetBinContent(6)
9849 * fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,5))
9850 * (fMixedHarmonicProductOfCorrelations->GetBinContent(fMixedHarmonicProductOfCorrelations->GetBin(2,59))
9851 - f2pCorrelations->GetBinContent(2)*f5pCorrelations->GetBinContent(3))
9852 / (dSumWLinearTwo2n2n*dSumWLinearFive4n2n3n2n1n-fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,5)))
9853 - 2.*f2pCorrelations->GetBinContent(2)
9854 * fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(3,5))
9855 * (fMixedHarmonicProductOfCorrelations->GetBinContent(fMixedHarmonicProductOfCorrelations->GetBin(11,59))
9856 - f3pCorrelations->GetBinContent(6)*f5pCorrelations->GetBinContent(3))
9857 / (dSumWLinearThree4n3n1n*dSumWLinearFive4n2n3n2n1n-fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(3,5)));
9860 f5pCumulants->SetBinError(3,pow(dError,0.5));
9864 f5pCumulants->SetBinContent(4,f5pCorrelations->GetBinContent(4)-f3pCorrelations->GetBinContent(2)*f2pCorrelations->GetBinContent(3));
9866 Double_t dSumWLinearTwo3n3n = 0.; // sum of linear event weights for <2>
9867 Double_t dSumWQuadraticTwo3n3n = 0.; // sum of quadratic event weights <2>
9868 Double_t dSpreadTwo3n3n = 0.; // weighted and biased estimator for sigma of <2>
9869 Double_t dSumWLinearThree4n2n2n = 0.; // sum of linear event weights for <2>
9870 Double_t dSumWQuadraticThree4n2n2n = 0.; // sum of quadratic event weights <2>
9871 Double_t dSpreadThree4n2n2n = 0.; // weighted and biased estimator for sigma of <2>
9872 Double_t dSumWLinearFive4n3n3n2n2n = 0.; // sum of linear event weights for <4>
9873 Double_t dSumWQuadraticFive4n3n3n2n2n = 0.; // sum of quadratic event weights <4>
9874 Double_t dSpreadFive4n3n3n2n2n = 0.; // weighted and biased estimator for sigma of <4>
9875 dSumWLinearTwo3n3n = fMixedHarmonicEventWeights[0]->GetBinContent(2);
9876 dSumWQuadraticTwo3n3n = fMixedHarmonicEventWeights[1]->GetBinContent(2);
9877 dSpreadTwo3n3n = f2pCorrelations->GetBinError(3);
9878 dSumWLinearThree4n2n2n = fMixedHarmonicEventWeights[0]->GetBinContent(3);
9879 dSumWQuadraticThree4n2n2n = fMixedHarmonicEventWeights[1]->GetBinContent(3);
9880 dSpreadThree4n2n2n = f3pCorrelations->GetBinError(2);
9881 dSumWLinearFive4n3n3n2n2n = fMixedHarmonicEventWeights[0]->GetBinContent(5);
9882 dSumWQuadraticFive4n3n3n2n2n = fMixedHarmonicEventWeights[1]->GetBinContent(5);
9883 dSpreadFive4n3n3n2n2n = f5pCorrelations->GetBinError(4);
9884 if(pow(dSumWLinearTwo3n3n,2.)>dSumWQuadraticTwo3n3n &&
9885 pow(dSumWLinearThree4n2n2n,2.)>dSumWQuadraticThree4n2n2n &&
9886 pow(dSumWLinearFive4n3n3n2n2n,2.)>dSumWQuadraticFive4n3n3n2n2n)
9888 Double_t dError = pow(f3pCorrelations->GetBinContent(2),2.)
9889 * pow((pow(dSumWQuadraticTwo3n3n,0.5)/dSumWLinearTwo3n3n)
9890 * dSpreadTwo3n3n*pow(pow(dSumWLinearTwo3n3n,2.)/(pow(dSumWLinearTwo3n3n,2.)-dSumWQuadraticTwo3n3n),0.5),2.)
9891 + pow(f2pCorrelations->GetBinContent(3),2.)
9892 * pow((pow(dSumWQuadraticThree4n2n2n,0.5)/dSumWLinearThree4n2n2n)
9893 * dSpreadThree4n2n2n*pow(pow(dSumWLinearThree4n2n2n,2.)/(pow(dSumWLinearThree4n2n2n,2.)-dSumWQuadraticThree4n2n2n),0.5),2.)
9894 + pow((pow(dSumWQuadraticFive4n3n3n2n2n,0.5)/dSumWLinearFive4n3n3n2n2n)
9895 * dSpreadFive4n3n3n2n2n*pow(pow(dSumWLinearFive4n3n3n2n2n,2.)/(pow(dSumWLinearFive4n3n3n2n2n,2.)-dSumWQuadraticFive4n3n3n2n2n),0.5),2.)
9896 + 2.*f3pCorrelations->GetBinContent(2)*f2pCorrelations->GetBinContent(3)
9897 * fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,3))
9898 * (fMixedHarmonicProductOfCorrelations->GetBinContent(fMixedHarmonicProductOfCorrelations->GetBin(3,8))
9899 - f2pCorrelations->GetBinContent(3)*f3pCorrelations->GetBinContent(2))
9900 / (dSumWLinearTwo3n3n*dSumWLinearThree4n2n2n-fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,3)))
9901 - 2.*f3pCorrelations->GetBinContent(2)
9902 * fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,5))
9903 * (fMixedHarmonicProductOfCorrelations->GetBinContent(fMixedHarmonicProductOfCorrelations->GetBin(3,60))
9904 - f2pCorrelations->GetBinContent(3)*f5pCorrelations->GetBinContent(4))
9905 / (dSumWLinearTwo3n3n*dSumWLinearFive4n3n3n2n2n-fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,5)))
9906 - 2.*f2pCorrelations->GetBinContent(3)
9907 * fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(3,5))
9908 * (fMixedHarmonicProductOfCorrelations->GetBinContent(fMixedHarmonicProductOfCorrelations->GetBin(8,60))
9909 - f3pCorrelations->GetBinContent(2)*f5pCorrelations->GetBinContent(4))
9910 / (dSumWLinearThree4n2n2n*dSumWLinearFive4n3n3n2n2n-fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(3,5)));
9913 f5pCumulants->SetBinError(4,pow(dError,0.5));
9917 f5pCumulants->SetBinContent(5,f5pCorrelations->GetBinContent(5)-f3pCorrelations->GetBinContent(1)*f2pCorrelations->GetBinContent(4));
9919 Double_t dSumWLinearTwo4n4n = 0.; // sum of linear event weights for <2>
9920 Double_t dSumWQuadraticTwo4n4n = 0.; // sum of quadratic event weights <2>
9921 Double_t dSpreadTwo4n4n = 0.; // weighted and biased estimator for sigma of <2>
9922 Double_t dSumWLinearThree2n1n1n = 0.; // sum of linear event weights for <2>
9923 Double_t dSumWQuadraticThree2n1n1n = 0.; // sum of quadratic event weights <2>
9924 Double_t dSpreadThree2n1n1n = 0.; // weighted and biased estimator for sigma of <2>
9925 Double_t dSumWLinearFive4n2n4n1n1n = 0.; // sum of linear event weights for <4>
9926 Double_t dSumWQuadraticFive4n2n4n1n1n = 0.; // sum of quadratic event weights <4>
9927 Double_t dSpreadFive4n2n4n1n1n = 0.; // weighted and biased estimator for sigma of <4>
9928 dSumWLinearTwo4n4n = fMixedHarmonicEventWeights[0]->GetBinContent(2);
9929 dSumWQuadraticTwo4n4n = fMixedHarmonicEventWeights[1]->GetBinContent(2);
9930 dSpreadTwo4n4n = f2pCorrelations->GetBinError(4);
9931 dSumWLinearThree2n1n1n = fMixedHarmonicEventWeights[0]->GetBinContent(3);
9932 dSumWQuadraticThree2n1n1n = fMixedHarmonicEventWeights[1]->GetBinContent(3);
9933 dSpreadThree2n1n1n = f3pCorrelations->GetBinError(1);
9934 dSumWLinearFive4n2n4n1n1n = fMixedHarmonicEventWeights[0]->GetBinContent(5);
9935 dSumWQuadraticFive4n2n4n1n1n = fMixedHarmonicEventWeights[1]->GetBinContent(5);
9936 dSpreadFive4n2n4n1n1n = f5pCorrelations->GetBinError(5);
9937 if(pow(dSumWLinearTwo4n4n,2.)>dSumWQuadraticTwo4n4n &&
9938 pow(dSumWLinearThree2n1n1n,2.)>dSumWQuadraticThree2n1n1n &&
9939 pow(dSumWLinearFive4n2n4n1n1n,2.)>dSumWQuadraticFive4n2n4n1n1n)
9941 Double_t dError = pow(f3pCorrelations->GetBinContent(1),2.)
9942 * pow((pow(dSumWQuadraticTwo4n4n,0.5)/dSumWLinearTwo4n4n)
9943 * dSpreadTwo4n4n*pow(pow(dSumWLinearTwo4n4n,2.)/(pow(dSumWLinearTwo4n4n,2.)-dSumWQuadraticTwo4n4n),0.5),2.)
9944 + pow(f2pCorrelations->GetBinContent(4),2.)
9945 * pow((pow(dSumWQuadraticThree2n1n1n,0.5)/dSumWLinearThree2n1n1n)
9946 * dSpreadThree2n1n1n*pow(pow(dSumWLinearThree2n1n1n,2.)/(pow(dSumWLinearThree2n1n1n,2.)-dSumWQuadraticThree2n1n1n),0.5),2.)
9947 + pow((pow(dSumWQuadraticFive4n2n4n1n1n,0.5)/dSumWLinearFive4n2n4n1n1n)
9948 * dSpreadFive4n2n4n1n1n*pow(pow(dSumWLinearFive4n2n4n1n1n,2.)/(pow(dSumWLinearFive4n2n4n1n1n,2.)-dSumWQuadraticFive4n2n4n1n1n),0.5),2.)
9949 + 2.*f3pCorrelations->GetBinContent(1)*f2pCorrelations->GetBinContent(4)
9950 * fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,3))
9951 * (fMixedHarmonicProductOfCorrelations->GetBinContent(fMixedHarmonicProductOfCorrelations->GetBin(4,7))
9952 - f2pCorrelations->GetBinContent(4)*f3pCorrelations->GetBinContent(1))
9953 / (dSumWLinearTwo4n4n*dSumWLinearThree2n1n1n-fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,3)))
9954 - 2.*f3pCorrelations->GetBinContent(1)
9955 * fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,5))
9956 * (fMixedHarmonicProductOfCorrelations->GetBinContent(fMixedHarmonicProductOfCorrelations->GetBin(4,61))
9957 - f2pCorrelations->GetBinContent(4)*f5pCorrelations->GetBinContent(5))
9958 / (dSumWLinearTwo4n4n*dSumWLinearFive4n2n4n1n1n-fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,5)))
9959 - 2.*f2pCorrelations->GetBinContent(4)
9960 * fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(3,5))
9961 * (fMixedHarmonicProductOfCorrelations->GetBinContent(fMixedHarmonicProductOfCorrelations->GetBin(7,61))
9962 - f3pCorrelations->GetBinContent(1)*f5pCorrelations->GetBinContent(5))
9963 / (dSumWLinearThree2n1n1n*dSumWLinearFive4n2n4n1n1n-fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(3,5)));
9966 f5pCumulants->SetBinError(5,pow(dError,0.5));
9970 f5pCumulants->SetBinContent(6,f5pCorrelations->GetBinContent(6)-f3pCorrelations->GetBinContent(5)*f2pCorrelations->GetBinContent(4));
9972 Double_t dSumWLinearTwo4n4n = 0.; // sum of linear event weights for <2>
9973 Double_t dSumWQuadraticTwo4n4n = 0.; // sum of quadratic event weights <2>
9974 Double_t dSpreadTwo4n4n = 0.; // weighted and biased estimator for sigma of <2>
9975 Double_t dSumWLinearThree3n2n1n = 0.; // sum of linear event weights for <2>
9976 Double_t dSumWQuadraticThree3n2n1n = 0.; // sum of quadratic event weights <2>
9977 Double_t dSpreadThree3n2n1n = 0.; // weighted and biased estimator for sigma of <2>
9978 Double_t dSumWLinearFive4n3n4n2n1n = 0.; // sum of linear event weights for <4>
9979 Double_t dSumWQuadraticFive4n3n4n2n1n = 0.; // sum of quadratic event weights <4>
9980 Double_t dSpreadFive4n3n4n2n1n = 0.; // weighted and biased estimator for sigma of <4>
9981 dSumWLinearTwo4n4n = fMixedHarmonicEventWeights[0]->GetBinContent(2);
9982 dSumWQuadraticTwo4n4n = fMixedHarmonicEventWeights[1]->GetBinContent(2);
9983 dSpreadTwo4n4n = f2pCorrelations->GetBinError(4);
9984 dSumWLinearThree3n2n1n = fMixedHarmonicEventWeights[0]->GetBinContent(3);
9985 dSumWQuadraticThree3n2n1n = fMixedHarmonicEventWeights[1]->GetBinContent(3);
9986 dSpreadThree3n2n1n = f3pCorrelations->GetBinError(5);
9987 dSumWLinearFive4n3n4n2n1n = fMixedHarmonicEventWeights[0]->GetBinContent(5);
9988 dSumWQuadraticFive4n3n4n2n1n = fMixedHarmonicEventWeights[1]->GetBinContent(5);
9989 dSpreadFive4n3n4n2n1n = f5pCorrelations->GetBinError(6);
9990 if(pow(dSumWLinearTwo4n4n,2.)>dSumWQuadraticTwo4n4n &&
9991 pow(dSumWLinearThree3n2n1n,2.)>dSumWQuadraticThree3n2n1n &&
9992 pow(dSumWLinearFive4n3n4n2n1n,2.)>dSumWQuadraticFive4n3n4n2n1n)
9994 Double_t dError = pow(f3pCorrelations->GetBinContent(5),2.)
9995 * pow((pow(dSumWQuadraticTwo4n4n,0.5)/dSumWLinearTwo4n4n)
9996 * dSpreadTwo4n4n*pow(pow(dSumWLinearTwo4n4n,2.)/(pow(dSumWLinearTwo4n4n,2.)-dSumWQuadraticTwo4n4n),0.5),2.)
9997 + pow(f2pCorrelations->GetBinContent(4),2.)
9998 * pow((pow(dSumWQuadraticThree3n2n1n,0.5)/dSumWLinearThree3n2n1n)
9999 * dSpreadThree3n2n1n*pow(pow(dSumWLinearThree3n2n1n,2.)/(pow(dSumWLinearThree3n2n1n,2.)-dSumWQuadraticThree3n2n1n),0.5),2.)
10000 + pow((pow(dSumWQuadraticFive4n3n4n2n1n,0.5)/dSumWLinearFive4n3n4n2n1n)
10001 * dSpreadFive4n3n4n2n1n*pow(pow(dSumWLinearFive4n3n4n2n1n,2.)/(pow(dSumWLinearFive4n3n4n2n1n,2.)-dSumWQuadraticFive4n3n4n2n1n),0.5),2.)
10002 + 2.*f3pCorrelations->GetBinContent(5)*f2pCorrelations->GetBinContent(4)
10003 * fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,3))
10004 * (fMixedHarmonicProductOfCorrelations->GetBinContent(fMixedHarmonicProductOfCorrelations->GetBin(4,10))
10005 - f2pCorrelations->GetBinContent(4)*f3pCorrelations->GetBinContent(5))
10006 / (dSumWLinearTwo4n4n*dSumWLinearThree3n2n1n-fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,3)))
10007 - 2.*f3pCorrelations->GetBinContent(5)
10008 * fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,5))
10009 * (fMixedHarmonicProductOfCorrelations->GetBinContent(fMixedHarmonicProductOfCorrelations->GetBin(4,62))
10010 - f2pCorrelations->GetBinContent(4)*f5pCorrelations->GetBinContent(6))
10011 / (dSumWLinearTwo4n4n*dSumWLinearFive4n3n4n2n1n-fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,5)))
10012 - 2.*f2pCorrelations->GetBinContent(4)
10013 * fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(3,5))
10014 * (fMixedHarmonicProductOfCorrelations->GetBinContent(fMixedHarmonicProductOfCorrelations->GetBin(10,62))
10015 - f3pCorrelations->GetBinContent(5)*f5pCorrelations->GetBinContent(6))
10016 / (dSumWLinearThree3n2n1n*dSumWLinearFive4n3n4n2n1n-fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(3,5)));
10019 f5pCumulants->SetBinError(6,pow(dError,0.5));
10021 } // end of if(...)
10023 f5pCumulants->SetBinContent(7,f5pCorrelations->GetBinContent(7)-f3pCorrelations->GetBinContent(7)*f2pCorrelations->GetBinContent(1));
10025 Double_t dSumWLinearTwo1n1n = 0.; // sum of linear event weights for <2>
10026 Double_t dSumWQuadraticTwo1n1n = 0.; // sum of quadratic event weights <2>
10027 Double_t dSpreadTwo1n1n = 0.; // weighted and biased estimator for sigma of <2>
10028 Double_t dSumWLinearThree5n3n2n = 0.; // sum of linear event weights for <2>
10029 Double_t dSumWQuadraticThree5n3n2n = 0.; // sum of quadratic event weights <2>
10030 Double_t dSpreadThree5n3n2n = 0.; // weighted and biased estimator for sigma of <2>
10031 Double_t dSumWLinearFive5n1n3n2n1n = 0.; // sum of linear event weights for <4>
10032 Double_t dSumWQuadraticFive5n1n3n2n1n = 0.; // sum of quadratic event weights <4>
10033 Double_t dSpreadFive5n1n3n2n1n = 0.; // weighted and biased estimator for sigma of <4>
10034 dSumWLinearTwo1n1n = fMixedHarmonicEventWeights[0]->GetBinContent(2);
10035 dSumWQuadraticTwo1n1n = fMixedHarmonicEventWeights[1]->GetBinContent(2);
10036 dSpreadTwo1n1n = f2pCorrelations->GetBinError(1);
10037 dSumWLinearThree5n3n2n = fMixedHarmonicEventWeights[0]->GetBinContent(3);
10038 dSumWQuadraticThree5n3n2n = fMixedHarmonicEventWeights[1]->GetBinContent(3);
10039 dSpreadThree5n3n2n = f3pCorrelations->GetBinError(7);
10040 dSumWLinearFive5n1n3n2n1n = fMixedHarmonicEventWeights[0]->GetBinContent(5);
10041 dSumWQuadraticFive5n1n3n2n1n = fMixedHarmonicEventWeights[1]->GetBinContent(5);
10042 dSpreadFive5n1n3n2n1n = f5pCorrelations->GetBinError(7);
10043 if(pow(dSumWLinearTwo1n1n,2.)>dSumWQuadraticTwo1n1n &&
10044 pow(dSumWLinearThree5n3n2n,2.)>dSumWQuadraticThree5n3n2n &&
10045 pow(dSumWLinearFive5n1n3n2n1n,2.)>dSumWQuadraticFive5n1n3n2n1n)
10047 Double_t dError = pow(f3pCorrelations->GetBinContent(7),2.)
10048 * pow((pow(dSumWQuadraticTwo1n1n,0.5)/dSumWLinearTwo1n1n)
10049 * dSpreadTwo1n1n*pow(pow(dSumWLinearTwo1n1n,2.)/(pow(dSumWLinearTwo1n1n,2.)-dSumWQuadraticTwo1n1n),0.5),2.)
10050 + pow(f2pCorrelations->GetBinContent(1),2.)
10051 * pow((pow(dSumWQuadraticThree5n3n2n,0.5)/dSumWLinearThree5n3n2n)
10052 * dSpreadThree5n3n2n*pow(pow(dSumWLinearThree5n3n2n,2.)/(pow(dSumWLinearThree5n3n2n,2.)-dSumWQuadraticThree5n3n2n),0.5),2.)
10053 + pow((pow(dSumWQuadraticFive5n1n3n2n1n,0.5)/dSumWLinearFive5n1n3n2n1n)
10054 * dSpreadFive5n1n3n2n1n*pow(pow(dSumWLinearFive5n1n3n2n1n,2.)/(pow(dSumWLinearFive5n1n3n2n1n,2.)-dSumWQuadraticFive5n1n3n2n1n),0.5),2.)
10055 + 2.*f3pCorrelations->GetBinContent(7)*f2pCorrelations->GetBinContent(1)
10056 * fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,3))
10057 * (fMixedHarmonicProductOfCorrelations->GetBinContent(fMixedHarmonicProductOfCorrelations->GetBin(1,12))
10058 - f2pCorrelations->GetBinContent(1)*f3pCorrelations->GetBinContent(7))
10059 / (dSumWLinearTwo1n1n*dSumWLinearThree5n3n2n-fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,3)))
10060 - 2.*f3pCorrelations->GetBinContent(7)
10061 * fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,5))
10062 * (fMixedHarmonicProductOfCorrelations->GetBinContent(fMixedHarmonicProductOfCorrelations->GetBin(1,63))
10063 - f2pCorrelations->GetBinContent(1)*f5pCorrelations->GetBinContent(7))
10064 / (dSumWLinearTwo1n1n*dSumWLinearFive5n1n3n2n1n-fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,5)))
10065 - 2.*f2pCorrelations->GetBinContent(1)
10066 * fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(3,5))
10067 * (fMixedHarmonicProductOfCorrelations->GetBinContent(fMixedHarmonicProductOfCorrelations->GetBin(12,63))
10068 - f3pCorrelations->GetBinContent(7)*f5pCorrelations->GetBinContent(7))
10069 / (dSumWLinearThree5n3n2n*dSumWLinearFive5n1n3n2n1n-fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(3,5)));
10072 f5pCumulants->SetBinError(7,pow(dError,0.5));
10074 } // end of if(...)
10076 f5pCumulants->SetBinContent(8,f5pCorrelations->GetBinContent(8)-f3pCorrelations->GetBinContent(1)*f2pCorrelations->GetBinContent(5));
10078 Double_t dSumWLinearTwo5n5n = 0.; // sum of linear event weights for <2>
10079 Double_t dSumWQuadraticTwo5n5n = 0.; // sum of quadratic event weights <2>
10080 Double_t dSpreadTwo5n5n = 0.; // weighted and biased estimator for sigma of <2>
10081 Double_t dSumWLinearThree2n1n1n = 0.; // sum of linear event weights for <2>
10082 Double_t dSumWQuadraticThree2n1n1n = 0.; // sum of quadratic event weights <2>
10083 Double_t dSpreadThree2n1n1n = 0.; // weighted and biased estimator for sigma of <2>
10084 Double_t dSumWLinearFive5n2n5n1n1n = 0.; // sum of linear event weights for <4>
10085 Double_t dSumWQuadraticFive5n2n5n1n1n = 0.; // sum of quadratic event weights <4>
10086 Double_t dSpreadFive5n2n5n1n1n = 0.; // weighted and biased estimator for sigma of <4>
10087 dSumWLinearTwo5n5n = fMixedHarmonicEventWeights[0]->GetBinContent(2);
10088 dSumWQuadraticTwo5n5n = fMixedHarmonicEventWeights[1]->GetBinContent(2);
10089 dSpreadTwo5n5n = f2pCorrelations->GetBinError(5);
10090 dSumWLinearThree2n1n1n = fMixedHarmonicEventWeights[0]->GetBinContent(3);
10091 dSumWQuadraticThree2n1n1n = fMixedHarmonicEventWeights[1]->GetBinContent(3);
10092 dSpreadThree2n1n1n = f3pCorrelations->GetBinError(1);
10093 dSumWLinearFive5n2n5n1n1n = fMixedHarmonicEventWeights[0]->GetBinContent(5);
10094 dSumWQuadraticFive5n2n5n1n1n = fMixedHarmonicEventWeights[1]->GetBinContent(5);
10095 dSpreadFive5n2n5n1n1n = f5pCorrelations->GetBinError(8);
10096 if(pow(dSumWLinearTwo5n5n,2.)>dSumWQuadraticTwo5n5n &&
10097 pow(dSumWLinearThree2n1n1n,2.)>dSumWQuadraticThree2n1n1n &&
10098 pow(dSumWLinearFive5n2n5n1n1n,2.)>dSumWQuadraticFive5n2n5n1n1n)
10100 Double_t dError = pow(f3pCorrelations->GetBinContent(1),2.)
10101 * pow((pow(dSumWQuadraticTwo5n5n,0.5)/dSumWLinearTwo5n5n)
10102 * dSpreadTwo5n5n*pow(pow(dSumWLinearTwo5n5n,2.)/(pow(dSumWLinearTwo5n5n,2.)-dSumWQuadraticTwo5n5n),0.5),2.)
10103 + pow(f2pCorrelations->GetBinContent(5),2.)
10104 * pow((pow(dSumWQuadraticThree2n1n1n,0.5)/dSumWLinearThree2n1n1n)
10105 * dSpreadThree2n1n1n*pow(pow(dSumWLinearThree2n1n1n,2.)/(pow(dSumWLinearThree2n1n1n,2.)-dSumWQuadraticThree2n1n1n),0.5),2.)
10106 + pow((pow(dSumWQuadraticFive5n2n5n1n1n,0.5)/dSumWLinearFive5n2n5n1n1n)
10107 * dSpreadFive5n2n5n1n1n*pow(pow(dSumWLinearFive5n2n5n1n1n,2.)/(pow(dSumWLinearFive5n2n5n1n1n,2.)-dSumWQuadraticFive5n2n5n1n1n),0.5),2.)
10108 + 2.*f3pCorrelations->GetBinContent(1)*f2pCorrelations->GetBinContent(5)
10109 * fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,3))
10110 * (fMixedHarmonicProductOfCorrelations->GetBinContent(fMixedHarmonicProductOfCorrelations->GetBin(5,7))
10111 - f2pCorrelations->GetBinContent(5)*f3pCorrelations->GetBinContent(1))
10112 / (dSumWLinearTwo5n5n*dSumWLinearThree2n1n1n-fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,3)))
10113 - 2.*f3pCorrelations->GetBinContent(1)
10114 * fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,5))
10115 * (fMixedHarmonicProductOfCorrelations->GetBinContent(fMixedHarmonicProductOfCorrelations->GetBin(5,64))
10116 - f2pCorrelations->GetBinContent(5)*f5pCorrelations->GetBinContent(8))
10117 / (dSumWLinearTwo5n5n*dSumWLinearFive5n2n5n1n1n-fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,5)))
10118 - 2.*f2pCorrelations->GetBinContent(5)
10119 * fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(3,5))
10120 * (fMixedHarmonicProductOfCorrelations->GetBinContent(fMixedHarmonicProductOfCorrelations->GetBin(7,64))
10121 - f3pCorrelations->GetBinContent(1)*f5pCorrelations->GetBinContent(8))
10122 / (dSumWLinearThree2n1n1n*dSumWLinearFive5n2n5n1n1n-fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(3,5)));
10125 f5pCumulants->SetBinError(8,pow(dError,0.5));
10127 } // end of if(...)
10129 f5pCumulants->SetBinContent(9,f5pCorrelations->GetBinContent(9)-f3pCorrelations->GetBinContent(8)*f2pCorrelations->GetBinContent(2));
10131 Double_t dSumWLinearTwo2n2n = 0.; // sum of linear event weights for <2>
10132 Double_t dSumWQuadraticTwo2n2n = 0.; // sum of quadratic event weights <2>
10133 Double_t dSpreadTwo2n2n = 0.; // weighted and biased estimator for sigma of <2>
10134 Double_t dSumWLinearThree5n4n1n = 0.; // sum of linear event weights for <2>
10135 Double_t dSumWQuadraticThree5n4n1n = 0.; // sum of quadratic event weights <2>
10136 Double_t dSpreadThree5n4n1n = 0.; // weighted and biased estimator for sigma of <2>
10137 Double_t dSumWLinearFive5n2n4n2n1n = 0.; // sum of linear event weights for <4>
10138 Double_t dSumWQuadraticFive5n2n4n2n1n = 0.; // sum of quadratic event weights <4>
10139 Double_t dSpreadFive5n2n4n2n1n = 0.; // weighted and biased estimator for sigma of <4>
10140 dSumWLinearTwo2n2n = fMixedHarmonicEventWeights[0]->GetBinContent(2);
10141 dSumWQuadraticTwo2n2n = fMixedHarmonicEventWeights[1]->GetBinContent(2);
10142 dSpreadTwo2n2n = f2pCorrelations->GetBinError(2);
10143 dSumWLinearThree5n4n1n = fMixedHarmonicEventWeights[0]->GetBinContent(3);
10144 dSumWQuadraticThree5n4n1n = fMixedHarmonicEventWeights[1]->GetBinContent(3);
10145 dSpreadThree5n4n1n = f3pCorrelations->GetBinError(8);
10146 dSumWLinearFive5n2n4n2n1n = fMixedHarmonicEventWeights[0]->GetBinContent(5);
10147 dSumWQuadraticFive5n2n4n2n1n = fMixedHarmonicEventWeights[1]->GetBinContent(5);
10148 dSpreadFive5n2n4n2n1n = f5pCorrelations->GetBinError(9);
10149 if(pow(dSumWLinearTwo2n2n,2.)>dSumWQuadraticTwo2n2n &&
10150 pow(dSumWLinearThree5n4n1n,2.)>dSumWQuadraticThree5n4n1n &&
10151 pow(dSumWLinearFive5n2n4n2n1n,2.)>dSumWQuadraticFive5n2n4n2n1n)
10153 Double_t dError = pow(f3pCorrelations->GetBinContent(8),2.)
10154 * pow((pow(dSumWQuadraticTwo2n2n,0.5)/dSumWLinearTwo2n2n)
10155 * dSpreadTwo2n2n*pow(pow(dSumWLinearTwo2n2n,2.)/(pow(dSumWLinearTwo2n2n,2.)-dSumWQuadraticTwo2n2n),0.5),2.)
10156 + pow(f2pCorrelations->GetBinContent(2),2.)
10157 * pow((pow(dSumWQuadraticThree5n4n1n,0.5)/dSumWLinearThree5n4n1n)
10158 * dSpreadThree5n4n1n*pow(pow(dSumWLinearThree5n4n1n,2.)/(pow(dSumWLinearThree5n4n1n,2.)-dSumWQuadraticThree5n4n1n),0.5),2.)
10159 + pow((pow(dSumWQuadraticFive5n2n4n2n1n,0.5)/dSumWLinearFive5n2n4n2n1n)
10160 * dSpreadFive5n2n4n2n1n*pow(pow(dSumWLinearFive5n2n4n2n1n,2.)/(pow(dSumWLinearFive5n2n4n2n1n,2.)-dSumWQuadraticFive5n2n4n2n1n),0.5),2.)
10161 + 2.*f3pCorrelations->GetBinContent(8)*f2pCorrelations->GetBinContent(2)
10162 * fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,3))
10163 * (fMixedHarmonicProductOfCorrelations->GetBinContent(fMixedHarmonicProductOfCorrelations->GetBin(2,13))
10164 - f2pCorrelations->GetBinContent(2)*f3pCorrelations->GetBinContent(8))
10165 / (dSumWLinearTwo2n2n*dSumWLinearThree5n4n1n-fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,3)))
10166 - 2.*f3pCorrelations->GetBinContent(8)
10167 * fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,5))
10168 * (fMixedHarmonicProductOfCorrelations->GetBinContent(fMixedHarmonicProductOfCorrelations->GetBin(2,65))
10169 - f2pCorrelations->GetBinContent(2)*f5pCorrelations->GetBinContent(9))
10170 / (dSumWLinearTwo2n2n*dSumWLinearFive5n2n4n2n1n-fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,5)))
10171 - 2.*f2pCorrelations->GetBinContent(2)
10172 * fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(3,5))
10173 * (fMixedHarmonicProductOfCorrelations->GetBinContent(fMixedHarmonicProductOfCorrelations->GetBin(13,65))
10174 - f3pCorrelations->GetBinContent(8)*f5pCorrelations->GetBinContent(9))
10175 / (dSumWLinearThree5n4n1n*dSumWLinearFive5n2n4n2n1n-fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(3,5)));
10178 f5pCumulants->SetBinError(9,pow(dError,0.5));
10180 } // end of if(...)
10182 f5pCumulants->SetBinContent(10,f5pCorrelations->GetBinContent(10)-f3pCorrelations->GetBinContent(8)*f2pCorrelations->GetBinContent(3));
10184 Double_t dSumWLinearTwo3n3n = 0.; // sum of linear event weights for <2>
10185 Double_t dSumWQuadraticTwo3n3n = 0.; // sum of quadratic event weights <2>
10186 Double_t dSpreadTwo3n3n = 0.; // weighted and biased estimator for sigma of <2>
10187 Double_t dSumWLinearThree5n4n1n = 0.; // sum of linear event weights for <2>
10188 Double_t dSumWQuadraticThree5n4n1n = 0.; // sum of quadratic event weights <2>
10189 Double_t dSpreadThree5n4n1n = 0.; // weighted and biased estimator for sigma of <2>
10190 Double_t dSumWLinearFive5n3n4n3n1n = 0.; // sum of linear event weights for <4>
10191 Double_t dSumWQuadraticFive5n3n4n3n1n = 0.; // sum of quadratic event weights <4>
10192 Double_t dSpreadFive5n3n4n3n1n = 0.; // weighted and biased estimator for sigma of <4>
10193 dSumWLinearTwo3n3n = fMixedHarmonicEventWeights[0]->GetBinContent(2);
10194 dSumWQuadraticTwo3n3n = fMixedHarmonicEventWeights[1]->GetBinContent(2);
10195 dSpreadTwo3n3n = f2pCorrelations->GetBinError(3);
10196 dSumWLinearThree5n4n1n = fMixedHarmonicEventWeights[0]->GetBinContent(3);
10197 dSumWQuadraticThree5n4n1n = fMixedHarmonicEventWeights[1]->GetBinContent(3);
10198 dSpreadThree5n4n1n = f3pCorrelations->GetBinError(8);
10199 dSumWLinearFive5n3n4n3n1n = fMixedHarmonicEventWeights[0]->GetBinContent(5);
10200 dSumWQuadraticFive5n3n4n3n1n = fMixedHarmonicEventWeights[1]->GetBinContent(5);
10201 dSpreadFive5n3n4n3n1n = f5pCorrelations->GetBinError(10);
10202 if(pow(dSumWLinearTwo3n3n,2.)>dSumWQuadraticTwo3n3n &&
10203 pow(dSumWLinearThree5n4n1n,2.)>dSumWQuadraticThree5n4n1n &&
10204 pow(dSumWLinearFive5n3n4n3n1n,2.)>dSumWQuadraticFive5n3n4n3n1n)
10206 Double_t dError = pow(f3pCorrelations->GetBinContent(8),2.)
10207 * pow((pow(dSumWQuadraticTwo3n3n,0.5)/dSumWLinearTwo3n3n)
10208 * dSpreadTwo3n3n*pow(pow(dSumWLinearTwo3n3n,2.)/(pow(dSumWLinearTwo3n3n,2.)-dSumWQuadraticTwo3n3n),0.5),2.)
10209 + pow(f2pCorrelations->GetBinContent(3),2.)
10210 * pow((pow(dSumWQuadraticThree5n4n1n,0.5)/dSumWLinearThree5n4n1n)
10211 * dSpreadThree5n4n1n*pow(pow(dSumWLinearThree5n4n1n,2.)/(pow(dSumWLinearThree5n4n1n,2.)-dSumWQuadraticThree5n4n1n),0.5),2.)
10212 + pow((pow(dSumWQuadraticFive5n3n4n3n1n,0.5)/dSumWLinearFive5n3n4n3n1n)
10213 * dSpreadFive5n3n4n3n1n*pow(pow(dSumWLinearFive5n3n4n3n1n,2.)/(pow(dSumWLinearFive5n3n4n3n1n,2.)-dSumWQuadraticFive5n3n4n3n1n),0.5),2.)
10214 + 2.*f3pCorrelations->GetBinContent(8)*f2pCorrelations->GetBinContent(3)
10215 * fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,3))
10216 * (fMixedHarmonicProductOfCorrelations->GetBinContent(fMixedHarmonicProductOfCorrelations->GetBin(3,13))
10217 - f2pCorrelations->GetBinContent(3)*f3pCorrelations->GetBinContent(8))
10218 / (dSumWLinearTwo3n3n*dSumWLinearThree5n4n1n-fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,3)))
10219 - 2.*f3pCorrelations->GetBinContent(8)
10220 * fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,5))
10221 * (fMixedHarmonicProductOfCorrelations->GetBinContent(fMixedHarmonicProductOfCorrelations->GetBin(3,66))
10222 - f2pCorrelations->GetBinContent(3)*f5pCorrelations->GetBinContent(10))
10223 / (dSumWLinearTwo3n3n*dSumWLinearFive5n3n4n3n1n-fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,5)))
10224 - 2.*f2pCorrelations->GetBinContent(3)
10225 * fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(3,5))
10226 * (fMixedHarmonicProductOfCorrelations->GetBinContent(fMixedHarmonicProductOfCorrelations->GetBin(13,66))
10227 - f3pCorrelations->GetBinContent(8)*f5pCorrelations->GetBinContent(10))
10228 / (dSumWLinearThree5n4n1n*dSumWLinearFive5n3n4n3n1n-fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(3,5)));
10231 f5pCumulants->SetBinError(10,pow(dError,0.5));
10233 } // end of if(...)
10235 f5pCumulants->SetBinContent(11,f5pCorrelations->GetBinContent(11)-f3pCorrelations->GetBinContent(7)*f2pCorrelations->GetBinContent(4));
10237 Double_t dSumWLinearTwo4n4n = 0.; // sum of linear event weights for <2>
10238 Double_t dSumWQuadraticTwo4n4n = 0.; // sum of quadratic event weights <2>
10239 Double_t dSpreadTwo4n4n = 0.; // weighted and biased estimator for sigma of <2>
10240 Double_t dSumWLinearThree5n3n2n = 0.; // sum of linear event weights for <2>
10241 Double_t dSumWQuadraticThree5n3n2n = 0.; // sum of quadratic event weights <2>
10242 Double_t dSpreadThree5n3n2n = 0.; // weighted and biased estimator for sigma of <2>
10243 Double_t dSumWLinearFive5n4n4n3n2n = 0.; // sum of linear event weights for <4>
10244 Double_t dSumWQuadraticFive5n4n4n3n2n = 0.; // sum of quadratic event weights <4>
10245 Double_t dSpreadFive5n4n4n3n2n = 0.; // weighted and biased estimator for sigma of <4>
10246 dSumWLinearTwo4n4n = fMixedHarmonicEventWeights[0]->GetBinContent(2);
10247 dSumWQuadraticTwo4n4n = fMixedHarmonicEventWeights[1]->GetBinContent(2);
10248 dSpreadTwo4n4n = f2pCorrelations->GetBinError(4);
10249 dSumWLinearThree5n3n2n = fMixedHarmonicEventWeights[0]->GetBinContent(3);
10250 dSumWQuadraticThree5n3n2n = fMixedHarmonicEventWeights[1]->GetBinContent(3);
10251 dSpreadThree5n3n2n = f3pCorrelations->GetBinError(7);
10252 dSumWLinearFive5n4n4n3n2n = fMixedHarmonicEventWeights[0]->GetBinContent(5);
10253 dSumWQuadraticFive5n4n4n3n2n = fMixedHarmonicEventWeights[1]->GetBinContent(5);
10254 dSpreadFive5n4n4n3n2n = f5pCorrelations->GetBinError(11);
10255 if(pow(dSumWLinearTwo4n4n,2.)>dSumWQuadraticTwo4n4n &&
10256 pow(dSumWLinearThree5n3n2n,2.)>dSumWQuadraticThree5n3n2n &&
10257 pow(dSumWLinearFive5n4n4n3n2n,2.)>dSumWQuadraticFive5n4n4n3n2n)
10259 Double_t dError = pow(f3pCorrelations->GetBinContent(7),2.)
10260 * pow((pow(dSumWQuadraticTwo4n4n,0.5)/dSumWLinearTwo4n4n)
10261 * dSpreadTwo4n4n*pow(pow(dSumWLinearTwo4n4n,2.)/(pow(dSumWLinearTwo4n4n,2.)-dSumWQuadraticTwo4n4n),0.5),2.)
10262 + pow(f2pCorrelations->GetBinContent(4),2.)
10263 * pow((pow(dSumWQuadraticThree5n3n2n,0.5)/dSumWLinearThree5n3n2n)
10264 * dSpreadThree5n3n2n*pow(pow(dSumWLinearThree5n3n2n,2.)/(pow(dSumWLinearThree5n3n2n,2.)-dSumWQuadraticThree5n3n2n),0.5),2.)
10265 + pow((pow(dSumWQuadraticFive5n4n4n3n2n,0.5)/dSumWLinearFive5n4n4n3n2n)
10266 * dSpreadFive5n4n4n3n2n*pow(pow(dSumWLinearFive5n4n4n3n2n,2.)/(pow(dSumWLinearFive5n4n4n3n2n,2.)-dSumWQuadraticFive5n4n4n3n2n),0.5),2.)
10267 + 2.*f3pCorrelations->GetBinContent(7)*f2pCorrelations->GetBinContent(4)
10268 * fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,3))
10269 * (fMixedHarmonicProductOfCorrelations->GetBinContent(fMixedHarmonicProductOfCorrelations->GetBin(4,12))
10270 - f2pCorrelations->GetBinContent(4)*f3pCorrelations->GetBinContent(7))
10271 / (dSumWLinearTwo4n4n*dSumWLinearThree5n3n2n-fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,3)))
10272 - 2.*f3pCorrelations->GetBinContent(7)
10273 * fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,5))
10274 * (fMixedHarmonicProductOfCorrelations->GetBinContent(fMixedHarmonicProductOfCorrelations->GetBin(4,67))
10275 - f2pCorrelations->GetBinContent(4)*f5pCorrelations->GetBinContent(11))
10276 / (dSumWLinearTwo4n4n*dSumWLinearFive5n4n4n3n2n-fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,5)))
10277 - 2.*f2pCorrelations->GetBinContent(4)
10278 * fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(3,5))
10279 * (fMixedHarmonicProductOfCorrelations->GetBinContent(fMixedHarmonicProductOfCorrelations->GetBin(12,67))
10280 - f3pCorrelations->GetBinContent(7)*f5pCorrelations->GetBinContent(11))
10281 / (dSumWLinearThree5n3n2n*dSumWLinearFive5n4n4n3n2n-fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(3,5)));
10284 f5pCumulants->SetBinError(11,pow(dError,0.5));
10286 } // end of if(...)
10288 f5pCumulants->SetBinContent(12,f5pCorrelations->GetBinContent(12)-f3pCorrelations->GetBinContent(5)*f2pCorrelations->GetBinContent(5));
10290 Double_t dSumWLinearTwo5n5n = 0.; // sum of linear event weights for <2>
10291 Double_t dSumWQuadraticTwo5n5n = 0.; // sum of quadratic event weights <2>
10292 Double_t dSpreadTwo5n5n = 0.; // weighted and biased estimator for sigma of <2>
10293 Double_t dSumWLinearThree3n2n1n = 0.; // sum of linear event weights for <2>
10294 Double_t dSumWQuadraticThree3n2n1n = 0.; // sum of quadratic event weights <2>
10295 Double_t dSpreadThree3n2n1n = 0.; // weighted and biased estimator for sigma of <2>
10296 Double_t dSumWLinearFive5n3n5n2n1n = 0.; // sum of linear event weights for <4>
10297 Double_t dSumWQuadraticFive5n3n5n2n1n = 0.; // sum of quadratic event weights <4>
10298 Double_t dSpreadFive5n3n5n2n1n = 0.; // weighted and biased estimator for sigma of <4>
10299 dSumWLinearTwo5n5n = fMixedHarmonicEventWeights[0]->GetBinContent(2);
10300 dSumWQuadraticTwo5n5n = fMixedHarmonicEventWeights[1]->GetBinContent(2);
10301 dSpreadTwo5n5n = f2pCorrelations->GetBinError(5);
10302 dSumWLinearThree3n2n1n = fMixedHarmonicEventWeights[0]->GetBinContent(3);
10303 dSumWQuadraticThree3n2n1n = fMixedHarmonicEventWeights[1]->GetBinContent(3);
10304 dSpreadThree3n2n1n = f3pCorrelations->GetBinError(5);
10305 dSumWLinearFive5n3n5n2n1n = fMixedHarmonicEventWeights[0]->GetBinContent(5);
10306 dSumWQuadraticFive5n3n5n2n1n = fMixedHarmonicEventWeights[1]->GetBinContent(5);
10307 dSpreadFive5n3n5n2n1n = f5pCorrelations->GetBinError(12);
10308 if(pow(dSumWLinearTwo5n5n,2.)>dSumWQuadraticTwo5n5n &&
10309 pow(dSumWLinearThree3n2n1n,2.)>dSumWQuadraticThree3n2n1n &&
10310 pow(dSumWLinearFive5n3n5n2n1n,2.)>dSumWQuadraticFive5n3n5n2n1n)
10312 Double_t dError = pow(f3pCorrelations->GetBinContent(5),2.)
10313 * pow((pow(dSumWQuadraticTwo5n5n,0.5)/dSumWLinearTwo5n5n)
10314 * dSpreadTwo5n5n*pow(pow(dSumWLinearTwo5n5n,2.)/(pow(dSumWLinearTwo5n5n,2.)-dSumWQuadraticTwo5n5n),0.5),2.)
10315 + pow(f2pCorrelations->GetBinContent(5),2.)
10316 * pow((pow(dSumWQuadraticThree3n2n1n,0.5)/dSumWLinearThree3n2n1n)
10317 * dSpreadThree3n2n1n*pow(pow(dSumWLinearThree3n2n1n,2.)/(pow(dSumWLinearThree3n2n1n,2.)-dSumWQuadraticThree3n2n1n),0.5),2.)
10318 + pow((pow(dSumWQuadraticFive5n3n5n2n1n,0.5)/dSumWLinearFive5n3n5n2n1n)
10319 * dSpreadFive5n3n5n2n1n*pow(pow(dSumWLinearFive5n3n5n2n1n,2.)/(pow(dSumWLinearFive5n3n5n2n1n,2.)-dSumWQuadraticFive5n3n5n2n1n),0.5),2.)
10320 + 2.*f3pCorrelations->GetBinContent(5)*f2pCorrelations->GetBinContent(5)
10321 * fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,3))
10322 * (fMixedHarmonicProductOfCorrelations->GetBinContent(fMixedHarmonicProductOfCorrelations->GetBin(5,10))
10323 - f2pCorrelations->GetBinContent(5)*f3pCorrelations->GetBinContent(5))
10324 / (dSumWLinearTwo5n5n*dSumWLinearThree3n2n1n-fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,3)))
10325 - 2.*f3pCorrelations->GetBinContent(5)
10326 * fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,5))
10327 * (fMixedHarmonicProductOfCorrelations->GetBinContent(fMixedHarmonicProductOfCorrelations->GetBin(5,68))
10328 - f2pCorrelations->GetBinContent(5)*f5pCorrelations->GetBinContent(12))
10329 / (dSumWLinearTwo5n5n*dSumWLinearFive5n3n5n2n1n-fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,5)))
10330 - 2.*f2pCorrelations->GetBinContent(5)
10331 * fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(3,5))
10332 * (fMixedHarmonicProductOfCorrelations->GetBinContent(fMixedHarmonicProductOfCorrelations->GetBin(10,68))
10333 - f3pCorrelations->GetBinContent(5)*f5pCorrelations->GetBinContent(12))
10334 / (dSumWLinearThree3n2n1n*dSumWLinearFive5n3n5n2n1n-fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(3,5)));
10337 f5pCumulants->SetBinError(12,pow(dError,0.5));
10339 } // end of if(...)
10341 f5pCumulants->SetBinContent(13,f5pCorrelations->GetBinContent(13)-f3pCorrelations->GetBinContent(2)*f2pCorrelations->GetBinContent(5));
10343 Double_t dSumWLinearTwo5n5n = 0.; // sum of linear event weights for <2>
10344 Double_t dSumWQuadraticTwo5n5n = 0.; // sum of quadratic event weights <2>
10345 Double_t dSpreadTwo5n5n = 0.; // weighted and biased estimator for sigma of <2>
10346 Double_t dSumWLinearThree4n2n2n = 0.; // sum of linear event weights for <2>
10347 Double_t dSumWQuadraticThree4n2n2n = 0.; // sum of quadratic event weights <2>
10348 Double_t dSpreadThree4n2n2n = 0.; // weighted and biased estimator for sigma of <2>
10349 Double_t dSumWLinearFive5n4n5n2n2n = 0.; // sum of linear event weights for <4>
10350 Double_t dSumWQuadraticFive5n4n5n2n2n = 0.; // sum of quadratic event weights <4>
10351 Double_t dSpreadFive5n4n5n2n2n = 0.; // weighted and biased estimator for sigma of <4>
10352 dSumWLinearTwo5n5n = fMixedHarmonicEventWeights[0]->GetBinContent(2);
10353 dSumWQuadraticTwo5n5n = fMixedHarmonicEventWeights[1]->GetBinContent(2);
10354 dSpreadTwo5n5n = f2pCorrelations->GetBinError(5);
10355 dSumWLinearThree4n2n2n = fMixedHarmonicEventWeights[0]->GetBinContent(3);
10356 dSumWQuadraticThree4n2n2n = fMixedHarmonicEventWeights[1]->GetBinContent(3);
10357 dSpreadThree4n2n2n = f3pCorrelations->GetBinError(2);
10358 dSumWLinearFive5n4n5n2n2n = fMixedHarmonicEventWeights[0]->GetBinContent(5);
10359 dSumWQuadraticFive5n4n5n2n2n = fMixedHarmonicEventWeights[1]->GetBinContent(5);
10360 dSpreadFive5n4n5n2n2n = f5pCorrelations->GetBinError(13);
10361 if(pow(dSumWLinearTwo5n5n,2.)>dSumWQuadraticTwo5n5n &&
10362 pow(dSumWLinearThree4n2n2n,2.)>dSumWQuadraticThree4n2n2n &&
10363 pow(dSumWLinearFive5n4n5n2n2n,2.)>dSumWQuadraticFive5n4n5n2n2n)
10365 Double_t dError = pow(f3pCorrelations->GetBinContent(2),2.)
10366 * pow((pow(dSumWQuadraticTwo5n5n,0.5)/dSumWLinearTwo5n5n)
10367 * dSpreadTwo5n5n*pow(pow(dSumWLinearTwo5n5n,2.)/(pow(dSumWLinearTwo5n5n,2.)-dSumWQuadraticTwo5n5n),0.5),2.)
10368 + pow(f2pCorrelations->GetBinContent(5),2.)
10369 * pow((pow(dSumWQuadraticThree4n2n2n,0.5)/dSumWLinearThree4n2n2n)
10370 * dSpreadThree4n2n2n*pow(pow(dSumWLinearThree4n2n2n,2.)/(pow(dSumWLinearThree4n2n2n,2.)-dSumWQuadraticThree4n2n2n),0.5),2.)
10371 + pow((pow(dSumWQuadraticFive5n4n5n2n2n,0.5)/dSumWLinearFive5n4n5n2n2n)
10372 * dSpreadFive5n4n5n2n2n*pow(pow(dSumWLinearFive5n4n5n2n2n,2.)/(pow(dSumWLinearFive5n4n5n2n2n,2.)-dSumWQuadraticFive5n4n5n2n2n),0.5),2.)
10373 + 2.*f3pCorrelations->GetBinContent(2)*f2pCorrelations->GetBinContent(5)
10374 * fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,3))
10375 * (fMixedHarmonicProductOfCorrelations->GetBinContent(fMixedHarmonicProductOfCorrelations->GetBin(5,8))
10376 - f2pCorrelations->GetBinContent(5)*f3pCorrelations->GetBinContent(2))
10377 / (dSumWLinearTwo5n5n*dSumWLinearThree4n2n2n-fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,3)))
10378 - 2.*f3pCorrelations->GetBinContent(2)
10379 * fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,5))
10380 * (fMixedHarmonicProductOfCorrelations->GetBinContent(fMixedHarmonicProductOfCorrelations->GetBin(5,69))
10381 - f2pCorrelations->GetBinContent(5)*f5pCorrelations->GetBinContent(13))
10382 / (dSumWLinearTwo5n5n*dSumWLinearFive5n4n5n2n2n-fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,5)))
10383 - 2.*f2pCorrelations->GetBinContent(5)
10384 * fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(3,5))
10385 * (fMixedHarmonicProductOfCorrelations->GetBinContent(fMixedHarmonicProductOfCorrelations->GetBin(8,69))
10386 - f3pCorrelations->GetBinContent(2)*f5pCorrelations->GetBinContent(13))
10387 / (dSumWLinearThree4n2n2n*dSumWLinearFive5n4n5n2n2n-fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(3,5)));
10390 f5pCumulants->SetBinError(13,pow(dError,0.5));
10392 } // end of if(...)
10394 f5pCumulants->SetBinContent(14,f5pCorrelations->GetBinContent(14)-f3pCorrelations->GetBinContent(6)*f2pCorrelations->GetBinContent(5));
10396 Double_t dSumWLinearTwo5n5n = 0.; // sum of linear event weights for <2>
10397 Double_t dSumWQuadraticTwo5n5n = 0.; // sum of quadratic event weights <2>
10398 Double_t dSpreadTwo5n5n = 0.; // weighted and biased estimator for sigma of <2>
10399 Double_t dSumWLinearThree4n3n1n = 0.; // sum of linear event weights for <2>
10400 Double_t dSumWQuadraticThree4n3n1n = 0.; // sum of quadratic event weights <2>
10401 Double_t dSpreadThree4n3n1n = 0.; // weighted and biased estimator for sigma of <2>
10402 Double_t dSumWLinearFive5n4n5n3n1n = 0.; // sum of linear event weights for <4>
10403 Double_t dSumWQuadraticFive5n4n5n3n1n = 0.; // sum of quadratic event weights <4>
10404 Double_t dSpreadFive5n4n5n3n1n = 0.; // weighted and biased estimator for sigma of <4>
10405 dSumWLinearTwo5n5n = fMixedHarmonicEventWeights[0]->GetBinContent(2);
10406 dSumWQuadraticTwo5n5n = fMixedHarmonicEventWeights[1]->GetBinContent(2);
10407 dSpreadTwo5n5n = f2pCorrelations->GetBinError(5);
10408 dSumWLinearThree4n3n1n = fMixedHarmonicEventWeights[0]->GetBinContent(3);
10409 dSumWQuadraticThree4n3n1n = fMixedHarmonicEventWeights[1]->GetBinContent(3);
10410 dSpreadThree4n3n1n = f3pCorrelations->GetBinError(6);
10411 dSumWLinearFive5n4n5n3n1n = fMixedHarmonicEventWeights[0]->GetBinContent(5);
10412 dSumWQuadraticFive5n4n5n3n1n = fMixedHarmonicEventWeights[1]->GetBinContent(5);
10413 dSpreadFive5n4n5n3n1n = f5pCorrelations->GetBinError(14);
10414 if(pow(dSumWLinearTwo5n5n,2.)>dSumWQuadraticTwo5n5n &&
10415 pow(dSumWLinearThree4n3n1n,2.)>dSumWQuadraticThree4n3n1n &&
10416 pow(dSumWLinearFive5n4n5n3n1n,2.)>dSumWQuadraticFive5n4n5n3n1n)
10418 Double_t dError = pow(f3pCorrelations->GetBinContent(6),2.)
10419 * pow((pow(dSumWQuadraticTwo5n5n,0.5)/dSumWLinearTwo5n5n)
10420 * dSpreadTwo5n5n*pow(pow(dSumWLinearTwo5n5n,2.)/(pow(dSumWLinearTwo5n5n,2.)-dSumWQuadraticTwo5n5n),0.5),2.)
10421 + pow(f2pCorrelations->GetBinContent(5),2.)
10422 * pow((pow(dSumWQuadraticThree4n3n1n,0.5)/dSumWLinearThree4n3n1n)
10423 * dSpreadThree4n3n1n*pow(pow(dSumWLinearThree4n3n1n,2.)/(pow(dSumWLinearThree4n3n1n,2.)-dSumWQuadraticThree4n3n1n),0.5),2.)
10424 + pow((pow(dSumWQuadraticFive5n4n5n3n1n,0.5)/dSumWLinearFive5n4n5n3n1n)
10425 * dSpreadFive5n4n5n3n1n*pow(pow(dSumWLinearFive5n4n5n3n1n,2.)/(pow(dSumWLinearFive5n4n5n3n1n,2.)-dSumWQuadraticFive5n4n5n3n1n),0.5),2.)
10426 + 2.*f3pCorrelations->GetBinContent(6)*f2pCorrelations->GetBinContent(5)
10427 * fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,3))
10428 * (fMixedHarmonicProductOfCorrelations->GetBinContent(fMixedHarmonicProductOfCorrelations->GetBin(5,11))
10429 - f2pCorrelations->GetBinContent(5)*f3pCorrelations->GetBinContent(6))
10430 / (dSumWLinearTwo5n5n*dSumWLinearThree4n3n1n-fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,3)))
10431 - 2.*f3pCorrelations->GetBinContent(6)
10432 * fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,5))
10433 * (fMixedHarmonicProductOfCorrelations->GetBinContent(fMixedHarmonicProductOfCorrelations->GetBin(5,70))
10434 - f2pCorrelations->GetBinContent(5)*f5pCorrelations->GetBinContent(14))
10435 / (dSumWLinearTwo5n5n*dSumWLinearFive5n4n5n3n1n-fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,5)))
10436 - 2.*f2pCorrelations->GetBinContent(5)
10437 * fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(3,5))
10438 * (fMixedHarmonicProductOfCorrelations->GetBinContent(fMixedHarmonicProductOfCorrelations->GetBin(11,70))
10439 - f3pCorrelations->GetBinContent(6)*f5pCorrelations->GetBinContent(14))
10440 / (dSumWLinearThree4n3n1n*dSumWLinearFive5n4n5n3n1n-fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(3,5)));
10443 f5pCumulants->SetBinError(14,pow(dError,0.5));
10445 } // end of if(...)
10447 f5pCumulants->SetBinContent(15,f5pCorrelations->GetBinContent(15)-f3pCorrelations->GetBinContent(3)*f2pCorrelations->GetBinContent(1));
10449 Double_t dSumWLinearTwo1n1n = 0.; // sum of linear event weights for <2>
10450 Double_t dSumWQuadraticTwo1n1n = 0.; // sum of quadratic event weights <2>
10451 Double_t dSpreadTwo1n1n = 0.; // weighted and biased estimator for sigma of <2>
10452 Double_t dSumWLinearThree6n3n3n = 0.; // sum of linear event weights for <2>
10453 Double_t dSumWQuadraticThree6n3n3n = 0.; // sum of quadratic event weights <2>
10454 Double_t dSpreadThree6n3n3n = 0.; // weighted and biased estimator for sigma of <2>
10455 Double_t dSumWLinearFive6n1n3n3n1n = 0.; // sum of linear event weights for <4>
10456 Double_t dSumWQuadraticFive6n1n3n3n1n = 0.; // sum of quadratic event weights <4>
10457 Double_t dSpreadFive6n1n3n3n1n = 0.; // weighted and biased estimator for sigma of <4>
10458 dSumWLinearTwo1n1n = fMixedHarmonicEventWeights[0]->GetBinContent(2);
10459 dSumWQuadraticTwo1n1n = fMixedHarmonicEventWeights[1]->GetBinContent(2);
10460 dSpreadTwo1n1n = f2pCorrelations->GetBinError(1);
10461 dSumWLinearThree6n3n3n = fMixedHarmonicEventWeights[0]->GetBinContent(3);
10462 dSumWQuadraticThree6n3n3n = fMixedHarmonicEventWeights[1]->GetBinContent(3);
10463 dSpreadThree6n3n3n = f3pCorrelations->GetBinError(3);
10464 dSumWLinearFive6n1n3n3n1n = fMixedHarmonicEventWeights[0]->GetBinContent(5);
10465 dSumWQuadraticFive6n1n3n3n1n = fMixedHarmonicEventWeights[1]->GetBinContent(5);
10466 dSpreadFive6n1n3n3n1n = f5pCorrelations->GetBinError(15);
10467 if(pow(dSumWLinearTwo1n1n,2.)>dSumWQuadraticTwo1n1n &&
10468 pow(dSumWLinearThree6n3n3n,2.)>dSumWQuadraticThree6n3n3n &&
10469 pow(dSumWLinearFive6n1n3n3n1n,2.)>dSumWQuadraticFive6n1n3n3n1n)
10471 Double_t dError = pow(f3pCorrelations->GetBinContent(3),2.)
10472 * pow((pow(dSumWQuadraticTwo1n1n,0.5)/dSumWLinearTwo1n1n)
10473 * dSpreadTwo1n1n*pow(pow(dSumWLinearTwo1n1n,2.)/(pow(dSumWLinearTwo1n1n,2.)-dSumWQuadraticTwo1n1n),0.5),2.)
10474 + pow(f2pCorrelations->GetBinContent(1),2.)
10475 * pow((pow(dSumWQuadraticThree6n3n3n,0.5)/dSumWLinearThree6n3n3n)
10476 * dSpreadThree6n3n3n*pow(pow(dSumWLinearThree6n3n3n,2.)/(pow(dSumWLinearThree6n3n3n,2.)-dSumWQuadraticThree6n3n3n),0.5),2.)
10477 + pow((pow(dSumWQuadraticFive6n1n3n3n1n,0.5)/dSumWLinearFive6n1n3n3n1n)
10478 * dSpreadFive6n1n3n3n1n*pow(pow(dSumWLinearFive6n1n3n3n1n,2.)/(pow(dSumWLinearFive6n1n3n3n1n,2.)-dSumWQuadraticFive6n1n3n3n1n),0.5),2.)
10479 + 2.*f3pCorrelations->GetBinContent(3)*f2pCorrelations->GetBinContent(1)
10480 * fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,3))
10481 * (fMixedHarmonicProductOfCorrelations->GetBinContent(fMixedHarmonicProductOfCorrelations->GetBin(1,9))
10482 - f2pCorrelations->GetBinContent(1)*f3pCorrelations->GetBinContent(3))
10483 / (dSumWLinearTwo1n1n*dSumWLinearThree6n3n3n-fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,3)))
10484 - 2.*f3pCorrelations->GetBinContent(3)
10485 * fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,5))
10486 * (fMixedHarmonicProductOfCorrelations->GetBinContent(fMixedHarmonicProductOfCorrelations->GetBin(1,71))
10487 - f2pCorrelations->GetBinContent(1)*f5pCorrelations->GetBinContent(15))
10488 / (dSumWLinearTwo1n1n*dSumWLinearFive6n1n3n3n1n-fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,5)))
10489 - 2.*f2pCorrelations->GetBinContent(1)
10490 * fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(3,5))
10491 * (fMixedHarmonicProductOfCorrelations->GetBinContent(fMixedHarmonicProductOfCorrelations->GetBin(9,71))
10492 - f3pCorrelations->GetBinContent(3)*f5pCorrelations->GetBinContent(15))
10493 / (dSumWLinearThree6n3n3n*dSumWLinearFive6n1n3n3n1n-fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(3,5)));
10496 f5pCumulants->SetBinError(15,pow(dError,0.5));
10498 } // end of if(...)
10500 f5pCumulants->SetBinContent(16,f5pCorrelations->GetBinContent(16)-f3pCorrelations->GetBinContent(3)*f2pCorrelations->GetBinContent(2));
10502 Double_t dSumWLinearTwo2n2n = 0.; // sum of linear event weights for <2>
10503 Double_t dSumWQuadraticTwo2n2n = 0.; // sum of quadratic event weights <2>
10504 Double_t dSpreadTwo2n2n = 0.; // weighted and biased estimator for sigma of <2>
10505 Double_t dSumWLinearThree6n3n3n = 0.; // sum of linear event weights for <2>
10506 Double_t dSumWQuadraticThree6n3n3n = 0.; // sum of quadratic event weights <2>
10507 Double_t dSpreadThree6n3n3n = 0.; // weighted and biased estimator for sigma of <2>
10508 Double_t dSumWLinearFive6n2n3n3n2n = 0.; // sum of linear event weights for <4>
10509 Double_t dSumWQuadraticFive6n2n3n3n2n = 0.; // sum of quadratic event weights <4>
10510 Double_t dSpreadFive6n2n3n3n2n = 0.; // weighted and biased estimator for sigma of <4>
10511 dSumWLinearTwo2n2n = fMixedHarmonicEventWeights[0]->GetBinContent(2);
10512 dSumWQuadraticTwo2n2n = fMixedHarmonicEventWeights[1]->GetBinContent(2);
10513 dSpreadTwo2n2n = f2pCorrelations->GetBinError(2);
10514 dSumWLinearThree6n3n3n = fMixedHarmonicEventWeights[0]->GetBinContent(3);
10515 dSumWQuadraticThree6n3n3n = fMixedHarmonicEventWeights[1]->GetBinContent(3);
10516 dSpreadThree6n3n3n = f3pCorrelations->GetBinError(3);
10517 dSumWLinearFive6n2n3n3n2n = fMixedHarmonicEventWeights[0]->GetBinContent(5);
10518 dSumWQuadraticFive6n2n3n3n2n = fMixedHarmonicEventWeights[1]->GetBinContent(5);
10519 dSpreadFive6n2n3n3n2n = f5pCorrelations->GetBinError(16);
10520 if(pow(dSumWLinearTwo2n2n,2.)>dSumWQuadraticTwo2n2n &&
10521 pow(dSumWLinearThree6n3n3n,2.)>dSumWQuadraticThree6n3n3n &&
10522 pow(dSumWLinearFive6n2n3n3n2n,2.)>dSumWQuadraticFive6n2n3n3n2n)
10524 Double_t dError = pow(f3pCorrelations->GetBinContent(3),2.)
10525 * pow((pow(dSumWQuadraticTwo2n2n,0.5)/dSumWLinearTwo2n2n)
10526 * dSpreadTwo2n2n*pow(pow(dSumWLinearTwo2n2n,2.)/(pow(dSumWLinearTwo2n2n,2.)-dSumWQuadraticTwo2n2n),0.5),2.)
10527 + pow(f2pCorrelations->GetBinContent(2),2.)
10528 * pow((pow(dSumWQuadraticThree6n3n3n,0.5)/dSumWLinearThree6n3n3n)
10529 * dSpreadThree6n3n3n*pow(pow(dSumWLinearThree6n3n3n,2.)/(pow(dSumWLinearThree6n3n3n,2.)-dSumWQuadraticThree6n3n3n),0.5),2.)
10530 + pow((pow(dSumWQuadraticFive6n2n3n3n2n,0.5)/dSumWLinearFive6n2n3n3n2n)
10531 * dSpreadFive6n2n3n3n2n*pow(pow(dSumWLinearFive6n2n3n3n2n,2.)/(pow(dSumWLinearFive6n2n3n3n2n,2.)-dSumWQuadraticFive6n2n3n3n2n),0.5),2.)
10532 + 2.*f3pCorrelations->GetBinContent(3)*f2pCorrelations->GetBinContent(2)
10533 * fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,3))
10534 * (fMixedHarmonicProductOfCorrelations->GetBinContent(fMixedHarmonicProductOfCorrelations->GetBin(2,9))
10535 - f2pCorrelations->GetBinContent(2)*f3pCorrelations->GetBinContent(3))
10536 / (dSumWLinearTwo2n2n*dSumWLinearThree6n3n3n-fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,3)))
10537 - 2.*f3pCorrelations->GetBinContent(3)
10538 * fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,5))
10539 * (fMixedHarmonicProductOfCorrelations->GetBinContent(fMixedHarmonicProductOfCorrelations->GetBin(2,72))
10540 - f2pCorrelations->GetBinContent(2)*f5pCorrelations->GetBinContent(16))
10541 / (dSumWLinearTwo2n2n*dSumWLinearFive6n2n3n3n2n-fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,5)))
10542 - 2.*f2pCorrelations->GetBinContent(2)
10543 * fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(3,5))
10544 * (fMixedHarmonicProductOfCorrelations->GetBinContent(fMixedHarmonicProductOfCorrelations->GetBin(9,72))
10545 - f3pCorrelations->GetBinContent(3)*f5pCorrelations->GetBinContent(16))
10546 / (dSumWLinearThree6n3n3n*dSumWLinearFive6n2n3n3n2n-fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(3,5)));
10549 f5pCumulants->SetBinError(16,pow(dError,0.5));
10551 } // end of if(...)
10553 f5pCumulants->SetBinContent(17,f5pCorrelations->GetBinContent(17)-f3pCorrelations->GetBinContent(9)*f2pCorrelations->GetBinContent(1));
10555 Double_t dSumWLinearTwo1n1n = 0.; // sum of linear event weights for <2>
10556 Double_t dSumWQuadraticTwo1n1n = 0.; // sum of quadratic event weights <2>
10557 Double_t dSpreadTwo1n1n = 0.; // weighted and biased estimator for sigma of <2>
10558 Double_t dSumWLinearThree6n4n2n = 0.; // sum of linear event weights for <2>
10559 Double_t dSumWQuadraticThree6n4n2n = 0.; // sum of quadratic event weights <2>
10560 Double_t dSpreadThree6n4n2n = 0.; // weighted and biased estimator for sigma of <2>
10561 Double_t dSumWLinearFive6n1n4n2n1n = 0.; // sum of linear event weights for <4>
10562 Double_t dSumWQuadraticFive6n1n4n2n1n = 0.; // sum of quadratic event weights <4>
10563 Double_t dSpreadFive6n1n4n2n1n = 0.; // weighted and biased estimator for sigma of <4>
10564 dSumWLinearTwo1n1n = fMixedHarmonicEventWeights[0]->GetBinContent(2);
10565 dSumWQuadraticTwo1n1n = fMixedHarmonicEventWeights[1]->GetBinContent(2);
10566 dSpreadTwo1n1n = f2pCorrelations->GetBinError(1);
10567 dSumWLinearThree6n4n2n = fMixedHarmonicEventWeights[0]->GetBinContent(3);
10568 dSumWQuadraticThree6n4n2n = fMixedHarmonicEventWeights[1]->GetBinContent(3);
10569 dSpreadThree6n4n2n = f3pCorrelations->GetBinError(9);
10570 dSumWLinearFive6n1n4n2n1n = fMixedHarmonicEventWeights[0]->GetBinContent(5);
10571 dSumWQuadraticFive6n1n4n2n1n = fMixedHarmonicEventWeights[1]->GetBinContent(5);
10572 dSpreadFive6n1n4n2n1n = f5pCorrelations->GetBinError(17);
10573 if(pow(dSumWLinearTwo1n1n,2.)>dSumWQuadraticTwo1n1n &&
10574 pow(dSumWLinearThree6n4n2n,2.)>dSumWQuadraticThree6n4n2n &&
10575 pow(dSumWLinearFive6n1n4n2n1n,2.)>dSumWQuadraticFive6n1n4n2n1n)
10577 Double_t dError = pow(f3pCorrelations->GetBinContent(9),2.)
10578 * pow((pow(dSumWQuadraticTwo1n1n,0.5)/dSumWLinearTwo1n1n)
10579 * dSpreadTwo1n1n*pow(pow(dSumWLinearTwo1n1n,2.)/(pow(dSumWLinearTwo1n1n,2.)-dSumWQuadraticTwo1n1n),0.5),2.)
10580 + pow(f2pCorrelations->GetBinContent(1),2.)
10581 * pow((pow(dSumWQuadraticThree6n4n2n,0.5)/dSumWLinearThree6n4n2n)
10582 * dSpreadThree6n4n2n*pow(pow(dSumWLinearThree6n4n2n,2.)/(pow(dSumWLinearThree6n4n2n,2.)-dSumWQuadraticThree6n4n2n),0.5),2.)
10583 + pow((pow(dSumWQuadraticFive6n1n4n2n1n,0.5)/dSumWLinearFive6n1n4n2n1n)
10584 * dSpreadFive6n1n4n2n1n*pow(pow(dSumWLinearFive6n1n4n2n1n,2.)/(pow(dSumWLinearFive6n1n4n2n1n,2.)-dSumWQuadraticFive6n1n4n2n1n),0.5),2.)
10585 + 2.*f3pCorrelations->GetBinContent(9)*f2pCorrelations->GetBinContent(1)
10586 * fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,3))
10587 * (fMixedHarmonicProductOfCorrelations->GetBinContent(fMixedHarmonicProductOfCorrelations->GetBin(1,14))
10588 - f2pCorrelations->GetBinContent(1)*f3pCorrelations->GetBinContent(9))
10589 / (dSumWLinearTwo1n1n*dSumWLinearThree6n4n2n-fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,3)))
10590 - 2.*f3pCorrelations->GetBinContent(9)
10591 * fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,5))
10592 * (fMixedHarmonicProductOfCorrelations->GetBinContent(fMixedHarmonicProductOfCorrelations->GetBin(1,73))
10593 - f2pCorrelations->GetBinContent(1)*f5pCorrelations->GetBinContent(17))
10594 / (dSumWLinearTwo1n1n*dSumWLinearFive6n1n4n2n1n-fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,5)))
10595 - 2.*f2pCorrelations->GetBinContent(1)
10596 * fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(3,5))
10597 * (fMixedHarmonicProductOfCorrelations->GetBinContent(fMixedHarmonicProductOfCorrelations->GetBin(14,73))
10598 - f3pCorrelations->GetBinContent(9)*f5pCorrelations->GetBinContent(17))
10599 / (dSumWLinearThree6n4n2n*dSumWLinearFive6n1n4n2n1n-fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(3,5)));
10602 f5pCumulants->SetBinError(17,pow(dError,0.5));
10604 } // end of if(...)
10606 f5pCumulants->SetBinContent(18,f5pCorrelations->GetBinContent(18)-f3pCorrelations->GetBinContent(9)*f2pCorrelations->GetBinContent(3));
10608 Double_t dSumWLinearTwo3n3n = 0.; // sum of linear event weights for <2>
10609 Double_t dSumWQuadraticTwo3n3n = 0.; // sum of quadratic event weights <2>
10610 Double_t dSpreadTwo3n3n = 0.; // weighted and biased estimator for sigma of <2>
10611 Double_t dSumWLinearThree6n4n2n = 0.; // sum of linear event weights for <2>
10612 Double_t dSumWQuadraticThree6n4n2n = 0.; // sum of quadratic event weights <2>
10613 Double_t dSpreadThree6n4n2n = 0.; // weighted and biased estimator for sigma of <2>
10614 Double_t dSumWLinearFive6n3n4n3n2n = 0.; // sum of linear event weights for <4>
10615 Double_t dSumWQuadraticFive6n3n4n3n2n = 0.; // sum of quadratic event weights <4>
10616 Double_t dSpreadFive6n3n4n3n2n = 0.; // weighted and biased estimator for sigma of <4>
10617 dSumWLinearTwo3n3n = fMixedHarmonicEventWeights[0]->GetBinContent(2);
10618 dSumWQuadraticTwo3n3n = fMixedHarmonicEventWeights[1]->GetBinContent(2);
10619 dSpreadTwo3n3n = f2pCorrelations->GetBinError(3);
10620 dSumWLinearThree6n4n2n = fMixedHarmonicEventWeights[0]->GetBinContent(3);
10621 dSumWQuadraticThree6n4n2n = fMixedHarmonicEventWeights[1]->GetBinContent(3);
10622 dSpreadThree6n4n2n = f3pCorrelations->GetBinError(9);
10623 dSumWLinearFive6n3n4n3n2n = fMixedHarmonicEventWeights[0]->GetBinContent(5);
10624 dSumWQuadraticFive6n3n4n3n2n = fMixedHarmonicEventWeights[1]->GetBinContent(5);
10625 dSpreadFive6n3n4n3n2n = f5pCorrelations->GetBinError(18);
10626 if(pow(dSumWLinearTwo3n3n,2.)>dSumWQuadraticTwo3n3n &&
10627 pow(dSumWLinearThree6n4n2n,2.)>dSumWQuadraticThree6n4n2n &&
10628 pow(dSumWLinearFive6n3n4n3n2n,2.)>dSumWQuadraticFive6n3n4n3n2n)
10630 Double_t dError = pow(f3pCorrelations->GetBinContent(9),2.)
10631 * pow((pow(dSumWQuadraticTwo3n3n,0.5)/dSumWLinearTwo3n3n)
10632 * dSpreadTwo3n3n*pow(pow(dSumWLinearTwo3n3n,2.)/(pow(dSumWLinearTwo3n3n,2.)-dSumWQuadraticTwo3n3n),0.5),2.)
10633 + pow(f2pCorrelations->GetBinContent(3),2.)
10634 * pow((pow(dSumWQuadraticThree6n4n2n,0.5)/dSumWLinearThree6n4n2n)
10635 * dSpreadThree6n4n2n*pow(pow(dSumWLinearThree6n4n2n,2.)/(pow(dSumWLinearThree6n4n2n,2.)-dSumWQuadraticThree6n4n2n),0.5),2.)
10636 + pow((pow(dSumWQuadraticFive6n3n4n3n2n,0.5)/dSumWLinearFive6n3n4n3n2n)
10637 * dSpreadFive6n3n4n3n2n*pow(pow(dSumWLinearFive6n3n4n3n2n,2.)/(pow(dSumWLinearFive6n3n4n3n2n,2.)-dSumWQuadraticFive6n3n4n3n2n),0.5),2.)
10638 + 2.*f3pCorrelations->GetBinContent(9)*f2pCorrelations->GetBinContent(3)
10639 * fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,3))
10640 * (fMixedHarmonicProductOfCorrelations->GetBinContent(fMixedHarmonicProductOfCorrelations->GetBin(3,14))
10641 - f2pCorrelations->GetBinContent(3)*f3pCorrelations->GetBinContent(9))
10642 / (dSumWLinearTwo3n3n*dSumWLinearThree6n4n2n-fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,3)))
10643 - 2.*f3pCorrelations->GetBinContent(9)
10644 * fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,5))
10645 * (fMixedHarmonicProductOfCorrelations->GetBinContent(fMixedHarmonicProductOfCorrelations->GetBin(3,74))
10646 - f2pCorrelations->GetBinContent(3)*f5pCorrelations->GetBinContent(18))
10647 / (dSumWLinearTwo3n3n*dSumWLinearFive6n3n4n3n2n-fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,5)))
10648 - 2.*f2pCorrelations->GetBinContent(3)
10649 * fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(3,5))
10650 * (fMixedHarmonicProductOfCorrelations->GetBinContent(fMixedHarmonicProductOfCorrelations->GetBin(14,74))
10651 - f3pCorrelations->GetBinContent(9)*f5pCorrelations->GetBinContent(18))
10652 / (dSumWLinearThree6n4n2n*dSumWLinearFive6n3n4n3n2n-fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(3,5)));
10655 f5pCumulants->SetBinError(18,pow(dError,0.5));
10657 } // end of if(...)
10659 f5pCumulants->SetBinContent(19,f5pCorrelations->GetBinContent(19)-f3pCorrelations->GetBinContent(3)*f2pCorrelations->GetBinContent(4));
10661 Double_t dSumWLinearTwo4n4n = 0.; // sum of linear event weights for <2>
10662 Double_t dSumWQuadraticTwo4n4n = 0.; // sum of quadratic event weights <2>
10663 Double_t dSpreadTwo4n4n = 0.; // weighted and biased estimator for sigma of <2>
10664 Double_t dSumWLinearThree6n3n3n = 0.; // sum of linear event weights for <2>
10665 Double_t dSumWQuadraticThree6n3n3n = 0.; // sum of quadratic event weights <2>
10666 Double_t dSpreadThree6n3n3n = 0.; // weighted and biased estimator for sigma of <2>
10667 Double_t dSumWLinearFive6n4n4n3n3n = 0.; // sum of linear event weights for <4>
10668 Double_t dSumWQuadraticFive6n4n4n3n3n = 0.; // sum of quadratic event weights <4>
10669 Double_t dSpreadFive6n4n4n3n3n = 0.; // weighted and biased estimator for sigma of <4>
10670 dSumWLinearTwo4n4n = fMixedHarmonicEventWeights[0]->GetBinContent(2);
10671 dSumWQuadraticTwo4n4n = fMixedHarmonicEventWeights[1]->GetBinContent(2);
10672 dSpreadTwo4n4n = f2pCorrelations->GetBinError(4);
10673 dSumWLinearThree6n3n3n = fMixedHarmonicEventWeights[0]->GetBinContent(3);
10674 dSumWQuadraticThree6n3n3n = fMixedHarmonicEventWeights[1]->GetBinContent(3);
10675 dSpreadThree6n3n3n = f3pCorrelations->GetBinError(3);
10676 dSumWLinearFive6n4n4n3n3n = fMixedHarmonicEventWeights[0]->GetBinContent(5);
10677 dSumWQuadraticFive6n4n4n3n3n = fMixedHarmonicEventWeights[1]->GetBinContent(5);
10678 dSpreadFive6n4n4n3n3n = f5pCorrelations->GetBinError(19);
10679 if(pow(dSumWLinearTwo4n4n,2.)>dSumWQuadraticTwo4n4n &&
10680 pow(dSumWLinearThree6n3n3n,2.)>dSumWQuadraticThree6n3n3n &&
10681 pow(dSumWLinearFive6n4n4n3n3n,2.)>dSumWQuadraticFive6n4n4n3n3n)
10683 Double_t dError = pow(f3pCorrelations->GetBinContent(3),2.)
10684 * pow((pow(dSumWQuadraticTwo4n4n,0.5)/dSumWLinearTwo4n4n)
10685 * dSpreadTwo4n4n*pow(pow(dSumWLinearTwo4n4n,2.)/(pow(dSumWLinearTwo4n4n,2.)-dSumWQuadraticTwo4n4n),0.5),2.)
10686 + pow(f2pCorrelations->GetBinContent(4),2.)
10687 * pow((pow(dSumWQuadraticThree6n3n3n,0.5)/dSumWLinearThree6n3n3n)
10688 * dSpreadThree6n3n3n*pow(pow(dSumWLinearThree6n3n3n,2.)/(pow(dSumWLinearThree6n3n3n,2.)-dSumWQuadraticThree6n3n3n),0.5),2.)
10689 + pow((pow(dSumWQuadraticFive6n4n4n3n3n,0.5)/dSumWLinearFive6n4n4n3n3n)
10690 * dSpreadFive6n4n4n3n3n*pow(pow(dSumWLinearFive6n4n4n3n3n,2.)/(pow(dSumWLinearFive6n4n4n3n3n,2.)-dSumWQuadraticFive6n4n4n3n3n),0.5),2.)
10691 + 2.*f3pCorrelations->GetBinContent(3)*f2pCorrelations->GetBinContent(4)
10692 * fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,3))
10693 * (fMixedHarmonicProductOfCorrelations->GetBinContent(fMixedHarmonicProductOfCorrelations->GetBin(4,9))
10694 - f2pCorrelations->GetBinContent(4)*f3pCorrelations->GetBinContent(3))
10695 / (dSumWLinearTwo4n4n*dSumWLinearThree6n3n3n-fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,3)))
10696 - 2.*f3pCorrelations->GetBinContent(3)
10697 * fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,5))
10698 * (fMixedHarmonicProductOfCorrelations->GetBinContent(fMixedHarmonicProductOfCorrelations->GetBin(4,75))
10699 - f2pCorrelations->GetBinContent(4)*f5pCorrelations->GetBinContent(19))
10700 / (dSumWLinearTwo4n4n*dSumWLinearFive6n4n4n3n3n-fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,5)))
10701 - 2.*f2pCorrelations->GetBinContent(4)
10702 * fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(3,5))
10703 * (fMixedHarmonicProductOfCorrelations->GetBinContent(fMixedHarmonicProductOfCorrelations->GetBin(9,75))
10704 - f3pCorrelations->GetBinContent(3)*f5pCorrelations->GetBinContent(19))
10705 / (dSumWLinearThree6n3n3n*dSumWLinearFive6n4n4n3n3n-fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(3,5)));
10708 f5pCumulants->SetBinError(19,pow(dError,0.5));
10710 } // end of if(...)
10712 f5pCumulants->SetBinContent(20,f5pCorrelations->GetBinContent(20)-f3pCorrelations->GetBinContent(10)*f2pCorrelations->GetBinContent(2));
10714 Double_t dSumWLinearTwo2n2n = 0.; // sum of linear event weights for <2>
10715 Double_t dSumWQuadraticTwo2n2n = 0.; // sum of quadratic event weights <2>
10716 Double_t dSpreadTwo2n2n = 0.; // weighted and biased estimator for sigma of <2>
10717 Double_t dSumWLinearThree6n5n1n = 0.; // sum of linear event weights for <2>
10718 Double_t dSumWQuadraticThree6n5n1n = 0.; // sum of quadratic event weights <2>
10719 Double_t dSpreadThree6n5n1n = 0.; // weighted and biased estimator for sigma of <2>
10720 Double_t dSumWLinearFive6n2n5n2n1n = 0.; // sum of linear event weights for <4>
10721 Double_t dSumWQuadraticFive6n2n5n2n1n = 0.; // sum of quadratic event weights <4>
10722 Double_t dSpreadFive6n2n5n2n1n = 0.; // weighted and biased estimator for sigma of <4>
10723 dSumWLinearTwo2n2n = fMixedHarmonicEventWeights[0]->GetBinContent(2);
10724 dSumWQuadraticTwo2n2n = fMixedHarmonicEventWeights[1]->GetBinContent(2);
10725 dSpreadTwo2n2n = f2pCorrelations->GetBinError(2);
10726 dSumWLinearThree6n5n1n = fMixedHarmonicEventWeights[0]->GetBinContent(3);
10727 dSumWQuadraticThree6n5n1n = fMixedHarmonicEventWeights[1]->GetBinContent(3);
10728 dSpreadThree6n5n1n = f3pCorrelations->GetBinError(10);
10729 dSumWLinearFive6n2n5n2n1n = fMixedHarmonicEventWeights[0]->GetBinContent(5);
10730 dSumWQuadraticFive6n2n5n2n1n = fMixedHarmonicEventWeights[1]->GetBinContent(5);
10731 dSpreadFive6n2n5n2n1n = f5pCorrelations->GetBinError(20);
10732 if(pow(dSumWLinearTwo2n2n,2.)>dSumWQuadraticTwo2n2n &&
10733 pow(dSumWLinearThree6n5n1n,2.)>dSumWQuadraticThree6n5n1n &&
10734 pow(dSumWLinearFive6n2n5n2n1n,2.)>dSumWQuadraticFive6n2n5n2n1n)
10736 Double_t dError = pow(f3pCorrelations->GetBinContent(10),2.)
10737 * pow((pow(dSumWQuadraticTwo2n2n,0.5)/dSumWLinearTwo2n2n)
10738 * dSpreadTwo2n2n*pow(pow(dSumWLinearTwo2n2n,2.)/(pow(dSumWLinearTwo2n2n,2.)-dSumWQuadraticTwo2n2n),0.5),2.)
10739 + pow(f2pCorrelations->GetBinContent(2),2.)
10740 * pow((pow(dSumWQuadraticThree6n5n1n,0.5)/dSumWLinearThree6n5n1n)
10741 * dSpreadThree6n5n1n*pow(pow(dSumWLinearThree6n5n1n,2.)/(pow(dSumWLinearThree6n5n1n,2.)-dSumWQuadraticThree6n5n1n),0.5),2.)
10742 + pow((pow(dSumWQuadraticFive6n2n5n2n1n,0.5)/dSumWLinearFive6n2n5n2n1n)
10743 * dSpreadFive6n2n5n2n1n*pow(pow(dSumWLinearFive6n2n5n2n1n,2.)/(pow(dSumWLinearFive6n2n5n2n1n,2.)-dSumWQuadraticFive6n2n5n2n1n),0.5),2.)
10744 + 2.*f3pCorrelations->GetBinContent(10)*f2pCorrelations->GetBinContent(2)
10745 * fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,3))
10746 * (fMixedHarmonicProductOfCorrelations->GetBinContent(fMixedHarmonicProductOfCorrelations->GetBin(2,15))
10747 - f2pCorrelations->GetBinContent(2)*f3pCorrelations->GetBinContent(10))
10748 / (dSumWLinearTwo2n2n*dSumWLinearThree6n5n1n-fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,3)))
10749 - 2.*f3pCorrelations->GetBinContent(10)
10750 * fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,5))
10751 * (fMixedHarmonicProductOfCorrelations->GetBinContent(fMixedHarmonicProductOfCorrelations->GetBin(2,76))
10752 - f2pCorrelations->GetBinContent(2)*f5pCorrelations->GetBinContent(20))
10753 / (dSumWLinearTwo2n2n*dSumWLinearFive6n2n5n2n1n-fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,5)))
10754 - 2.*f2pCorrelations->GetBinContent(2)
10755 * fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(3,5))
10756 * (fMixedHarmonicProductOfCorrelations->GetBinContent(fMixedHarmonicProductOfCorrelations->GetBin(15,76))
10757 - f3pCorrelations->GetBinContent(10)*f5pCorrelations->GetBinContent(20))
10758 / (dSumWLinearThree6n5n1n*dSumWLinearFive6n2n5n2n1n-fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(3,5)));
10761 f5pCumulants->SetBinError(20,pow(dError,0.5));
10763 } // end of if(...)
10765 f5pCumulants->SetBinContent(21,f5pCorrelations->GetBinContent(21)-f3pCorrelations->GetBinContent(10)*f2pCorrelations->GetBinContent(3));
10767 Double_t dSumWLinearTwo3n3n = 0.; // sum of linear event weights for <2>
10768 Double_t dSumWQuadraticTwo3n3n = 0.; // sum of quadratic event weights <2>
10769 Double_t dSpreadTwo3n3n = 0.; // weighted and biased estimator for sigma of <2>
10770 Double_t dSumWLinearThree6n5n1n = 0.; // sum of linear event weights for <2>
10771 Double_t dSumWQuadraticThree6n5n1n = 0.; // sum of quadratic event weights <2>
10772 Double_t dSpreadThree6n5n1n = 0.; // weighted and biased estimator for sigma of <2>
10773 Double_t dSumWLinearFive6n3n5n3n1n = 0.; // sum of linear event weights for <4>
10774 Double_t dSumWQuadraticFive6n3n5n3n1n = 0.; // sum of quadratic event weights <4>
10775 Double_t dSpreadFive6n3n5n3n1n = 0.; // weighted and biased estimator for sigma of <4>
10776 dSumWLinearTwo3n3n = fMixedHarmonicEventWeights[0]->GetBinContent(2);
10777 dSumWQuadraticTwo3n3n = fMixedHarmonicEventWeights[1]->GetBinContent(2);
10778 dSpreadTwo3n3n = f2pCorrelations->GetBinError(3);
10779 dSumWLinearThree6n5n1n = fMixedHarmonicEventWeights[0]->GetBinContent(3);
10780 dSumWQuadraticThree6n5n1n = fMixedHarmonicEventWeights[1]->GetBinContent(3);
10781 dSpreadThree6n5n1n = f3pCorrelations->GetBinError(10);
10782 dSumWLinearFive6n3n5n3n1n = fMixedHarmonicEventWeights[0]->GetBinContent(5);
10783 dSumWQuadraticFive6n3n5n3n1n = fMixedHarmonicEventWeights[1]->GetBinContent(5);
10784 dSpreadFive6n3n5n3n1n = f5pCorrelations->GetBinError(21);
10785 if(pow(dSumWLinearTwo3n3n,2.)>dSumWQuadraticTwo3n3n &&
10786 pow(dSumWLinearThree6n5n1n,2.)>dSumWQuadraticThree6n5n1n &&
10787 pow(dSumWLinearFive6n3n5n3n1n,2.)>dSumWQuadraticFive6n3n5n3n1n)
10789 Double_t dError = pow(f3pCorrelations->GetBinContent(10),2.)
10790 * pow((pow(dSumWQuadraticTwo3n3n,0.5)/dSumWLinearTwo3n3n)
10791 * dSpreadTwo3n3n*pow(pow(dSumWLinearTwo3n3n,2.)/(pow(dSumWLinearTwo3n3n,2.)-dSumWQuadraticTwo3n3n),0.5),2.)
10792 + pow(f2pCorrelations->GetBinContent(3),2.)
10793 * pow((pow(dSumWQuadraticThree6n5n1n,0.5)/dSumWLinearThree6n5n1n)
10794 * dSpreadThree6n5n1n*pow(pow(dSumWLinearThree6n5n1n,2.)/(pow(dSumWLinearThree6n5n1n,2.)-dSumWQuadraticThree6n5n1n),0.5),2.)
10795 + pow((pow(dSumWQuadraticFive6n3n5n3n1n,0.5)/dSumWLinearFive6n3n5n3n1n)
10796 * dSpreadFive6n3n5n3n1n*pow(pow(dSumWLinearFive6n3n5n3n1n,2.)/(pow(dSumWLinearFive6n3n5n3n1n,2.)-dSumWQuadraticFive6n3n5n3n1n),0.5),2.)
10797 + 2.*f3pCorrelations->GetBinContent(10)*f2pCorrelations->GetBinContent(3)
10798 * fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,3))
10799 * (fMixedHarmonicProductOfCorrelations->GetBinContent(fMixedHarmonicProductOfCorrelations->GetBin(3,15))
10800 - f2pCorrelations->GetBinContent(3)*f3pCorrelations->GetBinContent(10))
10801 / (dSumWLinearTwo3n3n*dSumWLinearThree6n5n1n-fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,3)))
10802 - 2.*f3pCorrelations->GetBinContent(10)
10803 * fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,5))
10804 * (fMixedHarmonicProductOfCorrelations->GetBinContent(fMixedHarmonicProductOfCorrelations->GetBin(3,77))
10805 - f2pCorrelations->GetBinContent(3)*f5pCorrelations->GetBinContent(21))
10806 / (dSumWLinearTwo3n3n*dSumWLinearFive6n3n5n3n1n-fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,5)))
10807 - 2.*f2pCorrelations->GetBinContent(3)
10808 * fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(3,5))
10809 * (fMixedHarmonicProductOfCorrelations->GetBinContent(fMixedHarmonicProductOfCorrelations->GetBin(15,77))
10810 - f3pCorrelations->GetBinContent(10)*f5pCorrelations->GetBinContent(21))
10811 / (dSumWLinearThree6n5n1n*dSumWLinearFive6n3n5n3n1n-fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(3,5)));
10814 f5pCumulants->SetBinError(21,pow(dError,0.5));
10816 } // end of if(...)
10818 f5pCumulants->SetBinContent(22,f5pCorrelations->GetBinContent(22)-f3pCorrelations->GetBinContent(10)*f2pCorrelations->GetBinContent(4));
10820 Double_t dSumWLinearTwo4n4n = 0.; // sum of linear event weights for <2>
10821 Double_t dSumWQuadraticTwo4n4n = 0.; // sum of quadratic event weights <2>
10822 Double_t dSpreadTwo4n4n = 0.; // weighted and biased estimator for sigma of <2>
10823 Double_t dSumWLinearThree6n5n1n = 0.; // sum of linear event weights for <2>
10824 Double_t dSumWQuadraticThree6n5n1n = 0.; // sum of quadratic event weights <2>
10825 Double_t dSpreadThree6n5n1n = 0.; // weighted and biased estimator for sigma of <2>
10826 Double_t dSumWLinearFive6n3n5n3n1n = 0.; // sum of linear event weights for <4>
10827 Double_t dSumWQuadraticFive6n3n5n3n1n = 0.; // sum of quadratic event weights <4>
10828 Double_t dSpreadFive6n3n5n3n1n = 0.; // weighted and biased estimator for sigma of <4>
10829 dSumWLinearTwo4n4n = fMixedHarmonicEventWeights[0]->GetBinContent(2);
10830 dSumWQuadraticTwo4n4n = fMixedHarmonicEventWeights[1]->GetBinContent(2);
10831 dSpreadTwo4n4n = f2pCorrelations->GetBinError(4);
10832 dSumWLinearThree6n5n1n = fMixedHarmonicEventWeights[0]->GetBinContent(3);
10833 dSumWQuadraticThree6n5n1n = fMixedHarmonicEventWeights[1]->GetBinContent(3);
10834 dSpreadThree6n5n1n = f3pCorrelations->GetBinError(10);
10835 dSumWLinearFive6n3n5n3n1n = fMixedHarmonicEventWeights[0]->GetBinContent(5);
10836 dSumWQuadraticFive6n3n5n3n1n = fMixedHarmonicEventWeights[1]->GetBinContent(5);
10837 dSpreadFive6n3n5n3n1n = f5pCorrelations->GetBinError(22);
10838 if(pow(dSumWLinearTwo4n4n,2.)>dSumWQuadraticTwo4n4n &&
10839 pow(dSumWLinearThree6n5n1n,2.)>dSumWQuadraticThree6n5n1n &&
10840 pow(dSumWLinearFive6n3n5n3n1n,2.)>dSumWQuadraticFive6n3n5n3n1n)
10842 Double_t dError = pow(f3pCorrelations->GetBinContent(10),2.)
10843 * pow((pow(dSumWQuadraticTwo4n4n,0.5)/dSumWLinearTwo4n4n)
10844 * dSpreadTwo4n4n*pow(pow(dSumWLinearTwo4n4n,2.)/(pow(dSumWLinearTwo4n4n,2.)-dSumWQuadraticTwo4n4n),0.5),2.)
10845 + pow(f2pCorrelations->GetBinContent(4),2.)
10846 * pow((pow(dSumWQuadraticThree6n5n1n,0.5)/dSumWLinearThree6n5n1n)
10847 * dSpreadThree6n5n1n*pow(pow(dSumWLinearThree6n5n1n,2.)/(pow(dSumWLinearThree6n5n1n,2.)-dSumWQuadraticThree6n5n1n),0.5),2.)
10848 + pow((pow(dSumWQuadraticFive6n3n5n3n1n,0.5)/dSumWLinearFive6n3n5n3n1n)
10849 * dSpreadFive6n3n5n3n1n*pow(pow(dSumWLinearFive6n3n5n3n1n,2.)/(pow(dSumWLinearFive6n3n5n3n1n,2.)-dSumWQuadraticFive6n3n5n3n1n),0.5),2.)
10850 + 2.*f3pCorrelations->GetBinContent(10)*f2pCorrelations->GetBinContent(4)
10851 * fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,3))
10852 * (fMixedHarmonicProductOfCorrelations->GetBinContent(fMixedHarmonicProductOfCorrelations->GetBin(4,15))
10853 - f2pCorrelations->GetBinContent(4)*f3pCorrelations->GetBinContent(10))
10854 / (dSumWLinearTwo4n4n*dSumWLinearThree6n5n1n-fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,3)))
10855 - 2.*f3pCorrelations->GetBinContent(10)
10856 * fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,5))
10857 * (fMixedHarmonicProductOfCorrelations->GetBinContent(fMixedHarmonicProductOfCorrelations->GetBin(4,78))
10858 - f2pCorrelations->GetBinContent(4)*f5pCorrelations->GetBinContent(22))
10859 / (dSumWLinearTwo4n4n*dSumWLinearFive6n3n5n3n1n-fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,5)))
10860 - 2.*f2pCorrelations->GetBinContent(4)
10861 * fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(3,5))
10862 * (fMixedHarmonicProductOfCorrelations->GetBinContent(fMixedHarmonicProductOfCorrelations->GetBin(15,78))
10863 - f3pCorrelations->GetBinContent(10)*f5pCorrelations->GetBinContent(22))
10864 / (dSumWLinearThree6n5n1n*dSumWLinearFive6n3n5n3n1n-fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(3,5)));
10867 f5pCumulants->SetBinError(22,pow(dError,0.5));
10869 } // end of if(...)
10871 f5pCumulants->SetBinContent(23,f5pCorrelations->GetBinContent(23)-f3pCorrelations->GetBinContent(3)*f2pCorrelations->GetBinContent(5));
10873 Double_t dSumWLinearTwo5n5n = 0.; // sum of linear event weights for <2>
10874 Double_t dSumWQuadraticTwo5n5n = 0.; // sum of quadratic event weights <2>
10875 Double_t dSpreadTwo5n5n = 0.; // weighted and biased estimator for sigma of <2>
10876 Double_t dSumWLinearThree6n3n3n = 0.; // sum of linear event weights for <2>
10877 Double_t dSumWQuadraticThree6n3n3n = 0.; // sum of quadratic event weights <2>
10878 Double_t dSpreadThree6n3n3n = 0.; // weighted and biased estimator for sigma of <2>
10879 Double_t dSumWLinearFive6n5n5n3n3n = 0.; // sum of linear event weights for <4>
10880 Double_t dSumWQuadraticFive6n5n5n3n3n = 0.; // sum of quadratic event weights <4>
10881 Double_t dSpreadFive6n5n5n3n3n = 0.; // weighted and biased estimator for sigma of <4>
10882 dSumWLinearTwo5n5n = fMixedHarmonicEventWeights[0]->GetBinContent(2);
10883 dSumWQuadraticTwo5n5n = fMixedHarmonicEventWeights[1]->GetBinContent(2);
10884 dSpreadTwo5n5n = f2pCorrelations->GetBinError(5);
10885 dSumWLinearThree6n3n3n = fMixedHarmonicEventWeights[0]->GetBinContent(3);
10886 dSumWQuadraticThree6n3n3n = fMixedHarmonicEventWeights[1]->GetBinContent(3);
10887 dSpreadThree6n3n3n = f3pCorrelations->GetBinError(3);
10888 dSumWLinearFive6n5n5n3n3n = fMixedHarmonicEventWeights[0]->GetBinContent(5);
10889 dSumWQuadraticFive6n5n5n3n3n = fMixedHarmonicEventWeights[1]->GetBinContent(5);
10890 dSpreadFive6n5n5n3n3n = f5pCorrelations->GetBinError(23);
10891 if(pow(dSumWLinearTwo5n5n,2.)>dSumWQuadraticTwo5n5n &&
10892 pow(dSumWLinearThree6n3n3n,2.)>dSumWQuadraticThree6n3n3n &&
10893 pow(dSumWLinearFive6n5n5n3n3n,2.)>dSumWQuadraticFive6n5n5n3n3n)
10895 Double_t dError = pow(f3pCorrelations->GetBinContent(3),2.)
10896 * pow((pow(dSumWQuadraticTwo5n5n,0.5)/dSumWLinearTwo5n5n)
10897 * dSpreadTwo5n5n*pow(pow(dSumWLinearTwo5n5n,2.)/(pow(dSumWLinearTwo5n5n,2.)-dSumWQuadraticTwo5n5n),0.5),2.)
10898 + pow(f2pCorrelations->GetBinContent(5),2.)
10899 * pow((pow(dSumWQuadraticThree6n3n3n,0.5)/dSumWLinearThree6n3n3n)
10900 * dSpreadThree6n3n3n*pow(pow(dSumWLinearThree6n3n3n,2.)/(pow(dSumWLinearThree6n3n3n,2.)-dSumWQuadraticThree6n3n3n),0.5),2.)
10901 + pow((pow(dSumWQuadraticFive6n5n5n3n3n,0.5)/dSumWLinearFive6n5n5n3n3n)
10902 * dSpreadFive6n5n5n3n3n*pow(pow(dSumWLinearFive6n5n5n3n3n,2.)/(pow(dSumWLinearFive6n5n5n3n3n,2.)-dSumWQuadraticFive6n5n5n3n3n),0.5),2.)
10903 + 2.*f3pCorrelations->GetBinContent(3)*f2pCorrelations->GetBinContent(5)
10904 * fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,3))
10905 * (fMixedHarmonicProductOfCorrelations->GetBinContent(fMixedHarmonicProductOfCorrelations->GetBin(5,9))
10906 - f2pCorrelations->GetBinContent(5)*f3pCorrelations->GetBinContent(3))
10907 / (dSumWLinearTwo5n5n*dSumWLinearThree6n3n3n-fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,3)))
10908 - 2.*f3pCorrelations->GetBinContent(3)
10909 * fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,5))
10910 * (fMixedHarmonicProductOfCorrelations->GetBinContent(fMixedHarmonicProductOfCorrelations->GetBin(5,79))
10911 - f2pCorrelations->GetBinContent(5)*f5pCorrelations->GetBinContent(23))
10912 / (dSumWLinearTwo5n5n*dSumWLinearFive6n5n5n3n3n-fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,5)))
10913 - 2.*f2pCorrelations->GetBinContent(5)
10914 * fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(3,5))
10915 * (fMixedHarmonicProductOfCorrelations->GetBinContent(fMixedHarmonicProductOfCorrelations->GetBin(9,79))
10916 - f3pCorrelations->GetBinContent(3)*f5pCorrelations->GetBinContent(23))
10917 / (dSumWLinearThree6n3n3n*dSumWLinearFive6n5n5n3n3n-fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(3,5)));
10920 f5pCumulants->SetBinError(23,pow(dError,0.5));
10922 } // end of if(...)
10924 f5pCumulants->SetBinContent(24,f5pCorrelations->GetBinContent(24)-f3pCorrelations->GetBinContent(1)*f2pCorrelations->GetBinContent(6));
10926 Double_t dSumWLinearTwo6n6n = 0.; // sum of linear event weights for <2>
10927 Double_t dSumWQuadraticTwo6n6n = 0.; // sum of quadratic event weights <2>
10928 Double_t dSpreadTwo6n6n = 0.; // weighted and biased estimator for sigma of <2>
10929 Double_t dSumWLinearThree2n1n1n = 0.; // sum of linear event weights for <2>
10930 Double_t dSumWQuadraticThree2n1n1n = 0.; // sum of quadratic event weights <2>
10931 Double_t dSpreadThree2n1n1n = 0.; // weighted and biased estimator for sigma of <2>
10932 Double_t dSumWLinearFive6n2n6n1n1n = 0.; // sum of linear event weights for <4>
10933 Double_t dSumWQuadraticFive6n2n6n1n1n = 0.; // sum of quadratic event weights <4>
10934 Double_t dSpreadFive6n2n6n1n1n = 0.; // weighted and biased estimator for sigma of <4>
10935 dSumWLinearTwo6n6n = fMixedHarmonicEventWeights[0]->GetBinContent(2);
10936 dSumWQuadraticTwo6n6n = fMixedHarmonicEventWeights[1]->GetBinContent(2);
10937 dSpreadTwo6n6n = f2pCorrelations->GetBinError(6);
10938 dSumWLinearThree2n1n1n = fMixedHarmonicEventWeights[0]->GetBinContent(3);
10939 dSumWQuadraticThree2n1n1n = fMixedHarmonicEventWeights[1]->GetBinContent(3);
10940 dSpreadThree2n1n1n = f3pCorrelations->GetBinError(1);
10941 dSumWLinearFive6n2n6n1n1n = fMixedHarmonicEventWeights[0]->GetBinContent(5);
10942 dSumWQuadraticFive6n2n6n1n1n = fMixedHarmonicEventWeights[1]->GetBinContent(5);
10943 dSpreadFive6n2n6n1n1n = f5pCorrelations->GetBinError(24);
10944 if(pow(dSumWLinearTwo6n6n,2.)>dSumWQuadraticTwo6n6n &&
10945 pow(dSumWLinearThree2n1n1n,2.)>dSumWQuadraticThree2n1n1n &&
10946 pow(dSumWLinearFive6n2n6n1n1n,2.)>dSumWQuadraticFive6n2n6n1n1n)
10948 Double_t dError = pow(f3pCorrelations->GetBinContent(1),2.)
10949 * pow((pow(dSumWQuadraticTwo6n6n,0.5)/dSumWLinearTwo6n6n)
10950 * dSpreadTwo6n6n*pow(pow(dSumWLinearTwo6n6n,2.)/(pow(dSumWLinearTwo6n6n,2.)-dSumWQuadraticTwo6n6n),0.5),2.)
10951 + pow(f2pCorrelations->GetBinContent(6),2.)
10952 * pow((pow(dSumWQuadraticThree2n1n1n,0.5)/dSumWLinearThree2n1n1n)
10953 * dSpreadThree2n1n1n*pow(pow(dSumWLinearThree2n1n1n,2.)/(pow(dSumWLinearThree2n1n1n,2.)-dSumWQuadraticThree2n1n1n),0.5),2.)
10954 + pow((pow(dSumWQuadraticFive6n2n6n1n1n,0.5)/dSumWLinearFive6n2n6n1n1n)
10955 * dSpreadFive6n2n6n1n1n*pow(pow(dSumWLinearFive6n2n6n1n1n,2.)/(pow(dSumWLinearFive6n2n6n1n1n,2.)-dSumWQuadraticFive6n2n6n1n1n),0.5),2.)
10956 + 2.*f3pCorrelations->GetBinContent(1)*f2pCorrelations->GetBinContent(6)
10957 * fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,3))
10958 * (fMixedHarmonicProductOfCorrelations->GetBinContent(fMixedHarmonicProductOfCorrelations->GetBin(6,7))
10959 - f2pCorrelations->GetBinContent(6)*f3pCorrelations->GetBinContent(1))
10960 / (dSumWLinearTwo6n6n*dSumWLinearThree2n1n1n-fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,3)))
10961 - 2.*f3pCorrelations->GetBinContent(1)
10962 * fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,5))
10963 * (fMixedHarmonicProductOfCorrelations->GetBinContent(fMixedHarmonicProductOfCorrelations->GetBin(6,80))
10964 - f2pCorrelations->GetBinContent(6)*f5pCorrelations->GetBinContent(24))
10965 / (dSumWLinearTwo6n6n*dSumWLinearFive6n2n6n1n1n-fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,5)))
10966 - 2.*f2pCorrelations->GetBinContent(6)
10967 * fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(3,5))
10968 * (fMixedHarmonicProductOfCorrelations->GetBinContent(fMixedHarmonicProductOfCorrelations->GetBin(7,80))
10969 - f3pCorrelations->GetBinContent(1)*f5pCorrelations->GetBinContent(24))
10970 / (dSumWLinearThree2n1n1n*dSumWLinearFive6n2n6n1n1n-fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(3,5)));
10973 f5pCumulants->SetBinError(24,pow(dError,0.5));
10975 } // end of if(...)
10977 f5pCumulants->SetBinContent(25,f5pCorrelations->GetBinContent(25)-f3pCorrelations->GetBinContent(5)*f2pCorrelations->GetBinContent(6));
10979 Double_t dSumWLinearTwo6n6n = 0.; // sum of linear event weights for <2>
10980 Double_t dSumWQuadraticTwo6n6n = 0.; // sum of quadratic event weights <2>
10981 Double_t dSpreadTwo6n6n = 0.; // weighted and biased estimator for sigma of <2>
10982 Double_t dSumWLinearThree3n2n1n = 0.; // sum of linear event weights for <2>
10983 Double_t dSumWQuadraticThree3n2n1n = 0.; // sum of quadratic event weights <2>
10984 Double_t dSpreadThree3n2n1n = 0.; // weighted and biased estimator for sigma of <2>
10985 Double_t dSumWLinearFive6n3n6n2n1n = 0.; // sum of linear event weights for <4>
10986 Double_t dSumWQuadraticFive6n3n6n2n1n = 0.; // sum of quadratic event weights <4>
10987 Double_t dSpreadFive6n3n6n2n1n = 0.; // weighted and biased estimator for sigma of <4>
10988 dSumWLinearTwo6n6n = fMixedHarmonicEventWeights[0]->GetBinContent(2);
10989 dSumWQuadraticTwo6n6n = fMixedHarmonicEventWeights[1]->GetBinContent(2);
10990 dSpreadTwo6n6n = f2pCorrelations->GetBinError(6);
10991 dSumWLinearThree3n2n1n = fMixedHarmonicEventWeights[0]->GetBinContent(3);
10992 dSumWQuadraticThree3n2n1n = fMixedHarmonicEventWeights[1]->GetBinContent(3);
10993 dSpreadThree3n2n1n = f3pCorrelations->GetBinError(5);
10994 dSumWLinearFive6n3n6n2n1n = fMixedHarmonicEventWeights[0]->GetBinContent(5);
10995 dSumWQuadraticFive6n3n6n2n1n = fMixedHarmonicEventWeights[1]->GetBinContent(5);
10996 dSpreadFive6n3n6n2n1n = f5pCorrelations->GetBinError(25);
10997 if(pow(dSumWLinearTwo6n6n,2.)>dSumWQuadraticTwo6n6n &&
10998 pow(dSumWLinearThree3n2n1n,2.)>dSumWQuadraticThree3n2n1n &&
10999 pow(dSumWLinearFive6n3n6n2n1n,2.)>dSumWQuadraticFive6n3n6n2n1n)
11001 Double_t dError = pow(f3pCorrelations->GetBinContent(5),2.)
11002 * pow((pow(dSumWQuadraticTwo6n6n,0.5)/dSumWLinearTwo6n6n)
11003 * dSpreadTwo6n6n*pow(pow(dSumWLinearTwo6n6n,2.)/(pow(dSumWLinearTwo6n6n,2.)-dSumWQuadraticTwo6n6n),0.5),2.)
11004 + pow(f2pCorrelations->GetBinContent(6),2.)
11005 * pow((pow(dSumWQuadraticThree3n2n1n,0.5)/dSumWLinearThree3n2n1n)
11006 * dSpreadThree3n2n1n*pow(pow(dSumWLinearThree3n2n1n,2.)/(pow(dSumWLinearThree3n2n1n,2.)-dSumWQuadraticThree3n2n1n),0.5),2.)
11007 + pow((pow(dSumWQuadraticFive6n3n6n2n1n,0.5)/dSumWLinearFive6n3n6n2n1n)
11008 * dSpreadFive6n3n6n2n1n*pow(pow(dSumWLinearFive6n3n6n2n1n,2.)/(pow(dSumWLinearFive6n3n6n2n1n,2.)-dSumWQuadraticFive6n3n6n2n1n),0.5),2.)
11009 + 2.*f3pCorrelations->GetBinContent(5)*f2pCorrelations->GetBinContent(6)
11010 * fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,3))
11011 * (fMixedHarmonicProductOfCorrelations->GetBinContent(fMixedHarmonicProductOfCorrelations->GetBin(6,10))
11012 - f2pCorrelations->GetBinContent(6)*f3pCorrelations->GetBinContent(5))
11013 / (dSumWLinearTwo6n6n*dSumWLinearThree3n2n1n-fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,3)))
11014 - 2.*f3pCorrelations->GetBinContent(5)
11015 * fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,5))
11016 * (fMixedHarmonicProductOfCorrelations->GetBinContent(fMixedHarmonicProductOfCorrelations->GetBin(6,81))
11017 - f2pCorrelations->GetBinContent(6)*f5pCorrelations->GetBinContent(25))
11018 / (dSumWLinearTwo6n6n*dSumWLinearFive6n3n6n2n1n-fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,5)))
11019 - 2.*f2pCorrelations->GetBinContent(6)
11020 * fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(3,5))
11021 * (fMixedHarmonicProductOfCorrelations->GetBinContent(fMixedHarmonicProductOfCorrelations->GetBin(10,81))
11022 - f3pCorrelations->GetBinContent(5)*f5pCorrelations->GetBinContent(25))
11023 / (dSumWLinearThree3n2n1n*dSumWLinearFive6n3n6n2n1n-fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(3,5)));
11026 f5pCumulants->SetBinError(25,pow(dError,0.5));
11028 } // end of if(...)
11030 f5pCumulants->SetBinContent(26,f5pCorrelations->GetBinContent(26)-f3pCorrelations->GetBinContent(2)*f2pCorrelations->GetBinContent(6));
11032 Double_t dSumWLinearTwo6n6n = 0.; // sum of linear event weights for <2>
11033 Double_t dSumWQuadraticTwo6n6n = 0.; // sum of quadratic event weights <2>
11034 Double_t dSpreadTwo6n6n = 0.; // weighted and biased estimator for sigma of <2>
11035 Double_t dSumWLinearThree4n2n2n = 0.; // sum of linear event weights for <2>
11036 Double_t dSumWQuadraticThree4n2n2n = 0.; // sum of quadratic event weights <2>
11037 Double_t dSpreadThree4n2n2n = 0.; // weighted and biased estimator for sigma of <2>
11038 Double_t dSumWLinearFive6n4n6n2n2n = 0.; // sum of linear event weights for <4>
11039 Double_t dSumWQuadraticFive6n4n6n2n2n = 0.; // sum of quadratic event weights <4>
11040 Double_t dSpreadFive6n4n6n2n2n = 0.; // weighted and biased estimator for sigma of <4>
11041 dSumWLinearTwo6n6n = fMixedHarmonicEventWeights[0]->GetBinContent(2);
11042 dSumWQuadraticTwo6n6n = fMixedHarmonicEventWeights[1]->GetBinContent(2);
11043 dSpreadTwo6n6n = f2pCorrelations->GetBinError(6);
11044 dSumWLinearThree4n2n2n = fMixedHarmonicEventWeights[0]->GetBinContent(3);
11045 dSumWQuadraticThree4n2n2n = fMixedHarmonicEventWeights[1]->GetBinContent(3);
11046 dSpreadThree4n2n2n = f3pCorrelations->GetBinError(2);
11047 dSumWLinearFive6n4n6n2n2n = fMixedHarmonicEventWeights[0]->GetBinContent(5);
11048 dSumWQuadraticFive6n4n6n2n2n = fMixedHarmonicEventWeights[1]->GetBinContent(5);
11049 dSpreadFive6n4n6n2n2n = f5pCorrelations->GetBinError(26);
11050 if(pow(dSumWLinearTwo6n6n,2.)>dSumWQuadraticTwo6n6n &&
11051 pow(dSumWLinearThree4n2n2n,2.)>dSumWQuadraticThree4n2n2n &&
11052 pow(dSumWLinearFive6n4n6n2n2n,2.)>dSumWQuadraticFive6n4n6n2n2n)
11054 Double_t dError = pow(f3pCorrelations->GetBinContent(2),2.)
11055 * pow((pow(dSumWQuadraticTwo6n6n,0.5)/dSumWLinearTwo6n6n)
11056 * dSpreadTwo6n6n*pow(pow(dSumWLinearTwo6n6n,2.)/(pow(dSumWLinearTwo6n6n,2.)-dSumWQuadraticTwo6n6n),0.5),2.)
11057 + pow(f2pCorrelations->GetBinContent(6),2.)
11058 * pow((pow(dSumWQuadraticThree4n2n2n,0.5)/dSumWLinearThree4n2n2n)
11059 * dSpreadThree4n2n2n*pow(pow(dSumWLinearThree4n2n2n,2.)/(pow(dSumWLinearThree4n2n2n,2.)-dSumWQuadraticThree4n2n2n),0.5),2.)
11060 + pow((pow(dSumWQuadraticFive6n4n6n2n2n,0.5)/dSumWLinearFive6n4n6n2n2n)
11061 * dSpreadFive6n4n6n2n2n*pow(pow(dSumWLinearFive6n4n6n2n2n,2.)/(pow(dSumWLinearFive6n4n6n2n2n,2.)-dSumWQuadraticFive6n4n6n2n2n),0.5),2.)
11062 + 2.*f3pCorrelations->GetBinContent(2)*f2pCorrelations->GetBinContent(6)
11063 * fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,3))
11064 * (fMixedHarmonicProductOfCorrelations->GetBinContent(fMixedHarmonicProductOfCorrelations->GetBin(6,8))
11065 - f2pCorrelations->GetBinContent(6)*f3pCorrelations->GetBinContent(2))
11066 / (dSumWLinearTwo6n6n*dSumWLinearThree4n2n2n-fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,3)))
11067 - 2.*f3pCorrelations->GetBinContent(2)
11068 * fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,5))
11069 * (fMixedHarmonicProductOfCorrelations->GetBinContent(fMixedHarmonicProductOfCorrelations->GetBin(6,82))
11070 - f2pCorrelations->GetBinContent(6)*f5pCorrelations->GetBinContent(26))
11071 / (dSumWLinearTwo6n6n*dSumWLinearFive6n4n6n2n2n-fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,5)))
11072 - 2.*f2pCorrelations->GetBinContent(6)
11073 * fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(3,5))
11074 * (fMixedHarmonicProductOfCorrelations->GetBinContent(fMixedHarmonicProductOfCorrelations->GetBin(8,82))
11075 - f3pCorrelations->GetBinContent(2)*f5pCorrelations->GetBinContent(26))
11076 / (dSumWLinearThree4n2n2n*dSumWLinearFive6n4n6n2n2n-fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(3,5)));
11079 f5pCumulants->SetBinError(26,pow(dError,0.5));
11081 } // end of if(...)
11083 f5pCumulants->SetBinContent(27,f5pCorrelations->GetBinContent(27)-f3pCorrelations->GetBinContent(6)*f2pCorrelations->GetBinContent(6));
11085 Double_t dSumWLinearTwo6n6n = 0.; // sum of linear event weights for <2>
11086 Double_t dSumWQuadraticTwo6n6n = 0.; // sum of quadratic event weights <2>
11087 Double_t dSpreadTwo6n6n = 0.; // weighted and biased estimator for sigma of <2>
11088 Double_t dSumWLinearThree4n3n1n = 0.; // sum of linear event weights for <2>
11089 Double_t dSumWQuadraticThree4n3n1n = 0.; // sum of quadratic event weights <2>
11090 Double_t dSpreadThree4n3n1n = 0.; // weighted and biased estimator for sigma of <2>
11091 Double_t dSumWLinearFive6n4n6n3n1n = 0.; // sum of linear event weights for <4>
11092 Double_t dSumWQuadraticFive6n4n6n3n1n = 0.; // sum of quadratic event weights <4>
11093 Double_t dSpreadFive6n4n6n3n1n = 0.; // weighted and biased estimator for sigma of <4>
11094 dSumWLinearTwo6n6n = fMixedHarmonicEventWeights[0]->GetBinContent(2);
11095 dSumWQuadraticTwo6n6n = fMixedHarmonicEventWeights[1]->GetBinContent(2);
11096 dSpreadTwo6n6n = f2pCorrelations->GetBinError(6);
11097 dSumWLinearThree4n3n1n = fMixedHarmonicEventWeights[0]->GetBinContent(3);
11098 dSumWQuadraticThree4n3n1n = fMixedHarmonicEventWeights[1]->GetBinContent(3);
11099 dSpreadThree4n3n1n = f3pCorrelations->GetBinError(6);
11100 dSumWLinearFive6n4n6n3n1n = fMixedHarmonicEventWeights[0]->GetBinContent(5);
11101 dSumWQuadraticFive6n4n6n3n1n = fMixedHarmonicEventWeights[1]->GetBinContent(5);
11102 dSpreadFive6n4n6n3n1n = f5pCorrelations->GetBinError(27);
11103 if(pow(dSumWLinearTwo6n6n,2.)>dSumWQuadraticTwo6n6n &&
11104 pow(dSumWLinearThree4n3n1n,2.)>dSumWQuadraticThree4n3n1n &&
11105 pow(dSumWLinearFive6n4n6n3n1n,2.)>dSumWQuadraticFive6n4n6n3n1n)
11107 Double_t dError = pow(f3pCorrelations->GetBinContent(6),2.)
11108 * pow((pow(dSumWQuadraticTwo6n6n,0.5)/dSumWLinearTwo6n6n)
11109 * dSpreadTwo6n6n*pow(pow(dSumWLinearTwo6n6n,2.)/(pow(dSumWLinearTwo6n6n,2.)-dSumWQuadraticTwo6n6n),0.5),2.)
11110 + pow(f2pCorrelations->GetBinContent(6),2.)
11111 * pow((pow(dSumWQuadraticThree4n3n1n,0.5)/dSumWLinearThree4n3n1n)
11112 * dSpreadThree4n3n1n*pow(pow(dSumWLinearThree4n3n1n,2.)/(pow(dSumWLinearThree4n3n1n,2.)-dSumWQuadraticThree4n3n1n),0.5),2.)
11113 + pow((pow(dSumWQuadraticFive6n4n6n3n1n,0.5)/dSumWLinearFive6n4n6n3n1n)
11114 * dSpreadFive6n4n6n3n1n*pow(pow(dSumWLinearFive6n4n6n3n1n,2.)/(pow(dSumWLinearFive6n4n6n3n1n,2.)-dSumWQuadraticFive6n4n6n3n1n),0.5),2.)
11115 + 2.*f3pCorrelations->GetBinContent(6)*f2pCorrelations->GetBinContent(6)
11116 * fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,3))
11117 * (fMixedHarmonicProductOfCorrelations->GetBinContent(fMixedHarmonicProductOfCorrelations->GetBin(6,11))
11118 - f2pCorrelations->GetBinContent(6)*f3pCorrelations->GetBinContent(6))
11119 / (dSumWLinearTwo6n6n*dSumWLinearThree4n3n1n-fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,3)))
11120 - 2.*f3pCorrelations->GetBinContent(6)
11121 * fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,5))
11122 * (fMixedHarmonicProductOfCorrelations->GetBinContent(fMixedHarmonicProductOfCorrelations->GetBin(6,83))
11123 - f2pCorrelations->GetBinContent(6)*f5pCorrelations->GetBinContent(27))
11124 / (dSumWLinearTwo6n6n*dSumWLinearFive6n4n6n3n1n-fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,5)))
11125 - 2.*f2pCorrelations->GetBinContent(6)
11126 * fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(3,5))
11127 * (fMixedHarmonicProductOfCorrelations->GetBinContent(fMixedHarmonicProductOfCorrelations->GetBin(11,83))
11128 - f3pCorrelations->GetBinContent(6)*f5pCorrelations->GetBinContent(27))
11129 / (dSumWLinearThree4n3n1n*dSumWLinearFive6n4n6n3n1n-fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(3,5)));
11132 f5pCumulants->SetBinError(27,pow(dError,0.5));
11134 } // end of if(...)
11136 f5pCumulants->SetBinContent(28,f5pCorrelations->GetBinContent(28)-f3pCorrelations->GetBinContent(9)*f2pCorrelations->GetBinContent(5));
11138 Double_t dSumWLinearTwo5n5n = 0.; // sum of linear event weights for <2>
11139 Double_t dSumWQuadraticTwo5n5n = 0.; // sum of quadratic event weights <2>
11140 Double_t dSpreadTwo5n5n = 0.; // weighted and biased estimator for sigma of <2>
11141 Double_t dSumWLinearThree6n4n2n = 0.; // sum of linear event weights for <2>
11142 Double_t dSumWQuadraticThree6n4n2n = 0.; // sum of quadratic event weights <2>
11143 Double_t dSpreadThree6n4n2n = 0.; // weighted and biased estimator for sigma of <2>
11144 Double_t dSumWLinearFive6n4n6n3n1n = 0.; // sum of linear event weights for <4>
11145 Double_t dSumWQuadraticFive6n4n6n3n1n = 0.; // sum of quadratic event weights <4>
11146 Double_t dSpreadFive6n4n6n3n1n = 0.; // weighted and biased estimator for sigma of <4>
11147 dSumWLinearTwo5n5n = fMixedHarmonicEventWeights[0]->GetBinContent(2);
11148 dSumWQuadraticTwo5n5n = fMixedHarmonicEventWeights[1]->GetBinContent(2);
11149 dSpreadTwo5n5n = f2pCorrelations->GetBinError(5);
11150 dSumWLinearThree6n4n2n = fMixedHarmonicEventWeights[0]->GetBinContent(3);
11151 dSumWQuadraticThree6n4n2n = fMixedHarmonicEventWeights[1]->GetBinContent(3);
11152 dSpreadThree6n4n2n = f3pCorrelations->GetBinError(9);
11153 dSumWLinearFive6n4n6n3n1n = fMixedHarmonicEventWeights[0]->GetBinContent(5);
11154 dSumWQuadraticFive6n4n6n3n1n = fMixedHarmonicEventWeights[1]->GetBinContent(5);
11155 dSpreadFive6n4n6n3n1n = f5pCorrelations->GetBinError(28);
11156 if(pow(dSumWLinearTwo5n5n,2.)>dSumWQuadraticTwo5n5n &&
11157 pow(dSumWLinearThree6n4n2n,2.)>dSumWQuadraticThree6n4n2n &&
11158 pow(dSumWLinearFive6n4n6n3n1n,2.)>dSumWQuadraticFive6n4n6n3n1n)
11160 Double_t dError = pow(f3pCorrelations->GetBinContent(9),2.)
11161 * pow((pow(dSumWQuadraticTwo5n5n,0.5)/dSumWLinearTwo5n5n)
11162 * dSpreadTwo5n5n*pow(pow(dSumWLinearTwo5n5n,2.)/(pow(dSumWLinearTwo5n5n,2.)-dSumWQuadraticTwo5n5n),0.5),2.)
11163 + pow(f2pCorrelations->GetBinContent(5),2.)
11164 * pow((pow(dSumWQuadraticThree6n4n2n,0.5)/dSumWLinearThree6n4n2n)
11165 * dSpreadThree6n4n2n*pow(pow(dSumWLinearThree6n4n2n,2.)/(pow(dSumWLinearThree6n4n2n,2.)-dSumWQuadraticThree6n4n2n),0.5),2.)
11166 + pow((pow(dSumWQuadraticFive6n4n6n3n1n,0.5)/dSumWLinearFive6n4n6n3n1n)
11167 * dSpreadFive6n4n6n3n1n*pow(pow(dSumWLinearFive6n4n6n3n1n,2.)/(pow(dSumWLinearFive6n4n6n3n1n,2.)-dSumWQuadraticFive6n4n6n3n1n),0.5),2.)
11168 + 2.*f3pCorrelations->GetBinContent(9)*f2pCorrelations->GetBinContent(5)
11169 * fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,3))
11170 * (fMixedHarmonicProductOfCorrelations->GetBinContent(fMixedHarmonicProductOfCorrelations->GetBin(5,14))
11171 - f2pCorrelations->GetBinContent(5)*f3pCorrelations->GetBinContent(9))
11172 / (dSumWLinearTwo5n5n*dSumWLinearThree6n4n2n-fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,3)))
11173 - 2.*f3pCorrelations->GetBinContent(9)
11174 * fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,5))
11175 * (fMixedHarmonicProductOfCorrelations->GetBinContent(fMixedHarmonicProductOfCorrelations->GetBin(5,84))
11176 - f2pCorrelations->GetBinContent(5)*f5pCorrelations->GetBinContent(28))
11177 / (dSumWLinearTwo5n5n*dSumWLinearFive6n4n6n3n1n-fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,5)))
11178 - 2.*f2pCorrelations->GetBinContent(5)
11179 * fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(3,5))
11180 * (fMixedHarmonicProductOfCorrelations->GetBinContent(fMixedHarmonicProductOfCorrelations->GetBin(14,84))
11181 - f3pCorrelations->GetBinContent(9)*f5pCorrelations->GetBinContent(28))
11182 / (dSumWLinearThree6n4n2n*dSumWLinearFive6n4n6n3n1n-fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(3,5)));
11185 f5pCumulants->SetBinError(28,pow(dError,0.5));
11187 } // end of if(...)
11189 f5pCumulants->SetBinContent(29,f5pCorrelations->GetBinContent(29)-f3pCorrelations->GetBinContent(7)*f2pCorrelations->GetBinContent(6));
11191 Double_t dSumWLinearTwo6n6n = 0.; // sum of linear event weights for <2>
11192 Double_t dSumWQuadraticTwo6n6n = 0.; // sum of quadratic event weights <2>
11193 Double_t dSpreadTwo6n6n = 0.; // weighted and biased estimator for sigma of <2>
11194 Double_t dSumWLinearThree5n3n2n = 0.; // sum of linear event weights for <2>
11195 Double_t dSumWQuadraticThree5n3n2n = 0.; // sum of quadratic event weights <2>
11196 Double_t dSpreadThree5n3n2n = 0.; // weighted and biased estimator for sigma of <2>
11197 Double_t dSumWLinearFive6n5n6n3n2n = 0.; // sum of linear event weights for <4>
11198 Double_t dSumWQuadraticFive6n5n6n3n2n = 0.; // sum of quadratic event weights <4>
11199 Double_t dSpreadFive6n5n6n3n2n = 0.; // weighted and biased estimator for sigma of <4>
11200 dSumWLinearTwo6n6n = fMixedHarmonicEventWeights[0]->GetBinContent(2);
11201 dSumWQuadraticTwo6n6n = fMixedHarmonicEventWeights[1]->GetBinContent(2);
11202 dSpreadTwo6n6n = f2pCorrelations->GetBinError(6);
11203 dSumWLinearThree5n3n2n = fMixedHarmonicEventWeights[0]->GetBinContent(3);
11204 dSumWQuadraticThree5n3n2n = fMixedHarmonicEventWeights[1]->GetBinContent(3);
11205 dSpreadThree5n3n2n = f3pCorrelations->GetBinError(7);
11206 dSumWLinearFive6n5n6n3n2n = fMixedHarmonicEventWeights[0]->GetBinContent(5);
11207 dSumWQuadraticFive6n5n6n3n2n = fMixedHarmonicEventWeights[1]->GetBinContent(5);
11208 dSpreadFive6n5n6n3n2n = f5pCorrelations->GetBinError(29);
11209 if(pow(dSumWLinearTwo6n6n,2.)>dSumWQuadraticTwo6n6n &&
11210 pow(dSumWLinearThree5n3n2n,2.)>dSumWQuadraticThree5n3n2n &&
11211 pow(dSumWLinearFive6n5n6n3n2n,2.)>dSumWQuadraticFive6n5n6n3n2n)
11213 Double_t dError = pow(f3pCorrelations->GetBinContent(7),2.)
11214 * pow((pow(dSumWQuadraticTwo6n6n,0.5)/dSumWLinearTwo6n6n)
11215 * dSpreadTwo6n6n*pow(pow(dSumWLinearTwo6n6n,2.)/(pow(dSumWLinearTwo6n6n,2.)-dSumWQuadraticTwo6n6n),0.5),2.)
11216 + pow(f2pCorrelations->GetBinContent(6),2.)
11217 * pow((pow(dSumWQuadraticThree5n3n2n,0.5)/dSumWLinearThree5n3n2n)
11218 * dSpreadThree5n3n2n*pow(pow(dSumWLinearThree5n3n2n,2.)/(pow(dSumWLinearThree5n3n2n,2.)-dSumWQuadraticThree5n3n2n),0.5),2.)
11219 + pow((pow(dSumWQuadraticFive6n5n6n3n2n,0.5)/dSumWLinearFive6n5n6n3n2n)
11220 * dSpreadFive6n5n6n3n2n*pow(pow(dSumWLinearFive6n5n6n3n2n,2.)/(pow(dSumWLinearFive6n5n6n3n2n,2.)-dSumWQuadraticFive6n5n6n3n2n),0.5),2.)
11221 + 2.*f3pCorrelations->GetBinContent(7)*f2pCorrelations->GetBinContent(6)
11222 * fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,3))
11223 * (fMixedHarmonicProductOfCorrelations->GetBinContent(fMixedHarmonicProductOfCorrelations->GetBin(6,12))
11224 - f2pCorrelations->GetBinContent(6)*f3pCorrelations->GetBinContent(7))
11225 / (dSumWLinearTwo6n6n*dSumWLinearThree5n3n2n-fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,3)))
11226 - 2.*f3pCorrelations->GetBinContent(7)
11227 * fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,5))
11228 * (fMixedHarmonicProductOfCorrelations->GetBinContent(fMixedHarmonicProductOfCorrelations->GetBin(6,85))
11229 - f2pCorrelations->GetBinContent(6)*f5pCorrelations->GetBinContent(29))
11230 / (dSumWLinearTwo6n6n*dSumWLinearFive6n5n6n3n2n-fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,5)))
11231 - 2.*f2pCorrelations->GetBinContent(6)
11232 * fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(3,5))
11233 * (fMixedHarmonicProductOfCorrelations->GetBinContent(fMixedHarmonicProductOfCorrelations->GetBin(12,85))
11234 - f3pCorrelations->GetBinContent(7)*f5pCorrelations->GetBinContent(29))
11235 / (dSumWLinearThree5n3n2n*dSumWLinearFive6n5n6n3n2n-fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(3,5)));
11238 f5pCumulants->SetBinError(29,pow(dError,0.5));
11240 } // end of if(...)
11242 f5pCumulants->SetBinContent(30,f5pCorrelations->GetBinContent(30)-f3pCorrelations->GetBinContent(8)*f2pCorrelations->GetBinContent(6));
11244 Double_t dSumWLinearTwo6n6n = 0.; // sum of linear event weights for <2>
11245 Double_t dSumWQuadraticTwo6n6n = 0.; // sum of quadratic event weights <2>
11246 Double_t dSpreadTwo6n6n = 0.; // weighted and biased estimator for sigma of <2>
11247 Double_t dSumWLinearThree5n4n1n = 0.; // sum of linear event weights for <2>
11248 Double_t dSumWQuadraticThree5n4n1n = 0.; // sum of quadratic event weights <2>
11249 Double_t dSpreadThree5n4n1n = 0.; // weighted and biased estimator for sigma of <2>
11250 Double_t dSumWLinearFive6n5n6n4n1n = 0.; // sum of linear event weights for <4>
11251 Double_t dSumWQuadraticFive6n5n6n4n1n = 0.; // sum of quadratic event weights <4>
11252 Double_t dSpreadFive6n5n6n4n1n = 0.; // weighted and biased estimator for sigma of <4>
11253 dSumWLinearTwo6n6n = fMixedHarmonicEventWeights[0]->GetBinContent(2);
11254 dSumWQuadraticTwo6n6n = fMixedHarmonicEventWeights[1]->GetBinContent(2);
11255 dSpreadTwo6n6n = f2pCorrelations->GetBinError(6);
11256 dSumWLinearThree5n4n1n = fMixedHarmonicEventWeights[0]->GetBinContent(3);
11257 dSumWQuadraticThree5n4n1n = fMixedHarmonicEventWeights[1]->GetBinContent(3);
11258 dSpreadThree5n4n1n = f3pCorrelations->GetBinError(8);
11259 dSumWLinearFive6n5n6n4n1n = fMixedHarmonicEventWeights[0]->GetBinContent(5);
11260 dSumWQuadraticFive6n5n6n4n1n = fMixedHarmonicEventWeights[1]->GetBinContent(5);
11261 dSpreadFive6n5n6n4n1n = f5pCorrelations->GetBinError(30);
11262 if(pow(dSumWLinearTwo6n6n,2.)>dSumWQuadraticTwo6n6n &&
11263 pow(dSumWLinearThree5n4n1n,2.)>dSumWQuadraticThree5n4n1n &&
11264 pow(dSumWLinearFive6n5n6n4n1n,2.)>dSumWQuadraticFive6n5n6n4n1n)
11266 Double_t dError = pow(f3pCorrelations->GetBinContent(8),2.)
11267 * pow((pow(dSumWQuadraticTwo6n6n,0.5)/dSumWLinearTwo6n6n)
11268 * dSpreadTwo6n6n*pow(pow(dSumWLinearTwo6n6n,2.)/(pow(dSumWLinearTwo6n6n,2.)-dSumWQuadraticTwo6n6n),0.5),2.)
11269 + pow(f2pCorrelations->GetBinContent(6),2.)
11270 * pow((pow(dSumWQuadraticThree5n4n1n,0.5)/dSumWLinearThree5n4n1n)
11271 * dSpreadThree5n4n1n*pow(pow(dSumWLinearThree5n4n1n,2.)/(pow(dSumWLinearThree5n4n1n,2.)-dSumWQuadraticThree5n4n1n),0.5),2.)
11272 + pow((pow(dSumWQuadraticFive6n5n6n4n1n,0.5)/dSumWLinearFive6n5n6n4n1n)
11273 * dSpreadFive6n5n6n4n1n*pow(pow(dSumWLinearFive6n5n6n4n1n,2.)/(pow(dSumWLinearFive6n5n6n4n1n,2.)-dSumWQuadraticFive6n5n6n4n1n),0.5),2.)
11274 + 2.*f3pCorrelations->GetBinContent(8)*f2pCorrelations->GetBinContent(6)
11275 * fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,3))
11276 * (fMixedHarmonicProductOfCorrelations->GetBinContent(fMixedHarmonicProductOfCorrelations->GetBin(6,13))
11277 - f2pCorrelations->GetBinContent(6)*f3pCorrelations->GetBinContent(8))
11278 / (dSumWLinearTwo6n6n*dSumWLinearThree5n4n1n-fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,3)))
11279 - 2.*f3pCorrelations->GetBinContent(8)
11280 * fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,5))
11281 * (fMixedHarmonicProductOfCorrelations->GetBinContent(fMixedHarmonicProductOfCorrelations->GetBin(6,86))
11282 - f2pCorrelations->GetBinContent(6)*f5pCorrelations->GetBinContent(30))
11283 / (dSumWLinearTwo6n6n*dSumWLinearFive6n5n6n4n1n-fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,5)))
11284 - 2.*f2pCorrelations->GetBinContent(6)
11285 * fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(3,5))
11286 * (fMixedHarmonicProductOfCorrelations->GetBinContent(fMixedHarmonicProductOfCorrelations->GetBin(13,86))
11287 - f3pCorrelations->GetBinContent(8)*f5pCorrelations->GetBinContent(30))
11288 / (dSumWLinearThree5n4n1n*dSumWLinearFive6n5n6n4n1n-fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(3,5)));
11291 f5pCumulants->SetBinError(30,pow(dError,0.5));
11293 } // end of if(...)
11295 // d2) "Two distinct harmonics":
11296 f5pCumulants->SetBinContent(32,f5pCorrelations->GetBinContent(32)-3.*f3pCorrelations->GetBinContent(1)*f2pCorrelations->GetBinContent(1));
11298 Double_t dSumWLinearTwo1n1n = 0.; // sum of linear event weights for <2>
11299 Double_t dSumWQuadraticTwo1n1n = 0.; // sum of quadratic event weights <2>
11300 Double_t dSpreadTwo1n1n = 0.; // weighted and biased estimator for sigma of <2>
11301 Double_t dSumWLinearThree2n1n1n = 0.; // sum of linear event weights for <2>
11302 Double_t dSumWQuadraticThree2n1n1n = 0.; // sum of quadratic event weights <2>
11303 Double_t dSpreadThree2n1n1n = 0.; // weighted and biased estimator for sigma of <2>
11304 Double_t dSumWLinearFive2n1n1n1n1n = 0.; // sum of linear event weights for <4>
11305 Double_t dSumWQuadraticFive2n1n1n1n1n = 0.; // sum of quadratic event weights <4>
11306 Double_t dSpreadFive2n1n1n1n1n = 0.; // weighted and biased estimator for sigma of <4>
11307 dSumWLinearTwo1n1n = fMixedHarmonicEventWeights[0]->GetBinContent(2);
11308 dSumWQuadraticTwo1n1n = fMixedHarmonicEventWeights[1]->GetBinContent(2);
11309 dSpreadTwo1n1n = f2pCorrelations->GetBinError(1);
11310 dSumWLinearThree2n1n1n = fMixedHarmonicEventWeights[0]->GetBinContent(3);
11311 dSumWQuadraticThree2n1n1n = fMixedHarmonicEventWeights[1]->GetBinContent(3);
11312 dSpreadThree2n1n1n = f3pCorrelations->GetBinError(1);
11313 dSumWLinearFive2n1n1n1n1n = fMixedHarmonicEventWeights[0]->GetBinContent(5);
11314 dSumWQuadraticFive2n1n1n1n1n = fMixedHarmonicEventWeights[1]->GetBinContent(5);
11315 dSpreadFive2n1n1n1n1n = f5pCorrelations->GetBinError(32);
11316 if(pow(dSumWLinearTwo1n1n,2.)>dSumWQuadraticTwo1n1n &&
11317 pow(dSumWLinearThree2n1n1n,2.)>dSumWQuadraticThree2n1n1n &&
11318 pow(dSumWLinearFive2n1n1n1n1n,2.)>dSumWQuadraticFive2n1n1n1n1n)
11320 Double_t dError = 9.*pow(f3pCorrelations->GetBinContent(1),2.)
11321 * pow((pow(dSumWQuadraticTwo1n1n,0.5)/dSumWLinearTwo1n1n)
11322 * dSpreadTwo1n1n*pow(pow(dSumWLinearTwo1n1n,2.)/(pow(dSumWLinearTwo1n1n,2.)-dSumWQuadraticTwo1n1n),0.5),2.)
11323 + 9.*pow(f2pCorrelations->GetBinContent(1),2.)
11324 * pow((pow(dSumWQuadraticThree2n1n1n,0.5)/dSumWLinearThree2n1n1n)
11325 * dSpreadThree2n1n1n*pow(pow(dSumWLinearThree2n1n1n,2.)/(pow(dSumWLinearThree2n1n1n,2.)-dSumWQuadraticThree2n1n1n),0.5),2.)
11326 + pow((pow(dSumWQuadraticFive2n1n1n1n1n,0.5)/dSumWLinearFive2n1n1n1n1n)
11327 * dSpreadFive2n1n1n1n1n*pow(pow(dSumWLinearFive2n1n1n1n1n,2.)/(pow(dSumWLinearFive2n1n1n1n1n,2.)-dSumWQuadraticFive2n1n1n1n1n),0.5),2.)
11328 + 9.*2.*f3pCorrelations->GetBinContent(1)*f2pCorrelations->GetBinContent(1)
11329 * fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,3))
11330 * (fMixedHarmonicProductOfCorrelations->GetBinContent(fMixedHarmonicProductOfCorrelations->GetBin(1,7))
11331 - f2pCorrelations->GetBinContent(1)*f3pCorrelations->GetBinContent(1))
11332 / (dSumWLinearTwo1n1n*dSumWLinearThree2n1n1n-fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,3)))
11333 - 3.*2.*f3pCorrelations->GetBinContent(1)
11334 * fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,5))
11335 * (fMixedHarmonicProductOfCorrelations->GetBinContent(fMixedHarmonicProductOfCorrelations->GetBin(1,87))
11336 - f2pCorrelations->GetBinContent(1)*f5pCorrelations->GetBinContent(32))
11337 / (dSumWLinearTwo1n1n*dSumWLinearFive2n1n1n1n1n-fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,5)))
11338 - 3.*2.*f2pCorrelations->GetBinContent(1)
11339 * fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(3,5))
11340 * (fMixedHarmonicProductOfCorrelations->GetBinContent(fMixedHarmonicProductOfCorrelations->GetBin(7,87))
11341 - f3pCorrelations->GetBinContent(1)*f5pCorrelations->GetBinContent(32))
11342 / (dSumWLinearThree2n1n1n*dSumWLinearFive2n1n1n1n1n-fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(3,5)));
11345 f5pCumulants->SetBinError(32,pow(dError,0.5));
11347 } // end of if(...)
11349 f5pCumulants->SetBinContent(33,f5pCorrelations->GetBinContent(33)-2.*f3pCorrelations->GetBinContent(1)*f2pCorrelations->GetBinContent(2));
11351 Double_t dSumWLinearTwo2n2n = 0.; // sum of linear event weights for <2>
11352 Double_t dSumWQuadraticTwo2n2n = 0.; // sum of quadratic event weights <2>
11353 Double_t dSpreadTwo2n2n = 0.; // weighted and biased estimator for sigma of <2>
11354 Double_t dSumWLinearThree2n1n1n = 0.; // sum of linear event weights for <2>
11355 Double_t dSumWQuadraticThree2n1n1n = 0.; // sum of quadratic event weights <2>
11356 Double_t dSpreadThree2n1n1n = 0.; // weighted and biased estimator for sigma of <2>
11357 Double_t dSumWLinearFive2n2n2n1n1n = 0.; // sum of linear event weights for <4>
11358 Double_t dSumWQuadraticFive2n2n2n1n1n = 0.; // sum of quadratic event weights <4>
11359 Double_t dSpreadFive2n2n2n1n1n = 0.; // weighted and biased estimator for sigma of <4>
11360 dSumWLinearTwo2n2n = fMixedHarmonicEventWeights[0]->GetBinContent(2);
11361 dSumWQuadraticTwo2n2n = fMixedHarmonicEventWeights[1]->GetBinContent(2);
11362 dSpreadTwo2n2n = f2pCorrelations->GetBinError(2);
11363 dSumWLinearThree2n1n1n = fMixedHarmonicEventWeights[0]->GetBinContent(3);
11364 dSumWQuadraticThree2n1n1n = fMixedHarmonicEventWeights[1]->GetBinContent(3);
11365 dSpreadThree2n1n1n = f3pCorrelations->GetBinError(1);
11366 dSumWLinearFive2n2n2n1n1n = fMixedHarmonicEventWeights[0]->GetBinContent(5);
11367 dSumWQuadraticFive2n2n2n1n1n = fMixedHarmonicEventWeights[1]->GetBinContent(5);
11368 dSpreadFive2n2n2n1n1n = f5pCorrelations->GetBinError(33);
11369 if(pow(dSumWLinearTwo2n2n,2.)>dSumWQuadraticTwo2n2n &&
11370 pow(dSumWLinearThree2n1n1n,2.)>dSumWQuadraticThree2n1n1n &&
11371 pow(dSumWLinearFive2n2n2n1n1n,2.)>dSumWQuadraticFive2n2n2n1n1n)
11373 Double_t dError = 4.*pow(f3pCorrelations->GetBinContent(1),2.)
11374 * pow((pow(dSumWQuadraticTwo2n2n,0.5)/dSumWLinearTwo2n2n)
11375 * dSpreadTwo2n2n*pow(pow(dSumWLinearTwo2n2n,2.)/(pow(dSumWLinearTwo2n2n,2.)-dSumWQuadraticTwo2n2n),0.5),2.)
11376 + 4.*pow(f2pCorrelations->GetBinContent(2),2.)
11377 * pow((pow(dSumWQuadraticThree2n1n1n,0.5)/dSumWLinearThree2n1n1n)
11378 * dSpreadThree2n1n1n*pow(pow(dSumWLinearThree2n1n1n,2.)/(pow(dSumWLinearThree2n1n1n,2.)-dSumWQuadraticThree2n1n1n),0.5),2.)
11379 + pow((pow(dSumWQuadraticFive2n2n2n1n1n,0.5)/dSumWLinearFive2n2n2n1n1n)
11380 * dSpreadFive2n2n2n1n1n*pow(pow(dSumWLinearFive2n2n2n1n1n,2.)/(pow(dSumWLinearFive2n2n2n1n1n,2.)-dSumWQuadraticFive2n2n2n1n1n),0.5),2.)
11381 + 4.*2.*f3pCorrelations->GetBinContent(1)*f2pCorrelations->GetBinContent(2)
11382 * fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,3))
11383 * (fMixedHarmonicProductOfCorrelations->GetBinContent(fMixedHarmonicProductOfCorrelations->GetBin(2,7))
11384 - f2pCorrelations->GetBinContent(2)*f3pCorrelations->GetBinContent(1))
11385 / (dSumWLinearTwo2n2n*dSumWLinearThree2n1n1n-fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,3)))
11386 - 2.*2.*f3pCorrelations->GetBinContent(1)
11387 * fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,5))
11388 * (fMixedHarmonicProductOfCorrelations->GetBinContent(fMixedHarmonicProductOfCorrelations->GetBin(2,88))
11389 - f2pCorrelations->GetBinContent(2)*f5pCorrelations->GetBinContent(33))
11390 / (dSumWLinearTwo2n2n*dSumWLinearFive2n2n2n1n1n-fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,5)))
11391 - 2.*2.*f2pCorrelations->GetBinContent(2)
11392 * fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(3,5))
11393 * (fMixedHarmonicProductOfCorrelations->GetBinContent(fMixedHarmonicProductOfCorrelations->GetBin(7,88))
11394 - f3pCorrelations->GetBinContent(1)*f5pCorrelations->GetBinContent(33))
11395 / (dSumWLinearThree2n1n1n*dSumWLinearFive2n2n2n1n1n-fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(3,5)));
11398 f5pCumulants->SetBinError(33,pow(dError,0.5));
11400 } // end of if(...)
11402 f5pCumulants->SetBinContent(34,f5pCorrelations->GetBinContent(34));
11404 Double_t dSumWLinear = 0.; // sum of linear event weights
11405 Double_t dSumWQuadratic = 0.; // sum of quadratic event weights
11406 Double_t dSpread = 0.; // weighted and biased estimator for sigma
11407 Double_t dError = 0.; // weighted and unbiased estimator for sigma
11408 dSumWLinear = fMixedHarmonicEventWeights[0]->GetBinContent(5);
11409 dSumWQuadratic = fMixedHarmonicEventWeights[1]->GetBinContent(5);
11410 dSpread = f5pCorrelations->GetBinError(34);
11411 if(pow(dSumWLinear,2.)>dSumWQuadratic)
11413 dError = (pow(dSumWQuadratic,0.5)/dSumWLinear)*dSpread*pow(pow(dSumWLinear,2.)/(pow(dSumWLinear,2.)-dSumWQuadratic),0.5);
11414 f5pCumulants->SetBinError(34,dError);
11415 } // end of if(pow(dSumWLinear,2.)>dSumWQuadratic)
11417 f5pCumulants->SetBinContent(35,f5pCorrelations->GetBinContent(35));
11419 Double_t dSumWLinear = 0.; // sum of linear event weights
11420 Double_t dSumWQuadratic = 0.; // sum of quadratic event weights
11421 Double_t dSpread = 0.; // weighted and biased estimator for sigma
11422 Double_t dError = 0.; // weighted and unbiased estimator for sigma
11423 dSumWLinear = fMixedHarmonicEventWeights[0]->GetBinContent(5);
11424 dSumWQuadratic = fMixedHarmonicEventWeights[1]->GetBinContent(5);
11425 dSpread = f5pCorrelations->GetBinError(35);
11426 if(pow(dSumWLinear,2.)>dSumWQuadratic)
11428 dError = (pow(dSumWQuadratic,0.5)/dSumWLinear)*dSpread*pow(pow(dSumWLinear,2.)/(pow(dSumWLinear,2.)-dSumWQuadratic),0.5);
11429 f5pCumulants->SetBinError(35,dError);
11430 } // end of if(pow(dSumWLinear,2.)>dSumWQuadratic)
11432 f5pCumulants->SetBinContent(36,f5pCorrelations->GetBinContent(36)-3.*f3pCorrelations->GetBinContent(2)*f2pCorrelations->GetBinContent(2));
11434 Double_t dSumWLinearTwo2n2n = 0.; // sum of linear event weights for <2>
11435 Double_t dSumWQuadraticTwo2n2n = 0.; // sum of quadratic event weights <2>
11436 Double_t dSpreadTwo2n2n = 0.; // weighted and biased estimator for sigma of <2>
11437 Double_t dSumWLinearThree4n2n2n = 0.; // sum of linear event weights for <2>
11438 Double_t dSumWQuadraticThree4n2n2n = 0.; // sum of quadratic event weights <2>
11439 Double_t dSpreadThree4n2n2n = 0.; // weighted and biased estimator for sigma of <2>
11440 Double_t dSumWLinearFive4n2n2n2n2n = 0.; // sum of linear event weights for <4>
11441 Double_t dSumWQuadraticFive4n2n2n2n2n = 0.; // sum of quadratic event weights <4>
11442 Double_t dSpreadFive4n2n2n2n2n = 0.; // weighted and biased estimator for sigma of <4>
11443 dSumWLinearTwo2n2n = fMixedHarmonicEventWeights[0]->GetBinContent(2);
11444 dSumWQuadraticTwo2n2n = fMixedHarmonicEventWeights[1]->GetBinContent(2);
11445 dSpreadTwo2n2n = f2pCorrelations->GetBinError(2);
11446 dSumWLinearThree4n2n2n = fMixedHarmonicEventWeights[0]->GetBinContent(3);
11447 dSumWQuadraticThree4n2n2n = fMixedHarmonicEventWeights[1]->GetBinContent(3);
11448 dSpreadThree4n2n2n = f3pCorrelations->GetBinError(2);
11449 dSumWLinearFive4n2n2n2n2n = fMixedHarmonicEventWeights[0]->GetBinContent(5);
11450 dSumWQuadraticFive4n2n2n2n2n = fMixedHarmonicEventWeights[1]->GetBinContent(5);
11451 dSpreadFive4n2n2n2n2n = f5pCorrelations->GetBinError(36);
11452 if(pow(dSumWLinearTwo2n2n,2.)>dSumWQuadraticTwo2n2n &&
11453 pow(dSumWLinearThree4n2n2n,2.)>dSumWQuadraticThree4n2n2n &&
11454 pow(dSumWLinearFive4n2n2n2n2n,2.)>dSumWQuadraticFive4n2n2n2n2n)
11456 Double_t dError = 9.*pow(f3pCorrelations->GetBinContent(2),2.)
11457 * pow((pow(dSumWQuadraticTwo2n2n,0.5)/dSumWLinearTwo2n2n)
11458 * dSpreadTwo2n2n*pow(pow(dSumWLinearTwo2n2n,2.)/(pow(dSumWLinearTwo2n2n,2.)-dSumWQuadraticTwo2n2n),0.5),2.)
11459 + 9.*pow(f2pCorrelations->GetBinContent(2),2.)
11460 * pow((pow(dSumWQuadraticThree4n2n2n,0.5)/dSumWLinearThree4n2n2n)
11461 * dSpreadThree4n2n2n*pow(pow(dSumWLinearThree4n2n2n,2.)/(pow(dSumWLinearThree4n2n2n,2.)-dSumWQuadraticThree4n2n2n),0.5),2.)
11462 + pow((pow(dSumWQuadraticFive4n2n2n2n2n,0.5)/dSumWLinearFive4n2n2n2n2n)
11463 * dSpreadFive4n2n2n2n2n*pow(pow(dSumWLinearFive4n2n2n2n2n,2.)/(pow(dSumWLinearFive4n2n2n2n2n,2.)-dSumWQuadraticFive4n2n2n2n2n),0.5),2.)
11464 + 9.*2.*f3pCorrelations->GetBinContent(2)*f2pCorrelations->GetBinContent(2)
11465 * fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,3))
11466 * (fMixedHarmonicProductOfCorrelations->GetBinContent(fMixedHarmonicProductOfCorrelations->GetBin(2,8))
11467 - f2pCorrelations->GetBinContent(2)*f3pCorrelations->GetBinContent(2))
11468 / (dSumWLinearTwo2n2n*dSumWLinearThree4n2n2n-fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,3)))
11469 - 3.*2.*f3pCorrelations->GetBinContent(2)
11470 * fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,5))
11471 * (fMixedHarmonicProductOfCorrelations->GetBinContent(fMixedHarmonicProductOfCorrelations->GetBin(2,91))
11472 - f2pCorrelations->GetBinContent(2)*f5pCorrelations->GetBinContent(36))
11473 / (dSumWLinearTwo2n2n*dSumWLinearFive4n2n2n2n2n-fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,5)))
11474 - 3.*2.*f2pCorrelations->GetBinContent(2)
11475 * fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(3,5))
11476 * (fMixedHarmonicProductOfCorrelations->GetBinContent(fMixedHarmonicProductOfCorrelations->GetBin(8,91))
11477 - f3pCorrelations->GetBinContent(2)*f5pCorrelations->GetBinContent(36))
11478 / (dSumWLinearThree4n2n2n*dSumWLinearFive4n2n2n2n2n-fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(3,5)));
11481 f5pCumulants->SetBinError(36,pow(dError,0.5));
11483 } // end of if(...)
11485 f5pCumulants->SetBinContent(37,f5pCorrelations->GetBinContent(37)-2.*f3pCorrelations->GetBinContent(2)*f2pCorrelations->GetBinContent(4));
11487 Double_t dSumWLinearTwo4n4n = 0.; // sum of linear event weights for <2>
11488 Double_t dSumWQuadraticTwo4n4n = 0.; // sum of quadratic event weights <2>
11489 Double_t dSpreadTwo4n4n = 0.; // weighted and biased estimator for sigma of <2>
11490 Double_t dSumWLinearThree4n2n2n = 0.; // sum of linear event weights for <2>
11491 Double_t dSumWQuadraticThree4n2n2n = 0.; // sum of quadratic event weights <2>
11492 Double_t dSpreadThree4n2n2n = 0.; // weighted and biased estimator for sigma of <2>
11493 Double_t dSumWLinearFive4n4n4n2n2n = 0.; // sum of linear event weights for <4>
11494 Double_t dSumWQuadraticFive4n4n4n2n2n = 0.; // sum of quadratic event weights <4>
11495 Double_t dSpreadFive4n4n4n2n2n = 0.; // weighted and biased estimator for sigma of <4>
11496 dSumWLinearTwo4n4n = fMixedHarmonicEventWeights[0]->GetBinContent(2);
11497 dSumWQuadraticTwo4n4n = fMixedHarmonicEventWeights[1]->GetBinContent(2);
11498 dSpreadTwo4n4n = f2pCorrelations->GetBinError(4);
11499 dSumWLinearThree4n2n2n = fMixedHarmonicEventWeights[0]->GetBinContent(3);
11500 dSumWQuadraticThree4n2n2n = fMixedHarmonicEventWeights[1]->GetBinContent(3);
11501 dSpreadThree4n2n2n = f3pCorrelations->GetBinError(2);
11502 dSumWLinearFive4n4n4n2n2n = fMixedHarmonicEventWeights[0]->GetBinContent(5);
11503 dSumWQuadraticFive4n4n4n2n2n = fMixedHarmonicEventWeights[1]->GetBinContent(5);
11504 dSpreadFive4n4n4n2n2n = f5pCorrelations->GetBinError(37);
11505 if(pow(dSumWLinearTwo4n4n,2.)>dSumWQuadraticTwo4n4n &&
11506 pow(dSumWLinearThree4n2n2n,2.)>dSumWQuadraticThree4n2n2n &&
11507 pow(dSumWLinearFive4n4n4n2n2n,2.)>dSumWQuadraticFive4n4n4n2n2n)
11509 Double_t dError = 4.*pow(f3pCorrelations->GetBinContent(2),2.)
11510 * pow((pow(dSumWQuadraticTwo4n4n,0.5)/dSumWLinearTwo4n4n)
11511 * dSpreadTwo4n4n*pow(pow(dSumWLinearTwo4n4n,2.)/(pow(dSumWLinearTwo4n4n,2.)-dSumWQuadraticTwo4n4n),0.5),2.)
11512 + 4.*pow(f2pCorrelations->GetBinContent(4),2.)
11513 * pow((pow(dSumWQuadraticThree4n2n2n,0.5)/dSumWLinearThree4n2n2n)
11514 * dSpreadThree4n2n2n*pow(pow(dSumWLinearThree4n2n2n,2.)/(pow(dSumWLinearThree4n2n2n,2.)-dSumWQuadraticThree4n2n2n),0.5),2.)
11515 + pow((pow(dSumWQuadraticFive4n4n4n2n2n,0.5)/dSumWLinearFive4n4n4n2n2n)
11516 * dSpreadFive4n4n4n2n2n*pow(pow(dSumWLinearFive4n4n4n2n2n,2.)/(pow(dSumWLinearFive4n4n4n2n2n,2.)-dSumWQuadraticFive4n4n4n2n2n),0.5),2.)
11517 + 4.*2.*f3pCorrelations->GetBinContent(2)*f2pCorrelations->GetBinContent(4)
11518 * fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,3))
11519 * (fMixedHarmonicProductOfCorrelations->GetBinContent(fMixedHarmonicProductOfCorrelations->GetBin(4,8))
11520 - f2pCorrelations->GetBinContent(4)*f3pCorrelations->GetBinContent(2))
11521 / (dSumWLinearTwo4n4n*dSumWLinearThree4n2n2n-fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,3)))
11522 - 2.*2.*f3pCorrelations->GetBinContent(2)
11523 * fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,5))
11524 * (fMixedHarmonicProductOfCorrelations->GetBinContent(fMixedHarmonicProductOfCorrelations->GetBin(4,92))
11525 - f2pCorrelations->GetBinContent(4)*f5pCorrelations->GetBinContent(37))
11526 / (dSumWLinearTwo4n4n*dSumWLinearFive4n4n4n2n2n-fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,5)))
11527 - 2.*2.*f2pCorrelations->GetBinContent(4)
11528 * fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(3,5))
11529 * (fMixedHarmonicProductOfCorrelations->GetBinContent(fMixedHarmonicProductOfCorrelations->GetBin(8,92))
11530 - f3pCorrelations->GetBinContent(2)*f5pCorrelations->GetBinContent(37))
11531 / (dSumWLinearThree4n2n2n*dSumWLinearFive4n4n4n2n2n-fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(3,5)));
11534 f5pCumulants->SetBinError(37,pow(dError,0.5));
11536 } // end of if(...)
11538 f5pCumulants->SetBinContent(38,f5pCorrelations->GetBinContent(38)-3.*f3pCorrelations->GetBinContent(3)*f2pCorrelations->GetBinContent(3));
11540 Double_t dSumWLinearTwo3n3n = 0.; // sum of linear event weights for <2>
11541 Double_t dSumWQuadraticTwo3n3n = 0.; // sum of quadratic event weights <2>
11542 Double_t dSpreadTwo3n3n = 0.; // weighted and biased estimator for sigma of <2>
11543 Double_t dSumWLinearThree6n3n3n = 0.; // sum of linear event weights for <2>
11544 Double_t dSumWQuadraticThree6n3n3n = 0.; // sum of quadratic event weights <2>
11545 Double_t dSpreadThree6n3n3n = 0.; // weighted and biased estimator for sigma of <2>
11546 Double_t dSumWLinearFive6n3n3n3n3n = 0.; // sum of linear event weights for <4>
11547 Double_t dSumWQuadraticFive6n3n3n3n3n = 0.; // sum of quadratic event weights <4>
11548 Double_t dSpreadFive6n3n3n3n3n = 0.; // weighted and biased estimator for sigma of <4>
11549 dSumWLinearTwo3n3n = fMixedHarmonicEventWeights[0]->GetBinContent(2);
11550 dSumWQuadraticTwo3n3n = fMixedHarmonicEventWeights[1]->GetBinContent(2);
11551 dSpreadTwo3n3n = f2pCorrelations->GetBinError(3);
11552 dSumWLinearThree6n3n3n = fMixedHarmonicEventWeights[0]->GetBinContent(3);
11553 dSumWQuadraticThree6n3n3n = fMixedHarmonicEventWeights[1]->GetBinContent(3);
11554 dSpreadThree6n3n3n = f3pCorrelations->GetBinError(3);
11555 dSumWLinearFive6n3n3n3n3n = fMixedHarmonicEventWeights[0]->GetBinContent(5);
11556 dSumWQuadraticFive6n3n3n3n3n = fMixedHarmonicEventWeights[1]->GetBinContent(5);
11557 dSpreadFive6n3n3n3n3n = f5pCorrelations->GetBinError(38);
11558 if(pow(dSumWLinearTwo3n3n,2.)>dSumWQuadraticTwo3n3n &&
11559 pow(dSumWLinearThree6n3n3n,2.)>dSumWQuadraticThree6n3n3n &&
11560 pow(dSumWLinearFive6n3n3n3n3n,2.)>dSumWQuadraticFive6n3n3n3n3n)
11562 Double_t dError = 9.*pow(f3pCorrelations->GetBinContent(3),2.)
11563 * pow((pow(dSumWQuadraticTwo3n3n,0.5)/dSumWLinearTwo3n3n)
11564 * dSpreadTwo3n3n*pow(pow(dSumWLinearTwo3n3n,2.)/(pow(dSumWLinearTwo3n3n,2.)-dSumWQuadraticTwo3n3n),0.5),2.)
11565 + 9.*pow(f2pCorrelations->GetBinContent(3),2.)
11566 * pow((pow(dSumWQuadraticThree6n3n3n,0.5)/dSumWLinearThree6n3n3n)
11567 * dSpreadThree6n3n3n*pow(pow(dSumWLinearThree6n3n3n,2.)/(pow(dSumWLinearThree6n3n3n,2.)-dSumWQuadraticThree6n3n3n),0.5),2.)
11568 + pow((pow(dSumWQuadraticFive6n3n3n3n3n,0.5)/dSumWLinearFive6n3n3n3n3n)
11569 * dSpreadFive6n3n3n3n3n*pow(pow(dSumWLinearFive6n3n3n3n3n,2.)/(pow(dSumWLinearFive6n3n3n3n3n,2.)-dSumWQuadraticFive6n3n3n3n3n),0.5),2.)
11570 + 9.*2.*f3pCorrelations->GetBinContent(3)*f2pCorrelations->GetBinContent(3)
11571 * fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,3))
11572 * (fMixedHarmonicProductOfCorrelations->GetBinContent(fMixedHarmonicProductOfCorrelations->GetBin(3,9))
11573 - f2pCorrelations->GetBinContent(3)*f3pCorrelations->GetBinContent(3))
11574 / (dSumWLinearTwo3n3n*dSumWLinearThree6n3n3n-fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,3)))
11575 - 3.*2.*f3pCorrelations->GetBinContent(3)
11576 * fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,5))
11577 * (fMixedHarmonicProductOfCorrelations->GetBinContent(fMixedHarmonicProductOfCorrelations->GetBin(3,93))
11578 - f2pCorrelations->GetBinContent(3)*f5pCorrelations->GetBinContent(38))
11579 / (dSumWLinearTwo3n3n*dSumWLinearFive6n3n3n3n3n-fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,5)))
11580 - 3.*2.*f2pCorrelations->GetBinContent(3)
11581 * fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(3,5))
11582 * (fMixedHarmonicProductOfCorrelations->GetBinContent(fMixedHarmonicProductOfCorrelations->GetBin(9,93))
11583 - f3pCorrelations->GetBinContent(3)*f5pCorrelations->GetBinContent(38))
11584 / (dSumWLinearThree6n3n3n*dSumWLinearFive6n3n3n3n3n-fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(3,5)));
11587 f5pCumulants->SetBinError(38,pow(dError,0.5));
11589 } // end of if(...)
11591 f5pCumulants->SetBinContent(39,f5pCorrelations->GetBinContent(39));
11593 Double_t dSumWLinear = 0.; // sum of linear event weights
11594 Double_t dSumWQuadratic = 0.; // sum of quadratic event weights
11595 Double_t dSpread = 0.; // weighted and biased estimator for sigma
11596 Double_t dError = 0.; // weighted and unbiased estimator for sigma
11597 dSumWLinear = fMixedHarmonicEventWeights[0]->GetBinContent(5);
11598 dSumWQuadratic = fMixedHarmonicEventWeights[1]->GetBinContent(5);
11599 dSpread = f5pCorrelations->GetBinError(39);
11600 if(pow(dSumWLinear,2.)>dSumWQuadratic)
11602 dError = (pow(dSumWQuadratic,0.5)/dSumWLinear)*dSpread*pow(pow(dSumWLinear,2.)/(pow(dSumWLinear,2.)-dSumWQuadratic),0.5);
11603 f5pCumulants->SetBinError(39,dError);
11604 } // end of if(pow(dSumWLinear,2.)>dSumWQuadratic)
11606 f5pCumulants->SetBinContent(40,f5pCorrelations->GetBinContent(40)-2.*f3pCorrelations->GetBinContent(3)*f2pCorrelations->GetBinContent(6));
11608 Double_t dSumWLinearTwo6n6n = 0.; // sum of linear event weights for <2>
11609 Double_t dSumWQuadraticTwo6n6n = 0.; // sum of quadratic event weights <2>
11610 Double_t dSpreadTwo6n6n = 0.; // weighted and biased estimator for sigma of <2>
11611 Double_t dSumWLinearThree6n3n3n = 0.; // sum of linear event weights for <2>
11612 Double_t dSumWQuadraticThree6n3n3n = 0.; // sum of quadratic event weights <2>
11613 Double_t dSpreadThree6n3n3n = 0.; // weighted and biased estimator for sigma of <2>
11614 Double_t dSumWLinearFive6n6n6n3n3n = 0.; // sum of linear event weights for <4>
11615 Double_t dSumWQuadraticFive6n6n6n3n3n = 0.; // sum of quadratic event weights <4>
11616 Double_t dSpreadFive6n6n6n3n3n = 0.; // weighted and biased estimator for sigma of <4>
11617 dSumWLinearTwo6n6n = fMixedHarmonicEventWeights[0]->GetBinContent(2);
11618 dSumWQuadraticTwo6n6n = fMixedHarmonicEventWeights[1]->GetBinContent(2);
11619 dSpreadTwo6n6n = f2pCorrelations->GetBinError(6);
11620 dSumWLinearThree6n3n3n = fMixedHarmonicEventWeights[0]->GetBinContent(3);
11621 dSumWQuadraticThree6n3n3n = fMixedHarmonicEventWeights[1]->GetBinContent(3);
11622 dSpreadThree6n3n3n = f3pCorrelations->GetBinError(3);
11623 dSumWLinearFive6n6n6n3n3n = fMixedHarmonicEventWeights[0]->GetBinContent(5);
11624 dSumWQuadraticFive6n6n6n3n3n = fMixedHarmonicEventWeights[1]->GetBinContent(5);
11625 dSpreadFive6n6n6n3n3n = f5pCorrelations->GetBinError(40);
11626 if(pow(dSumWLinearTwo6n6n,2.)>dSumWQuadraticTwo6n6n &&
11627 pow(dSumWLinearThree6n3n3n,2.)>dSumWQuadraticThree6n3n3n &&
11628 pow(dSumWLinearFive6n6n6n3n3n,2.)>dSumWQuadraticFive6n6n6n3n3n)
11630 Double_t dError = 4.*pow(f3pCorrelations->GetBinContent(3),2.)
11631 * pow((pow(dSumWQuadraticTwo6n6n,0.5)/dSumWLinearTwo6n6n)
11632 * dSpreadTwo6n6n*pow(pow(dSumWLinearTwo6n6n,2.)/(pow(dSumWLinearTwo6n6n,2.)-dSumWQuadraticTwo6n6n),0.5),2.)
11633 + 4.*pow(f2pCorrelations->GetBinContent(6),2.)
11634 * pow((pow(dSumWQuadraticThree6n3n3n,0.5)/dSumWLinearThree6n3n3n)
11635 * dSpreadThree6n3n3n*pow(pow(dSumWLinearThree6n3n3n,2.)/(pow(dSumWLinearThree6n3n3n,2.)-dSumWQuadraticThree6n3n3n),0.5),2.)
11636 + pow((pow(dSumWQuadraticFive6n6n6n3n3n,0.5)/dSumWLinearFive6n6n6n3n3n)
11637 * dSpreadFive6n6n6n3n3n*pow(pow(dSumWLinearFive6n6n6n3n3n,2.)/(pow(dSumWLinearFive6n6n6n3n3n,2.)-dSumWQuadraticFive6n6n6n3n3n),0.5),2.)
11638 + 4.*2.*f3pCorrelations->GetBinContent(3)*f2pCorrelations->GetBinContent(6)
11639 * fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,3))
11640 * (fMixedHarmonicProductOfCorrelations->GetBinContent(fMixedHarmonicProductOfCorrelations->GetBin(6,9))
11641 - f2pCorrelations->GetBinContent(6)*f3pCorrelations->GetBinContent(3))
11642 / (dSumWLinearTwo6n6n*dSumWLinearThree6n3n3n-fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,3)))
11643 - 2.*2.*f3pCorrelations->GetBinContent(3)
11644 * fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,5))
11645 * (fMixedHarmonicProductOfCorrelations->GetBinContent(fMixedHarmonicProductOfCorrelations->GetBin(6,95))
11646 - f2pCorrelations->GetBinContent(6)*f5pCorrelations->GetBinContent(40))
11647 / (dSumWLinearTwo6n6n*dSumWLinearFive6n6n6n3n3n-fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,5)))
11648 - 2.*2.*f2pCorrelations->GetBinContent(6)
11649 * fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(3,5))
11650 * (fMixedHarmonicProductOfCorrelations->GetBinContent(fMixedHarmonicProductOfCorrelations->GetBin(9,95))
11651 - f3pCorrelations->GetBinContent(3)*f5pCorrelations->GetBinContent(40))
11652 / (dSumWLinearThree6n3n3n*dSumWLinearFive6n6n6n3n3n-fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(3,5)));
11655 f5pCumulants->SetBinError(40,pow(dError,0.5));
11657 } // end of if(...)
11660 // d2) "Three distinct harmonics":
11661 f5pCumulants->SetBinContent(42,f5pCorrelations->GetBinContent(42)-2.*f3pCorrelations->GetBinContent(5)*f2pCorrelations->GetBinContent(1));
11663 Double_t dSumWLinearTwo1n1n = 0.; // sum of linear event weights for <2>
11664 Double_t dSumWQuadraticTwo1n1n = 0.; // sum of quadratic event weights <2>
11665 Double_t dSpreadTwo1n1n = 0.; // weighted and biased estimator for sigma of <2>
11666 Double_t dSumWLinearThree3n2n1n = 0.; // sum of linear event weights for <2>
11667 Double_t dSumWQuadraticThree3n2n1n = 0.; // sum of quadratic event weights <2>
11668 Double_t dSpreadThree3n2n1n = 0.; // weighted and biased estimator for sigma of <2>
11669 Double_t dSumWLinearFive3n1n2n1n1n = 0.; // sum of linear event weights for <4>
11670 Double_t dSumWQuadraticFive3n1n2n1n1n = 0.; // sum of quadratic event weights <4>
11671 Double_t dSpreadFive3n1n2n1n1n = 0.; // weighted and biased estimator for sigma of <4>
11672 dSumWLinearTwo1n1n = fMixedHarmonicEventWeights[0]->GetBinContent(2);
11673 dSumWQuadraticTwo1n1n = fMixedHarmonicEventWeights[1]->GetBinContent(2);
11674 dSpreadTwo1n1n = f2pCorrelations->GetBinError(1);
11675 dSumWLinearThree3n2n1n = fMixedHarmonicEventWeights[0]->GetBinContent(3);
11676 dSumWQuadraticThree3n2n1n = fMixedHarmonicEventWeights[1]->GetBinContent(3);
11677 dSpreadThree3n2n1n = f3pCorrelations->GetBinError(5);
11678 dSumWLinearFive3n1n2n1n1n = fMixedHarmonicEventWeights[0]->GetBinContent(5);
11679 dSumWQuadraticFive3n1n2n1n1n = fMixedHarmonicEventWeights[1]->GetBinContent(5);
11680 dSpreadFive3n1n2n1n1n = f5pCorrelations->GetBinError(42);
11681 if(pow(dSumWLinearTwo1n1n,2.)>dSumWQuadraticTwo1n1n &&
11682 pow(dSumWLinearThree3n2n1n,2.)>dSumWQuadraticThree3n2n1n &&
11683 pow(dSumWLinearFive3n1n2n1n1n,2.)>dSumWQuadraticFive3n1n2n1n1n)
11685 Double_t dError = 4.*pow(f3pCorrelations->GetBinContent(5),2.)
11686 * pow((pow(dSumWQuadraticTwo1n1n,0.5)/dSumWLinearTwo1n1n)
11687 * dSpreadTwo1n1n*pow(pow(dSumWLinearTwo1n1n,2.)/(pow(dSumWLinearTwo1n1n,2.)-dSumWQuadraticTwo1n1n),0.5),2.)
11688 + 4.*pow(f2pCorrelations->GetBinContent(1),2.)
11689 * pow((pow(dSumWQuadraticThree3n2n1n,0.5)/dSumWLinearThree3n2n1n)
11690 * dSpreadThree3n2n1n*pow(pow(dSumWLinearThree3n2n1n,2.)/(pow(dSumWLinearThree3n2n1n,2.)-dSumWQuadraticThree3n2n1n),0.5),2.)
11691 + pow((pow(dSumWQuadraticFive3n1n2n1n1n,0.5)/dSumWLinearFive3n1n2n1n1n)
11692 * dSpreadFive3n1n2n1n1n*pow(pow(dSumWLinearFive3n1n2n1n1n,2.)/(pow(dSumWLinearFive3n1n2n1n1n,2.)-dSumWQuadraticFive3n1n2n1n1n),0.5),2.)
11693 + 4.*2.*f3pCorrelations->GetBinContent(5)*f2pCorrelations->GetBinContent(1)
11694 * fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,3))
11695 * (fMixedHarmonicProductOfCorrelations->GetBinContent(fMixedHarmonicProductOfCorrelations->GetBin(1,10))
11696 - f2pCorrelations->GetBinContent(1)*f3pCorrelations->GetBinContent(5))
11697 / (dSumWLinearTwo1n1n*dSumWLinearThree3n2n1n-fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,3)))
11698 - 2.*2.*f3pCorrelations->GetBinContent(5)
11699 * fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,5))
11700 * (fMixedHarmonicProductOfCorrelations->GetBinContent(fMixedHarmonicProductOfCorrelations->GetBin(1,96))
11701 - f2pCorrelations->GetBinContent(1)*f5pCorrelations->GetBinContent(42))
11702 / (dSumWLinearTwo1n1n*dSumWLinearFive3n1n2n1n1n-fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,5)))
11703 - 2.*2.*f2pCorrelations->GetBinContent(1)
11704 * fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(3,5))
11705 * (fMixedHarmonicProductOfCorrelations->GetBinContent(fMixedHarmonicProductOfCorrelations->GetBin(10,96))
11706 - f3pCorrelations->GetBinContent(5)*f5pCorrelations->GetBinContent(42))
11707 / (dSumWLinearThree3n2n1n*dSumWLinearFive3n1n2n1n1n-fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(3,5)));
11710 f5pCumulants->SetBinError(42,pow(dError,0.5));
11712 } // end of if(...)
11714 f5pCumulants->SetBinContent(43,f5pCorrelations->GetBinContent(43)-2.*f3pCorrelations->GetBinContent(5)*f2pCorrelations->GetBinContent(2));
11716 Double_t dSumWLinearTwo2n2n = 0.; // sum of linear event weights for <2>
11717 Double_t dSumWQuadraticTwo2n2n = 0.; // sum of quadratic event weights <2>
11718 Double_t dSpreadTwo2n2n = 0.; // weighted and biased estimator for sigma of <2>
11719 Double_t dSumWLinearThree3n2n1n = 0.; // sum of linear event weights for <2>
11720 Double_t dSumWQuadraticThree3n2n1n = 0.; // sum of quadratic event weights <2>
11721 Double_t dSpreadThree3n2n1n = 0.; // weighted and biased estimator for sigma of <2>
11722 Double_t dSumWLinearFive3n2n2n2n1n = 0.; // sum of linear event weights for <4>
11723 Double_t dSumWQuadraticFive3n2n2n2n1n = 0.; // sum of quadratic event weights <4>
11724 Double_t dSpreadFive3n2n2n2n1n = 0.; // weighted and biased estimator for sigma of <4>
11725 dSumWLinearTwo2n2n = fMixedHarmonicEventWeights[0]->GetBinContent(2);
11726 dSumWQuadraticTwo2n2n = fMixedHarmonicEventWeights[1]->GetBinContent(2);
11727 dSpreadTwo2n2n = f2pCorrelations->GetBinError(2);
11728 dSumWLinearThree3n2n1n = fMixedHarmonicEventWeights[0]->GetBinContent(3);
11729 dSumWQuadraticThree3n2n1n = fMixedHarmonicEventWeights[1]->GetBinContent(3);
11730 dSpreadThree3n2n1n = f3pCorrelations->GetBinError(5);
11731 dSumWLinearFive3n2n2n2n1n = fMixedHarmonicEventWeights[0]->GetBinContent(5);
11732 dSumWQuadraticFive3n2n2n2n1n = fMixedHarmonicEventWeights[1]->GetBinContent(5);
11733 dSpreadFive3n2n2n2n1n = f5pCorrelations->GetBinError(43);
11734 if(pow(dSumWLinearTwo2n2n,2.)>dSumWQuadraticTwo2n2n &&
11735 pow(dSumWLinearThree3n2n1n,2.)>dSumWQuadraticThree3n2n1n &&
11736 pow(dSumWLinearFive3n2n2n2n1n,2.)>dSumWQuadraticFive3n2n2n2n1n)
11738 Double_t dError = 4.*pow(f3pCorrelations->GetBinContent(5),2.)
11739 * pow((pow(dSumWQuadraticTwo2n2n,0.5)/dSumWLinearTwo2n2n)
11740 * dSpreadTwo2n2n*pow(pow(dSumWLinearTwo2n2n,2.)/(pow(dSumWLinearTwo2n2n,2.)-dSumWQuadraticTwo2n2n),0.5),2.)
11741 + 4.*pow(f2pCorrelations->GetBinContent(2),2.)
11742 * pow((pow(dSumWQuadraticThree3n2n1n,0.5)/dSumWLinearThree3n2n1n)
11743 * dSpreadThree3n2n1n*pow(pow(dSumWLinearThree3n2n1n,2.)/(pow(dSumWLinearThree3n2n1n,2.)-dSumWQuadraticThree3n2n1n),0.5),2.)
11744 + pow((pow(dSumWQuadraticFive3n2n2n2n1n,0.5)/dSumWLinearFive3n2n2n2n1n)
11745 * dSpreadFive3n2n2n2n1n*pow(pow(dSumWLinearFive3n2n2n2n1n,2.)/(pow(dSumWLinearFive3n2n2n2n1n,2.)-dSumWQuadraticFive3n2n2n2n1n),0.5),2.)
11746 + 4.*2.*f3pCorrelations->GetBinContent(5)*f2pCorrelations->GetBinContent(2)
11747 * fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,3))
11748 * (fMixedHarmonicProductOfCorrelations->GetBinContent(fMixedHarmonicProductOfCorrelations->GetBin(2,10))
11749 - f2pCorrelations->GetBinContent(2)*f3pCorrelations->GetBinContent(5))
11750 / (dSumWLinearTwo2n2n*dSumWLinearThree3n2n1n-fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,3)))
11751 - 2.*2.*f3pCorrelations->GetBinContent(5)
11752 * fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,5))
11753 * (fMixedHarmonicProductOfCorrelations->GetBinContent(fMixedHarmonicProductOfCorrelations->GetBin(2,97))
11754 - f2pCorrelations->GetBinContent(2)*f5pCorrelations->GetBinContent(43))
11755 / (dSumWLinearTwo2n2n*dSumWLinearFive3n2n2n2n1n-fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,5)))
11756 - 2.*2.*f2pCorrelations->GetBinContent(2)
11757 * fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(3,5))
11758 * (fMixedHarmonicProductOfCorrelations->GetBinContent(fMixedHarmonicProductOfCorrelations->GetBin(10,97))
11759 - f3pCorrelations->GetBinContent(5)*f5pCorrelations->GetBinContent(43))
11760 / (dSumWLinearThree3n2n1n*dSumWLinearFive3n2n2n2n1n-fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(3,5)));
11763 f5pCumulants->SetBinError(43,pow(dError,0.5));
11765 } // end of if(...)
11767 f5pCumulants->SetBinContent(44,f5pCorrelations->GetBinContent(44)-2.*f3pCorrelations->GetBinContent(5)*f2pCorrelations->GetBinContent(3));
11769 Double_t dSumWLinearTwo3n3n = 0.; // sum of linear event weights for <2>
11770 Double_t dSumWQuadraticTwo3n3n = 0.; // sum of quadratic event weights <2>
11771 Double_t dSpreadTwo3n3n = 0.; // weighted and biased estimator for sigma of <2>
11772 Double_t dSumWLinearThree3n2n1n = 0.; // sum of linear event weights for <2>
11773 Double_t dSumWQuadraticThree3n2n1n = 0.; // sum of quadratic event weights <2>
11774 Double_t dSpreadThree3n2n1n = 0.; // weighted and biased estimator for sigma of <2>
11775 Double_t dSumWLinearFive3n3n3n2n1n = 0.; // sum of linear event weights for <4>
11776 Double_t dSumWQuadraticFive3n3n3n2n1n = 0.; // sum of quadratic event weights <4>
11777 Double_t dSpreadFive3n3n3n2n1n = 0.; // weighted and biased estimator for sigma of <4>
11778 dSumWLinearTwo3n3n = fMixedHarmonicEventWeights[0]->GetBinContent(2);
11779 dSumWQuadraticTwo3n3n = fMixedHarmonicEventWeights[1]->GetBinContent(2);
11780 dSpreadTwo3n3n = f2pCorrelations->GetBinError(3);
11781 dSumWLinearThree3n2n1n = fMixedHarmonicEventWeights[0]->GetBinContent(3);
11782 dSumWQuadraticThree3n2n1n = fMixedHarmonicEventWeights[1]->GetBinContent(3);
11783 dSpreadThree3n2n1n = f3pCorrelations->GetBinError(5);
11784 dSumWLinearFive3n3n3n2n1n = fMixedHarmonicEventWeights[0]->GetBinContent(5);
11785 dSumWQuadraticFive3n3n3n2n1n = fMixedHarmonicEventWeights[1]->GetBinContent(5);
11786 dSpreadFive3n3n3n2n1n = f5pCorrelations->GetBinError(44);
11787 if(pow(dSumWLinearTwo3n3n,2.)>dSumWQuadraticTwo3n3n &&
11788 pow(dSumWLinearThree3n2n1n,2.)>dSumWQuadraticThree3n2n1n &&
11789 pow(dSumWLinearFive3n3n3n2n1n,2.)>dSumWQuadraticFive3n3n3n2n1n)
11791 Double_t dError = 4.*pow(f3pCorrelations->GetBinContent(5),2.)
11792 * pow((pow(dSumWQuadraticTwo3n3n,0.5)/dSumWLinearTwo3n3n)
11793 * dSpreadTwo3n3n*pow(pow(dSumWLinearTwo3n3n,2.)/(pow(dSumWLinearTwo3n3n,2.)-dSumWQuadraticTwo3n3n),0.5),2.)
11794 + 4.*pow(f2pCorrelations->GetBinContent(3),2.)
11795 * pow((pow(dSumWQuadraticThree3n2n1n,0.5)/dSumWLinearThree3n2n1n)
11796 * dSpreadThree3n2n1n*pow(pow(dSumWLinearThree3n2n1n,2.)/(pow(dSumWLinearThree3n2n1n,2.)-dSumWQuadraticThree3n2n1n),0.5),2.)
11797 + pow((pow(dSumWQuadraticFive3n3n3n2n1n,0.5)/dSumWLinearFive3n3n3n2n1n)
11798 * dSpreadFive3n3n3n2n1n*pow(pow(dSumWLinearFive3n3n3n2n1n,2.)/(pow(dSumWLinearFive3n3n3n2n1n,2.)-dSumWQuadraticFive3n3n3n2n1n),0.5),2.)
11799 + 4.*2.*f3pCorrelations->GetBinContent(5)*f2pCorrelations->GetBinContent(3)
11800 * fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,3))
11801 * (fMixedHarmonicProductOfCorrelations->GetBinContent(fMixedHarmonicProductOfCorrelations->GetBin(3,10))
11802 - f2pCorrelations->GetBinContent(3)*f3pCorrelations->GetBinContent(5))
11803 / (dSumWLinearTwo3n3n*dSumWLinearThree3n2n1n-fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,3)))
11804 - 2.*2.*f3pCorrelations->GetBinContent(5)
11805 * fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,5))
11806 * (fMixedHarmonicProductOfCorrelations->GetBinContent(fMixedHarmonicProductOfCorrelations->GetBin(3,98))
11807 - f2pCorrelations->GetBinContent(3)*f5pCorrelations->GetBinContent(44))
11808 / (dSumWLinearTwo3n3n*dSumWLinearFive3n3n3n2n1n-fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,5)))
11809 - 2.*2.*f2pCorrelations->GetBinContent(3)
11810 * fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(3,5))
11811 * (fMixedHarmonicProductOfCorrelations->GetBinContent(fMixedHarmonicProductOfCorrelations->GetBin(10,98))
11812 - f3pCorrelations->GetBinContent(5)*f5pCorrelations->GetBinContent(44))
11813 / (dSumWLinearThree3n2n1n*dSumWLinearFive3n3n3n2n1n-fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(3,5)));
11816 f5pCumulants->SetBinError(44,pow(dError,0.5));
11818 } // end of if(...)
11820 f5pCumulants->SetBinContent(45,f5pCorrelations->GetBinContent(45)-2.*f3pCorrelations->GetBinContent(6)*f2pCorrelations->GetBinContent(1));
11822 Double_t dSumWLinearTwo1n1n = 0.; // sum of linear event weights for <2>
11823 Double_t dSumWQuadraticTwo1n1n = 0.; // sum of quadratic event weights <2>
11824 Double_t dSpreadTwo1n1n = 0.; // weighted and biased estimator for sigma of <2>
11825 Double_t dSumWLinearThree4n3n1n = 0.; // sum of linear event weights for <2>
11826 Double_t dSumWQuadraticThree4n3n1n = 0.; // sum of quadratic event weights <2>
11827 Double_t dSpreadThree4n3n1n = 0.; // weighted and biased estimator for sigma of <2>
11828 Double_t dSumWLinearFive4n1n3n1n1n = 0.; // sum of linear event weights for <4>
11829 Double_t dSumWQuadraticFive4n1n3n1n1n = 0.; // sum of quadratic event weights <4>
11830 Double_t dSpreadFive4n1n3n1n1n = 0.; // weighted and biased estimator for sigma of <4>
11831 dSumWLinearTwo1n1n = fMixedHarmonicEventWeights[0]->GetBinContent(2);
11832 dSumWQuadraticTwo1n1n = fMixedHarmonicEventWeights[1]->GetBinContent(2);
11833 dSpreadTwo1n1n = f2pCorrelations->GetBinError(1);
11834 dSumWLinearThree4n3n1n = fMixedHarmonicEventWeights[0]->GetBinContent(3);
11835 dSumWQuadraticThree4n3n1n = fMixedHarmonicEventWeights[1]->GetBinContent(3);
11836 dSpreadThree4n3n1n = f3pCorrelations->GetBinError(6);
11837 dSumWLinearFive4n1n3n1n1n = fMixedHarmonicEventWeights[0]->GetBinContent(5);
11838 dSumWQuadraticFive4n1n3n1n1n = fMixedHarmonicEventWeights[1]->GetBinContent(5);
11839 dSpreadFive4n1n3n1n1n = f5pCorrelations->GetBinError(45);
11840 if(pow(dSumWLinearTwo1n1n,2.)>dSumWQuadraticTwo1n1n &&
11841 pow(dSumWLinearThree4n3n1n,2.)>dSumWQuadraticThree4n3n1n &&
11842 pow(dSumWLinearFive4n1n3n1n1n,2.)>dSumWQuadraticFive4n1n3n1n1n)
11844 Double_t dError = 4.*pow(f3pCorrelations->GetBinContent(6),2.)
11845 * pow((pow(dSumWQuadraticTwo1n1n,0.5)/dSumWLinearTwo1n1n)
11846 * dSpreadTwo1n1n*pow(pow(dSumWLinearTwo1n1n,2.)/(pow(dSumWLinearTwo1n1n,2.)-dSumWQuadraticTwo1n1n),0.5),2.)
11847 + 4.*pow(f2pCorrelations->GetBinContent(1),2.)
11848 * pow((pow(dSumWQuadraticThree4n3n1n,0.5)/dSumWLinearThree4n3n1n)
11849 * dSpreadThree4n3n1n*pow(pow(dSumWLinearThree4n3n1n,2.)/(pow(dSumWLinearThree4n3n1n,2.)-dSumWQuadraticThree4n3n1n),0.5),2.)
11850 + pow((pow(dSumWQuadraticFive4n1n3n1n1n,0.5)/dSumWLinearFive4n1n3n1n1n)
11851 * dSpreadFive4n1n3n1n1n*pow(pow(dSumWLinearFive4n1n3n1n1n,2.)/(pow(dSumWLinearFive4n1n3n1n1n,2.)-dSumWQuadraticFive4n1n3n1n1n),0.5),2.)
11852 + 4.*2.*f3pCorrelations->GetBinContent(6)*f2pCorrelations->GetBinContent(1)
11853 * fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,3))
11854 * (fMixedHarmonicProductOfCorrelations->GetBinContent(fMixedHarmonicProductOfCorrelations->GetBin(1,11))
11855 - f2pCorrelations->GetBinContent(1)*f3pCorrelations->GetBinContent(6))
11856 / (dSumWLinearTwo1n1n*dSumWLinearThree4n3n1n-fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,3)))
11857 - 2.*2.*f3pCorrelations->GetBinContent(6)
11858 * fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,5))
11859 * (fMixedHarmonicProductOfCorrelations->GetBinContent(fMixedHarmonicProductOfCorrelations->GetBin(1,99))
11860 - f2pCorrelations->GetBinContent(1)*f5pCorrelations->GetBinContent(45))
11861 / (dSumWLinearTwo1n1n*dSumWLinearFive4n1n3n1n1n-fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,5)))
11862 - 2.*2.*f2pCorrelations->GetBinContent(1)
11863 * fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(3,5))
11864 * (fMixedHarmonicProductOfCorrelations->GetBinContent(fMixedHarmonicProductOfCorrelations->GetBin(11,99))
11865 - f3pCorrelations->GetBinContent(6)*f5pCorrelations->GetBinContent(45))
11866 / (dSumWLinearThree4n3n1n*dSumWLinearFive4n1n3n1n1n-fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(3,5)));
11869 f5pCumulants->SetBinError(45,pow(dError,0.5));
11871 } // end of if(...)
11873 f5pCumulants->SetBinContent(46,f5pCorrelations->GetBinContent(46));
11875 Double_t dSumWLinear = 0.; // sum of linear event weights
11876 Double_t dSumWQuadratic = 0.; // sum of quadratic event weights
11877 Double_t dSpread = 0.; // weighted and biased estimator for sigma
11878 Double_t dError = 0.; // weighted and unbiased estimator for sigma
11879 dSumWLinear = fMixedHarmonicEventWeights[0]->GetBinContent(5);
11880 dSumWQuadratic = fMixedHarmonicEventWeights[1]->GetBinContent(5);
11881 dSpread = f5pCorrelations->GetBinError(46);
11882 if(pow(dSumWLinear,2.)>dSumWQuadratic)
11884 dError = (pow(dSumWQuadratic,0.5)/dSumWLinear)*dSpread*pow(pow(dSumWLinear,2.)/(pow(dSumWLinear,2.)-dSumWQuadratic),0.5);
11885 f5pCumulants->SetBinError(46,dError);
11886 } // end of if(pow(dSumWLinear,2.)>dSumWQuadratic)
11888 f5pCumulants->SetBinContent(47,f5pCorrelations->GetBinContent(47)-2.*f3pCorrelations->GetBinContent(6)*f2pCorrelations->GetBinContent(3));
11890 Double_t dSumWLinearTwo3n3n = 0.; // sum of linear event weights for <2>
11891 Double_t dSumWQuadraticTwo3n3n = 0.; // sum of quadratic event weights <2>
11892 Double_t dSpreadTwo3n3n = 0.; // weighted and biased estimator for sigma of <2>
11893 Double_t dSumWLinearThree4n3n1n = 0.; // sum of linear event weights for <2>
11894 Double_t dSumWQuadraticThree4n3n1n = 0.; // sum of quadratic event weights <2>
11895 Double_t dSpreadThree4n3n1n = 0.; // weighted and biased estimator for sigma of <2>
11896 Double_t dSumWLinearFive4n3n3n3n1n = 0.; // sum of linear event weights for <4>
11897 Double_t dSumWQuadraticFive4n3n3n3n1n = 0.; // sum of quadratic event weights <4>
11898 Double_t dSpreadFive4n3n3n3n1n = 0.; // weighted and biased estimator for sigma of <4>
11899 dSumWLinearTwo3n3n = fMixedHarmonicEventWeights[0]->GetBinContent(2);
11900 dSumWQuadraticTwo3n3n = fMixedHarmonicEventWeights[1]->GetBinContent(2);
11901 dSpreadTwo3n3n = f2pCorrelations->GetBinError(3);
11902 dSumWLinearThree4n3n1n = fMixedHarmonicEventWeights[0]->GetBinContent(3);
11903 dSumWQuadraticThree4n3n1n = fMixedHarmonicEventWeights[1]->GetBinContent(3);
11904 dSpreadThree4n3n1n = f3pCorrelations->GetBinError(6);
11905 dSumWLinearFive4n3n3n3n1n = fMixedHarmonicEventWeights[0]->GetBinContent(5);
11906 dSumWQuadraticFive4n3n3n3n1n = fMixedHarmonicEventWeights[1]->GetBinContent(5);
11907 dSpreadFive4n3n3n3n1n = f5pCorrelations->GetBinError(47);
11908 if(pow(dSumWLinearTwo3n3n,2.)>dSumWQuadraticTwo3n3n &&
11909 pow(dSumWLinearThree4n3n1n,2.)>dSumWQuadraticThree4n3n1n &&
11910 pow(dSumWLinearFive4n3n3n3n1n,2.)>dSumWQuadraticFive4n3n3n3n1n)
11912 Double_t dError = 4.*pow(f3pCorrelations->GetBinContent(6),2.)
11913 * pow((pow(dSumWQuadraticTwo3n3n,0.5)/dSumWLinearTwo3n3n)
11914 * dSpreadTwo3n3n*pow(pow(dSumWLinearTwo3n3n,2.)/(pow(dSumWLinearTwo3n3n,2.)-dSumWQuadraticTwo3n3n),0.5),2.)
11915 + 4.*pow(f2pCorrelations->GetBinContent(3),2.)
11916 * pow((pow(dSumWQuadraticThree4n3n1n,0.5)/dSumWLinearThree4n3n1n)
11917 * dSpreadThree4n3n1n*pow(pow(dSumWLinearThree4n3n1n,2.)/(pow(dSumWLinearThree4n3n1n,2.)-dSumWQuadraticThree4n3n1n),0.5),2.)
11918 + pow((pow(dSumWQuadraticFive4n3n3n3n1n,0.5)/dSumWLinearFive4n3n3n3n1n)
11919 * dSpreadFive4n3n3n3n1n*pow(pow(dSumWLinearFive4n3n3n3n1n,2.)/(pow(dSumWLinearFive4n3n3n3n1n,2.)-dSumWQuadraticFive4n3n3n3n1n),0.5),2.)
11920 + 4.*2.*f3pCorrelations->GetBinContent(6)*f2pCorrelations->GetBinContent(3)
11921 * fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,3))
11922 * (fMixedHarmonicProductOfCorrelations->GetBinContent(fMixedHarmonicProductOfCorrelations->GetBin(3,11))
11923 - f2pCorrelations->GetBinContent(3)*f3pCorrelations->GetBinContent(6))
11924 / (dSumWLinearTwo3n3n*dSumWLinearThree4n3n1n-fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,3)))
11925 - 2.*2.*f3pCorrelations->GetBinContent(6)
11926 * fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,5))
11927 * (fMixedHarmonicProductOfCorrelations->GetBinContent(fMixedHarmonicProductOfCorrelations->GetBin(3,101))
11928 - f2pCorrelations->GetBinContent(3)*f5pCorrelations->GetBinContent(47))
11929 / (dSumWLinearTwo3n3n*dSumWLinearFive4n3n3n3n1n-fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,5)))
11930 - 2.*2.*f2pCorrelations->GetBinContent(3)
11931 * fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(3,5))
11932 * (fMixedHarmonicProductOfCorrelations->GetBinContent(fMixedHarmonicProductOfCorrelations->GetBin(11,101))
11933 - f3pCorrelations->GetBinContent(6)*f5pCorrelations->GetBinContent(47))
11934 / (dSumWLinearThree4n3n1n*dSumWLinearFive4n3n3n3n1n-fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(3,5)));
11937 f5pCumulants->SetBinError(47,pow(dError,0.5));
11939 } // end of if(...)
11941 f5pCumulants->SetBinContent(48,f5pCorrelations->GetBinContent(48));
11943 Double_t dSumWLinear = 0.; // sum of linear event weights
11944 Double_t dSumWQuadratic = 0.; // sum of quadratic event weights
11945 Double_t dSpread = 0.; // weighted and biased estimator for sigma
11946 Double_t dError = 0.; // weighted and unbiased estimator for sigma
11947 dSumWLinear = fMixedHarmonicEventWeights[0]->GetBinContent(5);
11948 dSumWQuadratic = fMixedHarmonicEventWeights[1]->GetBinContent(5);
11949 dSpread = f5pCorrelations->GetBinError(48);
11950 if(pow(dSumWLinear,2.)>dSumWQuadratic)
11952 dError = (pow(dSumWQuadratic,0.5)/dSumWLinear)*dSpread*pow(pow(dSumWLinear,2.)/(pow(dSumWLinear,2.)-dSumWQuadratic),0.5);
11953 f5pCumulants->SetBinError(48,dError);
11954 } // end of if(pow(dSumWLinear,2.)>dSumWQuadratic)
11956 f5pCumulants->SetBinContent(49,f5pCorrelations->GetBinContent(49)-2.*f3pCorrelations->GetBinContent(6)*f2pCorrelations->GetBinContent(4));
11958 Double_t dSumWLinearTwo4n4n = 0.; // sum of linear event weights for <2>
11959 Double_t dSumWQuadraticTwo4n4n = 0.; // sum of quadratic event weights <2>
11960 Double_t dSpreadTwo4n4n = 0.; // weighted and biased estimator for sigma of <2>
11961 Double_t dSumWLinearThree4n3n1n = 0.; // sum of linear event weights for <2>
11962 Double_t dSumWQuadraticThree4n3n1n = 0.; // sum of quadratic event weights <2>
11963 Double_t dSpreadThree4n3n1n = 0.; // weighted and biased estimator for sigma of <2>
11964 Double_t dSumWLinearFive4n3n3n3n1n = 0.; // sum of linear event weights for <4>
11965 Double_t dSumWQuadraticFive4n3n3n3n1n = 0.; // sum of quadratic event weights <4>
11966 Double_t dSpreadFive4n3n3n3n1n = 0.; // weighted and biased estimator for sigma of <4>
11967 dSumWLinearTwo4n4n = fMixedHarmonicEventWeights[0]->GetBinContent(2);
11968 dSumWQuadraticTwo4n4n = fMixedHarmonicEventWeights[1]->GetBinContent(2);
11969 dSpreadTwo4n4n = f2pCorrelations->GetBinError(4);
11970 dSumWLinearThree4n3n1n = fMixedHarmonicEventWeights[0]->GetBinContent(3);
11971 dSumWQuadraticThree4n3n1n = fMixedHarmonicEventWeights[1]->GetBinContent(3);
11972 dSpreadThree4n3n1n = f3pCorrelations->GetBinError(6);
11973 dSumWLinearFive4n3n3n3n1n = fMixedHarmonicEventWeights[0]->GetBinContent(5);
11974 dSumWQuadraticFive4n3n3n3n1n = fMixedHarmonicEventWeights[1]->GetBinContent(5);
11975 dSpreadFive4n3n3n3n1n = f5pCorrelations->GetBinError(49);
11976 if(pow(dSumWLinearTwo4n4n,2.)>dSumWQuadraticTwo4n4n &&
11977 pow(dSumWLinearThree4n3n1n,2.)>dSumWQuadraticThree4n3n1n &&
11978 pow(dSumWLinearFive4n3n3n3n1n,2.)>dSumWQuadraticFive4n3n3n3n1n)
11980 Double_t dError = 4.*pow(f3pCorrelations->GetBinContent(6),2.)
11981 * pow((pow(dSumWQuadraticTwo4n4n,0.5)/dSumWLinearTwo4n4n)
11982 * dSpreadTwo4n4n*pow(pow(dSumWLinearTwo4n4n,2.)/(pow(dSumWLinearTwo4n4n,2.)-dSumWQuadraticTwo4n4n),0.5),2.)
11983 + 4.*pow(f2pCorrelations->GetBinContent(4),2.)
11984 * pow((pow(dSumWQuadraticThree4n3n1n,0.5)/dSumWLinearThree4n3n1n)
11985 * dSpreadThree4n3n1n*pow(pow(dSumWLinearThree4n3n1n,2.)/(pow(dSumWLinearThree4n3n1n,2.)-dSumWQuadraticThree4n3n1n),0.5),2.)
11986 + pow((pow(dSumWQuadraticFive4n3n3n3n1n,0.5)/dSumWLinearFive4n3n3n3n1n)
11987 * dSpreadFive4n3n3n3n1n*pow(pow(dSumWLinearFive4n3n3n3n1n,2.)/(pow(dSumWLinearFive4n3n3n3n1n,2.)-dSumWQuadraticFive4n3n3n3n1n),0.5),2.)
11988 + 4.*2.*f3pCorrelations->GetBinContent(6)*f2pCorrelations->GetBinContent(4)
11989 * fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,3))
11990 * (fMixedHarmonicProductOfCorrelations->GetBinContent(fMixedHarmonicProductOfCorrelations->GetBin(4,11))
11991 - f2pCorrelations->GetBinContent(4)*f3pCorrelations->GetBinContent(6))
11992 / (dSumWLinearTwo4n4n*dSumWLinearThree4n3n1n-fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,3)))
11993 - 2.*2.*f3pCorrelations->GetBinContent(6)
11994 * fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,5))
11995 * (fMixedHarmonicProductOfCorrelations->GetBinContent(fMixedHarmonicProductOfCorrelations->GetBin(4,103))
11996 - f2pCorrelations->GetBinContent(4)*f5pCorrelations->GetBinContent(49))
11997 / (dSumWLinearTwo4n4n*dSumWLinearFive4n3n3n3n1n-fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,5)))
11998 - 2.*2.*f2pCorrelations->GetBinContent(4)
11999 * fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(3,5))
12000 * (fMixedHarmonicProductOfCorrelations->GetBinContent(fMixedHarmonicProductOfCorrelations->GetBin(11,103))
12001 - f3pCorrelations->GetBinContent(6)*f5pCorrelations->GetBinContent(49))
12002 / (dSumWLinearThree4n3n1n*dSumWLinearFive4n3n3n3n1n-fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(3,5)));
12005 f5pCumulants->SetBinError(49,pow(dError,0.5));
12007 } // end of if(...)
12009 f5pCumulants->SetBinContent(50,f5pCorrelations->GetBinContent(50));
12011 Double_t dSumWLinear = 0.; // sum of linear event weights
12012 Double_t dSumWQuadratic = 0.; // sum of quadratic event weights
12013 Double_t dSpread = 0.; // weighted and biased estimator for sigma
12014 Double_t dError = 0.; // weighted and unbiased estimator for sigma
12015 dSumWLinear = fMixedHarmonicEventWeights[0]->GetBinContent(5);
12016 dSumWQuadratic = fMixedHarmonicEventWeights[1]->GetBinContent(5);
12017 dSpread = f5pCorrelations->GetBinError(50);
12018 if(pow(dSumWLinear,2.)>dSumWQuadratic)
12020 dError = (pow(dSumWQuadratic,0.5)/dSumWLinear)*dSpread*pow(pow(dSumWLinear,2.)/(pow(dSumWLinear,2.)-dSumWQuadratic),0.5);
12021 f5pCumulants->SetBinError(50,dError);
12022 } // end of if(pow(dSumWLinear,2.)>dSumWQuadratic)
12024 f5pCumulants->SetBinContent(51,f5pCorrelations->GetBinContent(51));
12026 Double_t dSumWLinear = 0.; // sum of linear event weights
12027 Double_t dSumWQuadratic = 0.; // sum of quadratic event weights
12028 Double_t dSpread = 0.; // weighted and biased estimator for sigma
12029 Double_t dError = 0.; // weighted and unbiased estimator for sigma
12030 dSumWLinear = fMixedHarmonicEventWeights[0]->GetBinContent(5);
12031 dSumWQuadratic = fMixedHarmonicEventWeights[1]->GetBinContent(5);
12032 dSpread = f5pCorrelations->GetBinError(51);
12033 if(pow(dSumWLinear,2.)>dSumWQuadratic)
12035 dError = (pow(dSumWQuadratic,0.5)/dSumWLinear)*dSpread*pow(pow(dSumWLinear,2.)/(pow(dSumWLinear,2.)-dSumWQuadratic),0.5);
12036 f5pCumulants->SetBinError(51,dError);
12037 } // end of if(pow(dSumWLinear,2.)>dSumWQuadratic)
12039 f5pCumulants->SetBinContent(52,f5pCorrelations->GetBinContent(52)-2.*f3pCorrelations->GetBinContent(7)*f2pCorrelations->GetBinContent(2));
12041 Double_t dSumWLinearTwo2n2n = 0.; // sum of linear event weights for <2>
12042 Double_t dSumWQuadraticTwo2n2n = 0.; // sum of quadratic event weights <2>
12043 Double_t dSpreadTwo2n2n = 0.; // weighted and biased estimator for sigma of <2>
12044 Double_t dSumWLinearThree5n3n2n = 0.; // sum of linear event weights for <2>
12045 Double_t dSumWQuadraticThree5n3n2n = 0.; // sum of quadratic event weights <2>
12046 Double_t dSpreadThree5n3n2n = 0.; // weighted and biased estimator for sigma of <2>
12047 Double_t dSumWLinearFive5n2n3n2n2n = 0.; // sum of linear event weights for <4>
12048 Double_t dSumWQuadraticFive5n2n3n2n2n = 0.; // sum of quadratic event weights <4>
12049 Double_t dSpreadFive5n2n3n2n2n = 0.; // weighted and biased estimator for sigma of <4>
12050 dSumWLinearTwo2n2n = fMixedHarmonicEventWeights[0]->GetBinContent(2);
12051 dSumWQuadraticTwo2n2n = fMixedHarmonicEventWeights[1]->GetBinContent(2);
12052 dSpreadTwo2n2n = f2pCorrelations->GetBinError(2);
12053 dSumWLinearThree5n3n2n = fMixedHarmonicEventWeights[0]->GetBinContent(3);
12054 dSumWQuadraticThree5n3n2n = fMixedHarmonicEventWeights[1]->GetBinContent(3);
12055 dSpreadThree5n3n2n = f3pCorrelations->GetBinError(7);
12056 dSumWLinearFive5n2n3n2n2n = fMixedHarmonicEventWeights[0]->GetBinContent(5);
12057 dSumWQuadraticFive5n2n3n2n2n = fMixedHarmonicEventWeights[1]->GetBinContent(5);
12058 dSpreadFive5n2n3n2n2n = f5pCorrelations->GetBinError(52);
12059 if(pow(dSumWLinearTwo2n2n,2.)>dSumWQuadraticTwo2n2n &&
12060 pow(dSumWLinearThree5n3n2n,2.)>dSumWQuadraticThree5n3n2n &&
12061 pow(dSumWLinearFive5n2n3n2n2n,2.)>dSumWQuadraticFive5n2n3n2n2n)
12063 Double_t dError = 4.*pow(f3pCorrelations->GetBinContent(7),2.)
12064 * pow((pow(dSumWQuadraticTwo2n2n,0.5)/dSumWLinearTwo2n2n)
12065 * dSpreadTwo2n2n*pow(pow(dSumWLinearTwo2n2n,2.)/(pow(dSumWLinearTwo2n2n,2.)-dSumWQuadraticTwo2n2n),0.5),2.)
12066 + 4.*pow(f2pCorrelations->GetBinContent(2),2.)
12067 * pow((pow(dSumWQuadraticThree5n3n2n,0.5)/dSumWLinearThree5n3n2n)
12068 * dSpreadThree5n3n2n*pow(pow(dSumWLinearThree5n3n2n,2.)/(pow(dSumWLinearThree5n3n2n,2.)-dSumWQuadraticThree5n3n2n),0.5),2.)
12069 + pow((pow(dSumWQuadraticFive5n2n3n2n2n,0.5)/dSumWLinearFive5n2n3n2n2n)
12070 * dSpreadFive5n2n3n2n2n*pow(pow(dSumWLinearFive5n2n3n2n2n,2.)/(pow(dSumWLinearFive5n2n3n2n2n,2.)-dSumWQuadraticFive5n2n3n2n2n),0.5),2.)
12071 + 4.*2.*f3pCorrelations->GetBinContent(7)*f2pCorrelations->GetBinContent(2)
12072 * fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,3))
12073 * (fMixedHarmonicProductOfCorrelations->GetBinContent(fMixedHarmonicProductOfCorrelations->GetBin(2,12))
12074 - f2pCorrelations->GetBinContent(2)*f3pCorrelations->GetBinContent(7))
12075 / (dSumWLinearTwo2n2n*dSumWLinearThree5n3n2n-fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,3)))
12076 - 2.*2.*f3pCorrelations->GetBinContent(7)
12077 * fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,5))
12078 * (fMixedHarmonicProductOfCorrelations->GetBinContent(fMixedHarmonicProductOfCorrelations->GetBin(2,106))
12079 - f2pCorrelations->GetBinContent(2)*f5pCorrelations->GetBinContent(52))
12080 / (dSumWLinearTwo2n2n*dSumWLinearFive5n2n3n2n2n-fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,5)))
12081 - 2.*2.*f2pCorrelations->GetBinContent(2)
12082 * fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(3,5))
12083 * (fMixedHarmonicProductOfCorrelations->GetBinContent(fMixedHarmonicProductOfCorrelations->GetBin(12,106))
12084 - f3pCorrelations->GetBinContent(7)*f5pCorrelations->GetBinContent(52))
12085 / (dSumWLinearThree5n3n2n*dSumWLinearFive5n2n3n2n2n-fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(3,5)));
12088 f5pCumulants->SetBinError(52,pow(dError,0.5));
12090 } // end of if(...)
12092 f5pCumulants->SetBinContent(53,f5pCorrelations->GetBinContent(53)-2.*f3pCorrelations->GetBinContent(7)*f2pCorrelations->GetBinContent(3));
12094 Double_t dSumWLinearTwo3n3n = 0.; // sum of linear event weights for <2>
12095 Double_t dSumWQuadraticTwo3n3n = 0.; // sum of quadratic event weights <2>
12096 Double_t dSpreadTwo3n3n = 0.; // weighted and biased estimator for sigma of <2>
12097 Double_t dSumWLinearThree5n3n2n = 0.; // sum of linear event weights for <2>
12098 Double_t dSumWQuadraticThree5n3n2n = 0.; // sum of quadratic event weights <2>
12099 Double_t dSpreadThree5n3n2n = 0.; // weighted and biased estimator for sigma of <2>
12100 Double_t dSumWLinearFive5n3n3n3n2n = 0.; // sum of linear event weights for <4>
12101 Double_t dSumWQuadraticFive5n3n3n3n2n = 0.; // sum of quadratic event weights <4>
12102 Double_t dSpreadFive5n3n3n3n2n = 0.; // weighted and biased estimator for sigma of <4>
12103 dSumWLinearTwo3n3n = fMixedHarmonicEventWeights[0]->GetBinContent(2);
12104 dSumWQuadraticTwo3n3n = fMixedHarmonicEventWeights[1]->GetBinContent(2);
12105 dSpreadTwo3n3n = f2pCorrelations->GetBinError(3);
12106 dSumWLinearThree5n3n2n = fMixedHarmonicEventWeights[0]->GetBinContent(3);
12107 dSumWQuadraticThree5n3n2n = fMixedHarmonicEventWeights[1]->GetBinContent(3);
12108 dSpreadThree5n3n2n = f3pCorrelations->GetBinError(7);
12109 dSumWLinearFive5n3n3n3n2n = fMixedHarmonicEventWeights[0]->GetBinContent(5);
12110 dSumWQuadraticFive5n3n3n3n2n = fMixedHarmonicEventWeights[1]->GetBinContent(5);
12111 dSpreadFive5n3n3n3n2n = f5pCorrelations->GetBinError(53);
12112 if(pow(dSumWLinearTwo3n3n,2.)>dSumWQuadraticTwo3n3n &&
12113 pow(dSumWLinearThree5n3n2n,2.)>dSumWQuadraticThree5n3n2n &&
12114 pow(dSumWLinearFive5n3n3n3n2n,2.)>dSumWQuadraticFive5n3n3n3n2n)
12116 Double_t dError = 4.*pow(f3pCorrelations->GetBinContent(7),2.)
12117 * pow((pow(dSumWQuadraticTwo3n3n,0.5)/dSumWLinearTwo3n3n)
12118 * dSpreadTwo3n3n*pow(pow(dSumWLinearTwo3n3n,2.)/(pow(dSumWLinearTwo3n3n,2.)-dSumWQuadraticTwo3n3n),0.5),2.)
12119 + 4.*pow(f2pCorrelations->GetBinContent(3),2.)
12120 * pow((pow(dSumWQuadraticThree5n3n2n,0.5)/dSumWLinearThree5n3n2n)
12121 * dSpreadThree5n3n2n*pow(pow(dSumWLinearThree5n3n2n,2.)/(pow(dSumWLinearThree5n3n2n,2.)-dSumWQuadraticThree5n3n2n),0.5),2.)
12122 + pow((pow(dSumWQuadraticFive5n3n3n3n2n,0.5)/dSumWLinearFive5n3n3n3n2n)
12123 * dSpreadFive5n3n3n3n2n*pow(pow(dSumWLinearFive5n3n3n3n2n,2.)/(pow(dSumWLinearFive5n3n3n3n2n,2.)-dSumWQuadraticFive5n3n3n3n2n),0.5),2.)
12124 + 4.*2.*f3pCorrelations->GetBinContent(7)*f2pCorrelations->GetBinContent(3)
12125 * fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,3))
12126 * (fMixedHarmonicProductOfCorrelations->GetBinContent(fMixedHarmonicProductOfCorrelations->GetBin(3,12))
12127 - f2pCorrelations->GetBinContent(3)*f3pCorrelations->GetBinContent(7))
12128 / (dSumWLinearTwo3n3n*dSumWLinearThree5n3n2n-fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,3)))
12129 - 2.*2.*f3pCorrelations->GetBinContent(7)
12130 * fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,5))
12131 * (fMixedHarmonicProductOfCorrelations->GetBinContent(fMixedHarmonicProductOfCorrelations->GetBin(3,107))
12132 - f2pCorrelations->GetBinContent(3)*f5pCorrelations->GetBinContent(53))
12133 / (dSumWLinearTwo3n3n*dSumWLinearFive5n3n3n3n2n-fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,5)))
12134 - 2.*2.*f2pCorrelations->GetBinContent(3)
12135 * fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(3,5))
12136 * (fMixedHarmonicProductOfCorrelations->GetBinContent(fMixedHarmonicProductOfCorrelations->GetBin(12,107))
12137 - f3pCorrelations->GetBinContent(7)*f5pCorrelations->GetBinContent(53))
12138 / (dSumWLinearThree5n3n2n*dSumWLinearFive5n3n3n3n2n-fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(3,5)));
12141 f5pCumulants->SetBinError(53,pow(dError,0.5));
12143 } // end of if(...)
12145 f5pCumulants->SetBinContent(54,f5pCorrelations->GetBinContent(54)-2.*f3pCorrelations->GetBinContent(8)*f2pCorrelations->GetBinContent(1));
12147 Double_t dSumWLinearTwo1n1n = 0.; // sum of linear event weights for <2>
12148 Double_t dSumWQuadraticTwo1n1n = 0.; // sum of quadratic event weights <2>
12149 Double_t dSpreadTwo1n1n = 0.; // weighted and biased estimator for sigma of <2>
12150 Double_t dSumWLinearThree5n4n1n = 0.; // sum of linear event weights for <2>
12151 Double_t dSumWQuadraticThree5n4n1n = 0.; // sum of quadratic event weights <2>
12152 Double_t dSpreadThree5n4n1n = 0.; // weighted and biased estimator for sigma of <2>
12153 Double_t dSumWLinearFive5n1n4n1n1n = 0.; // sum of linear event weights for <4>
12154 Double_t dSumWQuadraticFive5n1n4n1n1n = 0.; // sum of quadratic event weights <4>
12155 Double_t dSpreadFive5n1n4n1n1n = 0.; // weighted and biased estimator for sigma of <4>
12156 dSumWLinearTwo1n1n = fMixedHarmonicEventWeights[0]->GetBinContent(2);
12157 dSumWQuadraticTwo1n1n = fMixedHarmonicEventWeights[1]->GetBinContent(2);
12158 dSpreadTwo1n1n = f2pCorrelations->GetBinError(1);
12159 dSumWLinearThree5n4n1n = fMixedHarmonicEventWeights[0]->GetBinContent(3);
12160 dSumWQuadraticThree5n4n1n = fMixedHarmonicEventWeights[1]->GetBinContent(3);
12161 dSpreadThree5n4n1n = f3pCorrelations->GetBinError(8);
12162 dSumWLinearFive5n1n4n1n1n = fMixedHarmonicEventWeights[0]->GetBinContent(5);
12163 dSumWQuadraticFive5n1n4n1n1n = fMixedHarmonicEventWeights[1]->GetBinContent(5);
12164 dSpreadFive5n1n4n1n1n = f5pCorrelations->GetBinError(54);
12165 if(pow(dSumWLinearTwo1n1n,2.)>dSumWQuadraticTwo1n1n &&
12166 pow(dSumWLinearThree5n4n1n,2.)>dSumWQuadraticThree5n4n1n &&
12167 pow(dSumWLinearFive5n1n4n1n1n,2.)>dSumWQuadraticFive5n1n4n1n1n)
12169 Double_t dError = 4.*pow(f3pCorrelations->GetBinContent(8),2.)
12170 * pow((pow(dSumWQuadraticTwo1n1n,0.5)/dSumWLinearTwo1n1n)
12171 * dSpreadTwo1n1n*pow(pow(dSumWLinearTwo1n1n,2.)/(pow(dSumWLinearTwo1n1n,2.)-dSumWQuadraticTwo1n1n),0.5),2.)
12172 + 4.*pow(f2pCorrelations->GetBinContent(1),2.)
12173 * pow((pow(dSumWQuadraticThree5n4n1n,0.5)/dSumWLinearThree5n4n1n)
12174 * dSpreadThree5n4n1n*pow(pow(dSumWLinearThree5n4n1n,2.)/(pow(dSumWLinearThree5n4n1n,2.)-dSumWQuadraticThree5n4n1n),0.5),2.)
12175 + pow((pow(dSumWQuadraticFive5n1n4n1n1n,0.5)/dSumWLinearFive5n1n4n1n1n)
12176 * dSpreadFive5n1n4n1n1n*pow(pow(dSumWLinearFive5n1n4n1n1n,2.)/(pow(dSumWLinearFive5n1n4n1n1n,2.)-dSumWQuadraticFive5n1n4n1n1n),0.5),2.)
12177 + 4.*2.*f3pCorrelations->GetBinContent(8)*f2pCorrelations->GetBinContent(1)
12178 * fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,3))
12179 * (fMixedHarmonicProductOfCorrelations->GetBinContent(fMixedHarmonicProductOfCorrelations->GetBin(1,13))
12180 - f2pCorrelations->GetBinContent(1)*f3pCorrelations->GetBinContent(8))
12181 / (dSumWLinearTwo1n1n*dSumWLinearThree5n4n1n-fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,3)))
12182 - 2.*2.*f3pCorrelations->GetBinContent(8)
12183 * fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,5))
12184 * (fMixedHarmonicProductOfCorrelations->GetBinContent(fMixedHarmonicProductOfCorrelations->GetBin(1,108))
12185 - f2pCorrelations->GetBinContent(1)*f5pCorrelations->GetBinContent(54))
12186 / (dSumWLinearTwo1n1n*dSumWLinearFive5n1n4n1n1n-fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,5)))
12187 - 2.*2.*f2pCorrelations->GetBinContent(1)
12188 * fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(3,5))
12189 * (fMixedHarmonicProductOfCorrelations->GetBinContent(fMixedHarmonicProductOfCorrelations->GetBin(13,108))
12190 - f3pCorrelations->GetBinContent(8)*f5pCorrelations->GetBinContent(54))
12191 / (dSumWLinearThree5n4n1n*dSumWLinearFive5n1n4n1n1n-fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(3,5)));
12194 f5pCumulants->SetBinError(54,pow(dError,0.5));
12196 } // end of if(...)
12199 f5pCumulants->SetBinContent(55,f5pCorrelations->GetBinContent(55));
12201 Double_t dSumWLinear = 0.; // sum of linear event weights
12202 Double_t dSumWQuadratic = 0.; // sum of quadratic event weights
12203 Double_t dSpread = 0.; // weighted and biased estimator for sigma
12204 Double_t dError = 0.; // weighted and unbiased estimator for sigma
12205 dSumWLinear = fMixedHarmonicEventWeights[0]->GetBinContent(5);
12206 dSumWQuadratic = fMixedHarmonicEventWeights[1]->GetBinContent(5);
12207 dSpread = f5pCorrelations->GetBinError(55);
12208 if(pow(dSumWLinear,2.)>dSumWQuadratic)
12210 dError = (pow(dSumWQuadratic,0.5)/dSumWLinear)*dSpread*pow(pow(dSumWLinear,2.)/(pow(dSumWLinear,2.)-dSumWQuadratic),0.5);
12211 f5pCumulants->SetBinError(55,dError);
12212 } // end of if(pow(dSumWLinear,2.)>dSumWQuadratic)
12214 f5pCumulants->SetBinContent(56,f5pCorrelations->GetBinContent(56)-2.*f3pCorrelations->GetBinContent(8)*f2pCorrelations->GetBinContent(4));
12216 Double_t dSumWLinearTwo4n4n = 0.; // sum of linear event weights for <2>
12217 Double_t dSumWQuadraticTwo4n4n = 0.; // sum of quadratic event weights <2>
12218 Double_t dSpreadTwo4n4n = 0.; // weighted and biased estimator for sigma of <2>
12219 Double_t dSumWLinearThree5n4n1n = 0.; // sum of linear event weights for <2>
12220 Double_t dSumWQuadraticThree5n4n1n = 0.; // sum of quadratic event weights <2>
12221 Double_t dSpreadThree5n4n1n = 0.; // weighted and biased estimator for sigma of <2>
12222 Double_t dSumWLinearFive5n4n4n4n1n = 0.; // sum of linear event weights for <4>
12223 Double_t dSumWQuadraticFive5n4n4n4n1n = 0.; // sum of quadratic event weights <4>
12224 Double_t dSpreadFive5n4n4n4n1n = 0.; // weighted and biased estimator for sigma of <4>
12225 dSumWLinearTwo4n4n = fMixedHarmonicEventWeights[0]->GetBinContent(2);
12226 dSumWQuadraticTwo4n4n = fMixedHarmonicEventWeights[1]->GetBinContent(2);
12227 dSpreadTwo4n4n = f2pCorrelations->GetBinError(4);
12228 dSumWLinearThree5n4n1n = fMixedHarmonicEventWeights[0]->GetBinContent(3);
12229 dSumWQuadraticThree5n4n1n = fMixedHarmonicEventWeights[1]->GetBinContent(3);
12230 dSpreadThree5n4n1n = f3pCorrelations->GetBinError(8);
12231 dSumWLinearFive5n4n4n4n1n = fMixedHarmonicEventWeights[0]->GetBinContent(5);
12232 dSumWQuadraticFive5n4n4n4n1n = fMixedHarmonicEventWeights[1]->GetBinContent(5);
12233 dSpreadFive5n4n4n4n1n = f5pCorrelations->GetBinError(56);
12234 if(pow(dSumWLinearTwo4n4n,2.)>dSumWQuadraticTwo4n4n &&
12235 pow(dSumWLinearThree5n4n1n,2.)>dSumWQuadraticThree5n4n1n &&
12236 pow(dSumWLinearFive5n4n4n4n1n,2.)>dSumWQuadraticFive5n4n4n4n1n)
12238 Double_t dError = 4.*pow(f3pCorrelations->GetBinContent(8),2.)
12239 * pow((pow(dSumWQuadraticTwo4n4n,0.5)/dSumWLinearTwo4n4n)
12240 * dSpreadTwo4n4n*pow(pow(dSumWLinearTwo4n4n,2.)/(pow(dSumWLinearTwo4n4n,2.)-dSumWQuadraticTwo4n4n),0.5),2.)
12241 + 4.*pow(f2pCorrelations->GetBinContent(4),2.)
12242 * pow((pow(dSumWQuadraticThree5n4n1n,0.5)/dSumWLinearThree5n4n1n)
12243 * dSpreadThree5n4n1n*pow(pow(dSumWLinearThree5n4n1n,2.)/(pow(dSumWLinearThree5n4n1n,2.)-dSumWQuadraticThree5n4n1n),0.5),2.)
12244 + pow((pow(dSumWQuadraticFive5n4n4n4n1n,0.5)/dSumWLinearFive5n4n4n4n1n)
12245 * dSpreadFive5n4n4n4n1n*pow(pow(dSumWLinearFive5n4n4n4n1n,2.)/(pow(dSumWLinearFive5n4n4n4n1n,2.)-dSumWQuadraticFive5n4n4n4n1n),0.5),2.)
12246 + 4.*2.*f3pCorrelations->GetBinContent(8)*f2pCorrelations->GetBinContent(4)
12247 * fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,3))
12248 * (fMixedHarmonicProductOfCorrelations->GetBinContent(fMixedHarmonicProductOfCorrelations->GetBin(4,13))
12249 - f2pCorrelations->GetBinContent(4)*f3pCorrelations->GetBinContent(8))
12250 / (dSumWLinearTwo4n4n*dSumWLinearThree5n4n1n-fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,3)))
12251 - 2.*2.*f3pCorrelations->GetBinContent(8)
12252 * fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,5))
12253 * (fMixedHarmonicProductOfCorrelations->GetBinContent(fMixedHarmonicProductOfCorrelations->GetBin(4,110))
12254 - f2pCorrelations->GetBinContent(4)*f5pCorrelations->GetBinContent(56))
12255 / (dSumWLinearTwo4n4n*dSumWLinearFive5n4n4n4n1n-fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,5)))
12256 - 2.*2.*f2pCorrelations->GetBinContent(4)
12257 * fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(3,5))
12258 * (fMixedHarmonicProductOfCorrelations->GetBinContent(fMixedHarmonicProductOfCorrelations->GetBin(13,110))
12259 - f3pCorrelations->GetBinContent(8)*f5pCorrelations->GetBinContent(56))
12260 / (dSumWLinearThree5n4n1n*dSumWLinearFive5n4n4n4n1n-fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(3,5)));
12263 f5pCumulants->SetBinError(56,pow(dError,0.5));
12265 } // end of if(...)
12267 f5pCumulants->SetBinContent(57,f5pCorrelations->GetBinContent(57));
12269 Double_t dSumWLinear = 0.; // sum of linear event weights
12270 Double_t dSumWQuadratic = 0.; // sum of quadratic event weights
12271 Double_t dSpread = 0.; // weighted and biased estimator for sigma
12272 Double_t dError = 0.; // weighted and unbiased estimator for sigma
12273 dSumWLinear = fMixedHarmonicEventWeights[0]->GetBinContent(5);
12274 dSumWQuadratic = fMixedHarmonicEventWeights[1]->GetBinContent(5);
12275 dSpread = f5pCorrelations->GetBinError(57);
12276 if(pow(dSumWLinear,2.)>dSumWQuadratic)
12278 dError = (pow(dSumWQuadratic,0.5)/dSumWLinear)*dSpread*pow(pow(dSumWLinear,2.)/(pow(dSumWLinear,2.)-dSumWQuadratic),0.5);
12279 f5pCumulants->SetBinError(57,dError);
12280 } // end of if(pow(dSumWLinear,2.)>dSumWQuadratic)
12282 f5pCumulants->SetBinContent(58,f5pCorrelations->GetBinContent(58));
12284 Double_t dSumWLinear = 0.; // sum of linear event weights
12285 Double_t dSumWQuadratic = 0.; // sum of quadratic event weights
12286 Double_t dSpread = 0.; // weighted and biased estimator for sigma
12287 Double_t dError = 0.; // weighted and unbiased estimator for sigma
12288 dSumWLinear = fMixedHarmonicEventWeights[0]->GetBinContent(5);
12289 dSumWQuadratic = fMixedHarmonicEventWeights[1]->GetBinContent(5);
12290 dSpread = f5pCorrelations->GetBinError(58);
12291 if(pow(dSumWLinear,2.)>dSumWQuadratic)
12293 dError = (pow(dSumWQuadratic,0.5)/dSumWLinear)*dSpread*pow(pow(dSumWLinear,2.)/(pow(dSumWLinear,2.)-dSumWQuadratic),0.5);
12294 f5pCumulants->SetBinError(58,dError);
12295 } // end of if(pow(dSumWLinear,2.)>dSumWQuadratic)
12297 f5pCumulants->SetBinContent(59,f5pCorrelations->GetBinContent(59)-2.*f3pCorrelations->GetBinContent(7)*f2pCorrelations->GetBinContent(5));
12299 Double_t dSumWLinearTwo5n5n = 0.; // sum of linear event weights for <2>
12300 Double_t dSumWQuadraticTwo5n5n = 0.; // sum of quadratic event weights <2>
12301 Double_t dSpreadTwo5n5n = 0.; // weighted and biased estimator for sigma of <2>
12302 Double_t dSumWLinearThree5n3n2n = 0.; // sum of linear event weights for <2>
12303 Double_t dSumWQuadraticThree5n3n2n = 0.; // sum of quadratic event weights <2>
12304 Double_t dSpreadThree5n3n2n = 0.; // weighted and biased estimator for sigma of <2>
12305 Double_t dSumWLinearFive5n5n5n3n2n = 0.; // sum of linear event weights for <4>
12306 Double_t dSumWQuadraticFive5n5n5n3n2n = 0.; // sum of quadratic event weights <4>
12307 Double_t dSpreadFive5n5n5n3n2n = 0.; // weighted and biased estimator for sigma of <4>
12308 dSumWLinearTwo5n5n = fMixedHarmonicEventWeights[0]->GetBinContent(2);
12309 dSumWQuadraticTwo5n5n = fMixedHarmonicEventWeights[1]->GetBinContent(2);
12310 dSpreadTwo5n5n = f2pCorrelations->GetBinError(5);
12311 dSumWLinearThree5n3n2n = fMixedHarmonicEventWeights[0]->GetBinContent(3);
12312 dSumWQuadraticThree5n3n2n = fMixedHarmonicEventWeights[1]->GetBinContent(3);
12313 dSpreadThree5n3n2n = f3pCorrelations->GetBinError(7);
12314 dSumWLinearFive5n5n5n3n2n = fMixedHarmonicEventWeights[0]->GetBinContent(5);
12315 dSumWQuadraticFive5n5n5n3n2n = fMixedHarmonicEventWeights[1]->GetBinContent(5);
12316 dSpreadFive5n5n5n3n2n = f5pCorrelations->GetBinError(59);
12317 if(pow(dSumWLinearTwo5n5n,2.)>dSumWQuadraticTwo5n5n &&
12318 pow(dSumWLinearThree5n3n2n,2.)>dSumWQuadraticThree5n3n2n &&
12319 pow(dSumWLinearFive5n5n5n3n2n,2.)>dSumWQuadraticFive5n5n5n3n2n)
12321 Double_t dError = 4.*pow(f3pCorrelations->GetBinContent(7),2.)
12322 * pow((pow(dSumWQuadraticTwo5n5n,0.5)/dSumWLinearTwo5n5n)
12323 * dSpreadTwo5n5n*pow(pow(dSumWLinearTwo5n5n,2.)/(pow(dSumWLinearTwo5n5n,2.)-dSumWQuadraticTwo5n5n),0.5),2.)
12324 + 4.*pow(f2pCorrelations->GetBinContent(5),2.)
12325 * pow((pow(dSumWQuadraticThree5n3n2n,0.5)/dSumWLinearThree5n3n2n)
12326 * dSpreadThree5n3n2n*pow(pow(dSumWLinearThree5n3n2n,2.)/(pow(dSumWLinearThree5n3n2n,2.)-dSumWQuadraticThree5n3n2n),0.5),2.)
12327 + pow((pow(dSumWQuadraticFive5n5n5n3n2n,0.5)/dSumWLinearFive5n5n5n3n2n)
12328 * dSpreadFive5n5n5n3n2n*pow(pow(dSumWLinearFive5n5n5n3n2n,2.)/(pow(dSumWLinearFive5n5n5n3n2n,2.)-dSumWQuadraticFive5n5n5n3n2n),0.5),2.)
12329 + 4.*2.*f3pCorrelations->GetBinContent(7)*f2pCorrelations->GetBinContent(5)
12330 * fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,3))
12331 * (fMixedHarmonicProductOfCorrelations->GetBinContent(fMixedHarmonicProductOfCorrelations->GetBin(5,12))
12332 - f2pCorrelations->GetBinContent(5)*f3pCorrelations->GetBinContent(7))
12333 / (dSumWLinearTwo5n5n*dSumWLinearThree5n3n2n-fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,3)))
12334 - 2.*2.*f3pCorrelations->GetBinContent(7)
12335 * fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,5))
12336 * (fMixedHarmonicProductOfCorrelations->GetBinContent(fMixedHarmonicProductOfCorrelations->GetBin(5,113))
12337 - f2pCorrelations->GetBinContent(5)*f5pCorrelations->GetBinContent(59))
12338 / (dSumWLinearTwo5n5n*dSumWLinearFive5n5n5n3n2n-fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,5)))
12339 - 2.*2.*f2pCorrelations->GetBinContent(5)
12340 * fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(3,5))
12341 * (fMixedHarmonicProductOfCorrelations->GetBinContent(fMixedHarmonicProductOfCorrelations->GetBin(12,113))
12342 - f3pCorrelations->GetBinContent(7)*f5pCorrelations->GetBinContent(59))
12343 / (dSumWLinearThree5n3n2n*dSumWLinearFive5n5n5n3n2n-fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(3,5)));
12346 f5pCumulants->SetBinError(59,pow(dError,0.5));
12348 } // end of if(...)
12350 f5pCumulants->SetBinContent(60,f5pCorrelations->GetBinContent(60)-2.*f3pCorrelations->GetBinContent(8)*f2pCorrelations->GetBinContent(5));
12352 Double_t dSumWLinearTwo5n5n = 0.; // sum of linear event weights for <2>
12353 Double_t dSumWQuadraticTwo5n5n = 0.; // sum of quadratic event weights <2>
12354 Double_t dSpreadTwo5n5n = 0.; // weighted and biased estimator for sigma of <2>
12355 Double_t dSumWLinearThree5n4n1n = 0.; // sum of linear event weights for <2>
12356 Double_t dSumWQuadraticThree5n4n1n = 0.; // sum of quadratic event weights <2>
12357 Double_t dSpreadThree5n4n1n = 0.; // weighted and biased estimator for sigma of <2>
12358 Double_t dSumWLinearFive5n5n5n4n1n = 0.; // sum of linear event weights for <4>
12359 Double_t dSumWQuadraticFive5n5n5n4n1n = 0.; // sum of quadratic event weights <4>
12360 Double_t dSpreadFive5n5n5n4n1n = 0.; // weighted and biased estimator for sigma of <4>
12361 dSumWLinearTwo5n5n = fMixedHarmonicEventWeights[0]->GetBinContent(2);
12362 dSumWQuadraticTwo5n5n = fMixedHarmonicEventWeights[1]->GetBinContent(2);
12363 dSpreadTwo5n5n = f2pCorrelations->GetBinError(5);
12364 dSumWLinearThree5n4n1n = fMixedHarmonicEventWeights[0]->GetBinContent(3);
12365 dSumWQuadraticThree5n4n1n = fMixedHarmonicEventWeights[1]->GetBinContent(3);
12366 dSpreadThree5n4n1n = f3pCorrelations->GetBinError(8);
12367 dSumWLinearFive5n5n5n4n1n = fMixedHarmonicEventWeights[0]->GetBinContent(5);
12368 dSumWQuadraticFive5n5n5n4n1n = fMixedHarmonicEventWeights[1]->GetBinContent(5);
12369 dSpreadFive5n5n5n4n1n = f5pCorrelations->GetBinError(60);
12370 if(pow(dSumWLinearTwo5n5n,2.)>dSumWQuadraticTwo5n5n &&
12371 pow(dSumWLinearThree5n4n1n,2.)>dSumWQuadraticThree5n4n1n &&
12372 pow(dSumWLinearFive5n5n5n4n1n,2.)>dSumWQuadraticFive5n5n5n4n1n)
12374 Double_t dError = 4.*pow(f3pCorrelations->GetBinContent(8),2.)
12375 * pow((pow(dSumWQuadraticTwo5n5n,0.5)/dSumWLinearTwo5n5n)
12376 * dSpreadTwo5n5n*pow(pow(dSumWLinearTwo5n5n,2.)/(pow(dSumWLinearTwo5n5n,2.)-dSumWQuadraticTwo5n5n),0.5),2.)
12377 + 4.*pow(f2pCorrelations->GetBinContent(5),2.)
12378 * pow((pow(dSumWQuadraticThree5n4n1n,0.5)/dSumWLinearThree5n4n1n)
12379 * dSpreadThree5n4n1n*pow(pow(dSumWLinearThree5n4n1n,2.)/(pow(dSumWLinearThree5n4n1n,2.)-dSumWQuadraticThree5n4n1n),0.5),2.)
12380 + pow((pow(dSumWQuadraticFive5n5n5n4n1n,0.5)/dSumWLinearFive5n5n5n4n1n)
12381 * dSpreadFive5n5n5n4n1n*pow(pow(dSumWLinearFive5n5n5n4n1n,2.)/(pow(dSumWLinearFive5n5n5n4n1n,2.)-dSumWQuadraticFive5n5n5n4n1n),0.5),2.)
12382 + 4.*2.*f3pCorrelations->GetBinContent(8)*f2pCorrelations->GetBinContent(5)
12383 * fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,3))
12384 * (fMixedHarmonicProductOfCorrelations->GetBinContent(fMixedHarmonicProductOfCorrelations->GetBin(5,13))
12385 - f2pCorrelations->GetBinContent(5)*f3pCorrelations->GetBinContent(8))
12386 / (dSumWLinearTwo5n5n*dSumWLinearThree5n4n1n-fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,3)))
12387 - 2.*2.*f3pCorrelations->GetBinContent(8)
12388 * fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,5))
12389 * (fMixedHarmonicProductOfCorrelations->GetBinContent(fMixedHarmonicProductOfCorrelations->GetBin(5,114))
12390 - f2pCorrelations->GetBinContent(5)*f5pCorrelations->GetBinContent(60))
12391 / (dSumWLinearTwo5n5n*dSumWLinearFive5n5n5n4n1n-fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,5)))
12392 - 2.*2.*f2pCorrelations->GetBinContent(5)
12393 * fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(3,5))
12394 * (fMixedHarmonicProductOfCorrelations->GetBinContent(fMixedHarmonicProductOfCorrelations->GetBin(13,114))
12395 - f3pCorrelations->GetBinContent(8)*f5pCorrelations->GetBinContent(60))
12396 / (dSumWLinearThree5n4n1n*dSumWLinearFive5n5n5n4n1n-fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(3,5)));
12399 f5pCumulants->SetBinError(60,pow(dError,0.5));
12401 } // end of if(...)
12403 f5pCumulants->SetBinContent(61,f5pCorrelations->GetBinContent(61));
12405 Double_t dSumWLinear = 0.; // sum of linear event weights
12406 Double_t dSumWQuadratic = 0.; // sum of quadratic event weights
12407 Double_t dSpread = 0.; // weighted and biased estimator for sigma
12408 Double_t dError = 0.; // weighted and unbiased estimator for sigma
12409 dSumWLinear = fMixedHarmonicEventWeights[0]->GetBinContent(5);
12410 dSumWQuadratic = fMixedHarmonicEventWeights[1]->GetBinContent(5);
12411 dSpread = f5pCorrelations->GetBinError(61);
12412 if(pow(dSumWLinear,2.)>dSumWQuadratic)
12414 dError = (pow(dSumWQuadratic,0.5)/dSumWLinear)*dSpread*pow(pow(dSumWLinear,2.)/(pow(dSumWLinear,2.)-dSumWQuadratic),0.5);
12415 f5pCumulants->SetBinError(61,dError);
12416 } // end of if(pow(dSumWLinear,2.)>dSumWQuadratic)
12418 f5pCumulants->SetBinContent(62,f5pCorrelations->GetBinContent(62));
12420 Double_t dSumWLinear = 0.; // sum of linear event weights
12421 Double_t dSumWQuadratic = 0.; // sum of quadratic event weights
12422 Double_t dSpread = 0.; // weighted and biased estimator for sigma
12423 Double_t dError = 0.; // weighted and unbiased estimator for sigma
12424 dSumWLinear = fMixedHarmonicEventWeights[0]->GetBinContent(5);
12425 dSumWQuadratic = fMixedHarmonicEventWeights[1]->GetBinContent(5);
12426 dSpread = f5pCorrelations->GetBinError(62);
12427 if(pow(dSumWLinear,2.)>dSumWQuadratic)
12429 dError = (pow(dSumWQuadratic,0.5)/dSumWLinear)*dSpread*pow(pow(dSumWLinear,2.)/(pow(dSumWLinear,2.)-dSumWQuadratic),0.5);
12430 f5pCumulants->SetBinError(62,dError);
12431 } // end of if(pow(dSumWLinear,2.)>dSumWQuadratic)
12433 f5pCumulants->SetBinContent(63,f5pCorrelations->GetBinContent(63));
12435 Double_t dSumWLinear = 0.; // sum of linear event weights
12436 Double_t dSumWQuadratic = 0.; // sum of quadratic event weights
12437 Double_t dSpread = 0.; // weighted and biased estimator for sigma
12438 Double_t dError = 0.; // weighted and unbiased estimator for sigma
12439 dSumWLinear = fMixedHarmonicEventWeights[0]->GetBinContent(5);
12440 dSumWQuadratic = fMixedHarmonicEventWeights[1]->GetBinContent(5);
12441 dSpread = f5pCorrelations->GetBinError(63);
12442 if(pow(dSumWLinear,2.)>dSumWQuadratic)
12444 dError = (pow(dSumWQuadratic,0.5)/dSumWLinear)*dSpread*pow(pow(dSumWLinear,2.)/(pow(dSumWLinear,2.)-dSumWQuadratic),0.5);
12445 f5pCumulants->SetBinError(63,dError);
12446 } // end of if(pow(dSumWLinear,2.)>dSumWQuadratic)
12448 f5pCumulants->SetBinContent(64,f5pCorrelations->GetBinContent(64)-2.*f3pCorrelations->GetBinContent(10)*f2pCorrelations->GetBinContent(1));
12450 Double_t dSumWLinearTwo1n1n = 0.; // sum of linear event weights for <2>
12451 Double_t dSumWQuadraticTwo1n1n = 0.; // sum of quadratic event weights <2>
12452 Double_t dSpreadTwo1n1n = 0.; // weighted and biased estimator for sigma of <2>
12453 Double_t dSumWLinearThree6n5n1n = 0.; // sum of linear event weights for <2>
12454 Double_t dSumWQuadraticThree6n5n1n = 0.; // sum of quadratic event weights <2>
12455 Double_t dSpreadThree6n5n1n = 0.; // weighted and biased estimator for sigma of <2>
12456 Double_t dSumWLinearFive6n1n5n1n1n = 0.; // sum of linear event weights for <4>
12457 Double_t dSumWQuadraticFive6n1n5n1n1n = 0.; // sum of quadratic event weights <4>
12458 Double_t dSpreadFive6n1n5n1n1n = 0.; // weighted and biased estimator for sigma of <4>
12459 dSumWLinearTwo1n1n = fMixedHarmonicEventWeights[0]->GetBinContent(2);
12460 dSumWQuadraticTwo1n1n = fMixedHarmonicEventWeights[1]->GetBinContent(2);
12461 dSpreadTwo1n1n = f2pCorrelations->GetBinError(1);
12462 dSumWLinearThree6n5n1n = fMixedHarmonicEventWeights[0]->GetBinContent(3);
12463 dSumWQuadraticThree6n5n1n = fMixedHarmonicEventWeights[1]->GetBinContent(3);
12464 dSpreadThree6n5n1n = f3pCorrelations->GetBinError(10);
12465 dSumWLinearFive6n1n5n1n1n = fMixedHarmonicEventWeights[0]->GetBinContent(5);
12466 dSumWQuadraticFive6n1n5n1n1n = fMixedHarmonicEventWeights[1]->GetBinContent(5);
12467 dSpreadFive6n1n5n1n1n = f5pCorrelations->GetBinError(64);
12468 if(pow(dSumWLinearTwo1n1n,2.)>dSumWQuadraticTwo1n1n &&
12469 pow(dSumWLinearThree6n5n1n,2.)>dSumWQuadraticThree6n5n1n &&
12470 pow(dSumWLinearFive6n1n5n1n1n,2.)>dSumWQuadraticFive6n1n5n1n1n)
12472 Double_t dError = 4.*pow(f3pCorrelations->GetBinContent(10),2.)
12473 * pow((pow(dSumWQuadraticTwo1n1n,0.5)/dSumWLinearTwo1n1n)
12474 * dSpreadTwo1n1n*pow(pow(dSumWLinearTwo1n1n,2.)/(pow(dSumWLinearTwo1n1n,2.)-dSumWQuadraticTwo1n1n),0.5),2.)
12475 + 4.*pow(f2pCorrelations->GetBinContent(1),2.)
12476 * pow((pow(dSumWQuadraticThree6n5n1n,0.5)/dSumWLinearThree6n5n1n)
12477 * dSpreadThree6n5n1n*pow(pow(dSumWLinearThree6n5n1n,2.)/(pow(dSumWLinearThree6n5n1n,2.)-dSumWQuadraticThree6n5n1n),0.5),2.)
12478 + pow((pow(dSumWQuadraticFive6n1n5n1n1n,0.5)/dSumWLinearFive6n1n5n1n1n)
12479 * dSpreadFive6n1n5n1n1n*pow(pow(dSumWLinearFive6n1n5n1n1n,2.)/(pow(dSumWLinearFive6n1n5n1n1n,2.)-dSumWQuadraticFive6n1n5n1n1n),0.5),2.)
12480 + 4.*2.*f3pCorrelations->GetBinContent(10)*f2pCorrelations->GetBinContent(1)
12481 * fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,3))
12482 * (fMixedHarmonicProductOfCorrelations->GetBinContent(fMixedHarmonicProductOfCorrelations->GetBin(1,15))
12483 - f2pCorrelations->GetBinContent(1)*f3pCorrelations->GetBinContent(10))
12484 / (dSumWLinearTwo1n1n*dSumWLinearThree6n5n1n-fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,3)))
12485 - 2.*2.*f3pCorrelations->GetBinContent(10)
12486 * fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,5))
12487 * (fMixedHarmonicProductOfCorrelations->GetBinContent(fMixedHarmonicProductOfCorrelations->GetBin(1,118))
12488 - f2pCorrelations->GetBinContent(1)*f5pCorrelations->GetBinContent(64))
12489 / (dSumWLinearTwo1n1n*dSumWLinearFive6n1n5n1n1n-fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,5)))
12490 - 2.*2.*f2pCorrelations->GetBinContent(1)
12491 * fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(3,5))
12492 * (fMixedHarmonicProductOfCorrelations->GetBinContent(fMixedHarmonicProductOfCorrelations->GetBin(15,118))
12493 - f3pCorrelations->GetBinContent(10)*f5pCorrelations->GetBinContent(64))
12494 / (dSumWLinearThree6n5n1n*dSumWLinearFive6n1n5n1n1n-fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(3,5)));
12497 f5pCumulants->SetBinError(64,pow(dError,0.5));
12499 } // end of if(...)
12501 f5pCumulants->SetBinContent(65,f5pCorrelations->GetBinContent(65)-2.*f3pCorrelations->GetBinContent(9)*f2pCorrelations->GetBinContent(2));
12503 Double_t dSumWLinearTwo2n2n = 0.; // sum of linear event weights for <2>
12504 Double_t dSumWQuadraticTwo2n2n = 0.; // sum of quadratic event weights <2>
12505 Double_t dSpreadTwo2n2n = 0.; // weighted and biased estimator for sigma of <2>
12506 Double_t dSumWLinearThree6n4n2n = 0.; // sum of linear event weights for <2>
12507 Double_t dSumWQuadraticThree6n4n2n = 0.; // sum of quadratic event weights <2>
12508 Double_t dSpreadThree6n4n2n = 0.; // weighted and biased estimator for sigma of <2>
12509 Double_t dSumWLinearFive6n2n4n2n2n = 0.; // sum of linear event weights for <4>
12510 Double_t dSumWQuadraticFive6n2n4n2n2n = 0.; // sum of quadratic event weights <4>
12511 Double_t dSpreadFive6n2n4n2n2n = 0.; // weighted and biased estimator for sigma of <4>
12512 dSumWLinearTwo2n2n = fMixedHarmonicEventWeights[0]->GetBinContent(2);
12513 dSumWQuadraticTwo2n2n = fMixedHarmonicEventWeights[1]->GetBinContent(2);
12514 dSpreadTwo2n2n = f2pCorrelations->GetBinError(2);
12515 dSumWLinearThree6n4n2n = fMixedHarmonicEventWeights[0]->GetBinContent(3);
12516 dSumWQuadraticThree6n4n2n = fMixedHarmonicEventWeights[1]->GetBinContent(3);
12517 dSpreadThree6n4n2n = f3pCorrelations->GetBinError(9);
12518 dSumWLinearFive6n2n4n2n2n = fMixedHarmonicEventWeights[0]->GetBinContent(5);
12519 dSumWQuadraticFive6n2n4n2n2n = fMixedHarmonicEventWeights[1]->GetBinContent(5);
12520 dSpreadFive6n2n4n2n2n = f5pCorrelations->GetBinError(65);
12521 if(pow(dSumWLinearTwo2n2n,2.)>dSumWQuadraticTwo2n2n &&
12522 pow(dSumWLinearThree6n4n2n,2.)>dSumWQuadraticThree6n4n2n &&
12523 pow(dSumWLinearFive6n2n4n2n2n,2.)>dSumWQuadraticFive6n2n4n2n2n)
12525 Double_t dError = 4.*pow(f3pCorrelations->GetBinContent(9),2.)
12526 * pow((pow(dSumWQuadraticTwo2n2n,0.5)/dSumWLinearTwo2n2n)
12527 * dSpreadTwo2n2n*pow(pow(dSumWLinearTwo2n2n,2.)/(pow(dSumWLinearTwo2n2n,2.)-dSumWQuadraticTwo2n2n),0.5),2.)
12528 + 4.*pow(f2pCorrelations->GetBinContent(2),2.)
12529 * pow((pow(dSumWQuadraticThree6n4n2n,0.5)/dSumWLinearThree6n4n2n)
12530 * dSpreadThree6n4n2n*pow(pow(dSumWLinearThree6n4n2n,2.)/(pow(dSumWLinearThree6n4n2n,2.)-dSumWQuadraticThree6n4n2n),0.5),2.)
12531 + pow((pow(dSumWQuadraticFive6n2n4n2n2n,0.5)/dSumWLinearFive6n2n4n2n2n)
12532 * dSpreadFive6n2n4n2n2n*pow(pow(dSumWLinearFive6n2n4n2n2n,2.)/(pow(dSumWLinearFive6n2n4n2n2n,2.)-dSumWQuadraticFive6n2n4n2n2n),0.5),2.)
12533 + 4.*2.*f3pCorrelations->GetBinContent(9)*f2pCorrelations->GetBinContent(2)
12534 * fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,3))
12535 * (fMixedHarmonicProductOfCorrelations->GetBinContent(fMixedHarmonicProductOfCorrelations->GetBin(2,14))
12536 - f2pCorrelations->GetBinContent(2)*f3pCorrelations->GetBinContent(9))
12537 / (dSumWLinearTwo2n2n*dSumWLinearThree6n4n2n-fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,3)))
12538 - 2.*2.*f3pCorrelations->GetBinContent(9)
12539 * fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,5))
12540 * (fMixedHarmonicProductOfCorrelations->GetBinContent(fMixedHarmonicProductOfCorrelations->GetBin(2,119))
12541 - f2pCorrelations->GetBinContent(2)*f5pCorrelations->GetBinContent(65))
12542 / (dSumWLinearTwo2n2n*dSumWLinearFive6n2n4n2n2n-fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,5)))
12543 - 2.*2.*f2pCorrelations->GetBinContent(2)
12544 * fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(3,5))
12545 * (fMixedHarmonicProductOfCorrelations->GetBinContent(fMixedHarmonicProductOfCorrelations->GetBin(14,119))
12546 - f3pCorrelations->GetBinContent(9)*f5pCorrelations->GetBinContent(65))
12547 / (dSumWLinearThree6n4n2n*dSumWLinearFive6n2n4n2n2n-fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(3,5)));
12550 f5pCumulants->SetBinError(65,pow(dError,0.5));
12552 } // end of if(...)
12554 f5pCumulants->SetBinContent(66,f5pCorrelations->GetBinContent(66)-2.*f3pCorrelations->GetBinContent(9)*f2pCorrelations->GetBinContent(4));
12556 Double_t dSumWLinearTwo4n4n = 0.; // sum of linear event weights for <2>
12557 Double_t dSumWQuadraticTwo4n4n = 0.; // sum of quadratic event weights <2>
12558 Double_t dSpreadTwo4n4n = 0.; // weighted and biased estimator for sigma of <2>
12559 Double_t dSumWLinearThree6n4n2n = 0.; // sum of linear event weights for <2>
12560 Double_t dSumWQuadraticThree6n4n2n = 0.; // sum of quadratic event weights <2>
12561 Double_t dSpreadThree6n4n2n = 0.; // weighted and biased estimator for sigma of <2>
12562 Double_t dSumWLinearFive6n4n4n4n2n = 0.; // sum of linear event weights for <4>
12563 Double_t dSumWQuadraticFive6n4n4n4n2n = 0.; // sum of quadratic event weights <4>
12564 Double_t dSpreadFive6n4n4n4n2n = 0.; // weighted and biased estimator for sigma of <4>
12565 dSumWLinearTwo4n4n = fMixedHarmonicEventWeights[0]->GetBinContent(2);
12566 dSumWQuadraticTwo4n4n = fMixedHarmonicEventWeights[1]->GetBinContent(2);
12567 dSpreadTwo4n4n = f2pCorrelations->GetBinError(4);
12568 dSumWLinearThree6n4n2n = fMixedHarmonicEventWeights[0]->GetBinContent(3);
12569 dSumWQuadraticThree6n4n2n = fMixedHarmonicEventWeights[1]->GetBinContent(3);
12570 dSpreadThree6n4n2n = f3pCorrelations->GetBinError(9);
12571 dSumWLinearFive6n4n4n4n2n = fMixedHarmonicEventWeights[0]->GetBinContent(5);
12572 dSumWQuadraticFive6n4n4n4n2n = fMixedHarmonicEventWeights[1]->GetBinContent(5);
12573 dSpreadFive6n4n4n4n2n = f5pCorrelations->GetBinError(66);
12574 if(pow(dSumWLinearTwo4n4n,2.)>dSumWQuadraticTwo4n4n &&
12575 pow(dSumWLinearThree6n4n2n,2.)>dSumWQuadraticThree6n4n2n &&
12576 pow(dSumWLinearFive6n4n4n4n2n,2.)>dSumWQuadraticFive6n4n4n4n2n)
12578 Double_t dError = 4.*pow(f3pCorrelations->GetBinContent(9),2.)
12579 * pow((pow(dSumWQuadraticTwo4n4n,0.5)/dSumWLinearTwo4n4n)
12580 * dSpreadTwo4n4n*pow(pow(dSumWLinearTwo4n4n,2.)/(pow(dSumWLinearTwo4n4n,2.)-dSumWQuadraticTwo4n4n),0.5),2.)
12581 + 4.*pow(f2pCorrelations->GetBinContent(4),2.)
12582 * pow((pow(dSumWQuadraticThree6n4n2n,0.5)/dSumWLinearThree6n4n2n)
12583 * dSpreadThree6n4n2n*pow(pow(dSumWLinearThree6n4n2n,2.)/(pow(dSumWLinearThree6n4n2n,2.)-dSumWQuadraticThree6n4n2n),0.5),2.)
12584 + pow((pow(dSumWQuadraticFive6n4n4n4n2n,0.5)/dSumWLinearFive6n4n4n4n2n)
12585 * dSpreadFive6n4n4n4n2n*pow(pow(dSumWLinearFive6n4n4n4n2n,2.)/(pow(dSumWLinearFive6n4n4n4n2n,2.)-dSumWQuadraticFive6n4n4n4n2n),0.5),2.)
12586 + 4.*2.*f3pCorrelations->GetBinContent(9)*f2pCorrelations->GetBinContent(4)
12587 * fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,3))
12588 * (fMixedHarmonicProductOfCorrelations->GetBinContent(fMixedHarmonicProductOfCorrelations->GetBin(4,14))
12589 - f2pCorrelations->GetBinContent(4)*f3pCorrelations->GetBinContent(9))
12590 / (dSumWLinearTwo4n4n*dSumWLinearThree6n4n2n-fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,3)))
12591 - 2.*2.*f3pCorrelations->GetBinContent(9)
12592 * fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,5))
12593 * (fMixedHarmonicProductOfCorrelations->GetBinContent(fMixedHarmonicProductOfCorrelations->GetBin(4,120))
12594 - f2pCorrelations->GetBinContent(4)*f5pCorrelations->GetBinContent(66))
12595 / (dSumWLinearTwo4n4n*dSumWLinearFive6n4n4n4n2n-fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,5)))
12596 - 2.*2.*f2pCorrelations->GetBinContent(4)
12597 * fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(3,5))
12598 * (fMixedHarmonicProductOfCorrelations->GetBinContent(fMixedHarmonicProductOfCorrelations->GetBin(14,120))
12599 - f3pCorrelations->GetBinContent(9)*f5pCorrelations->GetBinContent(66))
12600 / (dSumWLinearThree6n4n2n*dSumWLinearFive6n4n4n4n2n-fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(3,5)));
12603 f5pCumulants->SetBinError(66,pow(dError,0.5));
12605 } // end of if(...)
12607 f5pCumulants->SetBinContent(67,f5pCorrelations->GetBinContent(67));
12609 Double_t dSumWLinear = 0.; // sum of linear event weights
12610 Double_t dSumWQuadratic = 0.; // sum of quadratic event weights
12611 Double_t dSpread = 0.; // weighted and biased estimator for sigma
12612 Double_t dError = 0.; // weighted and unbiased estimator for sigma
12613 dSumWLinear = fMixedHarmonicEventWeights[0]->GetBinContent(5);
12614 dSumWQuadratic = fMixedHarmonicEventWeights[1]->GetBinContent(5);
12615 dSpread = f5pCorrelations->GetBinError(67);
12616 if(pow(dSumWLinear,2.)>dSumWQuadratic)
12618 dError = (pow(dSumWQuadratic,0.5)/dSumWLinear)*dSpread*pow(pow(dSumWLinear,2.)/(pow(dSumWLinear,2.)-dSumWQuadratic),0.5);
12619 f5pCumulants->SetBinError(67,dError);
12620 } // end of if(pow(dSumWLinear,2.)>dSumWQuadratic)
12622 f5pCumulants->SetBinContent(68,f5pCorrelations->GetBinContent(68)-2.*f3pCorrelations->GetBinContent(10)*f2pCorrelations->GetBinContent(5));
12624 Double_t dSumWLinearTwo5n5n = 0.; // sum of linear event weights for <2>
12625 Double_t dSumWQuadraticTwo5n5n = 0.; // sum of quadratic event weights <2>
12626 Double_t dSpreadTwo5n5n = 0.; // weighted and biased estimator for sigma of <2>
12627 Double_t dSumWLinearThree6n5n1n = 0.; // sum of linear event weights for <2>
12628 Double_t dSumWQuadraticThree6n5n1n = 0.; // sum of quadratic event weights <2>
12629 Double_t dSpreadThree6n5n1n = 0.; // weighted and biased estimator for sigma of <2>
12630 Double_t dSumWLinearFive6n5n5n5n1n = 0.; // sum of linear event weights for <4>
12631 Double_t dSumWQuadraticFive6n5n5n5n1n = 0.; // sum of quadratic event weights <4>
12632 Double_t dSpreadFive6n5n5n5n1n = 0.; // weighted and biased estimator for sigma of <4>
12633 dSumWLinearTwo5n5n = fMixedHarmonicEventWeights[0]->GetBinContent(2);
12634 dSumWQuadraticTwo5n5n = fMixedHarmonicEventWeights[1]->GetBinContent(2);
12635 dSpreadTwo5n5n = f2pCorrelations->GetBinError(5);
12636 dSumWLinearThree6n5n1n = fMixedHarmonicEventWeights[0]->GetBinContent(3);
12637 dSumWQuadraticThree6n5n1n = fMixedHarmonicEventWeights[1]->GetBinContent(3);
12638 dSpreadThree6n5n1n = f3pCorrelations->GetBinError(10);
12639 dSumWLinearFive6n5n5n5n1n = fMixedHarmonicEventWeights[0]->GetBinContent(5);
12640 dSumWQuadraticFive6n5n5n5n1n = fMixedHarmonicEventWeights[1]->GetBinContent(5);
12641 dSpreadFive6n5n5n5n1n = f5pCorrelations->GetBinError(68);
12642 if(pow(dSumWLinearTwo5n5n,2.)>dSumWQuadraticTwo5n5n &&
12643 pow(dSumWLinearThree6n5n1n,2.)>dSumWQuadraticThree6n5n1n &&
12644 pow(dSumWLinearFive6n5n5n5n1n,2.)>dSumWQuadraticFive6n5n5n5n1n)
12646 Double_t dError = 4.*pow(f3pCorrelations->GetBinContent(10),2.)
12647 * pow((pow(dSumWQuadraticTwo5n5n,0.5)/dSumWLinearTwo5n5n)
12648 * dSpreadTwo5n5n*pow(pow(dSumWLinearTwo5n5n,2.)/(pow(dSumWLinearTwo5n5n,2.)-dSumWQuadraticTwo5n5n),0.5),2.)
12649 + 4.*pow(f2pCorrelations->GetBinContent(5),2.)
12650 * pow((pow(dSumWQuadraticThree6n5n1n,0.5)/dSumWLinearThree6n5n1n)
12651 * dSpreadThree6n5n1n*pow(pow(dSumWLinearThree6n5n1n,2.)/(pow(dSumWLinearThree6n5n1n,2.)-dSumWQuadraticThree6n5n1n),0.5),2.)
12652 + pow((pow(dSumWQuadraticFive6n5n5n5n1n,0.5)/dSumWLinearFive6n5n5n5n1n)
12653 * dSpreadFive6n5n5n5n1n*pow(pow(dSumWLinearFive6n5n5n5n1n,2.)/(pow(dSumWLinearFive6n5n5n5n1n,2.)-dSumWQuadraticFive6n5n5n5n1n),0.5),2.)
12654 + 4.*2.*f3pCorrelations->GetBinContent(10)*f2pCorrelations->GetBinContent(5)
12655 * fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,3))
12656 * (fMixedHarmonicProductOfCorrelations->GetBinContent(fMixedHarmonicProductOfCorrelations->GetBin(5,15))
12657 - f2pCorrelations->GetBinContent(5)*f3pCorrelations->GetBinContent(10))
12658 / (dSumWLinearTwo5n5n*dSumWLinearThree6n5n1n-fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,3)))
12659 - 2.*2.*f3pCorrelations->GetBinContent(10)
12660 * fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,5))
12661 * (fMixedHarmonicProductOfCorrelations->GetBinContent(fMixedHarmonicProductOfCorrelations->GetBin(5,122))
12662 - f2pCorrelations->GetBinContent(5)*f5pCorrelations->GetBinContent(68))
12663 / (dSumWLinearTwo5n5n*dSumWLinearFive6n5n5n5n1n-fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,5)))
12664 - 2.*2.*f2pCorrelations->GetBinContent(5)
12665 * fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(3,5))
12666 * (fMixedHarmonicProductOfCorrelations->GetBinContent(fMixedHarmonicProductOfCorrelations->GetBin(15,122))
12667 - f3pCorrelations->GetBinContent(10)*f5pCorrelations->GetBinContent(68))
12668 / (dSumWLinearThree6n5n1n*dSumWLinearFive6n5n5n5n1n-fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(3,5)));
12671 f5pCumulants->SetBinError(68,pow(dError,0.5));
12673 } // end of if(...)
12675 f5pCumulants->SetBinContent(69,f5pCorrelations->GetBinContent(69));
12677 Double_t dSumWLinear = 0.; // sum of linear event weights
12678 Double_t dSumWQuadratic = 0.; // sum of quadratic event weights
12679 Double_t dSpread = 0.; // weighted and biased estimator for sigma
12680 Double_t dError = 0.; // weighted and unbiased estimator for sigma
12681 dSumWLinear = fMixedHarmonicEventWeights[0]->GetBinContent(5);
12682 dSumWQuadratic = fMixedHarmonicEventWeights[1]->GetBinContent(5);
12683 dSpread = f5pCorrelations->GetBinError(69);
12684 if(pow(dSumWLinear,2.)>dSumWQuadratic)
12686 dError = (pow(dSumWQuadratic,0.5)/dSumWLinear)*dSpread*pow(pow(dSumWLinear,2.)/(pow(dSumWLinear,2.)-dSumWQuadratic),0.5);
12687 f5pCumulants->SetBinError(69,dError);
12688 } // end of if(pow(dSumWLinear,2.)>dSumWQuadratic)
12690 f5pCumulants->SetBinContent(70,f5pCorrelations->GetBinContent(70)-2.*f3pCorrelations->GetBinContent(9)*f2pCorrelations->GetBinContent(6));
12692 Double_t dSumWLinearTwo6n6n = 0.; // sum of linear event weights for <2>
12693 Double_t dSumWQuadraticTwo6n6n = 0.; // sum of quadratic event weights <2>
12694 Double_t dSpreadTwo6n6n = 0.; // weighted and biased estimator for sigma of <2>
12695 Double_t dSumWLinearThree6n4n2n = 0.; // sum of linear event weights for <2>
12696 Double_t dSumWQuadraticThree6n4n2n = 0.; // sum of quadratic event weights <2>
12697 Double_t dSpreadThree6n4n2n = 0.; // weighted and biased estimator for sigma of <2>
12698 Double_t dSumWLinearFive6n6n6n4n2n = 0.; // sum of linear event weights for <4>
12699 Double_t dSumWQuadraticFive6n6n6n4n2n = 0.; // sum of quadratic event weights <4>
12700 Double_t dSpreadFive6n6n6n4n2n = 0.; // weighted and biased estimator for sigma of <4>
12701 dSumWLinearTwo6n6n = fMixedHarmonicEventWeights[0]->GetBinContent(2);
12702 dSumWQuadraticTwo6n6n = fMixedHarmonicEventWeights[1]->GetBinContent(2);
12703 dSpreadTwo6n6n = f2pCorrelations->GetBinError(6);
12704 dSumWLinearThree6n4n2n = fMixedHarmonicEventWeights[0]->GetBinContent(3);
12705 dSumWQuadraticThree6n4n2n = fMixedHarmonicEventWeights[1]->GetBinContent(3);
12706 dSpreadThree6n4n2n = f3pCorrelations->GetBinError(9);
12707 dSumWLinearFive6n6n6n4n2n = fMixedHarmonicEventWeights[0]->GetBinContent(5);
12708 dSumWQuadraticFive6n6n6n4n2n = fMixedHarmonicEventWeights[1]->GetBinContent(5);
12709 dSpreadFive6n6n6n4n2n = f5pCorrelations->GetBinError(70);
12710 if(pow(dSumWLinearTwo6n6n,2.)>dSumWQuadraticTwo6n6n &&
12711 pow(dSumWLinearThree6n4n2n,2.)>dSumWQuadraticThree6n4n2n &&
12712 pow(dSumWLinearFive6n6n6n4n2n,2.)>dSumWQuadraticFive6n6n6n4n2n)
12714 Double_t dError = 4.*pow(f3pCorrelations->GetBinContent(9),2.)
12715 * pow((pow(dSumWQuadraticTwo6n6n,0.5)/dSumWLinearTwo6n6n)
12716 * dSpreadTwo6n6n*pow(pow(dSumWLinearTwo6n6n,2.)/(pow(dSumWLinearTwo6n6n,2.)-dSumWQuadraticTwo6n6n),0.5),2.)
12717 + 4.*pow(f2pCorrelations->GetBinContent(6),2.)
12718 * pow((pow(dSumWQuadraticThree6n4n2n,0.5)/dSumWLinearThree6n4n2n)
12719 * dSpreadThree6n4n2n*pow(pow(dSumWLinearThree6n4n2n,2.)/(pow(dSumWLinearThree6n4n2n,2.)-dSumWQuadraticThree6n4n2n),0.5),2.)
12720 + pow((pow(dSumWQuadraticFive6n6n6n4n2n,0.5)/dSumWLinearFive6n6n6n4n2n)
12721 * dSpreadFive6n6n6n4n2n*pow(pow(dSumWLinearFive6n6n6n4n2n,2.)/(pow(dSumWLinearFive6n6n6n4n2n,2.)-dSumWQuadraticFive6n6n6n4n2n),0.5),2.)
12722 + 4.*2.*f3pCorrelations->GetBinContent(9)*f2pCorrelations->GetBinContent(6)
12723 * fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,3))
12724 * (fMixedHarmonicProductOfCorrelations->GetBinContent(fMixedHarmonicProductOfCorrelations->GetBin(6,14))
12725 - f2pCorrelations->GetBinContent(6)*f3pCorrelations->GetBinContent(9))
12726 / (dSumWLinearTwo6n6n*dSumWLinearThree6n4n2n-fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,3)))
12727 - 2.*2.*f3pCorrelations->GetBinContent(9)
12728 * fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,5))
12729 * (fMixedHarmonicProductOfCorrelations->GetBinContent(fMixedHarmonicProductOfCorrelations->GetBin(6,124))
12730 - f2pCorrelations->GetBinContent(6)*f5pCorrelations->GetBinContent(70))
12731 / (dSumWLinearTwo6n6n*dSumWLinearFive6n6n6n4n2n-fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,5)))
12732 - 2.*2.*f2pCorrelations->GetBinContent(6)
12733 * fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(3,5))
12734 * (fMixedHarmonicProductOfCorrelations->GetBinContent(fMixedHarmonicProductOfCorrelations->GetBin(14,124))
12735 - f3pCorrelations->GetBinContent(9)*f5pCorrelations->GetBinContent(70))
12736 / (dSumWLinearThree6n4n2n*dSumWLinearFive6n6n6n4n2n-fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(3,5)));
12739 f5pCumulants->SetBinError(70,pow(dError,0.5));
12741 } // end of if(...)
12748 f5pCumulants->SetBinContent(71,f5pCorrelations->GetBinContent(71)-2.*f3pCorrelations->GetBinContent(10)*f2pCorrelations->GetBinContent(6));
12750 Double_t dSumWLinearTwo6n6n = 0.; // sum of linear event weights for <2>
12751 Double_t dSumWQuadraticTwo6n6n = 0.; // sum of quadratic event weights <2>
12752 Double_t dSpreadTwo6n6n = 0.; // weighted and biased estimator for sigma of <2>
12753 Double_t dSumWLinearThree6n5n1n = 0.; // sum of linear event weights for <2>
12754 Double_t dSumWQuadraticThree6n5n1n = 0.; // sum of quadratic event weights <2>
12755 Double_t dSpreadThree6n5n1n = 0.; // weighted and biased estimator for sigma of <2>
12756 Double_t dSumWLinearFive6n6n6n5n1n = 0.; // sum of linear event weights for <4>
12757 Double_t dSumWQuadraticFive6n6n6n5n1n = 0.; // sum of quadratic event weights <4>
12758 Double_t dSpreadFive6n6n6n5n1n = 0.; // weighted and biased estimator for sigma of <4>
12759 dSumWLinearTwo6n6n = fMixedHarmonicEventWeights[0]->GetBinContent(2);
12760 dSumWQuadraticTwo6n6n = fMixedHarmonicEventWeights[1]->GetBinContent(2);
12761 dSpreadTwo6n6n = f2pCorrelations->GetBinError(6);
12762 dSumWLinearThree6n5n1n = fMixedHarmonicEventWeights[0]->GetBinContent(3);
12763 dSumWQuadraticThree6n5n1n = fMixedHarmonicEventWeights[1]->GetBinContent(3);
12764 dSpreadThree6n5n1n = f3pCorrelations->GetBinError(10);
12765 dSumWLinearFive6n6n6n5n1n = fMixedHarmonicEventWeights[0]->GetBinContent(5);
12766 dSumWQuadraticFive6n6n6n5n1n = fMixedHarmonicEventWeights[1]->GetBinContent(5);
12767 dSpreadFive6n6n6n5n1n = f5pCorrelations->GetBinError(71);
12768 if(pow(dSumWLinearTwo6n6n,2.)>dSumWQuadraticTwo6n6n &&
12769 pow(dSumWLinearThree6n5n1n,2.)>dSumWQuadraticThree6n5n1n &&
12770 pow(dSumWLinearFive6n6n6n5n1n,2.)>dSumWQuadraticFive6n6n6n5n1n)
12772 Double_t dError = 4.*pow(f3pCorrelations->GetBinContent(10),2.)
12773 * pow((pow(dSumWQuadraticTwo6n6n,0.5)/dSumWLinearTwo6n6n)
12774 * dSpreadTwo6n6n*pow(pow(dSumWLinearTwo6n6n,2.)/(pow(dSumWLinearTwo6n6n,2.)-dSumWQuadraticTwo6n6n),0.5),2.)
12775 + 4.*pow(f2pCorrelations->GetBinContent(6),2.)
12776 * pow((pow(dSumWQuadraticThree6n5n1n,0.5)/dSumWLinearThree6n5n1n)
12777 * dSpreadThree6n5n1n*pow(pow(dSumWLinearThree6n5n1n,2.)/(pow(dSumWLinearThree6n5n1n,2.)-dSumWQuadraticThree6n5n1n),0.5),2.)
12778 + pow((pow(dSumWQuadraticFive6n6n6n5n1n,0.5)/dSumWLinearFive6n6n6n5n1n)
12779 * dSpreadFive6n6n6n5n1n*pow(pow(dSumWLinearFive6n6n6n5n1n,2.)/(pow(dSumWLinearFive6n6n6n5n1n,2.)-dSumWQuadraticFive6n6n6n5n1n),0.5),2.)
12780 + 4.*2.*f3pCorrelations->GetBinContent(10)*f2pCorrelations->GetBinContent(6)
12781 * fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,3))
12782 * (fMixedHarmonicProductOfCorrelations->GetBinContent(fMixedHarmonicProductOfCorrelations->GetBin(6,15))
12783 - f2pCorrelations->GetBinContent(6)*f3pCorrelations->GetBinContent(10))
12784 / (dSumWLinearTwo6n6n*dSumWLinearThree6n5n1n-fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,3)))
12785 - 2.*2.*f3pCorrelations->GetBinContent(10)
12786 * fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,5))
12787 * (fMixedHarmonicProductOfCorrelations->GetBinContent(fMixedHarmonicProductOfCorrelations->GetBin(6,125))
12788 - f2pCorrelations->GetBinContent(6)*f5pCorrelations->GetBinContent(71))
12789 / (dSumWLinearTwo6n6n*dSumWLinearFive6n6n6n5n1n-fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(2,5)))
12790 - 2.*2.*f2pCorrelations->GetBinContent(6)
12791 * fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(3,5))
12792 * (fMixedHarmonicProductOfCorrelations->GetBinContent(fMixedHarmonicProductOfCorrelations->GetBin(15,125))
12793 - f3pCorrelations->GetBinContent(10)*f5pCorrelations->GetBinContent(71))
12794 / (dSumWLinearThree6n5n1n*dSumWLinearFive6n6n6n5n1n-fMixedHarmonicProductOfEventWeights->GetBinContent(fMixedHarmonicProductOfEventWeights->GetBin(3,5)));
12797 f5pCumulants->SetBinError(71,pow(dError,0.5));
12799 } // end of if(...)
12801 // d3) "Four distinct harmonics":
12802 for(Int_t b=73;b<=83;b++)
12804 f5pCumulants->SetBinContent(b,f5pCorrelations->GetBinContent(b));
12805 Double_t dSumWLinear = 0.; // sum of linear event weights
12806 Double_t dSumWQuadratic = 0.; // sum of quadratic event weights
12807 Double_t dSpread = 0.; // weighted and biased estimator for sigma
12808 Double_t dError = 0.; // weighted and unbiased estimator for sigma
12809 dSumWLinear = fMixedHarmonicEventWeights[0]->GetBinContent(5);
12810 dSumWQuadratic = fMixedHarmonicEventWeights[1]->GetBinContent(5);
12811 dSpread = f5pCorrelations->GetBinError(b);
12812 if(pow(dSumWLinear,2.)>dSumWQuadratic)
12814 dError = (pow(dSumWQuadratic,0.5)/dSumWLinear)*dSpread*pow(pow(dSumWLinear,2.)/(pow(dSumWLinear,2.)-dSumWQuadratic),0.5);
12815 f5pCumulants->SetBinError(b,dError);
12816 } // end of if(pow(dSumWLinear,2.)>dSumWQuadratic)
12817 } // end of for(Int_t b=73;b<=83;b++)
12818 // d4) "Five distinct harmonics":
12819 for(Int_t b=85;b<=87;b++)
12821 f5pCumulants->SetBinContent(b,f5pCorrelations->GetBinContent(b));
12822 Double_t dSumWLinear = 0.; // sum of linear event weights
12823 Double_t dSumWQuadratic = 0.; // sum of quadratic event weights
12824 Double_t dSpread = 0.; // weighted and biased estimator for sigma
12825 Double_t dError = 0.; // weighted and unbiased estimator for sigma
12826 dSumWLinear = fMixedHarmonicEventWeights[0]->GetBinContent(5);
12827 dSumWQuadratic = fMixedHarmonicEventWeights[1]->GetBinContent(5);
12828 dSpread = f5pCorrelations->GetBinError(b);
12829 if(pow(dSumWLinear,2.)>dSumWQuadratic)
12831 dError = (pow(dSumWQuadratic,0.5)/dSumWLinear)*dSpread*pow(pow(dSumWLinear,2.)/(pow(dSumWLinear,2.)-dSumWQuadratic),0.5);
12832 f5pCumulants->SetBinError(b,dError);
12833 } // end of if(pow(dSumWLinear,2.)>dSumWQuadratic)
12834 } // end of for(Int_t b=85;b<=87;b++)
12836 } // end of void AliFlowAnalysisWithQCumulants::CalculateCumulantsMixedHarmonics()
12838 //===================================================================================================================
12840 void AliFlowAnalysisWithQCumulants::StorePhiDistributionForOneEvent(AliFlowEventSimple *anEvent)
12842 // Store phi distribution for one event to illustrate flow.
12844 if(fPhiDistributionForOneEvent->GetEntries()>0){return;} // store only phi distribution for one event
12846 Double_t vMin = fPhiDistributionForOneEventSettings[0];
12847 Double_t vMax = fPhiDistributionForOneEventSettings[1];
12848 Double_t refMultMin = fPhiDistributionForOneEventSettings[2];
12849 Double_t refMultMax = fPhiDistributionForOneEventSettings[3];
12851 Double_t vEBE = 0.;
12852 Double_t cumulant4thEBE = fIntFlowCorrelationsEBE->GetBinContent(2)-2.*pow(fIntFlowCorrelationsEBE->GetBinContent(1),2.);
12853 if(cumulant4thEBE<0.)
12855 vEBE = pow(-1.*cumulant4thEBE,0.25);
12856 if((vEBE>vMin && vEBE<vMax) && (fReferenceMultiplicityEBE>refMultMin && fReferenceMultiplicityEBE<refMultMax))
12858 fPhiDistributionForOneEvent->SetTitle(Form("v_{%i} = %f",fHarmonic,vEBE));
12859 for(Int_t p=0;p<anEvent->NumberOfTracks();p++)
12861 if(anEvent->GetTrack(p)->InRPSelection())
12863 fPhiDistributionForOneEvent->Fill(anEvent->GetTrack(p)->Phi());
12865 } // end of for(Int_t p=0;p<anEvent->NumberOfTracks();p++)
12868 fPhiDistributionForOneEvent->SetTitle(Form("v_{%i} = %f, out of specified boundaries",fHarmonic,vEBE));
12871 } // end of if(cumulant4thEBE<0.)
12873 } // end of void AliFlowAnalysisWithQCumulants::StorePhiDistributionForOneEvent(AliFlowEventSimple *anEvent)
12875 //===================================================================================================================
12877 void AliFlowAnalysisWithQCumulants::CalculateIntFlowProductOfCorrelations()
12879 // Calculate averages of products of correlations for integrated flow.
12881 // Multiplicity bin of an event (relevant for all histos vs M):
12882 Double_t dMultiplicityBin = 0.;
12883 if(fMultiplicityIs==AliFlowCommonConstants::kRP)
12885 dMultiplicityBin = fNumberOfRPsEBE+0.5;
12886 } else if(fMultiplicityIs==AliFlowCommonConstants::kExternal)
12888 dMultiplicityBin = fReferenceMultiplicityEBE+0.5;
12889 } else if(fMultiplicityIs==AliFlowCommonConstants::kPOI)
12891 dMultiplicityBin = fNumberOfPOIsEBE+0.5;
12896 for(Int_t ci1=1;ci1<4;ci1++)
12898 for(Int_t ci2=ci1+1;ci2<=4;ci2++)
12900 fIntFlowProductOfCorrelationsPro->Fill(0.5+counter,
12901 fIntFlowCorrelationsEBE->GetBinContent(ci1)*
12902 fIntFlowCorrelationsEBE->GetBinContent(ci2),
12903 fIntFlowEventWeightsForCorrelationsEBE->GetBinContent(ci1)*
12904 fIntFlowEventWeightsForCorrelationsEBE->GetBinContent(ci2));
12905 // products versus multiplicity: // [0=<<2><4>>,1=<<2><6>>,2=<<2><8>>,3=<<4><6>>,4=<<4><8>>,5=<<6><8>>]
12906 if(fCalculateCumulantsVsM)
12908 fIntFlowProductOfCorrelationsVsMPro[counter]->Fill(dMultiplicityBin, // to be improved: dMult => sum of weights ?
12909 fIntFlowCorrelationsEBE->GetBinContent(ci1)*
12910 fIntFlowCorrelationsEBE->GetBinContent(ci2),
12911 fIntFlowEventWeightsForCorrelationsEBE->GetBinContent(ci1)*
12912 fIntFlowEventWeightsForCorrelationsEBE->GetBinContent(ci2));
12913 } // end of if(fCalculateCumulantsVsM)
12918 } // end of AliFlowAnalysisWithQCumulants::CalculateIntFlowProductOfCorrelations()
12921 //=======================================================================================================================
12924 void AliFlowAnalysisWithQCumulants::CalculateIntFlowProductOfCorrectionTermsForNUA()
12926 // Calculate averages of products of correction terms for NUA.
12928 // a) Binning of fIntFlowProductOfCorrectionTermsForNUAPro is organized as follows:
12929 // 1st bin: <<2><cos(phi)>>
12930 // 2nd bin: <<2><sin(phi)>>
12931 // 3rd bin: <<cos(phi)><sin(phi)>>
12932 // 4th bin: <<2><cos(phi1+phi2)>>
12933 // 5th bin: <<2><sin(phi1+phi2)>>
12934 // 6th bin: <<2><cos(phi1-phi2-phi3)>>
12935 // 7th bin: <<2><sin(phi1-phi2-phi3)>>
12936 // 8th bin: <<4><cos(phi1)>>
12937 // 9th bin: <<4><sin(phi1)>>
12938 // 10th bin: <<4><cos(phi1+phi2)>>
12939 // 11th bin: <<4><sin(phi1+phi2)>>
12940 // 12th bin: <<4><cos(phi1-phi2-phi3)>>
12941 // 13th bin: <<4><sin(phi1-phi2-phi3)>>
12942 // 14th bin: <<cos(phi1)><cos(phi1+phi2)>>
12943 // 15th bin: <<cos(phi1)><sin(phi1+phi2)>>
12944 // 16th bin: <<cos(phi1)><cos(phi1-phi2-phi3)>>
12945 // 17th bin: <<cos(phi1)><sin(phi1-phi2-phi3)>>
12946 // 18th bin: <<sin(phi1)><cos(phi1+phi2)>>
12947 // 19th bin: <<sin(phi1)><sin(phi1+phi2)>>
12948 // 20th bin: <<sin(phi1)><cos(phi1-phi2-phi3)>>
12949 // 21st bin: <<sin(phi1)><sin(phi1-phi2-phi3)>>
12950 // 22nd bin: <<cos(phi1+phi2)><sin(phi1+phi2)>>
12951 // 23rd bin: <<cos(phi1+phi2)><cos(phi1-phi2-phi3)>>
12952 // 24th bin: <<cos(phi1+phi2)><sin(phi1-phi2-phi3)>>
12953 // 25th bin: <<sin(phi1+phi2)><cos(phi1-phi2-phi3)>>
12954 // 26th bin: <<sin(phi1+phi2)><sin(phi1-phi2-phi3)>>
12955 // 27th bin: <<cos(phi1-phi2-phi3)><sin(phi1-phi2-phi3)>>
12957 // <<2><cos(phi)>>:
12958 fIntFlowProductOfCorrectionTermsForNUAPro->Fill(0.5,
12959 fIntFlowCorrelationsEBE->GetBinContent(1)*fIntFlowCorrectionTermsForNUAEBE[1]->GetBinContent(1),
12960 fIntFlowEventWeightsForCorrelationsEBE->GetBinContent(1)
12961 *fIntFlowEventWeightForCorrectionTermsForNUAEBE[1]->GetBinContent(1));
12962 // <<2><sin(phi)>>:
12963 fIntFlowProductOfCorrectionTermsForNUAPro->Fill(1.5,
12964 fIntFlowCorrelationsEBE->GetBinContent(1)*fIntFlowCorrectionTermsForNUAEBE[0]->GetBinContent(1),
12965 fIntFlowEventWeightsForCorrelationsEBE->GetBinContent(1)
12966 *fIntFlowEventWeightForCorrectionTermsForNUAEBE[0]->GetBinContent(1));
12967 // <<cos(phi)><sin(phi)>>:
12968 fIntFlowProductOfCorrectionTermsForNUAPro->Fill(2.5,
12969 fIntFlowCorrectionTermsForNUAEBE[1]->GetBinContent(1)*fIntFlowCorrectionTermsForNUAEBE[0]->GetBinContent(1),
12970 fIntFlowEventWeightForCorrectionTermsForNUAEBE[1]->GetBinContent(1)
12971 *fIntFlowEventWeightForCorrectionTermsForNUAEBE[0]->GetBinContent(1));
12972 // <<2><cos(phi1+phi2)>>:
12973 fIntFlowProductOfCorrectionTermsForNUAPro->Fill(3.5,
12974 fIntFlowCorrelationsEBE->GetBinContent(1)*fIntFlowCorrectionTermsForNUAEBE[1]->GetBinContent(2),
12975 fIntFlowEventWeightsForCorrelationsEBE->GetBinContent(1)
12976 *fIntFlowEventWeightForCorrectionTermsForNUAEBE[1]->GetBinContent(2));
12977 // <<2><sin(phi1+phi2)>>:
12978 fIntFlowProductOfCorrectionTermsForNUAPro->Fill(4.5,
12979 fIntFlowCorrelationsEBE->GetBinContent(1)*fIntFlowCorrectionTermsForNUAEBE[0]->GetBinContent(2),
12980 fIntFlowEventWeightsForCorrelationsEBE->GetBinContent(1)
12981 *fIntFlowEventWeightForCorrectionTermsForNUAEBE[0]->GetBinContent(2));
12982 // <<2><cos(phi1-phi2-phi3)>>:
12983 fIntFlowProductOfCorrectionTermsForNUAPro->Fill(5.5,
12984 fIntFlowCorrelationsEBE->GetBinContent(1)*fIntFlowCorrectionTermsForNUAEBE[1]->GetBinContent(3),
12985 fIntFlowEventWeightsForCorrelationsEBE->GetBinContent(1)
12986 *fIntFlowEventWeightForCorrectionTermsForNUAEBE[1]->GetBinContent(3));
12987 // <<2><sin(phi1-phi2-phi3)>>:
12988 fIntFlowProductOfCorrectionTermsForNUAPro->Fill(6.5,
12989 fIntFlowCorrelationsEBE->GetBinContent(1)*fIntFlowCorrectionTermsForNUAEBE[0]->GetBinContent(3),
12990 fIntFlowEventWeightsForCorrelationsEBE->GetBinContent(1)
12991 *fIntFlowEventWeightForCorrectionTermsForNUAEBE[0]->GetBinContent(3));
12992 // <<4><cos(phi1)>>:
12993 fIntFlowProductOfCorrectionTermsForNUAPro->Fill(7.5,
12994 fIntFlowCorrelationsEBE->GetBinContent(2)*fIntFlowCorrectionTermsForNUAEBE[1]->GetBinContent(1),
12995 fIntFlowEventWeightsForCorrelationsEBE->GetBinContent(2)
12996 *fIntFlowEventWeightForCorrectionTermsForNUAEBE[1]->GetBinContent(1));
12997 // <<4><sin(phi1)>>:
12998 fIntFlowProductOfCorrectionTermsForNUAPro->Fill(8.5,
12999 fIntFlowCorrelationsEBE->GetBinContent(2)*fIntFlowCorrectionTermsForNUAEBE[0]->GetBinContent(1),
13000 fIntFlowEventWeightsForCorrelationsEBE->GetBinContent(2)
13001 *fIntFlowEventWeightForCorrectionTermsForNUAEBE[0]->GetBinContent(1));
13002 // <<4><cos(phi1+phi2)>>:
13003 fIntFlowProductOfCorrectionTermsForNUAPro->Fill(9.5,
13004 fIntFlowCorrelationsEBE->GetBinContent(2)*fIntFlowCorrectionTermsForNUAEBE[1]->GetBinContent(2),
13005 fIntFlowEventWeightsForCorrelationsEBE->GetBinContent(2)
13006 *fIntFlowEventWeightForCorrectionTermsForNUAEBE[1]->GetBinContent(2));
13007 // <<4><sin(phi1+phi2)>>:
13008 fIntFlowProductOfCorrectionTermsForNUAPro->Fill(10.5,
13009 fIntFlowCorrelationsEBE->GetBinContent(2)*fIntFlowCorrectionTermsForNUAEBE[0]->GetBinContent(2),
13010 fIntFlowEventWeightsForCorrelationsEBE->GetBinContent(2)
13011 *fIntFlowEventWeightForCorrectionTermsForNUAEBE[0]->GetBinContent(2));
13012 // <<4><cos(phi1-phi2-phi3)>>:
13013 fIntFlowProductOfCorrectionTermsForNUAPro->Fill(11.5,
13014 fIntFlowCorrelationsEBE->GetBinContent(2)*fIntFlowCorrectionTermsForNUAEBE[1]->GetBinContent(3),
13015 fIntFlowEventWeightsForCorrelationsEBE->GetBinContent(2)
13016 *fIntFlowEventWeightForCorrectionTermsForNUAEBE[1]->GetBinContent(3));
13017 // <<4><sin(phi1-phi2-phi3)>>:
13018 fIntFlowProductOfCorrectionTermsForNUAPro->Fill(12.5,
13019 fIntFlowCorrelationsEBE->GetBinContent(2)*fIntFlowCorrectionTermsForNUAEBE[0]->GetBinContent(3),
13020 fIntFlowEventWeightsForCorrelationsEBE->GetBinContent(2)
13021 *fIntFlowEventWeightForCorrectionTermsForNUAEBE[0]->GetBinContent(3));
13022 // <<cos(phi1)><cos(phi1+phi2)>>:
13023 fIntFlowProductOfCorrectionTermsForNUAPro->Fill(13.5,
13024 fIntFlowCorrectionTermsForNUAEBE[1]->GetBinContent(1)*fIntFlowCorrectionTermsForNUAEBE[1]->GetBinContent(2),
13025 fIntFlowEventWeightForCorrectionTermsForNUAEBE[1]->GetBinContent(1)
13026 *fIntFlowEventWeightForCorrectionTermsForNUAEBE[1]->GetBinContent(2));
13027 // <<cos(phi1)><sin(phi1+phi2)>>:
13028 fIntFlowProductOfCorrectionTermsForNUAPro->Fill(14.5,
13029 fIntFlowCorrectionTermsForNUAEBE[1]->GetBinContent(1)*fIntFlowCorrectionTermsForNUAEBE[0]->GetBinContent(2),
13030 fIntFlowEventWeightForCorrectionTermsForNUAEBE[1]->GetBinContent(1)
13031 *fIntFlowEventWeightForCorrectionTermsForNUAEBE[0]->GetBinContent(2));
13032 // <<cos(phi1)><cos(phi1-phi2-phi3)>>:
13033 fIntFlowProductOfCorrectionTermsForNUAPro->Fill(15.5,
13034 fIntFlowCorrectionTermsForNUAEBE[1]->GetBinContent(1)*fIntFlowCorrectionTermsForNUAEBE[1]->GetBinContent(3),
13035 fIntFlowEventWeightForCorrectionTermsForNUAEBE[1]->GetBinContent(1)
13036 *fIntFlowEventWeightForCorrectionTermsForNUAEBE[1]->GetBinContent(3));
13037 // <<cos(phi1)><sin(phi1-phi2-phi3)>>:
13038 fIntFlowProductOfCorrectionTermsForNUAPro->Fill(16.5,
13039 fIntFlowCorrectionTermsForNUAEBE[1]->GetBinContent(1)*fIntFlowCorrectionTermsForNUAEBE[0]->GetBinContent(3),
13040 fIntFlowEventWeightForCorrectionTermsForNUAEBE[1]->GetBinContent(1)
13041 *fIntFlowEventWeightForCorrectionTermsForNUAEBE[0]->GetBinContent(3));
13042 // <<sin(phi1)><cos(phi1+phi2)>>:
13043 fIntFlowProductOfCorrectionTermsForNUAPro->Fill(17.5,
13044 fIntFlowCorrectionTermsForNUAEBE[0]->GetBinContent(1)*fIntFlowCorrectionTermsForNUAEBE[1]->GetBinContent(2),
13045 fIntFlowEventWeightForCorrectionTermsForNUAEBE[0]->GetBinContent(1)
13046 *fIntFlowEventWeightForCorrectionTermsForNUAEBE[1]->GetBinContent(2));
13047 // <<sin(phi1)><sin(phi1+phi2)>>:
13048 fIntFlowProductOfCorrectionTermsForNUAPro->Fill(18.5,
13049 fIntFlowCorrectionTermsForNUAEBE[0]->GetBinContent(1)*fIntFlowCorrectionTermsForNUAEBE[0]->GetBinContent(2),
13050 fIntFlowEventWeightForCorrectionTermsForNUAEBE[0]->GetBinContent(1)
13051 *fIntFlowEventWeightForCorrectionTermsForNUAEBE[0]->GetBinContent(2));
13052 // <<sin(phi1)><cos(phi1-phi2-phi3)>>:
13053 fIntFlowProductOfCorrectionTermsForNUAPro->Fill(19.5,
13054 fIntFlowCorrectionTermsForNUAEBE[0]->GetBinContent(1)*fIntFlowCorrectionTermsForNUAEBE[1]->GetBinContent(3),
13055 fIntFlowEventWeightForCorrectionTermsForNUAEBE[0]->GetBinContent(1)
13056 *fIntFlowEventWeightForCorrectionTermsForNUAEBE[1]->GetBinContent(3));
13057 // <<sin(phi1)><sin(phi1-phi2-phi3)>>:
13058 fIntFlowProductOfCorrectionTermsForNUAPro->Fill(20.5,
13059 fIntFlowCorrectionTermsForNUAEBE[0]->GetBinContent(1)*fIntFlowCorrectionTermsForNUAEBE[0]->GetBinContent(3),
13060 fIntFlowEventWeightForCorrectionTermsForNUAEBE[0]->GetBinContent(1)
13061 *fIntFlowEventWeightForCorrectionTermsForNUAEBE[0]->GetBinContent(3));
13062 // <<cos(phi1+phi2)><sin(phi1+phi2)>>:
13063 fIntFlowProductOfCorrectionTermsForNUAPro->Fill(21.5,
13064 fIntFlowCorrectionTermsForNUAEBE[1]->GetBinContent(2)*fIntFlowCorrectionTermsForNUAEBE[0]->GetBinContent(2),
13065 fIntFlowEventWeightForCorrectionTermsForNUAEBE[1]->GetBinContent(2)
13066 *fIntFlowEventWeightForCorrectionTermsForNUAEBE[0]->GetBinContent(2));
13067 // <<cos(phi1+phi2)><cos(phi1-phi2-phi3)>>:
13068 fIntFlowProductOfCorrectionTermsForNUAPro->Fill(22.5,
13069 fIntFlowCorrectionTermsForNUAEBE[1]->GetBinContent(2)*fIntFlowCorrectionTermsForNUAEBE[1]->GetBinContent(3),
13070 fIntFlowEventWeightForCorrectionTermsForNUAEBE[1]->GetBinContent(2)
13071 *fIntFlowEventWeightForCorrectionTermsForNUAEBE[1]->GetBinContent(3));
13072 // <<cos(phi1+phi2)><sin(phi1-phi2-phi3)>>:
13073 fIntFlowProductOfCorrectionTermsForNUAPro->Fill(23.5,
13074 fIntFlowCorrectionTermsForNUAEBE[1]->GetBinContent(2)*fIntFlowCorrectionTermsForNUAEBE[0]->GetBinContent(3),
13075 fIntFlowEventWeightForCorrectionTermsForNUAEBE[1]->GetBinContent(2)
13076 *fIntFlowEventWeightForCorrectionTermsForNUAEBE[0]->GetBinContent(3));
13077 // <<sin(phi1+phi2)><cos(phi1-phi2-phi3)>>:
13078 fIntFlowProductOfCorrectionTermsForNUAPro->Fill(24.5,
13079 fIntFlowCorrectionTermsForNUAEBE[0]->GetBinContent(2)*fIntFlowCorrectionTermsForNUAEBE[1]->GetBinContent(3),
13080 fIntFlowEventWeightForCorrectionTermsForNUAEBE[0]->GetBinContent(2)
13081 *fIntFlowEventWeightForCorrectionTermsForNUAEBE[1]->GetBinContent(3));
13082 // <<sin(phi1+phi2)><sin(phi1-phi2-phi3)>>:
13083 fIntFlowProductOfCorrectionTermsForNUAPro->Fill(25.5,
13084 fIntFlowCorrectionTermsForNUAEBE[0]->GetBinContent(2)*fIntFlowCorrectionTermsForNUAEBE[0]->GetBinContent(3),
13085 fIntFlowEventWeightForCorrectionTermsForNUAEBE[0]->GetBinContent(2)
13086 *fIntFlowEventWeightForCorrectionTermsForNUAEBE[0]->GetBinContent(3));
13087 // <<cos(phi1-phi2-phi3)><sin(phi1-phi2-phi3)>>:
13088 fIntFlowProductOfCorrectionTermsForNUAPro->Fill(26.5,
13089 fIntFlowCorrectionTermsForNUAEBE[1]->GetBinContent(3)*fIntFlowCorrectionTermsForNUAEBE[0]->GetBinContent(3),
13090 fIntFlowEventWeightForCorrectionTermsForNUAEBE[1]->GetBinContent(3)
13091 *fIntFlowEventWeightForCorrectionTermsForNUAEBE[0]->GetBinContent(3));
13093 } // end of AliFlowAnalysisWithQCumulants::CalculateIntFlowProductOfCorrectionTermsForNUA()
13095 //=======================================================================================================================
13097 void AliFlowAnalysisWithQCumulants::CalculateCovariancesIntFlow()
13099 // a) Calculate unbiased estimators Cov(<2>,<4>), Cov(<2>,<6>), Cov(<2>,<8>), Cov(<4>,<6>), Cov(<4>,<8>) and Cov(<6>,<8>)
13100 // for covariances V_(<2>,<4>), V_(<2>,<6>), V_(<2>,<8>), V_(<4>,<6>), V_(<4>,<8>) and V_(<6>,<8>).
13101 // b) Store in histogram fIntFlowCovariances for instance the following:
13103 // Cov(<2>,<4>) * (sum_{i=1}^{N} w_{<2>}_i w_{<4>}_i )/[(sum_{i=1}^{N} w_{<2>}_i) * (sum_{j=1}^{N} w_{<4>}_j)]
13105 // where N is the number of events, w_{<2>} is event weight for <2> and w_{<4>} is event weight for <4>.
13106 // c) Binning of fIntFlowCovariances is organized as follows:
13108 // 1st bin: Cov(<2>,<4>) * (sum_{i=1}^{N} w_{<2>}_i w_{<4>}_i )/[(sum_{i=1}^{N} w_{<2>}_i) * (sum_{j=1}^{N} w_{<4>}_j)]
13109 // 2nd bin: Cov(<2>,<6>) * (sum_{i=1}^{N} w_{<2>}_i w_{<6>}_i )/[(sum_{i=1}^{N} w_{<2>}_i) * (sum_{j=1}^{N} w_{<6>}_j)]
13110 // 3rd bin: Cov(<2>,<8>) * (sum_{i=1}^{N} w_{<2>}_i w_{<8>}_i )/[(sum_{i=1}^{N} w_{<2>}_i) * (sum_{j=1}^{N} w_{<8>}_j)]
13111 // 4th bin: Cov(<4>,<6>) * (sum_{i=1}^{N} w_{<4>}_i w_{<6>}_i )/[(sum_{i=1}^{N} w_{<4>}_i) * (sum_{j=1}^{N} w_{<6>}_j)]
13112 // 5th bin: Cov(<4>,<8>) * (sum_{i=1}^{N} w_{<4>}_i w_{<8>}_i )/[(sum_{i=1}^{N} w_{<4>}_i) * (sum_{j=1}^{N} w_{<8>}_j)]
13113 // 6th bin: Cov(<6>,<8>) * (sum_{i=1}^{N} w_{<6>}_i w_{<8>}_i )/[(sum_{i=1}^{N} w_{<6>}_i) * (sum_{j=1}^{N} w_{<8>}_j)]
13116 // Average 2-, 4-, 6- and 8-particle correlations for all events:
13117 Double_t correlation[4] = {0.};
13118 for(Int_t ci=0;ci<4;ci++)
13120 correlation[ci] = fIntFlowCorrelationsPro->GetBinContent(ci+1);
13122 // Average products of 2-, 4-, 6- and 8-particle correlations:
13123 Double_t productOfCorrelations[4][4] = {{0.}};
13124 Int_t productOfCorrelationsLabel = 1;
13125 // Denominators in the expressions for the unbiased estimator for covariance:
13126 Double_t denominator[4][4] = {{0.}};
13127 Int_t sumOfProductOfEventWeightsLabel1 = 1;
13128 // Weight dependent prefactor which multiply unbiased estimators for covariances:
13129 Double_t wPrefactor[4][4] = {{0.}};
13130 Int_t sumOfProductOfEventWeightsLabel2 = 1;
13131 for(Int_t c1=0;c1<4;c1++)
13133 for(Int_t c2=c1+1;c2<4;c2++)
13135 productOfCorrelations[c1][c2] = fIntFlowProductOfCorrelationsPro->GetBinContent(productOfCorrelationsLabel);
13136 if(TMath::Abs(fIntFlowSumOfEventWeights[0]->GetBinContent(c1+1)) > 1.e-44 && TMath::Abs(fIntFlowSumOfEventWeights[0]->GetBinContent(c2+1)) > 1.e-44)
13138 denominator[c1][c2] = 1.-(fIntFlowSumOfProductOfEventWeights->GetBinContent(sumOfProductOfEventWeightsLabel1))
13139 / (fIntFlowSumOfEventWeights[0]->GetBinContent(c1+1)
13140 * fIntFlowSumOfEventWeights[0]->GetBinContent(c2+1));
13141 wPrefactor[c1][c2] = fIntFlowSumOfProductOfEventWeights->GetBinContent(sumOfProductOfEventWeightsLabel2)
13142 / (fIntFlowSumOfEventWeights[0]->GetBinContent(c1+1)
13143 * fIntFlowSumOfEventWeights[0]->GetBinContent(c2+1));
13145 productOfCorrelationsLabel++; // to be improved - do I need here all 3 counters?
13146 sumOfProductOfEventWeightsLabel1++;
13147 sumOfProductOfEventWeightsLabel2++;
13148 } // end of for(Int_t c2=c1+1;c2<4;c2++)
13149 } // end of for(Int_t c1=0;c1<4;c1++)
13151 Int_t covarianceLabel = 1;
13152 for(Int_t c1=0;c1<4;c1++)
13154 for(Int_t c2=c1+1;c2<4;c2++)
13156 if(TMath::Abs(denominator[c1][c2]) > 1.e-44)
13159 Double_t cov = (productOfCorrelations[c1][c2]-correlation[c1]*correlation[c2])/denominator[c1][c2];
13160 // Covariances multiplied with weight dependent prefactor:
13161 Double_t wCov = cov * wPrefactor[c1][c2];
13162 fIntFlowCovariances->SetBinContent(covarianceLabel,wCov);
13165 } // end of for(Int_t c2=c1+1;c2<4;c2++)
13166 } // end of for(Int_t c1=0;c1<4;c1++)
13168 // Versus multiplicity:
13169 if(!fCalculateCumulantsVsM){return;}
13170 Int_t nBins = fIntFlowCorrelationsVsMPro[0]->GetNbinsX(); // to be improved (hardwired 0)
13171 for(Int_t b=1;b<=nBins;b++)
13173 // Average 2-, 4-, 6- and 8-particle correlations for all events:
13174 Double_t correlationVsM[4] = {0.};
13175 for(Int_t ci=0;ci<4;ci++)
13177 correlationVsM[ci] = fIntFlowCorrelationsVsMPro[ci]->GetBinContent(b);
13178 } // end of for(Int_t ci=0;ci<4;ci++)
13179 // Average products of 2-, 4-, 6- and 8-particle correlations:
13180 Double_t productOfCorrelationsVsM[4][4] = {{0.}};
13181 Int_t productOfCorrelationsLabelVsM = 1;
13182 // Denominators in the expressions for the unbiased estimator for covariance:
13183 Double_t denominatorVsM[4][4] = {{0.}};
13184 Int_t sumOfProductOfEventWeightsLabel1VsM = 1;
13185 // Weight dependent prefactor which multiply unbiased estimators for covariances:
13186 Double_t wPrefactorVsM[4][4] = {{0.}};
13187 Int_t sumOfProductOfEventWeightsLabel2VsM = 1;
13188 for(Int_t c1=0;c1<4;c1++)
13190 for(Int_t c2=c1+1;c2<4;c2++)
13192 productOfCorrelationsVsM[c1][c2] = fIntFlowProductOfCorrelationsVsMPro[productOfCorrelationsLabelVsM-1]->GetBinContent(b);
13193 if(TMath::Abs(fIntFlowSumOfEventWeightsVsM[c1][0]->GetBinContent(b)) > 1.e-44 && TMath::Abs(fIntFlowSumOfEventWeightsVsM[c2][0]->GetBinContent(b)) > 1.e-44)
13195 denominatorVsM[c1][c2] = 1.-(fIntFlowSumOfProductOfEventWeightsVsM[sumOfProductOfEventWeightsLabel1VsM-1]->GetBinContent(b))
13196 / (fIntFlowSumOfEventWeightsVsM[c1][0]->GetBinContent(b)
13197 * fIntFlowSumOfEventWeightsVsM[c2][0]->GetBinContent(b));
13198 wPrefactorVsM[c1][c2] = fIntFlowSumOfProductOfEventWeightsVsM[sumOfProductOfEventWeightsLabel2VsM-1]->GetBinContent(b)
13199 / (fIntFlowSumOfEventWeightsVsM[c1][0]->GetBinContent(b)
13200 * fIntFlowSumOfEventWeightsVsM[c2][0]->GetBinContent(b));
13202 productOfCorrelationsLabelVsM++;
13203 sumOfProductOfEventWeightsLabel1VsM++;
13204 sumOfProductOfEventWeightsLabel2VsM++;
13205 } // end of for(Int_t c1=0;c1<4;c1++)
13206 } // end of for(Int_t c2=c1+1;c2<4;c2++)
13208 Int_t covarianceLabelVsM = 1;
13209 for(Int_t c1=0;c1<4;c1++)
13211 for(Int_t c2=c1+1;c2<4;c2++)
13213 if(TMath::Abs(denominatorVsM[c1][c2]) > 1.e-44)
13216 Double_t covVsM = (productOfCorrelationsVsM[c1][c2]-correlationVsM[c1]*correlationVsM[c2])/denominatorVsM[c1][c2];
13217 // Covariances multiplied with weight dependent prefactor:
13218 Double_t wCovVsM = covVsM * wPrefactorVsM[c1][c2];
13219 fIntFlowCovariancesVsM[covarianceLabelVsM-1]->SetBinContent(b,wCovVsM);
13221 covarianceLabelVsM++;
13222 } // end of for(Int_t c2=c1+1;c2<4;c2++)
13223 } // end of for(Int_t c1=0;c1<4;c1++)
13224 } // end of for(Int_t b=1;b<=nBins;b++)
13226 } // end of AliFlowAnalysisWithQCumulants::CalculateCovariancesIntFlow()
13228 //=======================================================================================================================
13230 void AliFlowAnalysisWithQCumulants::CalculateCovariancesNUAIntFlow()
13232 // a) Calculate unbiased estimators Cov(*,*) for true covariances V_(*,*) for NUA terms.
13233 // b) Store in histogram fIntFlowCovariancesNUA for instance the following:
13235 // Cov(<2>,<cos(phi)>) * (sum_{i=1}^{N} w_{<2>}_i w_{<cos(phi)>}_i )/[(sum_{i=1}^{N} w_{<2>}_i) * (sum_{j=1}^{N} w_{<cos(phi)>}_j)]
13237 // where N is the number of events, w_{<2>} is event weight for <2> and w_{<cos(phi)>} is event weight for <cos(phi)>.
13238 // c) Binning of fIntFlowCovariancesNUA is organized as follows:
13240 // 1st bin: Cov(<2>,<cos(phi)>) * (sum_{i=1}^{N} w_{<2>}_i w_{<cos(phi)>}_i )/[(sum_{i=1}^{N} w_{<2>}_i) * (sum_{j=1}^{N} w_{<cos(phi)>}_j)]
13241 // 2nd bin: Cov(<2>,<sin(phi)>) * (sum_{i=1}^{N} w_{<2>}_i w_{<sin(phi)>}_i )/[(sum_{i=1}^{N} w_{<2>}_i) * (sum_{j=1}^{N} w_{<sin(phi)>}_j)]
13242 // 3rd bin: Cov(<cos(phi)>,<sin(phi)>) * (sum_{i=1}^{N} w_{<cos(phi)>}_i w_{<sin(phi)>}_i )/[(sum_{i=1}^{N} w_{<cos(phi)>}_i) * (sum_{j=1}^{N} w_{<sin(phi)>}_j)]
13245 // Cov(<2>,<cos(phi)>):
13246 Double_t product1 = fIntFlowProductOfCorrectionTermsForNUAPro->GetBinContent(1); // <<2><cos(phi)>>
13247 Double_t term1st1 = fIntFlowCorrelationsPro->GetBinContent(1); // <<2>>
13248 Double_t term2nd1 = fIntFlowCorrectionTermsForNUAPro[1]->GetBinContent(1); // <<cos(phi)>>
13249 Double_t sumOfW1st1 = fIntFlowSumOfEventWeights[0]->GetBinContent(1); // W_{<2>}
13250 Double_t sumOfW2nd1 = fIntFlowSumOfEventWeightsNUA[1][0]->GetBinContent(1); // W_{<cos(phi)>}
13251 Double_t sumOfWW1 = fIntFlowSumOfProductOfEventWeightsNUA->GetBinContent(1); // W_{<2>} * W_{<cos(phi)>}
13252 // numerator in the expression for the the unbiased estimator for covariance:
13253 Double_t numerator1 = product1 - term1st1*term2nd1;
13254 // denominator in the expression for the the unbiased estimator for covariance:
13255 Double_t denominator1 = 0.;
13256 if(TMath::Abs(sumOfW1st1*sumOfW2nd1)>0.)
13258 denominator1 = 1.-sumOfWW1/(sumOfW1st1*sumOfW2nd1);
13259 if(TMath::Abs(denominator1)>0.)
13262 Double_t covariance1 = numerator1/denominator1;
13263 // weight dependent prefactor for covariance:
13264 Double_t wPrefactor1 = sumOfWW1/(sumOfW1st1*sumOfW2nd1);
13265 // finally, store "weighted" covariance:
13266 fIntFlowCovariancesNUA->SetBinContent(1,wPrefactor1*covariance1);
13267 } // end of if(TMath::Abs(denominator)>0.)
13268 } // end of if(TMath::Abs(sumOfW1st1*sumOfW2nd1)>0.)
13270 // Cov(<2>,<sin(phi)>):
13271 Double_t product2 = fIntFlowProductOfCorrectionTermsForNUAPro->GetBinContent(2); // <<2><sin(phi)>>
13272 Double_t term1st2 = fIntFlowCorrelationsPro->GetBinContent(1); // <<2>>
13273 Double_t term2nd2 = fIntFlowCorrectionTermsForNUAPro[0]->GetBinContent(1); // <<sin(phi)>>
13274 Double_t sumOfW1st2 = fIntFlowSumOfEventWeights[0]->GetBinContent(1); // W_{<2>}
13275 Double_t sumOfW2nd2 = fIntFlowSumOfEventWeightsNUA[0][0]->GetBinContent(1); // W_{<sin(phi)>}
13276 Double_t sumOfWW2 = fIntFlowSumOfProductOfEventWeightsNUA->GetBinContent(2); // W_{<2>} * W_{<sin(phi)>}
13277 // numerator in the expression for the the unbiased estimator for covariance:
13278 Double_t numerator2 = product2 - term1st2*term2nd2;
13279 // denominator in the expression for the the unbiased estimator for covariance:
13280 Double_t denominator2 = 0.;
13281 if(TMath::Abs(sumOfW1st2*sumOfW2nd2)>0.)
13283 denominator2 = 1.-sumOfWW2/(sumOfW1st2*sumOfW2nd2);
13284 if(TMath::Abs(denominator2)>0.)
13287 Double_t covariance2 = numerator2/denominator2;
13288 // weight dependent prefactor for covariance:
13289 Double_t wPrefactor2 = sumOfWW2/(sumOfW1st2*sumOfW2nd2);
13290 // finally, store "weighted" covariance:
13291 fIntFlowCovariancesNUA->SetBinContent(2,wPrefactor2*covariance2);
13292 } // end of if(TMath::Abs(denominator2)>0.)
13293 } // end of if(TMath::Abs(sumOfW1st2*sumOfW2nd2)>0.)
13295 // Cov(<cos(phi)>,<sin(phi)>):
13296 Double_t product3 = fIntFlowProductOfCorrectionTermsForNUAPro->GetBinContent(3); // <<cos(phi)><sin(phi)>>
13297 Double_t term1st3 = fIntFlowCorrectionTermsForNUAPro[1]->GetBinContent(1); // <<cos(phi)>>
13298 Double_t term2nd3 = fIntFlowCorrectionTermsForNUAPro[0]->GetBinContent(1); // <<sin(phi)>>
13299 Double_t sumOfW1st3 = fIntFlowSumOfEventWeightsNUA[1][0]->GetBinContent(1); // W_{<cos(phi)>}
13300 Double_t sumOfW2nd3 = fIntFlowSumOfEventWeightsNUA[0][0]->GetBinContent(1); // W_{<sin(phi)>}
13301 Double_t sumOfWW3 = fIntFlowSumOfProductOfEventWeightsNUA->GetBinContent(3); // W_{<cos(phi)>} * W_{<sin(phi)>}
13302 // numerator in the expression for the the unbiased estimator for covariance:
13303 Double_t numerator3 = product3 - term1st3*term2nd3;
13304 // denominator in the expression for the the unbiased estimator for covariance:
13305 Double_t denominator3 = 0;
13306 if(TMath::Abs(sumOfW1st3*sumOfW2nd3)>0.)
13308 denominator3 = 1.-sumOfWW3/(sumOfW1st3*sumOfW2nd3);
13309 if(TMath::Abs(denominator3)>0.)
13312 Double_t covariance3 = numerator3/denominator3;
13313 // weight dependent prefactor for covariance:
13314 Double_t wPrefactor3 = sumOfWW3/(sumOfW1st3*sumOfW2nd3);
13315 // finally, store "weighted" covariance:
13316 fIntFlowCovariancesNUA->SetBinContent(3,wPrefactor3*covariance3);
13317 } // end of if(TMath::Abs(denominator3)>0.)
13318 } // end of if(TMath::Abs(sumOfW1st3*sumOfW2nd3)>0.)
13320 // Cov(<2>,<cos(phi1+phi2)>):
13321 Double_t product4 = fIntFlowProductOfCorrectionTermsForNUAPro->GetBinContent(4); // <<2><cos(phi1+phi2)>>
13322 Double_t term1st4 = fIntFlowCorrelationsPro->GetBinContent(1); // <<2>>
13323 Double_t term2nd4 = fIntFlowCorrectionTermsForNUAPro[1]->GetBinContent(2); // <<cos(phi1+phi2)>>
13324 Double_t sumOfW1st4 = fIntFlowSumOfEventWeights[0]->GetBinContent(1); // W_{<2>}
13325 Double_t sumOfW2nd4 = fIntFlowSumOfEventWeightsNUA[1][0]->GetBinContent(2); // W_{<cos(phi1+phi2)>}
13326 Double_t sumOfWW4 = fIntFlowSumOfProductOfEventWeightsNUA->GetBinContent(4); // W_{<2>} * W_{<cos(phi1+phi2)>}
13327 // numerator in the expression for the the unbiased estimator for covariance:
13328 Double_t numerator4 = product4 - term1st4*term2nd4;
13329 // denominator in the expression for the the unbiased estimator for covariance:
13330 Double_t denominator4 = 0.;
13331 if(TMath::Abs(sumOfW1st4*sumOfW2nd4)>0.)
13333 denominator4 = 1.-sumOfWW4/(sumOfW1st4*sumOfW2nd4);
13334 if(TMath::Abs(denominator4)>0.)
13337 Double_t covariance4 = numerator4/denominator4;
13338 // weight dependent prefactor for covariance:
13339 Double_t wPrefactor4 = sumOfWW4/(sumOfW1st4*sumOfW2nd4);
13340 // finally, store "weighted" covariance:
13341 fIntFlowCovariancesNUA->SetBinContent(4,wPrefactor4*covariance4);
13342 } // end of if(TMath::Abs(denominator4)>0.)
13343 } // end of if(TMath::Abs(sumOfW1st4*sumOfW2nd4)>0.)
13345 // Cov(<2>,<sin(phi1+phi2)>):
13346 Double_t product5 = fIntFlowProductOfCorrectionTermsForNUAPro->GetBinContent(5); // <<2><sin(phi1+phi2)>>
13347 Double_t term1st5 = fIntFlowCorrelationsPro->GetBinContent(1); // <<2>>
13348 Double_t term2nd5 = fIntFlowCorrectionTermsForNUAPro[0]->GetBinContent(2); // <<sin(phi1+phi2)>>
13349 Double_t sumOfW1st5 = fIntFlowSumOfEventWeights[0]->GetBinContent(1); // W_{<2>}
13350 Double_t sumOfW2nd5 = fIntFlowSumOfEventWeightsNUA[0][0]->GetBinContent(2); // W_{<sin(phi1+phi2)>}
13351 Double_t sumOfWW5 = fIntFlowSumOfProductOfEventWeightsNUA->GetBinContent(5); // W_{<2>} * W_{<sin(phi1+phi2)>}
13352 // numerator in the expression for the the unbiased estimator for covariance:
13353 Double_t numerator5 = product5 - term1st5*term2nd5;
13354 // denominator in the expression for the the unbiased estimator for covariance:
13355 Double_t denominator5 = 0.;
13356 if(TMath::Abs(sumOfW1st5*sumOfW2nd5)>0.)
13358 denominator5 = 1.-sumOfWW5/(sumOfW1st5*sumOfW2nd5);
13359 if(TMath::Abs(denominator5)>0.)
13362 Double_t covariance5 = numerator5/denominator5;
13363 // weight dependent prefactor for covariance:
13364 Double_t wPrefactor5 = sumOfWW5/(sumOfW1st5*sumOfW2nd5);
13365 // finally, store "weighted" covariance:
13366 fIntFlowCovariancesNUA->SetBinContent(5,wPrefactor5*covariance5);
13367 } // end of if(TMath::Abs(denominator5)>0.)
13368 } // end of if(TMath::Abs(sumOfW1st5*sumOfW2nd5)>0.)
13370 // Cov(<2>,<cos(phi1-phi2-phi3)>):
13371 Double_t product6 = fIntFlowProductOfCorrectionTermsForNUAPro->GetBinContent(6); // <<2><cos(phi1-phi2-phi3)>>
13372 Double_t term1st6 = fIntFlowCorrelationsPro->GetBinContent(1); // <<2>>
13373 Double_t term2nd6 = fIntFlowCorrectionTermsForNUAPro[1]->GetBinContent(3); // <<cos(phi1-phi2-phi3)>>
13374 Double_t sumOfW1st6 = fIntFlowSumOfEventWeights[0]->GetBinContent(1); // W_{<2>}
13375 Double_t sumOfW2nd6 = fIntFlowSumOfEventWeightsNUA[1][0]->GetBinContent(3); // W_{<cos(phi1-phi2-phi3)>}
13376 Double_t sumOfWW6 = fIntFlowSumOfProductOfEventWeightsNUA->GetBinContent(6); // W_{<2>} * W_{<cos(phi1-phi2-phi3)>}
13377 // numerator in the expression for the the unbiased estimator for covariance:
13378 Double_t numerator6 = product6 - term1st6*term2nd6;
13379 // denominator in the expression for the the unbiased estimator for covariance:
13380 Double_t denominator6 = 0.;
13381 if(TMath::Abs(sumOfW1st6*sumOfW2nd6)>0.)
13383 denominator6 = 1.-sumOfWW6/(sumOfW1st6*sumOfW2nd6);
13384 if(TMath::Abs(denominator6)>0.)
13387 Double_t covariance6 = numerator6/denominator6;
13388 // weight dependent prefactor for covariance:
13389 Double_t wPrefactor6 = sumOfWW6/(sumOfW1st6*sumOfW2nd6);
13390 // finally, store "weighted" covariance:
13391 fIntFlowCovariancesNUA->SetBinContent(6,wPrefactor6*covariance6);
13392 } // end of if(TMath::Abs(denominator6)>0.)
13393 } // end of if(TMath::Abs(sumOfW1st6*sumOfW2nd6)>0.)
13395 // Cov(<2>,<sin(phi1-phi2-phi3)>):
13396 Double_t product7 = fIntFlowProductOfCorrectionTermsForNUAPro->GetBinContent(7); // <<2><sin(phi1-phi2-phi3)>>
13397 Double_t term1st7 = fIntFlowCorrelationsPro->GetBinContent(1); // <<2>>
13398 Double_t term2nd7 = fIntFlowCorrectionTermsForNUAPro[0]->GetBinContent(3); // <<sin(phi1-phi2-phi3)>>
13399 Double_t sumOfW1st7 = fIntFlowSumOfEventWeights[0]->GetBinContent(1); // W_{<2>}
13400 Double_t sumOfW2nd7 = fIntFlowSumOfEventWeightsNUA[0][0]->GetBinContent(3); // W_{<sin(phi1-phi2-phi3)>}
13401 Double_t sumOfWW7 = fIntFlowSumOfProductOfEventWeightsNUA->GetBinContent(7); // W_{<2>} * W_{<sin(phi1-phi2-phi3)>}
13402 // numerator in the expression for the the unbiased estimator for covariance:
13403 Double_t numerator7 = product7 - term1st7*term2nd7;
13404 // denominator in the expression for the the unbiased estimator for covariance:
13405 Double_t denominator7 = 0.;
13406 if(TMath::Abs(sumOfW1st7*sumOfW2nd7)>0.)
13408 denominator7 = 1.-sumOfWW7/(sumOfW1st7*sumOfW2nd7);
13409 if(TMath::Abs(denominator7)>0.)
13412 Double_t covariance7 = numerator7/denominator7;
13413 // weight dependent prefactor for covariance:
13414 Double_t wPrefactor7 = sumOfWW7/(sumOfW1st7*sumOfW2nd7);
13415 // finally, store "weighted" covariance:
13416 fIntFlowCovariancesNUA->SetBinContent(7,wPrefactor7*covariance7);
13417 } // end of if(TMath::Abs(denominator7)>0.)
13418 } // end of if(TMath::Abs(sumOfW1st7*sumOfW2nd7)>0.)
13420 // Cov(<4>,<cos(phi1>):
13421 Double_t product8 = fIntFlowProductOfCorrectionTermsForNUAPro->GetBinContent(8); // <<4><cos(phi1)>>
13422 Double_t term1st8 = fIntFlowCorrelationsPro->GetBinContent(2); // <<4>>
13423 Double_t term2nd8 = fIntFlowCorrectionTermsForNUAPro[1]->GetBinContent(1); // <<cos(phi1)>>
13424 Double_t sumOfW1st8 = fIntFlowSumOfEventWeights[0]->GetBinContent(2); // W_{<4>}
13425 Double_t sumOfW2nd8 = fIntFlowSumOfEventWeightsNUA[1][0]->GetBinContent(1); // W_{<cos(phi1)>}
13426 Double_t sumOfWW8 = fIntFlowSumOfProductOfEventWeightsNUA->GetBinContent(8); // W_{<4>} * W_{<cos(phi1)>}
13427 // numerator in the expression for the the unbiased estimator for covariance:
13428 Double_t numerator8 = product8 - term1st8*term2nd8;
13429 // denominator in the expression for the the unbiased estimator for covariance:
13430 Double_t denominator8 = 0.;
13431 if(TMath::Abs(sumOfW1st8*sumOfW2nd8)>0.)
13433 denominator8 = 1.-sumOfWW8/(sumOfW1st8*sumOfW2nd8);
13434 if(TMath::Abs(denominator8)>0.)
13437 Double_t covariance8 = numerator8/denominator8;
13438 // weight dependent prefactor for covariance:
13439 Double_t wPrefactor8 = sumOfWW8/(sumOfW1st8*sumOfW2nd8);
13440 // finally, store "weighted" covariance:
13441 fIntFlowCovariancesNUA->SetBinContent(8,wPrefactor8*covariance8);
13442 } // end of if(TMath::Abs(denominator8)>0.)
13443 } // end of if(TMath::Abs(sumOfW1st8*sumOfW2nd8)>0.)
13445 // Cov(<4>,<sin(phi1)>):
13446 Double_t product9 = fIntFlowProductOfCorrectionTermsForNUAPro->GetBinContent(9); // <<4><sin(phi1)>>
13447 Double_t term1st9 = fIntFlowCorrelationsPro->GetBinContent(2); // <<4>>
13448 Double_t term2nd9 = fIntFlowCorrectionTermsForNUAPro[0]->GetBinContent(1); // <<sin(phi1)>>
13449 Double_t sumOfW1st9 = fIntFlowSumOfEventWeights[0]->GetBinContent(2); // W_{<4>}
13450 Double_t sumOfW2nd9 = fIntFlowSumOfEventWeightsNUA[0][0]->GetBinContent(1); // W_{<sin(phi1)>}
13451 Double_t sumOfWW9 = fIntFlowSumOfProductOfEventWeightsNUA->GetBinContent(9); // W_{<4>} * W_{<sin(phi1)>}
13452 // numerator in the expression for the the unbiased estimator for covariance:
13453 Double_t numerator9 = product9 - term1st9*term2nd9;
13454 // denominator in the expression for the the unbiased estimator for covariance:
13455 Double_t denominator9 = 0.;
13456 if(TMath::Abs(sumOfW1st9*sumOfW2nd9)>0.)
13458 denominator9 = 1.-sumOfWW9/(sumOfW1st9*sumOfW2nd9);
13459 if(TMath::Abs(denominator9)>0.)
13462 Double_t covariance9 = numerator9/denominator9;
13463 // weight dependent prefactor for covariance:
13464 Double_t wPrefactor9 = sumOfWW9/(sumOfW1st9*sumOfW2nd9);
13465 // finally, store "weighted" covariance:
13466 fIntFlowCovariancesNUA->SetBinContent(9,wPrefactor9*covariance9);
13468 } // end of if(TMath::Abs(sumOfW1st9*sumOfW2nd9)>0.)
13470 // Cov(<4>,<cos(phi1+phi2)>):
13471 Double_t product10 = fIntFlowProductOfCorrectionTermsForNUAPro->GetBinContent(10); // <<4><cos(phi1+phi2)>>
13472 Double_t term1st10 = fIntFlowCorrelationsPro->GetBinContent(2); // <<4>>
13473 Double_t term2nd10 = fIntFlowCorrectionTermsForNUAPro[1]->GetBinContent(2); // <<cos(phi1+phi2)>>
13474 Double_t sumOfW1st10 = fIntFlowSumOfEventWeights[0]->GetBinContent(2); // W_{<4>}
13475 Double_t sumOfW2nd10 = fIntFlowSumOfEventWeightsNUA[1][0]->GetBinContent(2); // W_{<cos(phi1+phi2)>}
13476 Double_t sumOfWW10 = fIntFlowSumOfProductOfEventWeightsNUA->GetBinContent(10); // W_{<4>} * W_{<cos(phi1+phi2)>}
13477 // numerator in the expression for the the unbiased estimator for covariance:
13478 Double_t numerator10 = product10 - term1st10*term2nd10;
13479 // denominator in the expression for the the unbiased estimator for covariance:
13480 Double_t denominator10 = 0.;
13481 if(TMath::Abs(sumOfW1st10*sumOfW2nd10)>0.)
13483 denominator10 = 1.-sumOfWW10/(sumOfW1st10*sumOfW2nd10);
13484 if(TMath::Abs(denominator10)>0.)
13487 Double_t covariance10 = numerator10/denominator10;
13488 // weight dependent prefactor for covariance:
13489 Double_t wPrefactor10 = sumOfWW10/(sumOfW1st10*sumOfW2nd10);
13490 // finally, store "weighted" covariance:
13491 fIntFlowCovariancesNUA->SetBinContent(10,wPrefactor10*covariance10);
13492 } // end of if(TMath::Abs(denominator10)>0.)
13493 } // end of if(TMath::Abs(sumOfW1st10*sumOfW2nd10)>0.)
13495 // Cov(<4>,<sin(phi1+phi2)>):
13496 Double_t product11 = fIntFlowProductOfCorrectionTermsForNUAPro->GetBinContent(11); // <<4><sin(phi1+phi2)>>
13497 Double_t term1st11 = fIntFlowCorrelationsPro->GetBinContent(2); // <<4>>
13498 Double_t term2nd11 = fIntFlowCorrectionTermsForNUAPro[0]->GetBinContent(2); // <<sin(phi1+phi2)>>
13499 Double_t sumOfW1st11 = fIntFlowSumOfEventWeights[0]->GetBinContent(2); // W_{<4>}
13500 Double_t sumOfW2nd11 = fIntFlowSumOfEventWeightsNUA[0][0]->GetBinContent(2); // W_{<sin(phi1+phi2)>}
13501 Double_t sumOfWW11 = fIntFlowSumOfProductOfEventWeightsNUA->GetBinContent(11); // W_{<4>} * W_{<sin(phi1+phi2)>}
13502 // numerator in the expression for the the unbiased estimator for covariance:
13503 Double_t numerator11 = product11 - term1st11*term2nd11;
13504 // denominator in the expression for the the unbiased estimator for covariance:
13505 Double_t denominator11 = 0.;
13506 if(TMath::Abs(sumOfW1st11*sumOfW2nd11)>0.)
13508 denominator11 = 1.-sumOfWW11/(sumOfW1st11*sumOfW2nd11);
13509 if(TMath::Abs(denominator11)>0.)
13512 Double_t covariance11 = numerator11/denominator11;
13513 // weight dependent prefactor for covariance:
13514 Double_t wPrefactor11 = sumOfWW11/(sumOfW1st11*sumOfW2nd11);
13515 // finally, store "weighted" covariance:
13516 fIntFlowCovariancesNUA->SetBinContent(11,wPrefactor11*covariance11);
13517 } // end of if(TMath::Abs(denominator11)>0.)
13518 } // end of if(TMath::Abs(sumOfW1st11*sumOfW2nd11)>0.)
13520 // Cov(<4>,<cos(phi1-phi2-phi3)>):
13521 Double_t product12 = fIntFlowProductOfCorrectionTermsForNUAPro->GetBinContent(12); // <<4><cos(phi1-phi2-phi3)>>
13522 Double_t term1st12 = fIntFlowCorrelationsPro->GetBinContent(2); // <<4>>
13523 Double_t term2nd12 = fIntFlowCorrectionTermsForNUAPro[1]->GetBinContent(3); // <<cos(phi1-phi2-phi3)>>
13524 Double_t sumOfW1st12 = fIntFlowSumOfEventWeights[0]->GetBinContent(2); // W_{<4>}
13525 Double_t sumOfW2nd12 = fIntFlowSumOfEventWeightsNUA[1][0]->GetBinContent(3); // W_{<cos(phi1-phi2-phi3)>}
13526 Double_t sumOfWW12 = fIntFlowSumOfProductOfEventWeightsNUA->GetBinContent(12); // W_{<4>} * W_{<cos(phi1-phi2-phi3)>}
13527 // numerator in the expression for the the unbiased estimator for covariance:
13528 Double_t numerator12 = product12 - term1st12*term2nd12;
13529 // denominator in the expression for the the unbiased estimator for covariance:
13530 Double_t denominator12 = 0.;
13531 if(TMath::Abs(sumOfW1st12*sumOfW2nd12)>0.)
13533 denominator12 = 1.-sumOfWW12/(sumOfW1st12*sumOfW2nd12);
13534 if(TMath::Abs(denominator12)>0.)
13537 Double_t covariance12 = numerator12/denominator12;
13538 // weight dependent prefactor for covariance:
13539 Double_t wPrefactor12 = sumOfWW12/(sumOfW1st12*sumOfW2nd12);
13540 // finally, store "weighted" covariance:
13541 fIntFlowCovariancesNUA->SetBinContent(12,wPrefactor12*covariance12);
13542 } // end of if(TMath::Abs(denominator12)>0.)
13543 } // end of if(TMath::Abs(sumOfW1st12*sumOfW2nd12)>0.)
13545 // Cov(<4>,<sin(phi1-phi2-phi3)>):
13546 Double_t product13 = fIntFlowProductOfCorrectionTermsForNUAPro->GetBinContent(13); // <<4><sin(phi1-phi2-phi3)>>
13547 Double_t term1st13 = fIntFlowCorrelationsPro->GetBinContent(2); // <<4>>
13548 Double_t term2nd13 = fIntFlowCorrectionTermsForNUAPro[0]->GetBinContent(3); // <<sin(phi1-phi2-phi3)>>
13549 Double_t sumOfW1st13 = fIntFlowSumOfEventWeights[0]->GetBinContent(2); // W_{<4>}
13550 Double_t sumOfW2nd13 = fIntFlowSumOfEventWeightsNUA[0][0]->GetBinContent(3); // W_{<sin(phi1-phi2-phi3)>}
13551 Double_t sumOfWW13 = fIntFlowSumOfProductOfEventWeightsNUA->GetBinContent(13); // W_{<4>} * W_{<sin(phi1-phi2-phi3)>}
13552 // numerator in the expression for the the unbiased estimator for covariance:
13553 Double_t numerator13 = product13 - term1st13*term2nd13;
13554 // denominator in the expression for the the unbiased estimator for covariance:
13555 Double_t denominator13 = 0.;
13556 if(TMath::Abs(sumOfW1st13*sumOfW2nd13)>0.)
13558 denominator13 = 1.-sumOfWW13/(sumOfW1st13*sumOfW2nd13);
13559 if(TMath::Abs(denominator13)>0.)
13562 Double_t covariance13 = numerator13/denominator13;
13563 // weight dependent prefactor for covariance:
13564 Double_t wPrefactor13 = sumOfWW13/(sumOfW1st13*sumOfW2nd13);
13565 // finally, store "weighted" covariance:
13566 fIntFlowCovariancesNUA->SetBinContent(13,wPrefactor13*covariance13);
13567 } // end of if(TMath::Abs(denominator13)>0.)
13568 } // end of if(TMath::Abs(sumOfW1st13*sumOfW2nd13)>0.)
13570 // Cov(<cos(phi1)>,<cos(phi1+phi2)>):
13571 Double_t product14 = fIntFlowProductOfCorrectionTermsForNUAPro->GetBinContent(14); // <<cos(phi1)><cos(phi1+phi2)>>
13572 Double_t term1st14 = fIntFlowCorrectionTermsForNUAPro[1]->GetBinContent(1); // <<cos(phi1)>>
13573 Double_t term2nd14 = fIntFlowCorrectionTermsForNUAPro[1]->GetBinContent(2); // <<cos(phi1+phi2)>>
13574 Double_t sumOfW1st14 = fIntFlowSumOfEventWeightsNUA[1][0]->GetBinContent(1); // W_{<cos(phi1)>}
13575 Double_t sumOfW2nd14 = fIntFlowSumOfEventWeightsNUA[1][0]->GetBinContent(2); // W_{<cos(phi1+phi2)>}
13576 Double_t sumOfWW14 = fIntFlowSumOfProductOfEventWeightsNUA->GetBinContent(14); // W_{<cos(phi1)>} * W_{<cos(phi1+phi2)>}
13577 // numerator in the expression for the the unbiased estimator for covariance:
13578 Double_t numerator14 = product14 - term1st14*term2nd14;
13579 // denominator in the expression for the the unbiased estimator for covariance:
13580 Double_t denominator14 = 0.;
13581 if(TMath::Abs(sumOfW1st14*sumOfW2nd14)>0.)
13583 denominator14 = 1.-sumOfWW14/(sumOfW1st14*sumOfW2nd14);
13584 if(TMath::Abs(denominator14)>0.)
13587 Double_t covariance14 = numerator14/denominator14;
13588 // weight dependent prefactor for covariance:
13589 Double_t wPrefactor14 = sumOfWW14/(sumOfW1st14*sumOfW2nd14);
13590 // finally, store "weighted" covariance:
13591 fIntFlowCovariancesNUA->SetBinContent(14,wPrefactor14*covariance14);
13592 } // end of if(TMath::Abs(denominator14)>0.)
13593 } // end of if(TMath::Abs(sumOfW1st14*sumOfW2nd14)>0.)
13595 // Cov(<cos(phi1)>,<sin(phi1+phi2)>):
13596 Double_t product15 = fIntFlowProductOfCorrectionTermsForNUAPro->GetBinContent(15); // <<cos(phi1)><sin(phi1+phi2)>>
13597 Double_t term1st15 = fIntFlowCorrectionTermsForNUAPro[1]->GetBinContent(1); // <<cos(phi1)>>
13598 Double_t term2nd15 = fIntFlowCorrectionTermsForNUAPro[0]->GetBinContent(2); // <<sin(phi1+phi2)>>
13599 Double_t sumOfW1st15 = fIntFlowSumOfEventWeightsNUA[1][0]->GetBinContent(1); // W_{<cos(phi1)>}
13600 Double_t sumOfW2nd15 = fIntFlowSumOfEventWeightsNUA[0][0]->GetBinContent(2); // W_{<sin(phi1+phi2)>}
13601 Double_t sumOfWW15 = fIntFlowSumOfProductOfEventWeightsNUA->GetBinContent(15); // W_{<cos(phi1)>} * W_{<sin(phi1+phi2)>}
13602 // numerator in the expression for the the unbiased estimator for covariance:
13603 Double_t numerator15 = product15 - term1st15*term2nd15;
13604 // denominator in the expression for the the unbiased estimator for covariance:
13605 Double_t denominator15 = 0.;
13606 if(TMath::Abs(sumOfW1st15*sumOfW2nd15)>0.)
13608 denominator15 = 1.-sumOfWW15/(sumOfW1st15*sumOfW2nd15);
13609 if(TMath::Abs(denominator15)>0.)
13612 Double_t covariance15 = numerator15/denominator15;
13613 // weight dependent prefactor for covariance:
13614 Double_t wPrefactor15 = sumOfWW15/(sumOfW1st15*sumOfW2nd15);
13615 // finally, store "weighted" covariance:
13616 fIntFlowCovariancesNUA->SetBinContent(15,wPrefactor15*covariance15);
13617 } // end of if(TMath::Abs(denominator15)>0.)
13618 } // end of if(TMath::Abs(sumOfW1st15*sumOfW2nd15)>0.)
13620 // Cov(<cos(phi1)>,<cos(phi1-phi2-phi3)>):
13621 Double_t product16 = fIntFlowProductOfCorrectionTermsForNUAPro->GetBinContent(16); // <<cos(phi1)><cos(phi1-phi2-phi3)>>
13622 Double_t term1st16 = fIntFlowCorrectionTermsForNUAPro[1]->GetBinContent(1); // <<cos(phi1)>>
13623 Double_t term2nd16 = fIntFlowCorrectionTermsForNUAPro[1]->GetBinContent(3); // <<cos(phi1-phi2-phi3)>>
13624 Double_t sumOfW1st16 = fIntFlowSumOfEventWeightsNUA[1][0]->GetBinContent(1); // W_{<cos(phi1)>}
13625 Double_t sumOfW2nd16 = fIntFlowSumOfEventWeightsNUA[1][0]->GetBinContent(3); // W_{<cos(phi1-phi2-phi3)>}
13626 Double_t sumOfWW16 = fIntFlowSumOfProductOfEventWeightsNUA->GetBinContent(16); // W_{<cos(phi1)>} * W_{<cos(phi1-phi2-phi3)>}
13627 // numerator in the expression for the the unbiased estimator for covariance:
13628 Double_t numerator16 = product16 - term1st16*term2nd16;
13629 // denominator in the expression for the the unbiased estimator for covariance:
13630 Double_t denominator16 = 0.;
13631 if(TMath::Abs(sumOfW1st16*sumOfW2nd16)>0.)
13633 denominator16 = 1.-sumOfWW16/(sumOfW1st16*sumOfW2nd16);
13634 if(TMath::Abs(denominator16)>0.)
13637 Double_t covariance16 = numerator16/denominator16;
13638 // weight dependent prefactor for covariance:
13639 Double_t wPrefactor16 = sumOfWW16/(sumOfW1st16*sumOfW2nd16);
13640 // finally, store "weighted" covariance:
13641 fIntFlowCovariancesNUA->SetBinContent(16,wPrefactor16*covariance16);
13642 } // end of if(TMath::Abs(denominator16)>0.)
13643 } // end ofif(TMath::Abs(sumOfW1st16*sumOfW2nd16)>0.)
13645 // Cov(<cos(phi1)>,<sin(phi1-phi2-phi3)>):
13646 Double_t product17 = fIntFlowProductOfCorrectionTermsForNUAPro->GetBinContent(17); // <<cos(phi1)><sin(phi1-phi2-phi3)>>
13647 Double_t term1st17 = fIntFlowCorrectionTermsForNUAPro[1]->GetBinContent(1); // <<cos(phi1)>>
13648 Double_t term2nd17 = fIntFlowCorrectionTermsForNUAPro[0]->GetBinContent(3); // <<sin(phi1-phi2-phi3)>>
13649 Double_t sumOfW1st17 = fIntFlowSumOfEventWeightsNUA[1][0]->GetBinContent(1); // W_{<cos(phi1)>}
13650 Double_t sumOfW2nd17 = fIntFlowSumOfEventWeightsNUA[0][0]->GetBinContent(3); // W_{<sin(phi1-phi2-phi3)>}
13651 Double_t sumOfWW17 = fIntFlowSumOfProductOfEventWeightsNUA->GetBinContent(17); // W_{<cos(phi1)>} * W_{<sin(phi1-phi2-phi3)>}
13652 // numerator in the expression for the the unbiased estimator for covariance:
13653 Double_t numerator17 = product17 - term1st17*term2nd17;
13654 // denominator in the expression for the the unbiased estimator for covariance:
13655 Double_t denominator17 = 0.;
13656 if(TMath::Abs(sumOfW1st17*sumOfW2nd17)>0.)
13658 denominator17 = 1.-sumOfWW17/(sumOfW1st17*sumOfW2nd17);
13659 if(TMath::Abs(denominator17)>0.)
13662 Double_t covariance17 = numerator17/denominator17;
13663 // weight dependent prefactor for covariance:
13664 Double_t wPrefactor17 = sumOfWW17/(sumOfW1st17*sumOfW2nd17);
13665 // finally, store "weighted" covariance:
13666 fIntFlowCovariancesNUA->SetBinContent(17,wPrefactor17*covariance17);
13667 } // end of if(TMath::Abs(denominator17)>0.)
13668 } // end of if(TMath::Abs(sumOfW1st17*sumOfW2nd17)>0.)
13670 // Cov(<sin(phi1)>,<cos(phi1+phi2)>):
13671 Double_t product18 = fIntFlowProductOfCorrectionTermsForNUAPro->GetBinContent(18); // <<sin(phi1)><cos(phi1+phi2)>>
13672 Double_t term1st18 = fIntFlowCorrectionTermsForNUAPro[0]->GetBinContent(1); // <<sin(phi1)>>
13673 Double_t term2nd18 = fIntFlowCorrectionTermsForNUAPro[1]->GetBinContent(2); // <<cos(phi1+phi2)>>
13674 Double_t sumOfW1st18 = fIntFlowSumOfEventWeightsNUA[0][0]->GetBinContent(1); // W_{<sin(phi1)>}
13675 Double_t sumOfW2nd18 = fIntFlowSumOfEventWeightsNUA[1][0]->GetBinContent(2); // W_{<cos(phi1+phi2)>}
13676 Double_t sumOfWW18 = fIntFlowSumOfProductOfEventWeightsNUA->GetBinContent(18); // W_{<sin(phi1)>} * W_{<cos(phi1+phi2)>}
13677 // numerator in the expression for the the unbiased estimator for covariance:
13678 Double_t numerator18 = product18 - term1st18*term2nd18;
13679 // denominator in the expression for the the unbiased estimator for covariance:
13680 Double_t denominator18 = 0.;
13681 if(TMath::Abs(sumOfW1st18*sumOfW2nd18)>0.)
13683 denominator18 = 1.-sumOfWW18/(sumOfW1st18*sumOfW2nd18);
13684 if(TMath::Abs(denominator18)>0.)
13687 Double_t covariance18 = numerator18/denominator18;
13688 // weight dependent prefactor for covariance:
13689 Double_t wPrefactor18 = sumOfWW18/(sumOfW1st18*sumOfW2nd18);
13690 // finally, store "weighted" covariance:
13691 fIntFlowCovariancesNUA->SetBinContent(18,wPrefactor18*covariance18);
13692 } // end of if(TMath::Abs(denominator18)>0.)
13693 } // end of if(TMath::Abs(sumOfW1st18*sumOfW2nd18)>0.)
13695 // Cov(<sin(phi1)>,<sin(phi1+phi2)>):
13696 Double_t product19 = fIntFlowProductOfCorrectionTermsForNUAPro->GetBinContent(19); // <<sin(phi1)><sin(phi1+phi2)>>
13697 Double_t term1st19 = fIntFlowCorrectionTermsForNUAPro[0]->GetBinContent(1); // <<sin(phi1)>>
13698 Double_t term2nd19 = fIntFlowCorrectionTermsForNUAPro[0]->GetBinContent(2); // <<sin(phi1+phi2)>>
13699 Double_t sumOfW1st19 = fIntFlowSumOfEventWeightsNUA[0][0]->GetBinContent(1); // W_{<sin(phi1)>}
13700 Double_t sumOfW2nd19 = fIntFlowSumOfEventWeightsNUA[0][0]->GetBinContent(2); // W_{<sin(phi1+phi2)>}
13701 Double_t sumOfWW19 = fIntFlowSumOfProductOfEventWeightsNUA->GetBinContent(19); // W_{<sin(phi1)>} * W_{<sin(phi1+phi2)>}
13702 // numerator in the expression for the the unbiased estimator for covariance:
13703 Double_t numerator19 = product19 - term1st19*term2nd19;
13704 // denominator in the expression for the the unbiased estimator for covariance:
13705 Double_t denominator19 = 0.;
13706 if(TMath::Abs(sumOfW1st19*sumOfW2nd19)>0.)
13708 denominator19 = 1.-sumOfWW19/(sumOfW1st19*sumOfW2nd19);
13709 if(TMath::Abs(denominator19)>0.)
13712 Double_t covariance19 = numerator19/denominator19;
13713 // weight dependent prefactor for covariance:
13714 Double_t wPrefactor19 = sumOfWW19/(sumOfW1st19*sumOfW2nd19);
13715 // finally, store "weighted" covariance:
13716 fIntFlowCovariancesNUA->SetBinContent(19,wPrefactor19*covariance19);
13717 } // end of if(TMath::Abs(denominator19)>0.)
13718 } // end of if(TMath::Abs(sumOfW1st19*sumOfW2nd19)>0.)
13720 // Cov(<sin(phi1)>,<cos(phi1-phi2-phi3)>):
13721 Double_t product20 = fIntFlowProductOfCorrectionTermsForNUAPro->GetBinContent(20); // <<sin(phi1)><cos(phi1-phi2-phi3)>>
13722 Double_t term1st20 = fIntFlowCorrectionTermsForNUAPro[0]->GetBinContent(1); // <<sin(phi1)>>
13723 Double_t term2nd20 = fIntFlowCorrectionTermsForNUAPro[1]->GetBinContent(3); // <<cos(phi1-phi2-phi3)>>
13724 Double_t sumOfW1st20 = fIntFlowSumOfEventWeightsNUA[0][0]->GetBinContent(1); // W_{<sin(phi1)>}
13725 Double_t sumOfW2nd20 = fIntFlowSumOfEventWeightsNUA[1][0]->GetBinContent(3); // W_{<cos(phi1-phi2-phi3)>}
13726 Double_t sumOfWW20 = fIntFlowSumOfProductOfEventWeightsNUA->GetBinContent(20); // W_{<sin(phi1)>} * W_{<cos(phi1-phi2-phi3)>}
13727 // numerator in the expression for the the unbiased estimator for covariance:
13728 Double_t numerator20 = product20 - term1st20*term2nd20;
13729 // denominator in the expression for the the unbiased estimator for covariance:
13730 Double_t denominator20 = 0.;
13731 if(TMath::Abs(sumOfW1st20*sumOfW2nd20)>0.)
13733 denominator20 = 1.-sumOfWW20/(sumOfW1st20*sumOfW2nd20);
13734 if(TMath::Abs(denominator20)>0.)
13737 Double_t covariance20 = numerator20/denominator20;
13738 // weight dependent prefactor for covariance:
13739 Double_t wPrefactor20 = sumOfWW20/(sumOfW1st20*sumOfW2nd20);
13740 // finally, store "weighted" covariance:
13741 fIntFlowCovariancesNUA->SetBinContent(20,wPrefactor20*covariance20);
13742 } // end of if(TMath::Abs(denominator20)>0.)
13743 } // end of if(TMath::Abs(sumOfW1st20*sumOfW2nd20)>0.)
13745 // Cov(<sin(phi1)>,<sin(phi1-phi2-phi3)>):
13746 Double_t product21 = fIntFlowProductOfCorrectionTermsForNUAPro->GetBinContent(21); // <<sin(phi1)><sin(phi1-phi2-phi3)>>
13747 Double_t term1st21 = fIntFlowCorrectionTermsForNUAPro[0]->GetBinContent(1); // <<sin(phi1)>>
13748 Double_t term2nd21 = fIntFlowCorrectionTermsForNUAPro[0]->GetBinContent(3); // <<sin(phi1-phi2-phi3)>>
13749 Double_t sumOfW1st21 = fIntFlowSumOfEventWeightsNUA[0][0]->GetBinContent(1); // W_{<sin(phi1)>}
13750 Double_t sumOfW2nd21 = fIntFlowSumOfEventWeightsNUA[0][0]->GetBinContent(3); // W_{<sin(phi1-phi2-phi3)>}
13751 Double_t sumOfWW21 = fIntFlowSumOfProductOfEventWeightsNUA->GetBinContent(21); // W_{<sin(phi1)>} * W_{<sin(phi1-phi2-phi3)>}
13752 // numerator in the expression for the the unbiased estimator for covariance:
13753 Double_t numerator21 = product21 - term1st21*term2nd21;
13754 // denominator in the expression for the the unbiased estimator for covariance:
13755 Double_t denominator21 = 0.;
13756 if(TMath::Abs(sumOfW1st21*sumOfW2nd21)>0.)
13758 denominator21 = 1.-sumOfWW21/(sumOfW1st21*sumOfW2nd21);
13759 if(TMath::Abs(denominator21)>0.)
13762 Double_t covariance21 = numerator21/denominator21;
13763 // weight dependent prefactor for covariance:
13764 Double_t wPrefactor21 = sumOfWW21/(sumOfW1st21*sumOfW2nd21);
13765 // finally, store "weighted" covariance:
13766 fIntFlowCovariancesNUA->SetBinContent(21,wPrefactor21*covariance21);
13767 } // end of if(TMath::Abs(denominator21)>0.)
13768 } // end of if(TMath::Abs(sumOfW1st21*sumOfW2nd21)>0.)
13770 // Cov(<cos(phi1+phi2)>,<sin(phi1+phi2)>):
13771 Double_t product22 = fIntFlowProductOfCorrectionTermsForNUAPro->GetBinContent(22); // <<cos(phi1+phi2)><sin(phi1+phi2)>>
13772 Double_t term1st22 = fIntFlowCorrectionTermsForNUAPro[1]->GetBinContent(2); // <<cos(phi1+phi2)>>
13773 Double_t term2nd22 = fIntFlowCorrectionTermsForNUAPro[0]->GetBinContent(2); // <<sin(phi1+phi2)>>
13774 Double_t sumOfW1st22 = fIntFlowSumOfEventWeightsNUA[1][0]->GetBinContent(2); // W_{<cos(phi1+phi2)>}
13775 Double_t sumOfW2nd22 = fIntFlowSumOfEventWeightsNUA[0][0]->GetBinContent(2); // W_{<sin(phi1+phi2)>}
13776 Double_t sumOfWW22 = fIntFlowSumOfProductOfEventWeightsNUA->GetBinContent(22); // W_{<cos(phi1+phi2)>} * W_{<sin(phi1+phi2)>}
13777 // numerator in the expression for the the unbiased estimator for covariance:
13778 Double_t numerator22 = product22 - term1st22*term2nd22;
13779 // denominator in the expression for the the unbiased estimator for covariance:
13780 Double_t denominator22 = 0.;
13781 if(TMath::Abs(sumOfW1st22*sumOfW2nd22)>0.)
13783 denominator22 = 1.-sumOfWW22/(sumOfW1st22*sumOfW2nd22);
13784 if(TMath::Abs(denominator22)>0.)
13787 Double_t covariance22 = numerator22/denominator22;
13788 // weight dependent prefactor for covariance:
13789 Double_t wPrefactor22 = sumOfWW22/(sumOfW1st22*sumOfW2nd22);
13790 // finally, store "weighted" covariance:
13791 fIntFlowCovariancesNUA->SetBinContent(22,wPrefactor22*covariance22);
13792 } // end of if(TMath::Abs(denominator22)>0.)
13793 } // end of if(TMath::Abs(sumOfW1st22*sumOfW2nd22)>0.)
13795 // Cov(<cos(phi1+phi2)>,<cos(phi1-phi2-phi3)>):
13796 Double_t product23 = fIntFlowProductOfCorrectionTermsForNUAPro->GetBinContent(23); // <<cos(phi1+phi2)><cos(phi1-phi2-phi3)>>
13797 Double_t term1st23 = fIntFlowCorrectionTermsForNUAPro[1]->GetBinContent(2); // <<cos(phi1+phi2)>>
13798 Double_t term2nd23 = fIntFlowCorrectionTermsForNUAPro[1]->GetBinContent(3); // <<cos(phi1-phi2-phi3)>>
13799 Double_t sumOfW1st23 = fIntFlowSumOfEventWeightsNUA[1][0]->GetBinContent(2); // W_{<cos(phi1+phi2)>}
13800 Double_t sumOfW2nd23 = fIntFlowSumOfEventWeightsNUA[1][0]->GetBinContent(3); // W_{<cos(phi1-phi2-phi3)>}
13801 Double_t sumOfWW23 = fIntFlowSumOfProductOfEventWeightsNUA->GetBinContent(23); // W_{<cos(phi1+phi2)>} * W_{<cos(phi1-phi2-phi3)>}
13802 // numerator in the expression for the the unbiased estimator for covariance:
13803 Double_t numerator23 = product23 - term1st23*term2nd23;
13804 // denominator in the expression for the the unbiased estimator for covariance:
13805 Double_t denominator23 = 0.;
13806 if(TMath::Abs(sumOfW1st23*sumOfW2nd23)>0.)
13808 denominator23 = 1.-sumOfWW23/(sumOfW1st23*sumOfW2nd23);
13809 if(TMath::Abs(denominator23)>0.)
13812 Double_t covariance23 = numerator23/denominator23;
13813 // weight dependent prefactor for covariance:
13814 Double_t wPrefactor23 = sumOfWW23/(sumOfW1st23*sumOfW2nd23);
13815 // finally, store "weighted" covariance:
13816 fIntFlowCovariancesNUA->SetBinContent(23,wPrefactor23*covariance23);
13817 } // end of if(TMath::Abs(denominator23)>0.)
13818 } // end of if(TMath::Abs(sumOfW1st23*sumOfW2nd23)>0.)
13820 // Cov(<cos(phi1+phi2)>,<sin(phi1-phi2-phi3)>):
13821 Double_t product24 = fIntFlowProductOfCorrectionTermsForNUAPro->GetBinContent(24); // <<cos(phi1+phi2)><sin(phi1-phi2-phi3)>>
13822 Double_t term1st24 = fIntFlowCorrectionTermsForNUAPro[1]->GetBinContent(2); // <<cos(phi1+phi2)>>
13823 Double_t term2nd24 = fIntFlowCorrectionTermsForNUAPro[0]->GetBinContent(3); // <<sin(phi1-phi2-phi3)>>
13824 Double_t sumOfW1st24 = fIntFlowSumOfEventWeightsNUA[1][0]->GetBinContent(2); // W_{<cos(phi1+phi2)>}
13825 Double_t sumOfW2nd24 = fIntFlowSumOfEventWeightsNUA[0][0]->GetBinContent(3); // W_{<sin(phi1-phi2-phi3)>}
13826 Double_t sumOfWW24 = fIntFlowSumOfProductOfEventWeightsNUA->GetBinContent(24); // W_{<cos(phi1+phi2)>} * W_{<sin(phi1-phi2-phi3)>}
13827 // numerator in the expression for the the unbiased estimator for covariance:
13828 Double_t numerator24 = product24 - term1st24*term2nd24;
13829 // denominator in the expression for the the unbiased estimator for covariance:
13830 Double_t denominator24 = 0.;
13831 if(TMath::Abs(sumOfW1st24*sumOfW2nd24)>0.)
13833 denominator24 = 1.-sumOfWW24/(sumOfW1st24*sumOfW2nd24);
13834 if(TMath::Abs(denominator24)>0.)
13837 Double_t covariance24 = numerator24/denominator24;
13838 // weight dependent prefactor for covariance:
13839 Double_t wPrefactor24 = sumOfWW24/(sumOfW1st24*sumOfW2nd24);
13840 // finally, store "weighted" covariance:
13841 fIntFlowCovariancesNUA->SetBinContent(24,wPrefactor24*covariance24);
13842 } // end of if(TMath::Abs(denominator24)>0.)
13843 } // end of if(TMath::Abs(sumOfW1st24*sumOfW2nd24)>0.)
13845 // Cov(<sin(phi1+phi2)>,<cos(phi1-phi2-phi3)>):
13846 Double_t product25 = fIntFlowProductOfCorrectionTermsForNUAPro->GetBinContent(25); // <<sin(phi1+phi2)><cos(phi1-phi2-phi3)>>
13847 Double_t term1st25 = fIntFlowCorrectionTermsForNUAPro[0]->GetBinContent(2); // <<sin(phi1+phi2)>>
13848 Double_t term2nd25 = fIntFlowCorrectionTermsForNUAPro[1]->GetBinContent(3); // <<cos(phi1-phi2-phi3)>>
13849 Double_t sumOfW1st25 = fIntFlowSumOfEventWeightsNUA[0][0]->GetBinContent(2); // W_{<sin(phi1+phi2)>}
13850 Double_t sumOfW2nd25 = fIntFlowSumOfEventWeightsNUA[1][0]->GetBinContent(3); // W_{<cos(phi1-phi2-phi3)>}
13851 Double_t sumOfWW25 = fIntFlowSumOfProductOfEventWeightsNUA->GetBinContent(25); // W_{<sin(phi1+phi2)>} * W_{<cos(phi1-phi2-phi3)>}
13852 // numerator in the expression for the the unbiased estimator for covariance:
13853 Double_t numerator25 = product25 - term1st25*term2nd25;
13854 // denominator in the expression for the the unbiased estimator for covariance:
13855 Double_t denominator25 = 0.;
13856 if(TMath::Abs(sumOfW1st25*sumOfW2nd25)>0.)
13858 denominator25 = 1.-sumOfWW25/(sumOfW1st25*sumOfW2nd25);
13859 if(TMath::Abs(denominator25)>0.)
13862 Double_t covariance25 = numerator25/denominator25;
13863 // weight dependent prefactor for covariance:
13864 Double_t wPrefactor25 = sumOfWW25/(sumOfW1st25*sumOfW2nd25);
13865 // finally, store "weighted" covariance:
13866 fIntFlowCovariancesNUA->SetBinContent(25,wPrefactor25*covariance25);
13867 } // end of if(TMath::Abs(denominator25)>0.)
13868 } // end of if(TMath::Abs(sumOfW1st25*sumOfW2nd25)>0.)
13870 // Cov(<sin(phi1+phi2)>,<sin(phi1-phi2-phi3)>):
13871 Double_t product26 = fIntFlowProductOfCorrectionTermsForNUAPro->GetBinContent(26); // <<sin(phi1+phi2)><sin(phi1-phi2-phi3)>>
13872 Double_t term1st26 = fIntFlowCorrectionTermsForNUAPro[0]->GetBinContent(2); // <<sin(phi1+phi2)>>
13873 Double_t term2nd26 = fIntFlowCorrectionTermsForNUAPro[0]->GetBinContent(3); // <<sin(phi1-phi2-phi3)>>
13874 Double_t sumOfW1st26 = fIntFlowSumOfEventWeightsNUA[0][0]->GetBinContent(2); // W_{<sin(phi1+phi2)>}
13875 Double_t sumOfW2nd26 = fIntFlowSumOfEventWeightsNUA[0][0]->GetBinContent(3); // W_{<sin(phi1-phi2-phi3)>}
13876 Double_t sumOfWW26 = fIntFlowSumOfProductOfEventWeightsNUA->GetBinContent(26); // W_{<sin(phi1+phi2)>} * W_{<sin(phi1-phi2-phi3)>}
13877 // numerator in the expression for the the unbiased estimator for covariance:
13878 Double_t numerator26 = product26 - term1st26*term2nd26;
13879 // denominator in the expression for the the unbiased estimator for covariance:
13880 Double_t denominator26 = 0.;
13881 if(TMath::Abs(sumOfW1st26*sumOfW2nd26)>0.)
13883 denominator26 = 1.-sumOfWW26/(sumOfW1st26*sumOfW2nd26);
13884 if(TMath::Abs(denominator26)>0.)
13887 Double_t covariance26 = numerator26/denominator26;
13888 // weight dependent prefactor for covariance:
13889 Double_t wPrefactor26 = sumOfWW26/(sumOfW1st26*sumOfW2nd26);
13890 // finally, store "weighted" covariance:
13891 fIntFlowCovariancesNUA->SetBinContent(26,wPrefactor26*covariance26);
13892 } // end of if(TMath::Abs(denominator26)>0.)
13893 } // end of if(TMath::Abs(sumOfW1st26*sumOfW2nd26)>0.)
13895 // Cov(<cos(phi1-phi2-phi3)>,<sin(phi1-phi2-phi3)>):
13896 Double_t product27 = fIntFlowProductOfCorrectionTermsForNUAPro->GetBinContent(27); // <<cos(phi1-phi2-phi3)><sin(phi1-phi2-phi3)>>
13897 Double_t term1st27 = fIntFlowCorrectionTermsForNUAPro[1]->GetBinContent(3); // <<cos(phi1-phi2-phi3)>>
13898 Double_t term2nd27 = fIntFlowCorrectionTermsForNUAPro[0]->GetBinContent(3); // <<sin(phi1-phi2-phi3)>>
13899 Double_t sumOfW1st27 = fIntFlowSumOfEventWeightsNUA[1][0]->GetBinContent(3); // W_{<cos(phi1-phi2-phi3)>}
13900 Double_t sumOfW2nd27 = fIntFlowSumOfEventWeightsNUA[0][0]->GetBinContent(3); // W_{<sin(phi1-phi2-phi3)>}
13901 Double_t sumOfWW27 = fIntFlowSumOfProductOfEventWeightsNUA->GetBinContent(27); // W_{<cos(phi1-phi2-phi3)>} * W_{<sin(phi1-phi2-phi3)>}
13902 // numerator in the expression for the the unbiased estimator for covariance:
13903 Double_t numerator27 = product27 - term1st27*term2nd27;
13904 // denominator in the expression for the the unbiased estimator for covariance:
13905 Double_t denominator27 = 0.;
13906 if(TMath::Abs(sumOfW1st27*sumOfW2nd27)>0.)
13908 denominator27 = 1.-sumOfWW27/(sumOfW1st27*sumOfW2nd27);
13909 if(TMath::Abs(denominator27)>0.)
13912 Double_t covariance27 = numerator27/denominator27;
13913 // weight dependent prefactor for covariance:
13914 Double_t wPrefactor27 = sumOfWW27/(sumOfW1st27*sumOfW2nd27);
13915 // finally, store "weighted" covariance:
13916 fIntFlowCovariancesNUA->SetBinContent(27,wPrefactor27*covariance27);
13917 } // end of if(TMath::Abs(denominator27)>0.)
13918 } // end of if(TMath::Abs(sumOfW1st27*sumOfW2nd27)>0.)
13920 } // end of AliFlowAnalysisWithQCumulants::CalculateCovariancesNUAIntFlow()
13922 //=======================================================================================================================
13924 void AliFlowAnalysisWithQCumulants::FinalizeCorrelationsIntFlow()
13926 // From profile fIntFlowCorrelationsPro access measured correlations and spread,
13927 // correctly calculate the statistical errors and store the final results and
13928 // statistical errors for correlations in histogram fIntFlowCorrelationsHist.
13930 // Remark: Statistical error of correlation is calculated as:
13932 // statistical error = termA * spread * termB:
13933 // termA = sqrt{sum_{i=1}^{N} w^2}/(sum_{i=1}^{N} w)
13934 // termB = 1/sqrt(1-termA^2)
13937 for(Int_t ci=1;ci<=4;ci++) // correlation index
13939 if(fIntFlowCorrelationsPro->GetBinEffectiveEntries(ci) < 2 || fIntFlowSquaredCorrelationsPro->GetBinEffectiveEntries(ci) < 2)
13941 fIntFlowCorrelationsPro->SetBinError(ci,0.);
13942 fIntFlowSquaredCorrelationsPro->SetBinError(ci,0.);
13945 Double_t correlation = fIntFlowCorrelationsPro->GetBinContent(ci);
13946 Double_t squaredCorrelation = fIntFlowSquaredCorrelationsPro->GetBinContent(ci);
13947 Double_t spread = 0.;
13948 if(squaredCorrelation-correlation*correlation >= 0.)
13950 spread = pow(squaredCorrelation-correlation*correlation,0.5);
13954 cout<<Form(" WARNING: Imaginary 'spread' for %d-particle correlation!!!! ",2*ci)<<endl;
13957 Double_t sumOfLinearEventWeights = fIntFlowSumOfEventWeights[0]->GetBinContent(ci);
13958 Double_t sumOfQuadraticEventWeights = fIntFlowSumOfEventWeights[1]->GetBinContent(ci);
13959 Double_t termA = 0.;
13960 Double_t termB = 0.;
13961 if(TMath::Abs(sumOfLinearEventWeights) > 0.) // to be improved - shall I omitt here Abs() ?
13963 termA = pow(sumOfQuadraticEventWeights,0.5)/sumOfLinearEventWeights;
13967 cout<<" WARNING (QC): sumOfLinearEventWeights == 0 in method FinalizeCorrelationsIntFlow() !!!!"<<endl;
13968 cout<<" (for "<<2*ci<<"-particle correlation)"<<endl;
13971 if(1.-pow(termA,2.) > 0.)
13973 termB = 1./pow(1-pow(termA,2.),0.5);
13977 cout<<" WARNING (QC): 1.-pow(termA,2.) <= 0 in method FinalizeCorrelationsIntFlow() !!!!"<<endl;
13978 cout<<" (for "<<2*ci<<"-particle correlation)"<<endl;
13981 Double_t statisticalError = termA * spread * termB;
13982 fIntFlowCorrelationsHist->SetBinContent(ci,correlation);
13983 fIntFlowCorrelationsHist->SetBinError(ci,statisticalError);
13984 } // end of for(Int_t ci=1;ci<=4;ci++) // correlation index
13986 // Versus multiplicity:
13987 if(!fCalculateCumulantsVsM){return;}
13988 for(Int_t ci=0;ci<=3;ci++) // correlation index
13990 Int_t nBins = fIntFlowCorrelationsVsMPro[ci]->GetNbinsX();
13991 for(Int_t b=1;b<=nBins;b++) // looping over multiplicity bins
13993 if(fIntFlowCorrelationsVsMPro[ci]->GetBinEffectiveEntries(b) < 2 || fIntFlowSquaredCorrelationsVsMPro[ci]->GetBinEffectiveEntries(b) < 2)
13995 fIntFlowCorrelationsVsMPro[ci]->SetBinError(b,0.);
13996 fIntFlowSquaredCorrelationsVsMPro[ci]->SetBinError(b,0.);
13999 Double_t correlationVsM = fIntFlowCorrelationsVsMPro[ci]->GetBinContent(b);
14000 Double_t squaredCorrelationVsM = fIntFlowSquaredCorrelationsVsMPro[ci]->GetBinContent(b);
14001 Double_t spreadVsM = 0.;
14002 if(squaredCorrelationVsM-correlationVsM*correlationVsM >= 0.)
14004 spreadVsM = pow(squaredCorrelationVsM-correlationVsM*correlationVsM,0.5);
14008 cout<<Form(" WARNING (QC): Imaginary 'spreadVsM' for ci = %d, bin = %d, entries = %f !!!!",
14009 ci,b,fIntFlowCorrelationsVsMPro[ci]->GetBinEffectiveEntries(b))<<endl;
14012 Double_t sumOfLinearEventWeightsVsM = fIntFlowSumOfEventWeightsVsM[ci][0]->GetBinContent(b);
14013 Double_t sumOfQuadraticEventWeightsVsM = fIntFlowSumOfEventWeightsVsM[ci][1]->GetBinContent(b);
14014 Double_t termAVsM = 0.;
14015 Double_t termBVsM = 0.;
14016 if(sumOfLinearEventWeightsVsM > 0.)
14018 termAVsM = pow(sumOfQuadraticEventWeightsVsM,0.5)/sumOfLinearEventWeightsVsM;
14020 if(1.-pow(termAVsM,2.) > 0.)
14022 termBVsM = 1./pow(1-pow(termAVsM,2.),0.5);
14024 Double_t statisticalErrorVsM = termAVsM * spreadVsM * termBVsM;
14025 fIntFlowCorrelationsVsMHist[ci]->SetBinContent(b,correlationVsM);
14026 fIntFlowCorrelationsVsMHist[ci]->SetBinError(b,statisticalErrorVsM);
14027 } // end of for(Int_t b=1;b<=nBins;b++)
14028 } // end of for(Int_t ci=1;ci<=4;ci++) // correlation index
14030 } // end of AliFlowAnalysisWithQCumulants::FinalizeCorrelationsIntFlow()
14032 //=======================================================================================================================
14034 void AliFlowAnalysisWithQCumulants::FillAverageMultiplicities(Int_t nRP)
14036 // Fill profile fAverageMultiplicity to hold average multiplicities and
14037 // number of events for events with nRP>=0, nRP>=1, ... , and nRP>=8
14039 // Binning of fAverageMultiplicity is organized as follows:
14040 // 1st bin: all events (including the empty ones)
14041 // 2nd bin: event with # of RPs greater or equal to 1
14042 // 3rd bin: event with # of RPs greater or equal to 2
14043 // 4th bin: event with # of RPs greater or equal to 3
14044 // 5th bin: event with # of RPs greater or equal to 4
14045 // 6th bin: event with # of RPs greater or equal to 5
14046 // 7th bin: event with # of RPs greater or equal to 6
14047 // 8th bin: event with # of RPs greater or equal to 7
14048 // 9th bin: event with # of RPs greater or equal to 8
14053 cout<<" WARNING (QC): nRP<0 in in AFAWQC::FAM() !!!!"<<endl;
14058 for(Int_t i=0;i<9;i++)
14060 if(nRP>=i){fAvMultiplicity->Fill(i+0.5,nRP,1);}
14063 } // end of AliFlowAnalysisWithQCumulants::FillAverageMultiplicities(nRP)
14065 //=======================================================================================================================
14067 void AliFlowAnalysisWithQCumulants::CalculateCumulantsIntFlow()
14069 // a) Calculate Q-cumulants from the measured multiparticle correlations;
14070 // b) Propagate the statistical errors from measured multiparticle correlations to statistical errors of Q-cumulants;
14071 // c) Remark: Q-cumulants calculated in this method are biased by non-uniform acceptance of detector !!!!
14072 // Method CalculateQcumulantsCorrectedForNUAIntFlow() is called afterwards to correct for this bias;
14073 // d) Store the results and statistical error of Q-cumulants in histogram fIntFlowQcumulants.
14074 // Binning of fIntFlowQcumulants is organized as follows:
14083 Double_t two = fIntFlowCorrelationsHist->GetBinContent(1); // <<2>>
14084 Double_t four = fIntFlowCorrelationsHist->GetBinContent(2); // <<4>>
14085 Double_t six = fIntFlowCorrelationsHist->GetBinContent(3); // <<6>>
14086 Double_t eight = fIntFlowCorrelationsHist->GetBinContent(4); // <<8>>
14087 // Statistical errors of average 2-, 4-, 6- and 8-particle azimuthal correlations:
14088 Double_t twoError = fIntFlowCorrelationsHist->GetBinError(1); // statistical error of <2>
14089 Double_t fourError = fIntFlowCorrelationsHist->GetBinError(2); // statistical error of <4>
14090 Double_t sixError = fIntFlowCorrelationsHist->GetBinError(3); // statistical error of <6>
14091 Double_t eightError = fIntFlowCorrelationsHist->GetBinError(4); // statistical error of <8>
14092 // Covariances (multiplied by prefactor depending on weights - see comments in CalculateCovariancesIntFlow()):
14093 Double_t wCov24 = 0.; // Cov(<2>,<4>) * prefactor(w_<2>,w_<4>)
14094 Double_t wCov26 = 0.; // Cov(<2>,<6>) * prefactor(w_<2>,w_<6>)
14095 Double_t wCov28 = 0.; // Cov(<2>,<8>) * prefactor(w_<2>,w_<8>)
14096 Double_t wCov46 = 0.; // Cov(<4>,<6>) * prefactor(w_<4>,w_<6>)
14097 Double_t wCov48 = 0.; // Cov(<4>,<8>) * prefactor(w_<4>,w_<8>)
14098 Double_t wCov68 = 0.; // Cov(<6>,<8>) * prefactor(w_<6>,w_<8>)
14099 if(!fForgetAboutCovariances)
14101 wCov24 = fIntFlowCovariances->GetBinContent(1); // Cov(<2>,<4>) * prefactor(w_<2>,w_<4>)
14102 wCov26 = fIntFlowCovariances->GetBinContent(2); // Cov(<2>,<6>) * prefactor(w_<2>,w_<6>)
14103 wCov28 = fIntFlowCovariances->GetBinContent(3); // Cov(<2>,<8>) * prefactor(w_<2>,w_<8>)
14104 wCov46 = fIntFlowCovariances->GetBinContent(4); // Cov(<4>,<6>) * prefactor(w_<4>,w_<6>)
14105 wCov48 = fIntFlowCovariances->GetBinContent(5); // Cov(<4>,<8>) * prefactor(w_<4>,w_<8>)
14106 wCov68 = fIntFlowCovariances->GetBinContent(6); // Cov(<6>,<8>) * prefactor(w_<6>,w_<8>)
14109 Double_t qc2 = 0.; // QC{2}
14110 Double_t qc4 = 0.; // QC{4}
14111 Double_t qc6 = 0.; // QC{6}
14112 Double_t qc8 = 0.; // QC{8}
14113 if(TMath::Abs(two) > 0.){qc2 = two;}
14114 if(TMath::Abs(four) > 0.){qc4 = four-2.*pow(two,2.);}
14115 if(TMath::Abs(six) > 0.){qc6 = six-9.*two*four+12.*pow(two,3.);}
14116 if(TMath::Abs(eight) > 0.){qc8 = eight-16.*two*six-18.*pow(four,2.)+144.*pow(two,2.)*four-144.*pow(two,4.);}
14117 // Statistical errors of Q-cumulants:
14118 Double_t qc2Error = 0.;
14119 Double_t qc4Error = 0.;
14120 Double_t qc6Error = 0.;
14121 Double_t qc8Error = 0.;
14122 // Squared statistical errors of Q-cumulants:
14123 //Double_t qc2ErrorSquared = 0.;
14124 Double_t qc4ErrorSquared = 0.;
14125 Double_t qc6ErrorSquared = 0.;
14126 Double_t qc8ErrorSquared = 0.;
14127 // Statistical error of QC{2}:
14128 qc2Error = twoError;
14129 // Statistical error of QC{4}:
14130 qc4ErrorSquared = 16.*pow(two,2.)*pow(twoError,2)+pow(fourError,2.)
14132 if(qc4ErrorSquared>0.)
14134 qc4Error = pow(qc4ErrorSquared,0.5);
14137 cout<<" WARNING (QC): Statistical error of QC{4} is imaginary !!!!"<<endl;
14139 // Statistical error of QC{6}:
14140 qc6ErrorSquared = 81.*pow(4.*pow(two,2.)-four,2.)*pow(twoError,2.)
14141 + 81.*pow(two,2.)*pow(fourError,2.)
14143 - 162.*two*(4.*pow(two,2.)-four)*wCov24
14144 + 18.*(4.*pow(two,2.)-four)*wCov26
14146 if(qc6ErrorSquared>0.)
14148 qc6Error = pow(qc6ErrorSquared,0.5);
14151 cout<<" WARNING (QC): Statistical error of QC{6} is imaginary !!!!"<<endl;
14153 // Statistical error of QC{8}:
14154 qc8ErrorSquared = 256.*pow(36.*pow(two,3.)-18.*four*two+six,2.)*pow(twoError,2.)
14155 + 1296.*pow(4.*pow(two,2.)-four,2.)*pow(fourError,2.)
14156 + 256.*pow(two,2.)*pow(sixError,2.)
14157 + pow(eightError,2.)
14158 - 1152.*(36.*pow(two,3.)-18.*four*two+six)*(4.*pow(two,2.)-four)*wCov24
14159 + 512.*two*(36.*pow(two,3.)-18.*four*two+six)*wCov26
14160 - 32.*(36.*pow(two,3.)-18.*four*two+six)*wCov28
14161 - 1152.*two*(4.*pow(two,2.)-four)*wCov46
14162 + 72.*(4.*pow(two,2.)-four)*wCov48
14164 if(qc8ErrorSquared>0.)
14166 qc8Error = pow(qc8ErrorSquared,0.5);
14169 cout<<"WARNING (QC): Statistical error of QC{8} is imaginary !!!!"<<endl;
14171 // Store the results and statistical errors for Q-cumulants:
14172 if(TMath::Abs(qc2)>0.)
14174 fIntFlowQcumulants->SetBinContent(1,qc2);
14175 fIntFlowQcumulants->SetBinError(1,qc2Error);
14177 if(TMath::Abs(qc4)>0.)
14179 fIntFlowQcumulants->SetBinContent(2,qc4);
14180 fIntFlowQcumulants->SetBinError(2,qc4Error);
14182 if(TMath::Abs(qc6)>0.)
14184 fIntFlowQcumulants->SetBinContent(3,qc6);
14185 fIntFlowQcumulants->SetBinError(3,qc6Error);
14187 if(TMath::Abs(qc8)>0.)
14189 fIntFlowQcumulants->SetBinContent(4,qc8);
14190 fIntFlowQcumulants->SetBinError(4,qc8Error);
14193 // Versus multiplicity:
14194 if(!fCalculateCumulantsVsM){return;}
14195 Int_t nBins = fIntFlowCorrelationsVsMPro[0]->GetNbinsX(); // to be improved (hardwired 0)
14196 Double_t value[4] = {0.}; // QCs vs M
14197 Double_t error[4] = {0.}; // error of QCs vs M
14198 Double_t dSum1[4] = {0.}; // sum value_i/(error_i)^2
14199 Double_t dSum2[4] = {0.}; // sum 1/(error_i)^2
14200 for(Int_t b=1;b<=nBins;b++)
14203 two = fIntFlowCorrelationsVsMHist[0]->GetBinContent(b); // <<2>>
14204 four = fIntFlowCorrelationsVsMHist[1]->GetBinContent(b); // <<4>>
14205 six = fIntFlowCorrelationsVsMHist[2]->GetBinContent(b); // <<6>>
14206 eight = fIntFlowCorrelationsVsMHist[3]->GetBinContent(b); // <<8>>
14207 // Statistical errors of average 2-, 4-, 6- and 8-particle azimuthal correlations:
14208 twoError = fIntFlowCorrelationsVsMHist[0]->GetBinError(b); // statistical error of <2>
14209 fourError = fIntFlowCorrelationsVsMHist[1]->GetBinError(b); // statistical error of <4>
14210 sixError = fIntFlowCorrelationsVsMHist[2]->GetBinError(b); // statistical error of <6>
14211 eightError = fIntFlowCorrelationsVsMHist[3]->GetBinError(b); // statistical error of <8>
14212 // Covariances (multiplied by prefactor depending on weights - see comments in CalculateCovariancesIntFlow()):
14213 if(!fForgetAboutCovariances)
14215 wCov24 = fIntFlowCovariancesVsM[0]->GetBinContent(b); // Cov(<2>,<4>) * prefactor(w_<2>,w_<4>)
14216 wCov26 = fIntFlowCovariancesVsM[1]->GetBinContent(b); // Cov(<2>,<6>) * prefactor(w_<2>,w_<6>)
14217 wCov28 = fIntFlowCovariancesVsM[2]->GetBinContent(b); // Cov(<2>,<8>) * prefactor(w_<2>,w_<8>)
14218 wCov46 = fIntFlowCovariancesVsM[3]->GetBinContent(b); // Cov(<4>,<6>) * prefactor(w_<4>,w_<6>)
14219 wCov48 = fIntFlowCovariancesVsM[4]->GetBinContent(b); // Cov(<4>,<8>) * prefactor(w_<4>,w_<8>)
14220 wCov68 = fIntFlowCovariancesVsM[5]->GetBinContent(b); // Cov(<6>,<8>) * prefactor(w_<6>,w_<8>)
14227 if(TMath::Abs(two) > 0.){qc2 = two;}
14228 if(TMath::Abs(four) > 0.){qc4 = four-2.*pow(two,2.);}
14229 if(TMath::Abs(six) > 0.){qc6 = six-9.*two*four+12.*pow(two,3.);}
14230 if(TMath::Abs(eight) > 0.){qc8 = eight-16.*two*six-18.*pow(four,2.)+144.*pow(two,2.)*four-144.*pow(two,4.);}
14231 // Statistical errors of Q-cumulants:
14236 // Squared statistical errors of Q-cumulants:
14237 //Double_t qc2ErrorSquared = 0.;
14238 qc4ErrorSquared = 0.;
14239 qc6ErrorSquared = 0.;
14240 qc8ErrorSquared = 0.;
14241 // Statistical error of QC{2}:
14242 qc2Error = twoError;
14243 // Statistical error of QC{4}:
14244 qc4ErrorSquared = 16.*pow(two,2.)*pow(twoError,2)+pow(fourError,2.)
14246 if(qc4ErrorSquared>0.)
14248 qc4Error = pow(qc4ErrorSquared,0.5);
14251 // cout<<"WARNING: Statistical error of QC{4} is imaginary in multiplicity bin "<<b<<" !!!!"<<endl;
14253 // Statistical error of QC{6}:
14254 qc6ErrorSquared = 81.*pow(4.*pow(two,2.)-four,2.)*pow(twoError,2.)
14255 + 81.*pow(two,2.)*pow(fourError,2.)
14257 - 162.*two*(4.*pow(two,2.)-four)*wCov24
14258 + 18.*(4.*pow(two,2.)-four)*wCov26
14260 if(qc6ErrorSquared>0.)
14262 qc6Error = pow(qc6ErrorSquared,0.5);
14265 // cout<<"WARNING: Statistical error of QC{6} is imaginary in multiplicity bin "<<b<<" !!!!"<<endl;
14267 // Statistical error of QC{8}:
14268 qc8ErrorSquared = 256.*pow(36.*pow(two,3.)-18.*four*two+six,2.)*pow(twoError,2.)
14269 + 1296.*pow(4.*pow(two,2.)-four,2.)*pow(fourError,2.)
14270 + 256.*pow(two,2.)*pow(sixError,2.)
14271 + pow(eightError,2.)
14272 - 1152.*(36.*pow(two,3.)-18.*four*two+six)*(4.*pow(two,2.)-four)*wCov24
14273 + 512.*two*(36.*pow(two,3.)-18.*four*two+six)*wCov26
14274 - 32.*(36.*pow(two,3.)-18.*four*two+six)*wCov28
14275 - 1152.*two*(4.*pow(two,2.)-four)*wCov46
14276 + 72.*(4.*pow(two,2.)-four)*wCov48
14278 if(qc8ErrorSquared>0.)
14280 qc8Error = pow(qc8ErrorSquared,0.5);
14283 // cout<<"WARNING: Statistical error of QC{8} is imaginary in multiplicity bin "<<b<<" !!!!"<<endl;
14285 // Store the results and statistical errors for Q-cumulants:
14286 if(TMath::Abs(qc2)>0.)
14288 fIntFlowQcumulantsVsM[0]->SetBinContent(b,qc2);
14289 fIntFlowQcumulantsVsM[0]->SetBinError(b,qc2Error);
14291 if(TMath::Abs(qc4)>0.)
14293 fIntFlowQcumulantsVsM[1]->SetBinContent(b,qc4);
14294 fIntFlowQcumulantsVsM[1]->SetBinError(b,qc4Error);
14296 if(TMath::Abs(qc6)>0.)
14298 fIntFlowQcumulantsVsM[2]->SetBinContent(b,qc6);
14299 fIntFlowQcumulantsVsM[2]->SetBinError(b,qc6Error);
14301 if(TMath::Abs(qc8)>0.)
14303 fIntFlowQcumulantsVsM[3]->SetBinContent(b,qc8);
14304 fIntFlowQcumulantsVsM[3]->SetBinError(b,qc8Error);
14307 for(Int_t co=0;co<4;co++)
14309 if(fIntFlowCorrelationsVsMPro[co]->GetBinEffectiveEntries(b)<2){continue;}
14310 value[co] = fIntFlowQcumulantsVsM[co]->GetBinContent(b);
14311 error[co] = fIntFlowQcumulantsVsM[co]->GetBinError(b);
14314 dSum1[co]+=value[co]/(error[co]*error[co]);
14315 dSum2[co]+=1./(error[co]*error[co]);
14317 } // end of for(Int_t co=0;co<4;co++)
14318 } // end of for(Int_t b=1;b<=nBins;b++)
14319 // Store rebinned Q-cumulants:
14320 for(Int_t co=0;co<4;co++)
14324 fIntFlowQcumulantsRebinnedInM->SetBinContent(co+1,dSum1[co]/dSum2[co]);
14325 fIntFlowQcumulantsRebinnedInM->SetBinError(co+1,pow(1./dSum2[co],0.5));
14327 } // end of for(Int_t co=0;co<4;co++)
14329 } // end of AliFlowAnalysisWithQCumulants::CalculateCumulantsIntFlow()
14331 //================================================================================================================================
14333 void AliFlowAnalysisWithQCumulants::CalculateReferenceFlow()
14335 // a) Calculate the final results for reference flow estimates from Q-cumulants;
14336 // b) Propagate the statistical errors to reference flow estimates from statistical error of Q-cumulants;
14337 // c) Store the results and statistical errors of reference flow estimates in histogram fIntFlow.
14338 // Binning of fIntFlow is organized as follows:
14340 // 1st bin: v{2,QC}
14341 // 2nd bin: v{4,QC}
14342 // 3rd bin: v{6,QC}
14343 // 4th bin: v{8,QC}
14346 // Reference flow estimates:
14347 Double_t v2 = 0.; // v{2,QC}
14348 Double_t v4 = 0.; // v{4,QC}
14349 Double_t v6 = 0.; // v{6,QC}
14350 Double_t v8 = 0.; // v{8,QC}
14351 // Reference flow's statistical errors:
14352 Double_t v2Error = 0.; // v{2,QC} stat. error
14353 Double_t v4Error = 0.; // v{4,QC} stat. error
14354 Double_t v6Error = 0.; // v{6,QC} stat. error
14355 Double_t v8Error = 0.; // v{8,QC} stat. error
14358 Double_t qc2 = fIntFlowQcumulants->GetBinContent(1); // QC{2}
14359 Double_t qc4 = fIntFlowQcumulants->GetBinContent(2); // QC{4}
14360 Double_t qc6 = fIntFlowQcumulants->GetBinContent(3); // QC{6}
14361 Double_t qc8 = fIntFlowQcumulants->GetBinContent(4); // QC{8}
14362 // Q-cumulants's statistical errors:
14363 Double_t qc2Error = fIntFlowQcumulants->GetBinError(1); // QC{2} stat. error
14364 Double_t qc4Error = fIntFlowQcumulants->GetBinError(2); // QC{4} stat. error
14365 Double_t qc6Error = fIntFlowQcumulants->GetBinError(3); // QC{6} stat. error
14366 Double_t qc8Error = fIntFlowQcumulants->GetBinError(4); // QC{8} stat. error
14367 // Calculate reference flow estimates from Q-cumulants:
14368 if(qc2>=0.){v2 = pow(qc2,0.5);}
14369 if(qc4<=0.){v4 = pow(-1.*qc4,1./4.);}
14370 if(qc6>=0.){v6 = pow((1./4.)*qc6,1./6.);}
14371 if(qc8<=0.){v8 = pow((-1./33.)*qc8,1./8.);}
14372 // Calculate stat. error for reference flow estimates from stat. error of Q-cumulants:
14373 if(qc2>0.){v2Error = (1./2.)*pow(qc2,-0.5)*qc2Error;}
14374 if(qc4<0.){v4Error = (1./4.)*pow(-qc4,-3./4.)*qc4Error;}
14375 if(qc6>0.){v6Error = (1./6.)*pow(2.,-1./3.)*pow(qc6,-5./6.)*qc6Error;}
14376 if(qc8<0.){v8Error = (1./8.)*pow(33.,-1./8.)*pow(-qc8,-7./8.)*qc8Error;}
14377 // Print warnings for the 'wrong sign' cumulants:
14378 if(TMath::Abs(v2) < 1.e-44)
14380 cout<<" WARNING: Wrong sign QC{2}, couldn't calculate v{2,QC} !!!!"<<endl;
14382 if(TMath::Abs(v4) < 1.e-44)
14384 cout<<" WARNING: Wrong sign QC{4}, couldn't calculate v{4,QC} !!!!"<<endl;
14386 if(TMath::Abs(v6) < 1.e-44)
14388 cout<<" WARNING: Wrong sign QC{6}, couldn't calculate v{6,QC} !!!!"<<endl;
14390 if(TMath::Abs(v8) < 1.e-44)
14392 cout<<" WARNING: Wrong sign QC{8}, couldn't calculate v{8,QC} !!!!"<<endl;
14394 // Store the results and statistical errors of integrated flow estimates:
14395 fIntFlow->SetBinContent(1,v2);
14396 fIntFlow->SetBinError(1,v2Error);
14397 fIntFlow->SetBinContent(2,v4);
14398 fIntFlow->SetBinError(2,v4Error);
14399 fIntFlow->SetBinContent(3,v6);
14400 fIntFlow->SetBinError(3,v6Error);
14401 fIntFlow->SetBinContent(4,v8);
14402 fIntFlow->SetBinError(4,v8Error);
14404 // Versus multiplicity:
14405 if(!fCalculateCumulantsVsM){return;}
14406 Int_t nBins = fIntFlowCorrelationsVsMPro[0]->GetNbinsX(); // to be improved (hardwired 0)
14407 for(Int_t b=1;b<=nBins;b++)
14410 Double_t qc2VsM = fIntFlowQcumulantsVsM[0]->GetBinContent(b); // QC{2}
14411 Double_t qc4VsM = fIntFlowQcumulantsVsM[1]->GetBinContent(b); // QC{4}
14412 Double_t qc6VsM = fIntFlowQcumulantsVsM[2]->GetBinContent(b); // QC{6}
14413 Double_t qc8VsM = fIntFlowQcumulantsVsM[3]->GetBinContent(b); // QC{8}
14414 // Q-cumulants's statistical errors:
14415 Double_t qc2ErrorVsM = fIntFlowQcumulantsVsM[0]->GetBinError(b); // QC{2} stat. error
14416 Double_t qc4ErrorVsM = fIntFlowQcumulantsVsM[1]->GetBinError(b); // QC{4} stat. error
14417 Double_t qc6ErrorVsM = fIntFlowQcumulantsVsM[2]->GetBinError(b); // QC{6} stat. error
14418 Double_t qc8ErrorVsM = fIntFlowQcumulantsVsM[3]->GetBinError(b); // QC{8} stat. error
14419 // Reference flow estimates:
14420 Double_t v2VsM = 0.; // v{2,QC}
14421 Double_t v4VsM = 0.; // v{4,QC}
14422 Double_t v6VsM = 0.; // v{6,QC}
14423 Double_t v8VsM = 0.; // v{8,QC}
14424 // Reference flow estimates errors:
14425 Double_t v2ErrorVsM = 0.; // v{2,QC} stat. error
14426 Double_t v4ErrorVsM = 0.; // v{4,QC} stat. error
14427 Double_t v6ErrorVsM = 0.; // v{6,QC} stat. error
14428 Double_t v8ErrorVsM = 0.; // v{8,QC} stat. error
14429 // Calculate reference flow estimates from Q-cumulants:
14430 if(qc2VsM>=0.){v2VsM = pow(qc2VsM,0.5);}
14431 if(qc4VsM<=0.){v4VsM = pow(-1.*qc4VsM,1./4.);}
14432 if(qc6VsM>=0.){v6VsM = pow((1./4.)*qc6VsM,1./6.);}
14433 if(qc8VsM<=0.){v8VsM = pow((-1./33.)*qc8VsM,1./8.);}
14434 // Calculate stat. error for reference flow estimates from stat. error of Q-cumulants:
14435 if(qc2VsM>0.){v2ErrorVsM = (1./2.)*pow(qc2VsM,-0.5)*qc2ErrorVsM;}
14436 if(qc4VsM<0.){v4ErrorVsM = (1./4.)*pow(-qc4VsM,-3./4.)*qc4ErrorVsM;}
14437 if(qc6VsM>0.){v6ErrorVsM = (1./6.)*pow(2.,-1./3.)*pow(qc6VsM,-5./6.)*qc6ErrorVsM;}
14438 if(qc8VsM<0.){v8ErrorVsM = (1./8.)*pow(33.,-1./8.)*pow(-qc8VsM,-7./8.)*qc8ErrorVsM;}
14439 // Store the results and statistical errors of integrated flow estimates:
14440 fIntFlowVsM[0]->SetBinContent(b,v2VsM);
14441 fIntFlowVsM[0]->SetBinError(b,v2ErrorVsM);
14442 fIntFlowVsM[1]->SetBinContent(b,v4VsM);
14443 fIntFlowVsM[1]->SetBinError(b,v4ErrorVsM);
14444 fIntFlowVsM[2]->SetBinContent(b,v6VsM);
14445 fIntFlowVsM[2]->SetBinError(b,v6ErrorVsM);
14446 fIntFlowVsM[3]->SetBinContent(b,v8VsM);
14447 fIntFlowVsM[3]->SetBinError(b,v8ErrorVsM);
14448 } // end of for(Int_t b=1;b<=nBins;b++)
14450 // 'Rebinned in M' calculation: // to be improved - this can be implemented better:
14451 // Reference flow estimates:
14452 Double_t v2RebinnedInM = 0.; // v{2,QC}
14453 Double_t v4RebinnedInM = 0.; // v{4,QC}
14454 Double_t v6RebinnedInM = 0.; // v{6,QC}
14455 Double_t v8RebinnedInM = 0.; // v{8,QC}
14456 // Reference flow's statistical errors:
14457 Double_t v2ErrorRebinnedInM = 0.; // v{2,QC} stat. error
14458 Double_t v4ErrorRebinnedInM = 0.; // v{4,QC} stat. error
14459 Double_t v6ErrorRebinnedInM = 0.; // v{6,QC} stat. error
14460 Double_t v8ErrorRebinnedInM = 0.; // v{8,QC} stat. error
14462 Double_t qc2RebinnedInM = fIntFlowQcumulantsRebinnedInM->GetBinContent(1); // QC{2}
14463 Double_t qc4RebinnedInM = fIntFlowQcumulantsRebinnedInM->GetBinContent(2); // QC{4}
14464 Double_t qc6RebinnedInM = fIntFlowQcumulantsRebinnedInM->GetBinContent(3); // QC{6}
14465 Double_t qc8RebinnedInM = fIntFlowQcumulantsRebinnedInM->GetBinContent(4); // QC{8}
14466 // Q-cumulants's statistical errors:
14467 Double_t qc2ErrorRebinnedInM = fIntFlowQcumulantsRebinnedInM->GetBinError(1); // QC{2} stat. error
14468 Double_t qc4ErrorRebinnedInM = fIntFlowQcumulantsRebinnedInM->GetBinError(2); // QC{4} stat. error
14469 Double_t qc6ErrorRebinnedInM = fIntFlowQcumulantsRebinnedInM->GetBinError(3); // QC{6} stat. error
14470 Double_t qc8ErrorRebinnedInM = fIntFlowQcumulantsRebinnedInM->GetBinError(4); // QC{8} stat. error
14471 // Calculate reference flow estimates from Q-cumulants:
14472 if(qc2RebinnedInM>=0.){v2RebinnedInM = pow(qc2RebinnedInM,0.5);}
14473 if(qc4RebinnedInM<=0.){v4RebinnedInM = pow(-1.*qc4RebinnedInM,1./4.);}
14474 if(qc6RebinnedInM>=0.){v6RebinnedInM = pow((1./4.)*qc6RebinnedInM,1./6.);}
14475 if(qc8RebinnedInM<=0.){v8RebinnedInM = pow((-1./33.)*qc8RebinnedInM,1./8.);}
14476 // Calculate stat. error for reference flow estimates from stat. error of Q-cumulants:
14477 if(qc2RebinnedInM>0.){v2ErrorRebinnedInM = (1./2.)*pow(qc2RebinnedInM,-0.5)*qc2ErrorRebinnedInM;}
14478 if(qc4RebinnedInM<0.){v4ErrorRebinnedInM = (1./4.)*pow(-qc4RebinnedInM,-3./4.)*qc4ErrorRebinnedInM;}
14479 if(qc6RebinnedInM>0.){v6ErrorRebinnedInM = (1./6.)*pow(2.,-1./3.)*pow(qc6RebinnedInM,-5./6.)*qc6ErrorRebinnedInM;}
14480 if(qc8RebinnedInM<0.){v8ErrorRebinnedInM = (1./8.)*pow(33.,-1./8.)*pow(-qc8RebinnedInM,-7./8.)*qc8ErrorRebinnedInM;}
14481 // Print warnings for the 'wrong sign' cumulants:
14482 if(TMath::Abs(v2RebinnedInM) < 1.e-44)
14484 cout<<" WARNING: Wrong sign QC{2} rebinned in M, couldn't calculate v{2,QC} !!!!"<<endl;
14486 if(TMath::Abs(v4RebinnedInM) < 1.e-44)
14488 cout<<" WARNING: Wrong sign QC{4} rebinned in M, couldn't calculate v{4,QC} !!!!"<<endl;
14490 if(TMath::Abs(v6RebinnedInM) < 1.e-44)
14492 cout<<" WARNING: Wrong sign QC{6} rebinned in M, couldn't calculate v{6,QC} !!!!"<<endl;
14494 if(TMath::Abs(v8RebinnedInM) < 1.e-44)
14496 cout<<" WARNING: Wrong sign QC{8} rebinned in M, couldn't calculate v{8,QC} !!!!"<<endl;
14498 // Store the results and statistical errors of integrated flow estimates:
14499 fIntFlowRebinnedInM->SetBinContent(1,v2RebinnedInM);
14500 fIntFlowRebinnedInM->SetBinError(1,v2ErrorRebinnedInM);
14501 fIntFlowRebinnedInM->SetBinContent(2,v4RebinnedInM);
14502 fIntFlowRebinnedInM->SetBinError(2,v4ErrorRebinnedInM);
14503 fIntFlowRebinnedInM->SetBinContent(3,v6RebinnedInM);
14504 fIntFlowRebinnedInM->SetBinError(3,v6ErrorRebinnedInM);
14505 fIntFlowRebinnedInM->SetBinContent(4,v8RebinnedInM);
14506 fIntFlowRebinnedInM->SetBinError(4,v8ErrorRebinnedInM);
14508 } // end of AliFlowAnalysisWithQCumulants::CalculateReferenceFlow()
14510 //================================================================================================================================
14512 void AliFlowAnalysisWithQCumulants::FillCommonHistResultsIntFlow()
14514 // Fill in AliFlowCommonHistResults histograms relevant for reference flow.
14516 // There are two possibilities here:
14517 // a) Store minimum bias reference flow - use SetMinimumBiasReferenceFlow(kTRUE). This result is
14518 // biased by the interplay between nonflow correlations and multiplicity fluctuations and is
14519 // also stored in local histogram fIntFlow;
14520 // b) Store reference flow obtained from flow analysis performed at fixed multiplicity and
14521 // rebinned only at the end of the day - use SetMinimumBiasReferenceFlow(kFALSE). This result
14522 // is also stored in local histogram fIntFlowRebinnedInM.
14524 // Reference flow estimates:
14525 Double_t v[4] = {0.};
14526 // Statistical errors of reference flow estimates:
14527 Double_t vError[4] = {0.};
14529 for(Int_t b=0;b<4;b++)
14531 if(fMinimumBiasReferenceFlow)
14533 v[b] = fIntFlow->GetBinContent(b+1);
14534 vError[b] = fIntFlow->GetBinError(b+1);
14537 v[b] = fIntFlowRebinnedInM->GetBinContent(b+1);
14538 vError[b] = fIntFlowRebinnedInM->GetBinError(b+1);
14540 } // end of for(Int_t b=0;b<4;b++)
14542 // Fill AliFlowCommonHistResults histogram:
14543 fCommonHistsResults2nd->FillIntegratedFlow(v[0],vError[0]); // to be improved (hardwired 2nd in the name)
14544 fCommonHistsResults4th->FillIntegratedFlow(v[1],vError[1]); // to be improved (hardwired 4th in the name)
14545 if(!(fUsePhiWeights||fUsePtWeights||fUseEtaWeights||fUseTrackWeights)) // to be improved (calculate also 6th and 8th order)
14547 fCommonHistsResults6th->FillIntegratedFlow(v[2],vError[2]); // to be improved (hardwired 6th in the name)
14548 fCommonHistsResults8th->FillIntegratedFlow(v[3],vError[3]); // to be improved (hardwired 8th in the name)
14551 } // end of AliFlowAnalysisWithQCumulants::FillCommonHistResultsIntFlow()
14553 //================================================================================================================================
14555 void AliFlowAnalysisWithQCumulants::CalculateIntFlowCorrelationsUsingParticleWeights()
14557 // Calculate all correlations needed for integrated flow using particle weights.
14559 // Remark 1: When particle weights are used the binning of fIntFlowCorrelationAllPro is organized as follows:
14561 // 1st bin: <2>_{1n|1n} = two1n1nW1W1 = <w1 w2 cos(n*(phi1-phi2))>
14562 // 2nd bin: <2>_{2n|2n} = two2n2nW2W2 = <w1^2 w2^2 cos(2n*(phi1-phi2))>
14563 // 3rd bin: <2>_{3n|3n} = two3n3nW3W3 = <w1^3 w2^3 cos(3n*(phi1-phi2))>
14564 // 4th bin: <2>_{4n|4n} = two4n4nW4W4 = <w1^4 w2^4 cos(4n*(phi1-phi2))>
14565 // 5th bin: ---- EMPTY ----
14566 // 6th bin: <3>_{2n|1n,1n} = three2n1n1nW2W1W1 = <w1^2 w2 w3 cos(n*(2phi1-phi2-phi3))>
14567 // 7th bin: <3>_{3n|2n,1n} = ...
14568 // 8th bin: <3>_{4n|2n,2n} = ...
14569 // 9th bin: <3>_{4n|3n,1n} = ...
14570 // 10th bin: ---- EMPTY ----
14571 // 11th bin: <4>_{1n,1n|1n,1n} = four1n1n1n1nW1W1W1W1 = <w1 w2 w3 w4 cos(n*(phi1+phi2-phi3-phi4))>
14572 // 12th bin: <4>_{2n,1n|2n,1n} = ...
14573 // 13th bin: <4>_{2n,2n|2n,2n} = ...
14574 // 14th bin: <4>_{3n|1n,1n,1n} = ...
14575 // 15th bin: <4>_{3n,1n|3n,1n} = ...
14576 // 16th bin: <4>_{3n,1n|2n,2n} = ...
14577 // 17th bin: <4>_{4n|2n,1n,1n} = ...
14578 // 18th bin: ---- EMPTY ----
14579 // 19th bin: <5>_{2n|1n,1n,1n,1n} = ...
14580 // 20th bin: <5>_{2n,2n|2n,1n,1n} = ...
14581 // 21st bin: <5>_{3n,1n|2n,1n,1n} = ...
14582 // 22nd bin: <5>_{4n|1n,1n,1n,1n} = ...
14583 // 23rd bin: ---- EMPTY ----
14584 // 24th bin: <6>_{1n,1n,1n|1n,1n,1n} = ...
14585 // 25th bin: <6>_{2n,1n,1n|2n,1n,1n} = ...
14586 // 26th bin: <6>_{2n,2n|1n,1n,1n,1n} = ...
14587 // 27th bin: <6>_{3n,1n|1n,1n,1n,1n} = ...
14588 // 28th bin: ---- EMPTY ----
14589 // 29th bin: <7>_{2n,1n,1n|1n,1n,1n,1n} = ...
14590 // 30th bin: ---- EMPTY ----
14591 // 31st bin: <8>_{1n,1n,1n,1n|1n,1n,1n,1n} = ...
14593 // Remark 2: When particle weights are used there are some extra correlations. They are stored in
14594 // fIntFlowExtraCorrelationsPro binning of which is organized as follows:
14596 // 1st bin: two1n1nW3W1 = <w1^3 w2 cos(n*(phi1-phi2))>
14597 // 2nd bin: two1n1nW1W1W2 = <w1 w2 w3^2 cos(n*(phi1-phi2))>
14599 // multiplicity (number of particles used to determine the reaction plane)
14600 Double_t dMult = (*fSpk)(0,0);
14602 // real and imaginary parts of weighted Q-vectors evaluated in harmonics n, 2n, 3n and 4n:
14603 Double_t dReQ1n1k = (*fReQ)(0,1);
14604 Double_t dReQ2n2k = (*fReQ)(1,2);
14605 Double_t dReQ3n3k = (*fReQ)(2,3);
14606 Double_t dReQ4n4k = (*fReQ)(3,4);
14607 Double_t dReQ1n3k = (*fReQ)(0,3);
14608 Double_t dImQ1n1k = (*fImQ)(0,1);
14609 Double_t dImQ2n2k = (*fImQ)(1,2);
14610 Double_t dImQ3n3k = (*fImQ)(2,3);
14611 Double_t dImQ4n4k = (*fImQ)(3,4);
14612 Double_t dImQ1n3k = (*fImQ)(0,3);
14614 // dMs are variables introduced in order to simplify some Eqs. bellow:
14615 //..............................................................................................
14616 Double_t dM11 = (*fSpk)(1,1)-(*fSpk)(0,2); // dM11 = sum_{i,j=1,i!=j}^M w_i w_j
14617 Double_t dM22 = (*fSpk)(1,2)-(*fSpk)(0,4); // dM22 = sum_{i,j=1,i!=j}^M w_i^2 w_j^2
14618 Double_t dM33 = (*fSpk)(1,3)-(*fSpk)(0,6); // dM33 = sum_{i,j=1,i!=j}^M w_i^3 w_j^3
14619 Double_t dM44 = (*fSpk)(1,4)-(*fSpk)(0,8); // dM44 = sum_{i,j=1,i!=j}^M w_i^4 w_j^4
14620 Double_t dM31 = (*fSpk)(0,3)*(*fSpk)(0,1)-(*fSpk)(0,4); // dM31 = sum_{i,j=1,i!=j}^M w_i^3 w_j
14621 Double_t dM211 = (*fSpk)(0,2)*(*fSpk)(1,1)-2.*(*fSpk)(0,3)*(*fSpk)(0,1)
14622 - (*fSpk)(1,2)+2.*(*fSpk)(0,4); // dM211 = sum_{i,j,k=1,i!=j!=k}^M w_i^2 w_j w_k
14623 Double_t dM1111 = (*fSpk)(3,1)-6.*(*fSpk)(0,2)*(*fSpk)(1,1)
14624 + 8.*(*fSpk)(0,3)*(*fSpk)(0,1)
14625 + 3.*(*fSpk)(1,2)-6.*(*fSpk)(0,4); // dM1111 = sum_{i,j,k,l=1,i!=j!=k!=l}^M w_i w_j w_k w_l
14626 //..............................................................................................
14628 // 2-particle correlations:
14629 Double_t two1n1nW1W1 = 0.; // <w1 w2 cos(n*(phi1-phi2))>
14630 Double_t two2n2nW2W2 = 0.; // <w1^2 w2^2 cos(2n*(phi1-phi2))>
14631 Double_t two3n3nW3W3 = 0.; // <w1^3 w2^3 cos(3n*(phi1-phi2))>
14632 Double_t two4n4nW4W4 = 0.; // <w1^4 w2^4 cos(4n*(phi1-phi2))>
14637 two1n1nW1W1 = (pow(dReQ1n1k,2)+pow(dImQ1n1k,2)-(*fSpk)(0,2))/dM11;
14638 // average correlation <w1 w2 cos(n*(phi1-phi2))> for single event:
14639 fIntFlowCorrelationsEBE->SetBinContent(1,two1n1nW1W1);
14640 fIntFlowEventWeightsForCorrelationsEBE->SetBinContent(1,dM11);
14641 // average correlation <w1 w2 cos(n*(phi1-phi2))> for all events:
14642 fIntFlowCorrelationsPro->Fill(0.5,two1n1nW1W1,dM11);
14643 // average squared correlation <w1 w2 cos(n*(phi1-phi2))> for all events:
14644 fIntFlowSquaredCorrelationsPro->Fill(0.5,two1n1nW1W1*two1n1nW1W1,dM11);
14645 fIntFlowCorrelationsAllPro->Fill(0.5,two1n1nW1W1,dM11);
14649 two2n2nW2W2 = (pow(dReQ2n2k,2)+pow(dImQ2n2k,2)-(*fSpk)(0,4))/dM22;
14651 // average correlation <w1^2 w2^2 cos(2n*(phi1-phi2))> for all events:
14652 fIntFlowCorrelationsAllPro->Fill(1.5,two2n2nW2W2,dM22);
14656 two3n3nW3W3 = (pow(dReQ3n3k,2)+pow(dImQ3n3k,2)-(*fSpk)(0,6))/dM33;
14658 // average correlation <w1^3 w2^3 cos(3n*(phi1-phi2))> for all events:
14659 fIntFlowCorrelationsAllPro->Fill(2.5,two3n3nW3W3,dM33);
14663 two4n4nW4W4 = (pow(dReQ4n4k,2)+pow(dImQ4n4k,2)-(*fSpk)(0,8))/dM44;
14665 // average correlation <w1^4 w2^4 cos(4n*(phi1-phi2))> for all events:
14666 fIntFlowCorrelationsAllPro->Fill(3.5,two4n4nW4W4,dM44);
14668 } // end of if(dMult>1)
14670 // extra 2-particle correlations:
14671 Double_t two1n1nW3W1 = 0.; // <w1^3 w2 cos(n*(phi1-phi2))>
14672 Double_t two1n1nW1W1W2 = 0.; // <w1 w2 w3^2 cos(n*(phi1-phi2))>
14677 two1n1nW3W1 = (dReQ1n3k*dReQ1n1k+dImQ1n3k*dImQ1n1k-(*fSpk)(0,4))/dM31;
14678 fIntFlowExtraCorrelationsPro->Fill(0.5,two1n1nW3W1,dM31);
14682 two1n1nW1W1W2 = ((*fSpk)(0,2)*(pow(dReQ1n1k,2)+pow(dImQ1n1k,2)-(*fSpk)(0,2))
14683 - 2.*(dReQ1n3k*dReQ1n1k+dImQ1n3k*dImQ1n1k
14684 - (*fSpk)(0,4)))/dM211;
14685 fIntFlowExtraCorrelationsPro->Fill(1.5,two1n1nW1W1W2,dM211);
14687 } // end of if(dMult>1)
14688 //..............................................................................................
14690 //..............................................................................................
14691 // 3-particle correlations:
14692 Double_t three2n1n1nW2W1W1 = 0.; // <w1^2 w2 w3 cos(n*(2phi1-phi2-phi3))>
14698 three2n1n1nW2W1W1 = (pow(dReQ1n1k,2.)*dReQ2n2k+2.*dReQ1n1k*dImQ1n1k*dImQ2n2k-pow(dImQ1n1k,2.)*dReQ2n2k
14699 - 2.*(dReQ1n3k*dReQ1n1k+dImQ1n3k*dImQ1n1k)
14700 - pow(dReQ2n2k,2)-pow(dImQ2n2k,2)
14701 + 2.*(*fSpk)(0,4))/dM211;
14702 fIntFlowCorrelationsAllPro->Fill(5.5,three2n1n1nW2W1W1,dM211);
14704 } // end of if(dMult>2)
14705 //..............................................................................................
14707 //..............................................................................................
14708 // 4-particle correlations:
14709 Double_t four1n1n1n1nW1W1W1W1 = 0.; // <w1 w2 w3 w4 cos(n*(phi1+phi2-phi3-phi4))>
14714 four1n1n1n1nW1W1W1W1 = (pow(pow(dReQ1n1k,2.)+pow(dImQ1n1k,2.),2)
14715 - 2.*(pow(dReQ1n1k,2.)*dReQ2n2k+2.*dReQ1n1k*dImQ1n1k*dImQ2n2k-pow(dImQ1n1k,2.)*dReQ2n2k)
14716 + 8.*(dReQ1n3k*dReQ1n1k+dImQ1n3k*dImQ1n1k)
14717 + (pow(dReQ2n2k,2)+pow(dImQ2n2k,2))
14718 - 4.*(*fSpk)(0,2)*(pow(dReQ1n1k,2)+pow(dImQ1n1k,2))
14719 - 6.*(*fSpk)(0,4)+2.*(*fSpk)(1,2))/dM1111;
14721 // average correlation <w1 w2 w3 w4 cos(n*(phi1+phi2-phi3-phi4))> for single event:
14722 fIntFlowCorrelationsEBE->SetBinContent(2,four1n1n1n1nW1W1W1W1);
14723 fIntFlowEventWeightsForCorrelationsEBE->SetBinContent(2,dM1111);
14724 // average correlation <w1 w2 w3 w4 cos(n*(phi1+phi2-phi3-phi4))> for all events:
14725 fIntFlowCorrelationsPro->Fill(1.5,four1n1n1n1nW1W1W1W1,dM1111);
14726 // average squared correlation <w1 w2 w3 w4 cos(n*(phi1+phi2-phi3-phi4))> for all events:
14727 fIntFlowSquaredCorrelationsPro->Fill(1.5,four1n1n1n1nW1W1W1W1*four1n1n1n1nW1W1W1W1,dM1111);
14728 fIntFlowCorrelationsAllPro->Fill(10.5,four1n1n1n1nW1W1W1W1,dM1111);
14730 } // end of if(dMult>3)
14731 //..............................................................................................
14733 } // end of AliFlowAnalysisWithQCumulants::CalculateIntFlowCorrelationsUsingParticleWeights()
14735 //=======================================================================================================================
14737 void AliFlowAnalysisWithQCumulants::InitializeArraysForIntFlow()
14739 // Initialize all arrays used to calculate integrated flow.
14741 for(Int_t sc=0;sc<2;sc++) // sin or cos terms
14743 fIntFlowCorrectionTermsForNUAEBE[sc] = NULL;
14744 fIntFlowEventWeightForCorrectionTermsForNUAEBE[sc] = NULL;
14745 fIntFlowCorrectionTermsForNUAPro[sc] = NULL;
14746 fIntFlowCorrectionTermsForNUAHist[sc] = NULL;
14747 for(Int_t ci=0;ci<4;ci++) // correction term index (to be improved - hardwired 4)
14749 fIntFlowCorrectionTermsForNUAVsMPro[sc][ci] = NULL;
14751 for(Int_t power=0;power<2;power++) // linear or quadratic
14753 fIntFlowSumOfEventWeightsNUA[sc][power] = NULL;
14756 for(Int_t power=0;power<2;power++) // linear or quadratic
14758 fIntFlowSumOfEventWeights[power] = NULL;
14760 for(Int_t i=0;i<4;i++) // print on the screen the final results (0=RF, 1=RP, 2=POI, 3=RF (rebbined in M))
14762 fPrintFinalResults[i] = kTRUE;
14764 for(Int_t ci=0;ci<4;ci++) // correlation index or cumulant order
14766 fIntFlowCorrelationsVsMPro[ci] = NULL;
14767 fIntFlowSquaredCorrelationsVsMPro[ci] = NULL;
14768 fIntFlowCorrelationsVsMHist[ci] = NULL;
14769 fIntFlowQcumulantsVsM[ci] = NULL;
14770 fIntFlowVsM[ci] = NULL;
14771 fIntFlowDetectorBiasVsM[ci] = NULL;
14772 for(Int_t lc=0;lc<2;lc++)
14774 fIntFlowSumOfEventWeightsVsM[ci][lc] = NULL;
14777 for(Int_t pi=0;pi<6;pi++) // product or covariance index
14779 fIntFlowProductOfCorrelationsVsMPro[pi] = NULL;
14780 fIntFlowCovariancesVsM[pi] = NULL;
14781 fIntFlowSumOfProductOfEventWeightsVsM[pi] = NULL;
14783 for(Int_t ci=0;ci<64;ci++) // correlation index for all correlations vs M profiles (to be improved - hardwired 64)
14785 fIntFlowCorrelationsAllVsMPro[ci] = NULL;
14788 } // end of void AliFlowAnalysisWithQCumulants::InitializeArraysForIntFlow()
14790 //=======================================================================================================================
14792 void AliFlowAnalysisWithQCumulants::InitializeArraysForDiffFlow()
14794 // Initialize all arrays needed to calculate differential flow.
14795 // a) Initialize lists holding profiles;
14796 // b) Initialize lists holding histograms;
14797 // c) Initialize event-by-event quantities;
14798 // d) Initialize profiles;
14799 // e) Initialize histograms holding final results.
14801 // a) Initialize lists holding profiles;
14802 for(Int_t t=0;t<2;t++) // type (RP, POI)
14804 for(Int_t pe=0;pe<2;pe++) // pt or eta
14806 fDiffFlowCorrelationsProList[t][pe] = NULL;
14807 fDiffFlowProductOfCorrelationsProList[t][pe] = NULL;
14808 fDiffFlowCorrectionsProList[t][pe] = NULL;
14811 f2DDiffFlowCorrelationsProList[t] = NULL;
14814 // b) Initialize lists holding histograms;
14815 for(Int_t t=0;t<2;t++) // type (RP, POI)
14817 for(Int_t pe=0;pe<2;pe++) // pt or eta
14819 fDiffFlowCorrelationsHistList[t][pe] = NULL;
14820 for(Int_t power=0;power<2;power++)
14822 fDiffFlowSumOfEventWeightsHistList[t][pe][power] = NULL;
14823 } // end of for(Int_t power=0;power<2;power++)
14824 fDiffFlowSumOfProductOfEventWeightsHistList[t][pe] = NULL;
14825 fDiffFlowCorrectionsHistList[t][pe] = NULL;
14826 fDiffFlowCovariancesHistList[t][pe] = NULL;
14827 fDiffFlowCumulantsHistList[t][pe] = NULL;
14828 fDiffFlowDetectorBiasHistList[t][pe] = NULL;
14829 fDiffFlowHistList[t][pe] = NULL;
14830 } // end of for(Int_t pe=0;pe<2;pe++) // pt or eta
14831 } // enf of for(Int_t t=0;t<2;t++) // type (RP, POI)
14833 // c) Initialize event-by-event quantities:
14835 for(Int_t t=0;t<3;t++) // type (RP, POI, POI&&RP)
14837 for(Int_t pe=0;pe<2;pe++) // pt or eta
14839 for(Int_t m=0;m<4;m++) // multiple of harmonic
14841 for(Int_t k=0;k<9;k++) // power of weight
14843 fReRPQ1dEBE[t][pe][m][k] = NULL;
14844 fImRPQ1dEBE[t][pe][m][k] = NULL;
14845 fs1dEBE[t][pe][k] = NULL; // to be improved (this doesn't need to be within loop over m)
14851 for(Int_t t=0;t<2;t++) // type (RP or POI)
14853 for(Int_t pe=0;pe<2;pe++) // pt or eta
14855 for(Int_t sc=0;sc<2;sc++) // sin or cos terms
14857 for(Int_t cti=0;cti<9;cti++) // correction term index
14859 fDiffFlowCorrectionTermsForNUAEBE[t][pe][sc][cti] = NULL;
14865 for(Int_t t=0;t<3;t++) // type (RP, POI, POI&&RP)
14867 for(Int_t m=0;m<4;m++) // multiple of harmonic
14869 for(Int_t k=0;k<9;k++) // power of weight
14871 fReRPQ2dEBE[t][m][k] = NULL;
14872 fImRPQ2dEBE[t][m][k] = NULL;
14873 fs2dEBE[t][k] = NULL; // to be improved (this doesn't need to be within loop over m)
14878 // d) Initialize profiles:
14879 for(Int_t t=0;t<2;t++) // type: RP or POI
14881 for(Int_t pe=0;pe<2;pe++) // pt or eta
14883 for(Int_t ci=0;ci<4;ci++) // correlation index
14885 fDiffFlowCorrelationsPro[t][pe][ci] = NULL;
14886 fDiffFlowSquaredCorrelationsPro[t][pe][ci] = NULL;
14887 } // end of for(Int_t ci=0;ci<4;ci++)
14888 for(Int_t mci1=0;mci1<8;mci1++) // mixed correlation index
14890 for(Int_t mci2=0;mci2<8;mci2++) // mixed correlation index
14892 fDiffFlowProductOfCorrelationsPro[t][pe][mci1][mci2] = NULL;
14893 } // end of for(Int_t mci2=0;mci2<8;mci2++) // mixed correlation index
14894 } // end of for(Int_t mci1=0;mci1<8;mci1++) // mixed correlation index
14895 // correction terms for nua:
14896 for(Int_t sc=0;sc<2;sc++) // sin or cos terms
14898 for(Int_t cti=0;cti<9;cti++) // correction term index
14900 fDiffFlowCorrectionTermsForNUAPro[t][pe][sc][cti] = NULL;
14903 // other differential correlators:
14904 for(Int_t sc=0;sc<2;sc++) // sin or cos terms
14906 for(Int_t ci=0;ci<1;ci++) // correction term index
14908 fOtherDiffCorrelators[t][pe][sc][ci] = NULL;
14911 } // end of for(Int_t pe=0;pe<2;pe++) // pt or eta
14912 for(Int_t ci=0;ci<4;ci++) // correlation index
14914 f2DDiffFlowCorrelationsPro[t][ci] = NULL;
14916 } // end of for(Int_t t=0;t<2;t++) // type: RP or POI
14918 // e) Initialize histograms holding final results.
14919 for(Int_t t=0;t<2;t++) // type: RP or POI
14921 for(Int_t pe=0;pe<2;pe++) // pt or eta
14923 for(Int_t ci=0;ci<4;ci++) // correlation index
14925 fDiffFlowCorrelationsHist[t][pe][ci] = NULL;
14926 fDiffFlowCumulants[t][pe][ci] = NULL;
14927 fDiffFlowDetectorBias[t][pe][ci] = NULL;
14928 fDiffFlow[t][pe][ci] = NULL;
14929 } // end of for(Int_t ci=0;ci<4;ci++)
14930 for(Int_t covarianceIndex=0;covarianceIndex<5;covarianceIndex++)
14932 fDiffFlowCovariances[t][pe][covarianceIndex] = NULL;
14933 } // end of for(Int_t covarianceIndex=0;covarianceIndex<5;covarianceIndex++)
14934 // correction terms for nua:
14935 for(Int_t sc=0;sc<2;sc++) // sin or cos terms
14937 for(Int_t cti=0;cti<9;cti++) // correction term index
14939 fDiffFlowCorrectionTermsForNUAHist[t][pe][sc][cti] = NULL;
14942 } // end of for(Int_t pe=0;pe<2;pe++) // pt or eta
14943 for(Int_t ci=0;ci<4;ci++) // correlation index
14945 f2DDiffFlowCumulants[t][ci] = NULL;
14946 f2DDiffFlow[t][ci] = NULL;
14948 } // end of for(Int_t t=0;t<2;t++) // type: RP or POI
14950 // sum of event weights for reduced correlations:
14951 for(Int_t t=0;t<2;t++) // type = RP or POI
14953 for(Int_t pe=0;pe<2;pe++) // pt or eta
14955 for(Int_t p=0;p<2;p++) // power of weight is 1 or 2
14957 for(Int_t ew=0;ew<4;ew++) // event weight index for reduced correlations
14959 fDiffFlowSumOfEventWeights[t][pe][p][ew] = NULL;
14964 // product of event weights for both types of correlations:
14965 for(Int_t t=0;t<2;t++) // type = RP or POI
14967 for(Int_t pe=0;pe<2;pe++) // pt or eta
14969 for(Int_t mci1=0;mci1<8;mci1++) // mixed correlation index
14971 for(Int_t mci2=0;mci2<8;mci2++) // mixed correlation index
14973 fDiffFlowSumOfProductOfEventWeights[t][pe][mci1][mci2] = NULL;
14979 } // end of AliFlowAnalysisWithQCumulants::InitializeArraysForDiffFlow()
14981 //=======================================================================================================================
14983 void AliFlowAnalysisWithQCumulants::CalculateDiffFlowCumulants(TString type, TString ptOrEta)
14985 // Calculate differential flow cumulants from measured multiparticle correlations.
14987 // REMARK: Cumulants calculated in this method are NOT corrected for non-uniform acceptance.
14988 // This correction, if enabled via setter SetApplyCorrectionForNUA(Bool_t), is applied
14989 // in the method CalculateDiffFlowCumulantsCorrectedForNUA(TString type, TString ptOrEta)
14997 } else if(type == "POI")
15002 if(ptOrEta == "Pt")
15005 } else if(ptOrEta == "Eta")
15011 Int_t nBinsPtEta[2] = {fnBinsPt,fnBinsEta};
15013 // Correlation <<2>>:
15014 Double_t two = fIntFlowCorrelationsHist->GetBinContent(1);
15015 Double_t twoError = fIntFlowCorrelationsHist->GetBinError(1);
15017 for(Int_t b=1;b<=nBinsPtEta[pe];b++)
15019 // Reduced correlations:
15020 Double_t twoPrime = fDiffFlowCorrelationsHist[t][pe][0]->GetBinContent(b); // <<2'>>
15021 Double_t twoPrimeError = fDiffFlowCorrelationsHist[t][pe][0]->GetBinError(b); // stat. error of <<2'>>
15022 Double_t fourPrime = fDiffFlowCorrelationsHist[t][pe][1]->GetBinContent(b); // <<4'>>
15023 Double_t fourPrimeError = fDiffFlowCorrelationsHist[t][pe][1]->GetBinError(b); // stat. error of <<4'>>
15025 Double_t wCovTwoTwoReduced = fDiffFlowCovariances[t][pe][0]->GetBinContent(b); // Cov(<2>,<2'>) * prefactor(<2>,<2'>)
15026 Double_t wCovTwoFourReduced = fDiffFlowCovariances[t][pe][1]->GetBinContent(b); // Cov(<2>,<4'>) * prefactor(<2>,<4'>)
15027 Double_t wCovTwoReducedFourReduced = fDiffFlowCovariances[t][pe][4]->GetBinContent(b); // Cov(<2'>,<4'>) * prefactor(<2'>,<4'>)
15029 Double_t qc2Prime = twoPrime; // QC{2'}
15030 Double_t qc2PrimeError = twoPrimeError; // stat. error of QC{2'}
15031 fDiffFlowCumulants[t][pe][0]->SetBinContent(b,qc2Prime);
15032 fDiffFlowCumulants[t][pe][0]->SetBinError(b,qc2PrimeError);
15034 Double_t qc4Prime = fourPrime - 2.*twoPrime*two; // QC{4'} = <<4'>> - 2*<<2'>><<2>>
15035 Double_t qc4PrimeError = 0.; // stat. error of QC{4'}
15036 Double_t qc4PrimeErrorSquared = 4.*pow(twoPrime,2.)*pow(twoError,2.)
15037 + 4.*pow(two,2.)*pow(twoPrimeError,2.)
15038 + pow(fourPrimeError,2.)
15039 + 8.*two*twoPrime*wCovTwoTwoReduced
15040 - 4.*twoPrime*wCovTwoFourReduced
15041 - 4.*two*wCovTwoReducedFourReduced;
15042 if(qc4PrimeErrorSquared>0.)
15044 qc4PrimeError = pow(qc4PrimeErrorSquared,0.5);
15046 fDiffFlowCumulants[t][pe][1]->SetBinContent(b,qc4Prime);
15047 fDiffFlowCumulants[t][pe][1]->SetBinError(b,qc4PrimeError);
15048 } // end of for(Int_t p=1;p<=fnBinsPt;p++)
15050 } // end of void AliFlowAnalysisWithQCumulants::CalculateDiffFlowCumulants(TString type, Bool_t useParticleWeights, TString eventWeights);
15052 //=======================================================================================================================
15054 void AliFlowAnalysisWithQCumulants::Calculate2DDiffFlowCumulants(TString type)
15056 // Calculate 2D differential cumulants.
15058 // Remark: correction for detector effects and error propagation not implemented yet for 2D differential cumulants.
15065 } else if(type == "POI")
15070 // Reference correlation <<2>>:
15071 Double_t two = fIntFlowCorrelationsHist->GetBinContent(1);
15073 // Looping over all (pt,eta) bins and calculating differential flow cumulants:
15074 for(Int_t p=1;p<=fnBinsPt;p++)
15076 for(Int_t e=1;e<=fnBinsEta;e++)
15078 // Reduced correlations:
15079 Double_t twoPrime = f2DDiffFlowCorrelationsPro[t][0]->GetBinContent(f2DDiffFlowCorrelationsPro[t][0]->GetBin(p,e)); // <<2'>>(pt,eta)
15080 Double_t fourPrime = f2DDiffFlowCorrelationsPro[t][1]->GetBinContent(f2DDiffFlowCorrelationsPro[t][1]->GetBin(p,e)); // <<4'>>(pt,eta)
15082 Double_t qc2Prime = twoPrime; // QC{2'} = <<2'>>
15083 f2DDiffFlowCumulants[t][0]->SetBinContent(f2DDiffFlowCumulants[t][0]->GetBin(p,e),qc2Prime);
15084 Double_t qc4Prime = fourPrime - 2.*twoPrime*two; // QC{4'} = <<4'>> - 2*<<2'>><<2>>
15085 f2DDiffFlowCumulants[t][1]->SetBinContent(f2DDiffFlowCumulants[t][1]->GetBin(p,e),qc4Prime);
15086 } // end of for(Int_t e=1;e<=fnBinsEta;e++)
15087 } // end of for(Int_t p=1;p<=fnBinsPt;p++)
15089 } // end of void AliFlowAnalysisWithQCumulants::Calculate2DDiffFlowCumulants(TString type)
15091 //=======================================================================================================================
15093 void AliFlowAnalysisWithQCumulants::CalculateFinalResultsForRPandPOIIntegratedFlow(TString type)
15095 // Calculate final results for integrated flow of RPs and POIs.
15097 // to be improved - check if the integrated flow calculation here is actually correct
15099 Int_t t = 0; // RP = 0, POI = 1
15104 } else if(type == "POI")
15110 TH1F *yield2ndPt = NULL;
15111 TH1F *yield4thPt = NULL;
15112 TH1F *yield6thPt = NULL;
15113 TH1F *yield8thPt = NULL;
15117 if(fFillMultipleControlHistograms)
15119 yield2ndPt = (TH1F*)(fCommonHists2nd->GetHistPtPOI())->Clone();
15120 yield4thPt = (TH1F*)(fCommonHists4th->GetHistPtPOI())->Clone();
15121 yield6thPt = (TH1F*)(fCommonHists6th->GetHistPtPOI())->Clone();
15122 yield8thPt = (TH1F*)(fCommonHists8th->GetHistPtPOI())->Clone();
15125 yield2ndPt = (TH1F*)(fCommonHists->GetHistPtPOI())->Clone();
15126 yield4thPt = (TH1F*)(fCommonHists->GetHistPtPOI())->Clone();
15127 yield6thPt = (TH1F*)(fCommonHists->GetHistPtPOI())->Clone();
15128 yield8thPt = (TH1F*)(fCommonHists->GetHistPtPOI())->Clone();
15131 else if(type == "RP")
15133 if(fFillMultipleControlHistograms)
15135 yield2ndPt = (TH1F*)(fCommonHists2nd->GetHistPtRP())->Clone();
15136 yield4thPt = (TH1F*)(fCommonHists4th->GetHistPtRP())->Clone();
15137 yield6thPt = (TH1F*)(fCommonHists6th->GetHistPtRP())->Clone();
15138 yield8thPt = (TH1F*)(fCommonHists8th->GetHistPtRP())->Clone();
15141 yield2ndPt = (TH1F*)(fCommonHists->GetHistPtRP())->Clone();
15142 yield4thPt = (TH1F*)(fCommonHists->GetHistPtRP())->Clone();
15143 yield6thPt = (TH1F*)(fCommonHists->GetHistPtRP())->Clone();
15144 yield8thPt = (TH1F*)(fCommonHists->GetHistPtRP())->Clone();
15148 if(!yield2ndPt){return;}
15149 if(!yield4thPt){return;}
15150 if(!yield6thPt){return;}
15151 if(!yield8thPt){return;}
15153 Int_t nBinsPt = yield2ndPt->GetNbinsX();
15155 TH1D *flow2ndPt = NULL;
15156 TH1D *flow4thPt = NULL;
15157 TH1D *flow6thPt = NULL;
15158 TH1D *flow8thPt = NULL;
15160 // to be improved (hardwired pt index)
15161 flow2ndPt = (TH1D*)fDiffFlow[t][0][0]->Clone();
15162 flow4thPt = (TH1D*)fDiffFlow[t][0][1]->Clone();
15163 flow6thPt = (TH1D*)fDiffFlow[t][0][2]->Clone();
15164 flow8thPt = (TH1D*)fDiffFlow[t][0][3]->Clone();
15166 if(!flow2ndPt){return;}
15167 if(!flow4thPt){return;}
15168 if(!flow6thPt){return;}
15169 if(!flow8thPt){return;}
15171 Double_t dvn2nd = 0., dvn4th = 0., dvn6th = 0., dvn8th = 0.; // differential flow
15172 Double_t dErrvn2nd = 0., dErrvn4th = 0., dErrvn6th = 0., dErrvn8th = 0.; // error on differential flow
15174 Double_t dVn2nd = 0., dVn4th = 0., dVn6th = 0., dVn8th = 0.; // integrated flow
15175 Double_t dErrVn2nd = 0., dErrVn4th = 0., dErrVn6th = 0., dErrVn8th = 0.; // error on integrated flow
15177 Double_t dYield2nd = 0., dYield4th = 0., dYield6th = 0., dYield8th = 0.; // pt yield
15178 Double_t dSum2nd = 0., dSum4th = 0., dSum6th = 0., dSum8th = 0.; // needed for normalizing integrated flow
15180 // looping over pt bins:
15181 for(Int_t p=1;p<nBinsPt+1;p++)
15183 dvn2nd = flow2ndPt->GetBinContent(p);
15184 dvn4th = flow4thPt->GetBinContent(p);
15185 dvn6th = flow6thPt->GetBinContent(p);
15186 dvn8th = flow8thPt->GetBinContent(p);
15188 dErrvn2nd = flow2ndPt->GetBinError(p);
15189 dErrvn4th = flow4thPt->GetBinError(p);
15190 dErrvn6th = flow6thPt->GetBinError(p);
15191 dErrvn8th = flow8thPt->GetBinError(p);
15193 dYield2nd = yield2ndPt->GetBinContent(p);
15194 dYield4th = yield4thPt->GetBinContent(p);
15195 dYield6th = yield6thPt->GetBinContent(p);
15196 dYield8th = yield8thPt->GetBinContent(p);
15198 dVn2nd += dvn2nd*dYield2nd;
15199 dVn4th += dvn4th*dYield4th;
15200 dVn6th += dvn6th*dYield6th;
15201 dVn8th += dvn8th*dYield8th;
15203 dSum2nd += dYield2nd;
15204 dSum4th += dYield4th;
15205 dSum6th += dYield6th;
15206 dSum8th += dYield8th;
15208 dErrVn2nd += dYield2nd*dYield2nd*dErrvn2nd*dErrvn2nd; // ro be improved (check this relation)
15209 dErrVn4th += dYield4th*dYield4th*dErrvn4th*dErrvn4th;
15210 dErrVn6th += dYield6th*dYield6th*dErrvn6th*dErrvn6th;
15211 dErrVn8th += dYield8th*dYield8th*dErrvn8th*dErrvn8th;
15213 } // end of for(Int_t p=1;p<nBinsPt+1;p++)
15215 // normalizing the results for integrated flow:
15219 dErrVn2nd /= (dSum2nd*dSum2nd);
15220 dErrVn2nd = TMath::Sqrt(dErrVn2nd);
15225 dErrVn4th /= (dSum4th*dSum4th);
15226 dErrVn4th = TMath::Sqrt(dErrVn4th);
15228 //if(dSum6th) dVn6th/=dSum6th;
15229 //if(dSum8th) dVn8th/=dSum8th;
15231 // storing the results for integrated flow in common histos: (to be improved: new method for this?)
15234 fCommonHistsResults2nd->FillIntegratedFlowPOI(dVn2nd,dErrVn2nd);
15235 fCommonHistsResults4th->FillIntegratedFlowPOI(dVn4th,dErrVn4th);
15236 fCommonHistsResults6th->FillIntegratedFlowPOI(dVn6th,0.); // to be improved (errors)
15237 fCommonHistsResults8th->FillIntegratedFlowPOI(dVn8th,0.); // to be improved (errors)
15239 else if (type == "RP")
15241 fCommonHistsResults2nd->FillIntegratedFlowRP(dVn2nd,dErrVn2nd);
15242 fCommonHistsResults4th->FillIntegratedFlowRP(dVn4th,dErrVn4th);
15243 fCommonHistsResults6th->FillIntegratedFlowRP(dVn6th,0.); // to be improved (errors)
15244 fCommonHistsResults8th->FillIntegratedFlowRP(dVn8th,0.); // to be improved (errors)
15249 //delete flow6thPt;
15250 //delete flow8thPt;
15257 } // end of AliFlowAnalysisWithQCumulants::CalculateFinalResultsForRPandPOIIntegratedFlow(TString type)
15259 //=======================================================================================================================
15261 void AliFlowAnalysisWithQCumulants::InitializeArraysForDistributions()
15263 // Initialize all arrays used for distributions.
15265 // a) Initialize arrays of histograms used to hold distributions of correlations;
15266 // b) Initialize array to hold min and max values of correlations.
15268 // a) Initialize arrays of histograms used to hold distributions of correlations:
15269 for(Int_t di=0;di<4;di++) // distribution index
15271 fDistributions[di] = NULL;
15274 // b) Initialize default min and max values of correlations:
15275 // (Remark: The default values bellow were chosen for v2=5% and M=500)
15276 fMinValueOfCorrelation[0] = -0.01; // <2>_min
15277 fMaxValueOfCorrelation[0] = 0.04; // <2>_max
15278 fMinValueOfCorrelation[1] = -0.00002; // <4>_min
15279 fMaxValueOfCorrelation[1] = 0.00015; // <4>_max
15280 fMinValueOfCorrelation[2] = -0.0000003; // <6>_min
15281 fMaxValueOfCorrelation[2] = 0.0000006; // <6>_max
15282 fMinValueOfCorrelation[3] = -0.000000006; // <8>_min
15283 fMaxValueOfCorrelation[3] = 0.000000003; // <8>_max
15285 } // end of void AliFlowAnalysisWithQCumulants::InitializeArraysForDistributions()
15287 //=======================================================================================================================
15289 void AliFlowAnalysisWithQCumulants::InitializeArraysForVarious()
15291 // Initialize all arrays used for various unclassified objects.
15293 for(Int_t p=0;p<4;p++) // [v_min,v_max,refMult_min,refMult_max]
15295 fPhiDistributionForOneEventSettings[p] = 0.;
15298 } // end of void AliFlowAnalysisWithQCumulants::InitializeArraysForVarious()
15300 //=======================================================================================================================
15302 void AliFlowAnalysisWithQCumulants::BookEverythingForDistributions()
15304 // a) Book profile to hold all flags for distributions of correlations;
15305 // b) Book all histograms to hold distributions of correlations.
15307 TString correlationIndex[4] = {"<2>","<4>","<6>","<8>"}; // to be improved (should I promote this to data members?)
15309 // a) Book profile to hold all flags for distributions of correlations:
15310 TString distributionsFlagsName = "fDistributionsFlags";
15311 distributionsFlagsName += fAnalysisLabel->Data();
15312 fDistributionsFlags = new TProfile(distributionsFlagsName.Data(),"Flags for Distributions of Correlations",9,0,9);
15313 fDistributionsFlags->SetTickLength(-0.01,"Y");
15314 fDistributionsFlags->SetMarkerStyle(25);
15315 fDistributionsFlags->SetLabelSize(0.05);
15316 fDistributionsFlags->SetLabelOffset(0.02,"Y");
15317 fDistributionsFlags->SetStats(kFALSE);
15318 fDistributionsFlags->GetXaxis()->SetBinLabel(1,"Store or not?");
15319 fDistributionsFlags->GetXaxis()->SetBinLabel(2,"<2>_{min}");
15320 fDistributionsFlags->GetXaxis()->SetBinLabel(3,"<2>_{max}");
15321 fDistributionsFlags->GetXaxis()->SetBinLabel(4,"<4>_{min}");
15322 fDistributionsFlags->GetXaxis()->SetBinLabel(5,"<4>_{max}");
15323 fDistributionsFlags->GetXaxis()->SetBinLabel(6,"<6>_{min}");
15324 fDistributionsFlags->GetXaxis()->SetBinLabel(7,"<6>_{max}");
15325 fDistributionsFlags->GetXaxis()->SetBinLabel(8,"<8>_{min}");
15326 fDistributionsFlags->GetXaxis()->SetBinLabel(9,"<8>_{max}");
15327 fDistributionsList->Add(fDistributionsFlags);
15329 // b) Book all histograms to hold distributions of correlations.
15330 if(fStoreDistributions)
15332 TString distributionsName = "fDistributions";
15333 distributionsName += fAnalysisLabel->Data();
15334 for(Int_t di=0;di<4;di++) // distribution index
15336 fDistributions[di] = new TH1D(Form("Distribution of %s",correlationIndex[di].Data()),Form("Distribution of %s",correlationIndex[di].Data()),10000,fMinValueOfCorrelation[di],fMaxValueOfCorrelation[di]);
15337 fDistributions[di]->SetXTitle(correlationIndex[di].Data());
15338 fDistributionsList->Add(fDistributions[di]);
15339 } // end of for(Int_t di=0;di<4;di++) // distribution index
15340 } // end of if(fStoreDistributions)
15342 } // end of void AliFlowAnalysisWithQCumulants::BookEverythingForDistributions()
15344 //=======================================================================================================================
15346 void AliFlowAnalysisWithQCumulants::BookEverythingForVarious()
15348 // Book all objects for various unclassified quantities.
15350 if(!fStorePhiDistributionForOneEvent){return;}
15352 // a) Book histogram holding phi distribution for single event to illustrate flow.
15354 // a) Book histogram holding phi distribution for single event to illustrate flow:
15355 fPhiDistributionForOneEvent = new TH1D("fPhiDistributionForOneEvent","",360,0.,TMath::TwoPi());
15356 fPhiDistributionForOneEvent->GetXaxis()->SetTitle("#phi");
15357 fVariousList->Add(fPhiDistributionForOneEvent);
15359 } // end of void AliFlowAnalysisWithQCumulants::BookEverythingForVarious()
15361 //=======================================================================================================================
15363 void AliFlowAnalysisWithQCumulants::StoreFlagsForDistributions()
15365 // Store all flags for distributiuons of correlations in profile fDistributionsFlags.
15367 if(!fDistributionsFlags)
15369 cout<<"WARNING: fDistributionsFlags is NULL in AFAWQC::SDF() !!!!"<<endl;
15373 fDistributionsFlags->Fill(0.5,(Int_t)fStoreDistributions); // histos with distributions of correlations stored or not in the output file
15374 // store min and max values of correlations:
15375 for(Int_t di=0;di<4;di++) // distribution index
15377 fDistributionsFlags->Fill(1.5+2.*(Double_t)di,fMinValueOfCorrelation[di]);
15378 fDistributionsFlags->Fill(2.5+2.*(Double_t)di,fMaxValueOfCorrelation[di]);
15381 } // end of void AliFlowAnalysisWithQCumulants::StoreFlagsForDistributions()
15383 //=======================================================================================================================
15385 void AliFlowAnalysisWithQCumulants::StoreDistributionsOfCorrelations()
15387 // Store distributions of correlations.
15389 if(!(fIntFlowCorrelationsEBE && fIntFlowEventWeightsForCorrelationsEBE))
15391 cout<<"WARNING: fIntFlowCorrelationsEBE && fIntFlowEventWeightsForCorrelationsEBE"<<endl;
15392 cout<<" is NULL in AFAWQC::SDOC() !!!!"<<endl;
15396 for(Int_t di=0;di<4;di++) // distribution index
15398 if(!fDistributions[di])
15400 cout<<"WARNING: fDistributions[di] is NULL in AFAWQC::SDOC() !!!!"<<endl;
15401 cout<<"di = "<<di<<endl;
15405 fDistributions[di]->Fill(fIntFlowCorrelationsEBE->GetBinContent(di+1),fIntFlowEventWeightsForCorrelationsEBE->GetBinContent(di+1));
15407 } // end of for(Int_t di=0;di<4;di++) // distribution index
15409 } // end of void AliFlowAnalysisWithQCumulants::StoreDistributionsOfCorrelations()
15411 //=======================================================================================================================
15413 void AliFlowAnalysisWithQCumulants::BookAndNestAllLists()
15415 // Book and nest all lists nested in the base list fHistList.
15416 // a) Book and nest lists for integrated flow;
15417 // b) Book and nest lists for differential flow;
15418 // c) Book and nest list for particle weights;
15419 // d) Book and nest list for distributions;
15420 // e) Book and nest list for various unclassified objects;
15421 // f) Book and nest list for other differential correlators;
15422 // g) Book and nest list for nested loops;
15423 // h) Book and nest lists for mixed harmonics;
15424 // i) Book and nest lists for control histograms.
15426 // a) Book and nest all lists for integrated flow:
15427 // Base list for integrated flow:
15428 fIntFlowList = new TList();
15429 fIntFlowList->SetName("Integrated Flow");
15430 fIntFlowList->SetOwner(kTRUE);
15431 fHistList->Add(fIntFlowList);
15432 // List holding profiles:
15433 fIntFlowProfiles = new TList();
15434 fIntFlowProfiles->SetName("Profiles");
15435 fIntFlowProfiles->SetOwner(kTRUE);
15436 fIntFlowList->Add(fIntFlowProfiles);
15437 // List holding all profiles with results for correlations vs M:
15438 if(fCalculateAllCorrelationsVsM)
15440 fIntFlowAllCorrelationsVsM = new TList();
15441 fIntFlowAllCorrelationsVsM->SetName("Correlations vs M");
15442 fIntFlowAllCorrelationsVsM->SetOwner(kTRUE);
15443 fIntFlowProfiles->Add(fIntFlowAllCorrelationsVsM);
15444 } // end of if(fCalculateAllCorrelationsVsM)
15445 // List holding histograms with results:
15446 fIntFlowResults = new TList();
15447 fIntFlowResults->SetName("Results");
15448 fIntFlowResults->SetOwner(kTRUE);
15449 fIntFlowList->Add(fIntFlowResults);
15451 // b) Book and nest lists for differential flow:
15452 this->BookAndNestListsForDifferentialFlow();
15454 // c) Book and nest list for particle weights:
15455 fWeightsList->SetName("Weights");
15456 fWeightsList->SetOwner(kTRUE);
15457 fHistList->Add(fWeightsList);
15459 // d) Book and nest list for distributions:
15460 fDistributionsList = new TList();
15461 fDistributionsList->SetName("Distributions");
15462 fDistributionsList->SetOwner(kTRUE);
15463 fHistList->Add(fDistributionsList);
15465 // e) Book and nest list for various unclassified objects:
15466 if(fStorePhiDistributionForOneEvent)
15468 fVariousList = new TList();
15469 fVariousList->SetName("Various");
15470 fVariousList->SetOwner(kTRUE);
15471 fHistList->Add(fVariousList);
15474 // f) Book and nest list for other differential correlators:
15475 fOtherDiffCorrelatorsList = new TList();
15476 fOtherDiffCorrelatorsList->SetName("Other differential correlators");
15477 fOtherDiffCorrelatorsList->SetOwner(kTRUE);
15478 if(fCalculateDiffFlow){fHistList->Add(fOtherDiffCorrelatorsList);} // TBI: Use another flag here instead of fCalculateDiffFlow
15480 // g) Book and nest list for nested loops:
15481 fNestedLoopsList = new TList();
15482 fNestedLoopsList->SetName("Nested Loops");
15483 fNestedLoopsList->SetOwner(kTRUE);
15484 fHistList->Add(fNestedLoopsList);
15486 // h) Book and nest lists for mixed harmonics:
15487 // Base list for mixed harmonics:
15488 fMixedHarmonicsList = new TList();
15489 fMixedHarmonicsList->SetName("Mixed Harmonics");
15490 fMixedHarmonicsList->SetOwner(kTRUE);
15491 fHistList->Add(fMixedHarmonicsList);
15492 // List holding profiles:
15493 fMixedHarmonicsProfiles = new TList();
15494 fMixedHarmonicsProfiles->SetName("Profiles");
15495 fMixedHarmonicsProfiles->SetOwner(kTRUE);
15496 if(fCalculateMixedHarmonics){fMixedHarmonicsList->Add(fMixedHarmonicsProfiles);}
15497 // List holding histograms with results:
15498 fMixedHarmonicsResults = new TList();
15499 fMixedHarmonicsResults->SetName("Results");
15500 fMixedHarmonicsResults->SetOwner(kTRUE);
15501 if(fCalculateMixedHarmonics){fMixedHarmonicsList->Add(fMixedHarmonicsResults);}
15502 // List holding objects for statistical error propagation of mixed harmonics:
15503 fMixedHarmonicsErrorPropagation = new TList();
15504 fMixedHarmonicsErrorPropagation->SetName("Error Propagation");
15505 fMixedHarmonicsErrorPropagation->SetOwner(kTRUE);
15506 if(fCalculateMixedHarmonics){fMixedHarmonicsList->Add(fMixedHarmonicsErrorPropagation);}
15508 // i) Book and nest lists for control histograms:
15509 // Base list for mixed harmonics:
15510 fControlHistogramsList = new TList();
15511 fControlHistogramsList->SetName("Control Histograms");
15512 fControlHistogramsList->SetOwner(kTRUE);
15513 fHistList->Add(fControlHistogramsList);
15515 } // end of void AliFlowAnalysisWithQCumulants::BookAndNestAllLists()
15517 //=======================================================================================================================
15519 void AliFlowAnalysisWithQCumulants::BookAndNestListsForDifferentialFlow()
15521 // Book and nest lists for differential flow.
15523 // Base list for differential flow objects:
15524 fDiffFlowList = new TList();
15525 fDiffFlowList->SetName("Differential Flow");
15526 fDiffFlowList->SetOwner(kTRUE);
15527 fHistList->Add(fDiffFlowList);
15530 TString typeFlag[2] = {"RP","POI"};
15531 TString ptEtaFlag[2] = {"p_{T}","#eta"};
15532 TString powerFlag[2] = {"linear","quadratic"};
15535 if(fCalculate2DDiffFlow)
15537 fDiffFlow2D = new TList();
15538 fDiffFlow2D->SetName("2D");
15539 fDiffFlow2D->SetOwner(kTRUE);
15540 fDiffFlowList->Add(fDiffFlow2D);
15541 for(Int_t t=0;t<2;t++)
15543 f2DDiffFlowCorrelationsProList[t] = new TList();
15544 f2DDiffFlowCorrelationsProList[t]->SetOwner(kTRUE);
15545 f2DDiffFlowCorrelationsProList[t]->SetName(Form("Profiles with 2D correlations (%s)",typeFlag[t].Data()));
15546 fDiffFlow2D->Add(f2DDiffFlowCorrelationsProList[t]);
15547 } // end of for(Int_t t=0;t<2;t++)
15548 } // end of if(fCalculate2DDiffFlow)
15550 // What follows bellow in this method is relevant only for 1D differential flow:
15551 if(!fCalculateDiffFlow){return;}
15553 // List holding profiles:
15554 fDiffFlowProfiles = new TList();
15555 fDiffFlowProfiles->SetName("Profiles");
15556 fDiffFlowProfiles->SetOwner(kTRUE);
15557 fDiffFlowList->Add(fDiffFlowProfiles);
15558 // List holding histograms with results:
15559 fDiffFlowResults = new TList();
15560 fDiffFlowResults->SetName("Results");
15561 fDiffFlowResults->SetOwner(kTRUE);
15562 fDiffFlowList->Add(fDiffFlowResults);
15563 // Flags used for naming nested lists in list fDiffFlowProfiles and fDiffFlowResults:
15565 list.SetOwner(kTRUE);
15566 // Nested lists in fDiffFlowProfiles (~/Differential Flow/Profiles):
15567 for(Int_t t=0;t<2;t++) // type: RP or POI
15569 for(Int_t pe=0;pe<1+(Int_t)fCalculateDiffFlowVsEta;pe++) // pt or eta
15571 // list holding profiles with correlations:
15572 fDiffFlowCorrelationsProList[t][pe] = (TList*)list.Clone();
15573 fDiffFlowCorrelationsProList[t][pe]->SetName(Form("Profiles with correlations (%s, %s)",typeFlag[t].Data(),ptEtaFlag[pe].Data()));
15574 fDiffFlowProfiles->Add(fDiffFlowCorrelationsProList[t][pe]);
15575 // list holding profiles with products of correlations:
15576 fDiffFlowProductOfCorrelationsProList[t][pe] = (TList*)list.Clone();
15577 fDiffFlowProductOfCorrelationsProList[t][pe]->SetName(Form("Profiles with products of correlations (%s, %s)",typeFlag[t].Data(),ptEtaFlag[pe].Data()));
15578 fDiffFlowProfiles->Add(fDiffFlowProductOfCorrelationsProList[t][pe]);
15579 // list holding profiles with corrections:
15580 fDiffFlowCorrectionsProList[t][pe] = (TList*)list.Clone();
15581 fDiffFlowCorrectionsProList[t][pe]->SetName(Form("Profiles with correction terms for NUA (%s, %s)",typeFlag[t].Data(),ptEtaFlag[pe].Data()));
15582 fDiffFlowProfiles->Add(fDiffFlowCorrectionsProList[t][pe]);
15583 } // end of for(Int_t pe=0;pe<2;pe++) // pt or eta
15584 } // end of for(Int_t t=0;t<2;t++) // type: RP or POI
15585 // nested lists in fDiffFlowResults (~/Differential Flow/Results):
15586 for(Int_t t=0;t<2;t++) // type: RP or POI
15588 for(Int_t pe=0;pe<1+(Int_t)fCalculateDiffFlowVsEta;pe++) // pt or eta
15590 // list holding histograms with correlations:
15591 fDiffFlowCorrelationsHistList[t][pe] = (TList*)list.Clone();
15592 fDiffFlowCorrelationsHistList[t][pe]->SetName(Form("Correlations (%s, %s)",typeFlag[t].Data(),ptEtaFlag[pe].Data()));
15593 fDiffFlowResults->Add(fDiffFlowCorrelationsHistList[t][pe]);
15594 // list holding histograms with corrections:
15595 fDiffFlowCorrectionsHistList[t][pe] = (TList*)list.Clone();
15596 fDiffFlowCorrectionsHistList[t][pe]->SetName(Form("Histograms with correction terms for NUA (%s, %s)",typeFlag[t].Data(),ptEtaFlag[pe].Data()));
15597 fDiffFlowResults->Add(fDiffFlowCorrectionsHistList[t][pe]);
15598 for(Int_t power=0;power<2;power++)
15600 // list holding histograms with sums of event weights:
15601 fDiffFlowSumOfEventWeightsHistList[t][pe][power] = (TList*)list.Clone();
15602 fDiffFlowSumOfEventWeightsHistList[t][pe][power]->SetName(Form("Sum of %s event weights (%s, %s)",powerFlag[power].Data(),typeFlag[t].Data(),ptEtaFlag[pe].Data()));
15603 fDiffFlowResults->Add(fDiffFlowSumOfEventWeightsHistList[t][pe][power]);
15604 } // end of for(Int_t power=0;power<2;power++)
15605 // list holding histograms with sums of products of event weights:
15606 fDiffFlowSumOfProductOfEventWeightsHistList[t][pe] = (TList*)list.Clone();
15607 fDiffFlowSumOfProductOfEventWeightsHistList[t][pe]->SetName(Form("Sum of products of event weights (%s, %s)",typeFlag[t].Data(),ptEtaFlag[pe].Data()));
15608 fDiffFlowResults->Add(fDiffFlowSumOfProductOfEventWeightsHistList[t][pe]);
15609 // list holding histograms with covariances of correlations:
15610 fDiffFlowCovariancesHistList[t][pe] = (TList*)list.Clone();
15611 fDiffFlowCovariancesHistList[t][pe]->SetName(Form("Covariances of correlations (%s, %s)",typeFlag[t].Data(),ptEtaFlag[pe].Data()));
15612 fDiffFlowResults->Add(fDiffFlowCovariancesHistList[t][pe]);
15613 // list holding histograms with differential Q-cumulants:
15614 fDiffFlowCumulantsHistList[t][pe] = (TList*)list.Clone();
15615 fDiffFlowCumulantsHistList[t][pe]->SetName(Form("Differential Q-cumulants (%s, %s)",typeFlag[t].Data(),ptEtaFlag[pe].Data()));
15616 fDiffFlowResults->Add(fDiffFlowCumulantsHistList[t][pe]);
15617 // list holding histograms which quantify detector bias to differential Q-cumulants:
15618 fDiffFlowDetectorBiasHistList[t][pe] = (TList*)list.Clone();
15619 fDiffFlowDetectorBiasHistList[t][pe]->SetName(Form("Detector bias (%s, %s)",typeFlag[t].Data(),ptEtaFlag[pe].Data()));
15620 fDiffFlowResults->Add(fDiffFlowDetectorBiasHistList[t][pe]);
15621 // list holding histograms with differential flow estimates from Q-cumulants:
15622 fDiffFlowHistList[t][pe] = (TList*)list.Clone();
15623 fDiffFlowHistList[t][pe]->SetName(Form("Differential flow (%s, %s)",typeFlag[t].Data(),ptEtaFlag[pe].Data()));
15624 fDiffFlowResults->Add(fDiffFlowHistList[t][pe]);
15625 } // end of for(Int_t pe=0;pe<2;pe++) // pt or eta
15626 } // end of for(Int_t t=0;t<2;t++) // type: RP or POI
15628 } // end of void AliFlowAnalysisWithQCumulants::BookAndNestListsForDifferentialFlow()
15630 //=======================================================================================================================
15632 void AliFlowAnalysisWithQCumulants::FillCommonHistResultsDiffFlow(TString type)
15634 // Fill common result histograms for differential flow.
15641 } else if(type == "POI")
15646 // to be improved - check all pointers used in this method
15648 if(!(fCommonHistsResults2nd && fCommonHistsResults4th && fCommonHistsResults6th && fCommonHistsResults8th))
15650 cout<<"WARNING: fCommonHistsResults2nd && fCommonHistsResults4th && fCommonHistsResults6th && fCommonHistsResults8th"<<endl;
15651 cout<<" is NULL in AFAWQC::FCHRIF() !!!!"<<endl;
15656 for(Int_t p=1;p<=fnBinsPt;p++)
15658 Double_t v2 = fDiffFlow[t][0][0]->GetBinContent(p);
15659 Double_t v4 = fDiffFlow[t][0][1]->GetBinContent(p);
15660 Double_t v6 = fDiffFlow[t][0][2]->GetBinContent(p);
15661 Double_t v8 = fDiffFlow[t][0][3]->GetBinContent(p);
15663 Double_t v2Error = fDiffFlow[t][0][0]->GetBinError(p);
15664 Double_t v4Error = fDiffFlow[t][0][1]->GetBinError(p);
15665 //Double_t v6Error = fFinalFlow1D[t][pW][nua][0][2]->GetBinError(p);
15666 //Double_t v8Error = fFinalFlow1D[t][pW][nua][0][3]->GetBinError(p);
15670 fCommonHistsResults2nd->FillDifferentialFlowPtRP(p,v2,v2Error);
15671 fCommonHistsResults4th->FillDifferentialFlowPtRP(p,v4,v4Error);
15672 fCommonHistsResults6th->FillDifferentialFlowPtRP(p,v6,0.);
15673 fCommonHistsResults8th->FillDifferentialFlowPtRP(p,v8,0.);
15674 } else if(type == "POI")
15676 fCommonHistsResults2nd->FillDifferentialFlowPtPOI(p,v2,v2Error);
15677 fCommonHistsResults4th->FillDifferentialFlowPtPOI(p,v4,v4Error);
15678 fCommonHistsResults6th->FillDifferentialFlowPtPOI(p,v6,0.);
15679 fCommonHistsResults8th->FillDifferentialFlowPtPOI(p,v8,0.);
15681 } // end of for(Int_t p=1;p<=fnBinsPt;p++)
15684 if(!fCalculateDiffFlowVsEta){return;}
15685 for(Int_t e=1;e<=fnBinsEta;e++)
15687 Double_t v2 = fDiffFlow[t][1][0]->GetBinContent(e);
15688 Double_t v4 = fDiffFlow[t][1][1]->GetBinContent(e);
15689 Double_t v6 = fDiffFlow[t][1][2]->GetBinContent(e);
15690 Double_t v8 = fDiffFlow[t][1][3]->GetBinContent(e);
15692 Double_t v2Error = fDiffFlow[t][1][0]->GetBinError(e);
15693 Double_t v4Error = fDiffFlow[t][1][1]->GetBinError(e);
15694 //Double_t v6Error = fDiffFlow[t][1][2]->GetBinError(e);
15695 //Double_t v8Error = fDiffFlow[t][1][3]->GetBinError(e);
15699 fCommonHistsResults2nd->FillDifferentialFlowEtaRP(e,v2,v2Error);
15700 fCommonHistsResults4th->FillDifferentialFlowEtaRP(e,v4,v4Error);
15701 fCommonHistsResults6th->FillDifferentialFlowEtaRP(e,v6,0.);
15702 fCommonHistsResults8th->FillDifferentialFlowEtaRP(e,v8,0.);
15703 } else if(type == "POI")
15705 fCommonHistsResults2nd->FillDifferentialFlowEtaPOI(e,v2,v2Error);
15706 fCommonHistsResults4th->FillDifferentialFlowEtaPOI(e,v4,v4Error);
15707 fCommonHistsResults6th->FillDifferentialFlowEtaPOI(e,v6,0.);
15708 fCommonHistsResults8th->FillDifferentialFlowEtaPOI(e,v8,0.);
15710 } // end of for(Int_t e=1;e<=fnBinsEta;e++)
15712 } // end of void AliFlowAnalysisWithQCumulants::FillCommonHistResultsDiffFlow(TString type, Bool_t useParticleWeights, TString eventWeights, Bool_t correctedForNUA)
15714 //=======================================================================================================================
15716 void AliFlowAnalysisWithQCumulants::CommonConstants(TString method)
15718 // Access and store common constants.
15720 // a) If this method was called in Init() access common constants from AliFlowCommonConstants;
15721 // b) If this method was called in Init() book and fill TProfile to hold constants accessed in a);
15722 // c) If this method was called in Finish() access common constants from TProfile booked and filled in b).
15724 if(method == "Init")
15726 // a) If this method was called in Init() access common constants from AliFlowCommonConstants:
15727 fnBinsPhi = AliFlowCommonConstants::GetMaster()->GetNbinsPhi();
15728 fPhiMin = AliFlowCommonConstants::GetMaster()->GetPhiMin();
15729 fPhiMax = AliFlowCommonConstants::GetMaster()->GetPhiMax();
15730 if(fnBinsPhi){fPhiBinWidth = (fPhiMax-fPhiMin)/fnBinsPhi;}
15731 fnBinsPt = AliFlowCommonConstants::GetMaster()->GetNbinsPt();
15732 fPtMin = AliFlowCommonConstants::GetMaster()->GetPtMin();
15733 fPtMax = AliFlowCommonConstants::GetMaster()->GetPtMax();
15734 if(fnBinsPt){fPtBinWidth = (fPtMax-fPtMin)/fnBinsPt;}
15735 fnBinsEta = AliFlowCommonConstants::GetMaster()->GetNbinsEta();
15736 fEtaMin = AliFlowCommonConstants::GetMaster()->GetEtaMin();
15737 fEtaMax = AliFlowCommonConstants::GetMaster()->GetEtaMax();
15738 if(fnBinsEta){fEtaBinWidth = (fEtaMax-fEtaMin)/fnBinsEta;}
15740 // b) If this method was called in Init() book and fill TProfile to hold constants accessed in a):
15741 TString fCommonConstantsName = "fCommonConstants";
15742 fCommonConstantsName += fAnalysisLabel->Data();
15743 fCommonConstants = new TProfile(fCommonConstantsName.Data(),"Common constants",9,0.,9.);
15744 fCommonConstants->SetLabelSize(0.05);
15745 fCommonConstants->GetXaxis()->SetBinLabel(1,"nBins (#phi)");
15746 fCommonConstants->Fill(0.5,fnBinsPhi);
15747 fCommonConstants->GetXaxis()->SetBinLabel(2,"#phi_{min}");
15748 fCommonConstants->Fill(1.5,fPhiMin);
15749 fCommonConstants->GetXaxis()->SetBinLabel(3,"#phi_{max}");
15750 fCommonConstants->Fill(2.5,fPhiMax);
15751 fCommonConstants->GetXaxis()->SetBinLabel(4,"nBins (p_{t})");
15752 fCommonConstants->Fill(3.5,fnBinsPt);
15753 fCommonConstants->GetXaxis()->SetBinLabel(5,"(p_{t})_{min}");
15754 fCommonConstants->Fill(4.5,fPtMin);
15755 fCommonConstants->GetXaxis()->SetBinLabel(6,"(p_{t})_{max}");
15756 fCommonConstants->Fill(5.5,fPtMax);
15757 fCommonConstants->GetXaxis()->SetBinLabel(7,"nBins (#eta)");
15758 fCommonConstants->Fill(6.5,fnBinsEta);
15759 fCommonConstants->GetXaxis()->SetBinLabel(8,"#eta_{min}");
15760 fCommonConstants->Fill(7.5,fEtaMin);
15761 fCommonConstants->GetXaxis()->SetBinLabel(9,"#eta_{max}");
15762 fCommonConstants->Fill(8.5,fEtaMax);
15763 fHistList->Add(fCommonConstants);
15764 } // end of if(method == "Init")
15765 else if(method == "Finish")
15767 // c) If this method was called in Finish() access common constants from TProfile booked and filled in b):
15768 if(!fCommonConstants)
15770 printf("\n WARNING (QC): fCommonConstants is NULL in AFAWQC::AC(\"%s\") !!!!\n\n",method.Data());
15773 fnBinsPhi = (Int_t)fCommonConstants->GetBinContent(1);
15774 fPhiMin = fCommonConstants->GetBinContent(2);
15775 fPhiMax = fCommonConstants->GetBinContent(3);
15776 if(fnBinsPhi){fPhiBinWidth = (fPhiMax-fPhiMin)/fnBinsPhi;}
15777 fnBinsPt = (Int_t)fCommonConstants->GetBinContent(4);
15778 fPtMin = fCommonConstants->GetBinContent(5);
15779 fPtMax = fCommonConstants->GetBinContent(6);
15780 if(fnBinsPt){fPtBinWidth = (fPtMax-fPtMin)/fnBinsPt;}
15781 fnBinsEta = (Int_t)fCommonConstants->GetBinContent(7);
15782 fEtaMin = fCommonConstants->GetBinContent(8);
15783 fEtaMax = fCommonConstants->GetBinContent(9);
15784 if(fnBinsEta){fEtaBinWidth = (fEtaMax-fEtaMin)/fnBinsEta;}
15785 } // end of else if(method == "Finish")
15787 } // end of void AliFlowAnalysisWithQCumulants::CommonConstants(TString method)
15789 //=======================================================================================================================
15791 void AliFlowAnalysisWithQCumulants::CrossCheckSettings()
15793 // a) Cross-check if the choice for multiplicity weights make sense;
15794 // b) Cross-check if the choice for multiplicity itself make sense.
15796 // a) Cross-check if the choice for multiplicity weights make sense:
15797 if((!fMultiplicityWeight->Contains("combinations")) &&
15798 (!fMultiplicityWeight->Contains("unit")) &&
15799 (!fMultiplicityWeight->Contains("multiplicity")) )
15801 cout<<"WARNING (QC): Multiplicity weight can be either \"combinations\", \"unit\""<<endl;
15802 cout<<" or \"multiplicity\". Certainly not \""<<fMultiplicityWeight->Data()<<"\"."<<endl;
15806 } // end of void AliFlowAnalysisWithQCumulants::CrossCheckSettings()
15808 //=======================================================================================================================
15810 void AliFlowAnalysisWithQCumulants::CalculateIntFlowSumOfEventWeights()
15812 // Calculate sum of linear and quadratic event weights for correlations.
15814 // TBI re-think what is the right multiplicity when particle weights are used!
15816 // Multiplicity bin of an event (relevant for all histos vs M):
15817 Double_t dMultiplicityBin = 0.;
15818 if(fMultiplicityIs==AliFlowCommonConstants::kRP)
15820 dMultiplicityBin = fNumberOfRPsEBE+0.5;
15821 } else if(fMultiplicityIs==AliFlowCommonConstants::kExternal)
15823 dMultiplicityBin = fReferenceMultiplicityEBE+0.5;
15824 } else if(fMultiplicityIs==AliFlowCommonConstants::kPOI)
15826 dMultiplicityBin = fNumberOfPOIsEBE+0.5;
15829 for(Int_t p=0;p<2;p++) // power-1
15831 for(Int_t ci=0;ci<4;ci++) // correlation index
15833 fIntFlowSumOfEventWeights[p]->Fill(ci+0.5,pow(fIntFlowEventWeightsForCorrelationsEBE->GetBinContent(ci+1),p+1));
15834 if(fCalculateCumulantsVsM)
15836 fIntFlowSumOfEventWeightsVsM[ci][p]->Fill(dMultiplicityBin,pow(fIntFlowEventWeightsForCorrelationsEBE->GetBinContent(ci+1),p+1)); // to be improved: dMult => sum of weights?
15841 } // end of void AliFlowAnalysisWithQCumulants::CalculateIntFlowSumOfEventWeights()
15843 //=======================================================================================================================
15845 void AliFlowAnalysisWithQCumulants::CalculateIntFlowSumOfEventWeightsNUA()
15847 // Calculate sum of linear and quadratic event weights for NUA terms.
15849 for(Int_t sc=0;sc<2;sc++) // sin or cos terms
15851 for(Int_t p=0;p<2;p++) // power-1
15853 for(Int_t ci=0;ci<4;ci++) // nua term index
15855 fIntFlowSumOfEventWeightsNUA[sc][p]->Fill(ci+0.5,pow(fIntFlowEventWeightForCorrectionTermsForNUAEBE[sc]->GetBinContent(ci+1),p+1));
15860 } // end of void AliFlowAnalysisWithQCumulants::CalculateIntFlowSumOfEventWeightsNUA()
15862 //=======================================================================================================================
15864 void AliFlowAnalysisWithQCumulants::CalculateIntFlowSumOfProductOfEventWeights()
15866 // Calculate sum of product of event weights for correlations.
15868 // TBI re-think what is the right multiplicity when particle weights are used!
15870 // Multiplicity bin of an event (relevant for all histos vs M):
15871 Double_t dMultiplicityBin = 0.;
15872 if(fMultiplicityIs==AliFlowCommonConstants::kRP)
15874 dMultiplicityBin = fNumberOfRPsEBE+0.5;
15875 } else if(fMultiplicityIs==AliFlowCommonConstants::kExternal)
15877 dMultiplicityBin = fReferenceMultiplicityEBE+0.5;
15878 } else if(fMultiplicityIs==AliFlowCommonConstants::kPOI)
15880 dMultiplicityBin = fNumberOfPOIsEBE+0.5;
15885 for(Int_t ci1=1;ci1<4;ci1++)
15887 for(Int_t ci2=ci1+1;ci2<=4;ci2++)
15889 fIntFlowSumOfProductOfEventWeights->Fill(0.5+counter,
15890 fIntFlowEventWeightsForCorrelationsEBE->GetBinContent(ci1)*
15891 fIntFlowEventWeightsForCorrelationsEBE->GetBinContent(ci2));
15892 if(fCalculateCumulantsVsM)
15894 fIntFlowSumOfProductOfEventWeightsVsM[counter]->Fill(dMultiplicityBin, // to be improved: dMult => sum of weights?
15895 fIntFlowEventWeightsForCorrelationsEBE->GetBinContent(ci1)*
15896 fIntFlowEventWeightsForCorrelationsEBE->GetBinContent(ci2));
15897 } // end of if(fCalculateCumulantsVsM)
15902 } // end of void AliFlowAnalysisWithQCumulants::CalculateIntFlowSumOfProductOfEventWeights()
15904 //=======================================================================================================================
15906 void AliFlowAnalysisWithQCumulants::CalculateIntFlowSumOfProductOfEventWeightsNUA()
15908 // Calculate sum of product of event weights for NUA terms.
15910 // w_{<2>} * w_{<cos(#phi)>}:
15911 fIntFlowSumOfProductOfEventWeightsNUA->Fill(0.5,fIntFlowEventWeightsForCorrelationsEBE->GetBinContent(1)*
15912 fIntFlowEventWeightForCorrectionTermsForNUAEBE[1]->GetBinContent(1));
15913 // w_{<2>} * w_{<sin(#phi)>}:
15914 fIntFlowSumOfProductOfEventWeightsNUA->Fill(1.5,fIntFlowEventWeightsForCorrelationsEBE->GetBinContent(1)*
15915 fIntFlowEventWeightForCorrectionTermsForNUAEBE[0]->GetBinContent(1));
15916 // w_{<cos(#phi)> * w_{<sin(#phi)>}:
15917 fIntFlowSumOfProductOfEventWeightsNUA->Fill(2.5,fIntFlowEventWeightForCorrectionTermsForNUAEBE[1]->GetBinContent(1)*
15918 fIntFlowEventWeightForCorrectionTermsForNUAEBE[0]->GetBinContent(1));
15919 // w_{<2>} * w{<cos(phi1+phi2)>}
15920 fIntFlowSumOfProductOfEventWeightsNUA->Fill(3.5,fIntFlowEventWeightsForCorrelationsEBE->GetBinContent(1)*
15921 fIntFlowEventWeightForCorrectionTermsForNUAEBE[1]->GetBinContent(2));
15922 // w_{<2>} * w{<sin(phi1+phi2)>}
15923 fIntFlowSumOfProductOfEventWeightsNUA->Fill(4.5,fIntFlowEventWeightsForCorrelationsEBE->GetBinContent(1)*
15924 fIntFlowEventWeightForCorrectionTermsForNUAEBE[0]->GetBinContent(2));
15925 // w_{<2>} * w{<cos(phi1-phi2-phi3)>}
15926 fIntFlowSumOfProductOfEventWeightsNUA->Fill(5.5,fIntFlowEventWeightsForCorrelationsEBE->GetBinContent(1)*
15927 fIntFlowEventWeightForCorrectionTermsForNUAEBE[1]->GetBinContent(3));
15928 // w_{<2>} * w{<sin(phi1-phi2-phi3)>}
15929 fIntFlowSumOfProductOfEventWeightsNUA->Fill(6.5,fIntFlowEventWeightsForCorrelationsEBE->GetBinContent(1)*
15930 fIntFlowEventWeightForCorrectionTermsForNUAEBE[0]->GetBinContent(3));
15931 // w_{<4>} * w{<cos(phi1)>}
15932 fIntFlowSumOfProductOfEventWeightsNUA->Fill(7.5,fIntFlowEventWeightsForCorrelationsEBE->GetBinContent(2)*
15933 fIntFlowEventWeightForCorrectionTermsForNUAEBE[1]->GetBinContent(1));
15934 // w_{<4>} * w{<sin(phi1)>}
15935 fIntFlowSumOfProductOfEventWeightsNUA->Fill(8.5,fIntFlowEventWeightsForCorrelationsEBE->GetBinContent(2)*
15936 fIntFlowEventWeightForCorrectionTermsForNUAEBE[0]->GetBinContent(1));
15937 // w_{<4>} * w{<cos(phi1+phi2)>}
15938 fIntFlowSumOfProductOfEventWeightsNUA->Fill(9.5,fIntFlowEventWeightsForCorrelationsEBE->GetBinContent(2)*
15939 fIntFlowEventWeightForCorrectionTermsForNUAEBE[1]->GetBinContent(2));
15940 // w_{<4>} * w{<sin(phi1+phi2)>}
15941 fIntFlowSumOfProductOfEventWeightsNUA->Fill(10.5,fIntFlowEventWeightsForCorrelationsEBE->GetBinContent(2)*
15942 fIntFlowEventWeightForCorrectionTermsForNUAEBE[0]->GetBinContent(2));
15943 // w_{<4>} * w{<cos(phi1-phi2-phi3)>}
15944 fIntFlowSumOfProductOfEventWeightsNUA->Fill(11.5,fIntFlowEventWeightsForCorrelationsEBE->GetBinContent(2)*
15945 fIntFlowEventWeightForCorrectionTermsForNUAEBE[1]->GetBinContent(3));
15946 // w_{<4>} * w{<sin(phi1-phi2-phi3)>}
15947 fIntFlowSumOfProductOfEventWeightsNUA->Fill(12.5,fIntFlowEventWeightsForCorrelationsEBE->GetBinContent(2)*
15948 fIntFlowEventWeightForCorrectionTermsForNUAEBE[0]->GetBinContent(3));
15949 // w_{<cos(phi1)>} * w{<cos(phi1+phi2)>}
15950 fIntFlowSumOfProductOfEventWeightsNUA->Fill(13.5,fIntFlowEventWeightForCorrectionTermsForNUAEBE[1]->GetBinContent(1)*
15951 fIntFlowEventWeightForCorrectionTermsForNUAEBE[1]->GetBinContent(2));
15952 // w_{<cos(phi1)>} * w{<sin(phi1+phi2)>}
15953 fIntFlowSumOfProductOfEventWeightsNUA->Fill(14.5,fIntFlowEventWeightForCorrectionTermsForNUAEBE[1]->GetBinContent(1)*
15954 fIntFlowEventWeightForCorrectionTermsForNUAEBE[0]->GetBinContent(2));
15955 // w_{<cos(phi1)>} * w{<cos(phi1-phi2-phi3)>}
15956 fIntFlowSumOfProductOfEventWeightsNUA->Fill(15.5,fIntFlowEventWeightForCorrectionTermsForNUAEBE[1]->GetBinContent(1)*
15957 fIntFlowEventWeightForCorrectionTermsForNUAEBE[1]->GetBinContent(3));
15958 // w_{<cos(phi1)>} * w{<sin(phi1-phi2-phi3)>}
15959 fIntFlowSumOfProductOfEventWeightsNUA->Fill(16.5,fIntFlowEventWeightForCorrectionTermsForNUAEBE[1]->GetBinContent(1)*
15960 fIntFlowEventWeightForCorrectionTermsForNUAEBE[0]->GetBinContent(3));
15961 // w_{<sin(phi1)>} * w{<cos(phi1+phi2)>}
15962 fIntFlowSumOfProductOfEventWeightsNUA->Fill(17.5,fIntFlowEventWeightForCorrectionTermsForNUAEBE[0]->GetBinContent(1)*
15963 fIntFlowEventWeightForCorrectionTermsForNUAEBE[1]->GetBinContent(2));
15964 // w_{<sin(phi1)>} * w{<sin(phi1+phi2)>}
15965 fIntFlowSumOfProductOfEventWeightsNUA->Fill(18.5,fIntFlowEventWeightForCorrectionTermsForNUAEBE[0]->GetBinContent(1)*
15966 fIntFlowEventWeightForCorrectionTermsForNUAEBE[0]->GetBinContent(2));
15967 // w_{<sin(phi1)>} * w{<cos(phi1-phi2-phi3)>}
15968 fIntFlowSumOfProductOfEventWeightsNUA->Fill(19.5,fIntFlowEventWeightForCorrectionTermsForNUAEBE[0]->GetBinContent(1)*
15969 fIntFlowEventWeightForCorrectionTermsForNUAEBE[1]->GetBinContent(3));
15970 // w_{<sin(phi1)>} * w{<sin(phi1-phi2-phi3)>}
15971 fIntFlowSumOfProductOfEventWeightsNUA->Fill(20.5,fIntFlowEventWeightForCorrectionTermsForNUAEBE[0]->GetBinContent(1)*
15972 fIntFlowEventWeightForCorrectionTermsForNUAEBE[0]->GetBinContent(3));
15973 // w_{<cos(phi1+phi2)>} * w{<sin(phi1+phi2))>}
15974 fIntFlowSumOfProductOfEventWeightsNUA->Fill(21.5,fIntFlowEventWeightForCorrectionTermsForNUAEBE[1]->GetBinContent(2)*
15975 fIntFlowEventWeightForCorrectionTermsForNUAEBE[0]->GetBinContent(2));
15976 // w_{<cos(phi1+phi2)>} * w{<cos(phi1-phi2-phi3)>}
15977 fIntFlowSumOfProductOfEventWeightsNUA->Fill(22.5,fIntFlowEventWeightForCorrectionTermsForNUAEBE[1]->GetBinContent(2)*
15978 fIntFlowEventWeightForCorrectionTermsForNUAEBE[1]->GetBinContent(3));
15979 // w_{<cos(phi1+phi2)>} * w{<sin(phi1-phi2-phi3)>}
15980 fIntFlowSumOfProductOfEventWeightsNUA->Fill(23.5,fIntFlowEventWeightForCorrectionTermsForNUAEBE[1]->GetBinContent(2)*
15981 fIntFlowEventWeightForCorrectionTermsForNUAEBE[0]->GetBinContent(3));
15982 // w_{<sin(phi1+phi2)>} * w{<cos(phi1-phi2-phi3)>}
15983 fIntFlowSumOfProductOfEventWeightsNUA->Fill(24.5,fIntFlowEventWeightForCorrectionTermsForNUAEBE[0]->GetBinContent(2)*
15984 fIntFlowEventWeightForCorrectionTermsForNUAEBE[1]->GetBinContent(3));
15985 // w_{<sin(phi1+phi2)>} * w{<sin(phi1-phi2-phi3)>}
15986 fIntFlowSumOfProductOfEventWeightsNUA->Fill(25.5,fIntFlowEventWeightForCorrectionTermsForNUAEBE[0]->GetBinContent(2)*
15987 fIntFlowEventWeightForCorrectionTermsForNUAEBE[0]->GetBinContent(3));
15988 // w_{<cos(phi1-phi2-phi3)>} * w{<sin(phi1-phi2-phi3)>}
15989 fIntFlowSumOfProductOfEventWeightsNUA->Fill(26.5,fIntFlowEventWeightForCorrectionTermsForNUAEBE[1]->GetBinContent(3)*
15990 fIntFlowEventWeightForCorrectionTermsForNUAEBE[0]->GetBinContent(3));
15992 } // end of void AliFlowAnalysisWithQCumulants::CalculateIntFlowIntFlowSumOfProductOfEventWeightsNUA()
15994 //=======================================================================================================================
15996 void AliFlowAnalysisWithQCumulants::CalculateDiffFlowCorrelations(TString type, TString ptOrEta)
15998 // Calculate reduced correlations for RPs or POIs for all pt and eta bins.
16001 Double_t dMult = (*fSpk)(0,0);
16003 // real and imaginary parts of non-weighted Q-vectors evaluated in harmonics n, 2n, 3n and 4n:
16004 Double_t dReQ1n = (*fReQ)(0,0);
16005 Double_t dReQ2n = (*fReQ)(1,0);
16006 //Double_t dReQ3n = (*fReQ)(2,0);
16007 //Double_t dReQ4n = (*fReQ)(3,0);
16008 Double_t dImQ1n = (*fImQ)(0,0);
16009 Double_t dImQ2n = (*fImQ)(1,0);
16010 //Double_t dImQ3n = (*fImQ)(2,0);
16011 //Double_t dImQ4n = (*fImQ)(3,0);
16013 // reduced correlations are stored in fDiffFlowCorrelationsPro[0=RP,1=POI][0=pt,1=eta][correlation index]. Correlation index runs as follows:
16020 //Int_t t = 0; // type flag
16021 Int_t pe = 0; // ptEta flag
16026 } else if(type == "POI")
16031 if(ptOrEta == "Pt")
16034 } else if(ptOrEta == "Eta")
16039 Int_t nBinsPtEta[2] = {fnBinsPt,fnBinsEta};
16040 Double_t minPtEta[2] = {fPtMin,fEtaMin};
16041 //Double_t maxPtEta[2] = {fPtMax,fEtaMax};
16042 Double_t binWidthPtEta[2] = {fPtBinWidth,fEtaBinWidth};
16044 // looping over all bins and calculating reduced correlations:
16045 for(Int_t b=1;b<=nBinsPtEta[pe];b++)
16047 // real and imaginary parts of p_{m*n,0} (non-weighted Q-vector evaluated for POIs in particular pt or eta bin):
16048 Double_t p1n0kRe = 0.;
16049 Double_t p1n0kIm = 0.;
16051 // number of POIs in particular pt or eta bin:
16054 // real and imaginary parts of q_{m*n,0} (non-weighted Q-vector evaluated for particles which are both RPs and POIs in particular pt or eta bin):
16055 Double_t q1n0kRe = 0.;
16056 Double_t q1n0kIm = 0.;
16057 Double_t q2n0kRe = 0.;
16058 Double_t q2n0kIm = 0.;
16060 // number of particles which are both RPs and POIs in particular pt or eta bin:
16066 q1n0kRe = fReRPQ1dEBE[2][pe][0][0]->GetBinContent(fReRPQ1dEBE[2][pe][0][0]->GetBin(b))
16067 * fReRPQ1dEBE[2][pe][0][0]->GetBinEntries(fReRPQ1dEBE[2][pe][0][0]->GetBin(b));
16068 q1n0kIm = fImRPQ1dEBE[2][pe][0][0]->GetBinContent(fImRPQ1dEBE[2][pe][0][0]->GetBin(b))
16069 * fImRPQ1dEBE[2][pe][0][0]->GetBinEntries(fImRPQ1dEBE[2][pe][0][0]->GetBin(b));
16070 q2n0kRe = fReRPQ1dEBE[2][pe][1][0]->GetBinContent(fReRPQ1dEBE[2][pe][1][0]->GetBin(b))
16071 * fReRPQ1dEBE[2][pe][1][0]->GetBinEntries(fReRPQ1dEBE[2][pe][1][0]->GetBin(b));
16072 q2n0kIm = fImRPQ1dEBE[2][pe][1][0]->GetBinContent(fImRPQ1dEBE[2][pe][1][0]->GetBin(b))
16073 * fImRPQ1dEBE[2][pe][1][0]->GetBinEntries(fImRPQ1dEBE[2][pe][1][0]->GetBin(b));
16075 mq = fReRPQ1dEBE[2][pe][0][0]->GetBinEntries(fReRPQ1dEBE[2][pe][0][0]->GetBin(b)); // to be improved (cross-checked by accessing other profiles here)
16077 else if(type == "RP")
16080 q1n0kRe = fReRPQ1dEBE[0][pe][0][0]->GetBinContent(fReRPQ1dEBE[0][pe][0][0]->GetBin(b))
16081 * fReRPQ1dEBE[0][pe][0][0]->GetBinEntries(fReRPQ1dEBE[0][pe][0][0]->GetBin(b));
16082 q1n0kIm = fImRPQ1dEBE[0][pe][0][0]->GetBinContent(fImRPQ1dEBE[0][pe][0][0]->GetBin(b))
16083 * fImRPQ1dEBE[0][pe][0][0]->GetBinEntries(fImRPQ1dEBE[0][pe][0][0]->GetBin(b));
16084 q2n0kRe = fReRPQ1dEBE[0][pe][1][0]->GetBinContent(fReRPQ1dEBE[0][pe][1][0]->GetBin(b))
16085 * fReRPQ1dEBE[0][pe][1][0]->GetBinEntries(fReRPQ1dEBE[0][pe][1][0]->GetBin(b));
16086 q2n0kIm = fImRPQ1dEBE[0][pe][1][0]->GetBinContent(fImRPQ1dEBE[0][pe][1][0]->GetBin(b))
16087 * fImRPQ1dEBE[0][pe][1][0]->GetBinEntries(fImRPQ1dEBE[0][pe][1][0]->GetBin(b));
16089 mq = fReRPQ1dEBE[0][pe][0][0]->GetBinEntries(fReRPQ1dEBE[0][pe][0][0]->GetBin(b)); // to be improved (cross-checked by accessing other profiles here)
16095 p1n0kRe = fReRPQ1dEBE[1][pe][0][0]->GetBinContent(fReRPQ1dEBE[1][pe][0][0]->GetBin(b))
16096 * fReRPQ1dEBE[1][pe][0][0]->GetBinEntries(fReRPQ1dEBE[1][pe][0][0]->GetBin(b));
16097 p1n0kIm = fImRPQ1dEBE[1][pe][0][0]->GetBinContent(fImRPQ1dEBE[1][pe][0][0]->GetBin(b))
16098 * fImRPQ1dEBE[1][pe][0][0]->GetBinEntries(fImRPQ1dEBE[1][pe][0][0]->GetBin(b));
16100 mp = fReRPQ1dEBE[1][pe][0][0]->GetBinEntries(fReRPQ1dEBE[1][pe][0][0]->GetBin(b)); // to be improved (cross-checked by accessing other profiles here)
16102 //t = 1; // typeFlag = RP or POI
16104 else if(type == "RP")
16106 // p_{m*n,0} = q_{m*n,0}:
16112 //t = 0; // typeFlag = RP or POI
16115 // 2'-particle correlation for particular pt or eta bin:
16116 Double_t two1n1nPtEta = 0.;
16117 Double_t mWeight2pPrime = 0.; // multiplicity weight for <2'>
16120 two1n1nPtEta = (p1n0kRe*dReQ1n+p1n0kIm*dImQ1n-mq)
16122 // determine multiplicity weight:
16123 if(fMultiplicityWeight->Contains("combinations"))
16125 mWeight2pPrime = mp*dMult-mq;
16126 } else if(fMultiplicityWeight->Contains("unit"))
16128 mWeight2pPrime = 1.;
16130 if(type == "POI") // to be improved (I do not this if)
16132 // fill profile to get <<2'>> for POIs
16133 fDiffFlowCorrelationsPro[1][pe][0]->Fill(minPtEta[pe]+(b-1)*binWidthPtEta[pe],two1n1nPtEta,mWeight2pPrime);
16134 // fill profile to get <<2'>^2> for POIs
16135 fDiffFlowSquaredCorrelationsPro[1][pe][0]->Fill(minPtEta[pe]+(b-1)*binWidthPtEta[pe],two1n1nPtEta*two1n1nPtEta,mWeight2pPrime);
16136 // histogram to store <2'> for POIs e-b-e (needed in some other methods):
16137 fDiffFlowCorrelationsEBE[1][pe][0]->SetBinContent(b,two1n1nPtEta);
16138 fDiffFlowEventWeightsForCorrelationsEBE[1][pe][0]->SetBinContent(b,mWeight2pPrime);
16140 else if(type == "RP") // to be improved (I do not this if)
16142 // profile to get <<2'>> for RPs:
16143 fDiffFlowCorrelationsPro[0][pe][0]->Fill(minPtEta[pe]+(b-1)*binWidthPtEta[pe],two1n1nPtEta,mWeight2pPrime);
16144 // profile to get <<2'>^2> for RPs:
16145 fDiffFlowSquaredCorrelationsPro[0][pe][0]->Fill(minPtEta[pe]+(b-1)*binWidthPtEta[pe],two1n1nPtEta*two1n1nPtEta,mWeight2pPrime);
16146 // histogram to store <2'> for RPs e-b-e (needed in some other methods):
16147 fDiffFlowCorrelationsEBE[0][pe][0]->SetBinContent(b,two1n1nPtEta);
16148 fDiffFlowEventWeightsForCorrelationsEBE[0][pe][0]->SetBinContent(b,mWeight2pPrime);
16150 } // end of if(mp*dMult-mq)
16152 // 4'-particle correlation:
16153 Double_t four1n1n1n1nPtEta = 0.;
16154 Double_t mWeight4pPrime = 0.; // multiplicity weight for <4'>
16155 if((mp-mq)*dMult*(dMult-1.)*(dMult-2.)
16156 + mq*(dMult-1.)*(dMult-2.)*(dMult-3.)) // to be improved (introduce a new variable for this expression)
16158 four1n1n1n1nPtEta = ((pow(dReQ1n,2.)+pow(dImQ1n,2.))*(p1n0kRe*dReQ1n+p1n0kIm*dImQ1n)
16159 - q2n0kRe*(pow(dReQ1n,2.)-pow(dImQ1n,2.))
16160 - 2.*q2n0kIm*dReQ1n*dImQ1n
16161 - p1n0kRe*(dReQ1n*dReQ2n+dImQ1n*dImQ2n)
16162 + p1n0kIm*(dImQ1n*dReQ2n-dReQ1n*dImQ2n)
16163 - 2.*dMult*(p1n0kRe*dReQ1n+p1n0kIm*dImQ1n)
16164 - 2.*(pow(dReQ1n,2.)+pow(dImQ1n,2.))*mq
16165 + 6.*(q1n0kRe*dReQ1n+q1n0kIm*dImQ1n)
16166 + 1.*(q2n0kRe*dReQ2n+q2n0kIm*dImQ2n)
16167 + 2.*(p1n0kRe*dReQ1n+p1n0kIm*dImQ1n)
16170 / ((mp-mq)*dMult*(dMult-1.)*(dMult-2.)
16171 + mq*(dMult-1.)*(dMult-2.)*(dMult-3.));
16172 // determine multiplicity weight:
16173 if(fMultiplicityWeight->Contains("combinations"))
16175 mWeight4pPrime = (mp-mq)*dMult*(dMult-1.)*(dMult-2.) + mq*(dMult-1.)*(dMult-2.)*(dMult-3.);
16176 } else if(fMultiplicityWeight->Contains("unit"))
16178 mWeight4pPrime = 1.;
16182 // profile to get <<4'>> for POIs:
16183 fDiffFlowCorrelationsPro[1][pe][1]->Fill(minPtEta[pe]+(b-1)*binWidthPtEta[pe],four1n1n1n1nPtEta,mWeight4pPrime);
16184 // profile to get <<4'>^2> for POIs:
16185 fDiffFlowSquaredCorrelationsPro[1][pe][1]->Fill(minPtEta[pe]+(b-1)*binWidthPtEta[pe],four1n1n1n1nPtEta*four1n1n1n1nPtEta,mWeight4pPrime);
16186 // histogram to store <4'> for POIs e-b-e (needed in some other methods):
16187 fDiffFlowCorrelationsEBE[1][pe][1]->SetBinContent(b,four1n1n1n1nPtEta);
16188 fDiffFlowEventWeightsForCorrelationsEBE[1][pe][1]->SetBinContent(b,mWeight4pPrime);
16190 else if(type == "RP")
16192 // profile to get <<4'>> for RPs:
16193 fDiffFlowCorrelationsPro[0][pe][1]->Fill(minPtEta[pe]+(b-1)*binWidthPtEta[pe],four1n1n1n1nPtEta,mWeight4pPrime);
16194 // profile to get <<4'>^2> for RPs:
16195 fDiffFlowSquaredCorrelationsPro[0][pe][1]->Fill(minPtEta[pe]+(b-1)*binWidthPtEta[pe],four1n1n1n1nPtEta*four1n1n1n1nPtEta,mWeight4pPrime);
16196 // histogram to store <4'> for RPs e-b-e (needed in some other methods):
16197 fDiffFlowCorrelationsEBE[0][pe][1]->SetBinContent(b,four1n1n1n1nPtEta);
16198 fDiffFlowEventWeightsForCorrelationsEBE[0][pe][1]->SetBinContent(b,mWeight4pPrime);
16200 } // end of if((mp-mq)*dMult*(dMult-1.)*(dMult-2.)
16201 // +mq*(dMult-1.)*(dMult-2.)*(dMult-3.))
16203 } // end of for(Int_t b=1;b<=nBinsPtEta[pe];b++)
16206 } // end of void AliFlowAnalysisWithQCumulants::CalculateDiffFlowCorrelations(TString type, TString ptOrEta);
16208 //=======================================================================================================================
16210 void AliFlowAnalysisWithQCumulants::CalculateOtherDiffCorrelators(TString type, TString ptOrEta)
16212 // Calculate other differential correlators for RPs or POIs for all pt and eta bins.
16215 Double_t dMult = (*fSpk)(0,0);
16217 // real and imaginary parts of non-weighted Q-vectors evaluated in harmonics n, 2n, 3n and 4n:
16218 Double_t dReQ1n = (*fReQ)(0,0);
16219 Double_t dReQ2n = (*fReQ)(1,0);
16220 Double_t dReQ3n = (*fReQ)(2,0);
16221 //Double_t dReQ4n = (*fReQ)(3,0);
16222 Double_t dImQ1n = (*fImQ)(0,0);
16223 Double_t dImQ2n = (*fImQ)(1,0);
16224 Double_t dImQ3n = (*fImQ)(2,0);
16225 //Double_t dImQ4n = (*fImQ)(3,0);
16227 // Other correlations are stored in fOtherDiffCorrelators[2][2][2][1], [0=RP,1=POI][0=pt,1=eta][0=sin terms,1=cos terms][correlator index]
16228 // Correlation index runs as follows:
16230 // 0: <exp[in(psi1-3phi2+2phi3)]>
16232 Int_t t = 0; // type flag
16233 Int_t pe = 0; // ptEta flag
16238 } else if(type == "POI")
16243 if(ptOrEta == "Pt")
16246 } else if(ptOrEta == "Eta")
16251 Int_t nBinsPtEta[2] = {fnBinsPt,fnBinsEta};
16252 Double_t minPtEta[2] = {fPtMin,fEtaMin};
16253 //Double_t maxPtEta[2] = {fPtMax,fEtaMax};
16254 Double_t binWidthPtEta[2] = {fPtBinWidth,fEtaBinWidth};
16256 // looping over all bins and calculating reduced correlations:
16257 for(Int_t b=1;b<=nBinsPtEta[pe];b++)
16259 // real and imaginary parts of p_{m*n,0} (non-weighted Q-vector evaluated for POIs in particular pt or eta bin):
16260 Double_t p1n0kRe = 0.;
16261 Double_t p1n0kIm = 0.;
16263 // number of POIs in particular pt or eta bin:
16266 // real and imaginary parts of q_{m*n,0} (non-weighted Q-vector evaluated for particles which are both RPs and POIs in particular pt or eta bin):
16267 Double_t q1n0kRe = 0.;
16268 Double_t q1n0kIm = 0.;
16269 Double_t q2n0kRe = 0.;
16270 Double_t q2n0kIm = 0.;
16271 Double_t q3n0kRe = 0.;
16272 Double_t q3n0kIm = 0.;
16274 // number of particles which are both RPs and POIs in particular pt or eta bin:
16280 q1n0kRe = fReRPQ1dEBE[2][pe][0][0]->GetBinContent(fReRPQ1dEBE[2][pe][0][0]->GetBin(b))
16281 * fReRPQ1dEBE[2][pe][0][0]->GetBinEntries(fReRPQ1dEBE[2][pe][0][0]->GetBin(b));
16282 q1n0kIm = fImRPQ1dEBE[2][pe][0][0]->GetBinContent(fImRPQ1dEBE[2][pe][0][0]->GetBin(b))
16283 * fImRPQ1dEBE[2][pe][0][0]->GetBinEntries(fImRPQ1dEBE[2][pe][0][0]->GetBin(b));
16284 q2n0kRe = fReRPQ1dEBE[2][pe][1][0]->GetBinContent(fReRPQ1dEBE[2][pe][1][0]->GetBin(b))
16285 * fReRPQ1dEBE[2][pe][1][0]->GetBinEntries(fReRPQ1dEBE[2][pe][1][0]->GetBin(b));
16286 q2n0kIm = fImRPQ1dEBE[2][pe][1][0]->GetBinContent(fImRPQ1dEBE[2][pe][1][0]->GetBin(b))
16287 * fImRPQ1dEBE[2][pe][1][0]->GetBinEntries(fImRPQ1dEBE[2][pe][1][0]->GetBin(b));
16288 q3n0kRe = fReRPQ1dEBE[2][pe][2][0]->GetBinContent(fReRPQ1dEBE[2][pe][2][0]->GetBin(b))
16289 * fReRPQ1dEBE[2][pe][2][0]->GetBinEntries(fReRPQ1dEBE[2][pe][2][0]->GetBin(b));
16290 q3n0kIm = fImRPQ1dEBE[2][pe][2][0]->GetBinContent(fImRPQ1dEBE[2][pe][2][0]->GetBin(b))
16291 * fImRPQ1dEBE[2][pe][2][0]->GetBinEntries(fImRPQ1dEBE[2][pe][2][0]->GetBin(b));
16293 mq = fReRPQ1dEBE[2][pe][0][0]->GetBinEntries(fReRPQ1dEBE[2][pe][0][0]->GetBin(b)); // to be improved (cross-checked by accessing other profiles here)
16295 else if(type == "RP")
16298 q1n0kRe = fReRPQ1dEBE[0][pe][0][0]->GetBinContent(fReRPQ1dEBE[0][pe][0][0]->GetBin(b))
16299 * fReRPQ1dEBE[0][pe][0][0]->GetBinEntries(fReRPQ1dEBE[0][pe][0][0]->GetBin(b));
16300 q1n0kIm = fImRPQ1dEBE[0][pe][0][0]->GetBinContent(fImRPQ1dEBE[0][pe][0][0]->GetBin(b))
16301 * fImRPQ1dEBE[0][pe][0][0]->GetBinEntries(fImRPQ1dEBE[0][pe][0][0]->GetBin(b));
16302 q2n0kRe = fReRPQ1dEBE[0][pe][1][0]->GetBinContent(fReRPQ1dEBE[0][pe][1][0]->GetBin(b))
16303 * fReRPQ1dEBE[0][pe][1][0]->GetBinEntries(fReRPQ1dEBE[0][pe][1][0]->GetBin(b));
16304 q2n0kIm = fImRPQ1dEBE[0][pe][1][0]->GetBinContent(fImRPQ1dEBE[0][pe][1][0]->GetBin(b))
16305 * fImRPQ1dEBE[0][pe][1][0]->GetBinEntries(fImRPQ1dEBE[0][pe][1][0]->GetBin(b));
16306 q3n0kRe = fReRPQ1dEBE[0][pe][2][0]->GetBinContent(fReRPQ1dEBE[0][pe][2][0]->GetBin(b))
16307 * fReRPQ1dEBE[0][pe][2][0]->GetBinEntries(fReRPQ1dEBE[0][pe][2][0]->GetBin(b));
16308 q3n0kIm = fImRPQ1dEBE[0][pe][2][0]->GetBinContent(fImRPQ1dEBE[0][pe][2][0]->GetBin(b))
16309 * fImRPQ1dEBE[0][pe][2][0]->GetBinEntries(fImRPQ1dEBE[0][pe][2][0]->GetBin(b));
16311 mq = fReRPQ1dEBE[0][pe][0][0]->GetBinEntries(fReRPQ1dEBE[0][pe][0][0]->GetBin(b)); // to be improved (cross-checked by accessing other profiles here)
16317 p1n0kRe = fReRPQ1dEBE[1][pe][0][0]->GetBinContent(fReRPQ1dEBE[1][pe][0][0]->GetBin(b))
16318 * fReRPQ1dEBE[1][pe][0][0]->GetBinEntries(fReRPQ1dEBE[1][pe][0][0]->GetBin(b));
16319 p1n0kIm = fImRPQ1dEBE[1][pe][0][0]->GetBinContent(fImRPQ1dEBE[1][pe][0][0]->GetBin(b))
16320 * fImRPQ1dEBE[1][pe][0][0]->GetBinEntries(fImRPQ1dEBE[1][pe][0][0]->GetBin(b));
16322 mp = fReRPQ1dEBE[1][pe][0][0]->GetBinEntries(fReRPQ1dEBE[1][pe][0][0]->GetBin(b)); // to be improved (cross-checked by accessing other profiles here)
16324 t = 1; // typeFlag = RP or POI
16326 else if(type == "RP")
16328 // p_{m*n,0} = q_{m*n,0}:
16334 t = 0; // typeFlag = RP or POI
16337 // 3'-particle correlators:
16338 // Taeney-Yan correlator:
16339 Double_t dTaeneyYan = 0.;
16340 Double_t mWeightTaeneyYan = 0.; // multiplicity weight for Taeney-Yan correlator
16341 if((mp*dMult-2.*mq)*(dMult-1.) > 0.) // to be improved - is this condition fully justified?
16343 dTaeneyYan = (dReQ3n*(p1n0kRe*dReQ2n-p1n0kIm*dImQ2n)+dImQ3n*(p1n0kIm*dReQ2n+p1n0kRe*dImQ2n)
16344 - p1n0kRe*dReQ1n - p1n0kIm*dImQ1n
16345 - q2n0kRe*dReQ2n - q2n0kIm*dImQ2n
16346 - q3n0kRe*dReQ3n - q3n0kIm*dImQ3n
16348 / ((mp*dMult-2.*mq)*(dMult-1.));
16349 // determine multiplicity weight:
16350 if(fMultiplicityWeight->Contains("combinations"))
16352 mWeightTaeneyYan = (mp*dMult-2.*mq)*(dMult-1.);
16353 } else if(fMultiplicityWeight->Contains("unit"))
16355 mWeightTaeneyYan = 1.;
16358 fOtherDiffCorrelators[t][pe][1][0]->Fill(minPtEta[pe]+(b-1)*binWidthPtEta[pe],dTaeneyYan,mWeightTaeneyYan);
16359 } // end of if((mp*dMult-2.*mq)*(dMult-1.) > 0.)
16361 } // end of for(Int_t b=1;b<=nBinsPtEta[pe];b++)
16363 } // end of void AliFlowAnalysisWithQCumulants::CalculateOtherDiffCorrelators(TString type, TString ptOrEta)
16365 //=======================================================================================================================
16367 void AliFlowAnalysisWithQCumulants::Calculate2DDiffFlowCorrelations(TString type)
16369 // Calculate all reduced correlations needed for 2D differential flow for each (pt,eta) bin.
16372 Double_t dMult = (*fSpk)(0,0);
16373 // Real and imaginary parts of non-weighted Q-vectors evaluated in harmonics n, 2n, 3n and 4n:
16374 Double_t dReQ1n = (*fReQ)(0,0);
16375 Double_t dReQ2n = (*fReQ)(1,0);
16376 //Double_t dReQ3n = (*fReQ)(2,0);
16377 //Double_t dReQ4n = (*fReQ)(3,0);
16378 Double_t dImQ1n = (*fImQ)(0,0);
16379 Double_t dImQ2n = (*fImQ)(1,0);
16380 //Double_t dImQ3n = (*fImQ)(2,0);
16381 //Double_t dImQ4n = (*fImQ)(3,0);
16383 // 2D reduced correlations are stored in TProfile2D f2DDiffFlowCorrelationsPro[0=RP,1=POI][correlation index].
16384 // Correlation index runs as follows:
16390 Int_t t = 0; // type flag
16394 } else if(type == "POI")
16399 // Looping over all (pt,eta) bins and calculating correlations needed for differential flow:
16400 for(Int_t p=1;p<=fnBinsPt;p++)
16402 for(Int_t e=1;e<=fnBinsEta;e++)
16404 // Real and imaginary parts of p_{m*n,0} (non-weighted Q-vector evaluated for POIs in particular (pt,eta) bin):
16405 Double_t p1n0kRe = 0.;
16406 Double_t p1n0kIm = 0.;
16407 // Number of POIs in particular pt or eta bin:
16409 // Real and imaginary parts of q_{m*n,0} (non-weighted Q-vector evaluated for 'RP && POI particles' in particular pt or eta bin):
16410 Double_t q1n0kRe = 0.;
16411 Double_t q1n0kIm = 0.;
16412 Double_t q2n0kRe = 0.;
16413 Double_t q2n0kIm = 0.;
16414 // Number of 'RP && POI particles' in particular pt or eta bin:
16419 q1n0kRe = fReRPQ2dEBE[2][0][0]->GetBinContent(fReRPQ2dEBE[2][0][0]->GetBin(p,e))
16420 * fReRPQ2dEBE[2][0][0]->GetBinEntries(fReRPQ2dEBE[2][0][0]->GetBin(p,e));
16421 q1n0kIm = fImRPQ2dEBE[2][0][0]->GetBinContent(fImRPQ2dEBE[2][0][0]->GetBin(p,e))
16422 * fImRPQ2dEBE[2][0][0]->GetBinEntries(fImRPQ2dEBE[2][0][0]->GetBin(p,e));
16423 q2n0kRe = fReRPQ2dEBE[2][1][0]->GetBinContent(fReRPQ2dEBE[2][1][0]->GetBin(p,e))
16424 * fReRPQ2dEBE[2][1][0]->GetBinEntries(fReRPQ2dEBE[2][1][0]->GetBin(p,e));
16425 q2n0kIm = fImRPQ2dEBE[2][1][0]->GetBinContent(fImRPQ2dEBE[2][1][0]->GetBin(p,e))
16426 * fImRPQ2dEBE[2][1][0]->GetBinEntries(fImRPQ2dEBE[2][1][0]->GetBin(p,e));
16428 mq = fReRPQ2dEBE[2][0][0]->GetBinEntries(fReRPQ2dEBE[2][0][0]->GetBin(p,e)); // to be improved (cross-checked by accessing other profiles here)
16429 } // end of if(type == "POI")
16430 else if(type == "RP")
16433 q1n0kRe = fReRPQ2dEBE[0][0][0]->GetBinContent(fReRPQ2dEBE[0][0][0]->GetBin(p,e))
16434 * fReRPQ2dEBE[0][0][0]->GetBinEntries(fReRPQ2dEBE[0][0][0]->GetBin(p,e));
16435 q1n0kIm = fImRPQ2dEBE[0][0][0]->GetBinContent(fImRPQ2dEBE[0][0][0]->GetBin(p,e))
16436 * fImRPQ2dEBE[0][0][0]->GetBinEntries(fImRPQ2dEBE[0][0][0]->GetBin(p,e));
16437 q2n0kRe = fReRPQ2dEBE[0][1][0]->GetBinContent(fReRPQ2dEBE[0][1][0]->GetBin(p,e))
16438 * fReRPQ2dEBE[0][1][0]->GetBinEntries(fReRPQ2dEBE[0][1][0]->GetBin(p,e));
16439 q2n0kIm = fImRPQ2dEBE[0][1][0]->GetBinContent(fImRPQ2dEBE[0][1][0]->GetBin(p,e))
16440 * fImRPQ2dEBE[0][1][0]->GetBinEntries(fImRPQ2dEBE[0][1][0]->GetBin(p,e));
16442 mq = fReRPQ2dEBE[0][0][0]->GetBinEntries(fReRPQ2dEBE[0][0][0]->GetBin(p,e)); // to be improved (cross-checked by accessing other profiles here)
16443 } // end of else if(type == "RP")
16447 p1n0kRe = fReRPQ2dEBE[1][0][0]->GetBinContent(fReRPQ2dEBE[1][0][0]->GetBin(p,e))
16448 * fReRPQ2dEBE[1][0][0]->GetBinEntries(fReRPQ2dEBE[1][0][0]->GetBin(p,e));
16449 p1n0kIm = fImRPQ2dEBE[1][0][0]->GetBinContent(fImRPQ2dEBE[1][0][0]->GetBin(p,e))
16450 * fImRPQ2dEBE[1][0][0]->GetBinEntries(fImRPQ2dEBE[1][0][0]->GetBin(p,e));
16452 mp = fReRPQ2dEBE[1][0][0]->GetBinEntries(fReRPQ2dEBE[1][0][0]->GetBin(p,e)); // to be improved (cross-checked by accessing other profiles here)
16454 t = 1; // typeFlag = RP or POI
16455 } // end of if(type == "POI")
16456 else if(type == "RP")
16458 // p_{m*n,0} = q_{m*n,0}:
16464 t = 0; // typeFlag = RP or POI
16465 } // end of if(type == "RP")
16467 // 2'-particle correlation for particular (pt,eta) bin:
16468 Double_t two1n1nPtEta = 0.;
16469 Double_t mWeight2pPrime = 0.; // multiplicity weight for <2'>
16472 two1n1nPtEta = (p1n0kRe*dReQ1n+p1n0kIm*dImQ1n-mq)
16474 // Determine multiplicity weight:
16475 if(fMultiplicityWeight->Contains("combinations"))
16477 mWeight2pPrime = mp*dMult-mq;
16478 } else if(fMultiplicityWeight->Contains("unit"))
16480 mWeight2pPrime = 1.;
16482 // Fill 2D profile holding <<2'>>:
16483 f2DDiffFlowCorrelationsPro[t][0]->Fill(fPtMin+(p-1)*fPtBinWidth,fEtaMin+(e-1)*fEtaBinWidth,two1n1nPtEta,mWeight2pPrime);
16484 } // end of if(mp*dMult-mq)
16486 // 4'-particle correlation:
16487 Double_t four1n1n1n1nPtEta = 0.;
16488 Double_t mWeight4pPrime = 0.; // multiplicity weight for <4'>
16489 if((mp-mq)*dMult*(dMult-1.)*(dMult-2.)
16490 + mq*(dMult-1.)*(dMult-2.)*(dMult-3.)) // to be improved (introduce a new variable for this expression)
16492 four1n1n1n1nPtEta = ((pow(dReQ1n,2.)+pow(dImQ1n,2.))*(p1n0kRe*dReQ1n+p1n0kIm*dImQ1n)
16493 - q2n0kRe*(pow(dReQ1n,2.)-pow(dImQ1n,2.))
16494 - 2.*q2n0kIm*dReQ1n*dImQ1n
16495 - p1n0kRe*(dReQ1n*dReQ2n+dImQ1n*dImQ2n)
16496 + p1n0kIm*(dImQ1n*dReQ2n-dReQ1n*dImQ2n)
16497 - 2.*dMult*(p1n0kRe*dReQ1n+p1n0kIm*dImQ1n)
16498 - 2.*(pow(dReQ1n,2.)+pow(dImQ1n,2.))*mq
16499 + 6.*(q1n0kRe*dReQ1n+q1n0kIm*dImQ1n)
16500 + 1.*(q2n0kRe*dReQ2n+q2n0kIm*dImQ2n)
16501 + 2.*(p1n0kRe*dReQ1n+p1n0kIm*dImQ1n)
16504 / ((mp-mq)*dMult*(dMult-1.)*(dMult-2.)
16505 + mq*(dMult-1.)*(dMult-2.)*(dMult-3.));
16506 // Determine multiplicity weight:
16507 if(fMultiplicityWeight->Contains("combinations"))
16509 mWeight4pPrime = (mp-mq)*dMult*(dMult-1.)*(dMult-2.) + mq*(dMult-1.)*(dMult-2.)*(dMult-3.);
16510 } else if(fMultiplicityWeight->Contains("unit"))
16512 mWeight4pPrime = 1.;
16514 // Fill 2D profile holding <<4'>>:
16515 f2DDiffFlowCorrelationsPro[t][1]->Fill(fPtMin+(p-1)*fPtBinWidth,fEtaMin+(e-1)*fEtaBinWidth,four1n1n1n1nPtEta,mWeight4pPrime);
16516 } // end of if((mp-mq)*dMult*(dMult-1.)*(dMult-2.)
16517 // +mq*(dMult-1.)*(dMult-2.)*(dMult-3.))
16518 } // end of for(Int_t e=1;e<=fnBinsEta;e++)
16519 } // end of for(Int_t p=1;p<=fnBinsPt;p++)
16521 } // end of AliFlowAnalysisWithQCumulants::Calculate2DDiffFlowCorrelations(TString type)
16523 //=======================================================================================================================
16525 void AliFlowAnalysisWithQCumulants::CalculateDiffFlowSumOfEventWeights(TString type, TString ptOrEta)
16527 // Calculate sums of various event weights for reduced correlations.
16528 // (These quantitites are needed in expressions for unbiased estimators relevant for the statistical errors.)
16530 Int_t typeFlag = 0;
16531 Int_t ptEtaFlag = 0;
16536 } else if(type == "POI")
16541 if(ptOrEta == "Pt")
16544 } else if(ptOrEta == "Eta")
16550 Int_t t = typeFlag;
16551 Int_t pe = ptEtaFlag;
16554 Int_t nBinsPtEta[2] = {fnBinsPt,fnBinsEta};
16555 Double_t minPtEta[2] = {fPtMin,fEtaMin};
16556 //Double_t maxPtEta[2] = {fPtMax,fEtaMax};
16557 Double_t binWidthPtEta[2] = {fPtBinWidth,fEtaBinWidth};
16559 for(Int_t rpq=0;rpq<3;rpq++)
16561 for(Int_t m=0;m<4;m++)
16563 for(Int_t k=0;k<9;k++)
16565 if(!fReRPQ1dEBE[rpq][pe][m][k])
16567 cout<<"WARNING: fReRPQ1dEBE[rpq][pe][m][k] is NULL in AFAWQC::CSAPOEWFDF() !!!!"<<endl;
16568 cout<<"pe = "<<pe<<endl;
16569 cout<<"rpq = "<<rpq<<endl;
16570 cout<<"m = "<<m<<endl;
16571 cout<<"k = "<<k<<endl;
16579 Double_t dMult = (*fSpk)(0,0); // total event multiplicity
16580 //Double_t mr = 0.; // number of RPs in particular pt or eta bin
16581 Double_t mp = 0.; // number of POIs in particular pt or eta bin
16582 Double_t mq = 0.; // number of particles which are both RPs and POIs in particular pt or eta bin
16584 // event weights for reduced correlations:
16585 Double_t dw2 = 0.; // event weight for <2'>
16586 Double_t dw4 = 0.; // event weight for <4'>
16587 //Double_t dw6 = 0.; // event weight for <6'>
16588 //Double_t dw8 = 0.; // event weight for <8'>
16590 // looping over bins:
16591 for(Int_t b=1;b<=nBinsPtEta[pe];b++)
16595 mq = fReRPQ1dEBE[0][pe][0][0]->GetBinEntries(b);
16596 mp = mq; // trick to use the very same Eqs. bellow both for RP's and POI's diff. flow
16597 } else if(type == "POI")
16599 mp = fReRPQ1dEBE[1][pe][0][0]->GetBinEntries(b);
16600 mq = fReRPQ1dEBE[2][pe][0][0]->GetBinEntries(b);
16603 // event weight for <2'>:
16605 fDiffFlowSumOfEventWeights[t][pe][0][0]->Fill(minPtEta[pe]+(b-1)*binWidthPtEta[pe],dw2);
16606 fDiffFlowSumOfEventWeights[t][pe][1][0]->Fill(minPtEta[pe]+(b-1)*binWidthPtEta[pe],pow(dw2,2.));
16608 // event weight for <4'>:
16609 dw4 = (mp-mq)*dMult*(dMult-1.)*(dMult-2.)
16610 + mq*(dMult-1.)*(dMult-2.)*(dMult-3.);
16611 fDiffFlowSumOfEventWeights[t][pe][0][1]->Fill(minPtEta[pe]+(b-1)*binWidthPtEta[pe],dw4);
16612 fDiffFlowSumOfEventWeights[t][pe][1][1]->Fill(minPtEta[pe]+(b-1)*binWidthPtEta[pe],pow(dw4,2.));
16614 // event weight for <6'>:
16616 //fDiffFlowSumOfEventWeights[t][pe][0][2]->Fill(minPtEta[pe]+(b-1)*binWidthPtEta[pe],dw6);
16617 //fDiffFlowSumOfEventWeights[t][pe][t][1][2]->Fill(minPtEta[pe]+(b-1)*binWidthPtEta[pe],pow(dw6,2.));
16619 // event weight for <8'>:
16621 //fDiffFlowSumOfEventWeights[t][pe][0][3]->Fill(minPtEta[pe]+(b-1)*binWidthPtEta[pe],dw8);
16622 //fDiffFlowSumOfEventWeights[t][pe][1][3]->Fill(minPtEta[pe]+(b-1)*binWidthPtEta[pe],pow(dw8,2.));
16623 } // end of for(Int_t b=1;b<=nBinsPtEta[pe];b++)
16625 } // end of void AliFlowAnalysisWithQCumulants::CalculateDiffFlowSumOfEventWeights()
16628 //=======================================================================================================================
16631 void AliFlowAnalysisWithQCumulants::CalculateDiffFlowSumOfProductOfEventWeights(TString type, TString ptOrEta)
16633 // Calculate sum of products of various event weights for both types of correlations (the ones for int. and diff. flow).
16634 // (These quantitites are needed in expressions for unbiased estimators relevant for the statistical errors.)
16636 // Important: To fill fDiffFlowSumOfProductOfEventWeights[][][][] use bellow table (i,j) with following constraints:
16638 // 2.) do not store terms which DO NOT include reduced correlations;
16640 // [0=<2>,1=<2'>,2=<4>,3=<4'>,4=<6>,5=<6'>,6=<8>,7=<8'>] x [0=<2>,1=<2'>,2=<4>,3=<4'>,4=<6>,5=<6'>,6=<8>,7=<8'>]
16642 Int_t typeFlag = 0;
16643 Int_t ptEtaFlag = 0;
16648 } else if(type == "POI")
16653 if(ptOrEta == "Pt")
16656 } else if(ptOrEta == "Eta")
16662 Int_t t = typeFlag;
16663 Int_t pe = ptEtaFlag;
16666 Int_t nBinsPtEta[2] = {fnBinsPt,fnBinsEta};
16667 Double_t minPtEta[2] = {fPtMin,fEtaMin};
16668 //Double_t maxPtEta[2] = {fPtMax,fEtaMax};
16669 Double_t binWidthPtEta[2] = {fPtBinWidth,fEtaBinWidth};
16672 for(Int_t rpq=0;rpq<3;rpq++)
16674 for(Int_t m=0;m<4;m++)
16676 for(Int_t k=0;k<9;k++)
16678 if(!fReRPQ1dEBE[rpq][pe][m][k])
16680 cout<<"WARNING: fReRPQ1dEBE[rpq][pe][m][k] is NULL in AFAWQC::CSAPOEWFDF() !!!!"<<endl;
16681 cout<<"pe = "<<pe<<endl;
16682 cout<<"rpq = "<<rpq<<endl;
16683 cout<<"m = "<<m<<endl;
16684 cout<<"k = "<<k<<endl;
16692 Double_t dMult = (*fSpk)(0,0); // total event multiplicity
16693 //Double_t mr = 0.; // number of RPs in particular pt or eta bin
16694 Double_t mp = 0.; // number of POIs in particular pt or eta bin
16695 Double_t mq = 0.; // number of particles which are both RPs and POIs in particular pt or eta bin
16697 // event weights for correlations:
16698 Double_t dW2 = dMult*(dMult-1); // event weight for <2>
16699 Double_t dW4 = dMult*(dMult-1)*(dMult-2)*(dMult-3); // event weight for <4>
16700 Double_t dW6 = dMult*(dMult-1)*(dMult-2)*(dMult-3)*(dMult-4)*(dMult-5); // event weight for <6>
16701 Double_t dW8 = dMult*(dMult-1)*(dMult-2)*(dMult-3)*(dMult-4)*(dMult-5)*(dMult-6)*(dMult-7); // event weight for <8>
16703 // event weights for reduced correlations:
16704 Double_t dw2 = 0.; // event weight for <2'>
16705 Double_t dw4 = 0.; // event weight for <4'>
16706 //Double_t dw6 = 0.; // event weight for <6'>
16707 //Double_t dw8 = 0.; // event weight for <8'>
16709 // looping over bins:
16710 for(Int_t b=1;b<=nBinsPtEta[pe];b++)
16714 mq = fReRPQ1dEBE[0][pe][0][0]->GetBinEntries(b);
16715 mp = mq; // trick to use the very same Eqs. bellow both for RP's and POI's diff. flow
16716 } else if(type == "POI")
16718 mp = fReRPQ1dEBE[1][pe][0][0]->GetBinEntries(b);
16719 mq = fReRPQ1dEBE[2][pe][0][0]->GetBinEntries(b);
16722 // event weight for <2'>:
16724 fDiffFlowSumOfProductOfEventWeights[t][pe][0][1]->Fill(minPtEta[pe]+(b-1)*binWidthPtEta[pe],dW2*dw2); // storing product of even weights for <2> and <2'>
16725 fDiffFlowSumOfProductOfEventWeights[t][pe][1][2]->Fill(minPtEta[pe]+(b-1)*binWidthPtEta[pe],dw2*dW4); // storing product of even weights for <4> and <2'>
16726 fDiffFlowSumOfProductOfEventWeights[t][pe][1][4]->Fill(minPtEta[pe]+(b-1)*binWidthPtEta[pe],dw2*dW6); // storing product of even weights for <6> and <2'>
16727 fDiffFlowSumOfProductOfEventWeights[t][pe][1][6]->Fill(minPtEta[pe]+(b-1)*binWidthPtEta[pe],dw2*dW8); // storing product of even weights for <8> and <2'>
16729 // event weight for <4'>:
16730 dw4 = (mp-mq)*dMult*(dMult-1.)*(dMult-2.)
16731 + mq*(dMult-1.)*(dMult-2.)*(dMult-3.);
16732 fDiffFlowSumOfProductOfEventWeights[t][pe][0][3]->Fill(minPtEta[pe]+(b-1)*binWidthPtEta[pe],dW2*dw4); // storing product of even weights for <2> and <4'>
16733 fDiffFlowSumOfProductOfEventWeights[t][pe][1][3]->Fill(minPtEta[pe]+(b-1)*binWidthPtEta[pe],dw2*dw4); // storing product of even weights for <2'> and <4'>
16734 fDiffFlowSumOfProductOfEventWeights[t][pe][2][3]->Fill(minPtEta[pe]+(b-1)*binWidthPtEta[pe],dW4*dw4); // storing product of even weights for <4> and <4'>
16735 fDiffFlowSumOfProductOfEventWeights[t][pe][3][4]->Fill(minPtEta[pe]+(b-1)*binWidthPtEta[pe],dw4*dW6); // storing product of even weights for <6> and <4'>
16736 fDiffFlowSumOfProductOfEventWeights[t][pe][3][6]->Fill(minPtEta[pe]+(b-1)*binWidthPtEta[pe],dw4*dW8); // storing product of even weights for <8> and <4'>
16738 // event weight for <6'>:
16740 //fDiffFlowSumOfProductOfEventWeights[t][pe][0][5]->Fill(minPtEta[pe]+(b-1)*binWidthPtEta[pe],dW2*dw6); // storing product of even weights for <2> and <6'>
16741 //fDiffFlowSumOfProductOfEventWeights[t][pe][1][5]->Fill(minPtEta[pe]+(b-1)*binWidthPtEta[pe],dw2*dw6); // storing product of even weights for <2'> and <6'>
16742 //fDiffFlowSumOfProductOfEventWeights[t][pe][2][5]->Fill(minPtEta[pe]+(b-1)*binWidthPtEta[pe],dW4*dw6); // storing product of even weights for <4> and <6'>
16743 //fDiffFlowSumOfProductOfEventWeights[t][pe][3][5]->Fill(minPtEta[pe]+(b-1)*binWidthPtEta[pe],dw4*dw6); // storing product of even weights for <4'> and <6'>
16744 //fDiffFlowSumOfProductOfEventWeights[t][pe][4][5]->Fill(minPtEta[pe]+(b-1)*binWidthPtEta[pe],dW6*dw6); // storing product of even weights for <6> and <6'>
16745 //fDiffFlowSumOfProductOfEventWeights[t][pe][5][6]->Fill(minPtEta[pe]+(b-1)*binWidthPtEta[pe],dw6*dW8); // storing product of even weights for <6'> and <8>
16746 //fDiffFlowSumOfProductOfEventWeights[t][pe][5][7]->Fill(minPtEta[pe]+(b-1)*binWidthPtEta[pe],dw6*dw8); // storing product of even weights for <6'> and <8'>
16748 // event weight for <8'>:
16750 //fDiffFlowSumOfProductOfEventWeights[t][pe][0][7]->Fill(minPtEta[pe]+(b-1)*binWidthPtEta[pe],dW2*dw8); // storing product of even weights for <2> and <8'>
16751 //fDiffFlowSumOfProductOfEventWeights[t][pe][1][7]->Fill(minPtEta[pe]+(b-1)*binWidthPtEta[pe],dw2*dw8); // storing product of even weights for <2'> and <8'>
16752 //fDiffFlowSumOfProductOfEventWeights[t][pe][2][7]->Fill(minPtEta[pe]+(b-1)*binWidthPtEta[pe],dW4*dw8); // storing product of even weights for <4> and <8'>
16753 //fDiffFlowSumOfProductOfEventWeights[t][pe][3][7]->Fill(minPtEta[pe]+(b-1)*binWidthPtEta[pe],dw4*dw8); // storing product of even weights for <4'> and <8'>
16754 //fDiffFlowSumOfProductOfEventWeights[t][pe][4][7]->Fill(minPtEta[pe]+(b-1)*binWidthPtEta[pe],dW6*dw8); // storing product of even weights for <6> and <8'>
16755 //fDiffFlowSumOfProductOfEventWeights[t][pe][5][7]->Fill(minPtEta[pe]+(b-1)*binWidthPtEta[pe],dw6*dw8); // storing product of even weights for <6'> and <8'>
16756 //fDiffFlowSumOfProductOfEventWeights[t][pe][6][7]->Fill(minPtEta[pe]+(b-1)*binWidthPtEta[pe],dW8*dw8); // storing product of even weights for <8> and <8'>
16759 // [0=<2>,1=<2'>,2=<4>,3=<4'>,4=<6>,5=<6'>,6=<8>,7=<8'>] x [0=<2>,1=<2'>,2=<4>,3=<4'>,4=<6>,5=<6'>,6=<8>,7=<8'>]
16761 } // end of for(Int_t b=1;b<=nBinsPtEta[pe];b++)
16765 } // end of void AliFlowAnalysisWithQCumulants::CalculateDiffFlowSumOfProductOfEventWeights(TString type, TString ptOrEta)
16767 //=======================================================================================================================
16769 void AliFlowAnalysisWithQCumulants::FinalizeReducedCorrelations(TString type, TString ptOrEta)
16771 // Transfer profiles into histograms and calculate statistical errors correctly.
16773 Int_t t = 0; // RP or POI
16774 Int_t pe = 0; // pt or eta
16779 } else if(type == "POI")
16784 if(ptOrEta == "Pt")
16787 } else if(ptOrEta == "Eta")
16792 for(Int_t rci=0;rci<4;rci++) // to be improved - moved into the method CheckPointersUsedInFinish()
16794 if(!fDiffFlowCorrelationsPro[t][pe][rci])
16796 cout<<"WARNING: fDiffFlowCorrelationsPro[t][pe][rci] is NULL in AFAWQC::FRC() !!!!"<<endl;
16797 cout<<"t = "<<t<<endl;
16798 cout<<"pe = "<<pe<<endl;
16799 cout<<"rci = "<<rci<<endl;
16802 if(!fDiffFlowSquaredCorrelationsPro[t][pe][rci])
16804 cout<<"WARNING: fDiffFlowSquaredCorrelationsPro[t][pe][rci] is NULL in AFAWQC::FRC() !!!!"<<endl;
16805 cout<<"t = "<<t<<endl;
16806 cout<<"pe = "<<pe<<endl;
16807 cout<<"rci = "<<rci<<endl;
16810 for(Int_t power=0;power<2;power++)
16812 if(!fDiffFlowSumOfEventWeights[t][pe][power][rci])
16814 cout<<"WARNING: fDiffFlowSumOfEventWeights[t][pe][power][rci] is NULL in AFAWQC::FRC() !!!!"<<endl;
16815 cout<<"t = "<<t<<endl;
16816 cout<<"pe = "<<pe<<endl;
16817 cout<<"power = "<<power<<endl;
16818 cout<<"rci = "<<rci<<endl;
16821 } // end of for(Int_t power=0;power<2;power++)
16822 } // end of for(Int_t rci=0;rci<4;rci++)
16825 Int_t nBinsPtEta[2] = {fnBinsPt,fnBinsEta};
16826 // transfer 1D profile into 1D histogram:
16827 Double_t correlation = 0.;
16828 Double_t squaredCorrelation = 0.;
16829 Double_t spread = 0.;
16830 Double_t sumOfWeights = 0.; // sum of weights for particular reduced correlations for particular pt or eta bin
16831 Double_t sumOfSquaredWeights = 0.; // sum of squared weights for particular reduced correlations for particular pt or eta bin
16832 Double_t error = 0.; // error = termA * spread * termB
16833 // termA = (sqrt(sumOfSquaredWeights)/sumOfWeights)
16834 // termB = 1/pow(1-termA^2,0.5)
16835 Double_t termA = 0.;
16836 Double_t termB = 0.;
16837 for(Int_t rci=0;rci<4;rci++) // index of reduced correlation
16839 for(Int_t b=1;b<=nBinsPtEta[pe];b++) // number of pt or eta bins
16841 if(fDiffFlowCorrelationsPro[t][pe][rci]->GetBinEffectiveEntries(b) < 2 ||
16842 fDiffFlowSquaredCorrelationsPro[t][pe][rci]->GetBinEffectiveEntries(b) < 2)
16844 fDiffFlowCorrelationsPro[t][pe][rci]->SetBinError(b,0.);
16845 fDiffFlowSquaredCorrelationsPro[t][pe][rci]->SetBinError(b,0.);
16846 continue; // to be improved - should I ignore results in pt bins with one entry for reduced correlations or not?
16848 correlation = fDiffFlowCorrelationsPro[t][pe][rci]->GetBinContent(b);
16849 squaredCorrelation = fDiffFlowSquaredCorrelationsPro[t][pe][rci]->GetBinContent(b);
16850 if(squaredCorrelation-correlation*correlation >= 0.)
16852 spread = pow(squaredCorrelation-correlation*correlation,0.5);
16856 cout<<Form(" WARNING: Imaginary 'spread' for rci = %d, pe = %d, bin = %d !!!!",rci,pe,b)<<endl;
16859 sumOfWeights = fDiffFlowSumOfEventWeights[t][pe][0][rci]->GetBinContent(b);
16860 sumOfSquaredWeights = fDiffFlowSumOfEventWeights[t][pe][1][rci]->GetBinContent(b);
16861 if(TMath::Abs(sumOfWeights)>0.){termA = (pow(sumOfSquaredWeights,0.5)/sumOfWeights);}
16862 if(1.-pow(termA,2.)>0.){termB = 1./pow(1.-pow(termA,2.),0.5);}
16863 error = termA*spread*termB; // final error (unbiased estimator for standard deviation)
16864 fDiffFlowCorrelationsHist[t][pe][rci]->SetBinContent(b,correlation);
16865 fDiffFlowCorrelationsHist[t][pe][rci]->SetBinError(b,error);
16866 } // end of for(Int_t b=1;b<=nBinsPtEta[pe];b++)
16867 } // end of for(Int_t rci=0;rci<4;rci++)
16869 } // end of void AliFlowAnalysisWithQCumulants::FinalizeReducedCorrelations(TString type, TString ptOrEta)
16871 //=======================================================================================================================
16873 void AliFlowAnalysisWithQCumulants::CalculateDiffFlowProductOfCorrelations(TString type, TString ptOrEta)
16875 // store products: <2><2'>, <2><4'>, <2><6'>, <2><8'>, <2'><4>,
16876 // <2'><4'>, <2'><6>, <2'><6'>, <2'><8>, <2'><8'>,
16877 // <4><4'>, <4><6'>, <4><8'>, <4'><6>, <4'><6'>,
16878 // <4'><8>, <4'><8'>, <6><6'>, <6><8'>, <6'><8>,
16879 // <6'><8'>, <8><8'>.
16881 Int_t typeFlag = 0;
16882 Int_t ptEtaFlag = 0;
16887 } else if(type == "POI")
16892 if(ptOrEta == "Pt")
16895 } else if(ptOrEta == "Eta")
16901 Int_t t = typeFlag;
16902 Int_t pe = ptEtaFlag;
16905 Int_t nBinsPtEta[2] = {fnBinsPt,fnBinsEta};
16906 Double_t minPtEta[2] = {fPtMin,fEtaMin};
16907 Double_t binWidthPtEta[2] = {fPtBinWidth,fEtaBinWidth};
16909 // protections // to be improved (add protection for all pointers in this method)
16910 if(!fIntFlowCorrelationsEBE)
16912 cout<<"WARNING: fIntFlowCorrelationsEBE is NULL in AFAWQC::CDFPOC() !!!!"<<endl;
16917 Double_t dMult = (*fSpk)(0,0); // multiplicity (number of particles used to determine the reaction plane)
16918 //Double_t mr = 0.; // number of RPs in particular pt or eta bin
16919 Double_t mp = 0.; // number of POIs in particular pt or eta bin
16920 Double_t mq = 0.; // number of particles which are both RPs and POIs in particular pt or eta bin
16923 // e-b-e correlations:
16924 Double_t twoEBE = fIntFlowCorrelationsEBE->GetBinContent(1); // <2>
16925 Double_t fourEBE = fIntFlowCorrelationsEBE->GetBinContent(2); // <4>
16926 Double_t sixEBE = fIntFlowCorrelationsEBE->GetBinContent(3); // <6>
16927 Double_t eightEBE = fIntFlowCorrelationsEBE->GetBinContent(4); // <8>
16929 // event weights for correlations:
16930 Double_t dW2 = fIntFlowEventWeightsForCorrelationsEBE->GetBinContent(1); // event weight for <2>
16931 Double_t dW4 = fIntFlowEventWeightsForCorrelationsEBE->GetBinContent(2); // event weight for <4>
16932 Double_t dW6 = fIntFlowEventWeightsForCorrelationsEBE->GetBinContent(3); // event weight for <6>
16933 Double_t dW8 = fIntFlowEventWeightsForCorrelationsEBE->GetBinContent(4); // event weight for <8>
16935 // e-b-e reduced correlations:
16936 Double_t twoReducedEBE = 0.; // <2'>
16937 Double_t fourReducedEBE = 0.; // <4'>
16938 //Double_t sixReducedEBE = 0.; // <6'>
16939 //Double_t eightReducedEBE = 0.; // <8'>
16941 // event weights for reduced correlations:
16942 Double_t dw2 = 0.; // event weight for <2'>
16943 Double_t dw4 = 0.; // event weight for <4'>
16944 //Double_t dw6 = 0.; // event weight for <6'>
16945 //Double_t dw8 = 0.; // event weight for <8'>
16947 // looping over bins:
16948 for(Int_t b=1;b<=nBinsPtEta[pe];b++)
16950 // e-b-e reduced correlations:
16951 twoReducedEBE = fDiffFlowCorrelationsEBE[t][pe][0]->GetBinContent(b);
16952 fourReducedEBE = fDiffFlowCorrelationsEBE[t][pe][1]->GetBinContent(b);
16953 //sixReducedEBE = fDiffFlowCorrelationsEBE[t][pe][2]->GetBinContent(b);
16954 //eightReducedEBE = fDiffFlowCorrelationsEBE[t][pe][3]->GetBinContent(b);
16957 // to be improved (I should not do this here again)
16960 mq = fReRPQ1dEBE[0][pe][0][0]->GetBinEntries(b);
16961 mp = mq; // trick to use the very same Eqs. bellow both for RP's and POI's diff. flow
16962 } else if(type == "POI")
16964 mp = fReRPQ1dEBE[1][pe][0][0]->GetBinEntries(b);
16965 mq = fReRPQ1dEBE[2][pe][0][0]->GetBinEntries(b);
16968 // event weights for reduced correlations:
16969 dw2 = mp*dMult-mq; // weight for <2'>
16970 dw4 = (mp-mq)*dMult*(dMult-1.)*(dMult-2.)
16971 + mq*(dMult-1.)*(dMult-2.)*(dMult-3.); // weight for <4'>
16977 dw2 = fDiffFlowEventWeightsForCorrelationsEBE[t][pe][0]->GetBinContent(b);
16978 dw4 = fDiffFlowEventWeightsForCorrelationsEBE[t][pe][1]->GetBinContent(b);
16980 // storing all products:
16981 fDiffFlowProductOfCorrelationsPro[t][pe][0][1]->Fill(minPtEta[pe]+(b-1)*binWidthPtEta[pe],twoEBE*twoReducedEBE,dW2*dw2); // storing <2><2'>
16982 fDiffFlowProductOfCorrelationsPro[t][pe][1][2]->Fill(minPtEta[pe]+(b-1)*binWidthPtEta[pe],fourEBE*twoReducedEBE,dW4*dw2); // storing <4><2'>
16983 fDiffFlowProductOfCorrelationsPro[t][pe][1][4]->Fill(minPtEta[pe]+(b-1)*binWidthPtEta[pe],sixEBE*twoReducedEBE,dW6*dw2); // storing <6><2'>
16984 fDiffFlowProductOfCorrelationsPro[t][pe][1][6]->Fill(minPtEta[pe]+(b-1)*binWidthPtEta[pe],eightEBE*twoReducedEBE,dW8*dw2); // storing <8><2'>
16986 // event weight for <4'>:
16987 fDiffFlowProductOfCorrelationsPro[t][pe][0][3]->Fill(minPtEta[pe]+(b-1)*binWidthPtEta[pe],twoEBE*fourReducedEBE,dW2*dw4); // storing <2><4'>
16988 fDiffFlowProductOfCorrelationsPro[t][pe][1][3]->Fill(minPtEta[pe]+(b-1)*binWidthPtEta[pe],twoReducedEBE*fourReducedEBE,dw2*dw4); // storing <2'><4'>
16989 fDiffFlowProductOfCorrelationsPro[t][pe][2][3]->Fill(minPtEta[pe]+(b-1)*binWidthPtEta[pe],fourEBE*fourReducedEBE,dW4*dw4); // storing <4><4'>
16990 fDiffFlowProductOfCorrelationsPro[t][pe][3][4]->Fill(minPtEta[pe]+(b-1)*binWidthPtEta[pe],sixEBE*fourReducedEBE,dW6*dw4); // storing <6><4'>
16991 fDiffFlowProductOfCorrelationsPro[t][pe][3][6]->Fill(minPtEta[pe]+(b-1)*binWidthPtEta[pe],eightEBE*fourReducedEBE,dW8*dw4); // storing <8><4'>
16993 // event weight for <6'>:
16995 //fDiffFlowProductOfCorrelationsPro[t][pe][0][5]->Fill(minPtEta[pe]+(b-1)*binWidthPtEta[pe],twoEBE*sixReducedEBE,dW2*dw6); // storing <2><6'>
16996 //fDiffFlowProductOfCorrelationsPro[t][pe][1][5]->Fill(minPtEta[pe]+(b-1)*binWidthPtEta[pe],twoReducedEBE*sixReducedEBE,dw2*dw6); // storing <2'><6'>
16997 //fDiffFlowProductOfCorrelationsPro[t][pe][2][5]->Fill(minPtEta[pe]+(b-1)*binWidthPtEta[pe],fourEBE*sixReducedEBE,dW4*dw6); // storing <4><6'>
16998 //fDiffFlowProductOfCorrelationsPro[t][pe][3][5]->Fill(minPtEta[pe]+(b-1)*binWidthPtEta[pe],fourReducedEBE*sixReducedEBE,dw4*dw6); // storing <4'><6'>
16999 //fDiffFlowProductOfCorrelationsPro[t][pe][4][5]->Fill(minPtEta[pe]+(b-1)*binWidthPtEta[pe],sixEBE*sixReducedEBE,dW6*dw6); // storing <6><6'>
17000 //fDiffFlowProductOfCorrelationsPro[t][pe][5][6]->Fill(minPtEta[pe]+(b-1)*binWidthPtEta[pe],sixReducedEBE*eightEBE,dw6*dW8); // storing <6'><8>
17001 //fDiffFlowProductOfCorrelationsPro[t][pe][5][7]->Fill(minPtEta[pe]+(b-1)*binWidthPtEta[pe],sixReducedEBE*eightReducedEBE,dw6*dw8); // storing <6'><8'>
17003 // event weight for <8'>:
17005 //fDiffFlowProductOfCorrelationsPro[t][pe][0][7]->Fill(minPtEta[pe]+(b-1)*binWidthPtEta[pe],twoEBE*eightReducedEBE,dW2*dw8); // storing <2><8'>
17006 //fDiffFlowProductOfCorrelationsPro[t][pe][1][7]->Fill(minPtEta[pe]+(b-1)*binWidthPtEta[pe],twoReducedEBE*eightReducedEBE,dw2*dw8); // storing <2'><8'>
17007 //fDiffFlowProductOfCorrelationsPro[t][pe][2][7]->Fill(minPtEta[pe]+(b-1)*binWidthPtEta[pe],fourEBE*eightReducedEBE,dW4*dw8); // storing <4><8'>
17008 //fDiffFlowProductOfCorrelationsPro[t][pe][3][7]->Fill(minPtEta[pe]+(b-1)*binWidthPtEta[pe],fourReducedEBE*eightReducedEBE,dw4*dw8); // storing <4'><8'>
17009 //fDiffFlowProductOfCorrelationsPro[t][pe][4][7]->Fill(minPtEta[pe]+(b-1)*binWidthPtEta[pe],sixEBE*eightReducedEBE,dW6*dw8); // storing <6><8'>
17010 //fDiffFlowProductOfCorrelationsPro[t][pe][5][7]->Fill(minPtEta[pe]+(b-1)*binWidthPtEta[pe],sixReducedEBE*eightReducedEBE,dw6*dw8); // storing <6'><8'>
17011 //fDiffFlowProductOfCorrelationsPro[t][pe][6][7]->Fill(minPtEta[pe]+(b-1)*binWidthPtEta[pe],eightEBE*eightReducedEBE,dW8*dw8); // storing <8><8'>
17012 } // end of for(Int_t b=1;b<=nBinsPtEta[pe];b++
17014 } // end of void AliFlowAnalysisWithQCumulants::CalculateDiffFlowProductOfCorrelations(TString type, TString ptOrEta)
17016 //=======================================================================================================================
17018 void AliFlowAnalysisWithQCumulants::CalculateDiffFlowCovariances(TString type, TString ptOrEta) // to be improved (reimplemented)
17020 // a) Calculate unbiased estimators Cov(<2>,<2'>), Cov(<2>,<4'>), Cov(<4>,<2'>), Cov(<4>,<4'>) and Cov(<2'>,<4'>)
17021 // for covariances V(<2>,<2'>), V(<2>,<4'>), V(<4>,<2'>), V(<4>,<4'>) and V(<2'>,<4'>).
17022 // b) Store in histogram fDiffFlowCovariances[t][pe][index] for instance the following:
17024 // Cov(<2>,<2'>) * (sum_{i=1}^{N} w_{<2>}_i w_{<2'>}_i )/[(sum_{i=1}^{N} w_{<2>}_i) * (sum_{j=1}^{N} w_{<2'>}_j)]
17026 // where N is the number of events, w_{<2>} is event weight for <2> and w_{<2'>} is event weight for <2'>.
17027 // c) Binning of fDiffFlowCovariances[t][pe][index] is organized as follows:
17029 // 1st bin: Cov(<2>,<2'>) * (sum_{i=1}^{N} w_{<2>}_i w_{<2'>}_i )/[(sum_{i=1}^{N} w_{<2>}_i) * (sum_{j=1}^{N} w_{<2'>}_j)]
17030 // 2nd bin: Cov(<2>,<4'>) * (sum_{i=1}^{N} w_{<2>}_i w_{<4'>}_i )/[(sum_{i=1}^{N} w_{<2>}_i) * (sum_{j=1}^{N} w_{<4'>}_j)]
17031 // 3rd bin: Cov(<4>,<2'>) * (sum_{i=1}^{N} w_{<4>}_i w_{<2'>}_i )/[(sum_{i=1}^{N} w_{<4>}_i) * (sum_{j=1}^{N} w_{<2'>}_j)]
17032 // 4th bin: Cov(<4>,<4'>) * (sum_{i=1}^{N} w_{<4>}_i w_{<4'>}_i )/[(sum_{i=1}^{N} w_{<4>}_i) * (sum_{j=1}^{N} w_{<4'>}_j)]
17033 // 5th bin: Cov(<2'>,<4'>) * (sum_{i=1}^{N} w_{<2'>}_i w_{<4'>}_i )/[(sum_{i=1}^{N} w_{<2'>}_i) * (sum_{j=1}^{N} w_{<4'>}_j)]
17036 Int_t typeFlag = 0;
17037 Int_t ptEtaFlag = 0;
17042 } else if(type == "POI")
17047 if(ptOrEta == "Pt")
17050 } else if(ptOrEta == "Eta")
17056 Int_t t = typeFlag;
17057 Int_t pe = ptEtaFlag;
17060 Int_t nBinsPtEta[2] = {fnBinsPt,fnBinsEta};
17061 //Double_t minPtEta[2] = {fPtMin,fEtaMin};
17062 //Double_t maxPtEta[2] = {fPtMax,fEtaMax};
17063 //Double_t binWidthPtEta[2] = {fPtBinWidth,fEtaBinWidth};
17065 // average correlations:
17066 Double_t two = fIntFlowCorrelationsHist->GetBinContent(1); // <<2>>
17067 Double_t four = fIntFlowCorrelationsHist->GetBinContent(2); // <<4>>
17068 //Double_t six = fIntFlowCorrelationsHist->GetBinContent(3); // <<6>>
17069 //Double_t eight = fIntFlowCorrelationsHist->GetBinContent(4); // <<8>>
17071 // sum of weights for correlation:
17072 Double_t sumOfWeightsForTwo = fIntFlowSumOfEventWeights[0]->GetBinContent(1); // sum_{i=1}^{N} w_{<2>}
17073 Double_t sumOfWeightsForFour = fIntFlowSumOfEventWeights[0]->GetBinContent(2); // sum_{i=1}^{N} w_{<4>}
17074 //Double_t sumOfWeightsForSix = fIntFlowSumOfEventWeights[0]->GetBinContent(3); // sum_{i=1}^{N} w_{<6>}
17075 //Double_t sumOfWeightsForEight = fIntFlowSumOfEventWeights[0]->GetBinContent(4); // sum_{i=1}^{N} w_{<8>}
17077 // average reduced correlations:
17078 Double_t twoReduced = 0.; // <<2'>>
17079 Double_t fourReduced = 0.; // <<4'>>
17080 //Double_t sixReduced = 0.; // <<6'>>
17081 //Double_t eightReduced = 0.; // <<8'>>
17083 // sum of weights for reduced correlation:
17084 Double_t sumOfWeightsForTwoReduced = 0.; // sum_{i=1}^{N} w_{<2'>}
17085 Double_t sumOfWeightsForFourReduced = 0.; // sum_{i=1}^{N} w_{<4'>}
17086 //Double_t sumOfWeightsForSixReduced = 0.; // sum_{i=1}^{N} w_{<6'>}
17087 //Double_t sumOfWeightsForEightReduced = 0.; // sum_{i=1}^{N} w_{<8'>}
17089 // product of weights for reduced correlation:
17090 Double_t productOfWeightsForTwoTwoReduced = 0.; // sum_{i=1}^{N} w_{<2>}w_{<2'>}
17091 Double_t productOfWeightsForTwoFourReduced = 0.; // sum_{i=1}^{N} w_{<2>}w_{<4'>}
17092 Double_t productOfWeightsForFourTwoReduced = 0.; // sum_{i=1}^{N} w_{<4>}w_{<2'>}
17093 Double_t productOfWeightsForFourFourReduced = 0.; // sum_{i=1}^{N} w_{<4>}w_{<4'>}
17094 Double_t productOfWeightsForTwoReducedFourReduced = 0.; // sum_{i=1}^{N} w_{<2'>}w_{<4'>}
17097 // products for differential flow:
17098 Double_t twoTwoReduced = 0; // <<2><2'>>
17099 Double_t twoFourReduced = 0; // <<2><4'>>
17100 Double_t fourTwoReduced = 0; // <<4><2'>>
17101 Double_t fourFourReduced = 0; // <<4><4'>>
17102 Double_t twoReducedFourReduced = 0; // <<2'><4'>>
17104 // denominators in the expressions for the unbiased estimators for covariances:
17105 // denominator = 1 - term1/(term2*term3)
17106 // prefactor = term1/(term2*term3)
17107 Double_t denominator = 0.;
17108 Double_t prefactor = 0.;
17109 Double_t term1 = 0.;
17110 Double_t term2 = 0.;
17111 Double_t term3 = 0.;
17113 // unbiased estimators for covariances for differential flow:
17114 Double_t covTwoTwoReduced = 0.; // Cov(<2>,<2'>)
17115 Double_t wCovTwoTwoReduced = 0.; // Cov(<2>,<2'>) * prefactor(w_{<2>},w_{<2'>})
17116 Double_t covTwoFourReduced = 0.; // Cov(<2>,<4'>)
17117 Double_t wCovTwoFourReduced = 0.; // Cov(<2>,<4'>) * prefactor(w_{<2>},w_{<4'>})
17118 Double_t covFourTwoReduced = 0.; // Cov(<4>,<2'>)
17119 Double_t wCovFourTwoReduced = 0.; // Cov(<4>,<2'>) * prefactor(w_{<4>},w_{<2'>})
17120 Double_t covFourFourReduced = 0.; // Cov(<4>,<4'>)
17121 Double_t wCovFourFourReduced = 0.; // Cov(<4>,<4'>) * prefactor(w_{<4>},w_{<4'>})
17122 Double_t covTwoReducedFourReduced = 0.; // Cov(<2'>,<4'>)
17123 Double_t wCovTwoReducedFourReduced = 0.; // Cov(<2'>,<4'>) * prefactor(w_{<2'>},w_{<4'>})
17125 for(Int_t b=1;b<=nBinsPtEta[pe];b++)
17127 // average reduced corelations:
17128 twoReduced = fDiffFlowCorrelationsHist[t][pe][0]->GetBinContent(b);
17129 fourReduced = fDiffFlowCorrelationsHist[t][pe][1]->GetBinContent(b);
17130 // average products:
17131 twoTwoReduced = fDiffFlowProductOfCorrelationsPro[t][pe][0][1]->GetBinContent(b);
17132 twoFourReduced = fDiffFlowProductOfCorrelationsPro[t][pe][0][3]->GetBinContent(b);
17133 fourTwoReduced = fDiffFlowProductOfCorrelationsPro[t][pe][1][2]->GetBinContent(b);
17134 fourFourReduced = fDiffFlowProductOfCorrelationsPro[t][pe][2][3]->GetBinContent(b);
17135 twoReducedFourReduced = fDiffFlowProductOfCorrelationsPro[t][pe][1][3]->GetBinContent(b);
17136 // sum of weights for reduced correlations:
17137 sumOfWeightsForTwoReduced = fDiffFlowSumOfEventWeights[t][pe][0][0]->GetBinContent(b);
17138 sumOfWeightsForFourReduced = fDiffFlowSumOfEventWeights[t][pe][0][1]->GetBinContent(b);
17139 // products of weights for correlations:
17140 productOfWeightsForTwoTwoReduced = fDiffFlowSumOfProductOfEventWeights[t][pe][0][1]->GetBinContent(b);
17141 productOfWeightsForTwoFourReduced = fDiffFlowSumOfProductOfEventWeights[t][pe][0][3]->GetBinContent(b);
17142 productOfWeightsForFourTwoReduced = fDiffFlowSumOfProductOfEventWeights[t][pe][1][2]->GetBinContent(b);
17143 productOfWeightsForFourFourReduced = fDiffFlowSumOfProductOfEventWeights[t][pe][2][3]->GetBinContent(b);
17144 productOfWeightsForTwoReducedFourReduced = fDiffFlowSumOfProductOfEventWeights[t][pe][1][3]->GetBinContent(b);
17145 // denominator for the unbiased estimator for covariances: 1 - term1/(term2*term3)
17146 // prefactor (multiplies Cov's) = term1/(term2*term3)
17148 term1 = productOfWeightsForTwoTwoReduced;
17149 term2 = sumOfWeightsForTwo;
17150 term3 = sumOfWeightsForTwoReduced;
17153 denominator = 1.-term1/(term2*term3);
17154 prefactor = term1/(term2*term3);
17155 if(TMath::Abs(denominator)>1.e-6)
17157 covTwoTwoReduced = (twoTwoReduced-two*twoReduced)/denominator;
17158 wCovTwoTwoReduced = covTwoTwoReduced*prefactor;
17159 fDiffFlowCovariances[t][pe][0]->SetBinContent(b,wCovTwoTwoReduced);
17163 term1 = productOfWeightsForTwoFourReduced;
17164 term2 = sumOfWeightsForTwo;
17165 term3 = sumOfWeightsForFourReduced;
17168 denominator = 1.-term1/(term2*term3);
17169 prefactor = term1/(term2*term3);
17170 if(TMath::Abs(denominator)>1.e-6)
17172 covTwoFourReduced = (twoFourReduced-two*fourReduced)/denominator;
17173 wCovTwoFourReduced = covTwoFourReduced*prefactor;
17174 fDiffFlowCovariances[t][pe][1]->SetBinContent(b,wCovTwoFourReduced);
17178 term1 = productOfWeightsForFourTwoReduced;
17179 term2 = sumOfWeightsForFour;
17180 term3 = sumOfWeightsForTwoReduced;
17183 denominator = 1.-term1/(term2*term3);
17184 prefactor = term1/(term2*term3);
17185 if(TMath::Abs(denominator)>1.e-6)
17187 covFourTwoReduced = (fourTwoReduced-four*twoReduced)/denominator;
17188 wCovFourTwoReduced = covFourTwoReduced*prefactor;
17189 fDiffFlowCovariances[t][pe][2]->SetBinContent(b,wCovFourTwoReduced);
17193 term1 = productOfWeightsForFourFourReduced;
17194 term2 = sumOfWeightsForFour;
17195 term3 = sumOfWeightsForFourReduced;
17198 denominator = 1.-term1/(term2*term3);
17199 prefactor = term1/(term2*term3);
17200 if(TMath::Abs(denominator)>1.e-6)
17202 covFourFourReduced = (fourFourReduced-four*fourReduced)/denominator;
17203 wCovFourFourReduced = covFourFourReduced*prefactor;
17204 fDiffFlowCovariances[t][pe][3]->SetBinContent(b,wCovFourFourReduced);
17208 term1 = productOfWeightsForTwoReducedFourReduced;
17209 term2 = sumOfWeightsForTwoReduced;
17210 term3 = sumOfWeightsForFourReduced;
17213 denominator = 1.-term1/(term2*term3);
17214 prefactor = term1/(term2*term3);
17215 if(TMath::Abs(denominator)>1.e-6)
17217 covTwoReducedFourReduced = (twoReducedFourReduced-twoReduced*fourReduced)/denominator;
17218 wCovTwoReducedFourReduced = covTwoReducedFourReduced*prefactor;
17219 fDiffFlowCovariances[t][pe][4]->SetBinContent(b,wCovTwoReducedFourReduced);
17222 } // end of for(Int_t b=1;b<=nBinsPtEta[pe];b++)
17224 } // end of void AliFlowAnalysisWithQCumulants::CalculateDiffFlowCovariances(TString type, TString ptOrEta)
17226 //=======================================================================================================================
17228 void AliFlowAnalysisWithQCumulants::CalculateDiffFlow(TString type, TString ptOrEta)
17230 // Calculate final results for differential flow.
17232 // REMARK: Differential flow calculated in this method is NOT corrected for non-uniform acceptance.
17233 // This correction, if enabled via setter SetApplyCorrectionForNUA(Bool_t), is applied in the method
17234 // CalculateDiffFlowCorrectedForNUA(TString type, TString ptOrEta)
17236 Int_t t = 0; // RP or POI
17237 Int_t pe = 0; // pt or eta
17242 } else if(type == "POI")
17247 if(ptOrEta == "Pt")
17250 } else if(ptOrEta == "Eta")
17256 Int_t nBinsPtEta[2] = {fnBinsPt,fnBinsEta};
17258 Double_t two = fIntFlowCorrelationsHist->GetBinContent(1); // <<2>>
17259 Double_t four = fIntFlowCorrelationsHist->GetBinContent(2); // <<4>>
17260 // Statistical errors of correlations:
17261 Double_t twoError = fIntFlowCorrelationsHist->GetBinError(1);
17262 Double_t fourError = fIntFlowCorrelationsHist->GetBinError(2);
17263 // Reduced correlations:
17264 Double_t twoReduced = 0.; // <<2'>>
17265 Double_t fourReduced = 0.; // <<4'>>
17266 // Statistical errors of reduced correlations:
17267 Double_t twoReducedError = 0.;
17268 Double_t fourReducedError = 0.;
17270 Double_t wCovTwoFour = 0.; // Cov(<2>,<4>) * prefactor(<2>,<4>)
17271 if(!fForgetAboutCovariances)
17273 wCovTwoFour = fIntFlowCovariances->GetBinContent(1); // Cov(<2>,<4>) * prefactor(<2>,<4>)
17275 Double_t wCovTwoTwoReduced = 0.; // Cov(<2>,<2'>) * prefactor(<2>,<2'>)
17276 Double_t wCovTwoFourReduced = 0.; // Cov(<2>,<4'>) * prefactor(<2>,<4'>)
17277 Double_t wCovFourTwoReduced = 0.; // Cov(<4>,<2'>) * prefactor(<4>,<2'>)
17278 Double_t wCovFourFourReduced = 0.; // Cov(<4>,<4'>) * prefactor(<4>,<4'>)
17279 Double_t wCovTwoReducedFourReduced = 0.; // Cov(<2'>,<4'>) * prefactor(<2'>,<4'>)
17280 // Differential flow:
17281 Double_t v2Prime = 0.; // v'{2}
17282 Double_t v4Prime = 0.; // v'{4}
17283 // Statistical error of differential flow:
17284 Double_t v2PrimeError = 0.;
17285 Double_t v4PrimeError = 0.;
17286 // Squared statistical error of differential flow:
17287 Double_t v2PrimeErrorSquared = 0.;
17288 Double_t v4PrimeErrorSquared = 0.;
17289 // Loop over pt or eta bins:
17290 for(Int_t b=1;b<=nBinsPtEta[pe];b++)
17292 // Reduced correlations and statistical errors:
17293 twoReduced = fDiffFlowCorrelationsHist[t][pe][0]->GetBinContent(b);
17294 twoReducedError = fDiffFlowCorrelationsHist[t][pe][0]->GetBinError(b);
17295 fourReduced = fDiffFlowCorrelationsHist[t][pe][1]->GetBinContent(b);
17296 fourReducedError = fDiffFlowCorrelationsHist[t][pe][1]->GetBinError(b);
17298 if(!fForgetAboutCovariances)
17300 wCovTwoTwoReduced = fDiffFlowCovariances[t][pe][0]->GetBinContent(b);
17301 wCovTwoFourReduced = fDiffFlowCovariances[t][pe][1]->GetBinContent(b);
17302 wCovFourTwoReduced = fDiffFlowCovariances[t][pe][2]->GetBinContent(b);
17303 wCovFourFourReduced = fDiffFlowCovariances[t][pe][3]->GetBinContent(b);
17304 wCovTwoReducedFourReduced = fDiffFlowCovariances[t][pe][4]->GetBinContent(b);
17306 // Differential flow:
17310 v2Prime = twoReduced/pow(two,0.5);
17311 v2PrimeErrorSquared = (1./4.)*pow(two,-3.)*(pow(twoReduced,2.)*pow(twoError,2.)
17312 + 4.*pow(two,2.)*pow(twoReducedError,2.)
17313 - 4.*two*twoReduced*wCovTwoTwoReduced);
17314 if(v2PrimeErrorSquared>0.){v2PrimeError = pow(v2PrimeErrorSquared,0.5);}
17315 if(TMath::Abs(v2Prime)>0.)
17317 fDiffFlow[t][pe][0]->SetBinContent(b,v2Prime);
17318 fDiffFlow[t][pe][0]->SetBinError(b,v2PrimeError);
17320 } // end of if(two>0.)
17321 // differential flow:
17323 if(2.*pow(two,2.)-four > 0.)
17325 v4Prime = (2.*two*twoReduced-fourReduced)/pow(2.*pow(two,2.)-four,3./4.);
17326 v4PrimeErrorSquared = pow(2.*pow(two,2.)-four,-7./2.)
17327 * (pow(2.*pow(two,2.)*twoReduced-3.*two*fourReduced+2.*four*twoReduced,2.)*pow(twoError,2.)
17328 + (9./16.)*pow(2.*two*twoReduced-fourReduced,2.)*pow(fourError,2.)
17329 + 4.*pow(two,2.)*pow(2.*pow(two,2.)-four,2.)*pow(twoReducedError,2.)
17330 + pow(2.*pow(two,2.)-four,2.)*pow(fourReducedError,2.)
17331 - (3./2.)*(2.*two*twoReduced-fourReduced)
17332 * (2.*pow(two,2.)*twoReduced-3.*two*fourReduced+2.*four*twoReduced)*wCovTwoFour
17333 - 4.*two*(2.*pow(two,2.)-four)
17334 * (2.*pow(two,2.)*twoReduced-3.*two*fourReduced+2.*four*twoReduced)*wCovTwoTwoReduced
17335 + 2.*(2.*pow(two,2.)-four)
17336 * (2.*pow(two,2.)*twoReduced-3.*two*fourReduced+2.*four*twoReduced)*wCovTwoFourReduced
17337 + 3.*two*(2.*pow(two,2.)-four)*(2.*two*twoReduced-fourReduced)*wCovFourTwoReduced
17338 - (3./2.)*(2.*pow(two,2.)-four)*(2.*two*twoReduced-fourReduced)*wCovFourFourReduced
17339 - 4.*two*pow(2.*pow(two,2.)-four,2.)*wCovTwoReducedFourReduced);
17340 if(v4PrimeErrorSquared>0.){v4PrimeError = pow(v4PrimeErrorSquared,0.5);}
17341 if(TMath::Abs(v4Prime)>0.)
17343 fDiffFlow[t][pe][1]->SetBinContent(b,v4Prime);
17344 fDiffFlow[t][pe][1]->SetBinError(b,v4PrimeError);
17346 } // end of if(2.*pow(two,2.)-four > 0.)
17347 } // end of for(Int_t b=1;b<=fnBinsPtEta[pe];b++)
17349 } // end of AliFlowAnalysisWithQCumulants::CalculateDiffFlow(TString type, Bool_t useParticleWeights)
17351 //=======================================================================================================================
17353 void AliFlowAnalysisWithQCumulants::Calculate2DDiffFlow(TString type)
17355 // Calculate final results for 2D diferential flow.
17357 // to be improved - check pointers used in this method
17359 Int_t t = 0; // RP or POI
17364 } else if(type == "POI")
17369 // Differential flow:
17370 Double_t v2Prime = 0.; // v'{2}
17371 Double_t v4Prime = 0.; // v'{4}
17372 // Differential cumulants:
17373 Double_t qc2Prime = 0.; // QC{2'}
17374 Double_t qc4Prime = 0.; // QC{4'}
17375 // Looping over all (pt,eta) bins and calculating differential flow:
17376 for(Int_t p=1;p<=fnBinsPt;p++)
17378 for(Int_t e=1;e<=fnBinsEta;e++)
17381 qc2Prime = f2DDiffFlowCumulants[t][0]->GetBinContent(f2DDiffFlowCumulants[t][0]->GetBin(p,e));
17384 v2Prime = pow(qc2Prime,0.5);
17385 f2DDiffFlow[t][0]->SetBinContent(f2DDiffFlow[t][0]->GetBin(p,e),v2Prime);
17388 qc4Prime = f2DDiffFlowCumulants[t][1]->GetBinContent(f2DDiffFlowCumulants[t][1]->GetBin(p,e));
17391 v4Prime = pow(-1.*qc4Prime,1./4.);
17392 f2DDiffFlow[t][1]->SetBinContent(f2DDiffFlow[t][1]->GetBin(p,e),v4Prime);
17394 } // end of for(Int_t e=1;e<=fnBinsEta;e++)
17395 } // end of for(Int_t p=1;p<=fnBinsPt;p++)
17397 } // end of void AliFlowAnalysisWithQCumulants::Calculate2DDiffFlow(TString type)
17399 //=======================================================================================================================
17401 void AliFlowAnalysisWithQCumulants::StoreIntFlowFlags()
17403 // a) Store all flags for integrated flow in profile fIntFlowFlags.
17407 cout<<"WARNING: fIntFlowFlags is NULL in AFAWQC::SFFIF() !!!!"<<endl;
17411 // particle weights used or not:
17412 fIntFlowFlags->Fill(0.5,(Int_t)fUsePhiWeights||fUsePtWeights||fUseEtaWeights||fUseTrackWeights);
17413 // which event weights were used:
17414 if(fMultiplicityWeight->Contains("combinations"))
17416 fIntFlowFlags->Fill(1.5,0); // 0 = "combinations" (default)
17417 } else if(fMultiplicityWeight->Contains("unit"))
17419 fIntFlowFlags->Fill(1.5,1); // 1 = "unit"
17420 } else if(fMultiplicityWeight->Contains("multiplicity"))
17422 fIntFlowFlags->Fill(1.5,2); // 2 = "multiplicity"
17424 fIntFlowFlags->Fill(2.5,(Int_t)fApplyCorrectionForNUA);
17425 fIntFlowFlags->Fill(3.5,(Int_t)fPrintFinalResults[0]);
17426 fIntFlowFlags->Fill(4.5,(Int_t)fPrintFinalResults[1]);
17427 fIntFlowFlags->Fill(5.5,(Int_t)fPrintFinalResults[2]);
17428 fIntFlowFlags->Fill(6.5,(Int_t)fPrintFinalResults[3]);
17429 fIntFlowFlags->Fill(7.5,(Int_t)fApplyCorrectionForNUAVsM);
17430 fIntFlowFlags->Fill(8.5,(Int_t)fPropagateErrorAlsoFromNIT);
17431 fIntFlowFlags->Fill(9.5,(Int_t)fCalculateCumulantsVsM);
17432 fIntFlowFlags->Fill(10.5,(Int_t)fMinimumBiasReferenceFlow);
17433 fIntFlowFlags->Fill(11.5,(Int_t)fForgetAboutCovariances);
17434 fIntFlowFlags->Fill(12.5,(Int_t)fStorePhiDistributionForOneEvent);
17435 fIntFlowFlags->Fill(13.5,(Int_t)fFillMultipleControlHistograms);
17436 fIntFlowFlags->Fill(14.5,(Int_t)fCalculateAllCorrelationsVsM);
17437 // which multiplicity was used:
17438 if(fMultiplicityIs==AliFlowCommonConstants::kRP) // # of Reference Particles
17440 fIntFlowFlags->Fill(15.5,0); // 0 = # of Reference Particles
17441 } else if(fMultiplicityIs==AliFlowCommonConstants::kExternal)
17443 fIntFlowFlags->Fill(15.5,1); // 1 = ref. mult. from ESD
17444 } else if(fMultiplicityIs==AliFlowCommonConstants::kPOI)
17446 fIntFlowFlags->Fill(15.5,2); // 2 = # of Particles of Interest
17448 fIntFlowFlags->Fill(16.5,(Int_t)fExactNoRPs);
17450 } // end of void AliFlowAnalysisWithQCumulants::StoreIntFlowFlags()
17452 //=======================================================================================================================
17454 void AliFlowAnalysisWithQCumulants::StoreDiffFlowFlags()
17456 // Store all flags for differential flow in the profile fDiffFlowFlags.
17458 if(!fDiffFlowFlags)
17460 printf("\n WARNING (QC): fDiffFlowFlags is NULL in AFAWQC::SDFF() !!!!\n\n");
17464 fDiffFlowFlags->Fill(0.5,fCalculateDiffFlow); // calculate differential flow
17465 fDiffFlowFlags->Fill(1.5,fUsePhiWeights||fUsePtWeights||fUseEtaWeights||fUseTrackWeights); // particle weights used or not?
17466 //fDiffFlowFlags->Fill(2.5,""); // which event weight was used? ("combinations", "unit" or "multiplicity") to be improved - finalized
17467 fDiffFlowFlags->Fill(3.5,fApplyCorrectionForNUA); // corrected for non-uniform acceptance or not
17468 fDiffFlowFlags->Fill(4.5,fCalculate2DDiffFlow); // calculate also 2D differential flow vs (pt,eta)
17469 fDiffFlowFlags->Fill(5.5,fCalculateDiffFlowVsEta); // if you set kFALSE only differential flow vs pt is calculated
17471 } // end of void AliFlowAnalysisWithQCumulants::StoreDiffFlowFlags()
17473 //=======================================================================================================================
17475 void AliFlowAnalysisWithQCumulants::StoreMixedHarmonicsFlags()
17477 // Store all flags for mixed harmonics in profile fMixedHarmonicsFlags.
17479 if(!fMixedHarmonicsFlags)
17481 cout<<"WARNING: fMixedHarmonicsFlags is NULL in AFAWQC::SMHF() !!!!"<<endl;
17485 fMixedHarmonicsFlags->Fill(0.5,(Int_t)fCalculateMixedHarmonics);
17486 fMixedHarmonicsFlags->Fill(1.5,(Int_t)fHarmonic);
17487 fMixedHarmonicsFlags->Fill(2.5,(Int_t)fCalculateMixedHarmonicsVsM);
17488 // Which multiplicity weight was used?:
17490 if(fMultiplicityWeight->Contains("combinations"))
17492 fMixedHarmonicsFlags->Fill(3.5,0); // 0 = "combinations" (default)
17493 } else if(fMultiplicityWeight->Contains("unit"))
17495 fMixedHarmonicsFlags->Fill(3.5,1); // 1 = "unit"
17496 } else if(fMultiplicityWeight->Contains("multiplicity"))
17498 fMixedHarmonicsFlags->Fill(3.5,2); // 2 = "multiplicity"
17501 } // end of void AliFlowAnalysisWithQCumulants::StoreMixedHarmonicsFlags()
17503 //=======================================================================================================================
17505 void AliFlowAnalysisWithQCumulants::GetPointersForCommonHistograms()
17507 // Access all pointers to common control and common result histograms and profiles.
17509 TString sCommonConstantsName = "fCommonConstants";
17510 sCommonConstantsName += fAnalysisLabel->Data();
17511 fCommonConstants = dynamic_cast<TProfile*>(fHistList->FindObject(sCommonConstantsName.Data()));
17512 if(!fCommonConstants)
17514 printf("\n WARNING (QC): fCommonConstants is NULL in AFAWQC::GPFCH() !!!!\n\n");
17518 // to be improved - lines bellow can be implemented better.
17520 TString commonHistsName = "AliFlowCommonHistQC";
17521 commonHistsName += fAnalysisLabel->Data();
17522 AliFlowCommonHist *commonHist = dynamic_cast<AliFlowCommonHist*>(fHistList->FindObject(commonHistsName.Data()));
17525 this->SetCommonHists(commonHist);
17526 if(fCommonHists->GetHarmonic())
17528 fHarmonic = (Int_t)(fCommonHists->GetHarmonic())->GetBinContent(1);
17530 } // end of if(commonHist)
17531 TString commonHists2ndOrderName = "AliFlowCommonHist2ndOrderQC";
17532 commonHists2ndOrderName += fAnalysisLabel->Data();
17533 AliFlowCommonHist *commonHist2nd = dynamic_cast<AliFlowCommonHist*>(fHistList->FindObject(commonHists2ndOrderName.Data()));
17534 if(commonHist2nd) this->SetCommonHists2nd(commonHist2nd);
17535 TString commonHists4thOrderName = "AliFlowCommonHist4thOrderQC";
17536 commonHists4thOrderName += fAnalysisLabel->Data();
17537 AliFlowCommonHist *commonHist4th = dynamic_cast<AliFlowCommonHist*>(fHistList->FindObject(commonHists4thOrderName.Data()));
17538 if(commonHist4th) this->SetCommonHists4th(commonHist4th);
17539 TString commonHists6thOrderName = "AliFlowCommonHist6thOrderQC";
17540 commonHists6thOrderName += fAnalysisLabel->Data();
17541 AliFlowCommonHist *commonHist6th = dynamic_cast<AliFlowCommonHist*>(fHistList->FindObject(commonHists6thOrderName.Data()));
17542 if(commonHist6th) this->SetCommonHists6th(commonHist6th);
17543 TString commonHists8thOrderName = "AliFlowCommonHist8thOrderQC";
17544 commonHists8thOrderName += fAnalysisLabel->Data();
17545 AliFlowCommonHist *commonHist8th = dynamic_cast<AliFlowCommonHist*>(fHistList->FindObject(commonHists8thOrderName.Data()));
17546 if(commonHist8th) this->SetCommonHists8th(commonHist8th);
17548 TString commonHistResults2ndOrderName = "AliFlowCommonHistResults2ndOrderQC";
17549 commonHistResults2ndOrderName += fAnalysisLabel->Data();
17550 AliFlowCommonHistResults *commonHistRes2nd = dynamic_cast<AliFlowCommonHistResults*>
17551 (fHistList->FindObject(commonHistResults2ndOrderName.Data()));
17552 if(commonHistRes2nd) this->SetCommonHistsResults2nd(commonHistRes2nd);
17553 TString commonHistResults4thOrderName = "AliFlowCommonHistResults4thOrderQC";
17554 commonHistResults4thOrderName += fAnalysisLabel->Data();
17555 AliFlowCommonHistResults *commonHistRes4th = dynamic_cast<AliFlowCommonHistResults*>
17556 (fHistList->FindObject(commonHistResults4thOrderName.Data()));
17557 if(commonHistRes4th) this->SetCommonHistsResults4th(commonHistRes4th);
17558 TString commonHistResults6thOrderName = "AliFlowCommonHistResults6thOrderQC";
17559 commonHistResults6thOrderName += fAnalysisLabel->Data();
17560 AliFlowCommonHistResults *commonHistRes6th = dynamic_cast<AliFlowCommonHistResults*>
17561 (fHistList->FindObject(commonHistResults6thOrderName.Data()));
17562 if(commonHistRes6th) this->SetCommonHistsResults6th(commonHistRes6th);
17563 TString commonHistResults8thOrderName = "AliFlowCommonHistResults8thOrderQC";
17564 commonHistResults8thOrderName += fAnalysisLabel->Data();
17565 AliFlowCommonHistResults *commonHistRes8th = dynamic_cast<AliFlowCommonHistResults*>
17566 (fHistList->FindObject(commonHistResults8thOrderName.Data()));
17567 if(commonHistRes8th) this->SetCommonHistsResults8th(commonHistRes8th);
17569 } // end of void AliFlowAnalysisWithQCumulants::GetPointersForCommonHistograms()
17571 //=======================================================================================================================
17573 void AliFlowAnalysisWithQCumulants::GetPointersForParticleWeightsHistograms()
17575 // Get pointers for histograms with particle weights.
17577 TList *weightsList = dynamic_cast<TList*>(fHistList->FindObject("Weights"));
17578 if(!weightsList){printf("\n WARNING (QC): weightsList is NULL in AFAWQC::GPFPWH() !!!!\n");exit(0);}
17579 this->SetWeightsList(weightsList);
17580 TString fUseParticleWeightsName = "fUseParticleWeightsQC"; // to be improved (hirdwired label QC)
17581 fUseParticleWeightsName += fAnalysisLabel->Data();
17582 TProfile *useParticleWeights = dynamic_cast<TProfile*>(weightsList->FindObject(fUseParticleWeightsName.Data()));
17583 if(useParticleWeights)
17585 this->SetUseParticleWeights(useParticleWeights);
17586 fUsePhiWeights = (Int_t)fUseParticleWeights->GetBinContent(1);
17587 fUsePtWeights = (Int_t)fUseParticleWeights->GetBinContent(2);
17588 fUseEtaWeights = (Int_t)fUseParticleWeights->GetBinContent(3);
17589 fUseTrackWeights = (Int_t)fUseParticleWeights->GetBinContent(4);
17591 } // end of void AliFlowAnalysisWithQCumulants::GetPointersForParticleWeightsHistograms();
17593 //=======================================================================================================================
17595 void AliFlowAnalysisWithQCumulants::GetPointersForIntFlowHistograms()
17597 // Get pointers for histograms and profiles relevant for integrated flow:
17598 // a) Get pointer to base list for integrated flow holding profile fIntFlowFlags and lists fIntFlowProfiles and fIntFlowResults.
17599 // b) Get pointer to profile fIntFlowFlags holding all flags for integrated flow.
17600 // c) Get pointer to list fIntFlowProfiles and pointers to all objects that she holds.
17601 // d) Get pointer to list fIntFlowResults and pointers to all objects that she holds.
17603 TString sinCosFlag[2] = {"sin","cos"}; // to be improved (should I promote this to data member?)
17604 TString powerFlag[2] = {"linear","quadratic"}; // to be improved (should I promote this to data member?)
17605 TString correlationFlag[4] = {"#LT#LT2#GT#GT","#LT#LT4#GT#GT","#LT#LT6#GT#GT","#LT#LT8#GT#GT"}; // to be improved (should I promote this to data member?)
17606 TString squaredCorrelationFlag[4] = {"#LT#LT2#GT^{2}#GT","#LT#LT4#GT^{2}#GT","#LT#LT6#GT^{2}#GT","#LT#LT8#GT^{2}#GT"}; // to be improved (should I promote this to data member?)
17608 // a) Get pointer to base list for integrated flow holding profile fIntFlowFlags and lists fIntFlowProfiles and fIntFlowResults:
17609 TList *intFlowList = NULL;
17610 intFlowList = dynamic_cast<TList*>(fHistList->FindObject("Integrated Flow"));
17613 cout<<"WARNING: intFlowList is NULL in AFAWQC::GPFIFH() !!!!"<<endl;
17617 // b) Get pointer to profile fIntFlowFlags holding all flags for integrated flow:
17618 TString intFlowFlagsName = "fIntFlowFlags";
17619 intFlowFlagsName += fAnalysisLabel->Data();
17620 TProfile *intFlowFlags = dynamic_cast<TProfile*>(intFlowList->FindObject(intFlowFlagsName.Data()));
17623 this->SetIntFlowFlags(intFlowFlags);
17624 fApplyCorrectionForNUA = (Bool_t)intFlowFlags->GetBinContent(3);
17625 fApplyCorrectionForNUAVsM = (Bool_t)intFlowFlags->GetBinContent(8);
17626 fCalculateCumulantsVsM = (Bool_t)intFlowFlags->GetBinContent(10);
17629 cout<<"WARNING: intFlowFlags is NULL in FAWQC::GPFIFH() !!!!"<<endl;
17632 // c) Get pointer to list fIntFlowProfiles and pointers to all objects that she holds:
17633 TList *intFlowProfiles = NULL;
17634 intFlowProfiles = dynamic_cast<TList*>(intFlowList->FindObject("Profiles"));
17635 if(intFlowProfiles)
17637 // average multiplicities:
17638 TString avMultiplicityName = "fAvMultiplicity";
17639 avMultiplicityName += fAnalysisLabel->Data();
17640 TProfile *avMultiplicity = dynamic_cast<TProfile*>(intFlowProfiles->FindObject(avMultiplicityName.Data()));
17643 this->SetAvMultiplicity(avMultiplicity);
17646 cout<<"WARNING: avMultiplicity is NULL in AFAWQC::GPFIFH() !!!!"<<endl;
17648 // average correlations <<2>>, <<4>>, <<6>> and <<8>> (with wrong errors!):
17649 TString intFlowCorrelationsProName = "fIntFlowCorrelationsPro";
17650 intFlowCorrelationsProName += fAnalysisLabel->Data();
17651 TProfile *intFlowCorrelationsPro = dynamic_cast<TProfile*>(intFlowProfiles->FindObject(intFlowCorrelationsProName.Data()));
17652 if(intFlowCorrelationsPro)
17654 this->SetIntFlowCorrelationsPro(intFlowCorrelationsPro);
17657 cout<<"WARNING: intFlowCorrelationsPro is NULL in AFAWQC::GPFIFH() !!!!"<<endl;
17659 // average squared correlations <<2>^2>, <<4>^2>, <<6>^2> and <<8^2>>:
17660 TString intFlowSquaredCorrelationsProName = "fIntFlowSquaredCorrelationsPro";
17661 intFlowSquaredCorrelationsProName += fAnalysisLabel->Data();
17662 TProfile *intFlowSquaredCorrelationsPro = dynamic_cast<TProfile*>(intFlowProfiles->FindObject(intFlowSquaredCorrelationsProName.Data()));
17663 if(intFlowSquaredCorrelationsPro)
17665 this->SetIntFlowSquaredCorrelationsPro(intFlowSquaredCorrelationsPro);
17668 cout<<"WARNING: intFlowSquaredCorrelationsPro is NULL in AFAWQC::GPFIFH() !!!!"<<endl;
17670 if(fCalculateCumulantsVsM)
17672 // Average correlations <<2>>, <<4>>, <<6>> and <<8>> versus multiplicity for all events (error is wrong here):
17673 TString intFlowCorrelationsVsMProName = "fIntFlowCorrelationsVsMPro";
17674 intFlowCorrelationsVsMProName += fAnalysisLabel->Data();
17675 for(Int_t ci=0;ci<4;ci++) // correlation index
17677 TProfile *intFlowCorrelationsVsMPro = dynamic_cast<TProfile*>
17678 (intFlowProfiles->FindObject(Form("%s, %s",intFlowCorrelationsVsMProName.Data(),correlationFlag[ci].Data())));
17679 if(intFlowCorrelationsVsMPro)
17681 this->SetIntFlowCorrelationsVsMPro(intFlowCorrelationsVsMPro,ci);
17684 cout<<"WARNING: "<<Form("intFlowCorrelationsVsMPro[%d]",ci)<<" is NULL in AFAWQC::GPFIFH() !!!!"<<endl;
17686 } // end of for(Int_t ci=0;ci<4;ci++) // correlation index
17687 // Average squared correlations <<2>^2>, <<4>^2>, <<6>^2> and <<8>^2> versus multiplicity for all events:
17688 TString intFlowSquaredCorrelationsVsMProName = "fIntFlowSquaredCorrelationsVsMPro";
17689 intFlowSquaredCorrelationsVsMProName += fAnalysisLabel->Data();
17690 for(Int_t ci=0;ci<4;ci++) // correlation index
17692 TProfile *intFlowSquaredCorrelationsVsMPro = dynamic_cast<TProfile*>
17693 (intFlowProfiles->FindObject(Form("%s, %s",intFlowSquaredCorrelationsVsMProName.Data(),squaredCorrelationFlag[ci].Data())));
17694 if(intFlowSquaredCorrelationsVsMPro)
17696 this->SetIntFlowSquaredCorrelationsVsMPro(intFlowSquaredCorrelationsVsMPro,ci);
17699 cout<<"WARNING: "<<Form("intFlowSquaredCorrelationsVsMPro[%d]",ci)<<" is NULL in AFAWQC::GPFIFH() !!!!"<<endl;
17701 } // end of for(Int_t ci=0;ci<4;ci++) // correlation index
17702 } // end of if(fCalculateCumulantsVsM)
17703 // average all correlations for integrated flow (with wrong errors!):
17704 TString intFlowCorrelationsAllProName = "fIntFlowCorrelationsAllPro";
17705 intFlowCorrelationsAllProName += fAnalysisLabel->Data();
17706 TProfile *intFlowCorrelationsAllPro = dynamic_cast<TProfile*>(intFlowProfiles->FindObject(intFlowCorrelationsAllProName.Data()));
17707 if(intFlowCorrelationsAllPro)
17709 this->SetIntFlowCorrelationsAllPro(intFlowCorrelationsAllPro);
17712 cout<<"WARNING: intFlowCorrelationsAllPro is NULL in AFAWQC::GPFIFH() !!!!"<<endl;
17714 // average extra correlations for integrated flow (which appear only when particle weights are used):
17715 // (to be improved: Weak point in implementation, I am assuming here that method GetPointersForParticleWeightsHistograms() was called)
17716 if(fUsePhiWeights||fUsePtWeights||fUseEtaWeights||fUseTrackWeights)
17718 TString intFlowExtraCorrelationsProName = "fIntFlowExtraCorrelationsPro";
17719 intFlowExtraCorrelationsProName += fAnalysisLabel->Data();
17720 TProfile *intFlowExtraCorrelationsPro = dynamic_cast<TProfile*>(intFlowProfiles->FindObject(intFlowExtraCorrelationsProName.Data()));
17721 if(intFlowExtraCorrelationsPro)
17723 this->SetIntFlowExtraCorrelationsPro(intFlowExtraCorrelationsPro);
17726 cout<<"WARNING: intFlowExtraCorrelationsPro is NULL in AFAWQC::GPFIFH() !!!!"<<endl;
17728 } // end of if(fUsePhiWeights||fUsePtWeights||fUseEtaWeights||fUseTrackWeights)
17729 // average products of correlations <2>, <4>, <6> and <8>:
17730 TString intFlowProductOfCorrelationsProName = "fIntFlowProductOfCorrelationsPro";
17731 intFlowProductOfCorrelationsProName += fAnalysisLabel->Data();
17732 TProfile *intFlowProductOfCorrelationsPro = dynamic_cast<TProfile*>(intFlowProfiles->FindObject(intFlowProductOfCorrelationsProName.Data()));
17733 if(intFlowProductOfCorrelationsPro)
17735 this->SetIntFlowProductOfCorrelationsPro(intFlowProductOfCorrelationsPro);
17738 cout<<"WARNING: intFlowProductOfCorrelationsPro is NULL in AFAWQC::GPFIFH() !!!!"<<endl;
17740 // average product of correlations <2>, <4>, <6> and <8> versus multiplicity
17741 // [0=<<2><4>>,1=<<2><6>>,2=<<2><8>>,3=<<4><6>>,4=<<4><8>>,5=<<6><8>>]
17742 if(fCalculateCumulantsVsM)
17744 TString intFlowProductOfCorrelationsVsMProName = "fIntFlowProductOfCorrelationsVsMPro";
17745 intFlowProductOfCorrelationsVsMProName += fAnalysisLabel->Data();
17746 TString productFlag[6] = {"#LT#LT2#GT#LT4#GT#GT","#LT#LT2#GT#LT6#GT#GT","#LT#LT2#GT#LT8#GT#GT",
17747 "#LT#LT4#GT#LT6#GT#GT","#LT#LT4#GT#LT8#GT#GT","#LT#LT6#GT#LT8#GT#GT"};
17748 for(Int_t pi=0;pi<6;pi++)
17750 TProfile *intFlowProductOfCorrelationsVsMPro = dynamic_cast<TProfile*>(intFlowProfiles->FindObject(Form("%s, %s",intFlowProductOfCorrelationsVsMProName.Data(),productFlag[pi].Data())));
17751 if(intFlowProductOfCorrelationsVsMPro)
17753 this->SetIntFlowProductOfCorrelationsVsMPro(intFlowProductOfCorrelationsVsMPro,pi);
17756 cout<<"WARNING: "<<Form("intFlowProductOfCorrelationsVsMPro[%d]",pi)<<" is NULL in AFAWQC::GPFIFH() !!!!"<<endl;
17758 } // end of for(Int_t pi=0;pi<6;pi++)
17759 } // end of if(fCalculateCumulantsVsM)
17760 // average correction terms for non-uniform acceptance (with wrong errors!):
17761 for(Int_t sc=0;sc<2;sc++)
17763 TString intFlowCorrectionTermsForNUAProName = "fIntFlowCorrectionTermsForNUAPro";
17764 intFlowCorrectionTermsForNUAProName += fAnalysisLabel->Data();
17765 TProfile *intFlowCorrectionTermsForNUAPro = dynamic_cast<TProfile*>(intFlowProfiles->FindObject((Form("%s: %s terms",intFlowCorrectionTermsForNUAProName.Data(),sinCosFlag[sc].Data()))));
17766 if(intFlowCorrectionTermsForNUAPro)
17768 this->SetIntFlowCorrectionTermsForNUAPro(intFlowCorrectionTermsForNUAPro,sc);
17771 cout<<"WARNING: intFlowCorrectionTermsForNUAPro is NULL in AFAWQC::GPFIFH() !!!!"<<endl;
17772 cout<<"sc = "<<sc<<endl;
17774 // versus multiplicity:
17775 if(fCalculateCumulantsVsM)
17777 TString correctionTermFlag[4] = {"(n(phi1))","(n(phi1+phi2))","(n(phi1-phi2-phi3))","(n(2phi1-phi2))"}; // to be improved - hardwired 4
17778 TString intFlowCorrectionTermsForNUAVsMProName = "fIntFlowCorrectionTermsForNUAVsMPro";
17779 intFlowCorrectionTermsForNUAVsMProName += fAnalysisLabel->Data();
17780 for(Int_t ci=0;ci<4;ci++) // correction term index (to be improved - hardwired 4)
17782 TProfile *intFlowCorrectionTermsForNUAVsMPro = dynamic_cast<TProfile*>(intFlowProfiles->FindObject(Form("%s: #LT#LT%s%s#GT#GT",intFlowCorrectionTermsForNUAVsMProName.Data(),sinCosFlag[sc].Data(),correctionTermFlag[ci].Data())));
17783 if(intFlowCorrectionTermsForNUAVsMPro)
17785 this->SetIntFlowCorrectionTermsForNUAVsMPro(intFlowCorrectionTermsForNUAVsMPro,sc,ci);
17788 cout<<"WARNING: intFlowCorrectionTermsForNUAVsMPro is NULL in AFAWQC::GPFIFH() !!!!"<<endl;
17789 cout<<"sc = "<<sc<<endl;
17790 cout<<"ci = "<<ci<<endl;
17792 } // end of for(Int_t ci=0;ci<4;ci++) // correction term index (to be improved - hardwired 4)
17793 } // end of if(fCalculateCumulantsVsM)
17794 } // end of for(Int_t sc=0;sc<2;sc++)
17795 // average products of correction terms for NUA:
17796 TString intFlowProductOfCorrectionTermsForNUAProName = "fIntFlowProductOfCorrectionTermsForNUAPro";
17797 intFlowProductOfCorrectionTermsForNUAProName += fAnalysisLabel->Data();
17798 TProfile *intFlowProductOfCorrectionTermsForNUAPro = dynamic_cast<TProfile*>(intFlowProfiles->FindObject(intFlowProductOfCorrectionTermsForNUAProName.Data()));
17799 if(intFlowProductOfCorrectionTermsForNUAPro)
17801 this->SetIntFlowProductOfCorrectionTermsForNUAPro(intFlowProductOfCorrectionTermsForNUAPro);
17804 cout<<"WARNING: intFlowProductOfCorrectionTermsForNUAPro is NULL in AFAWQC::GPFIFH() !!!!"<<endl;
17806 } else // to if(intFlowProfiles)
17808 cout<<"WARNING: intFlowProfiles is NULL in AFAWQC::GPFIFH() !!!!"<<endl;
17811 // d) Get pointer to list fIntFlowResults and pointers to all objects that she holds.
17812 TList *intFlowResults = NULL;
17813 intFlowResults = dynamic_cast<TList*>(intFlowList->FindObject("Results"));
17816 // average correlations <<2>>, <<4>>, <<6>> and <<8>> (with correct errors!):
17817 TString intFlowCorrelationsHistName = "fIntFlowCorrelationsHist";
17818 intFlowCorrelationsHistName += fAnalysisLabel->Data();
17819 TH1D *intFlowCorrelationsHist = dynamic_cast<TH1D*>(intFlowResults->FindObject(intFlowCorrelationsHistName.Data()));
17820 if(intFlowCorrelationsHist)
17822 this->SetIntFlowCorrelationsHist(intFlowCorrelationsHist);
17825 cout<<"WARNING: intFlowCorrelationsHist is NULL in AFAWQC::GPFIFH() !!!!"<<endl;
17827 // average correlations <<2>>, <<4>>, <<6>> and <<8>> (with correct errors!) vs M:
17828 if(fCalculateCumulantsVsM)
17830 TString intFlowCorrelationsVsMHistName = "fIntFlowCorrelationsVsMHist";
17831 intFlowCorrelationsVsMHistName += fAnalysisLabel->Data();
17832 for(Int_t ci=0;ci<4;ci++) // correlation index
17834 TH1D *intFlowCorrelationsVsMHist = dynamic_cast<TH1D*>
17835 (intFlowResults->FindObject(Form("%s, %s",intFlowCorrelationsVsMHistName.Data(),correlationFlag[ci].Data())));
17836 if(intFlowCorrelationsVsMHist)
17838 this->SetIntFlowCorrelationsVsMHist(intFlowCorrelationsVsMHist,ci);
17841 cout<<"WARNING: "<<Form("intFlowCorrelationsVsMHist[%d]",ci)<<" is NULL in AFAWQC::GPFIFH() !!!!"<<endl;
17843 } // end of for(Int_t ci=0;ci<4;ci++) // correlation index
17844 } // end of if(fCalculateCumulantsVsM)
17845 // average all correlations for integrated flow (with correct errors!):
17846 TString intFlowCorrelationsAllHistName = "fIntFlowCorrelationsAllHist";
17847 intFlowCorrelationsAllHistName += fAnalysisLabel->Data();
17848 TH1D *intFlowCorrelationsAllHist = dynamic_cast<TH1D*>(intFlowResults->FindObject(intFlowCorrelationsAllHistName.Data()));
17849 if(intFlowCorrelationsAllHist)
17851 this->SetIntFlowCorrelationsAllHist(intFlowCorrelationsAllHist);
17854 cout<<"WARNING: intFlowCorrelationsAllHist is NULL in AFAWQC::GPFIFH() !!!!"<<endl;
17856 // average correction terms for non-uniform acceptance (with correct errors!):
17857 TString intFlowCorrectionTermsForNUAHistName = "fIntFlowCorrectionTermsForNUAHist";
17858 intFlowCorrectionTermsForNUAHistName += fAnalysisLabel->Data();
17859 for(Int_t sc=0;sc<2;sc++)
17861 TH1D *intFlowCorrectionTermsForNUAHist = dynamic_cast<TH1D*>(intFlowResults->FindObject((Form("%s: %s terms",intFlowCorrectionTermsForNUAHistName.Data(),sinCosFlag[sc].Data()))));
17862 if(intFlowCorrectionTermsForNUAHist)
17864 this->SetIntFlowCorrectionTermsForNUAHist(intFlowCorrectionTermsForNUAHist,sc);
17867 cout<<"WARNING: intFlowCorrectionTermsForNUAHist is NULL in AFAWQC::GPFIFH() !!!!"<<endl;
17868 cout<<"sc = "<<sc<<endl;
17870 } // end of for(Int_t sc=0;sc<2;sc++)
17871 // covariances (multiplied with weight dependent prefactor):
17872 TString intFlowCovariancesName = "fIntFlowCovariances";
17873 intFlowCovariancesName += fAnalysisLabel->Data();
17874 TH1D *intFlowCovariances = dynamic_cast<TH1D*>(intFlowResults->FindObject(intFlowCovariancesName.Data()));
17875 if(intFlowCovariances)
17877 this->SetIntFlowCovariances(intFlowCovariances);
17880 cout<<"WARNING: intFlowCovariances is NULL in AFAWQC::GPFIFH() !!!!"<<endl;
17882 // sum of linear and quadratic event weights for <2>, <4>, <6> and <8>:
17883 TString intFlowSumOfEventWeightsName = "fIntFlowSumOfEventWeights";
17884 intFlowSumOfEventWeightsName += fAnalysisLabel->Data();
17885 for(Int_t power=0;power<2;power++)
17887 TH1D *intFlowSumOfEventWeights = dynamic_cast<TH1D*>(intFlowResults->FindObject(Form("%s: %s",intFlowSumOfEventWeightsName.Data(),powerFlag[power].Data())));
17888 if(intFlowSumOfEventWeights)
17890 this->SetIntFlowSumOfEventWeights(intFlowSumOfEventWeights,power);
17893 cout<<"WARNING: intFlowSumOfEventWeights is NULL in AFAWQC::GPFIFH() !!!!"<<endl;
17894 cout<<"power = "<<power<<endl;
17896 } // end of for(Int_t power=0;power<2;power++)
17897 // sum of products of event weights for correlations <2>, <4>, <6> and <8>:
17898 TString intFlowSumOfProductOfEventWeightsName = "fIntFlowSumOfProductOfEventWeights";
17899 intFlowSumOfProductOfEventWeightsName += fAnalysisLabel->Data();
17900 TH1D *intFlowSumOfProductOfEventWeights = dynamic_cast<TH1D*>(intFlowResults->FindObject(intFlowSumOfProductOfEventWeightsName.Data()));
17901 if(intFlowSumOfProductOfEventWeights)
17903 this->SetIntFlowSumOfProductOfEventWeights(intFlowSumOfProductOfEventWeights);
17906 cout<<"WARNING: intFlowSumOfProductOfEventWeights is NULL in AFAWQC::GPFIFH() !!!!"<<endl;
17908 // final result for covariances of correlations (multiplied with weight dependent prefactor) versus M
17909 // [0=Cov(2,4),1=Cov(2,6),2=Cov(2,8),3=Cov(4,6),4=Cov(4,8),5=Cov(6,8)]:
17910 if(fCalculateCumulantsVsM)
17912 TString intFlowCovariancesVsMName = "fIntFlowCovariancesVsM";
17913 intFlowCovariancesVsMName += fAnalysisLabel->Data();
17914 TString covarianceFlag[6] = {"Cov(<2>,<4>)","Cov(<2>,<6>)","Cov(<2>,<8>)","Cov(<4>,<6>)","Cov(<4>,<8>)","Cov(<6>,<8>)"};
17915 for(Int_t ci=0;ci<6;ci++)
17917 TH1D *intFlowCovariancesVsM = dynamic_cast<TH1D*>(intFlowResults->FindObject(Form("%s, %s",intFlowCovariancesVsMName.Data(),covarianceFlag[ci].Data())));
17918 if(intFlowCovariancesVsM)
17920 this->SetIntFlowCovariancesVsM(intFlowCovariancesVsM,ci);
17923 cout<<"WARNING: "<<Form("intFlowCovariancesVsM[%d]",ci)<<" is NULL in AFAWQC::GPFIFH() !!!!"<<endl;
17925 } // end of for(Int_t ci=0;ci<6;ci++)
17926 } // end of if(fCalculateCumulantsVsM)
17927 // sum of linear and quadratic event weights for <2>, <4>, <6> and <8> versus multiplicity
17928 // [0=sum{w_{<2>}},1=sum{w_{<4>}},2=sum{w_{<6>}},3=sum{w_{<8>}}][0=linear 1,1=quadratic]:
17929 if(fCalculateCumulantsVsM)
17931 TString intFlowSumOfEventWeightsVsMName = "fIntFlowSumOfEventWeightsVsM";
17932 intFlowSumOfEventWeightsVsMName += fAnalysisLabel->Data();
17933 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>}"},
17934 {"#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}"}};
17935 for(Int_t si=0;si<4;si++)
17937 for(Int_t power=0;power<2;power++)
17939 TH1D *intFlowSumOfEventWeightsVsM = dynamic_cast<TH1D*>(intFlowResults->FindObject(Form("%s, %s",intFlowSumOfEventWeightsVsMName.Data(),sumFlag[power][si].Data())));
17940 if(intFlowSumOfEventWeightsVsM)
17942 this->SetIntFlowSumOfEventWeightsVsM(intFlowSumOfEventWeightsVsM,si,power);
17945 cout<<"WARNING: "<<Form("intFlowSumOfEventWeightsVsM[%d][%d]",si,power)<<" is NULL in AFAWQC::GPFIFH() !!!!"<<endl;
17947 } // end of for(Int_t power=0;power<2;power++)
17948 } // end of for(Int_t si=0;si<4;si++)
17949 } // end of if(fCalculateCumulantsVsM)
17950 // sum of products of event weights for correlations <2>, <4>, <6> and <8> vs M
17951 // [0=sum{w_{<2>}w_{<4>}},1=sum{w_{<2>}w_{<6>}},2=sum{w_{<2>}w_{<8>}},
17952 // 3=sum{w_{<4>}w_{<6>}},4=sum{w_{<4>}w_{<8>}},5=sum{w_{<6>}w_{<8>}}]:
17953 if(fCalculateCumulantsVsM)
17955 TString intFlowSumOfProductOfEventWeightsVsMName = "fIntFlowSumOfProductOfEventWeightsVsM";
17956 intFlowSumOfProductOfEventWeightsVsMName += fAnalysisLabel->Data();
17957 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>}",
17958 "#sum_{i=1}^{N} w_{<4>} w_{<6>}","#sum_{i=1}^{N} w_{<4>} w_{<8>}","#sum_{i=1}^{N} w_{<6>} w_{<8>}"};
17959 for(Int_t pi=0;pi<6;pi++)
17961 TH1D *intFlowSumOfProductOfEventWeightsVsM = dynamic_cast<TH1D*>(intFlowResults->FindObject(Form("%s, %s",intFlowSumOfProductOfEventWeightsVsMName.Data(),sopowFlag[pi].Data())));
17962 if(intFlowSumOfProductOfEventWeightsVsM)
17964 this->SetIntFlowSumOfProductOfEventWeightsVsM(intFlowSumOfProductOfEventWeightsVsM,pi);
17967 cout<<"WARNING: "<<Form("intFlowSumOfProductOfEventWeightsVsM[%d]",pi)<<" is NULL in AFAWQC::GPFIFH() !!!!"<<endl;
17969 } // end of for(Int_t pi=0;pi<6;pi++)
17970 } // end of if(fCalculateCumulantsVsM)
17971 // covariances for NUA (multiplied with weight dependent prefactor):
17972 TString intFlowCovariancesNUAName = "fIntFlowCovariancesNUA";
17973 intFlowCovariancesNUAName += fAnalysisLabel->Data();
17974 TH1D *intFlowCovariancesNUA = dynamic_cast<TH1D*>(intFlowResults->FindObject(intFlowCovariancesNUAName.Data()));
17975 if(intFlowCovariancesNUA)
17977 this->SetIntFlowCovariancesNUA(intFlowCovariancesNUA);
17980 cout<<"WARNING: intFlowCovariancesNUA is NULL in AFAWQC::GPFIFH() !!!!"<<endl;
17982 // sum of linear and quadratic event weights NUA terms:
17983 TString intFlowSumOfEventWeightsNUAName = "fIntFlowSumOfEventWeightsNUA";
17984 intFlowSumOfEventWeightsNUAName += fAnalysisLabel->Data();
17985 for(Int_t sc=0;sc<2;sc++)
17987 for(Int_t power=0;power<2;power++)
17989 TH1D *intFlowSumOfEventWeightsNUA = dynamic_cast<TH1D*>(intFlowResults->FindObject(Form("%s: %s, %s",intFlowSumOfEventWeightsNUAName.Data(),powerFlag[power].Data(),sinCosFlag[sc].Data())));
17990 if(intFlowSumOfEventWeightsNUA)
17992 this->SetIntFlowSumOfEventWeightsNUA(intFlowSumOfEventWeightsNUA,sc,power);
17995 cout<<"WARNING: intFlowSumOfEventWeightsNUA is NULL in AFAWQC::GPFIFH() !!!!"<<endl;
17996 cout<<"sc = "<<sc<<endl;
17997 cout<<"power = "<<power<<endl;
17999 } // end of for(Int_t power=0;power<2;power++)
18000 } // end of for(Int_t sc=0;sc<2;sc++)
18001 // sum of products of event weights for NUA terms:
18002 TString intFlowSumOfProductOfEventWeightsNUAName = "fIntFlowSumOfProductOfEventWeightsNUA";
18003 intFlowSumOfProductOfEventWeightsNUAName += fAnalysisLabel->Data();
18004 TH1D *intFlowSumOfProductOfEventWeightsNUA = dynamic_cast<TH1D*>(intFlowResults->FindObject(intFlowSumOfProductOfEventWeightsNUAName.Data()));
18005 if(intFlowSumOfProductOfEventWeightsNUA)
18007 this->SetIntFlowSumOfProductOfEventWeightsNUA(intFlowSumOfProductOfEventWeightsNUA);
18010 cout<<"WARNING: intFlowSumOfProductOfEventWeightsNUA is NULL in AFAWQC::GPFIFH() !!!!"<<endl;
18012 // Final results for reference Q-cumulants:
18013 TString intFlowQcumulantsName = "fIntFlowQcumulants";
18014 intFlowQcumulantsName += fAnalysisLabel->Data();
18015 TH1D *intFlowQcumulants = dynamic_cast<TH1D*>(intFlowResults->FindObject(intFlowQcumulantsName.Data()));
18016 if(intFlowQcumulants)
18018 this->SetIntFlowQcumulants(intFlowQcumulants);
18021 cout<<"WARNING: intFlowQcumulants is NULL in AFAWQC::GPFIFH() !!!!"<<endl;
18023 // Final results for reference Q-cumulants rebinned in M:
18024 if(fCalculateCumulantsVsM)
18026 TString intFlowQcumulantsRebinnedInMName = "fIntFlowQcumulantsRebinnedInM";
18027 intFlowQcumulantsRebinnedInMName += fAnalysisLabel->Data();
18028 TH1D *intFlowQcumulantsRebinnedInM = dynamic_cast<TH1D*>(intFlowResults->FindObject(intFlowQcumulantsRebinnedInMName.Data()));
18029 if(intFlowQcumulantsRebinnedInM)
18031 this->SetIntFlowQcumulantsRebinnedInM(intFlowQcumulantsRebinnedInM);
18034 cout<<"WARNING: intFlowQcumulantsRebinnedInM is NULL in AFAWQC::GPFIFH() !!!!"<<endl;
18036 } // end of if(fCalculateCumulantsVsM)
18037 // Ratio between error squared: with/without non-isotropic terms:
18038 TString intFlowQcumulantsErrorSquaredRatioName = "fIntFlowQcumulantsErrorSquaredRatio";
18039 intFlowQcumulantsErrorSquaredRatioName += fAnalysisLabel->Data();
18040 TH1D *intFlowQcumulantsErrorSquaredRatio = dynamic_cast<TH1D*>(intFlowResults->FindObject(intFlowQcumulantsErrorSquaredRatioName.Data()));
18041 if(intFlowQcumulantsErrorSquaredRatio)
18043 this->SetIntFlowQcumulantsErrorSquaredRatio(intFlowQcumulantsErrorSquaredRatio);
18046 cout<<" WARNING: intntFlowQcumulantsErrorSquaredRatio is NULL in AFAWQC::GPFIFH() !!!!"<<endl;
18048 // final results for integrated Q-cumulants versus multiplicity:
18049 TString cumulantFlag[4] = {"QC{2}","QC{4}","QC{6}","QC{8}"};
18050 if(fCalculateCumulantsVsM)
18052 TString intFlowQcumulantsVsMName = "fIntFlowQcumulantsVsM";
18053 intFlowQcumulantsVsMName += fAnalysisLabel->Data();
18054 for(Int_t co=0;co<4;co++) // cumulant order
18056 TH1D *intFlowQcumulantsVsM = dynamic_cast<TH1D*>
18057 (intFlowResults->FindObject(Form("%s, %s",intFlowQcumulantsVsMName.Data(),cumulantFlag[co].Data())));
18058 if(intFlowQcumulantsVsM)
18060 this->SetIntFlowQcumulantsVsM(intFlowQcumulantsVsM,co);
18063 cout<<"WARNING: "<<Form("intFlowQcumulantsVsM[%d]",co)<<" is NULL in AFAWQC::GPFIFH() !!!!"<<endl;
18065 } // end of for(Int_t co=0;co<4;co++) // cumulant order
18066 } // end of if(fCalculateCumulantsVsM)
18067 // Final reference flow estimates from Q-cumulants:
18068 TString intFlowName = "fIntFlow";
18069 intFlowName += fAnalysisLabel->Data();
18070 TH1D *intFlow = dynamic_cast<TH1D*>(intFlowResults->FindObject(intFlowName.Data()));
18073 this->SetIntFlow(intFlow);
18076 cout<<"WARNING: intFlow is NULL in AFAWQC::GPFIFH() !!!!"<<endl;
18078 // Final reference flow estimates from Q-cumulants vs M rebinned in M:
18079 if(fCalculateCumulantsVsM)
18081 TString intFlowRebinnedInMName = "fIntFlowRebinnedInM";
18082 intFlowRebinnedInMName += fAnalysisLabel->Data();
18083 TH1D *intFlowRebinnedInM = dynamic_cast<TH1D*>(intFlowResults->FindObject(intFlowRebinnedInMName.Data()));
18084 if(intFlowRebinnedInM)
18086 this->SetIntFlowRebinnedInM(intFlowRebinnedInM);
18089 cout<<"WARNING: intFlowRebinnedInM is NULL in AFAWQC::GPFIFH() !!!!"<<endl;
18091 } // end of if(fCalculateCumulantsVsM)
18092 // integrated flow from Q-cumulants versus multiplicity:
18093 if(fCalculateCumulantsVsM)
18095 TString intFlowVsMName = "fIntFlowVsM";
18096 intFlowVsMName += fAnalysisLabel->Data();
18097 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)};
18098 for(Int_t co=0;co<4;co++) // cumulant order
18100 TH1D *intFlowVsM = dynamic_cast<TH1D*>
18101 (intFlowResults->FindObject(Form("%s, %s",intFlowVsMName.Data(),flowFlag[co].Data())));
18104 this->SetIntFlowVsM(intFlowVsM,co);
18107 cout<<"WARNING: "<<Form("intFlowVsM[%d]",co)<<" is NULL in AFAWQC::GPFIFH() !!!!"<<endl;
18109 } // end of for(Int_t co=0;co<4;co++) // cumulant order
18110 } // end of if(fCalculateCumulantsVsM)
18111 // quantifying detector effects effects to correlations:
18112 TString intFlowDetectorBiasName = "fIntFlowDetectorBias";
18113 intFlowDetectorBiasName += fAnalysisLabel->Data();
18114 TH1D *intFlowDetectorBias = dynamic_cast<TH1D*>(intFlowResults->FindObject(intFlowDetectorBiasName.Data()));
18115 if(intFlowDetectorBias)
18117 this->SetIntFlowDetectorBias(intFlowDetectorBias);
18120 cout<<"WARNING: intFlowDetectorBias is NULL in AFAWQC::GPFIFH() !!!!"<<endl;
18122 // quantifying detector effects effects to correlations vs multiplicity:
18123 if(fCalculateCumulantsVsM)
18125 TString intFlowDetectorBiasVsMName = "fIntFlowDetectorBiasVsM";
18126 intFlowDetectorBiasVsMName += fAnalysisLabel->Data();
18127 for(Int_t ci=0;ci<4;ci++) // correlation index
18129 TH1D *intFlowDetectorBiasVsM = dynamic_cast<TH1D*>
18130 (intFlowResults->FindObject(Form("%s for %s",intFlowDetectorBiasVsMName.Data(),cumulantFlag[ci].Data())));
18131 if(intFlowDetectorBiasVsM)
18133 this->SetIntFlowDetectorBiasVsM(intFlowDetectorBiasVsM,ci);
18136 cout<<"WARNING: "<<Form("intFlowDetectorBiasVsM[%d]",ci)<<" is NULL in AFAWQC::GPFIFH() !!!!"<<endl;
18138 } // end of for(Int_t ci=0;ci<4;ci++) // correlation index
18139 } // end of if(fCalculateCumulantsVsM)
18140 } else // to if(intFlowResults)
18142 cout<<"WARNING: intFlowResults is NULL in AFAWQC::GPFIFH() !!!!"<<endl;
18145 } // end of void AliFlowAnalysisWithQCumulants::GetPointersForIntFlowHistograms()
18147 //=======================================================================================================================
18149 void AliFlowAnalysisWithQCumulants::GetPointersFor2DDiffFlowHistograms()
18151 // Get pointers for 2D differential flow histograms.
18152 // a) Check pointers used in this method;
18153 // b) Get pointers to 2D differential flow lists;
18154 // c) Get pointers to 2D differential flow profiles;
18155 // d) Get pointers to 2D differential flow histograms.
18157 // a) Check pointers used in this method:
18160 printf("\n WARNING (QC): fDiffFlowList is NULL in AFAWQC::GPF2DDFH() !!!!\n");
18161 printf(" Call method GetPointersForDiffFlowHistograms() first.\n\n");
18164 if(!fDiffFlowFlags)
18166 printf("\n WARNING (QC): fDiffFlowFlags is NULL in AFAWQC::GPF2DDFH() !!!!\n\n");
18167 printf(" Call method GetPointersForDiffFlowHistograms() first.\n\n");
18171 // b) Get pointers to 2D differential flow lists:
18172 this->SetCalculate2DDiffFlow((Bool_t)fDiffFlowFlags->GetBinContent(5)); // to be improved - hardwired 5
18173 if(!fCalculate2DDiffFlow){return;}
18174 TString typeFlag[2] = {"RP","POI"};
18175 TString reducedCorrelationIndex[4] = {"<2'>","<4'>","<6'>","<8'>"};
18176 TString differentialCumulantIndex[4] = {"QC{2'}","QC{4'}","QC{6'}","QC{8'}"};
18177 TString differentialFlowIndex[4] = {"v'{2}","v'{4}","v'{6}","v'{8}"};
18179 TString diffFlow2DListName = "2D";
18180 diffFlow2DListName += fAnalysisLabel->Data();
18181 fDiffFlow2D = dynamic_cast<TList*>(fDiffFlowList->FindObject(diffFlow2DListName.Data()));
18184 printf("\n WARNING (QC): fDiffFlow2D is NULL in AFAWQC::GPFDFH() !!!!\n\n");
18187 // Lists holding profiles with 2D correlations:
18188 TString s2DDiffFlowCorrelationsProListName = "Profiles with 2D correlations";
18189 s2DDiffFlowCorrelationsProListName += fAnalysisLabel->Data(); // to be improved
18190 for(Int_t t=0;t<2;t++)
18192 f2DDiffFlowCorrelationsProList[t] = dynamic_cast<TList*>(fDiffFlow2D->FindObject(Form("Profiles with 2D correlations (%s)",typeFlag[t].Data())));
18193 if(!f2DDiffFlowCorrelationsProList[t])
18195 printf("\n WARNING (QC): f2DDiffFlowCorrelationsProList[%i] is NULL in AFAWQC::GPF2DFH() !!!!\n\n",t);
18198 } // end of for(Int_t t=0;t<2;t++)
18200 // c) Get pointers to 2D differential flow profiles:
18201 TString s2DDiffFlowCorrelationsProName = "f2DDiffFlowCorrelationsPro";
18202 s2DDiffFlowCorrelationsProName += fAnalysisLabel->Data();
18203 for(Int_t t=0;t<2;t++) // type: RP or POI
18205 for(Int_t rci=0;rci<4;rci++) // reduced correlation index
18207 f2DDiffFlowCorrelationsPro[t][rci] = dynamic_cast<TProfile2D*>(f2DDiffFlowCorrelationsProList[t]->FindObject(Form("%s, %s, %s",s2DDiffFlowCorrelationsProName.Data(),typeFlag[t].Data(),reducedCorrelationIndex[rci].Data())));
18208 if(!f2DDiffFlowCorrelationsPro[t][rci])
18210 printf("\n WARNING (QC): f2DDiffFlowCorrelationsPro[%i][%i] is NULL in AFAWQC::GPF2DFH() !!!!\n\n",t,rci);
18214 this->Set2DDiffFlowCorrelationsPro(f2DDiffFlowCorrelationsPro[t][rci],t,rci);
18216 } // end of for(Int_t rci=0;rci<4;rci++) // reduced correlation index
18217 } // end of for(Int_t t=0;t<2;t++) // type: RP or POI
18219 // d) Get pointers to 2D differential flow histograms:
18220 TString s2DDiffFlowCumulantsName = "f2DDiffFlowCumulants";
18221 s2DDiffFlowCumulantsName += fAnalysisLabel->Data();
18222 TString s2DDiffFlowName = "f2DDiffFlow";
18223 s2DDiffFlowName += fAnalysisLabel->Data();
18224 for(Int_t t=0;t<2;t++) // type: RP or POI
18226 for(Int_t rci=0;rci<4;rci++) // reduced correlation index
18228 // 2D differential cumulants:
18229 f2DDiffFlowCumulants[t][rci] = dynamic_cast<TH2D*>(f2DDiffFlowCorrelationsProList[t]->FindObject(Form("%s, %s, %s",s2DDiffFlowCumulantsName.Data(),typeFlag[t].Data(),differentialCumulantIndex[rci].Data())));
18230 if(!f2DDiffFlowCumulants[t][rci])
18232 printf("\n WARNING (QC): f2DDiffFlowCumulants[%i][%i] is NULL in AFAWQC::GPF2DFH() !!!!\n\n",t,rci);
18236 this->Set2DDiffFlowCumulants(f2DDiffFlowCumulants[t][rci],t,rci);
18238 // 2D differential flow:
18239 f2DDiffFlow[t][rci] = dynamic_cast<TH2D*>(f2DDiffFlowCorrelationsProList[t]->FindObject(Form("%s, %s, %s",s2DDiffFlowName.Data(),typeFlag[t].Data(),differentialFlowIndex[rci].Data())));
18240 if(!f2DDiffFlow[t][rci])
18242 printf("\n WARNING (QC): f2DDiffFlow[%i][%i] is NULL in AFAWQC::GPF2DFH() !!!!\n\n",t,rci);
18246 this->Set2DDiffFlow(f2DDiffFlow[t][rci],t,rci);
18248 } // end of for(Int_t rci=0;rci<4;rci++) // reduced correlation index
18249 } // end of for(Int_t t=0;t<2;t++) // type: RP or POI
18251 } // end of void AliFlowAnalysisWithQCumulants::GetPointersFor2DDiffFlowHistograms()
18253 //=======================================================================================================================
18255 void AliFlowAnalysisWithQCumulants::GetPointersForOtherDiffCorrelators()
18257 // Get pointers for other differential correlators.
18258 // a) Get pointer to list with other differential correlators;
18259 // b) Declare local flags;
18260 // c) Get pointers to other differential profiles.
18262 if(!fCalculateDiffFlow){return;} // TBI: This must eventually be moved somewhere else
18264 // a) Get pointer to list with other differential correlators:
18265 fOtherDiffCorrelatorsList = dynamic_cast<TList*>(fHistList->FindObject("Other differential correlators"));
18266 if(!fOtherDiffCorrelatorsList)
18268 printf("\n WARNING (QC): fOtherDiffCorrelatorsList is NULL in AFAWQC::GPFDFH() !!!!\n\n");
18272 // b) Declare local flags: // (to be improved - promoted to data members)
18273 TString typeFlag[2] = {"RP","POI"};
18274 TString ptEtaFlag[2] = {"p_{T}","#eta"};
18275 TString sinCosFlag[2] = {"sin","cos"};
18277 // c) Get pointers to other differential profiles:
18278 TString otherDiffCorrelatorsName = "fOtherDiffCorrelators";
18279 otherDiffCorrelatorsName += fAnalysisLabel->Data();
18280 for(Int_t t=0;t<2;t++) // typeFlag (0 = RP, 1 = POI)
18282 for(Int_t pe=0;pe<1+(Int_t)fCalculateDiffFlowVsEta;pe++) // pt or eta
18284 for(Int_t sc=0;sc<2;sc++) // sin or cos
18286 for(Int_t ci=0;ci<1;ci++) // correlator index
18288 fOtherDiffCorrelators[t][pe][sc][ci] = dynamic_cast<TProfile*>(fOtherDiffCorrelatorsList->FindObject(Form("%s, %s, %s, %s, ci = %d",otherDiffCorrelatorsName.Data(),typeFlag[t].Data(),ptEtaFlag[pe].Data(),sinCosFlag[sc].Data(),ci+1)));
18289 if(!fOtherDiffCorrelators[t][pe][sc][ci])
18291 printf("\n WARNING (QC): fOtherDiffCorrelators[%i][%i][%i][%i] is NULL in AFAWQC::GPFODC() !!!!\n\n",t,pe,sc,ci);
18295 this->SetOtherDiffCorrelators(fOtherDiffCorrelators[t][pe][sc][ci],t,pe,sc,ci);
18297 } // end of for(Int_t ci=0;ci<1;ci++) // correlator index
18298 } // end of for(Int_t sc=0;sc<2;sc++) // sin or cos
18299 } // end of for(Int_t pe=0;pe<2;pe++) // pt or eta
18300 } // end of for(Int_t t=0;t<2;t++) // typeFlag (0 = RP, 1 = POI)
18302 } // end of void AliFlowAnalysisWithQCumulants::GetPointersForOtherDiffCorrelators()
18304 //=======================================================================================================================
18306 void AliFlowAnalysisWithQCumulants::GetPointersForDiffFlowHistograms()
18308 // Get pointer to all objects relevant for differential flow.
18309 // a) Get pointer to base list for differential flow fDiffFlowList;
18310 // b) Get pointer to profile fDiffFlowFlags holding all flags for differential flow. Access and set some flags;
18311 // c) Get pointers to nested lists fDiffFlowListProfiles and fDiffFlowListResults;
18312 // d) Define flags locally (to be improved: should I promote these flags to data members?);
18313 // e) Get pointers to all nested lists in fDiffFlowListProfiles and to profiles which they hold;
18314 // f) Get pointers to all nested lists in fDiffFlowListResults and to histograms which they hold.
18316 // a) Get pointer to base list for differential flow fDiffFlowList:
18317 fDiffFlowList = dynamic_cast<TList*>(fHistList->FindObject("Differential Flow"));
18320 printf("\n WARNING (QC): fDiffFlowList is NULL in AFAWQC::GPFDFH() !!!!\n\n");
18324 // b) Get pointer to profile fDiffFlowFlags holding all flags for differential flow. Access and set some flags:
18325 TString diffFlowFlagsName = "fDiffFlowFlags";
18326 diffFlowFlagsName += fAnalysisLabel->Data();
18327 fDiffFlowFlags = dynamic_cast<TProfile*>(fDiffFlowList->FindObject(diffFlowFlagsName.Data()));
18330 this->SetCalculateDiffFlow((Bool_t)fDiffFlowFlags->GetBinContent(1)); // to be improved - hardwired 1
18331 this->SetCalculateDiffFlowVsEta((Bool_t)fDiffFlowFlags->GetBinContent(6)); // to be improved - hardwired 6
18334 printf("\n WARNING (QC): fDiffFlowFlags is NULL in AFAWQC::GPFDFH() !!!!\n\n");
18335 printf("\n Flags in method Finish() are wrong.\n\n");
18339 if(!fCalculateDiffFlow){return;} // IMPORTANT: do not move this anywhere above in this method (to be improved)
18341 // c) Get pointers to nested lists fDiffFlowListProfiles and fDiffFlowListResults:
18342 // List holding nested lists holding profiles:
18343 TList *diffFlowListProfiles = NULL;
18344 diffFlowListProfiles = dynamic_cast<TList*>(fDiffFlowList->FindObject("Profiles"));
18345 if(!diffFlowListProfiles)
18347 printf("\n WARNING (QC): diffFlowListProfiles is NULL in AFAWQC::GPFDFH() !!!!\n\n");
18350 // List holding nested lists holding histograms with final results:
18351 TList *diffFlowListResults = NULL;
18352 diffFlowListResults = dynamic_cast<TList*>(fDiffFlowList->FindObject("Results"));
18353 if(!diffFlowListResults)
18355 printf("\n WARNING (QC): diffFlowListResults is NULL in AFAWQC::GPFDFH() !!!!\n\n");
18359 // d) Define flags locally (to be improved: should I promote these flags to data members?):
18360 TString typeFlag[2] = {"RP","POI"};
18361 TString ptEtaFlag[2] = {"p_{T}","#eta"};
18362 TString powerFlag[2] = {"linear","quadratic"};
18363 TString sinCosFlag[2] = {"sin","cos"};
18364 TString differentialCumulantIndex[4] = {"QC{2'}","QC{4'}","QC{6'}","QC{8'}"};
18365 TString differentialFlowIndex[4] = {"v'{2}","v'{4}","v'{6}","v'{8}"};
18366 TString reducedCorrelationIndex[4] = {"<2'>","<4'>","<6'>","<8'>"};
18367 TString reducedSquaredCorrelationIndex[4] = {"<2'>^{2}","<4'>^{2}","<6'>^{2}","<8'>^{2}"};
18368 TString mixedCorrelationIndex[8] = {"<2>","<2'>","<4>","<4'>","<6>","<6'>","<8>","<8'>"};
18369 TString covarianceName[5] = {"Cov(<2>,<2'>)","Cov(<2>,<4'>)","Cov(<4>,<2'>)","Cov(<4>,<4'>)","Cov(<2'>,<4'>)"};
18371 // e) Get pointers to all nested lists in fDiffFlowListProfiles and to profiles which they hold:
18373 TList *diffFlowCorrelationsProList[2][2] = {{NULL}};
18374 TString diffFlowCorrelationsProName = "fDiffFlowCorrelationsPro";
18375 diffFlowCorrelationsProName += fAnalysisLabel->Data();
18376 TProfile *diffFlowCorrelationsPro[2][2][4] = {{{NULL}}};
18377 // squared correlations:
18378 TString diffFlowSquaredCorrelationsProName = "fDiffFlowSquaredCorrelationsPro";
18379 diffFlowSquaredCorrelationsProName += fAnalysisLabel->Data();
18380 TProfile *diffFlowSquaredCorrelationsPro[2][2][4] = {{{NULL}}};
18381 // products of correlations:
18382 TList *diffFlowProductOfCorrelationsProList[2][2] = {{NULL}};
18383 TString diffFlowProductOfCorrelationsProName = "fDiffFlowProductOfCorrelationsPro";
18384 diffFlowProductOfCorrelationsProName += fAnalysisLabel->Data();
18385 TProfile *diffFlowProductOfCorrelationsPro[2][2][8][8] = {{{{NULL}}}};
18387 TList *diffFlowCorrectionsProList[2][2] = {{NULL}};
18388 TString diffFlowCorrectionTermsForNUAProName = "fDiffFlowCorrectionTermsForNUAPro";
18389 diffFlowCorrectionTermsForNUAProName += fAnalysisLabel->Data();
18390 TProfile *diffFlowCorrectionTermsForNUAPro[2][2][2][10] = {{{{NULL}}}};
18391 for(Int_t t=0;t<2;t++)
18393 for(Int_t pe=0;pe<1+(Int_t)fCalculateDiffFlowVsEta;pe++)
18395 diffFlowCorrelationsProList[t][pe] = dynamic_cast<TList*>(diffFlowListProfiles->FindObject(Form("Profiles with correlations (%s, %s)",typeFlag[t].Data(),ptEtaFlag[pe].Data())));
18396 if(!diffFlowCorrelationsProList[t][pe])
18398 cout<<"WARNING: diffFlowCorrelationsProList[t][pe] is NULL in AFAWQC::GPFDFH() !!!!"<<endl;
18399 cout<<"t = "<<t<<endl;
18400 cout<<"pe = "<<pe<<endl;
18403 for(Int_t ci=0;ci<4;ci++) // correlation index
18405 // reduced correlations:
18406 diffFlowCorrelationsPro[t][pe][ci] = dynamic_cast<TProfile*>(diffFlowCorrelationsProList[t][pe]->FindObject(Form("%s, %s, %s, %s",diffFlowCorrelationsProName.Data(),typeFlag[t].Data(),ptEtaFlag[pe].Data(),reducedCorrelationIndex[ci].Data())));
18407 if(diffFlowCorrelationsPro[t][pe][ci])
18409 this->SetDiffFlowCorrelationsPro(diffFlowCorrelationsPro[t][pe][ci],t,pe,ci);
18412 cout<<"WARNING: diffFlowCorrelationsPro[t][pe][ci] is NULL in AFAWQC::GPFDFH() !!!!"<<endl;
18413 cout<<"t = "<<t<<endl;
18414 cout<<"pe = "<<pe<<endl;
18415 cout<<"ci = "<<ci<<endl;
18417 // reduced squared correlations:
18418 diffFlowSquaredCorrelationsPro[t][pe][ci] = dynamic_cast<TProfile*>(diffFlowCorrelationsProList[t][pe]->FindObject(Form("%s, %s, %s, %s",diffFlowSquaredCorrelationsProName.Data(),typeFlag[t].Data(),ptEtaFlag[pe].Data(),reducedSquaredCorrelationIndex[ci].Data())));
18419 if(diffFlowSquaredCorrelationsPro[t][pe][ci])
18421 this->SetDiffFlowSquaredCorrelationsPro(diffFlowSquaredCorrelationsPro[t][pe][ci],t,pe,ci);
18424 cout<<"WARNING: diffFlowSquaredCorrelationsPro[t][pe][ci] is NULL in AFAWQC::GPFDFH() !!!!"<<endl;
18425 cout<<"t = "<<t<<endl;
18426 cout<<"pe = "<<pe<<endl;
18427 cout<<"ci = "<<ci<<endl;
18429 } // end of for(Int_t ci=0;ci<4;ci++) // correlation index
18430 // products of correlations:
18431 diffFlowProductOfCorrelationsProList[t][pe] = dynamic_cast<TList*>(diffFlowListProfiles->FindObject(Form("Profiles with products of correlations (%s, %s)",typeFlag[t].Data(),ptEtaFlag[pe].Data())));
18432 if(!diffFlowProductOfCorrelationsProList[t][pe])
18434 cout<<"WARNING: ddiffFlowProductOfCorrelationsProList[t][pe] is NULL in AFAWQC::GPFDFH() !!!!"<<endl;
18435 cout<<"t = "<<t<<endl;
18436 cout<<"pe = "<<pe<<endl;
18439 for(Int_t mci1=0;mci1<8;mci1++) // mixed correlation index
18441 for(Int_t mci2=mci1+1;mci2<8;mci2++) // mixed correlation index
18443 diffFlowProductOfCorrelationsPro[t][pe][mci1][mci2] = dynamic_cast<TProfile*>(diffFlowProductOfCorrelationsProList[t][pe]->FindObject(Form("%s, %s, %s, %s, %s",diffFlowProductOfCorrelationsProName.Data(),typeFlag[t].Data(),ptEtaFlag[pe].Data(),mixedCorrelationIndex[mci1].Data(),mixedCorrelationIndex[mci2].Data())));
18444 if(diffFlowProductOfCorrelationsPro[t][pe][mci1][mci2])
18446 this->SetDiffFlowProductOfCorrelationsPro(diffFlowProductOfCorrelationsPro[t][pe][mci1][mci2],t,pe,mci1,mci2);
18449 cout<<"WARNING: diffFlowProductOfCorrelationsPro[t][pe][ci] is NULL in AFAWQC::GPFDFH() !!!!"<<endl;
18450 cout<<"t = "<<t<<endl;
18451 cout<<"pe = "<<pe<<endl;
18452 cout<<"mci1 = "<<mci1<<endl;
18453 cout<<"mci2 = "<<mci2<<endl;
18455 if(mci1%2 == 0) mci2++; // products which DO NOT include reduced correlations are not stored here
18456 } // end of for(Int_t mci2=mci1+1;mci2<8;mci2++) // mixed correlation index
18457 } // end of for(Int_t mci1=0;mci1<8;mci1++) // mixed correlation index
18459 diffFlowCorrectionsProList[t][pe] = dynamic_cast<TList*>(diffFlowListProfiles->FindObject(Form("Profiles with correction terms for NUA (%s, %s)",typeFlag[t].Data(),ptEtaFlag[pe].Data())));
18460 if(!diffFlowCorrectionsProList[t][pe])
18462 cout<<"WARNING: diffFlowCorrectionsProList[t][pe] is NULL in AFAWQC::GPFDFH() !!!!"<<endl;
18463 cout<<"t = "<<t<<endl;
18464 cout<<"pe = "<<pe<<endl;
18467 // correction terms for NUA:
18468 for(Int_t sc=0;sc<2;sc++) // sin or cos
18470 for(Int_t cti=0;cti<9;cti++) // correction term index
18472 diffFlowCorrectionTermsForNUAPro[t][pe][sc][cti] = dynamic_cast<TProfile*>(diffFlowCorrectionsProList[t][pe]->FindObject(Form("%s, %s, %s, %s, cti = %d",diffFlowCorrectionTermsForNUAProName.Data(),typeFlag[t].Data(),ptEtaFlag[pe].Data(),sinCosFlag[sc].Data(),cti+1)));
18473 if(diffFlowCorrectionTermsForNUAPro[t][pe][sc][cti])
18475 this->SetDiffFlowCorrectionTermsForNUAPro(diffFlowCorrectionTermsForNUAPro[t][pe][sc][cti],t,pe,sc,cti);
18478 cout<<"WARNING: diffFlowCorrectionTermsForNUAPro[t][pe][sc][cti] is NULL in AFAWQC::GPFDFH() !!!!"<<endl;
18479 cout<<"t = "<<t<<endl;
18480 cout<<"pe = "<<pe<<endl;
18481 cout<<"sc = "<<sc<<endl;
18482 cout<<"cti = "<<cti<<endl;
18484 } // end of for(Int_t cti=0;cti<9;cti++) // correction term index
18485 } // end of for(Int_t sc=0;sc<2;sc++) // sin or cos
18487 } // end of for(Int_t pe=0;pe<2;pe++)
18488 } // end of for(Int_t t=0;t<2;t++)
18490 // f) Get pointers to all nested lists in fDiffFlowListResults and to histograms which they hold:
18491 // reduced correlations:
18492 TList *diffFlowCorrelationsHistList[2][2] = {{NULL}};
18493 TString diffFlowCorrelationsHistName = "fDiffFlowCorrelationsHist";
18494 diffFlowCorrelationsHistName += fAnalysisLabel->Data();
18495 TH1D *diffFlowCorrelationsHist[2][2][4] = {{{NULL}}};
18496 // corrections for NUA:
18497 TList *diffFlowCorrectionsHistList[2][2] = {{NULL}};
18498 TString diffFlowCorrectionTermsForNUAHistName = "fDiffFlowCorrectionTermsForNUAHist";
18499 diffFlowCorrectionTermsForNUAHistName += fAnalysisLabel->Data();
18500 TH1D *diffFlowCorrectionTermsForNUAHist[2][2][2][10] = {{{{NULL}}}};
18501 // differential Q-cumulants:
18502 TList *diffFlowCumulantsHistList[2][2] = {{NULL}};
18503 TString diffFlowCumulantsName = "fDiffFlowCumulants";
18504 diffFlowCumulantsName += fAnalysisLabel->Data();
18505 TH1D *diffFlowCumulants[2][2][4] = {{{NULL}}};
18506 // detector bias to differential Q-cumulants:
18507 TList *diffFlowDetectorBiasHistList[2][2] = {{NULL}};
18508 TString diffFlowDetectorBiasName = "fDiffFlowDetectorBias";
18509 diffFlowDetectorBiasName += fAnalysisLabel->Data();
18510 TH1D *diffFlowDetectorBias[2][2][4] = {{{NULL}}};
18511 // differential flow estimates from Q-cumulants:
18512 TList *diffFlowHistList[2][2] = {{NULL}};
18513 TString diffFlowName = "fDiffFlow";
18514 diffFlowName += fAnalysisLabel->Data();
18515 TH1D *diffFlow[2][2][4] = {{{NULL}}};
18516 // differential covariances:
18517 TList *diffFlowCovariancesHistList[2][2] = {{NULL}};
18518 TString diffFlowCovariancesName = "fDiffFlowCovariances";
18519 diffFlowCovariancesName += fAnalysisLabel->Data();
18520 TH1D *diffFlowCovariances[2][2][5] = {{{NULL}}};
18521 for(Int_t t=0;t<2;t++) // type: RP or POI
18523 for(Int_t pe=0;pe<1+(Int_t)fCalculateDiffFlowVsEta;pe++) // pt or eta
18525 // reduced correlations:
18526 diffFlowCorrelationsHistList[t][pe] = dynamic_cast<TList*>(diffFlowListResults->FindObject(Form("Correlations (%s, %s)",typeFlag[t].Data(),ptEtaFlag[pe].Data())));
18527 if(!diffFlowCorrelationsHistList[t][pe])
18529 cout<<"WARNING: diffFlowCorrelationsHistList[t][pe] is NULL in AFAWQC::GPFDFH() !!!!"<<endl;
18530 cout<<"t = "<<t<<endl;
18531 cout<<"pe = "<<pe<<endl;
18534 for(Int_t index=0;index<4;index++)
18536 diffFlowCorrelationsHist[t][pe][index] = dynamic_cast<TH1D*>(diffFlowCorrelationsHistList[t][pe]->FindObject(Form("%s, %s, %s, %s",diffFlowCorrelationsHistName.Data(),typeFlag[t].Data(),ptEtaFlag[pe].Data(),reducedCorrelationIndex[index].Data())));
18537 if(diffFlowCorrelationsHist[t][pe][index])
18539 this->SetDiffFlowCorrelationsHist(diffFlowCorrelationsHist[t][pe][index],t,pe,index);
18542 cout<<"WARNING: diffFlowCorrelationsHist[t][pe][index] is NULL in AFAWQC::GPFDFH() !!!!"<<endl;
18543 cout<<"t = "<<t<<endl;
18544 cout<<"pe = "<<pe<<endl;
18545 cout<<"index = "<<index<<endl;
18548 } // end of for(Int_t index=0;index<4;index++)
18550 diffFlowCorrectionsHistList[t][pe] = dynamic_cast<TList*>(diffFlowListResults->FindObject(Form("Histograms with correction terms for NUA (%s, %s)",typeFlag[t].Data(),ptEtaFlag[pe].Data())));
18551 if(!diffFlowCorrectionsHistList[t][pe])
18553 cout<<"WARNING: diffFlowCorrectionsHistList[t][pe] is NULL in AFAWQC::GPFDFH() !!!!"<<endl;
18554 cout<<"t = "<<t<<endl;
18555 cout<<"pe = "<<pe<<endl;
18558 // correction terms for NUA:
18559 for(Int_t sc=0;sc<2;sc++) // sin or cos
18561 for(Int_t cti=0;cti<9;cti++) // correction term index
18563 diffFlowCorrectionTermsForNUAHist[t][pe][sc][cti] = dynamic_cast<TH1D*>(diffFlowCorrectionsHistList[t][pe]->FindObject(Form("%s, %s, %s, %s, cti = %d",diffFlowCorrectionTermsForNUAHistName.Data(),typeFlag[t].Data(),ptEtaFlag[pe].Data(),sinCosFlag[sc].Data(),cti+1)));
18564 if(diffFlowCorrectionTermsForNUAHist[t][pe][sc][cti])
18566 this->SetDiffFlowCorrectionTermsForNUAHist(diffFlowCorrectionTermsForNUAHist[t][pe][sc][cti],t,pe,sc,cti);
18569 cout<<"WARNING: diffFlowCorrectionTermsForNUAHist[t][pe][sc][cti] is NULL in AFAWQC::GPFDFH() !!!!"<<endl;
18570 cout<<"t = "<<t<<endl;
18571 cout<<"pe = "<<pe<<endl;
18572 cout<<"sc = "<<sc<<endl;
18573 cout<<"cti = "<<cti<<endl;
18575 } // end of for(Int_t cti=0;cti<9;cti++) // correction term index
18576 } // end of for(Int_t sc=0;sc<2;sc++) // sin or cos
18578 // differential Q-cumulants:
18579 diffFlowCumulantsHistList[t][pe] = dynamic_cast<TList*>(diffFlowListResults->FindObject(Form("Differential Q-cumulants (%s, %s)",typeFlag[t].Data(),ptEtaFlag[pe].Data())));
18580 if(!diffFlowCumulantsHistList[t][pe])
18582 cout<<"WARNING: diffFlowCumulantsHistList[t][pe] is NULL in AFAWQC::GPFDFH() !!!!"<<endl;
18583 cout<<"t = "<<t<<endl;
18584 cout<<"pe = "<<pe<<endl;
18587 for(Int_t index=0;index<4;index++)
18589 diffFlowCumulants[t][pe][index] = dynamic_cast<TH1D*>(diffFlowCumulantsHistList[t][pe]->FindObject(Form("%s, %s, %s, %s",diffFlowCumulantsName.Data(),typeFlag[t].Data(),ptEtaFlag[pe].Data(),differentialCumulantIndex[index].Data())));
18590 if(diffFlowCumulants[t][pe][index])
18592 this->SetDiffFlowCumulants(diffFlowCumulants[t][pe][index],t,pe,index);
18595 cout<<"WARNING: diffFlowCumulants[t][pe][index] is NULL in AFAWQC::GPFDFH() !!!!"<<endl;
18596 cout<<"t = "<<t<<endl;
18597 cout<<"pe = "<<pe<<endl;
18598 cout<<"index = "<<index<<endl;
18601 } // end of for(Int_t index=0;index<4;index++)
18602 // Detector bias to differential Q-cumulants:
18603 diffFlowDetectorBiasHistList[t][pe] = dynamic_cast<TList*>(diffFlowListResults->FindObject(Form("Detector bias (%s, %s)",typeFlag[t].Data(),ptEtaFlag[pe].Data())));
18604 if(!diffFlowDetectorBiasHistList[t][pe])
18606 cout<<"WARNING: diffFlowDetectorBiasHistList[t][pe] is NULL in AFAWQC::GPFDFH() !!!!"<<endl;
18607 cout<<"t = "<<t<<endl;
18608 cout<<"pe = "<<pe<<endl;
18611 for(Int_t index=0;index<4;index++)
18613 diffFlowDetectorBias[t][pe][index] = dynamic_cast<TH1D*>(diffFlowDetectorBiasHistList[t][pe]->FindObject(Form("%s, %s, %s, %s",diffFlowDetectorBiasName.Data(),typeFlag[t].Data(),ptEtaFlag[pe].Data(),differentialCumulantIndex[index].Data())));
18614 if(diffFlowDetectorBias[t][pe][index])
18616 this->SetDiffFlowDetectorBias(diffFlowDetectorBias[t][pe][index],t,pe,index);
18619 cout<<"WARNING: diffFlowDetectorBias[t][pe][index] is NULL in AFAWQC::GPFDFH() !!!!"<<endl;
18620 cout<<"t = "<<t<<endl;
18621 cout<<"pe = "<<pe<<endl;
18622 cout<<"index = "<<index<<endl;
18625 } // end of for(Int_t index=0;index<4;index++)
18626 // differential flow estimates from Q-cumulants:
18627 diffFlowHistList[t][pe] = dynamic_cast<TList*>(diffFlowListResults->FindObject(Form("Differential flow (%s, %s)",typeFlag[t].Data(),ptEtaFlag[pe].Data())));
18628 if(!diffFlowHistList[t][pe])
18630 cout<<"WARNING: diffFlowHistList[t][pe] is NULL in AFAWQC::GPFDFH() !!!!"<<endl;
18631 cout<<"t = "<<t<<endl;
18632 cout<<"pe = "<<pe<<endl;
18635 for(Int_t index=0;index<4;index++)
18637 diffFlow[t][pe][index] = dynamic_cast<TH1D*>(diffFlowHistList[t][pe]->FindObject(Form("%s, %s, %s, %s",diffFlowName.Data(),typeFlag[t].Data(),ptEtaFlag[pe].Data(),differentialFlowIndex[index].Data())));
18638 if(diffFlow[t][pe][index])
18640 this->SetDiffFlow(diffFlow[t][pe][index],t,pe,index);
18643 cout<<"WARNING: diffFlow[t][pe][index] is NULL in AFAWQC::GPFDFH() !!!!"<<endl;
18644 cout<<"t = "<<t<<endl;
18645 cout<<"pe = "<<pe<<endl;
18646 cout<<"index = "<<index<<endl;
18649 } // end of for(Int_t index=0;index<4;index++)
18650 // differential covariances:
18651 diffFlowCovariancesHistList[t][pe] = dynamic_cast<TList*>(diffFlowListResults->FindObject(Form("Covariances of correlations (%s, %s)",typeFlag[t].Data(),ptEtaFlag[pe].Data())));
18652 if(!diffFlowCovariancesHistList[t][pe])
18654 cout<<"WARNING: diffFlowCovariancesHistList[t][pe] is NULL in AFAWQC::GPFDFH() !!!!"<<endl;
18655 cout<<"t = "<<t<<endl;
18656 cout<<"pe = "<<pe<<endl;
18659 for(Int_t covIndex=0;covIndex<5;covIndex++)
18661 diffFlowCovariances[t][pe][covIndex] = dynamic_cast<TH1D*>(diffFlowCovariancesHistList[t][pe]->FindObject(Form("%s, %s, %s, %s",diffFlowCovariancesName.Data(),typeFlag[t].Data(),ptEtaFlag[pe].Data(),covarianceName[covIndex].Data())));
18662 if(diffFlowCovariances[t][pe][covIndex])
18664 this->SetDiffFlowCovariances(diffFlowCovariances[t][pe][covIndex],t,pe,covIndex);
18667 cout<<"WARNING: diffFlowCovariances[t][pe][covIndex] is NULL in AFAWQC::GPFDFH() !!!!"<<endl;
18668 cout<<"t = "<<t<<endl;
18669 cout<<"pe = "<<pe<<endl;
18670 cout<<"covIndex = "<<covIndex<<endl;
18673 } // end of for(Int_t covIndex=0;covIndex<5;covIndex++) // covariance index
18674 } // end of for(Int_t pe=0;pe<2;pe++) // pt or eta
18675 } // end of for(Int_t t=0;t<2;t++) // type: RP or POI
18676 // sum of event weights for reduced correlations:
18677 TList *diffFlowSumOfEventWeightsHistList[2][2][2] = {{{NULL}}};
18678 TString diffFlowSumOfEventWeightsName = "fDiffFlowSumOfEventWeights";
18679 diffFlowSumOfEventWeightsName += fAnalysisLabel->Data();
18680 TH1D *diffFlowSumOfEventWeights[2][2][2][4] = {{{{NULL}}}};
18681 for(Int_t t=0;t<2;t++) // type is RP or POI
18683 for(Int_t pe=0;pe<1+(Int_t)fCalculateDiffFlowVsEta;pe++) // pt or eta
18685 for(Int_t p=0;p<2;p++) // power of event weights is either 1 or 2
18687 diffFlowSumOfEventWeightsHistList[t][pe][p] = dynamic_cast<TList*>(diffFlowListResults->FindObject(Form("Sum of %s event weights (%s, %s)",powerFlag[p].Data(),typeFlag[t].Data(),ptEtaFlag[pe].Data())));
18688 if(!diffFlowSumOfEventWeightsHistList[t][pe][p])
18690 cout<<"WARNING: diffFlowSumOfEventWeightsHistList[t][pe][p] is NULL in AFAWQC::GPFDFH() !!!!"<<endl;
18691 cout<<"t = "<<t<<endl;
18692 cout<<"pe = "<<pe<<endl;
18693 cout<<"power = "<<p<<endl;
18696 for(Int_t ew=0;ew<4;ew++) // index of reduced correlation
18698 diffFlowSumOfEventWeights[t][pe][p][ew] = dynamic_cast<TH1D*>(diffFlowSumOfEventWeightsHistList[t][pe][p]->FindObject(Form("%s, %s, %s, %s, %s",diffFlowSumOfEventWeightsName.Data(),typeFlag[t].Data(),ptEtaFlag[pe].Data(),powerFlag[p].Data(),reducedCorrelationIndex[ew].Data())));
18699 if(diffFlowSumOfEventWeights[t][pe][p][ew])
18701 this->SetDiffFlowSumOfEventWeights(diffFlowSumOfEventWeights[t][pe][p][ew],t,pe,p,ew);
18704 cout<<"WARNING: diffFlowSumOfEventWeights[t][pe][p][ew] is NULL in AFAWQC::GPFDFH() !!!!"<<endl;
18705 cout<<"t = "<<t<<endl;
18706 cout<<"pe = "<<pe<<endl;
18707 cout<<"power = "<<p<<endl;
18708 cout<<"ew = "<<ew<<endl;
18712 } // end of for(Int_t p=0;p<2;p++) // power of event weights is either 1 or 2
18713 } // end of for(Int_t pe=0;pe<2;pe++) // pt or eta
18714 } // end of for(Int_t t=0;t<2;t++) // type is RP or POI
18716 TList *diffFlowSumOfProductOfEventWeightsHistList[2][2] = {{NULL}};
18717 TString diffFlowSumOfProductOfEventWeightsName = "fDiffFlowSumOfProductOfEventWeights";
18718 diffFlowSumOfProductOfEventWeightsName += fAnalysisLabel->Data();
18719 TH1D *diffFlowSumOfProductOfEventWeights[2][2][8][8] = {{{{NULL}}}};
18720 for(Int_t t=0;t<2;t++) // type is RP or POI
18722 for(Int_t pe=0;pe<1+(Int_t)fCalculateDiffFlowVsEta;pe++) // pt or eta
18724 diffFlowSumOfProductOfEventWeightsHistList[t][pe] = dynamic_cast<TList*>(diffFlowListResults->FindObject(Form("Sum of products of event weights (%s, %s)",typeFlag[t].Data(),ptEtaFlag[pe].Data())));
18725 if(!diffFlowSumOfProductOfEventWeightsHistList[t][pe])
18727 cout<<"WARNING: diffFlowSumOfProductOfEventWeightsHistList[t][pe] is NULL in AFAWQC::GPFDFH() !!!!"<<endl;
18728 cout<<"t = "<<t<<endl;
18729 cout<<"pe = "<<pe<<endl;
18732 for(Int_t mci1=0;mci1<8;mci1++) // mixed correlation index
18734 for(Int_t mci2=mci1+1;mci2<8;mci2++) // mixed correlation index
18736 diffFlowSumOfProductOfEventWeights[t][pe][mci1][mci2] = dynamic_cast<TH1D*>(diffFlowSumOfProductOfEventWeightsHistList[t][pe]->FindObject(Form("%s, %s, %s, %s, %s",diffFlowSumOfProductOfEventWeightsName.Data(),typeFlag[t].Data(),ptEtaFlag[pe].Data(),mixedCorrelationIndex[mci1].Data(),mixedCorrelationIndex[mci2].Data())));
18737 if(diffFlowSumOfProductOfEventWeights[t][pe][mci1][mci2])
18739 this->SetDiffFlowSumOfProductOfEventWeights(diffFlowSumOfProductOfEventWeights[t][pe][mci1][mci2],t,pe,mci1,mci2);
18742 cout<<"WARNING: diffFlowSumOfProductOfEventWeights[t][pe][mci1][mci2] is NULL in AFAWQC::GPFDFH() !!!!"<<endl;
18743 cout<<"t = "<<t<<endl;
18744 cout<<"pe = "<<pe<<endl;
18745 cout<<"mci1 = "<<mci1<<endl;
18746 cout<<"mci2 = "<<mci2<<endl;
18749 if(mci1%2 == 0) mci2++; // products which DO NOT include reduced correlations are not stored here
18750 } // end of for(Int_t mci2=mci1+1;mci2<8;mci2++) // mixed correlation index
18751 } // end of for(Int_t mci1=0;mci1<8;mci1++) // mixed correlation index
18752 } // end of for(Int_t pe=0;pe<2;pe++) // pt or eta
18753 } // end of for(Int_t t=0;t<2;t++) // type is RP or POI
18755 } // end void AliFlowAnalysisWithQCumulants::GetPointersForDiffFlowHistograms()
18757 //=======================================================================================================================
18759 void AliFlowAnalysisWithQCumulants::BookEverythingFor2DDifferentialFlow()
18761 // Book all objects needed for 2D differential flow.
18762 // a) Define flags locally (to be improved: should I promote flags to data members?);
18763 // b) Book e-b-e quantities;
18764 // c) Book 2D profiles;
18765 // d) Book 2D histograms.
18767 if(!fCalculate2DDiffFlow){return;}
18769 // a) Define flags locally (to be improved: should I promote flags to data members?):
18770 TString typeFlag[2] = {"RP","POI"};
18771 TString reducedCorrelationIndex[4] = {"<2'>","<4'>","<6'>","<8'>"};
18772 TString differentialCumulantIndex[4] = {"QC{2'}","QC{4'}","QC{6'}","QC{8'}"};
18773 TString differentialFlowIndex[4] = {"v'{2}","v'{4}","v'{6}","v'{8}"};
18775 // b) Book e-b-e quantities:
18776 TProfile2D styleRe("typeMultiplePowerRe","typeMultiplePowerRe",fnBinsPt,fPtMin,fPtMax,fnBinsEta,fEtaMin,fEtaMax);
18777 TProfile2D styleIm("typeMultiplePowerIm","typeMultiplePowerIm",fnBinsPt,fPtMin,fPtMax,fnBinsEta,fEtaMin,fEtaMax);
18778 for(Int_t t=0;t<3;t++) // typeFlag (0 = RP, 1 = POI, 2 = RP&&POI )
18780 for(Int_t m=0;m<4;m++)
18782 for(Int_t k=0;k<9;k++)
18784 fReRPQ2dEBE[t][m][k] = (TProfile2D*)styleRe.Clone(Form("typeFlag%dmultiple%dpower%dRe",t,m,k));
18785 fImRPQ2dEBE[t][m][k] = (TProfile2D*)styleIm.Clone(Form("typeFlag%dmultiple%dpower%dIm",t,m,k));
18789 TProfile2D styleS("typePower","typePower",fnBinsPt,fPtMin,fPtMax,fnBinsEta,fEtaMin,fEtaMax);
18790 for(Int_t t=0;t<3;t++) // typeFlag (0 = RP, 1 = POI, 2 = RP&&POI )
18792 for(Int_t k=0;k<9;k++)
18794 fs2dEBE[t][k] = (TProfile2D*)styleS.Clone(Form("typeFlag%dpower%d",t,k));
18798 // c) Book 2D profiles:
18799 TString s2DDiffFlowCorrelationsProName = "f2DDiffFlowCorrelationsPro";
18800 s2DDiffFlowCorrelationsProName += fAnalysisLabel->Data();
18801 for(Int_t t=0;t<2;t++) // type: RP or POI
18803 for(Int_t rci=0;rci<4;rci++) // reduced correlation index
18805 f2DDiffFlowCorrelationsPro[t][rci] = new TProfile2D(Form("%s, %s, %s",s2DDiffFlowCorrelationsProName.Data(),typeFlag[t].Data(),reducedCorrelationIndex[rci].Data()),Form("%s, %s, %s",s2DDiffFlowCorrelationsProName.Data(),typeFlag[t].Data(),reducedCorrelationIndex[rci].Data()),fnBinsPt,fPtMin,fPtMax,fnBinsEta,fEtaMin,fEtaMax,"");
18806 f2DDiffFlowCorrelationsPro[t][rci]->Sumw2();
18807 f2DDiffFlowCorrelationsPro[t][rci]->SetXTitle("p_{t}");
18808 f2DDiffFlowCorrelationsPro[t][rci]->SetYTitle("#eta");
18809 f2DDiffFlowCorrelationsProList[t]->Add(f2DDiffFlowCorrelationsPro[t][rci]);
18810 } // end of for(Int_t rci=0;rci<4;rci++) // correlation index
18811 } // end of for(Int_t t=0;t<2;t++) // type: RP or POIs
18813 // d) Book 2D histograms:
18814 TString s2DDiffFlowCumulantsName = "f2DDiffFlowCumulants";
18815 s2DDiffFlowCumulantsName += fAnalysisLabel->Data();
18816 TString s2DDiffFlowName = "f2DDiffFlow";
18817 s2DDiffFlowName += fAnalysisLabel->Data();
18818 for(Int_t t=0;t<2;t++) // type: RP or POI
18820 for(Int_t rci=0;rci<4;rci++) // reduced correlation index
18822 // 2D diferential cumulants:
18823 f2DDiffFlowCumulants[t][rci] = new TH2D(Form("%s, %s, %s",s2DDiffFlowCumulantsName.Data(),typeFlag[t].Data(),differentialCumulantIndex[rci].Data()),Form("%s, %s, %s",s2DDiffFlowCumulantsName.Data(),typeFlag[t].Data(),differentialCumulantIndex[rci].Data()),fnBinsPt,fPtMin,fPtMax,fnBinsEta,fEtaMin,fEtaMax);
18824 f2DDiffFlowCumulants[t][rci]->SetXTitle("p_{t}");
18825 f2DDiffFlowCumulants[t][rci]->SetYTitle("#eta");
18826 f2DDiffFlowCorrelationsProList[t]->Add(f2DDiffFlowCumulants[t][rci]); // to be improved - moved to another list
18827 // 2D differential flow:
18828 f2DDiffFlow[t][rci] = new TH2D(Form("%s, %s, %s",s2DDiffFlowName.Data(),typeFlag[t].Data(),differentialFlowIndex[rci].Data()),Form("%s, %s, %s",s2DDiffFlowName.Data(),typeFlag[t].Data(),differentialFlowIndex[rci].Data()),fnBinsPt,fPtMin,fPtMax,fnBinsEta,fEtaMin,fEtaMax);
18829 f2DDiffFlow[t][rci]->SetXTitle("p_{t}");
18830 f2DDiffFlow[t][rci]->SetYTitle("#eta");
18831 f2DDiffFlowCorrelationsProList[t]->Add(f2DDiffFlow[t][rci]); // to be improved - moved to another list
18832 } // end of for(Int_t rci=0;rci<4;rci++) // correlation index
18833 } // end of for(Int_t t=0;t<2;t++) // type: RP or POIs
18835 } // void AliFlowAnalysisWithQCumulants::BookEverythingFor2DDifferentialFlow()
18837 //=======================================================================================================================
18839 void AliFlowAnalysisWithQCumulants::BookEverythingForDifferentialFlow()
18841 // Book all histograms and profiles needed for differential flow.
18842 // a) Book profile to hold all flags for differential flow;
18843 // b) Define flags locally (to be improved: should I promote flags to data members?);
18844 // c) Book e-b-e quantities;
18845 // d) Book profiles;
18846 // e) Book histograms holding final results.
18848 // a) Book profile to hold all flags for differential flow:
18849 TString diffFlowFlagsName = "fDiffFlowFlags";
18850 diffFlowFlagsName += fAnalysisLabel->Data();
18851 fDiffFlowFlags = new TProfile(diffFlowFlagsName.Data(),"Flags for differential flow",6,0,6);
18852 fDiffFlowFlags->SetTickLength(-0.01,"Y");
18853 fDiffFlowFlags->SetMarkerStyle(25);
18854 fDiffFlowFlags->SetLabelSize(0.04,"X");
18855 fDiffFlowFlags->SetLabelOffset(0.02,"Y");
18856 fDiffFlowFlags->SetStats(kFALSE);
18857 fDiffFlowFlags->GetXaxis()->SetBinLabel(1,"Calculate diff. flow");
18858 fDiffFlowFlags->GetXaxis()->SetBinLabel(2,"Particle weights");
18859 fDiffFlowFlags->GetXaxis()->SetBinLabel(3,"Event weights");
18860 fDiffFlowFlags->GetXaxis()->SetBinLabel(4,"Correct for NUA");
18861 fDiffFlowFlags->GetXaxis()->SetBinLabel(5,"Calculate 2D diff. flow");
18862 fDiffFlowFlags->GetXaxis()->SetBinLabel(6,"Calculate diff. flow vs eta");
18863 fDiffFlowList->Add(fDiffFlowFlags);
18865 if(!fCalculateDiffFlow){return;}
18867 // b) Define flags locally (to be improved: should I promote flags to data members?):
18868 TString typeFlag[2] = {"RP","POI"};
18869 TString ptEtaFlag[2] = {"p_{T}","#eta"};
18870 TString powerFlag[2] = {"linear","quadratic"};
18871 TString sinCosFlag[2] = {"sin","cos"};
18872 TString differentialCumulantIndex[4] = {"QC{2'}","QC{4'}","QC{6'}","QC{8'}"};
18873 TString differentialFlowIndex[4] = {"v'{2}","v'{4}","v'{6}","v'{8}"};
18874 TString reducedCorrelationIndex[4] = {"<2'>","<4'>","<6'>","<8'>"};
18875 TString reducedSquaredCorrelationIndex[4] = {"<2'>^{2}","<4'>^{2}","<6'>^{2}","<8'>^{2}"};
18876 TString mixedCorrelationIndex[8] = {"<2>","<2'>","<4>","<4'>","<6>","<6'>","<8>","<8'>"};
18877 TString covarianceName[5] = {"Cov(<2>,<2'>)","Cov(<2>,<4'>)","Cov(<4>,<2'>)","Cov(<4>,<4'>)","Cov(<2'>,<4'>)"};
18878 Int_t nBinsPtEta[2] = {fnBinsPt,fnBinsEta};
18879 Double_t minPtEta[2] = {fPtMin,fEtaMin};
18880 Double_t maxPtEta[2] = {fPtMax,fEtaMax};
18882 // c) Book e-b-e quantities:
18883 // Event-by-event r_{m*n,k}(pt,eta), p_{m*n,k}(pt,eta) and q_{m*n,k}(pt,eta)
18884 // Explanantion of notation:
18885 // 1.) n is harmonic, m is multiple of harmonic;
18886 // 2.) k is power of particle weight;
18887 // 3.) r_{m*n,k}(pt,eta) = Q-vector evaluated in harmonic m*n for RPs in particular (pt,eta) bin (i-th RP is weighted with w_i^k);
18888 // 4.) p_{m*n,k}(pt,eta) = Q-vector evaluated in harmonic m*n for POIs in particular (pt,eta) bin
18889 // (if i-th POI is also RP, than it is weighted with w_i^k);
18890 // 5.) q_{m*n,k}(pt,eta) = Q-vector evaluated in harmonic m*n for particles which are both RPs and POIs in particular (pt,eta) bin
18891 // (i-th RP&&POI is weighted with w_i^k)
18894 for(Int_t t=0;t<3;t++) // typeFlag (0 = RP, 1 = POI, 2 = RP && POI )
18896 for(Int_t pe=0;pe<1+(Int_t)fCalculateDiffFlowVsEta;pe++) // pt or eta
18898 for(Int_t m=0;m<4;m++) // multiple of harmonic
18900 for(Int_t k=0;k<9;k++) // power of particle weight
18902 fReRPQ1dEBE[t][pe][m][k] = new TProfile(Form("TypeFlag%dpteta%dmultiple%dpower%dRe",t,pe,m,k),
18903 Form("TypeFlag%dpteta%dmultiple%dpower%dRe",t,pe,m,k),nBinsPtEta[pe],minPtEta[pe],maxPtEta[pe]);
18904 fImRPQ1dEBE[t][pe][m][k] = new TProfile(Form("TypeFlag%dpteta%dmultiple%dpower%dIm",t,pe,m,k),
18905 Form("TypeFlag%dpteta%dmultiple%dpower%dIm",t,pe,m,k),nBinsPtEta[pe],minPtEta[pe],maxPtEta[pe]);
18910 // to be improved (add explanation of fs1dEBE[t][pe][k]):
18911 for(Int_t t=0;t<3;t++) // typeFlag (0 = RP, 1 = POI, 2 = RP&&POI )
18913 for(Int_t pe=0;pe<1+(Int_t)fCalculateDiffFlowVsEta;pe++) // pt or eta
18915 for(Int_t k=0;k<9;k++) // power of particle weight
18917 fs1dEBE[t][pe][k] = new TProfile(Form("TypeFlag%dpteta%dmultiple%d",t,pe,k),
18918 Form("TypeFlag%dpteta%dmultiple%d",t,pe,k),nBinsPtEta[pe],minPtEta[pe],maxPtEta[pe]);
18922 // correction terms for nua:
18923 for(Int_t t=0;t<2;t++) // typeFlag (0 = RP, 1 = POI)
18925 for(Int_t pe=0;pe<1+(Int_t)fCalculateDiffFlowVsEta;pe++) // pt or eta
18927 for(Int_t sc=0;sc<2;sc++) // sin or cos
18929 for(Int_t cti=0;cti<9;cti++) // correction term index
18931 fDiffFlowCorrectionTermsForNUAEBE[t][pe][sc][cti] = new TH1D(Form("typeFlag%d pteta%d sincos%d cti%d",t,pe,sc,cti),
18932 Form("typeFlag%d pteta%d sincos%d cti%d",t,pe,sc,cti),nBinsPtEta[pe],minPtEta[pe],maxPtEta[pe]);
18937 // reduced correlations e-b-e:
18938 TString diffFlowCorrelationsEBEName = "fDiffFlowCorrelationsEBE";
18939 diffFlowCorrelationsEBEName += fAnalysisLabel->Data();
18940 for(Int_t t=0;t<2;t++) // type: RP or POI
18942 for(Int_t pe=0;pe<1+(Int_t)fCalculateDiffFlowVsEta;pe++) // pt or eta
18944 for(Int_t rci=0;rci<4;rci++) // reduced correlation index
18946 fDiffFlowCorrelationsEBE[t][pe][rci] = new TH1D(Form("%s, %s, %s, %s",diffFlowCorrelationsEBEName.Data(),typeFlag[t].Data(),ptEtaFlag[pe].Data(),reducedCorrelationIndex[rci].Data()),Form("%s, %s, %s, %s",diffFlowCorrelationsEBEName.Data(),typeFlag[t].Data(),ptEtaFlag[pe].Data(),reducedCorrelationIndex[rci].Data()),nBinsPtEta[pe],minPtEta[pe],maxPtEta[pe]);
18947 } // end of for(Int_t ci=0;ci<4;ci++) // correlation index
18948 } // end of for(Int_t pe=0;pe<2;pe++) // pt or eta
18949 } // end of for(Int_t t=0;t<2;t++) // type: RP or POI
18950 // event weights for reduced correlations e-b-e:
18951 TString diffFlowEventWeightsForCorrelationsEBEName = "fDiffFlowEventWeightsForCorrelationsEBE";
18952 diffFlowEventWeightsForCorrelationsEBEName += fAnalysisLabel->Data();
18953 for(Int_t t=0;t<2;t++) // type: RP or POI
18955 for(Int_t pe=0;pe<1+(Int_t)fCalculateDiffFlowVsEta;pe++) // pt or eta
18957 for(Int_t rci=0;rci<4;rci++) // event weight for reduced correlation index
18959 fDiffFlowEventWeightsForCorrelationsEBE[t][pe][rci] = new TH1D(Form("%s, %s, %s, eW for %s",diffFlowEventWeightsForCorrelationsEBEName.Data(),typeFlag[t].Data(),ptEtaFlag[pe].Data(),reducedCorrelationIndex[rci].Data()),Form("%s, %s, %s, eW for %s",diffFlowEventWeightsForCorrelationsEBEName.Data(),typeFlag[t].Data(),ptEtaFlag[pe].Data(),reducedCorrelationIndex[rci].Data()),nBinsPtEta[pe],minPtEta[pe],maxPtEta[pe]);
18960 } // end of for(Int_t ci=0;ci<4;ci++) // correlation index
18961 } // end of for(Int_t pe=0;pe<2;pe++) // pt or eta
18962 } // end of for(Int_t t=0;t<2;t++) // type: RP or POI
18964 // d) Book profiles;
18965 // reduced correlations:
18966 TString diffFlowCorrelationsProName = "fDiffFlowCorrelationsPro";
18967 diffFlowCorrelationsProName += fAnalysisLabel->Data();
18968 // reduced squared correlations:
18969 TString diffFlowSquaredCorrelationsProName = "fDiffFlowSquaredCorrelationsPro";
18970 diffFlowSquaredCorrelationsProName += fAnalysisLabel->Data();
18971 // corrections terms:
18972 TString diffFlowCorrectionTermsForNUAProName = "fDiffFlowCorrectionTermsForNUAPro";
18973 diffFlowCorrectionTermsForNUAProName += fAnalysisLabel->Data();
18974 // reduced correlations:
18975 for(Int_t t=0;t<2;t++) // type: RP or POI
18977 for(Int_t pe=0;pe<1+(Int_t)fCalculateDiffFlowVsEta;pe++) // pt or eta
18979 for(Int_t rci=0;rci<4;rci++) // reduced correlation index
18981 fDiffFlowCorrelationsPro[t][pe][rci] = new TProfile(Form("%s, %s, %s, %s",diffFlowCorrelationsProName.Data(),typeFlag[t].Data(),ptEtaFlag[pe].Data(),reducedCorrelationIndex[rci].Data()),Form("%s, %s, %s, %s",diffFlowCorrelationsProName.Data(),typeFlag[t].Data(),ptEtaFlag[pe].Data(),reducedCorrelationIndex[rci].Data()),nBinsPtEta[pe],minPtEta[pe],maxPtEta[pe],"s");
18982 fDiffFlowCorrelationsPro[t][pe][rci]->Sumw2();
18983 fDiffFlowCorrelationsPro[t][pe][rci]->SetXTitle(ptEtaFlag[pe].Data());
18984 fDiffFlowCorrelationsProList[t][pe]->Add(fDiffFlowCorrelationsPro[t][pe][rci]); // to be improved (add dedicated list to hold reduced correlations)
18985 } // end of for(Int_t rci=0;rci<4;rci++) // correlation index
18986 } // end of for(Int_t pe=0;pe<2;pe++) // pt or eta
18987 } // end of for(Int_t t=0;t<2;t++) // type: RP or POI
18988 // reduced squared correlations:
18989 for(Int_t t=0;t<2;t++) // type: RP or POI
18991 for(Int_t pe=0;pe<1+(Int_t)fCalculateDiffFlowVsEta;pe++) // pt or eta
18993 for(Int_t rci=0;rci<4;rci++) // reduced correlation index
18995 fDiffFlowSquaredCorrelationsPro[t][pe][rci] = new TProfile(Form("%s, %s, %s, %s",diffFlowSquaredCorrelationsProName.Data(),typeFlag[t].Data(),ptEtaFlag[pe].Data(),reducedSquaredCorrelationIndex[rci].Data()),Form("%s, %s, %s, %s",diffFlowSquaredCorrelationsProName.Data(),typeFlag[t].Data(),ptEtaFlag[pe].Data(),reducedSquaredCorrelationIndex[rci].Data()),nBinsPtEta[pe],minPtEta[pe],maxPtEta[pe],"s");
18996 fDiffFlowSquaredCorrelationsPro[t][pe][rci]->Sumw2();
18997 fDiffFlowSquaredCorrelationsPro[t][pe][rci]->SetXTitle(ptEtaFlag[pe].Data());
18998 fDiffFlowCorrelationsProList[t][pe]->Add(fDiffFlowSquaredCorrelationsPro[t][pe][rci]); // to be improved (add dedicated list to hold reduced correlations)
18999 } // end of for(Int_t rci=0;rci<4;rci++) // correlation index
19000 } // end of for(Int_t pe=0;pe<2;pe++) // pt or eta
19001 } // end of for(Int_t t=0;t<2;t++) // type: RP or POI
19002 // correction terms for nua:
19003 for(Int_t t=0;t<2;t++) // typeFlag (0 = RP, 1 = POI)
19005 for(Int_t pe=0;pe<1+(Int_t)fCalculateDiffFlowVsEta;pe++) // pt or eta
19007 for(Int_t sc=0;sc<2;sc++) // sin or cos
19009 for(Int_t cti=0;cti<9;cti++) // correction term index
19011 fDiffFlowCorrectionTermsForNUAPro[t][pe][sc][cti] = new TProfile(Form("%s, %s, %s, %s, cti = %d",diffFlowCorrectionTermsForNUAProName.Data(),typeFlag[t].Data(),ptEtaFlag[pe].Data(),sinCosFlag[sc].Data(),cti+1),Form("%s, %s, %s, %s, cti = %d",diffFlowCorrectionTermsForNUAProName.Data(),typeFlag[t].Data(),ptEtaFlag[pe].Data(),sinCosFlag[sc].Data(),cti+1),nBinsPtEta[pe],minPtEta[pe],maxPtEta[pe]);
19012 fDiffFlowCorrectionsProList[t][pe]->Add(fDiffFlowCorrectionTermsForNUAPro[t][pe][sc][cti]);
19017 // Other differential correlators:
19018 TString otherDiffCorrelatorsName = "fOtherDiffCorrelators";
19019 otherDiffCorrelatorsName += fAnalysisLabel->Data();
19020 for(Int_t t=0;t<2;t++) // typeFlag (0 = RP, 1 = POI)
19022 for(Int_t pe=0;pe<1+(Int_t)fCalculateDiffFlowVsEta;pe++) // pt or eta
19024 for(Int_t sc=0;sc<2;sc++) // sin or cos
19026 for(Int_t ci=0;ci<1;ci++) // correlator index
19028 fOtherDiffCorrelators[t][pe][sc][ci] = new TProfile(Form("%s, %s, %s, %s, ci = %d",otherDiffCorrelatorsName.Data(),typeFlag[t].Data(),ptEtaFlag[pe].Data(),sinCosFlag[sc].Data(),ci+1),Form("%s, %s, %s, %s, ci = %d",otherDiffCorrelatorsName.Data(),typeFlag[t].Data(),ptEtaFlag[pe].Data(),sinCosFlag[sc].Data(),ci+1),nBinsPtEta[pe],minPtEta[pe],maxPtEta[pe]);
19029 fOtherDiffCorrelators[t][pe][sc][ci]->Sumw2();
19030 fOtherDiffCorrelatorsList->Add(fOtherDiffCorrelators[t][pe][sc][ci]);
19035 // e) Book histograms holding final results.
19036 // reduced correlations:
19037 TString diffFlowCorrelationsHistName = "fDiffFlowCorrelationsHist";
19038 diffFlowCorrelationsHistName += fAnalysisLabel->Data();
19039 // corrections terms:
19040 TString diffFlowCorrectionTermsForNUAHistName = "fDiffFlowCorrectionTermsForNUAHist";
19041 diffFlowCorrectionTermsForNUAHistName += fAnalysisLabel->Data();
19042 // differential covariances:
19043 TString diffFlowCovariancesName = "fDiffFlowCovariances";
19044 diffFlowCovariancesName += fAnalysisLabel->Data();
19045 // differential Q-cumulants:
19046 TString diffFlowCumulantsName = "fDiffFlowCumulants";
19047 diffFlowCumulantsName += fAnalysisLabel->Data();
19048 // Detector bias to differential Q-cumulants:
19049 TString diffFlowDetectorBiasName = "fDiffFlowDetectorBias";
19050 diffFlowDetectorBiasName += fAnalysisLabel->Data();
19051 // differential flow:
19052 TString diffFlowName = "fDiffFlow";
19053 diffFlowName += fAnalysisLabel->Data();
19054 for(Int_t t=0;t<2;t++) // type: RP or POI
19056 for(Int_t pe=0;pe<1+(Int_t)fCalculateDiffFlowVsEta;pe++) // pt or eta
19058 for(Int_t index=0;index<4;index++)
19060 // reduced correlations:
19061 fDiffFlowCorrelationsHist[t][pe][index] = new TH1D(Form("%s, %s, %s, %s",diffFlowCorrelationsHistName.Data(),typeFlag[t].Data(),ptEtaFlag[pe].Data(),reducedCorrelationIndex[index].Data()),Form("%s, %s, %s, %s",diffFlowCorrelationsHistName.Data(),typeFlag[t].Data(),ptEtaFlag[pe].Data(),reducedCorrelationIndex[index].Data()),nBinsPtEta[pe],minPtEta[pe],maxPtEta[pe]);
19062 fDiffFlowCorrelationsHist[t][pe][index]->SetXTitle(ptEtaFlag[pe].Data());
19063 fDiffFlowCorrelationsHistList[t][pe]->Add(fDiffFlowCorrelationsHist[t][pe][index]);
19064 // differential Q-cumulants:
19065 fDiffFlowCumulants[t][pe][index] = new TH1D(Form("%s, %s, %s, %s",diffFlowCumulantsName.Data(),typeFlag[t].Data(),ptEtaFlag[pe].Data(),differentialCumulantIndex[index].Data()),Form("%s, %s, %s, %s",diffFlowCumulantsName.Data(),typeFlag[t].Data(),ptEtaFlag[pe].Data(),differentialCumulantIndex[index].Data()),nBinsPtEta[pe],minPtEta[pe],maxPtEta[pe]);
19066 fDiffFlowCumulants[t][pe][index]->SetXTitle(ptEtaFlag[pe].Data());
19067 fDiffFlowCumulantsHistList[t][pe]->Add(fDiffFlowCumulants[t][pe][index]);
19068 // Detector bias to differential Q-cumulants:
19069 fDiffFlowDetectorBias[t][pe][index] = new TH1D(Form("%s, %s, %s, %s",diffFlowDetectorBiasName.Data(),typeFlag[t].Data(),ptEtaFlag[pe].Data(),differentialCumulantIndex[index].Data()),Form("%s, %s, %s, %s",diffFlowDetectorBiasName.Data(),typeFlag[t].Data(),ptEtaFlag[pe].Data(),differentialCumulantIndex[index].Data()),nBinsPtEta[pe],minPtEta[pe],maxPtEta[pe]);
19070 fDiffFlowDetectorBias[t][pe][index]->SetXTitle(ptEtaFlag[pe].Data());
19071 fDiffFlowDetectorBias[t][pe][index]->SetTitle(Form("#frac{corrected}{measured} %s",differentialCumulantIndex[index].Data()));
19072 fDiffFlowDetectorBiasHistList[t][pe]->Add(fDiffFlowDetectorBias[t][pe][index]);
19073 // differential flow estimates from Q-cumulants:
19074 fDiffFlow[t][pe][index] = new TH1D(Form("%s, %s, %s, %s",diffFlowName.Data(),typeFlag[t].Data(),ptEtaFlag[pe].Data(),differentialFlowIndex[index].Data()),Form("%s, %s, %s, %s",diffFlowName.Data(),typeFlag[t].Data(),ptEtaFlag[pe].Data(),differentialFlowIndex[index].Data()),nBinsPtEta[pe],minPtEta[pe],maxPtEta[pe]);
19075 fDiffFlow[t][pe][index]->SetXTitle(ptEtaFlag[pe].Data());
19076 fDiffFlowHistList[t][pe]->Add(fDiffFlow[t][pe][index]);
19077 } // end of for(Int_t index=0;index<4;index++)
19078 for(Int_t covIndex=0;covIndex<5;covIndex++) // covariance index
19080 // differential covariances:
19081 fDiffFlowCovariances[t][pe][covIndex] = new TH1D(Form("%s, %s, %s, %s",diffFlowCovariancesName.Data(),typeFlag[t].Data(),ptEtaFlag[pe].Data(),covarianceName[covIndex].Data()),Form("%s, %s, %s, %s",diffFlowCovariancesName.Data(),typeFlag[t].Data(),ptEtaFlag[pe].Data(),covarianceName[covIndex].Data()),nBinsPtEta[pe],minPtEta[pe],maxPtEta[pe]);
19082 fDiffFlowCovariances[t][pe][covIndex]->SetXTitle(ptEtaFlag[pe].Data());
19083 fDiffFlowCovariancesHistList[t][pe]->Add(fDiffFlowCovariances[t][pe][covIndex]);
19084 } // end of for(Int_t covIndex=0;covIndex<5;covIndex++) // covariance index
19085 // products of both types of correlations:
19086 TString diffFlowProductOfCorrelationsProName = "fDiffFlowProductOfCorrelationsPro";
19087 diffFlowProductOfCorrelationsProName += fAnalysisLabel->Data();
19088 for(Int_t mci1=0;mci1<8;mci1++) // mixed correlation index
19090 for(Int_t mci2=mci1+1;mci2<8;mci2++) // mixed correlation index
19092 fDiffFlowProductOfCorrelationsPro[t][pe][mci1][mci2] = new TProfile(Form("%s, %s, %s, %s, %s",diffFlowProductOfCorrelationsProName.Data(),typeFlag[t].Data(),ptEtaFlag[pe].Data(),mixedCorrelationIndex[mci1].Data(),mixedCorrelationIndex[mci2].Data()),Form("%s, %s, %s, %s #times %s",diffFlowProductOfCorrelationsProName.Data(),typeFlag[t].Data(),ptEtaFlag[pe].Data(),mixedCorrelationIndex[mci1].Data(),mixedCorrelationIndex[mci2].Data()),nBinsPtEta[pe],minPtEta[pe],maxPtEta[pe]);
19093 fDiffFlowProductOfCorrelationsPro[t][pe][mci1][mci2]->SetXTitle(ptEtaFlag[pe].Data());
19094 fDiffFlowProductOfCorrelationsProList[t][pe]->Add(fDiffFlowProductOfCorrelationsPro[t][pe][mci1][mci2]);
19095 if(mci1%2 == 0) mci2++; // products which DO NOT include reduced correlations are not stored here
19096 } // end of for(Int_t mci2=mci1+1;mci2<8;mci2++) // mixed correlation index
19097 } // end of for(Int_t mci1=0;mci1<8;mci1++) // mixed correlation index
19098 } // end of for(Int_t pe=0;pe<2;pe++) // pt or eta
19099 } // end of for(Int_t t=0;t<2;t++) // type: RP or POI
19100 // sums of event weights for reduced correlations:
19101 TString diffFlowSumOfEventWeightsName = "fDiffFlowSumOfEventWeights";
19102 diffFlowSumOfEventWeightsName += fAnalysisLabel->Data();
19103 for(Int_t t=0;t<2;t++) // type is RP or POI
19105 for(Int_t pe=0;pe<1+(Int_t)fCalculateDiffFlowVsEta;pe++) // pt or eta
19107 for(Int_t p=0;p<2;p++) // power of weights is either 1 or 2
19109 for(Int_t ew=0;ew<4;ew++) // index of reduced correlation
19111 fDiffFlowSumOfEventWeights[t][pe][p][ew] = new TH1D(Form("%s, %s, %s, %s, %s",diffFlowSumOfEventWeightsName.Data(),typeFlag[t].Data(),ptEtaFlag[pe].Data(),powerFlag[p].Data(),reducedCorrelationIndex[ew].Data()),Form("%s, %s, %s, power = %s, %s",diffFlowSumOfEventWeightsName.Data(),typeFlag[t].Data(),ptEtaFlag[pe].Data(),powerFlag[p].Data(),reducedCorrelationIndex[ew].Data()),nBinsPtEta[pe],minPtEta[pe],maxPtEta[pe]);
19112 fDiffFlowSumOfEventWeights[t][pe][p][ew]->SetXTitle(ptEtaFlag[pe].Data());
19113 fDiffFlowSumOfEventWeightsHistList[t][pe][p]->Add(fDiffFlowSumOfEventWeights[t][pe][p][ew]); // to be improved (add dedicated list to hold all this)
19118 // sum of products of event weights for both types of correlations:
19119 TString diffFlowSumOfProductOfEventWeightsName = "fDiffFlowSumOfProductOfEventWeights";
19120 diffFlowSumOfProductOfEventWeightsName += fAnalysisLabel->Data();
19121 for(Int_t t=0;t<2;t++) // type is RP or POI
19123 for(Int_t pe=0;pe<1+(Int_t)fCalculateDiffFlowVsEta;pe++) // pt or eta
19125 for(Int_t mci1=0;mci1<8;mci1++) // mixed correlation index
19127 for(Int_t mci2=mci1+1;mci2<8;mci2++) // mixed correlation index
19129 fDiffFlowSumOfProductOfEventWeights[t][pe][mci1][mci2] = new TH1D(Form("%s, %s, %s, %s, %s",diffFlowSumOfProductOfEventWeightsName.Data(),typeFlag[t].Data(),ptEtaFlag[pe].Data(),mixedCorrelationIndex[mci1].Data(),mixedCorrelationIndex[mci2].Data()),Form("%s, %s, %s, %s #times %s",diffFlowSumOfProductOfEventWeightsName.Data(),typeFlag[t].Data(),ptEtaFlag[pe].Data(),mixedCorrelationIndex[mci1].Data(),mixedCorrelationIndex[mci2].Data()),nBinsPtEta[pe],minPtEta[pe],maxPtEta[pe]);
19130 fDiffFlowSumOfProductOfEventWeights[t][pe][mci1][mci2]->SetXTitle(ptEtaFlag[pe].Data());
19131 fDiffFlowSumOfProductOfEventWeightsHistList[t][pe]->Add(fDiffFlowSumOfProductOfEventWeights[t][pe][mci1][mci2]);
19132 if(mci1%2 == 0) mci2++; // products which DO NOT include reduced correlations are not stored here
19137 // correction terms for nua:
19138 for(Int_t t=0;t<2;t++) // typeFlag (0 = RP, 1 = POI)
19140 for(Int_t pe=0;pe<1+(Int_t)fCalculateDiffFlowVsEta;pe++) // pt or eta
19142 for(Int_t sc=0;sc<2;sc++) // sin or cos
19144 for(Int_t cti=0;cti<9;cti++) // correction term index
19146 fDiffFlowCorrectionTermsForNUAHist[t][pe][sc][cti] = new TH1D(Form("%s, %s, %s, %s, cti = %d",diffFlowCorrectionTermsForNUAHistName.Data(),typeFlag[t].Data(),ptEtaFlag[pe].Data(),sinCosFlag[sc].Data(),cti+1),Form("%s, %s, %s, %s, cti = %d",diffFlowCorrectionTermsForNUAHistName.Data(),typeFlag[t].Data(),ptEtaFlag[pe].Data(),sinCosFlag[sc].Data(),cti+1),nBinsPtEta[pe],minPtEta[pe],maxPtEta[pe]);
19147 fDiffFlowCorrectionsHistList[t][pe]->Add(fDiffFlowCorrectionTermsForNUAHist[t][pe][sc][cti]);
19153 } // end of AliFlowAnalysisWithQCumulants::BookEverythingForDifferentialFlow()
19155 //=======================================================================================================================
19157 void AliFlowAnalysisWithQCumulants::CalculateQcumulantsCorrectedForNUAIntFlow()
19159 // Calculate generalized Q-cumulants (cumulants corrected for non-unifom acceptance).
19161 // Isotropic cumulants:
19162 Double_t QC2 = fIntFlowQcumulants->GetBinContent(1);
19163 Double_t QC2Error = fIntFlowQcumulants->GetBinError(1);
19164 Double_t QC4 = fIntFlowQcumulants->GetBinContent(2);
19165 Double_t QC4Error = fIntFlowQcumulants->GetBinError(2);
19166 //Double_t QC6 = fIntFlowQcumulants->GetBinContent(3);
19167 //Double_t QC6Error = fIntFlowQcumulants->GetBinError(3);
19168 //Double_t QC8 = fIntFlowQcumulants->GetBinContent(4);
19169 //Double_t QC8Error = fIntFlowQcumulants->GetBinError(4);
19171 // Measured 2-, 4-, 6- and 8-particle correlations:
19172 Double_t two = fIntFlowCorrelationsHist->GetBinContent(1); // <<2>>
19173 Double_t twoError = fIntFlowCorrelationsHist->GetBinError(1); // statistical error of <<2>>
19174 Double_t four = fIntFlowCorrelationsHist->GetBinContent(2); // <<4>>
19175 Double_t fourError = fIntFlowCorrelationsHist->GetBinError(2); // statistical error of <<4>>
19176 //Double_t six = fIntFlowCorrelationsHist->GetBinContent(3); // <<6>>
19177 //Double_t sixError = fIntFlowCorrelationsHist->GetBinError(3); // statistical error of <<6>>
19178 //Double_t eight = fIntFlowCorrelationsHist->GetBinContent(4); // <<8>>
19179 //Double_t eightError = fIntFlowCorrelationsHist->GetBinError(4); // statistical error of <<8>>
19181 // Non-isotropic terms:
19182 Double_t c1 = fIntFlowCorrectionTermsForNUAHist[1]->GetBinContent(1); // <<cos(n*phi1)>>
19183 Double_t c1Error = fIntFlowCorrectionTermsForNUAHist[1]->GetBinError(1); // statistical error of <<cos(n*phi1)>>
19184 Double_t c2 = fIntFlowCorrectionTermsForNUAHist[1]->GetBinContent(2); // <<cos(n*(phi1+phi2))>>
19185 Double_t c2Error = fIntFlowCorrectionTermsForNUAHist[1]->GetBinError(2); // statistical error of <<cos(n*(phi1+phi2))>>
19186 Double_t c3 = fIntFlowCorrectionTermsForNUAHist[1]->GetBinContent(3); // <<cos(n*(phi1-phi2-phi3))>>
19187 Double_t c3Error = fIntFlowCorrectionTermsForNUAHist[1]->GetBinError(3); // statistical error of <<cos(n*(phi1-phi2-phi3))>>
19188 Double_t s1 = fIntFlowCorrectionTermsForNUAHist[0]->GetBinContent(1); // <<sin(n*phi1)>>
19189 Double_t s1Error = fIntFlowCorrectionTermsForNUAHist[0]->GetBinError(1); // statistical error of <<sin(n*phi1)>>
19190 Double_t s2 = fIntFlowCorrectionTermsForNUAHist[0]->GetBinContent(2); // <<sin(n*(phi1+phi2))>>
19191 Double_t s2Error = fIntFlowCorrectionTermsForNUAHist[0]->GetBinError(2); // statistical error of <<sin(n*(phi1+phi2))>>
19192 Double_t s3 = fIntFlowCorrectionTermsForNUAHist[0]->GetBinContent(3); // <<sin(n*(phi1-phi2-phi3))>>
19193 Double_t s3Error = fIntFlowCorrectionTermsForNUAHist[0]->GetBinError(3); // statistical error of <<sin(n*(phi1-phi2-phi3))>>
19196 Double_t a1 = 2.*pow(c1,2.)+2.*pow(s1,2.)-two;
19197 Double_t a2 = 6.*pow(c1,3.)-2.*c1*c2+c3+6.*c1*pow(s1,2.)-2.*s1*s2-4.*c1*two;
19198 Double_t a3 = 2.*pow(s1,2.)-2.*pow(c1,2.)+c2;
19199 Double_t a4 = 6.*pow(s1,3.)+6.*pow(c1,2.)*s1+2.*c2*s1-2.*c1*s2-s3-4.*s1*two;
19200 Double_t a5 = 4.*c1*s1-s2;
19202 // Covariances (including weight dependent prefactor):
19203 Double_t wCov1 = 0.; // w*Cov(<2>,<cos(phi))
19204 Double_t wCov2 = 0.; // w*Cov(<2>,<sin(phi))
19205 Double_t wCov3 = 0.; // w*Cov(<cos(phi),<sin(phi))
19206 Double_t wCov4 = 0.; // w*Cov(<2>,<4>)
19207 Double_t wCov5 = 0.; // w*Cov(<2>,<cos(#phi_{1}+#phi_{2})>)
19208 Double_t wCov6 = 0.; // w*Cov(<2>,<cos(#phi_{1}-#phi_{2}-#phi_{3})>)
19209 Double_t wCov7 = 0.; // w*Cov(<2>,<sin(#phi_{1}+#phi_{2})>)
19210 Double_t wCov8 = 0.; // w*Cov(<2>,<sin(#phi_{1}-#phi_{2}-#phi_{3})>)
19211 Double_t wCov9 = 0.; // w*Cov(<4>,<cos(#phi)>
19212 Double_t wCov10 = 0.; // w*Cov(<4>,<cos(#phi_{1}+#phi_{2})>)
19213 Double_t wCov11 = 0.; // w*Cov(<4>,<cos(#phi_{1}-#phi_{2}-#phi_{3})>)
19214 Double_t wCov12 = 0.; // w*Cov(<4>,<sin(#phi)>
19215 Double_t wCov13 = 0.; // w*Cov(<4>,<sin(#phi_{1}+#phi_{2})>)
19216 Double_t wCov14 = 0.; // w*Cov(<4>,<sin(#phi_{1}-#phi_{2}-#phi_{3})>)
19217 Double_t wCov15 = 0.; // w*Cov(<cos(#phi)>,<cos(#phi_{1}+#phi_{2})>)
19218 Double_t wCov16 = 0.; // w*Cov(<cos(#phi)>,<cos(#phi_{1}-#phi_{2}-#phi_{3})>)
19219 Double_t wCov17 = 0.; // w*Cov(<cos(#phi)>,<sin(#phi_{1}+#phi_{2})>)
19220 Double_t wCov18 = 0.; // w*Cov(<cos(#phi)>,<sin(#phi_{1}-#phi_{2}-#phi_{3})>)
19221 Double_t wCov19 = 0.; // w*Cov(<cos(#phi_{1}+#phi_{2})>,<cos(#phi_{1}-#phi_{2}-#phi_{3})>)
19222 Double_t wCov20 = 0.; // w*Cov(<sin(#phi)>,<cos(#phi_{1}+#phi_{2})>)
19223 Double_t wCov21 = 0.; // w*Cov(<cos(#phi_{1}+#phi_{2})>,<sin(#phi_{1}+#phi_{2})>)
19224 Double_t wCov22 = 0.; // w*Cov(<cos(#phi_{1}+#phi_{2})>,<sin(#phi_{1}-#phi_{2}-#phi_{3})>)
19225 Double_t wCov23 = 0.; // w*Cov(<sin(#phi)>,<cos(#phi_{1}-#phi_{2}-#phi_{3})>)
19226 Double_t wCov24 = 0.; // w*Cov(<sin(#phi_{1}+#phi_{2})>,<cos(#phi_{1}-#phi_{2}-#phi_{3})>)
19227 Double_t wCov25 = 0.; // w*Cov(<cos(#phi_{1}-#phi_{2}-#phi_{3}>,<sin(#phi_{1}-#phi_{2}-#phi_{3}>)
19228 Double_t wCov26 = 0.; // w*Cov(<sin(#phi)>,<sin(#phi_{1}+#phi_{2})>)
19229 Double_t wCov27 = 0.; // w*Cov(<sin(#phi)>,<sin(#phi_{1}-#phi_{2}-#phi_{3})>)
19230 Double_t wCov28 = 0.; // w*Cov(<sin(#phi_{1}+#phi_{2})>,<sin(#phi_{1}-#phi_{2}-#phi_{3})>)
19231 if(!fForgetAboutCovariances)
19233 wCov1 = fIntFlowCovariancesNUA->GetBinContent(1); // w*Cov(<2>,<cos(phi))
19234 wCov2 = fIntFlowCovariancesNUA->GetBinContent(2); // w*Cov(<2>,<sin(phi))
19235 wCov3 = fIntFlowCovariancesNUA->GetBinContent(3); // w*Cov(<cos(phi),<sin(phi))
19236 wCov4 = fIntFlowCovariances->GetBinContent(1); // w*Cov(<2>,<4>)
19237 wCov5 = fIntFlowCovariancesNUA->GetBinContent(4); // w*Cov(<2>,<cos(#phi_{1}+#phi_{2})>)
19238 wCov6 = fIntFlowCovariancesNUA->GetBinContent(6); // w*Cov(<2>,<cos(#phi_{1}-#phi_{2}-#phi_{3})>)
19239 wCov7 = fIntFlowCovariancesNUA->GetBinContent(5); // w*Cov(<2>,<sin(#phi_{1}+#phi_{2})>)
19240 wCov8 = fIntFlowCovariancesNUA->GetBinContent(7); // w*Cov(<2>,<sin(#phi_{1}-#phi_{2}-#phi_{3})>)
19241 wCov9 = fIntFlowCovariancesNUA->GetBinContent(8); // w*Cov(<4>,<cos(#phi)>
19242 wCov10 = fIntFlowCovariancesNUA->GetBinContent(10); // w*Cov(<4>,<cos(#phi_{1}+#phi_{2})>)
19243 wCov11 = fIntFlowCovariancesNUA->GetBinContent(12); // w*Cov(<4>,<cos(#phi_{1}-#phi_{2}-#phi_{3})>)
19244 wCov12 = fIntFlowCovariancesNUA->GetBinContent(9); // w*Cov(<4>,<sin(#phi)>
19245 wCov13 = fIntFlowCovariancesNUA->GetBinContent(11); // w*Cov(<4>,<sin(#phi_{1}+#phi_{2})>)
19246 wCov14 = fIntFlowCovariancesNUA->GetBinContent(13); // w*Cov(<4>,<sin(#phi_{1}-#phi_{2}-#phi_{3})>)
19247 wCov15 = fIntFlowCovariancesNUA->GetBinContent(14); // w*Cov(<cos(#phi)>,<cos(#phi_{1}+#phi_{2})>)
19248 wCov16 = fIntFlowCovariancesNUA->GetBinContent(16); // w*Cov(<cos(#phi)>,<cos(#phi_{1}-#phi_{2}-#phi_{3})>)
19249 wCov17 = fIntFlowCovariancesNUA->GetBinContent(15); // w*Cov(<cos(#phi)>,<sin(#phi_{1}+#phi_{2})>)
19250 wCov18 = fIntFlowCovariancesNUA->GetBinContent(17); // w*Cov(<cos(#phi)>,<sin(#phi_{1}-#phi_{2}-#phi_{3})>)
19251 wCov19 = fIntFlowCovariancesNUA->GetBinContent(23); // w*Cov(<cos(#phi_{1}+#phi_{2})>,<cos(#phi_{1}-#phi_{2}-#phi_{3})>)
19252 wCov20 = fIntFlowCovariancesNUA->GetBinContent(18); // w*Cov(<sin(#phi)>,<cos(#phi_{1}+#phi_{2})>)
19253 wCov21 = fIntFlowCovariancesNUA->GetBinContent(22); // w*Cov(<cos(#phi_{1}+#phi_{2})>,<sin(#phi_{1}+#phi_{2})>)
19254 wCov22 = fIntFlowCovariancesNUA->GetBinContent(24); // w*Cov(<cos(#phi_{1}+#phi_{2})>,<sin(#phi_{1}-#phi_{2}-#phi_{3})>)
19255 wCov23 = fIntFlowCovariancesNUA->GetBinContent(20); // w*Cov(<sin(#phi)>,<cos(#phi_{1}-#phi_{2}-#phi_{3})>)
19256 wCov24 = fIntFlowCovariancesNUA->GetBinContent(25); // w*Cov(<sin(#phi_{1}+#phi_{2})>,<cos(#phi_{1}-#phi_{2}-#phi_{3})>)
19257 wCov25 = fIntFlowCovariancesNUA->GetBinContent(27); // w*Cov(<cos(#phi_{1}-#phi_{2}-#phi_{3}>,<sin(#phi_{1}-#phi_{2}-#phi_{3}>)
19258 wCov26 = fIntFlowCovariancesNUA->GetBinContent(19); // w*Cov(<sin(#phi)>,<sin(#phi_{1}+#phi_{2})>)
19259 wCov27 = fIntFlowCovariancesNUA->GetBinContent(21); // w*Cov(<sin(#phi)>,<sin(#phi_{1}-#phi_{2}-#phi_{3})>)
19260 wCov28 = fIntFlowCovariancesNUA->GetBinContent(26); // w*Cov(<sin(#phi_{1}+#phi_{2})>,<sin(#phi_{1}-#phi_{2}-#phi_{3})>)
19261 } // end of if(!fForgetAboutCovariances)
19263 // Calculating generalized QC{2}:
19264 // Generalized QC{2}:
19265 Double_t gQC2 = two - pow(c1,2.) - pow(s1,2.);
19266 if(fApplyCorrectionForNUA){fIntFlowQcumulants->SetBinContent(1,gQC2);}
19267 // Statistical error of generalized QC{2}:
19268 Double_t gQC2ErrorSquared = pow(twoError,2.)+4.*pow(c1,2.)*pow(c1Error,2.)
19269 + 4.*pow(s1,2.)*pow(s1Error,2.)
19270 - 4*c1*wCov1-4*s1*wCov2
19272 // Store ratio of error squared - with/without NUA terms:
19273 Double_t ratioErrorSquaredQC2 = 0.;
19274 if(fIntFlowQcumulants->GetBinError(1)>0.)
19276 ratioErrorSquaredQC2 = (gQC2ErrorSquared/pow(fIntFlowQcumulants->GetBinError(1),2.));
19277 fIntFlowQcumulantsErrorSquaredRatio->SetBinContent(1,ratioErrorSquaredQC2);
19279 // If enabled, store error by including non-isotropic terms:
19280 if(fApplyCorrectionForNUA && fPropagateErrorAlsoFromNIT)
19282 if(gQC2ErrorSquared>=0.)
19284 fIntFlowQcumulants->SetBinError(1,pow(gQC2ErrorSquared,0.5));
19287 fIntFlowQcumulants->SetBinError(1,0.);
19289 cout<<" WARNING (QC): Statistical error of generalized QC{2} is imaginary !!!!"<<endl;
19292 } // end of if(fApplyCorrectionForNUA && fPropagateErrorAlsoFromNIT)
19293 // Quantify detector bias to QC{2}:
19294 if(TMath::Abs(QC2)>0.)
19296 fIntFlowDetectorBias->SetBinContent(1,gQC2/QC2);
19299 Double_t errorSquared = gQC2ErrorSquared/pow(QC2,2.)+pow(gQC2,2.)*pow(QC2Error,2.)/pow(QC2,4.);
19300 if(errorSquared>0.)
19302 fIntFlowDetectorBias->SetBinError(1,pow(errorSquared,0.5));
19305 } // end of if(TMath::Abs(QC2)>0.)
19307 // Calculating generalized QC{4}:
19308 // Generalized QC{4}:
19309 Double_t gQC4 = four-2.*pow(two,2.)
19310 - 4.*c1*c3+4.*s1*s3-pow(c2,2.)-pow(s2,2.)
19311 + 4.*c2*(pow(c1,2.)-pow(s1,2.))+8.*s2*s1*c1
19312 + 8.*two*(pow(c1,2.)+pow(s1,2.))-6.*pow((pow(c1,2.)+pow(s1,2.)),2.);
19313 if(fApplyCorrectionForNUA){fIntFlowQcumulants->SetBinContent(2,gQC4);}
19314 // Statistical error of generalized QC{4}:
19315 Double_t gQC4ErrorSquared = 16.*pow(a1,2.)*pow(twoError,2.)+pow(fourError,2.)+16.*pow(a2,2.)*pow(c1Error,2.)
19316 + 4.*pow(a3,2.)*pow(c2Error,2.)+16.*pow(c1,2.)*pow(c3Error,2.)
19317 + 16.*pow(a4,2.)*pow(s1Error,2.)+4.*pow(a5,2.)*pow(s2Error,2.)
19318 + 16.*pow(s1,2.)*pow(s3Error,2.)+8.*a1*wCov4-32.*a1*a2*wCov1
19319 - 16.*a3*a1*wCov5-32.*c1*a1*wCov6-32.*a1*a4*wCov2+16.*a5*a1*wCov7
19320 + 32.*s1*a1*wCov8-8.*a2*wCov9-4.*a3*wCov10-8.*c1*wCov11-8.*a4*wCov12
19321 + 4.*a5*wCov13+8.*s1*wCov14+16.*a3*a2*wCov15+32.*c1*a2*wCov16+32.*a2*a4*wCov3
19322 - 16.*a5*a2*wCov17-32.*s1*a2*wCov18+16.*c1*a3*wCov19+16.*a3*a4*wCov20
19323 - 8.*a3*a5*wCov21-16.*s1*a3*wCov22+32.*c1*a4*wCov23-16.*c1*a5*wCov24
19324 - 32.*c1*s1*wCov25-16.*a5*a4*wCov26-32.*s1*a4*wCov27+16.*s1*a5*wCov28;
19325 // Store ratio of error squared - with/without NUA terms:
19326 Double_t ratioErrorSquaredQC4 = 0.;
19327 if(fIntFlowQcumulants->GetBinError(2)>0.)
19329 ratioErrorSquaredQC4 = (gQC4ErrorSquared/pow(fIntFlowQcumulants->GetBinError(2),2.));
19330 fIntFlowQcumulantsErrorSquaredRatio->SetBinContent(2,ratioErrorSquaredQC4);
19332 if(fApplyCorrectionForNUA && fPropagateErrorAlsoFromNIT)
19334 if(gQC4ErrorSquared>=0.)
19336 fIntFlowQcumulants->SetBinError(2,pow(gQC4ErrorSquared,0.5));
19339 fIntFlowQcumulants->SetBinError(2,0.);
19341 cout<<" WARNING (QC): Statistical error of generalized QC{4} is imaginary !!!!"<<endl;
19344 } // end of if(fApplyCorrectionForNUA && fPropagateErrorAlsoFromNIT)
19345 // Quantify detector bias to QC{4}:
19346 if(TMath::Abs(QC4)>0.)
19348 fIntFlowDetectorBias->SetBinContent(2,gQC4/QC4);
19351 Double_t errorSquared = gQC4ErrorSquared/pow(QC4,2.)+pow(gQC4,2.)*pow(QC4Error,2.)/pow(QC4,4.);
19352 if(errorSquared>0.)
19354 fIntFlowDetectorBias->SetBinError(2,pow(errorSquared,0.5));
19357 } // end of if(TMath::Abs(QC4)>0.)
19360 // .... to be improved (continued for 6th and 8th order) ....
19363 // versus multiplicity:
19364 if(fCalculateCumulantsVsM) // to be improved - propagate error for nua terms vs M
19366 Int_t nBins = fIntFlowCorrelationsVsMPro[0]->GetNbinsX(); // to be improved (hardwired 0)
19367 Double_t value[4] = {0.}; // QCs vs M
19368 Double_t error[4] = {0.}; // error of QCs vs M
19369 Double_t dSum1[4] = {0.}; // sum value_i/(error_i)^2
19370 Double_t dSum2[4] = {0.}; // sum 1/(error_i)^2
19371 for(Int_t b=1;b<=nBins;b++)
19373 // Measured correlations:
19374 two = fIntFlowCorrelationsVsMHist[0]->GetBinContent(b); // <<2>> vs M
19375 four = fIntFlowCorrelationsVsMHist[1]->GetBinContent(b); // <<4>> vs M
19376 // Isotropic cumulants:
19378 QC4 = four-2.*pow(two,2.);
19379 // Non-isotropic terms:
19380 c1 = fIntFlowCorrectionTermsForNUAVsMPro[1][0]->GetBinContent(b); // <<cos(n*phi1)>>
19381 c2 = fIntFlowCorrectionTermsForNUAVsMPro[1][1]->GetBinContent(b); // <<cos(n*(phi1+phi2))>>
19382 c3 = fIntFlowCorrectionTermsForNUAVsMPro[1][2]->GetBinContent(b); // <<cos(n*(phi1-phi2-phi3))>>
19383 s1 = fIntFlowCorrectionTermsForNUAVsMPro[0][0]->GetBinContent(b); // <<sin(n*phi1)>>
19384 s2 = fIntFlowCorrectionTermsForNUAVsMPro[0][1]->GetBinContent(b); // <<sin(n*(phi1+phi2))>>
19385 s3 = fIntFlowCorrectionTermsForNUAVsMPro[0][2]->GetBinContent(b); // <<sin(n*(phi1-phi2-phi3))>>
19386 // Generalized QC{2} vs M:
19387 gQC2 = two - pow(c1,2.) - pow(s1,2.);
19388 if(fApplyCorrectionForNUAVsM){fIntFlowQcumulantsVsM[0]->SetBinContent(b,gQC2);}
19389 // Generalized QC{4} vs M:
19390 gQC4 = four-2.*pow(two,2.)
19391 - 4.*c1*c3+4.*s1*s3-pow(c2,2.)-pow(s2,2.)
19392 + 4.*c2*(pow(c1,2.)-pow(s1,2.))+8.*s2*s1*c1
19393 + 8.*two*(pow(c1,2.)+pow(s1,2.))-6.*pow((pow(c1,2.)+pow(s1,2.)),2.);
19394 if(fApplyCorrectionForNUAVsM){fIntFlowQcumulantsVsM[1]->SetBinContent(b,gQC4);}
19395 // Detector bias vs M:
19396 if(TMath::Abs(QC2)>0.)
19398 fIntFlowDetectorBiasVsM[0]->SetBinContent(b,gQC2/QC2);
19399 } // end of if(TMath::Abs(QC2)>0.)
19400 if(TMath::Abs(QC4)>0.)
19402 fIntFlowDetectorBiasVsM[1]->SetBinContent(b,gQC4/QC4);
19403 } // end of if(TMath::Abs(QC4)>0.)
19405 for(Int_t co=0;co<4;co++)
19407 value[co] = fIntFlowQcumulantsVsM[co]->GetBinContent(b);
19408 error[co] = fIntFlowQcumulantsVsM[co]->GetBinError(b);
19411 dSum1[co]+=value[co]/(error[co]*error[co]);
19412 dSum2[co]+=1./(error[co]*error[co]);
19414 } // end of for(Int_t co=0;co<4;co++)
19415 } // end of for(Int_t b=1;b<=nBins;b++)
19416 // Store rebinned Q-cumulants:
19417 if(fApplyCorrectionForNUAVsM)
19419 for(Int_t co=0;co<4;co++)
19423 fIntFlowQcumulantsRebinnedInM->SetBinContent(co+1,dSum1[co]/dSum2[co]);
19424 fIntFlowQcumulantsRebinnedInM->SetBinError(co+1,pow(1./dSum2[co],0.5));
19426 } // end of for(Int_t co=0;co<4;co++)
19427 } // end of if(fApplyCorrectionForNUAVsM)
19428 } // end of if(fCalculateCumulantsVsM)
19430 } // end of void AliFlowAnalysisWithQCumulants::CalculateQcumulantsCorrectedForNUAIntFlow()
19432 //=======================================================================================================================
19434 void AliFlowAnalysisWithQCumulants::FinalizeCorrectionTermsForNUAIntFlow()
19436 // From profile fIntFlowCorrectionTermsForNUAPro[sc] access measured correction terms for NUA
19437 // and their spread, correctly calculate the statistical errors and store the final
19438 // results and statistical errors for correction terms for NUA in histogram fIntFlowCorrectionTermsForNUAHist[sc].
19440 // Remark: Statistical error of correction temrs is calculated as:
19442 // statistical error = termA * spread * termB:
19443 // termA = sqrt{sum_{i=1}^{N} w^2}/(sum_{i=1}^{N} w)
19444 // termB = 1/sqrt(1-termA^2)
19446 TString sinCosFlag[2] = {"sin","cos"}; // to be improved - promore this to data member?
19447 TString nonisotropicTermFlag[4] = {"(n(phi1))","(n(phi1+phi2))","(n(phi1-phi2-phi3))","(n(2phi1-phi2))"}; // to be improved - hardwired 4
19449 for(Int_t sc=0;sc<2;sc++) // sin or cos correction terms
19451 for(Int_t ci=1;ci<=4;ci++) // correction term index (to be improved - hardwired 4)
19453 Double_t correction = fIntFlowCorrectionTermsForNUAPro[sc]->GetBinContent(ci);
19454 Double_t spread = fIntFlowCorrectionTermsForNUAPro[sc]->GetBinError(ci);
19455 Double_t sumOfLinearEventWeights = fIntFlowSumOfEventWeightsNUA[sc][0]->GetBinContent(ci);
19456 Double_t sumOfQuadraticEventWeights = fIntFlowSumOfEventWeightsNUA[sc][1]->GetBinContent(ci);
19457 Double_t termA = 0.;
19458 Double_t termB = 0.;
19459 if(TMath::Abs(sumOfLinearEventWeights)>1.e-44)
19461 termA = pow(sumOfQuadraticEventWeights,0.5)/sumOfLinearEventWeights;
19464 cout<<" WARNING (QC): sumOfLinearEventWeights == 0 in AFAWQC::FCTFNIF() !!!!"<<endl;
19465 cout<<Form(" (for <<%s[%s]>> non-isotropic term)",sinCosFlag[sc].Data(),nonisotropicTermFlag[ci-1].Data())<<endl;
19467 if(1.-pow(termA,2.) > 0.)
19469 termB = 1./pow(1-pow(termA,2.),0.5);
19472 cout<<" WARNING (QC): 1.-pow(termA,2.) <= 0 in AFAWQC::FCTFNIF() !!!!"<<endl;
19473 cout<<Form(" (for <<%s[%s]>> non-isotropic term)",sinCosFlag[sc].Data(),nonisotropicTermFlag[ci-1].Data())<<endl;
19475 Double_t statisticalError = termA * spread * termB;
19476 fIntFlowCorrectionTermsForNUAHist[sc]->SetBinContent(ci,correction);
19477 fIntFlowCorrectionTermsForNUAHist[sc]->SetBinError(ci,statisticalError);
19478 } // end of for(Int_t ci=1;ci<=4;ci++) // correction term index
19479 } // end of for(Int sc=0;sc<2;sc++) // sin or cos correction terms
19481 } // end of void AliFlowAnalysisWithQCumulants::FinalizeCorrectionTermsForNUAIntFlow()
19483 //=======================================================================================================================
19485 void AliFlowAnalysisWithQCumulants::GetPointersForNestedLoopsHistograms()
19487 // Get pointers to all objects relevant for calculations with nested loops.
19489 TList *nestedLoopsList = dynamic_cast<TList*>(fHistList->FindObject("Nested Loops"));
19490 if(nestedLoopsList)
19492 this->SetNestedLoopsList(nestedLoopsList);
19495 cout<<"WARNING: nestedLoopsList is NULL in AFAWQC::GPFNLH() !!!!"<<endl;
19499 TString sinCosFlag[2] = {"sin","cos"}; // to be improved (should I promote this to data members?)
19500 TString typeFlag[2] = {"RP","POI"}; // to be improved (should I promote this to data members?)
19501 TString ptEtaFlag[2] = {"p_{T}","#eta"}; // to be improved (should I promote this to data members?)
19502 TString reducedCorrelationIndex[4] = {"<2'>","<4'>","<6'>","<8'>"}; // to be improved (should I promote this to data members?)
19504 TString evaluateNestedLoopsName = "fEvaluateNestedLoops";
19505 evaluateNestedLoopsName += fAnalysisLabel->Data();
19506 TProfile *evaluateNestedLoops = dynamic_cast<TProfile*>(nestedLoopsList->FindObject(evaluateNestedLoopsName.Data()));
19507 Bool_t bEvaluateIntFlowNestedLoops = kFALSE;
19508 Bool_t bEvaluateDiffFlowNestedLoops = kFALSE;
19509 if(evaluateNestedLoops)
19511 this->SetEvaluateNestedLoops(evaluateNestedLoops);
19512 bEvaluateIntFlowNestedLoops = (Int_t)evaluateNestedLoops->GetBinContent(1);
19513 bEvaluateDiffFlowNestedLoops = (Int_t)evaluateNestedLoops->GetBinContent(2);
19515 // nested loops relevant for integrated flow:
19516 if(bEvaluateIntFlowNestedLoops)
19519 TString intFlowDirectCorrelationsName = "fIntFlowDirectCorrelations";
19520 intFlowDirectCorrelationsName += fAnalysisLabel->Data();
19521 TProfile *intFlowDirectCorrelations = dynamic_cast<TProfile*>(nestedLoopsList->FindObject(intFlowDirectCorrelationsName.Data()));
19522 if(intFlowDirectCorrelations)
19524 this->SetIntFlowDirectCorrelations(intFlowDirectCorrelations);
19527 cout<<"WARNING: intFlowDirectCorrelations is NULL in AFAWQC::GPFNLH() !!!!"<<endl;
19530 if(fUsePhiWeights||fUsePtWeights||fUseEtaWeights||fUseTrackWeights)
19532 TString intFlowExtraDirectCorrelationsName = "fIntFlowExtraDirectCorrelations";
19533 intFlowExtraDirectCorrelationsName += fAnalysisLabel->Data();
19534 TProfile *intFlowExtraDirectCorrelations = dynamic_cast<TProfile*>(nestedLoopsList->FindObject(intFlowExtraDirectCorrelationsName.Data()));
19535 if(intFlowExtraDirectCorrelations)
19537 this->SetIntFlowExtraDirectCorrelations(intFlowExtraDirectCorrelations);
19540 cout<<"WARNING: intFlowExtraDirectCorrelations is NULL in AFAWQC::GPFNLH() !!!!"<<endl;
19543 } // end of if(fUsePhiWeights||fUsePtWeights||fUseEtaWeights||fUseTrackWeights)
19544 // correction terms for non-uniform acceptance:
19545 TString intFlowDirectCorrectionTermsForNUAName = "fIntFlowDirectCorrectionTermsForNUA";
19546 intFlowDirectCorrectionTermsForNUAName += fAnalysisLabel->Data();
19547 TProfile *intFlowDirectCorrectionTermsForNUA[2] = {NULL};
19548 for(Int_t sc=0;sc<2;sc++) // sin or cos terms
19550 intFlowDirectCorrectionTermsForNUA[sc] = dynamic_cast<TProfile*>(nestedLoopsList->FindObject(Form("%s: %s terms",intFlowDirectCorrectionTermsForNUAName.Data(),sinCosFlag[sc].Data())));
19551 if(intFlowDirectCorrectionTermsForNUA[sc])
19553 this->SetIntFlowDirectCorrectionTermsForNUA(intFlowDirectCorrectionTermsForNUA[sc],sc);
19556 cout<<"WARNING: intFlowDirectCorrectionTermsForNUA[sc] is NULL in AFAWQC::GPFNLH() !!!!"<<endl;
19557 cout<<"sc = "<<sc<<endl;
19560 } // end of for(Int_t sc=0;sc<2;sc++)
19561 // Mixed harmonics:
19562 if(fCalculateMixedHarmonics)
19564 TString mixedHarmonicsNestedLoopsName = "fMixedHarmonicsNestedLoops";
19565 mixedHarmonicsNestedLoopsName += fAnalysisLabel->Data();
19566 TProfile *mixedHarmonicsNestedLoops = dynamic_cast<TProfile*>(nestedLoopsList->FindObject(mixedHarmonicsNestedLoopsName.Data()));
19567 if(mixedHarmonicsNestedLoops)
19569 this->SetMixedHarmonicsNestedLoops(mixedHarmonicsNestedLoops);
19572 cout<<"WARNING: mixedHarmonicsNestedLoops is NULL in AFAWQC::GPFNLH() !!!!"<<endl;
19575 } // end of if(fCalculateMixedHarmonics)
19576 } // end of if(bEvaluateIntFlowNestedLoops)
19578 // nested loops relevant for differential flow:
19579 if(bEvaluateDiffFlowNestedLoops)
19582 TString diffFlowDirectCorrelationsName = "fDiffFlowDirectCorrelations";
19583 diffFlowDirectCorrelationsName += fAnalysisLabel->Data();
19584 TProfile *diffFlowDirectCorrelations[2][2][4] = {{{NULL}}};
19585 for(Int_t t=0;t<2;t++)
19587 for(Int_t pe=0;pe<2;pe++)
19589 for(Int_t ci=0;ci<4;ci++) // correlation index
19591 diffFlowDirectCorrelations[t][pe][ci] = dynamic_cast<TProfile*>(nestedLoopsList->FindObject(Form("%s, %s, %s, %s",diffFlowDirectCorrelationsName.Data(),typeFlag[t].Data(),ptEtaFlag[pe].Data(),reducedCorrelationIndex[ci].Data())));
19592 if(diffFlowDirectCorrelations[t][pe][ci])
19594 this->SetDiffFlowDirectCorrelations(diffFlowDirectCorrelations[t][pe][ci],t,pe,ci);
19597 cout<<"WARNING: diffFlowDirectCorrelations[t][pe][ci] is NULL in AFAWQC::GPFDFH() !!!!"<<endl;
19598 cout<<"t = "<<t<<endl;
19599 cout<<"pe = "<<pe<<endl;
19600 cout<<"ci = "<<ci<<endl;
19602 } // end of for(Int_t ci=0;ci<4;ci++) // correlation index
19603 } // end of for(Int_t pe=0;pe<2;pe++)
19604 } // end of for(Int_t t=0;t<2;t++)
19605 // correction terms for non-uniform acceptance:
19606 TString diffFlowDirectCorrectionTermsForNUAName = "fDiffFlowDirectCorrectionTermsForNUA";
19607 diffFlowDirectCorrectionTermsForNUAName += fAnalysisLabel->Data();
19608 TProfile *diffFlowDirectCorrectionTermsForNUA[2][2][2][10] = {{{{NULL}}}};
19609 for(Int_t t=0;t<2;t++)
19611 for(Int_t pe=0;pe<2;pe++)
19613 // correction terms for NUA:
19614 for(Int_t sc=0;sc<2;sc++) // sin or cos
19616 for(Int_t cti=0;cti<9;cti++) // correction term index
19618 diffFlowDirectCorrectionTermsForNUA[t][pe][sc][cti] = dynamic_cast<TProfile*>(nestedLoopsList->FindObject(Form("%s, %s, %s, %s, cti = %d",diffFlowDirectCorrectionTermsForNUAName.Data(),typeFlag[t].Data(),ptEtaFlag[pe].Data(),sinCosFlag[sc].Data(),cti+1)));
19619 if(diffFlowDirectCorrectionTermsForNUA[t][pe][sc][cti])
19621 this->SetDiffFlowDirectCorrectionTermsForNUA(diffFlowDirectCorrectionTermsForNUA[t][pe][sc][cti],t,pe,sc,cti);
19624 cout<<"WARNING: diffFlowDirectCorrectionTermsForNUA[t][pe][sc][cti] is NULL in AFAWQC::GPFDFH() !!!!"<<endl;
19625 cout<<"t = "<<t<<endl;
19626 cout<<"pe = "<<pe<<endl;
19627 cout<<"sc = "<<sc<<endl;
19628 cout<<"cti = "<<cti<<endl;
19630 } // end of for(Int_t cti=0;cti<9;cti++) // correction term index
19631 } // end of for(Int_t sc=0;sc<2;sc++) // sin or cos
19632 } // end of for(Int_t pe=0;pe<2;pe++)
19633 } // end of for(Int_t t=0;t<2;t++)
19634 // other differential correlators:
19635 TString otherDirectDiffCorrelatorsName = "fOtherDirectDiffCorrelators";
19636 otherDirectDiffCorrelatorsName += fAnalysisLabel->Data();
19637 TProfile *otherDirectDiffCorrelators[2][2][2][1] = {{{{NULL}}}};
19638 for(Int_t t=0;t<2;t++)
19640 for(Int_t pe=0;pe<2;pe++)
19642 // correction terms for NUA:
19643 for(Int_t sc=0;sc<2;sc++) // sin or cos
19645 for(Int_t ci=0;ci<1;ci++) // correlator index
19647 otherDirectDiffCorrelators[t][pe][sc][ci] = dynamic_cast<TProfile*>(nestedLoopsList->FindObject(Form("%s, %s, %s, %s, ci = %d",otherDirectDiffCorrelatorsName.Data(),typeFlag[t].Data(),ptEtaFlag[pe].Data(),sinCosFlag[sc].Data(),ci+1)));
19648 if(otherDirectDiffCorrelators[t][pe][sc][ci])
19650 this->SetOtherDirectDiffCorrelators(otherDirectDiffCorrelators[t][pe][sc][ci],t,pe,sc,ci);
19653 cout<<"WARNING: otherDirectDiffCorrelators[t][pe][sc][ci] is NULL in AFAWQC::GPFDFH() !!!!"<<endl;
19654 cout<<"t = "<<t<<endl;
19655 cout<<"pe = "<<pe<<endl;
19656 cout<<"sc = "<<sc<<endl;
19657 cout<<"ci = "<<ci<<endl;
19659 } // end of for(Int_t ci=0;ci<9;ci++) // correction term index
19660 } // end of for(Int_t sc=0;sc<2;sc++) // sin or cos
19661 } // end of for(Int_t pe=0;pe<2;pe++)
19662 } // end of for(Int_t t=0;t<2;t++)
19663 // number of RPs and POIs in selected pt and eta bins for cross-checkings:
19664 TString noOfParticlesInBinName = "fNoOfParticlesInBin";
19665 TH1D *noOfParticlesInBin = NULL;
19666 noOfParticlesInBin = dynamic_cast<TH1D*>(nestedLoopsList->FindObject(noOfParticlesInBinName.Data()));
19667 if(noOfParticlesInBin)
19669 this->SetNoOfParticlesInBin(noOfParticlesInBin);
19673 cout<<" WARNING (QC): noOfParticlesInBin is NULL in AFAWQC::GPFDFH() !!!!"<<endl;
19676 } // end of if(bEvaluateDiffFlowNestedLoops)
19678 } // end of void AliFlowAnalysisWithQCumulants::GetPointersForNestedLoopsHistograms()
19680 //=======================================================================================================================
19682 void AliFlowAnalysisWithQCumulants::GetPointersForMixedHarmonicsHistograms()
19684 // Get pointers to all objects relevant for mixed harmonics.
19686 // a) Get pointer to base list for mixed harmonics;
19687 // b) Get pointer to TProfile fMixedHarmonicsFlags holding all flags for mixed harmonics;
19688 // c) Get pointer to list fMixedHarmonicsProfiles and pointers to all objects that she holds;
19689 // d) Get pointer to list fMixedHarmonicsResults and pointers to all objects that she holds;
19690 // e) Get pointer to list fMixedHarmonicsErrorPropagation and pointers to all objects that she holds.
19692 // a) Get pointer to base list for mixed harmonics:
19693 TList *mixedHarmonicsList = dynamic_cast<TList*>(fHistList->FindObject("Mixed Harmonics"));
19694 if(mixedHarmonicsList)
19696 this->SetMixedHarmonicsList(mixedHarmonicsList);
19699 cout<<"WARNING: mixedHarmonicsList is NULL in AFAWQC::GPFMHH() !!!!"<<endl;
19703 // b) Get pointer to TProfile fMixedHarmonicsFlags holding all flags for mixed harmonics:
19704 TString mixedHarmonicsFlagsName = "fMixedHarmonicsFlags";
19705 mixedHarmonicsFlagsName += fAnalysisLabel->Data();
19706 TProfile *mixedHarmonicsFlags = dynamic_cast<TProfile*>
19707 (mixedHarmonicsList->FindObject(mixedHarmonicsFlagsName.Data()));
19708 if(mixedHarmonicsFlags)
19710 this->SetMixedHarmonicsFlags(mixedHarmonicsFlags);
19711 fCalculateMixedHarmonics = (Bool_t)mixedHarmonicsFlags->GetBinContent(1);
19712 fCalculateMixedHarmonicsVsM = (Bool_t)mixedHarmonicsFlags->GetBinContent(3);
19715 cout<<"WARNING: mixedHarmonicsFlags is NULL in AFAWQC::GPFMHH() !!!!"<<endl;
19719 if(!fCalculateMixedHarmonics){return;}
19721 // c) Get pointer to list fMixedHarmonicsProfiles and pointers to all objects that she holds:
19722 TList *mixedHarmonicsProfiles = NULL;
19723 mixedHarmonicsProfiles = dynamic_cast<TList*>(mixedHarmonicsList->FindObject("Profiles"));
19724 if(mixedHarmonicsProfiles)
19727 TString s2pCorrelationsName = "f2pCorrelations";
19728 s2pCorrelationsName += fAnalysisLabel->Data();
19729 TProfile *p2pCorrelations = dynamic_cast<TProfile*>(mixedHarmonicsProfiles->FindObject(s2pCorrelationsName.Data()));
19730 if(p2pCorrelations)
19732 this->Set2pCorrelations(p2pCorrelations);
19735 cout<<"WARNING: p2pCorrelations is NULL in AFAWQC::GPFMHH() !!!!"<<endl;
19739 TString s3pCorrelationsName = "f3pCorrelations";
19740 s3pCorrelationsName += fAnalysisLabel->Data();
19741 TProfile *p3pCorrelations = dynamic_cast<TProfile*>(mixedHarmonicsProfiles->FindObject(s3pCorrelationsName.Data()));
19742 if(p3pCorrelations)
19744 this->Set3pCorrelations(p3pCorrelations);
19747 cout<<"WARNING: p3pCorrelations is NULL in AFAWQC::GPFMHH() !!!!"<<endl;
19751 TString s4pCorrelationsName = "f4pCorrelations";
19752 s4pCorrelationsName += fAnalysisLabel->Data();
19753 TProfile *p4pCorrelations = dynamic_cast<TProfile*>(mixedHarmonicsProfiles->FindObject(s4pCorrelationsName.Data()));
19754 if(p4pCorrelations)
19756 this->Set4pCorrelations(p4pCorrelations);
19759 cout<<"WARNING: p4pCorrelations is NULL in AFAWQC::GPFMHH() !!!!"<<endl;
19763 TString s5pCorrelationsName = "f5pCorrelations";
19764 s5pCorrelationsName += fAnalysisLabel->Data();
19765 TProfile *p5pCorrelations = dynamic_cast<TProfile*>(mixedHarmonicsProfiles->FindObject(s5pCorrelationsName.Data()));
19766 if(p5pCorrelations)
19768 this->Set5pCorrelations(p5pCorrelations);
19771 cout<<"WARNING: p5pCorrelations is NULL in AFAWQC::GPFMHH() !!!!"<<endl;
19774 /* TBI not needed for the time being
19776 TString s6pCorrelationsName = "f6pCorrelations";
19777 s6pCorrelationsName += fAnalysisLabel->Data();
19778 TProfile *p6pCorrelations = dynamic_cast<TProfile*>(mixedHarmonicsProfiles->FindObject(s6pCorrelationsName.Data()));
19779 if(p6pCorrelations)
19781 this->Set6pCorrelations(p6pCorrelations);
19784 cout<<"WARNING: p6pCorrelations is NULL in AFAWQC::GPFMHH() !!!!"<<endl;
19788 TString s7pCorrelationsName = "f7pCorrelations";
19789 s7pCorrelationsName += fAnalysisLabel->Data();
19790 TProfile *p7pCorrelations = dynamic_cast<TProfile*>(mixedHarmonicsProfiles->FindObject(s7pCorrelationsName.Data()));
19791 if(p7pCorrelations)
19793 this->Set7pCorrelations(p7pCorrelations);
19796 cout<<"WARNING: p7pCorrelations is NULL in AFAWQC::GPFMHH() !!!!"<<endl;
19800 TString s8pCorrelationsName = "f8pCorrelations";
19801 s8pCorrelationsName += fAnalysisLabel->Data();
19802 TProfile *p8pCorrelations = dynamic_cast<TProfile*>(mixedHarmonicsProfiles->FindObject(s8pCorrelationsName.Data()));
19803 if(p8pCorrelations)
19805 this->Set8pCorrelations(p8pCorrelations);
19808 cout<<"WARNING: p8pCorrelations is NULL in AFAWQC::GPFMHH() !!!!"<<endl;
19812 } else // to if(mixedHarmonicsProfiles)
19814 cout<<"WARNING: mixedHarmonicsProfiles is NULL in FAWQC::GPFMHH() !!!!"<<endl;
19818 // d) Get pointer to list fMixedHarmonicsResults and pointers to all objects that she holds.
19819 TList *mixedHarmonicsResults = NULL;
19820 mixedHarmonicsResults = dynamic_cast<TList*>(mixedHarmonicsList->FindObject("Results"));
19821 if(mixedHarmonicsResults)
19824 TString s2pCumulantsName = "f2pCumulants";
19825 s2pCumulantsName += fAnalysisLabel->Data();
19826 TH1D *p2pCumulants = dynamic_cast<TH1D*>(mixedHarmonicsResults->FindObject(s2pCumulantsName.Data()));
19829 this->Set2pCumulants(p2pCumulants);
19832 cout<<"WARNING: p2pCumulants is NULL in AFAWQC::GPFMHH() !!!!"<<endl;
19836 TString s3pCumulantsName = "f3pCumulants";
19837 s3pCumulantsName += fAnalysisLabel->Data();
19838 TH1D *p3pCumulants = dynamic_cast<TH1D*>(mixedHarmonicsResults->FindObject(s3pCumulantsName.Data()));
19841 this->Set3pCumulants(p3pCumulants);
19844 cout<<"WARNING: p3pCumulants is NULL in AFAWQC::GPFMHH() !!!!"<<endl;
19848 TString s4pCumulantsName = "f4pCumulants";
19849 s4pCumulantsName += fAnalysisLabel->Data();
19850 TH1D *p4pCumulants = dynamic_cast<TH1D*>(mixedHarmonicsResults->FindObject(s4pCumulantsName.Data()));
19853 this->Set4pCumulants(p4pCumulants);
19856 cout<<"WARNING: p4pCumulants is NULL in AFAWQC::GPFMHH() !!!!"<<endl;
19860 TString s5pCumulantsName = "f5pCumulants";
19861 s5pCumulantsName += fAnalysisLabel->Data();
19862 TH1D *p5pCumulants = dynamic_cast<TH1D*>(mixedHarmonicsResults->FindObject(s5pCumulantsName.Data()));
19865 this->Set5pCumulants(p5pCumulants);
19868 cout<<"WARNING: p5pCumulants is NULL in AFAWQC::GPFMHH() !!!!"<<endl;
19871 } else // to if(mixedHarmonicsResults)
19873 cout<<"WARNING: mixedHarmonicsResults is NULL in FAWQC::GPFMHH() !!!!"<<endl;
19876 // e) Get pointer to list fMixedHarmonicsErrorPropagation and pointers to all objects that she holds:
19877 TList *mixedHarmonicsErrorPropagation = NULL;
19878 mixedHarmonicsErrorPropagation = dynamic_cast<TList*>(mixedHarmonicsList->FindObject("Error Propagation"));
19879 if(mixedHarmonicsErrorPropagation)
19881 TString sMixedHarmonicEventWeightsName = "fMixedHarmonicEventWeights";
19882 sMixedHarmonicEventWeightsName += fAnalysisLabel->Data();
19883 TString powerFlag[2] = {"linear","quadratic"};
19884 for(Int_t power=0;power<2;power++)
19886 TH1D *hMixedHarmonicEventWeights = dynamic_cast<TH1D*>(mixedHarmonicsErrorPropagation->FindObject(Form("%s: %s",sMixedHarmonicEventWeightsName.Data(),powerFlag[power].Data())));
19887 if(hMixedHarmonicEventWeights)
19889 this->SetMixedHarmonicEventWeights(hMixedHarmonicEventWeights,power);
19892 cout<<"WARNING: hMixedHarmonicEventWeights is NULL in AFAWQC::GPFIFH() !!!!"<<endl;
19893 cout<<"power = "<<power<<endl;
19896 } // end of for(Int_t power=0;power<2;power++)
19897 TString sMixedHarmonicProductOfEventWeightsName = "fMixedHarmonicProductOfEventWeights";
19898 sMixedHarmonicProductOfEventWeightsName += fAnalysisLabel->Data();
19899 TH2D *hMixedHarmonicProductOfEventWeights = dynamic_cast<TH2D*>(mixedHarmonicsErrorPropagation->FindObject(sMixedHarmonicProductOfEventWeightsName.Data()));
19900 if(hMixedHarmonicProductOfEventWeights)
19902 this->SetMixedHarmonicProductOfEventWeights(hMixedHarmonicProductOfEventWeights);
19905 cout<<"WARNING: hMixedHarmonicProductOfEventWeights is NULL in AFAWQC::GPFMHH() !!!!"<<endl;
19908 TString sMixedHarmonicProductOfCorrelationsName = "fMixedHarmonicProductOfCorrelations";
19909 sMixedHarmonicProductOfCorrelationsName += fAnalysisLabel->Data();
19910 TProfile2D *hMixedHarmonicProductOfCorrelations = dynamic_cast<TProfile2D*>(mixedHarmonicsErrorPropagation->FindObject(sMixedHarmonicProductOfCorrelationsName.Data()));
19911 if(hMixedHarmonicProductOfCorrelations)
19913 this->SetMixedHarmonicProductOfCorrelations(hMixedHarmonicProductOfCorrelations);
19916 cout<<"WARNING: hMixedHarmonicProductOfCorrelations is NULL in AFAWQC::GPFMHH() !!!!"<<endl;
19919 } // end of if(mixedHarmonicsErrorPropagation)
19921 } // end of void AliFlowAnalysisWithQCumulants::GetPointersForMixedHarmonicsHistograms()
19923 //=======================================================================================================================
19925 void AliFlowAnalysisWithQCumulants::StoreHarmonic()
19927 // Store flow harmonic in common control histograms.
19929 (fCommonHists->GetHarmonic())->Fill(0.5,fHarmonic);
19930 if(fFillMultipleControlHistograms)
19932 (fCommonHists2nd->GetHarmonic())->Fill(0.5,fHarmonic);
19933 (fCommonHists4th->GetHarmonic())->Fill(0.5,fHarmonic);
19934 (fCommonHists6th->GetHarmonic())->Fill(0.5,fHarmonic);
19935 (fCommonHists8th->GetHarmonic())->Fill(0.5,fHarmonic);
19938 } // end of void AliFlowAnalysisWithQCumulants::StoreHarmonic()
19940 //=======================================================================================================================
19942 void AliFlowAnalysisWithQCumulants::CalculateDiffFlowCorrelationsUsingParticleWeights(TString type, TString ptOrEta) // type = RP or POI
19944 // Calculate all correlations needed for differential flow using particle weights.
19946 Int_t t = 0; // type flag
19947 Int_t pe = 0; // ptEta flag
19952 } else if(type == "POI")
19957 if(ptOrEta == "Pt")
19960 } else if(ptOrEta == "Eta")
19965 Int_t nBinsPtEta[2] = {fnBinsPt,fnBinsEta};
19966 Double_t minPtEta[2] = {fPtMin,fEtaMin};
19967 //Double_t maxPtEta[2] = {fPtMax,fEtaMax};
19968 Double_t binWidthPtEta[2] = {fPtBinWidth,fEtaBinWidth};
19970 // real and imaginary parts of weighted Q-vectors evaluated in harmonics n, 2n, 3n and 4n:
19971 Double_t dReQ1n1k = (*fReQ)(0,1);
19972 Double_t dReQ2n2k = (*fReQ)(1,2);
19973 Double_t dReQ1n3k = (*fReQ)(0,3);
19974 //Double_t dReQ4n4k = (*fReQ)(3,4);
19975 Double_t dImQ1n1k = (*fImQ)(0,1);
19976 Double_t dImQ2n2k = (*fImQ)(1,2);
19977 Double_t dImQ1n3k = (*fImQ)(0,3);
19978 //Double_t dImQ4n4k = (*fImQ)(3,4);
19980 // S^M_{p,k} (see .h file for the definition of fSpk):
19981 Double_t dSM1p1k = (*fSpk)(0,1);
19982 Double_t dSM1p2k = (*fSpk)(0,2);
19983 Double_t dSM1p3k = (*fSpk)(0,3);
19984 Double_t dSM2p1k = (*fSpk)(1,1);
19985 Double_t dSM3p1k = (*fSpk)(2,1);
19987 // looping over all bins and calculating reduced correlations:
19988 for(Int_t b=1;b<=nBinsPtEta[pe];b++)
19990 // real and imaginary parts of p_{m*n,0} (non-weighted Q-vector evaluated for POIs in particular (pt,eta) bin):
19991 Double_t p1n0kRe = 0.;
19992 Double_t p1n0kIm = 0.;
19994 // number of POIs in particular (pt,eta) bin):
19997 // real and imaginary parts of q_{m*n,k}:
19998 // (weighted Q-vector evaluated for particles which are both RPs and POIs in particular (pt,eta) bin)
19999 Double_t q1n2kRe = 0.;
20000 Double_t q1n2kIm = 0.;
20001 Double_t q2n1kRe = 0.;
20002 Double_t q2n1kIm = 0.;
20004 // s_{1,1}, s_{1,2} and s_{1,3} // to be improved (add explanation)
20005 Double_t s1p1k = 0.;
20006 Double_t s1p2k = 0.;
20007 Double_t s1p3k = 0.;
20009 // M0111 from Eq. (118) in QC2c (to be improved (notation))
20010 Double_t dM0111 = 0.;
20014 p1n0kRe = fReRPQ1dEBE[1][pe][0][0]->GetBinContent(fReRPQ1dEBE[1][pe][0][0]->GetBin(b))
20015 * fReRPQ1dEBE[1][pe][0][0]->GetBinEntries(fReRPQ1dEBE[1][pe][0][0]->GetBin(b));
20016 p1n0kIm = fImRPQ1dEBE[1][pe][0][0]->GetBinContent(fImRPQ1dEBE[1][pe][0][0]->GetBin(b))
20017 * fImRPQ1dEBE[1][pe][0][0]->GetBinEntries(fImRPQ1dEBE[1][pe][0][0]->GetBin(b));
20019 mp = fReRPQ1dEBE[1][pe][0][0]->GetBinEntries(fReRPQ1dEBE[1][pe][0][0]->GetBin(b)); // to be improved (cross-checked by accessing other profiles here)
20021 t = 1; // typeFlag = RP or POI
20023 // q_{m*n,k}: (Remark: m=1 is 0, k=0 iz zero (to be improved!))
20024 q1n2kRe = fReRPQ1dEBE[2][pe][0][2]->GetBinContent(fReRPQ1dEBE[2][pe][0][2]->GetBin(b))
20025 * fReRPQ1dEBE[2][pe][0][2]->GetBinEntries(fReRPQ1dEBE[2][pe][0][2]->GetBin(b));
20026 q1n2kIm = fImRPQ1dEBE[2][pe][0][2]->GetBinContent(fImRPQ1dEBE[2][pe][0][2]->GetBin(b))
20027 * fImRPQ1dEBE[2][pe][0][2]->GetBinEntries(fImRPQ1dEBE[2][pe][0][2]->GetBin(b));
20028 q2n1kRe = fReRPQ1dEBE[2][pe][1][1]->GetBinContent(fReRPQ1dEBE[2][pe][1][1]->GetBin(b))
20029 * fReRPQ1dEBE[2][pe][1][1]->GetBinEntries(fReRPQ1dEBE[2][pe][1][1]->GetBin(b));
20030 q2n1kIm = fImRPQ1dEBE[2][pe][1][1]->GetBinContent(fImRPQ1dEBE[2][pe][1][1]->GetBin(b))
20031 * fImRPQ1dEBE[2][pe][1][1]->GetBinEntries(fImRPQ1dEBE[2][pe][1][1]->GetBin(b));
20033 // s_{1,1}, s_{1,2} and s_{1,3} // to be improved (add explanation)
20034 s1p1k = pow(fs1dEBE[2][pe][1]->GetBinContent(b)*fs1dEBE[2][pe][1]->GetBinEntries(b),1.);
20035 s1p2k = pow(fs1dEBE[2][pe][2]->GetBinContent(b)*fs1dEBE[2][pe][2]->GetBinEntries(b),1.);
20036 s1p3k = pow(fs1dEBE[2][pe][3]->GetBinContent(b)*fs1dEBE[2][pe][3]->GetBinEntries(b),1.);
20038 // M0111 from Eq. (118) in QC2c (to be improved (notation)):
20039 dM0111 = mp*(dSM3p1k-3.*dSM1p1k*dSM1p2k+2.*dSM1p3k)
20040 - 3.*(s1p1k*(dSM2p1k-dSM1p2k)
20041 + 2.*(s1p3k-s1p2k*dSM1p1k));
20043 else if(type == "RP")
20045 // q_{m*n,k}: (Remark: m=1 is 0, k=0 iz zero (to be improved!))
20046 q1n2kRe = fReRPQ1dEBE[0][pe][0][2]->GetBinContent(fReRPQ1dEBE[0][pe][0][2]->GetBin(b))
20047 * fReRPQ1dEBE[0][pe][0][2]->GetBinEntries(fReRPQ1dEBE[0][pe][0][2]->GetBin(b));
20048 q1n2kIm = fImRPQ1dEBE[0][pe][0][2]->GetBinContent(fImRPQ1dEBE[0][pe][0][2]->GetBin(b))
20049 * fImRPQ1dEBE[0][pe][0][2]->GetBinEntries(fImRPQ1dEBE[0][pe][0][2]->GetBin(b));
20050 q2n1kRe = fReRPQ1dEBE[0][pe][1][1]->GetBinContent(fReRPQ1dEBE[0][pe][1][1]->GetBin(b))
20051 * fReRPQ1dEBE[0][pe][1][1]->GetBinEntries(fReRPQ1dEBE[0][pe][1][1]->GetBin(b));
20052 q2n1kIm = fImRPQ1dEBE[0][pe][1][1]->GetBinContent(fImRPQ1dEBE[0][pe][1][1]->GetBin(b))
20053 * fImRPQ1dEBE[0][pe][1][1]->GetBinEntries(fImRPQ1dEBE[0][pe][1][1]->GetBin(b));
20055 // s_{1,1}, s_{1,2} and s_{1,3} // to be improved (add explanation)
20056 s1p1k = pow(fs1dEBE[0][pe][1]->GetBinContent(b)*fs1dEBE[0][pe][1]->GetBinEntries(b),1.);
20057 s1p2k = pow(fs1dEBE[0][pe][2]->GetBinContent(b)*fs1dEBE[0][pe][2]->GetBinEntries(b),1.);
20058 s1p3k = pow(fs1dEBE[0][pe][3]->GetBinContent(b)*fs1dEBE[0][pe][3]->GetBinEntries(b),1.);
20060 // to be improved (cross-checked):
20061 p1n0kRe = fReRPQ1dEBE[0][pe][0][0]->GetBinContent(fReRPQ1dEBE[0][pe][0][0]->GetBin(b))
20062 * fReRPQ1dEBE[0][pe][0][0]->GetBinEntries(fReRPQ1dEBE[0][pe][0][0]->GetBin(b));
20063 p1n0kIm = fImRPQ1dEBE[0][pe][0][0]->GetBinContent(fImRPQ1dEBE[0][pe][0][0]->GetBin(b))
20064 * fImRPQ1dEBE[0][pe][0][0]->GetBinEntries(fImRPQ1dEBE[0][pe][0][0]->GetBin(b));
20066 mp = fReRPQ1dEBE[0][pe][0][0]->GetBinEntries(fReRPQ1dEBE[0][pe][0][0]->GetBin(b)); // to be improved (cross-checked by accessing other profiles here)
20068 t = 0; // typeFlag = RP or POI
20070 // M0111 from Eq. (118) in QC2c (to be improved (notation)):
20071 dM0111 = mp*(dSM3p1k-3.*dSM1p1k*dSM1p2k+2.*dSM1p3k)
20072 - 3.*(s1p1k*(dSM2p1k-dSM1p2k)
20073 + 2.*(s1p3k-s1p2k*dSM1p1k));
20074 //...............................................................................................
20077 // 2'-particle correlation:
20078 Double_t two1n1nW0W1 = 0.;
20079 if(mp*dSM1p1k-s1p1k)
20081 two1n1nW0W1 = (p1n0kRe*dReQ1n1k+p1n0kIm*dImQ1n1k-s1p1k)
20082 / (mp*dSM1p1k-s1p1k);
20084 // fill profile to get <<2'>>
20085 fDiffFlowCorrelationsPro[t][pe][0]->Fill(minPtEta[pe]+(b-1)*binWidthPtEta[pe],two1n1nW0W1,mp*dSM1p1k-s1p1k);
20086 // fill profile to get <<2'>^2>
20087 fDiffFlowSquaredCorrelationsPro[t][pe][0]->Fill(minPtEta[pe]+(b-1)*binWidthPtEta[pe],two1n1nW0W1*two1n1nW0W1,mp*dSM1p1k-s1p1k);
20088 // histogram to store <2'> e-b-e (needed in some other methods):
20089 fDiffFlowCorrelationsEBE[t][pe][0]->SetBinContent(b,two1n1nW0W1);
20090 fDiffFlowEventWeightsForCorrelationsEBE[t][pe][0]->SetBinContent(b,mp*dSM1p1k-s1p1k);
20091 } // end of if(mp*dSM1p1k-s1p1k)
20093 // 4'-particle correlation:
20094 Double_t four1n1n1n1nW0W1W1W1 = 0.;
20097 four1n1n1n1nW0W1W1W1 = ((pow(dReQ1n1k,2.)+pow(dImQ1n1k,2.))*(p1n0kRe*dReQ1n1k+p1n0kIm*dImQ1n1k)
20098 - q2n1kRe*(pow(dReQ1n1k,2.)-pow(dImQ1n1k,2.))
20099 - 2.*q2n1kIm*dReQ1n1k*dImQ1n1k
20100 - p1n0kRe*(dReQ1n1k*dReQ2n2k+dImQ1n1k*dImQ2n2k)
20101 + p1n0kIm*(dImQ1n1k*dReQ2n2k-dReQ1n1k*dImQ2n2k)
20102 - 2.*dSM1p2k*(p1n0kRe*dReQ1n1k+p1n0kIm*dImQ1n1k)
20103 - 2.*(pow(dReQ1n1k,2.)+pow(dImQ1n1k,2.))*s1p1k
20104 + 6.*(q1n2kRe*dReQ1n1k+q1n2kIm*dImQ1n1k)
20105 + 1.*(q2n1kRe*dReQ2n2k+q2n1kIm*dImQ2n2k)
20106 + 2.*(p1n0kRe*dReQ1n3k+p1n0kIm*dImQ1n3k)
20109 / dM0111; // to be improved (notation of dM0111)
20111 // fill profile to get <<4'>>
20112 fDiffFlowCorrelationsPro[t][pe][1]->Fill(minPtEta[pe]+(b-1)*binWidthPtEta[pe],four1n1n1n1nW0W1W1W1,dM0111);
20113 // fill profile to get <<4'>^2>
20114 fDiffFlowSquaredCorrelationsPro[t][pe][1]->Fill(minPtEta[pe]+(b-1)*binWidthPtEta[pe],four1n1n1n1nW0W1W1W1*four1n1n1n1nW0W1W1W1,dM0111);
20115 // histogram to store <4'> e-b-e (needed in some other methods):
20116 fDiffFlowCorrelationsEBE[t][pe][1]->SetBinContent(b,four1n1n1n1nW0W1W1W1);
20117 fDiffFlowEventWeightsForCorrelationsEBE[t][pe][1]->SetBinContent(b,dM0111);
20118 } // end of if(dM0111)
20119 } // end of for(Int_t b=1;b<=nBinsPtEta[pe];b++)
20121 } // end of void AliFlowAnalysisWithQCumulants::CalculateDiffFlowCorrelationsUsingParticleWeights(TString type, TString ptOrEta); // type = RP or POI
20123 //=======================================================================================================================
20125 void AliFlowAnalysisWithQCumulants::FillCommonControlHistograms(AliFlowEventSimple *anEvent)
20127 // Fill common control histograms.
20129 Int_t nRP = anEvent->GetNumberOfRPs(); // number of Reference Particles
20130 fCommonHists->FillControlHistograms(anEvent);
20131 if(fFillMultipleControlHistograms)
20135 fCommonHists2nd->FillControlHistograms(anEvent);
20138 fCommonHists4th->FillControlHistograms(anEvent);
20141 fCommonHists6th->FillControlHistograms(anEvent);
20144 fCommonHists8th->FillControlHistograms(anEvent);
20145 } // end of if(nRP>7)
20146 } // end of if(nRP>5)
20147 } // end of if(nRP>3)
20148 } // end of if(nRP>1)
20149 } // end of if(fFillMultipleControlHistograms)
20151 } // end of void AliFlowAnalysisWithQCumulants::FillCommonControlHistograms(AliFlowEventSimple *anEvent)
20153 //=======================================================================================================================
20155 void AliFlowAnalysisWithQCumulants::FillControlHistograms(AliFlowEventSimple *anEvent)
20157 // Fill common control histograms.
20159 Int_t nRPs = anEvent->GetNumberOfRPs(); // number of Reference Particles
20160 Int_t nPOIs = anEvent->GetNumberOfPOIs(); // number of Particles Of Interest
20161 Int_t nRefMult = anEvent->GetReferenceMultiplicity(); // reference multiplicity for current event (TBI: This call is not really needed here, use fReferenceMultiplicityEBE instead)
20163 fCorrelationNoRPsVsRefMult->Fill(nRPs,nRefMult);
20164 fCorrelationNoPOIsVsRefMult->Fill(nPOIs,nRefMult);
20165 fCorrelationNoRPsVsNoPOIs->Fill(nRPs,nPOIs);
20167 } // end of void AliFlowAnalysisWithQCumulants::FillControlHistograms(AliFlowEventSimple *anEvent)
20169 //=======================================================================================================================
20171 void AliFlowAnalysisWithQCumulants::ResetEventByEventQuantities()
20173 // Reset all event by event quantities.
20179 fIntFlowCorrelationsEBE->Reset();
20180 fIntFlowEventWeightsForCorrelationsEBE->Reset();
20181 fIntFlowCorrelationsAllEBE->Reset();
20183 for(Int_t sc=0;sc<2;sc++)
20185 fIntFlowCorrectionTermsForNUAEBE[sc]->Reset();
20186 fIntFlowEventWeightForCorrectionTermsForNUAEBE[sc]->Reset();
20189 // Differential flow:
20190 if(fCalculateDiffFlow)
20192 for(Int_t t=0;t<3;t++) // type (RP, POI, POI&&RP)
20194 for(Int_t pe=0;pe<1+(Int_t)fCalculateDiffFlowVsEta;pe++) // 1D in pt or eta
20196 for(Int_t m=0;m<4;m++) // multiple of harmonic
20198 for(Int_t k=0;k<9;k++) // power of weight
20200 if(fReRPQ1dEBE[t][pe][m][k]) fReRPQ1dEBE[t][pe][m][k]->Reset();
20201 if(fImRPQ1dEBE[t][pe][m][k]) fImRPQ1dEBE[t][pe][m][k]->Reset();
20206 for(Int_t t=0;t<3;t++) // type (0 = RP, 1 = POI, 2 = RP&&POI )
20208 for(Int_t pe=0;pe<1+(Int_t)fCalculateDiffFlowVsEta;pe++) // 1D in pt or eta
20210 for(Int_t k=0;k<9;k++)
20212 if(fs1dEBE[t][pe][k]) fs1dEBE[t][pe][k]->Reset();
20216 // e-b-e reduced correlations:
20217 for(Int_t t=0;t<2;t++) // type (0 = RP, 1 = POI)
20219 for(Int_t pe=0;pe<1+(Int_t)fCalculateDiffFlowVsEta;pe++) // pt or eta
20221 for(Int_t rci=0;rci<4;rci++) // reduced correlation index
20223 if(fDiffFlowCorrelationsEBE[t][pe][rci]) fDiffFlowCorrelationsEBE[t][pe][rci]->Reset();
20224 if(fDiffFlowEventWeightsForCorrelationsEBE[t][pe][rci]) fDiffFlowEventWeightsForCorrelationsEBE[t][pe][rci]->Reset();
20228 // correction terms for NUA:
20229 for(Int_t t=0;t<2;t++) // type (0 = RP, 1 = POI)
20231 for(Int_t pe=0;pe<1+(Int_t)fCalculateDiffFlowVsEta;pe++) // pt or eta
20233 for(Int_t sc=0;sc<2;sc++) // sin or cos
20235 for(Int_t cti=0;cti<9;cti++) // correction term index
20237 fDiffFlowCorrectionTermsForNUAEBE[t][pe][sc][cti]->Reset();
20242 } // end of if(fCalculateDiffFlow)
20245 if(fCalculate2DDiffFlow)
20247 for(Int_t t=0;t<3;t++) // type (RP, POI, POI&&RP)
20249 for(Int_t m=0;m<4;m++) // multiple of harmonic
20251 for(Int_t k=0;k<9;k++) // power of weight
20253 if(fReRPQ2dEBE[t][m][k]){fReRPQ2dEBE[t][m][k]->Reset();}
20254 if(fImRPQ2dEBE[t][m][k]){fImRPQ2dEBE[t][m][k]->Reset();}
20258 for(Int_t t=0;t<3;t++) // type (0 = RP, 1 = POI, 2 = RP&&POI )
20260 for(Int_t k=0;k<9;k++)
20262 if(fs2dEBE[t][k]){fs2dEBE[t][k]->Reset();}
20265 } // end of if(fCalculate2DDiffFlow)
20267 } // end of void AliFlowAnalysisWithQCumulants::ResetEventByEventQuantities();
20269 //=======================================================================================================================
20271 void AliFlowAnalysisWithQCumulants::CalculateDiffFlowCorrectionsForNUASinTerms(TString type, TString ptOrEta)
20273 // Calculate correction terms for non-uniform acceptance for differential flow (sin terms).
20275 // Results are stored in fDiffFlowCorrectionTermsForNUAPro[t][pe][0][cti], where cti runs as follows:
20276 // 0: <<sin n(psi1)>>
20277 // 1: <<sin n(psi1+phi2)>>
20278 // 2: <<sin n(psi1+phi2-phi3)>>
20279 // 3: <<sin n(psi1-phi2-phi3)>>:
20285 Double_t dMult = (*fSpk)(0,0);
20287 // real and imaginary parts of non-weighted Q-vectors evaluated in harmonics n, 2n, 3n and 4n:
20288 Double_t dReQ1n = (*fReQ)(0,0);
20289 Double_t dReQ2n = (*fReQ)(1,0);
20290 //Double_t dReQ3n = (*fReQ)(2,0);
20291 //Double_t dReQ4n = (*fReQ)(3,0);
20292 Double_t dImQ1n = (*fImQ)(0,0);
20293 Double_t dImQ2n = (*fImQ)(1,0);
20294 //Double_t dImQ3n = (*fImQ)(2,0);
20295 //Double_t dImQ4n = (*fImQ)(3,0);
20297 Int_t t = 0; // type flag
20298 Int_t pe = 0; // ptEta flag
20303 } else if(type == "POI")
20308 if(ptOrEta == "Pt")
20311 } else if(ptOrEta == "Eta")
20316 Int_t nBinsPtEta[2] = {fnBinsPt,fnBinsEta};
20317 Double_t minPtEta[2] = {fPtMin,fEtaMin};
20318 //Double_t maxPtEta[2] = {fPtMax,fEtaMax};
20319 Double_t binWidthPtEta[2] = {fPtBinWidth,fEtaBinWidth};
20321 // looping over all bins and calculating correction terms:
20322 for(Int_t b=1;b<=nBinsPtEta[pe];b++)
20324 // real and imaginary parts of p_{m*n,0} (non-weighted Q-vector evaluated for POIs in particular pt or eta bin):
20325 Double_t p1n0kRe = 0.;
20326 Double_t p1n0kIm = 0.;
20328 // number of POIs in particular pt or eta bin:
20331 // real and imaginary parts of q_{m*n,0} (non-weighted Q-vector evaluated for particles which are both RPs and POIs in particular pt or eta bin):
20332 Double_t q1n0kRe = 0.;
20333 Double_t q1n0kIm = 0.;
20334 Double_t q2n0kRe = 0.;
20335 Double_t q2n0kIm = 0.;
20337 // number of particles which are both RPs and POIs in particular pt or eta bin:
20343 q1n0kRe = fReRPQ1dEBE[2][pe][0][0]->GetBinContent(fReRPQ1dEBE[2][pe][0][0]->GetBin(b))
20344 * fReRPQ1dEBE[2][pe][0][0]->GetBinEntries(fReRPQ1dEBE[2][pe][0][0]->GetBin(b));
20345 q1n0kIm = fImRPQ1dEBE[2][pe][0][0]->GetBinContent(fImRPQ1dEBE[2][pe][0][0]->GetBin(b))
20346 * fImRPQ1dEBE[2][pe][0][0]->GetBinEntries(fImRPQ1dEBE[2][pe][0][0]->GetBin(b));
20347 q2n0kRe = fReRPQ1dEBE[2][pe][1][0]->GetBinContent(fReRPQ1dEBE[2][pe][1][0]->GetBin(b))
20348 * fReRPQ1dEBE[2][pe][1][0]->GetBinEntries(fReRPQ1dEBE[2][pe][1][0]->GetBin(b));
20349 q2n0kIm = fImRPQ1dEBE[2][pe][1][0]->GetBinContent(fImRPQ1dEBE[2][pe][1][0]->GetBin(b))
20350 * fImRPQ1dEBE[2][pe][1][0]->GetBinEntries(fImRPQ1dEBE[2][pe][1][0]->GetBin(b));
20352 mq = fReRPQ1dEBE[2][pe][0][0]->GetBinEntries(fReRPQ1dEBE[2][pe][0][0]->GetBin(b)); // to be improved (cross-checked by accessing other profiles here)
20354 else if(type == "RP")
20357 q1n0kRe = fReRPQ1dEBE[0][pe][0][0]->GetBinContent(fReRPQ1dEBE[0][pe][0][0]->GetBin(b))
20358 * fReRPQ1dEBE[0][pe][0][0]->GetBinEntries(fReRPQ1dEBE[0][pe][0][0]->GetBin(b));
20359 q1n0kIm = fImRPQ1dEBE[0][pe][0][0]->GetBinContent(fImRPQ1dEBE[0][pe][0][0]->GetBin(b))
20360 * fImRPQ1dEBE[0][pe][0][0]->GetBinEntries(fImRPQ1dEBE[0][pe][0][0]->GetBin(b));
20361 q2n0kRe = fReRPQ1dEBE[0][pe][1][0]->GetBinContent(fReRPQ1dEBE[0][pe][1][0]->GetBin(b))
20362 * fReRPQ1dEBE[0][pe][1][0]->GetBinEntries(fReRPQ1dEBE[0][pe][1][0]->GetBin(b));
20363 q2n0kIm = fImRPQ1dEBE[0][pe][1][0]->GetBinContent(fImRPQ1dEBE[0][pe][1][0]->GetBin(b))
20364 * fImRPQ1dEBE[0][pe][1][0]->GetBinEntries(fImRPQ1dEBE[0][pe][1][0]->GetBin(b));
20366 mq = fReRPQ1dEBE[0][pe][0][0]->GetBinEntries(fReRPQ1dEBE[0][pe][0][0]->GetBin(b)); // to be improved (cross-checked by accessing other profiles here)
20371 p1n0kRe = fReRPQ1dEBE[1][pe][0][0]->GetBinContent(fReRPQ1dEBE[1][pe][0][0]->GetBin(b))
20372 * fReRPQ1dEBE[1][pe][0][0]->GetBinEntries(fReRPQ1dEBE[1][pe][0][0]->GetBin(b));
20373 p1n0kIm = fImRPQ1dEBE[1][pe][0][0]->GetBinContent(fImRPQ1dEBE[1][pe][0][0]->GetBin(b))
20374 * fImRPQ1dEBE[1][pe][0][0]->GetBinEntries(fImRPQ1dEBE[1][pe][0][0]->GetBin(b));
20376 mp = fReRPQ1dEBE[1][pe][0][0]->GetBinEntries(fReRPQ1dEBE[1][pe][0][0]->GetBin(b)); // to be improved (cross-checked by accessing other profiles here)
20378 t = 1; // typeFlag = RP or POI
20380 else if(type == "RP")
20382 // p_{m*n,0} = q_{m*n,0}:
20388 t = 0; // typeFlag = RP or POI
20391 // <<sin n(psi1)>>:
20392 Double_t sinP1nPsi = 0.;
20395 sinP1nPsi = p1n0kIm/mp;
20396 // fill profile for <<sin n(psi1)>>:
20397 fDiffFlowCorrectionTermsForNUAPro[t][pe][0][0]->Fill(minPtEta[pe]+(b-1)*binWidthPtEta[pe],sinP1nPsi,mp);
20398 // histogram to store <sin n(psi1)> e-b-e (needed in some other methods):
20399 fDiffFlowCorrectionTermsForNUAEBE[t][pe][0][0]->SetBinContent(b,sinP1nPsi);
20402 // <<sin n(psi1+phi2)>>:
20403 Double_t sinP1nPsiP1nPhi = 0.;
20406 sinP1nPsiP1nPhi = (p1n0kRe*dImQ1n+p1n0kIm*dReQ1n-q2n0kIm)/(mp*dMult-mq);
20407 // fill profile for <<sin n(psi1+phi2)>>:
20408 fDiffFlowCorrectionTermsForNUAPro[t][pe][0][1]->Fill(minPtEta[pe]+(b-1)*binWidthPtEta[pe],sinP1nPsiP1nPhi,mp*dMult-mq);
20409 // histogram to store <sin n(psi1+phi2)> e-b-e (needed in some other methods):
20410 fDiffFlowCorrectionTermsForNUAEBE[t][pe][0][1]->SetBinContent(b,sinP1nPsiP1nPhi);
20411 } // end of if(mp*dMult-mq)
20413 // <<sin n(psi1+phi2-phi3)>>:
20414 Double_t sinP1nPsi1P1nPhi2MPhi3 = 0.;
20415 if(mq*(dMult-1.)*(dMult-2.)+(mp-mq)*dMult*(dMult-1.))
20417 sinP1nPsi1P1nPhi2MPhi3 = (p1n0kIm*(pow(dImQ1n,2.)+pow(dReQ1n,2.)-dMult)
20418 - 1.*(q2n0kIm*dReQ1n-q2n0kRe*dImQ1n)
20419 - mq*dImQ1n+2.*q1n0kIm)
20420 / (mq*(dMult-1.)*(dMult-2.)+(mp-mq)*dMult*(dMult-1.));
20421 // fill profile for <<sin n(psi1+phi2)>>:
20422 fDiffFlowCorrectionTermsForNUAPro[t][pe][0][2]->Fill(minPtEta[pe]+(b-1)*binWidthPtEta[pe],sinP1nPsi1P1nPhi2MPhi3,mq*(dMult-1.)*(dMult-2.)+(mp-mq)*dMult*(dMult-1.));
20423 // histogram to store <sin n(psi1+phi2)> e-b-e (needed in some other methods):
20424 fDiffFlowCorrectionTermsForNUAEBE[t][pe][0][2]->SetBinContent(b,sinP1nPsi1P1nPhi2MPhi3);
20425 } // end of if(mq*(dMult-1.)*(dMult-2.)+(mp-mq)*dMult*(dMult-1.))
20427 // <<sin n(psi1-phi2-phi3)>>:
20428 Double_t sinP1nPsi1M1nPhi2MPhi3 = 0.;
20429 if(mq*(dMult-1.)*(dMult-2.)+(mp-mq)*dMult*(dMult-1.))
20431 sinP1nPsi1M1nPhi2MPhi3 = (p1n0kIm*(pow(dReQ1n,2.)-pow(dImQ1n,2.))-2.*p1n0kRe*dReQ1n*dImQ1n
20432 - 1.*(p1n0kIm*dReQ2n-p1n0kRe*dImQ2n)
20433 + 2.*mq*dImQ1n-2.*q1n0kIm)
20434 / (mq*(dMult-1.)*(dMult-2.)+(mp-mq)*dMult*(dMult-1.));
20435 // fill profile for <<sin n(psi1+phi2)>>:
20436 fDiffFlowCorrectionTermsForNUAPro[t][pe][0][3]->Fill(minPtEta[pe]+(b-1)*binWidthPtEta[pe],sinP1nPsi1M1nPhi2MPhi3,mq*(dMult-1.)*(dMult-2.)+(mp-mq)*dMult*(dMult-1.));
20437 // histogram to store <sin n(psi1+phi2)> e-b-e (needed in some other methods):
20438 fDiffFlowCorrectionTermsForNUAEBE[t][pe][0][3]->SetBinContent(b,sinP1nPsi1M1nPhi2MPhi3);
20439 } // end of if(mq*(dMult-1.)*(dMult-2.)+(mp-mq)*dMult*(dMult-1.))
20440 } // end of for(Int_t b=1;b<=nBinsPtEta[pe];b++)
20442 } // end of AliFlowAnalysisWithQCumulants::CalculateDiffFlowCorrectionsForNUASinTerms(TString type, TString ptOrEta)
20445 //=======================================================================================================================
20448 void AliFlowAnalysisWithQCumulants::CalculateDiffFlowCorrectionsForNUACosTerms(TString type, TString ptOrEta)
20450 // Calculate correction terms for non-uniform acceptance for differential flow (cos terms).
20452 // Results are stored in fDiffFlowCorrectionTermsForNUAPro[t][pe][1][cti], where cti runs as follows:
20453 // 0: <<cos n(psi)>>
20454 // 1: <<cos n(psi1+phi2)>>
20455 // 2: <<cos n(psi1+phi2-phi3)>>
20456 // 3: <<cos n(psi1-phi2-phi3)>>
20462 Double_t dMult = (*fSpk)(0,0);
20464 // real and imaginary parts of non-weighted Q-vectors evaluated in harmonics n, 2n, 3n and 4n:
20465 Double_t dReQ1n = (*fReQ)(0,0);
20466 Double_t dReQ2n = (*fReQ)(1,0);
20467 //Double_t dReQ3n = (*fReQ)(2,0);
20468 //Double_t dReQ4n = (*fReQ)(3,0);
20469 Double_t dImQ1n = (*fImQ)(0,0);
20470 Double_t dImQ2n = (*fImQ)(1,0);
20471 //Double_t dImQ3n = (*fImQ)(2,0);
20472 //Double_t dImQ4n = (*fImQ)(3,0);
20474 Int_t t = 0; // type flag
20475 Int_t pe = 0; // ptEta flag
20480 } else if(type == "POI")
20485 if(ptOrEta == "Pt")
20488 } else if(ptOrEta == "Eta")
20493 Int_t nBinsPtEta[2] = {fnBinsPt,fnBinsEta};
20494 Double_t minPtEta[2] = {fPtMin,fEtaMin};
20495 //Double_t maxPtEta[2] = {fPtMax,fEtaMax};
20496 Double_t binWidthPtEta[2] = {fPtBinWidth,fEtaBinWidth};
20498 // looping over all bins and calculating correction terms:
20499 for(Int_t b=1;b<=nBinsPtEta[pe];b++)
20501 // real and imaginary parts of p_{m*n,0} (non-weighted Q-vector evaluated for POIs in particular pt or eta bin):
20502 Double_t p1n0kRe = 0.;
20503 Double_t p1n0kIm = 0.;
20505 // number of POIs in particular pt or eta bin:
20508 // real and imaginary parts of q_{m*n,0} (non-weighted Q-vector evaluated for particles which are both RPs and POIs in particular pt or eta bin):
20509 Double_t q1n0kRe = 0.;
20510 Double_t q1n0kIm = 0.;
20511 Double_t q2n0kRe = 0.;
20512 Double_t q2n0kIm = 0.;
20514 // number of particles which are both RPs and POIs in particular pt or eta bin:
20520 q1n0kRe = fReRPQ1dEBE[2][pe][0][0]->GetBinContent(fReRPQ1dEBE[2][pe][0][0]->GetBin(b))
20521 * fReRPQ1dEBE[2][pe][0][0]->GetBinEntries(fReRPQ1dEBE[2][pe][0][0]->GetBin(b));
20522 q1n0kIm = fImRPQ1dEBE[2][pe][0][0]->GetBinContent(fImRPQ1dEBE[2][pe][0][0]->GetBin(b))
20523 * fImRPQ1dEBE[2][pe][0][0]->GetBinEntries(fImRPQ1dEBE[2][pe][0][0]->GetBin(b));
20524 q2n0kRe = fReRPQ1dEBE[2][pe][1][0]->GetBinContent(fReRPQ1dEBE[2][pe][1][0]->GetBin(b))
20525 * fReRPQ1dEBE[2][pe][1][0]->GetBinEntries(fReRPQ1dEBE[2][pe][1][0]->GetBin(b));
20526 q2n0kIm = fImRPQ1dEBE[2][pe][1][0]->GetBinContent(fImRPQ1dEBE[2][pe][1][0]->GetBin(b))
20527 * fImRPQ1dEBE[2][pe][1][0]->GetBinEntries(fImRPQ1dEBE[2][pe][1][0]->GetBin(b));
20529 mq = fReRPQ1dEBE[2][pe][0][0]->GetBinEntries(fReRPQ1dEBE[2][pe][0][0]->GetBin(b)); // to be improved (cross-checked by accessing other profiles here)
20531 else if(type == "RP")
20534 q1n0kRe = fReRPQ1dEBE[0][pe][0][0]->GetBinContent(fReRPQ1dEBE[0][pe][0][0]->GetBin(b))
20535 * fReRPQ1dEBE[0][pe][0][0]->GetBinEntries(fReRPQ1dEBE[0][pe][0][0]->GetBin(b));
20536 q1n0kIm = fImRPQ1dEBE[0][pe][0][0]->GetBinContent(fImRPQ1dEBE[0][pe][0][0]->GetBin(b))
20537 * fImRPQ1dEBE[0][pe][0][0]->GetBinEntries(fImRPQ1dEBE[0][pe][0][0]->GetBin(b));
20538 q2n0kRe = fReRPQ1dEBE[0][pe][1][0]->GetBinContent(fReRPQ1dEBE[0][pe][1][0]->GetBin(b))
20539 * fReRPQ1dEBE[0][pe][1][0]->GetBinEntries(fReRPQ1dEBE[0][pe][1][0]->GetBin(b));
20540 q2n0kIm = fImRPQ1dEBE[0][pe][1][0]->GetBinContent(fImRPQ1dEBE[0][pe][1][0]->GetBin(b))
20541 * fImRPQ1dEBE[0][pe][1][0]->GetBinEntries(fImRPQ1dEBE[0][pe][1][0]->GetBin(b));
20543 mq = fReRPQ1dEBE[0][pe][0][0]->GetBinEntries(fReRPQ1dEBE[0][pe][0][0]->GetBin(b)); // to be improved (cross-checked by accessing other profiles here)
20548 p1n0kRe = fReRPQ1dEBE[1][pe][0][0]->GetBinContent(fReRPQ1dEBE[1][pe][0][0]->GetBin(b))
20549 * fReRPQ1dEBE[1][pe][0][0]->GetBinEntries(fReRPQ1dEBE[1][pe][0][0]->GetBin(b));
20550 p1n0kIm = fImRPQ1dEBE[1][pe][0][0]->GetBinContent(fImRPQ1dEBE[1][pe][0][0]->GetBin(b))
20551 * fImRPQ1dEBE[1][pe][0][0]->GetBinEntries(fImRPQ1dEBE[1][pe][0][0]->GetBin(b));
20553 mp = fReRPQ1dEBE[1][pe][0][0]->GetBinEntries(fReRPQ1dEBE[1][pe][0][0]->GetBin(b)); // to be improved (cross-checked by accessing other profiles here)
20555 t = 1; // typeFlag = RP or POI
20557 else if(type == "RP")
20559 // p_{m*n,0} = q_{m*n,0}:
20565 t = 0; // typeFlag = RP or POI
20568 // <<cos n(psi1)>>:
20569 Double_t cosP1nPsi = 0.;
20572 cosP1nPsi = p1n0kRe/mp;
20574 // fill profile for <<cos n(psi1)>>:
20575 fDiffFlowCorrectionTermsForNUAPro[t][pe][1][0]->Fill(minPtEta[pe]+(b-1)*binWidthPtEta[pe],cosP1nPsi,mp);
20576 // histogram to store <cos n(psi1)> e-b-e (needed in some other methods):
20577 fDiffFlowCorrectionTermsForNUAEBE[t][pe][1][0]->SetBinContent(b,cosP1nPsi);
20580 // <<cos n(psi1+phi2)>>:
20581 Double_t cosP1nPsiP1nPhi = 0.;
20584 cosP1nPsiP1nPhi = (p1n0kRe*dReQ1n-p1n0kIm*dImQ1n-q2n0kRe)/(mp*dMult-mq);
20585 // fill profile for <<sin n(psi1+phi2)>>:
20586 fDiffFlowCorrectionTermsForNUAPro[t][pe][1][1]->Fill(minPtEta[pe]+(b-1)*binWidthPtEta[pe],cosP1nPsiP1nPhi,mp*dMult-mq);
20587 // histogram to store <sin n(psi1+phi2)> e-b-e (needed in some other methods):
20588 fDiffFlowCorrectionTermsForNUAEBE[t][pe][1][1]->SetBinContent(b,cosP1nPsiP1nPhi);
20589 } // end of if(mp*dMult-mq)
20591 // <<cos n(psi1+phi2-phi3)>>:
20592 Double_t cosP1nPsi1P1nPhi2MPhi3 = 0.;
20593 if(mq*(dMult-1.)*(dMult-2.)+(mp-mq)*dMult*(dMult-1.))
20595 cosP1nPsi1P1nPhi2MPhi3 = (p1n0kRe*(pow(dImQ1n,2.)+pow(dReQ1n,2.)-dMult)
20596 - 1.*(q2n0kRe*dReQ1n+q2n0kIm*dImQ1n)
20597 - mq*dReQ1n+2.*q1n0kRe)
20598 / (mq*(dMult-1.)*(dMult-2.)+(mp-mq)*dMult*(dMult-1.));
20599 // fill profile for <<sin n(psi1+phi2)>>:
20600 fDiffFlowCorrectionTermsForNUAPro[t][pe][1][2]->Fill(minPtEta[pe]+(b-1)*binWidthPtEta[pe],cosP1nPsi1P1nPhi2MPhi3,mq*(dMult-1.)*(dMult-2.)+(mp-mq)*dMult*(dMult-1.));
20601 // histogram to store <sin n(psi1+phi2)> e-b-e (needed in some other methods):
20602 fDiffFlowCorrectionTermsForNUAEBE[t][pe][1][2]->SetBinContent(b,cosP1nPsi1P1nPhi2MPhi3);
20603 } // end of if(mq*(dMult-1.)*(dMult-2.)+(mp-mq)*dMult*(dMult-1.))
20605 // <<cos n(psi1-phi2-phi3)>>:
20606 Double_t cosP1nPsi1M1nPhi2MPhi3 = 0.;
20607 if(mq*(dMult-1.)*(dMult-2.)+(mp-mq)*dMult*(dMult-1.))
20609 cosP1nPsi1M1nPhi2MPhi3 = (p1n0kRe*(pow(dReQ1n,2.)-pow(dImQ1n,2.))+2.*p1n0kIm*dReQ1n*dImQ1n
20610 - 1.*(p1n0kRe*dReQ2n+p1n0kIm*dImQ2n)
20611 - 2.*mq*dReQ1n+2.*q1n0kRe)
20612 / (mq*(dMult-1.)*(dMult-2.)+(mp-mq)*dMult*(dMult-1.));
20613 // fill profile for <<sin n(psi1+phi2)>>:
20614 fDiffFlowCorrectionTermsForNUAPro[t][pe][1][3]->Fill(minPtEta[pe]+(b-1)*binWidthPtEta[pe],cosP1nPsi1M1nPhi2MPhi3,mq*(dMult-1.)*(dMult-2.)+(mp-mq)*dMult*(dMult-1.));
20615 // histogram to store <sin n(psi1+phi2)> e-b-e (needed in some other methods):
20616 fDiffFlowCorrectionTermsForNUAEBE[t][pe][1][3]->SetBinContent(b,cosP1nPsi1M1nPhi2MPhi3);
20617 } // end of if(mq*(dMult-1.)*(dMult-2.)+(mp-mq)*dMult*(dMult-1.))
20618 } // end of for(Int_t b=1;b<=nBinsPtEta[pe];b++)
20620 } // end of AliFlowAnalysisWithQCumulants::CalculateDiffFlowCorrectionsForNUACosTerms(TString type, TString ptOrEta)
20622 //=========================================================================================================================
20624 void AliFlowAnalysisWithQCumulants::FinalizeCorrectionTermsForNUADiffFlow(TString type, TString ptOrEta)
20626 // Transfer profiles into histogams and correctly propagate the error.
20628 Int_t t = 0; // type flag
20629 Int_t pe = 0; // ptEta flag
20634 } else if(type == "POI")
20639 if(ptOrEta == "Pt")
20642 } else if(ptOrEta == "Eta")
20647 Int_t nBinsPtEta[2] = {fnBinsPt,fnBinsEta};
20648 //Double_t minPtEta[2] = {fPtMin,fEtaMin};
20649 //Double_t maxPtEta[2] = {fPtMax,fEtaMax};
20650 //Double_t binWidthPtEta[2] = {fPtBinWidth,fEtaBinWidth};
20652 for(Int_t sc=0;sc<2;sc++) // sin or cos
20654 for(Int_t cti=0;cti<9;cti++) // correction term index
20656 for(Int_t b=1;b<=nBinsPtEta[pe];b++)
20658 Double_t correctionTerm = fDiffFlowCorrectionTermsForNUAPro[t][pe][sc][cti]->GetBinContent(b);
20659 fDiffFlowCorrectionTermsForNUAHist[t][pe][sc][cti]->SetBinContent(b,correctionTerm);
20660 // to be improved (propagate error correctly)
20662 } // end of for(Int_t b=1;b<=nBinsPtEta[pe];b++)
20663 } // correction term index
20664 } // end of for(Int_t sc=0;sc<2;sc++) // sin or cos
20666 }// end of void AliFlowAnalysisWithQCumulants::FinalizeCorrectionTermsForNUADiffFlow(TString type, TString ptOrEta)
20668 //=========================================================================================================================
20670 void AliFlowAnalysisWithQCumulants::CalculateDiffFlowCumulantsCorrectedForNUA(TString type, TString ptOrEta)
20672 // Calculate generalized differential flow cumulants (corrected for non-uniform acceptance).
20674 // to be improved - propagate error also from non-isotropic terms
20676 Int_t t = 0; // RP = 0, POI = 1
20677 Int_t pe = 0; // pt = 0, eta = 1
20682 } else if(type == "POI")
20687 if(ptOrEta == "Pt")
20690 } else if(ptOrEta == "Eta")
20696 Int_t nBinsPtEta[2] = {fnBinsPt,fnBinsEta};
20697 // 2-particle correlation:
20698 Double_t two = fIntFlowCorrelationsHist->GetBinContent(1); // <<2>>
20699 // sinus terms coming from reference flow:
20700 Double_t sinP1nPhi = fIntFlowCorrectionTermsForNUAHist[0]->GetBinContent(1); // <<sin(n*phi1)>>
20701 Double_t sinP1nPhi1P1nPhi2 = fIntFlowCorrectionTermsForNUAHist[0]->GetBinContent(2); // <<sin(n*(phi1+phi2))>>
20702 Double_t sinP1nPhi1M1nPhi2M1nPhi3 = fIntFlowCorrectionTermsForNUAHist[0]->GetBinContent(3); // <<sin(n*(phi1-phi2-phi3))>>
20703 // cosinus terms coming from reference flow:
20704 Double_t cosP1nPhi = fIntFlowCorrectionTermsForNUAHist[1]->GetBinContent(1); // <<cos(n*phi1)>>
20705 Double_t cosP1nPhi1P1nPhi2 = fIntFlowCorrectionTermsForNUAHist[1]->GetBinContent(2); // <<cos(n*(phi1+phi2))>>
20706 Double_t cosP1nPhi1M1nPhi2M1nPhi3 = fIntFlowCorrectionTermsForNUAHist[1]->GetBinContent(3); // <<cos(n*(phi1-phi2-phi3))>>
20708 for(Int_t b=1;b<=nBinsPtEta[pe];b++)
20710 Double_t twoPrime = fDiffFlowCorrelationsHist[t][pe][0]->GetBinContent(b); // <<2'>>
20711 Double_t fourPrime = fDiffFlowCorrelationsHist[t][pe][1]->GetBinContent(b); // <<4'>>
20712 Double_t sinP1nPsi = fDiffFlowCorrectionTermsForNUAHist[t][pe][0][0]->GetBinContent(b); // <<sin n(Psi)>>
20713 Double_t cosP1nPsi = fDiffFlowCorrectionTermsForNUAHist[t][pe][1][0]->GetBinContent(b); // <<cos n(Psi)>>
20714 Double_t sinP1nPsi1P1nPhi2 = fDiffFlowCorrectionTermsForNUAHist[t][pe][0][1]->GetBinContent(b); // <<sin n(psi1+phi2)>>
20715 Double_t cosP1nPsi1P1nPhi2 = fDiffFlowCorrectionTermsForNUAHist[t][pe][1][1]->GetBinContent(b); // <<cos n(psi1+phi2)>>
20716 Double_t sinP1nPsi1P1nPhi2M1nPhi3 = fDiffFlowCorrectionTermsForNUAHist[t][pe][0][2]->GetBinContent(b); // <<sin n(psi1+phi2-phi3)>>
20717 Double_t cosP1nPsi1P1nPhi2M1nPhi3 = fDiffFlowCorrectionTermsForNUAHist[t][pe][1][2]->GetBinContent(b); // <<cos n(psi1+phi2-phi3)>>
20718 Double_t sinP1nPsi1M1nPhi2M1nPhi3 = fDiffFlowCorrectionTermsForNUAHist[t][pe][0][3]->GetBinContent(b); // <<sin n(psi1-phi2-phi3)>>
20719 Double_t cosP1nPsi1M1nPhi2M1nPhi3 = fDiffFlowCorrectionTermsForNUAHist[t][pe][1][3]->GetBinContent(b); // <<cos n(psi1-phi2-phi3)>>
20720 // Generalized QC{2'}:
20721 Double_t qc2Prime = twoPrime - sinP1nPsi*sinP1nPhi - cosP1nPsi*cosP1nPhi;
20722 if(fApplyCorrectionForNUA)
20724 fDiffFlowCumulants[t][pe][0]->SetBinContent(b,qc2Prime);
20726 if(TMath::Abs(twoPrime)>0.)
20728 fDiffFlowDetectorBias[t][pe][0]->SetBinContent(b,qc2Prime/twoPrime); // detector bias = generalized/isotropic cumulant.
20730 // Generalized QC{4'}:
20731 Double_t qc4Prime = fourPrime-2.*twoPrime*two
20732 - cosP1nPsi*cosP1nPhi1M1nPhi2M1nPhi3
20733 + sinP1nPsi*sinP1nPhi1M1nPhi2M1nPhi3
20734 - cosP1nPhi*cosP1nPsi1M1nPhi2M1nPhi3
20735 + sinP1nPhi*sinP1nPsi1M1nPhi2M1nPhi3
20736 - 2.*cosP1nPhi*cosP1nPsi1P1nPhi2M1nPhi3
20737 - 2.*sinP1nPhi*sinP1nPsi1P1nPhi2M1nPhi3
20738 - cosP1nPsi1P1nPhi2*cosP1nPhi1P1nPhi2
20739 - sinP1nPsi1P1nPhi2*sinP1nPhi1P1nPhi2
20740 + 2.*cosP1nPhi1P1nPhi2*(cosP1nPsi*cosP1nPhi-sinP1nPsi*sinP1nPhi)
20741 + 2.*sinP1nPhi1P1nPhi2*(cosP1nPsi*sinP1nPhi+sinP1nPsi*cosP1nPhi)
20742 + 4.*two*(cosP1nPsi*cosP1nPhi+sinP1nPsi*sinP1nPhi)
20743 + 2.*cosP1nPsi1P1nPhi2*(pow(cosP1nPhi,2.)-pow(sinP1nPhi,2.))
20744 + 4.*sinP1nPsi1P1nPhi2*cosP1nPhi*sinP1nPhi
20745 + 4.*twoPrime*(pow(cosP1nPhi,2.)+pow(sinP1nPhi,2.))
20746 - 6.*(pow(cosP1nPhi,2.)-pow(sinP1nPhi,2.))
20747 * (cosP1nPsi*cosP1nPhi-sinP1nPsi*sinP1nPhi)
20748 - 12.*cosP1nPhi*sinP1nPhi
20749 * (sinP1nPsi*cosP1nPhi+cosP1nPsi*sinP1nPhi);
20750 if(fApplyCorrectionForNUA)
20752 fDiffFlowCumulants[t][pe][1]->SetBinContent(b,qc4Prime);
20754 if(TMath::Abs(fourPrime-2.*twoPrime*two)>0.)
20756 fDiffFlowDetectorBias[t][pe][1]->SetBinContent(b,qc4Prime/(fourPrime-2.*twoPrime*two)); // detector bias = generalized/isotropic cumulant.
20758 } // end of for(Int_t p=1;p<=fnBinsPt;p++)
20760 } // end of AliFlowAnalysisWithQCumulants::CalculateDiffFlowCumulantsCorrectedForNUA(TString type, TString ptOrEta)
20762 //==================================================================================================================================
20764 void AliFlowAnalysisWithQCumulants::CalculateDiffFlowCorrectedForNUA(TString type, TString ptOrEta)
20766 // Calculate differential flow corrected for non-uniform acceptance.
20768 // to be improved: eventually I will have to access here masured correlations and NUA terms
20769 // instead of cumulants in order to propagate statistical error correctly also
20770 // to NUA terms (propagating errors directly from cumulants is WRONG for
20771 // differential flow becuase that doesn't account at all cross-covariance terms)
20773 // REMARK: When NUA correction is apllied error for differential flow DOES NOT get corrected,
20774 // i.e. only value is being corrected, error is still the one relevant for isotropic
20775 // case. This eventually will be resolved.
20778 Int_t t = 0; // RP or POI
20779 Int_t pe = 0; // pt or eta
20784 } else if(type == "POI")
20788 if(ptOrEta == "Pt")
20791 } else if(ptOrEta == "Eta")
20797 Int_t nBinsPtEta[2] = {fnBinsPt,fnBinsEta};
20798 // Reference Q-cumulants
20799 Double_t qc2 = fIntFlowQcumulants->GetBinContent(1); // QC{2}
20800 Double_t qc4 = fIntFlowQcumulants->GetBinContent(2); // QC{4}
20801 // Loop over pt or eta bins:
20802 for(Int_t b=1;b<=nBinsPtEta[pe];b++)
20804 // Differential Q-cumulants:
20805 Double_t qc2Prime = fDiffFlowCumulants[t][pe][0]->GetBinContent(b); // QC{2'}
20806 Double_t qc4Prime = fDiffFlowCumulants[t][pe][1]->GetBinContent(b); // QC{4'}
20810 Double_t v2Prime = qc2Prime/pow(qc2,0.5);
20811 if(TMath::Abs(v2Prime)>0.){fDiffFlow[t][pe][0]->SetBinContent(b,v2Prime);}
20816 Double_t v4Prime = -qc4Prime/pow(-qc4,3./4.);
20817 if(TMath::Abs(v4Prime)>0.){fDiffFlow[t][pe][1]->SetBinContent(b,v4Prime);}
20819 } // end of for(Int_t b=1;b<=fnBinsPtEta[pe];b++)
20821 } // end of void AliFlowAnalysisWithQCumulants::CalculateDiffFlowCorrectedForNUA(TString type, TString ptOrEta);
20823 //=========================================================================================================================
20825 void AliFlowAnalysisWithQCumulants::EvaluateIntFlowCorrelationsWithNestedLoops(AliFlowEventSimple * const anEvent)
20827 // Evaluate with nested loops multiparticle correlations for integrated flow (without using the particle weights).
20829 // Remark: Results are stored in profile fIntFlowDirectCorrelations whose binning is organized as follows:
20831 // 1st bin: <2>_{1n|1n} = two1n1n = cos(n*(phi1-phi2))>
20832 // 2nd bin: <2>_{2n|2n} = two2n2n = cos(2n*(phi1-phi2))>
20833 // 3rd bin: <2>_{3n|3n} = two3n3n = cos(3n*(phi1-phi2))>
20834 // 4th bin: <2>_{4n|4n} = two4n4n = cos(4n*(phi1-phi2))>
20835 // 5th bin: ---- EMPTY ----
20836 // 6th bin: <3>_{2n|1n,1n} = three2n1n1n = <cos(n*(2.*phi1-phi2-phi3))>
20837 // 7th bin: <3>_{3n|2n,1n} = three3n2n1n = <cos(n*(3.*phi1-2.*phi2-phi3))>
20838 // 8th bin: <3>_{4n|2n,2n} = three4n2n2n = <cos(n*(4.*phi1-2.*phi2-2.*phi3))>
20839 // 9th bin: <3>_{4n|3n,1n} = three4n3n1n = <cos(n*(4.*phi1-3.*phi2-phi3))>
20840 // 10th bin: ---- EMPTY ----
20841 // 11th bin: <4>_{1n,1n|1n,1n} = four1n1n1n1n = <cos(n*(phi1+phi2-phi3-phi4))>
20842 // 12th bin: <4>_{2n,1n|2n,1n} = four2n1n2n1n = <cos(2.*n*(phi1+phi2-phi3-phi4))>
20843 // 13th bin: <4>_{2n,2n|2n,2n} = four2n2n2n2n = <cos(n*(2.*phi1+phi2-2.*phi3-phi4))>
20844 // 14th bin: <4>_{3n|1n,1n,1n} = four3n1n1n1n = <cos(n*(3.*phi1-phi2-phi3-phi4))>
20845 // 15th bin: <4>_{3n,1n|3n,1n} = four3n1n3n1n = <cos(n*(4.*phi1-2.*phi2-phi3-phi4))>
20846 // 16th bin: <4>_{3n,1n|2n,2n} = four3n1n2n2n = <cos(n*(3.*phi1+phi2-2.*phi3-2.*phi4))>
20847 // 17th bin: <4>_{4n|2n,1n,1n} = four4n2n1n1n = <cos(n*(3.*phi1+phi2-3.*phi3-phi4))>
20848 // 18th bin: ---- EMPTY ----
20849 // 19th bin: <5>_{2n|1n,1n,1n,1n} = five2n1n1n1n1n = <cos(n*(2.*phi1+phi2-phi3-phi4-phi5))>
20850 // 20th bin: <5>_{2n,2n|2n,1n,1n} = five2n2n2n1n1n = <cos(n*(2.*phi1+2.*phi2-2.*phi3-phi4-phi5))>
20851 // 21st bin: <5>_{3n,1n|2n,1n,1n} = five3n1n2n1n1n = <cos(n*(3.*phi1+phi2-2.*phi3-phi4-phi5))>
20852 // 22nd bin: <5>_{4n|1n,1n,1n,1n} = five4n1n1n1n1n = <cos(n*(4.*phi1-phi2-phi3-phi4-phi5))>
20853 // 23rd bin: ---- EMPTY ----
20854 // 24th bin: <6>_{1n,1n,1n|1n,1n,1n} = six1n1n1n1n1n1n = <cos(n*(phi1+phi2+phi3-phi4-phi5-phi6))>
20855 // 25th bin: <6>_{2n,1n,1n|2n,1n,1n} = six2n1n1n2n1n1n = <cos(n*(2.*phi1+2.*phi2-phi3-phi4-phi5-phi6))>
20856 // 26th bin: <6>_{2n,2n|1n,1n,1n,1n} = six2n2n1n1n1n1n = <cos(n*(3.*phi1+phi2-phi3-phi4-phi5-phi6))>
20857 // 27th bin: <6>_{3n,1n|1n,1n,1n,1n} = six3n1n1n1n1n1n = <cos(n*(2.*phi1+phi2+phi3-2.*phi4-phi5-phi6))>
20858 // 28th bin: ---- EMPTY ----
20859 // 29th bin: <7>_{2n,1n,1n|1n,1n,1n,1n} = seven2n1n1n1n1n1n1n = <cos(n*(2.*phi1+phi2+phi3-phi4-phi5-phi6-phi7))>
20860 // 30th bin: ---- EMPTY ----
20861 // 31st bin: <8>_{1n,1n,1n,1n|1n,1n,1n,1n} = eight1n1n1n1n1n1n1n1n = <cos(n*(phi1+phi2+phi3+phi4-phi5-phi6-phi7-phi8))>
20862 // 32nd bin: ---- EMPTY ----
20863 // Extra correlations for 3p TY study:
20864 // 33rd bin: <4>_{4n,2n|3n,3n}= four4n2n3n3n = <cos(n*(4.*phi1+2.*phi2-3.*phi3-3.*phi4))>
20865 // 34th bin: <5>_{3n,3n|2n,2n,2n} = five3n3n2n2n2n = <cos(n(3*phi1+3*phi2-2*phi3-2*phi4-2*phi5))>
20866 // Extra correlations for 6p TY study:
20867 // 35th bin: <2>_{5n|5n} = two5n5n = <cos(5n*(phi1-phi2)> T
20868 // 36th bin: <2>_{6n|6n} = two6n6n = <cos(6n*(phi1-phi2)> T
20869 // 37th bin: <3>_{5n|3n,2n} = three5n3n2n = <cos(n*(5*phi1-3*phi2-2*phi3)>
20870 // 38th bin: <3>_{5n|4n,1n} = three5n4n1n = <cos(n*(5*phi1-4*phi2-1*phi3)>
20871 // 39th bin: <3>_{6n|3n,3n} = three6n3n3n = <cos(n*(6*phi1-3*phi2-3*phi3)> T
20872 // 40th bin: <3>_{6n|4n,2n} = three6n4n2n = <cos(n*(6*phi1-4*phi2-2*phi3)> T
20873 // 41st bin: <3>_{6n|5n,1n} = three6n5n1n = <cos(n*(6*phi1-5*phi2-1*phi3)>
20874 // 42nd bin: <4>_{6n|3n,2n,1n} = four6n3n2n1n = <cos(n*(6*phi1-3*phi2-2*phi3-1*phi4)>
20875 // 43rd bin: <4>_{3n,2n|3n,2n} = four3n2n3n2n = <cos(n*(3*phi1+2*phi2-3*phi3-2*phi4)>
20876 // 44th bin: <4>_{4n,1n|3n,2n} = four4n1n3n2n = <cos(n*(4*phi1+1*phi2-3*phi3-2*phi4)>
20877 // 45th bin: <4>_{3n,3n|3n,3n} = four3n3n3n3n = <cos(3.*n*(phi1+phi2-phi3-phi4))> T
20878 // 46th bin: <4>_{4n,2n|3n,3n} = four4n2n3n3n = <cos(n*(4*phi1+2*phi2-3*phi3-3*phi4)>
20879 // 47th bin: <4>_{5n,1n|3n,3n} = four5n1n3n3n = <cos(n*(5*phi1+1*phi2-3*phi3-3*phi4)>
20880 // 48th bin: <4>_{4n,2n|4n,2n} = four4n2n4n2n = <cos(n*(4*phi1+2*phi2-4*phi3-2*phi4)> T
20881 // 49th bin: <4>_{5n,1n|4n,2n} = four5n1n4n2n = <cos(n*(5*phi1+1*phi2-4*phi3-2*phi4)>
20882 // 50th bin: <4>_{5n|3n,1n,1n} = four5n3n1n1n = <cos(n*(5*phi1-3*phi2-1*phi3-1*phi4)>
20883 // 51st bin: <4>_{5n|2n,2n,1n} = four5n2n2n1n = <cos(n*(5*phi1-2*phi2-2*phi3-1*phi4)>
20884 // 52nd bin: <4>_{5n,1n|5n,1n} = four5n1n5n1n = <cos(n*(5*phi1+1*phi2-5*phi3-1*phi4)>
20885 // 53rd bin: <5>_{3n,3n|3n,2n,1n} = four3n3n3n2n1n = <cos(n*(3*phi1+3*phi2-3*phi3-2*phi4-1*phi5)>
20886 // 54th bin: <5>_{4n,2n|3n,2n,1n} = four4n2n3n2n1n = <cos(n*(4*phi1+2*phi2-3*phi3-2*phi4-1*phi5)>
20887 // 55th bin: <5>_{3n,2n|3n,1n,1n} = four3n2n3n1n1n = <cos(n*(3*phi1+2*phi2-3*phi3-1*phi4-1*phi5)>
20888 // 56th bin: <5>_{3n,2n|2n,2n,1n} = four3n2n2n2n1n = <cos(n*(3*phi1+2*phi2-2*phi3-2*phi4-1*phi5)>
20889 // 57th bin: <5>_{5n,1n|3n,2n,1n} = four5n1n3n2n1n = <cos(n*(5*phi1+1*phi2-3*phi3-2*phi4-1*phi5)>
20890 // 58th bin: <6>_{3n,2n,1n|3n,2n,1n} = six3n2n1n3n2n1n = <cos(n*(3*phi1+2*phi2+1*phi3-3*phi4-2*phi5-1*phi6)>
20892 Int_t nPrim = anEvent->NumberOfTracks();
20893 AliFlowTrackSimple *aftsTrack = NULL;
20894 Double_t phi1=0., phi2=0., phi3=0., phi4=0., phi5=0., phi6=0., phi7=0., phi8=0.;
20895 Int_t n = fHarmonic;
20896 Int_t eventNo = (Int_t)fAvMultiplicity->GetBinEntries(1); // to be improved (is this casting safe in general?)
20897 Double_t dMult = (*fSpk)(0,0);
20899 cout<<"Multiparticle correlations: Event number: "<<eventNo<<", multiplicity is "<<dMult<<endl;
20902 cout<<"... skipping this event (multiplicity too low) ..."<<endl;
20903 } else if (dMult>fMaxAllowedMultiplicity)
20905 cout<<"... skipping this event (multiplicity too high) ..."<<endl;
20908 cout<<"... evaluating nested loops (without using particle weights)..."<<endl;
20911 // 2-particle correlations:
20912 if(nPrim>=2 && nPrim<=fMaxAllowedMultiplicity)
20914 for(Int_t i1=0;i1<nPrim;i1++)
20916 aftsTrack=anEvent->GetTrack(i1);
20917 if(!(aftsTrack->InRPSelection())) continue;
20918 phi1=aftsTrack->Phi();
20919 for(Int_t i2=0;i2<nPrim;i2++)
20921 if(i2==i1)continue;
20922 aftsTrack=anEvent->GetTrack(i2);
20923 if(!(aftsTrack->InRPSelection())) continue;
20924 phi2=aftsTrack->Phi();
20925 if(nPrim==2) cout<<i1<<" "<<i2<<"\r"<<flush;
20926 // fill the profile with 2-p correlations:
20927 fIntFlowDirectCorrelations->Fill(0.5,cos(n*(phi1-phi2)),1.); // <cos(n*(phi1-phi2))>
20928 fIntFlowDirectCorrelations->Fill(1.5,cos(2.*n*(phi1-phi2)),1.); // <cos(2n*(phi1-phi2))>
20929 fIntFlowDirectCorrelations->Fill(2.5,cos(3.*n*(phi1-phi2)),1.); // <cos(3n*(phi1-phi2))>
20930 fIntFlowDirectCorrelations->Fill(3.5,cos(4.*n*(phi1-phi2)),1.); // <cos(4n*(phi1-phi2))>
20931 fIntFlowDirectCorrelations->Fill(34.5,cos(5.*n*(phi1-phi2)),1.); // <cos(5n*(phi1-phi2))>
20932 fIntFlowDirectCorrelations->Fill(35.5,cos(6.*n*(phi1-phi2)),1.); // <cos(6n*(phi1-phi2))>
20933 } // end of for(Int_t i2=0;i2<nPrim;i2++)
20934 } // end of for(Int_t i1=0;i1<nPrim;i1++)
20935 } // end of if(nPrim>=2)
20937 // 3-particle correlations:
20938 if(nPrim>=3 && nPrim<=fMaxAllowedMultiplicity)
20940 for(Int_t i1=0;i1<nPrim;i1++)
20942 aftsTrack=anEvent->GetTrack(i1);
20943 if(!(aftsTrack->InRPSelection())) continue;
20944 phi1=aftsTrack->Phi();
20945 for(Int_t i2=0;i2<nPrim;i2++)
20947 if(i2==i1)continue;
20948 aftsTrack=anEvent->GetTrack(i2);
20949 if(!(aftsTrack->InRPSelection())) continue;
20950 phi2=aftsTrack->Phi();
20951 for(Int_t i3=0;i3<nPrim;i3++)
20953 if(i3==i1||i3==i2)continue;
20954 aftsTrack=anEvent->GetTrack(i3);
20955 if(!(aftsTrack->InRPSelection())) continue;
20956 phi3=aftsTrack->Phi();
20957 if(nPrim==3) cout<<i1<<" "<<i2<<" "<<i3<<"\r"<<flush;
20958 // fill the profile with 3-p correlations:
20959 fIntFlowDirectCorrelations->Fill(5.,cos(2.*n*phi1-n*(phi2+phi3)),1.); //<3>_{2n|nn,n}
20960 fIntFlowDirectCorrelations->Fill(6.,cos(3.*n*phi1-2.*n*phi2-n*phi3),1.); //<3>_{3n|2n,n}
20961 fIntFlowDirectCorrelations->Fill(7.,cos(4.*n*phi1-2.*n*phi2-2.*n*phi3),1.); //<3>_{4n|2n,2n}
20962 fIntFlowDirectCorrelations->Fill(8.,cos(4.*n*phi1-3.*n*phi2-n*phi3),1.); //<3>_{4n|3n,n}
20963 fIntFlowDirectCorrelations->Fill(36.5,cos(5.*n*phi1-3.*n*phi2-2.*n*phi3),1.); //<3>_{5n|3n,2n}
20964 fIntFlowDirectCorrelations->Fill(37.5,cos(5.*n*phi1-4.*n*phi2-1.*n*phi3),1.); //<3>_{5n|4n,1n}
20965 fIntFlowDirectCorrelations->Fill(38.5,cos(6.*n*phi1-3.*n*phi2-3.*n*phi3),1.); //<3>_{6n|3n,3n}
20966 fIntFlowDirectCorrelations->Fill(39.5,cos(6.*n*phi1-4.*n*phi2-2.*n*phi3),1.); //<3>_{6n|4n,2n}
20967 fIntFlowDirectCorrelations->Fill(40.5,cos(6.*n*phi1-5.*n*phi2-1.*n*phi3),1.); //<3>_{6n|5n,1n}
20968 } // end of for(Int_t i3=0;i3<nPrim;i3++)
20969 } // end of for(Int_t i2=0;i2<nPrim;i2++)
20970 } // end of for(Int_t i1=0;i1<nPrim;i1++)
20971 } // end of if(nPrim>=3)
20973 // 4-particle correlations:
20974 if(nPrim>=4 && nPrim<=fMaxAllowedMultiplicity)
20976 for(Int_t i1=0;i1<nPrim;i1++)
20978 aftsTrack=anEvent->GetTrack(i1);
20979 if(!(aftsTrack->InRPSelection())) continue;
20980 phi1=aftsTrack->Phi();
20981 for(Int_t i2=0;i2<nPrim;i2++)
20983 if(i2==i1)continue;
20984 aftsTrack=anEvent->GetTrack(i2);
20985 if(!(aftsTrack->InRPSelection())) continue;
20986 phi2=aftsTrack->Phi();
20987 for(Int_t i3=0;i3<nPrim;i3++)
20989 if(i3==i1||i3==i2)continue;
20990 aftsTrack=anEvent->GetTrack(i3);
20991 if(!(aftsTrack->InRPSelection())) continue;
20992 phi3=aftsTrack->Phi();
20993 for(Int_t i4=0;i4<nPrim;i4++)
20995 if(i4==i1||i4==i2||i4==i3)continue;
20996 aftsTrack=anEvent->GetTrack(i4);
20997 if(!(aftsTrack->InRPSelection())) continue;
20998 phi4=aftsTrack->Phi();
20999 if(nPrim==4) cout<<i1<<" "<<i2<<" "<<i3<<" "<<i4<<"\r"<<flush;
21000 // fill the profile with 4-p correlations:
21001 fIntFlowDirectCorrelations->Fill(10.,cos(n*phi1+n*phi2-n*phi3-n*phi4),1.); // <4>_{n,n|n,n}
21002 fIntFlowDirectCorrelations->Fill(11.,cos(2.*n*phi1+n*phi2-2.*n*phi3-n*phi4),1.); // <4>_{2n,n|2n,n}
21003 fIntFlowDirectCorrelations->Fill(12.,cos(2.*n*phi1+2*n*phi2-2.*n*phi3-2.*n*phi4),1.); // <4>_{2n,2n|2n,2n}
21004 fIntFlowDirectCorrelations->Fill(13.,cos(3.*n*phi1-n*phi2-n*phi3-n*phi4),1.); // <4>_{3n|n,n,n}
21005 fIntFlowDirectCorrelations->Fill(14.,cos(3.*n*phi1+n*phi2-3.*n*phi3-n*phi4),1.); // <4>_{3n,n|3n,n}
21006 fIntFlowDirectCorrelations->Fill(15.,cos(3.*n*phi1+n*phi2-2.*n*phi3-2.*n*phi4),1.); // <4>_{3n,n|2n,2n}
21007 fIntFlowDirectCorrelations->Fill(16.,cos(4.*n*phi1-2.*n*phi2-n*phi3-n*phi4),1.); // <4>_{4n|2n,n,n}
21008 fIntFlowDirectCorrelations->Fill(32.,cos(n*(4.*phi1+2.*phi2-3.*phi3-3.*phi4)),1.); // <4>_{4n,2n|3n,3n}
21009 fIntFlowDirectCorrelations->Fill(41.5,cos(n*(6.*phi1-3.*phi2-2.*phi3-1.*phi4)),1.); // <4>_{6n|3n,2n,1n}
21010 fIntFlowDirectCorrelations->Fill(42.5,cos(n*(3.*phi1+2.*phi2-3.*phi3-2.*phi4)),1.); // <4>_{3n,2n|3n,2n}
21011 fIntFlowDirectCorrelations->Fill(43.5,cos(n*(4.*phi1+1.*phi2-3.*phi3-2.*phi4)),1.); // <4>_{4n,1n|3n,2n}
21012 fIntFlowDirectCorrelations->Fill(44.5,cos(n*(3.*phi1+3.*phi2-3.*phi3-3.*phi4)),1.); // <4>_{3n,3n|3n,3n}
21013 fIntFlowDirectCorrelations->Fill(45.5,cos(n*(4.*phi1+2.*phi2-3.*phi3-3.*phi4)),1.); // <4>_{4n,2n|3n,3n}
21014 fIntFlowDirectCorrelations->Fill(46.5,cos(n*(5.*phi1+1.*phi2-3.*phi3-3.*phi4)),1.); // <4>_{5n,1n|3n,3n}
21015 fIntFlowDirectCorrelations->Fill(47.5,cos(n*(4.*phi1+2.*phi2-4.*phi3-2.*phi4)),1.); // <4>_{4n,2n|4n,2n}
21016 fIntFlowDirectCorrelations->Fill(48.5,cos(n*(5.*phi1+1.*phi2-4.*phi3-2.*phi4)),1.); // <4>_{5n,1n|4n,2n}
21017 fIntFlowDirectCorrelations->Fill(49.5,cos(n*(5.*phi1-3.*phi2-1.*phi3-1.*phi4)),1.); // <4>_{5n|3n,1n,1n}
21018 fIntFlowDirectCorrelations->Fill(50.5,cos(n*(5.*phi1-2.*phi2-2.*phi3-1.*phi4)),1.); // <4>_{5n|2n,2n,1n}
21019 fIntFlowDirectCorrelations->Fill(51.5,cos(n*(5.*phi1+1.*phi2-5.*phi3-1.*phi4)),1.); // <4>_{5n,1n|5n,1n}
21020 fIntFlowDirectCorrelations->Fill(58.5,cos(n*(6.*phi1-4.*phi2-1.*phi3-1.*phi4)),1.); // <4>_{6n|4n,1n,1n}
21021 fIntFlowDirectCorrelations->Fill(59.5,cos(n*(6.*phi1-2.*phi2-2.*phi3-2.*phi4)),1.); // <4>_{6n|2n,2n,2n}
21022 } // end of for(Int_t i4=0;i4<nPrim;i4++)
21023 } // end of for(Int_t i3=0;i3<nPrim;i3++)
21024 } // end of for(Int_t i2=0;i2<nPrim;i2++)
21025 } // end of for(Int_t i1=0;i1<nPrim;i1++)
21026 } // end of if(nPrim>=)
21028 // 5-particle correlations:
21029 if(nPrim>=5 && nPrim<=fMaxAllowedMultiplicity)
21031 for(Int_t i1=0;i1<nPrim;i1++)
21033 aftsTrack=anEvent->GetTrack(i1);
21034 if(!(aftsTrack->InRPSelection())) continue;
21035 phi1=aftsTrack->Phi();
21036 for(Int_t i2=0;i2<nPrim;i2++)
21038 if(i2==i1)continue;
21039 aftsTrack=anEvent->GetTrack(i2);
21040 if(!(aftsTrack->InRPSelection())) continue;
21041 phi2=aftsTrack->Phi();
21042 for(Int_t i3=0;i3<nPrim;i3++)
21044 if(i3==i1||i3==i2)continue;
21045 aftsTrack=anEvent->GetTrack(i3);
21046 if(!(aftsTrack->InRPSelection())) continue;
21047 phi3=aftsTrack->Phi();
21048 for(Int_t i4=0;i4<nPrim;i4++)
21050 if(i4==i1||i4==i2||i4==i3)continue;
21051 aftsTrack=anEvent->GetTrack(i4);
21052 if(!(aftsTrack->InRPSelection())) continue;
21053 phi4=aftsTrack->Phi();
21054 for(Int_t i5=0;i5<nPrim;i5++)
21056 if(i5==i1||i5==i2||i5==i3||i5==i4)continue;
21057 aftsTrack=anEvent->GetTrack(i5);
21058 if(!(aftsTrack->InRPSelection())) continue;
21059 phi5=aftsTrack->Phi();
21060 if(nPrim==5) cout<<i1<<" "<<i2<<" "<<i3<<" "<<i4<<" "<<i5<<"\r"<<flush;
21061 // fill the profile with 5-p correlations:
21062 fIntFlowDirectCorrelations->Fill(18.,cos(2.*n*phi1+n*phi2-n*phi3-n*phi4-n*phi5),1.); // <5>_{2n,n|n,n,n}
21063 fIntFlowDirectCorrelations->Fill(19.,cos(2.*n*phi1+2.*n*phi2-2.*n*phi3-n*phi4-n*phi5),1.); // <5>_{2n,2n|2n,n,n}
21064 fIntFlowDirectCorrelations->Fill(20.,cos(3.*n*phi1+n*phi2-2.*n*phi3-n*phi4-n*phi5),1.); // <5>_{3n,n|2n,n,n}
21065 fIntFlowDirectCorrelations->Fill(21.,cos(4.*n*phi1-n*phi2-n*phi3-n*phi4-n*phi5),1.); // <5>_{4n|n,n,n,n}
21066 fIntFlowDirectCorrelations->Fill(33.,cos(3.*n*phi1+3.*n*phi2-2.*n*phi3-2.*n*phi4-2.*n*phi5),1.); // <5>_{3n,3n|2n,2n,2n}
21067 fIntFlowDirectCorrelations->Fill(52.5,cos(3.*n*phi1+3.*n*phi2-3.*n*phi3-2.*n*phi4-1.*n*phi5),1.); // <5>_{3n,3n|3n,2n,1n}
21068 fIntFlowDirectCorrelations->Fill(53.5,cos(4.*n*phi1+2.*n*phi2-3.*n*phi3-2.*n*phi4-1.*n*phi5),1.); // <5>_{4n,2n|3n,2n,1n}
21069 fIntFlowDirectCorrelations->Fill(54.5,cos(3.*n*phi1+2.*n*phi2-3.*n*phi3-1.*n*phi4-1.*n*phi5),1.); // <5>_{3n,2n|3n,1n,1n}
21070 fIntFlowDirectCorrelations->Fill(55.5,cos(3.*n*phi1+2.*n*phi2-2.*n*phi3-2.*n*phi4-1.*n*phi5),1.); // <5>_{3n,2n|2n,2n,1n}
21071 fIntFlowDirectCorrelations->Fill(56.5,cos(5.*n*phi1+1.*n*phi2-3.*n*phi3-2.*n*phi4-1.*n*phi5),1.); // <5>_{5n,1n|3n,2n,1n}
21072 fIntFlowDirectCorrelations->Fill(60.5,cos(6.*n*phi1-2.*n*phi2-2.*n*phi3-1.*n*phi4-1.*n*phi5),1.); // <5>_{6n|2n,2n,1n,1n}
21073 fIntFlowDirectCorrelations->Fill(61.5,cos(4.*n*phi1+1.*n*phi2+1.*n*phi3-3.*n*phi4-3.*n*phi5),1.); // <5>_{4n,1n,1n|3n,3n}
21074 } // end of for(Int_t i5=0;i5<nPrim;i5++)
21075 } // end of for(Int_t i4=0;i4<nPrim;i4++)
21076 } // end of for(Int_t i3=0;i3<nPrim;i3++)
21077 } // end of for(Int_t i2=0;i2<nPrim;i2++)
21078 } // end of for(Int_t i1=0;i1<nPrim;i1++)
21079 } // end of if(nPrim>=5)
21081 // 6-particle correlations:
21082 if(nPrim>=6 && nPrim<=fMaxAllowedMultiplicity)
21084 for(Int_t i1=0;i1<nPrim;i1++)
21086 aftsTrack=anEvent->GetTrack(i1);
21087 if(!(aftsTrack->InRPSelection())) continue;
21088 phi1=aftsTrack->Phi();
21089 for(Int_t i2=0;i2<nPrim;i2++)
21091 if(i2==i1)continue;
21092 aftsTrack=anEvent->GetTrack(i2);
21093 if(!(aftsTrack->InRPSelection())) continue;
21094 phi2=aftsTrack->Phi();
21095 for(Int_t i3=0;i3<nPrim;i3++)
21097 if(i3==i1||i3==i2)continue;
21098 aftsTrack=anEvent->GetTrack(i3);
21099 if(!(aftsTrack->InRPSelection())) continue;
21100 phi3=aftsTrack->Phi();
21101 for(Int_t i4=0;i4<nPrim;i4++)
21103 if(i4==i1||i4==i2||i4==i3)continue;
21104 aftsTrack=anEvent->GetTrack(i4);
21105 if(!(aftsTrack->InRPSelection())) continue;
21106 phi4=aftsTrack->Phi();
21107 for(Int_t i5=0;i5<nPrim;i5++)
21109 if(i5==i1||i5==i2||i5==i3||i5==i4)continue;
21110 aftsTrack=anEvent->GetTrack(i5);
21111 if(!(aftsTrack->InRPSelection())) continue;
21112 phi5=aftsTrack->Phi();
21113 for(Int_t i6=0;i6<nPrim;i6++)
21115 if(i6==i1||i6==i2||i6==i3||i6==i4||i6==i5)continue;
21116 aftsTrack=anEvent->GetTrack(i6);
21117 if(!(aftsTrack->InRPSelection())) continue;
21118 phi6=aftsTrack->Phi();
21119 if(nPrim==6) cout<<i1<<" "<<i2<<" "<<i3<<" "<<i4<<" "<<i5<<" "<<i6<<"\r"<<flush;
21120 // fill the profile with 6-p correlations:
21121 fIntFlowDirectCorrelations->Fill(23.,cos(n*phi1+n*phi2+n*phi3-n*phi4-n*phi5-n*phi6),1.); // <6>_{1n,1n,1n|1n,1n,1n}
21122 fIntFlowDirectCorrelations->Fill(24.,cos(2.*n*phi1+n*phi2+n*phi3-2.*n*phi4-n*phi5-n*phi6),1.); // <6>_{2n,1n,1n|2n,1n,1n}
21123 fIntFlowDirectCorrelations->Fill(25.,cos(2.*n*phi1+2.*n*phi2-n*phi3-n*phi4-n*phi5-n*phi6),1.); // <6>_{2n,2n|1n,1n,1n,1n}
21124 fIntFlowDirectCorrelations->Fill(26.,cos(3.*n*phi1+n*phi2-n*phi3-n*phi4-n*phi5-n*phi6),1.); // <6>_{3n,1n|1n,1n,1n,1n}
21125 fIntFlowDirectCorrelations->Fill(57.5,cos(3.*n*phi1+2.*n*phi2+1.*n*phi3-3.*n*phi4-2.*n*phi5-1.*n*phi6),1.); // <6>_{3n,2n,1n|3n,2n,1n}
21126 fIntFlowDirectCorrelations->Fill(62.5,cos(3.*n*phi1+3.*n*phi2-2.*n*phi3-2.*n*phi4-1.*n*phi5-1.*n*phi6),1.); // <6>_{3n,3n|2n,2n,1n,1n}
21127 } // end of for(Int_t i6=0;i6<nPrim;i6++)
21128 } // end of for(Int_t i5=0;i5<nPrim;i5++)
21129 } // end of for(Int_t i4=0;i4<nPrim;i4++)
21130 } // end of for(Int_t i3=0;i3<nPrim;i3++)
21131 } // end of for(Int_t i2=0;i2<nPrim;i2++)
21132 } // end of for(Int_t i1=0;i1<nPrim;i1++)
21133 } // end of if(nPrim>=6)
21135 // 7-particle correlations:
21136 if(nPrim>=7 && nPrim<=fMaxAllowedMultiplicity)
21138 for(Int_t i1=0;i1<nPrim;i1++)
21140 aftsTrack=anEvent->GetTrack(i1);
21141 if(!(aftsTrack->InRPSelection())) continue;
21142 phi1=aftsTrack->Phi();
21143 for(Int_t i2=0;i2<nPrim;i2++)
21145 if(i2==i1)continue;
21146 aftsTrack=anEvent->GetTrack(i2);
21147 if(!(aftsTrack->InRPSelection())) continue;
21148 phi2=aftsTrack->Phi();
21149 for(Int_t i3=0;i3<nPrim;i3++)
21151 if(i3==i1||i3==i2)continue;
21152 aftsTrack=anEvent->GetTrack(i3);
21153 if(!(aftsTrack->InRPSelection())) continue;
21154 phi3=aftsTrack->Phi();
21155 for(Int_t i4=0;i4<nPrim;i4++)
21157 if(i4==i1||i4==i2||i4==i3)continue;
21158 aftsTrack=anEvent->GetTrack(i4);
21159 if(!(aftsTrack->InRPSelection())) continue;
21160 phi4=aftsTrack->Phi();
21161 for(Int_t i5=0;i5<nPrim;i5++)
21163 if(i5==i1||i5==i2||i5==i3||i5==i4)continue;
21164 aftsTrack=anEvent->GetTrack(i5);
21165 if(!(aftsTrack->InRPSelection())) continue;
21166 phi5=aftsTrack->Phi();
21167 for(Int_t i6=0;i6<nPrim;i6++)
21169 if(i6==i1||i6==i2||i6==i3||i6==i4||i6==i5)continue;
21170 aftsTrack=anEvent->GetTrack(i6);
21171 if(!(aftsTrack->InRPSelection())) continue;
21172 phi6=aftsTrack->Phi();
21173 for(Int_t i7=0;i7<nPrim;i7++)
21175 if(i7==i1||i7==i2||i7==i3||i7==i4||i7==i5||i7==i6)continue;
21176 aftsTrack=anEvent->GetTrack(i7);
21177 if(!(aftsTrack->InRPSelection())) continue;
21178 phi7=aftsTrack->Phi();
21179 if(nPrim==7) cout<<i1<<" "<<i2<<" "<<i3<<" "<<i4<<" "<<i5<<" "<<i6<<" "<<i7<<"\r"<<flush;
21180 // fill the profile with 7-p correlation:
21181 fIntFlowDirectCorrelations->Fill(28.,cos(2.*n*phi1+n*phi2+n*phi3-n*phi4-n*phi5-n*phi6-n*phi7),1.); // <7>_{2n,n,n|n,n,n,n}
21182 } // end of for(Int_t i7=0;i7<nPrim;i7++)
21183 } // end of for(Int_t i6=0;i6<nPrim;i6++)
21184 } // end of for(Int_t i5=0;i5<nPrim;i5++)
21185 } // end of for(Int_t i4=0;i4<nPrim;i4++)
21186 } // end of for(Int_t i3=0;i3<nPrim;i3++)
21187 } // end of for(Int_t i2=0;i2<nPrim;i2++)
21188 } // end of for(Int_t i1=0;i1<nPrim;i1++)
21189 } // end of if(nPrim>=7)
21191 // 8-particle correlations:
21192 if(nPrim>=8 && nPrim<=fMaxAllowedMultiplicity)
21194 for(Int_t i1=0;i1<nPrim;i1++)
21196 aftsTrack=anEvent->GetTrack(i1);
21197 if(!(aftsTrack->InRPSelection())) continue;
21198 phi1=aftsTrack->Phi();
21199 for(Int_t i2=0;i2<nPrim;i2++)
21201 if(i2==i1)continue;
21202 aftsTrack=anEvent->GetTrack(i2);
21203 if(!(aftsTrack->InRPSelection())) continue;
21204 phi2=aftsTrack->Phi();
21205 for(Int_t i3=0;i3<nPrim;i3++)
21207 if(i3==i1||i3==i2)continue;
21208 aftsTrack=anEvent->GetTrack(i3);
21209 if(!(aftsTrack->InRPSelection())) continue;
21210 phi3=aftsTrack->Phi();
21211 for(Int_t i4=0;i4<nPrim;i4++)
21213 if(i4==i1||i4==i2||i4==i3)continue;
21214 aftsTrack=anEvent->GetTrack(i4);
21215 if(!(aftsTrack->InRPSelection())) continue;
21216 phi4=aftsTrack->Phi();
21217 for(Int_t i5=0;i5<nPrim;i5++)
21219 if(i5==i1||i5==i2||i5==i3||i5==i4)continue;
21220 aftsTrack=anEvent->GetTrack(i5);
21221 if(!(aftsTrack->InRPSelection())) continue;
21222 phi5=aftsTrack->Phi();
21223 for(Int_t i6=0;i6<nPrim;i6++)
21225 if(i6==i1||i6==i2||i6==i3||i6==i4||i6==i5)continue;
21226 aftsTrack=anEvent->GetTrack(i6);
21227 if(!(aftsTrack->InRPSelection())) continue;
21228 phi6=aftsTrack->Phi();
21229 for(Int_t i7=0;i7<nPrim;i7++)
21231 if(i7==i1||i7==i2||i7==i3||i7==i4||i7==i5||i7==i6)continue;
21232 aftsTrack=anEvent->GetTrack(i7);
21233 if(!(aftsTrack->InRPSelection())) continue;
21234 phi7=aftsTrack->Phi();
21235 for(Int_t i8=0;i8<nPrim;i8++)
21237 if(i8==i1||i8==i2||i8==i3||i8==i4||i8==i5||i8==i6||i8==i7)continue;
21238 aftsTrack=anEvent->GetTrack(i8);
21239 if(!(aftsTrack->InRPSelection())) continue;
21240 phi8=aftsTrack->Phi();
21241 cout<<i1<<" "<<i2<<" "<<i3<<" "<<i4<<" "<<i5<<" "<<i6<<" "<<i7<<" "<<i8<<"\r"<<flush;
21242 // fill the profile with 8-p correlation:
21243 fIntFlowDirectCorrelations->Fill(30.,cos(n*phi1+n*phi2+n*phi3+n*phi4-n*phi5-n*phi6-n*phi7-n*phi8),1.); // <8>_{n,n,n,n|n,n,n,n}
21244 } // end of for(Int_t i8=0;i8<nPrim;i8++)
21245 } // end of for(Int_t i7=0;i7<nPrim;i7++)
21246 } // end of for(Int_t i6=0;i6<nPrim;i6++)
21247 } // end of for(Int_t i5=0;i5<nPrim;i5++)
21248 } // end of for(Int_t i4=0;i4<nPrim;i4++)
21249 } // end of for(Int_t i3=0;i3<nPrim;i3++)
21250 } // end of for(Int_t i2=0;i2<nPrim;i2++)
21251 } // end of for(Int_t i1=0;i1<nPrim;i1++)
21252 } // end of if(nPrim>=8)
21256 } // end of AliFlowAnalysisWithQCumulants::EvaluateIntFlowCorrelationsWithNestedLoops(AliFlowEventSimple* anEvent)
21258 //================================================================================================================
21260 void AliFlowAnalysisWithQCumulants::EvaluateMixedHarmonicsWithNestedLoops(AliFlowEventSimple * const anEvent)
21262 // Evaluate with nested loops multi-particle correlations for mixed harmonics.
21264 Int_t nPrim = anEvent->NumberOfTracks();
21265 AliFlowTrackSimple *aftsTrack = NULL;
21271 /*Double_t phi6=0.;
21273 Double_t phi8=0.;*/
21274 Int_t n = fHarmonic;
21275 Int_t eventNo = (Int_t)fAvMultiplicity->GetBinEntries(1); // TBI: is such casting safe in general?
21276 Double_t dMult = (*fSpk)(0,0);
21278 cout<<"Multiparticle correlations: Event number: "<<eventNo<<", multiplicity is "<<dMult<<endl;
21281 cout<<"... skipping this event (multiplicity too low) ..."<<endl;
21282 } else if (dMult>fMaxAllowedMultiplicity)
21284 cout<<"... skipping this event (multiplicity too high) ..."<<endl;
21287 cout<<"... evaluating nested loops (without using particle weights)..."<<endl;
21290 // 2-particle correlations:
21291 if(nPrim>=2 && nPrim<=fMaxAllowedMultiplicity)
21293 for(Int_t i1=0;i1<nPrim;i1++)
21295 aftsTrack=anEvent->GetTrack(i1);
21296 if(!(aftsTrack->InRPSelection())) continue;
21297 phi1=aftsTrack->Phi();
21298 for(Int_t i2=0;i2<nPrim;i2++)
21300 if(i2==i1)continue;
21301 aftsTrack=anEvent->GetTrack(i2);
21302 if(!(aftsTrack->InRPSelection())) continue;
21303 phi2=aftsTrack->Phi();
21304 if(nPrim==2) cout<<i1<<" "<<i2<<"\r"<<flush;
21305 // Fill the profile fMixedHarmonicsNestedLoops with 2-p correlations:
21306 fMixedHarmonicsNestedLoops->Fill(0.5,cos(1.*n*(phi1-phi2)),1.); // <cos(1n*(phi1-phi2))>
21307 fMixedHarmonicsNestedLoops->Fill(1.5,cos(2.*n*(phi1-phi2)),1.); // <cos(2n*(phi1-phi2))>
21308 fMixedHarmonicsNestedLoops->Fill(2.5,cos(3.*n*(phi1-phi2)),1.); // <cos(3n*(phi1-phi2))>
21309 fMixedHarmonicsNestedLoops->Fill(3.5,cos(4.*n*(phi1-phi2)),1.); // <cos(4n*(phi1-phi2))>
21310 fMixedHarmonicsNestedLoops->Fill(4.5,cos(5.*n*(phi1-phi2)),1.); // <cos(5n*(phi1-phi2))>
21311 fMixedHarmonicsNestedLoops->Fill(5.5,cos(6.*n*(phi1-phi2)),1.); // <cos(6n*(phi1-phi2))>
21312 } // end of for(Int_t i2=0;i2<nPrim;i2++)
21313 } // end of for(Int_t i1=0;i1<nPrim;i1++)
21314 } // end of if(nPrim>=2)
21316 // 3-particle correlations:
21317 if(nPrim>=3 && nPrim<=fMaxAllowedMultiplicity)
21319 for(Int_t i1=0;i1<nPrim;i1++)
21321 aftsTrack=anEvent->GetTrack(i1);
21322 if(!(aftsTrack->InRPSelection())) continue;
21323 phi1=aftsTrack->Phi();
21324 for(Int_t i2=0;i2<nPrim;i2++)
21326 if(i2==i1)continue;
21327 aftsTrack=anEvent->GetTrack(i2);
21328 if(!(aftsTrack->InRPSelection())) continue;
21329 phi2=aftsTrack->Phi();
21330 for(Int_t i3=0;i3<nPrim;i3++)
21332 if(i3==i1||i3==i2)continue;
21333 aftsTrack=anEvent->GetTrack(i3);
21334 if(!(aftsTrack->InRPSelection())) continue;
21335 phi3=aftsTrack->Phi();
21336 if(nPrim==3) cout<<i1<<" "<<i2<<" "<<i3<<"\r"<<flush;
21337 // Fill the profile fMixedHarmonicsNestedLoops with 3-p correlations:
21338 fMixedHarmonicsNestedLoops->Fill( 6.5,cos(2.*n*phi1-n*(phi2+phi3)),1.); // <3>_{2n|1n,1n}
21339 fMixedHarmonicsNestedLoops->Fill( 7.5,cos(4.*n*phi1-2.*n*phi2-2.*n*phi3),1.); // <3>_{4n|2n,2n}
21340 fMixedHarmonicsNestedLoops->Fill( 8.5,cos(6.*n*phi1-3.*n*phi2-3.*n*phi3),1.); // <3>_{6n|3n,3n}
21341 fMixedHarmonicsNestedLoops->Fill(10.5,cos(3.*n*phi1-2.*n*phi2-n*phi3),1.); // <3>_{3n|2n,1n}
21342 fMixedHarmonicsNestedLoops->Fill(11.5,cos(4.*n*phi1-3.*n*phi2-1.*n*phi3),1.); // <3>_{4n|3n,1n}
21343 fMixedHarmonicsNestedLoops->Fill(12.5,cos(5.*n*phi1-3.*n*phi2-2.*n*phi3),1.); // <3>_{5n|3n,2n}
21344 fMixedHarmonicsNestedLoops->Fill(13.5,cos(5.*n*phi1-4.*n*phi2-1.*n*phi3),1.); // <3>_{5n|4n,1n}
21345 fMixedHarmonicsNestedLoops->Fill(14.5,cos(6.*n*phi1-4.*n*phi2-2.*n*phi3),1.); // <3>_{6n|4n,2n}
21346 fMixedHarmonicsNestedLoops->Fill(15.5,cos(6.*n*phi1-5.*n*phi2-1.*n*phi3),1.); // <3>_{6n|5n,1n}
21347 } // end of for(Int_t i3=0;i3<nPrim;i3++)
21348 } // end of for(Int_t i2=0;i2<nPrim;i2++)
21349 } // end of for(Int_t i1=0;i1<nPrim;i1++)
21350 } // end of if(nPrim>=3)
21352 // 4-particle correlations:
21353 if(nPrim>=4 && nPrim<=fMaxAllowedMultiplicity)
21355 for(Int_t i1=0;i1<nPrim;i1++)
21357 aftsTrack=anEvent->GetTrack(i1);
21358 if(!(aftsTrack->InRPSelection())) continue;
21359 phi1=aftsTrack->Phi();
21360 for(Int_t i2=0;i2<nPrim;i2++)
21362 if(i2==i1)continue;
21363 aftsTrack=anEvent->GetTrack(i2);
21364 if(!(aftsTrack->InRPSelection())) continue;
21365 phi2=aftsTrack->Phi();
21366 for(Int_t i3=0;i3<nPrim;i3++)
21368 if(i3==i1||i3==i2)continue;
21369 aftsTrack=anEvent->GetTrack(i3);
21370 if(!(aftsTrack->InRPSelection())) continue;
21371 phi3=aftsTrack->Phi();
21372 for(Int_t i4=0;i4<nPrim;i4++)
21374 if(i4==i1||i4==i2||i4==i3)continue;
21375 aftsTrack=anEvent->GetTrack(i4);
21376 if(!(aftsTrack->InRPSelection())) continue;
21377 phi4=aftsTrack->Phi();
21378 if(nPrim==4) cout<<i1<<" "<<i2<<" "<<i3<<" "<<i4<<"\r"<<flush;
21379 // fill the profile with 4-p correlations:
21380 fMixedHarmonicsNestedLoops->Fill(16.5,cos(1.*n*(phi1+phi2-phi3-phi4)),1.); // <4>_{1n,1n|1n,1n}
21381 fMixedHarmonicsNestedLoops->Fill(17.5,cos(2.*n*(phi1+phi2-phi3-phi4)),1.); // <4>_{2n,2n|2n,2n}
21382 fMixedHarmonicsNestedLoops->Fill(18.5,cos(3.*n*(phi1+phi2-phi3-phi4)),1.); // <4>_{3n,3n|3n,3n}
21383 fMixedHarmonicsNestedLoops->Fill(19.5,cos(4.*n*(phi1+phi2-phi3-phi4)),1.); // <4>_{4n,4n|4n,4n}
21384 fMixedHarmonicsNestedLoops->Fill(20.5,cos(5.*n*(phi1+phi2-phi3-phi4)),1.); // <4>_{5n,5n|5n,5n}
21385 fMixedHarmonicsNestedLoops->Fill(21.5,cos(6.*n*(phi1+phi2-phi3-phi4)),1.); // <4>_{6n,6n|6n,6n}
21386 fMixedHarmonicsNestedLoops->Fill(23.5,cos(n*(2.*phi1+1.*phi2-2.*phi3-1.*phi4)),1.); // <4>_{2n,1n|2n,1n}
21387 fMixedHarmonicsNestedLoops->Fill(24.5,cos(n*(3.*phi1+1.*phi2-3.*phi3-1.*phi4)),1.); // <4>_{3n,1n|3n,1n}
21388 fMixedHarmonicsNestedLoops->Fill(25.5,cos(n*(3.*phi1+2.*phi2-3.*phi3-2.*phi4)),1.); // <4>_{3n,2n|3n,2n}
21389 fMixedHarmonicsNestedLoops->Fill(26.5,cos(n*(4.*phi1+1.*phi2-4.*phi3-1.*phi4)),1.); // <4>_{4n,1n|4n,1n}
21390 fMixedHarmonicsNestedLoops->Fill(27.5,cos(n*(4.*phi1+2.*phi2-4.*phi3-2.*phi4)),1.); // <4>_{4n,2n|4n,2n}
21391 fMixedHarmonicsNestedLoops->Fill(28.5,cos(n*(4.*phi1+3.*phi2-4.*phi3-3.*phi4)),1.); // <4>_{4n,3n|4n,3n}
21392 fMixedHarmonicsNestedLoops->Fill(29.5,cos(n*(5.*phi1+1.*phi2-5.*phi3-1.*phi4)),1.); // <4>_{5n,1n|5n,1n}
21393 fMixedHarmonicsNestedLoops->Fill(30.5,cos(n*(5.*phi1+2.*phi2-5.*phi3-2.*phi4)),1.); // <4>_{5n,2n|5n,2n}
21394 fMixedHarmonicsNestedLoops->Fill(31.5,cos(n*(5.*phi1+3.*phi2-5.*phi3-3.*phi4)),1.); // <4>_{5n,3n|5n,3n}
21395 fMixedHarmonicsNestedLoops->Fill(32.5,cos(n*(5.*phi1+4.*phi2-5.*phi3-4.*phi4)),1.); // <4>_{5n,4n|5n,4n}
21396 fMixedHarmonicsNestedLoops->Fill(33.5,cos(n*(6.*phi1+1.*phi2-6.*phi3-1.*phi4)),1.); // <4>_{6n,1n|6n,1n}
21397 fMixedHarmonicsNestedLoops->Fill(34.5,cos(n*(6.*phi1+2.*phi2-6.*phi3-2.*phi4)),1.); // <4>_{6n,2n|6n,2n}
21398 fMixedHarmonicsNestedLoops->Fill(35.5,cos(n*(6.*phi1+3.*phi2-6.*phi3-3.*phi4)),1.); // <4>_{6n,3n|6n,3n}
21399 fMixedHarmonicsNestedLoops->Fill(36.5,cos(n*(6.*phi1+4.*phi2-6.*phi3-4.*phi4)),1.); // <4>_{6n,4n|6n,4n}
21400 fMixedHarmonicsNestedLoops->Fill(37.5,cos(n*(6.*phi1+5.*phi2-6.*phi3-5.*phi4)),1.); // <4>_{6n,5n|6n,5n}
21401 fMixedHarmonicsNestedLoops->Fill(39.5,cos(n*(3.*phi1-1.*phi2-1.*phi3-1.*phi4)),1.); // <4>_{3n|1n,1n,1n}
21402 fMixedHarmonicsNestedLoops->Fill(40.5,cos(n*(6.*phi1-2.*phi2-2.*phi3-2.*phi4)),1.); // <4>_{6n|2n,2n,2n}
21403 fMixedHarmonicsNestedLoops->Fill(42.5,cos(n*(3.*phi1+1.*phi2-2.*phi3-2.*phi4)),1.); // <4>_{3n,1n|2n,2n}
21404 fMixedHarmonicsNestedLoops->Fill(43.5,cos(n*(4.*phi1-2.*phi2-1.*phi3-1.*phi4)),1.); // <4>_{4n|2n,1n,1n}
21405 fMixedHarmonicsNestedLoops->Fill(44.5,cos(n*(4.*phi1+2.*phi2-3.*phi3-3.*phi4)),1.); // <4>_{4n,2n|3n,3n}
21406 fMixedHarmonicsNestedLoops->Fill(45.5,cos(n*(5.*phi1-2.*phi2-2.*phi3-1.*phi4)),1.); // <4>_{5n|2n,2n,1n}
21407 fMixedHarmonicsNestedLoops->Fill(46.5,cos(n*(5.*phi1-3.*phi2-1.*phi3-1.*phi4)),1.); // <4>_{5n|3n,1n,1n}
21408 fMixedHarmonicsNestedLoops->Fill(47.5,cos(n*(5.*phi1+1.*phi2-3.*phi3-3.*phi4)),1.); // <4>_{5n,1n|3n,3n}
21409 fMixedHarmonicsNestedLoops->Fill(48.5,cos(n*(5.*phi1+3.*phi2-4.*phi3-4.*phi4)),1.); // <4>_{5n,3n|4n,4n}
21410 fMixedHarmonicsNestedLoops->Fill(49.5,cos(n*(6.*phi1-4.*phi2-1.*phi3-1.*phi4)),1.); // <4>_{6n|4n,1n,1n}
21411 fMixedHarmonicsNestedLoops->Fill(50.5,cos(n*(6.*phi1+2.*phi2-4.*phi3-4.*phi4)),1.); // <4>_{6n,2n|4n,4n}
21412 fMixedHarmonicsNestedLoops->Fill(51.5,cos(n*(6.*phi1+4.*phi2-5.*phi3-5.*phi4)),1.); // <4>_{6n,4n|5n,5n}
21413 fMixedHarmonicsNestedLoops->Fill(53.5,cos(n*(4.*phi1+1.*phi2-3.*phi3-2.*phi4)),1.); // <4>_{4n,1n|3n,2n}
21414 fMixedHarmonicsNestedLoops->Fill(54.5,cos(n*(5.*phi1+1.*phi2-4.*phi3-2.*phi4)),1.); // <4>_{5n,1n|4n,2n}
21415 fMixedHarmonicsNestedLoops->Fill(55.5,cos(n*(5.*phi1+2.*phi2-4.*phi3-3.*phi4)),1.); // <4>_{5n,2n|4n,3n}
21416 fMixedHarmonicsNestedLoops->Fill(56.5,cos(n*(6.*phi1+1.*phi2-4.*phi3-3.*phi4)),1.); // <4>_{6n,1n|4n,3n}
21417 fMixedHarmonicsNestedLoops->Fill(57.5,cos(n*(6.*phi1+1.*phi2-5.*phi3-2.*phi4)),1.); // <4>_{6n,1n|5n,2n}
21418 fMixedHarmonicsNestedLoops->Fill(58.5,cos(n*(6.*phi1-3.*phi2-2.*phi3-1.*phi4)),1.); // <4>_{6n|3n,2n,1n}
21419 fMixedHarmonicsNestedLoops->Fill(59.5,cos(n*(6.*phi1+2.*phi2-5.*phi3-3.*phi4)),1.); // <4>_{6n,2n|5n,3n}
21420 fMixedHarmonicsNestedLoops->Fill(60.5,cos(n*(6.*phi1+3.*phi2-5.*phi3-4.*phi4)),1.); // <4>_{6n,3n|5n,4n}
21421 } // end of for(Int_t i4=0;i4<nPrim;i4++)
21422 } // end of for(Int_t i3=0;i3<nPrim;i3++)
21423 } // end of for(Int_t i2=0;i2<nPrim;i2++)
21424 } // end of for(Int_t i1=0;i1<nPrim;i1++)
21425 } // end of if(nPrim>=)
21427 // 5-particle correlations:
21428 if(nPrim>=5 && nPrim<=fMaxAllowedMultiplicity)
21430 for(Int_t i1=0;i1<nPrim;i1++)
21432 aftsTrack=anEvent->GetTrack(i1);
21433 if(!(aftsTrack->InRPSelection())) continue;
21434 phi1=aftsTrack->Phi();
21435 for(Int_t i2=0;i2<nPrim;i2++)
21437 if(i2==i1)continue;
21438 aftsTrack=anEvent->GetTrack(i2);
21439 if(!(aftsTrack->InRPSelection())) continue;
21440 phi2=aftsTrack->Phi();
21441 for(Int_t i3=0;i3<nPrim;i3++)
21443 if(i3==i1||i3==i2)continue;
21444 aftsTrack=anEvent->GetTrack(i3);
21445 if(!(aftsTrack->InRPSelection())) continue;
21446 phi3=aftsTrack->Phi();
21447 for(Int_t i4=0;i4<nPrim;i4++)
21449 if(i4==i1||i4==i2||i4==i3)continue;
21450 aftsTrack=anEvent->GetTrack(i4);
21451 if(!(aftsTrack->InRPSelection())) continue;
21452 phi4=aftsTrack->Phi();
21453 for(Int_t i5=0;i5<nPrim;i5++)
21455 if(i5==i1||i5==i2||i5==i3||i5==i4)continue;
21456 aftsTrack=anEvent->GetTrack(i5);
21457 if(!(aftsTrack->InRPSelection())) continue;
21458 phi5=aftsTrack->Phi();
21459 if(nPrim==5) cout<<i1<<" "<<i2<<" "<<i3<<" "<<i4<<" "<<i5<<"\r"<<flush;
21460 // fill the profile with 5-p correlations:
21461 fMixedHarmonicsNestedLoops->Fill(61.5,cos(n*(3.*phi1+2.*phi2-3.*phi3-1.*phi4-1.*phi5)),1.); // <cos(n(3*phi1+2*phi2-3*phi3-1*phi4-1*phi5))>
21462 fMixedHarmonicsNestedLoops->Fill(62.5,cos(n*(4.*phi1+1.*phi2-2.*phi3-2.*phi4-1.*phi5)),1.); // <cos(n(4*phi1+1*phi2-2*phi3-2*phi4-1*phi5))>
21463 fMixedHarmonicsNestedLoops->Fill(63.5,cos(n*(4.*phi1+2.*phi2-3.*phi3-2.*phi4-1.*phi5)),1.); // <cos(n(4*phi1+2*phi2-3*phi3-2*phi4-1*phi5))>
21464 fMixedHarmonicsNestedLoops->Fill(64.5,cos(n*(4.*phi1+3.*phi2-3.*phi3-2.*phi4-2.*phi5)),1.); // <cos(n(4*phi1+3*phi2-3*phi3-2*phi4-2*phi5))>
21465 fMixedHarmonicsNestedLoops->Fill(65.5,cos(n*(4.*phi1+2.*phi2-4.*phi3-1.*phi4-1.*phi5)),1.); // <cos(n(4*phi1+2*phi2-4*phi3-1*phi4-1*phi5))>
21466 fMixedHarmonicsNestedLoops->Fill(66.5,cos(n*(4.*phi1+3.*phi2-4.*phi3-2.*phi4-1.*phi5)),1.); // <cos(n(4*phi1+3*phi2-4*phi3-2*phi4-1*phi5))>
21467 fMixedHarmonicsNestedLoops->Fill(67.5,cos(n*(5.*phi1+1.*phi2-3.*phi3-2.*phi4-1.*phi5)),1.); // <cos(n(5*phi1+1*phi2-3*phi3-2*phi4-1*phi5))>
21468 fMixedHarmonicsNestedLoops->Fill(68.5,cos(n*(5.*phi1+2.*phi2-5.*phi3-1.*phi4-1.*phi5)),1.); // <cos(n(5*phi1+2*phi2-5*phi3-1*phi4-1*phi5))>
21469 fMixedHarmonicsNestedLoops->Fill(69.5,cos(n*(5.*phi1+2.*phi2-4.*phi3-2.*phi4-1.*phi5)),1.); // <cos(n(5*phi1+2*phi2-4*phi3-2*phi4-1*phi5))>
21470 fMixedHarmonicsNestedLoops->Fill(70.5,cos(n*(5.*phi1+3.*phi2-4.*phi3-3.*phi4-1.*phi5)),1.); // <cos(n(5*phi1+3*phi2-4*phi3-3*phi4-1*phi5))>
21471 fMixedHarmonicsNestedLoops->Fill(71.5,cos(n*(5.*phi1+4.*phi2-4.*phi3-3.*phi4-2.*phi5)),1.); // <cos(n(5*phi1+4*phi2-4*phi3-3*phi4-2*phi5))>
21472 fMixedHarmonicsNestedLoops->Fill(72.5,cos(n*(5.*phi1+3.*phi2-5.*phi3-2.*phi4-1.*phi5)),1.); // <cos(n(5*phi1+3*phi2-5*phi3-2*phi4-1*phi5))>
21473 fMixedHarmonicsNestedLoops->Fill(73.5,cos(n*(5.*phi1+4.*phi2-5.*phi3-2.*phi4-2.*phi5)),1.); // <cos(n(5*phi1+4*phi2-5*phi3-2*phi4-2*phi5))>
21474 fMixedHarmonicsNestedLoops->Fill(74.5,cos(n*(5.*phi1+4.*phi2-5.*phi3-3.*phi4-1.*phi5)),1.); // <cos(n(5*phi1+4*phi2-5*phi3-3*phi4-1*phi5))>
21475 fMixedHarmonicsNestedLoops->Fill(75.5,cos(n*(6.*phi1+1.*phi2-3.*phi3-3.*phi4-1.*phi5)),1.); // <cos(n(6*phi1+1*phi2-3*phi3-3*phi4-1*phi5))>
21476 fMixedHarmonicsNestedLoops->Fill(76.5,cos(n*(6.*phi1+2.*phi2-3.*phi3-3.*phi4-2.*phi5)),1.); // <cos(n(6*phi1+2*phi2-3*phi3-3*phi4-2*phi5))>
21477 fMixedHarmonicsNestedLoops->Fill(77.5,cos(n*(6.*phi1+1.*phi2-4.*phi3-2.*phi4-1.*phi5)),1.); // <cos(n(6*phi1+1*phi2-4*phi3-2*phi4-1*phi5))>
21478 fMixedHarmonicsNestedLoops->Fill(78.5,cos(n*(6.*phi1+3.*phi2-4.*phi3-3.*phi4-2.*phi5)),1.); // <cos(n(6*phi1+3*phi2-4*phi3-3*phi4-2*phi5))>
21479 fMixedHarmonicsNestedLoops->Fill(79.5,cos(n*(6.*phi1+4.*phi2-4.*phi3-3.*phi4-3.*phi5)),1.); // <cos(n(6*phi1+4*phi2-4*phi3-3*phi4-3*phi5))>
21480 fMixedHarmonicsNestedLoops->Fill(80.5,cos(n*(6.*phi1+2.*phi2-5.*phi3-2.*phi4-1.*phi5)),1.); // <cos(n(6*phi1+2*phi2-5*phi3-2*phi4-1*phi5))>
21481 fMixedHarmonicsNestedLoops->Fill(81.5,cos(n*(6.*phi1+3.*phi2-5.*phi3-3.*phi4-1.*phi5)),1.); // <cos(n(6*phi1+3*phi2-5*phi3-3*phi4-1*phi5))>
21482 fMixedHarmonicsNestedLoops->Fill(82.5,cos(n*(6.*phi1+4.*phi2-5.*phi3-4.*phi4-1.*phi5)),1.); // <cos(n(6*phi1+4*phi2-5*phi3-4*phi4-1*phi5))>
21483 fMixedHarmonicsNestedLoops->Fill(83.5,cos(n*(6.*phi1+5.*phi2-5.*phi3-3.*phi4-3.*phi5)),1.); // <cos(n(6*phi1+5*phi2-5*phi3-3*phi4-3*phi5))>
21484 fMixedHarmonicsNestedLoops->Fill(84.5,cos(n*(6.*phi1+2.*phi2-6.*phi3-1.*phi4-1.*phi5)),1.); // <cos(n(6*phi1+2*phi2-6*phi3-1*phi4-1*phi5))>
21485 fMixedHarmonicsNestedLoops->Fill(85.5,cos(n*(6.*phi1+3.*phi2-6.*phi3-2.*phi4-1.*phi5)),1.); // <cos(n(6*phi1+3*phi2-6*phi3-2*phi4-1*phi5))>
21486 fMixedHarmonicsNestedLoops->Fill(86.5,cos(n*(6.*phi1+4.*phi2-6.*phi3-2.*phi4-2.*phi5)),1.); // <cos(n(6*phi1+4*phi2-6*phi3-2*phi4-2*phi5))>
21487 fMixedHarmonicsNestedLoops->Fill(87.5,cos(n*(6.*phi1+4.*phi2-6.*phi3-3.*phi4-1.*phi5)),1.); // <cos(n(6*phi1+4*phi2-6*phi3-3*phi4-1*phi5))>
21488 fMixedHarmonicsNestedLoops->Fill(88.5,cos(n*(6.*phi1+5.*phi2-5.*phi3-4.*phi4-2.*phi5)),1.); // <cos(n(6*phi1+5*phi2-5*phi3-4*phi4-2*phi5))>
21489 fMixedHarmonicsNestedLoops->Fill(89.5,cos(n*(6.*phi1+5.*phi2-6.*phi3-3.*phi4-2.*phi5)),1.); // <cos(n(6*phi1+5*phi2-6*phi3-3*phi4-2*phi5))>
21490 fMixedHarmonicsNestedLoops->Fill(90.5,cos(n*(6.*phi1+5.*phi2-6.*phi3-4.*phi4-1.*phi5)),1.); // <cos(n(6*phi1+5*phi2-6*phi3-4*phi4-1*phi5))>
21491 //fMixedHarmonicsNestedLoops->Fill(91.5,-44.,1.); // empty
21492 fMixedHarmonicsNestedLoops->Fill(92.5,cos(n*(2.*phi1+1.*phi2-1.*phi3-1.*phi4-1.*phi5)),1.); // <cos(n(2*phi1+1*phi2-1*phi3-1*phi4-1*phi5))>
21493 fMixedHarmonicsNestedLoops->Fill(93.5,cos(n*(2.*phi1+2.*phi2-2.*phi3-1.*phi4-1.*phi5)),1.); // <cos(n(2*phi1+2*phi2-2*phi3-1*phi4-1*phi5))>
21494 fMixedHarmonicsNestedLoops->Fill(94.5,cos(n*(3.*phi1+3.*phi2-2.*phi3-2.*phi4-2.*phi5)),1.); // <cos(n(3*phi1+3*phi2-2*phi3-2*phi4-2*phi5))>
21495 fMixedHarmonicsNestedLoops->Fill(95.5,cos(n*(4.*phi1-1.*phi2-1.*phi3-1.*phi4-1.*phi5)),1.); // <cos(n(4*phi1-1*phi2-1*phi3-1*phi4-1*phi5))>
21496 fMixedHarmonicsNestedLoops->Fill(96.5,cos(n*(4.*phi1+2.*phi2-2.*phi3-2.*phi4-2.*phi5)),1.); // <cos(n(4*phi1+2*phi2-2*phi3-2*phi4-2*phi5))>
21497 fMixedHarmonicsNestedLoops->Fill(97.5,cos(n*(4.*phi1+4.*phi2-4.*phi3-2.*phi4-2.*phi5)),1.); // <cos(n(4*phi1+4*phi2-4*phi3-2*phi4-2*phi5))>
21498 fMixedHarmonicsNestedLoops->Fill(98.5,cos(n*(6.*phi1+3.*phi2-3.*phi3-3.*phi4-3.*phi5)),1.); // <cos(n(6*phi1+3*phi2-3*phi3-3*phi4-3*phi5))>
21499 fMixedHarmonicsNestedLoops->Fill(99.5,cos(n*(6.*phi1+6.*phi2-4.*phi3-4.*phi4-4.*phi5)),1.); // <cos(n(6*phi1+6*phi2-4*phi3-4*phi4-4*phi5))>
21500 fMixedHarmonicsNestedLoops->Fill(100.5,cos(n*(6.*phi1+6.*phi2-6.*phi3-3.*phi4-3.*phi5)),1.); // <cos(n(6*phi1+6*phi2-6*phi3-3*phi4-3*phi5))>
21501 //fMixedHarmonicsNestedLoops->Fill(101.5,-44.,1.); // empty
21502 fMixedHarmonicsNestedLoops->Fill(102.5,cos(n*(3.*phi1+1.*phi2-2.*phi3-1.*phi4-1.*phi5)),1.); // <cos(n(3*phi1+1*phi2-2*phi3-1*phi4-1*phi5))>
21503 fMixedHarmonicsNestedLoops->Fill(103.5,cos(n*(3.*phi1+2.*phi2-2.*phi3-2.*phi4-1.*phi5)),1.); // <cos(n(3*phi1+2*phi2-2*phi3-2*phi4-1*phi5))>
21504 fMixedHarmonicsNestedLoops->Fill(104.5,cos(n*(3.*phi1+3.*phi2-3.*phi3-2.*phi4-1.*phi5)),1.); // <cos(n(3*phi1+3*phi2-3*phi3-2*phi4-1*phi5))>
21505 fMixedHarmonicsNestedLoops->Fill(105.5,cos(n*(4.*phi1+1.*phi2-3.*phi3-1.*phi4-1.*phi5)),1.); // <cos(n(4*phi1+1*phi2-3*phi3-1*phi4-1*phi5))>
21506 fMixedHarmonicsNestedLoops->Fill(106.5,cos(n*(4.*phi1+1.*phi2+1.*phi3-3.*phi4-3.*phi5)),1.); // <cos(n(4*phi1+1*phi2+1*phi3-3*phi4-3*phi5))>
21507 fMixedHarmonicsNestedLoops->Fill(107.5,cos(n*(4.*phi1+3.*phi2-3.*phi3-3.*phi4-1.*phi5)),1.); // <cos(n(4*phi1+3*phi2-3*phi3-3*phi4-1*phi5))>
21508 fMixedHarmonicsNestedLoops->Fill(108.5,cos(n*(4.*phi1+4.*phi2-3.*phi3-3.*phi4-2.*phi5)),1.); // <cos(n(4*phi1+4*phi2-3*phi3-3*phi4-2*phi5))>
21509 fMixedHarmonicsNestedLoops->Fill(109.5,cos(n*(4.*phi1+4.*phi2-4.*phi3-3.*phi4-1.*phi5)),1.); // <cos(n(4*phi1+4*phi2-4*phi3-3*phi4-1*phi5))>
21510 fMixedHarmonicsNestedLoops->Fill(110.5,cos(n*(5.*phi1-2.*phi2-1.*phi3-1.*phi4-1.*phi5)),1.); // <cos(n(5*phi1-2*phi2-1*phi3-1*phi4-1*phi5))>
21511 fMixedHarmonicsNestedLoops->Fill(111.5,cos(n*(5.*phi1+1.*phi2-2.*phi3-2.*phi4-2.*phi5)),1.); // <cos(n(5*phi1+1*phi2-2*phi3-2*phi4-2*phi5))>
21512 fMixedHarmonicsNestedLoops->Fill(112.5,cos(n*(5.*phi1+2.*phi2-3.*phi3-2.*phi4-2.*phi5)),1.); // <cos(n(5*phi1+2*phi2-3*phi3-2*phi4-2*phi5))>
21513 fMixedHarmonicsNestedLoops->Fill(113.5,cos(n*(5.*phi1+3.*phi2-3.*phi3-3.*phi4-2.*phi5)),1.); // <cos(n(5*phi1+3*phi2-3*phi3-3*phi4-2*phi5))>
21514 fMixedHarmonicsNestedLoops->Fill(114.5,cos(n*(5.*phi1+1.*phi2-4.*phi3-1.*phi4-1.*phi5)),1.); // <cos(n(5*phi1+1*phi2-4*phi3-1*phi4-1*phi5))>
21515 fMixedHarmonicsNestedLoops->Fill(115.5,cos(n*(5.*phi1+4.*phi2-3.*phi3-3.*phi4-3.*phi5)),1.); // <cos(n(5*phi1+4*phi2-3*phi3-3*phi4-3*phi5))>
21516 fMixedHarmonicsNestedLoops->Fill(116.5,cos(n*(5.*phi1+4.*phi2-4.*phi3-4.*phi4-1.*phi5)),1.); // <cos(n(5*phi1+4*phi2-4*phi3-4*phi4-1*phi5))>
21517 fMixedHarmonicsNestedLoops->Fill(117.5,cos(n*(5.*phi1+5.*phi2-4.*phi3-3.*phi4-3.*phi5)),1.); // <cos(n(5*phi1+5*phi2-4*phi3-3*phi4-3*phi5))>
21518 fMixedHarmonicsNestedLoops->Fill(118.5,cos(n*(5.*phi1+5.*phi2-4.*phi3-4.*phi4-2.*phi5)),1.); // <cos(n(5*phi1+5*phi2-4*phi3-4*phi4-2*phi5))>
21519 fMixedHarmonicsNestedLoops->Fill(119.5,cos(n*(5.*phi1+5.*phi2-5.*phi3-3.*phi4-2.*phi5)),1.); // <cos(n(5*phi1+5*phi2-5*phi3-3*phi4-2*phi5))>
21520 fMixedHarmonicsNestedLoops->Fill(120.5,cos(n*(5.*phi1+5.*phi2-5.*phi3-4.*phi4-1.*phi5)),1.); // <cos(n(5*phi1+5*phi2-5*phi3-4*phi4-1*phi5))>
21521 fMixedHarmonicsNestedLoops->Fill(121.5,cos(n*(6.*phi1-2.*phi2-2.*phi3-1.*phi4-1.*phi5)),1.); // <cos(n(6*phi1-2*phi2-2*phi3-1*phi4-1*phi5))>
21522 fMixedHarmonicsNestedLoops->Fill(122.5,cos(n*(6.*phi1-3.*phi2-1.*phi3-1.*phi4-1.*phi5)),1.); // <cos(n(6*phi1-3*phi2-1*phi3-1*phi4-1*phi5))>
21523 fMixedHarmonicsNestedLoops->Fill(123.5,cos(n*(6.*phi1+1.*phi2+1.*phi3-4.*phi4-4.*phi5)),1.); // <cos(n(6*phi1+1*phi2+1*phi3-4*phi4-4*phi5))>
21524 fMixedHarmonicsNestedLoops->Fill(124.5,cos(n*(6.*phi1+1.*phi2-5.*phi3-1.*phi4-1.*phi5)),1.); // <cos(n(6*phi1+1*phi2-5*phi3-1*phi4-1*phi5))>
21525 fMixedHarmonicsNestedLoops->Fill(125.5,cos(n*(6.*phi1+2.*phi2-4.*phi3-2.*phi4-2.*phi5)),1.); // <cos(n(6*phi1+2*phi2-4*phi3-2*phi4-2*phi5))>
21526 fMixedHarmonicsNestedLoops->Fill(126.5,cos(n*(6.*phi1+4.*phi2-4.*phi3-4.*phi4-2.*phi5)),1.); // <cos(n(6*phi1+4*phi2-4*phi3-4*phi4-2*phi5))>
21527 fMixedHarmonicsNestedLoops->Fill(127.5,cos(n*(6.*phi1+2.*phi2+2.*phi3-5.*phi4-5.*phi5)),1.); // <cos(n(6*phi1+2*phi2+2*phi3-5*phi4-5*phi5))>
21528 fMixedHarmonicsNestedLoops->Fill(128.5,cos(n*(6.*phi1+5.*phi2-5.*phi3-5.*phi4-1.*phi5)),1.); // <cos(n(6*phi1+5*phi2-5*phi3-5*phi4-1*phi5))>
21529 fMixedHarmonicsNestedLoops->Fill(129.5,cos(n*(6.*phi1+6.*phi2-5.*phi3-5.*phi4-2.*phi5)),1.); // <cos(n(6*phi1+6*phi2-5*phi3-5*phi4-2*phi5))>
21530 fMixedHarmonicsNestedLoops->Fill(130.5,cos(n*(6.*phi1+6.*phi2-6.*phi3-4.*phi4-2.*phi5)),1.); // <cos(n(6*phi1+6*phi2-6*phi3-4*phi4-2*phi5))>
21531 fMixedHarmonicsNestedLoops->Fill(131.5,cos(n*(6.*phi1+6.*phi2-6.*phi3-5.*phi4-1.*phi5)),1.); // <cos(n(6*phi1+6*phi2-6*phi3-5*phi4-1*phi5))> // TBI swap with the one above
21532 //fMixedHarmonicsNestedLoops->Fill(132.5,-44.,1.); // empty
21533 fMixedHarmonicsNestedLoops->Fill(133.5,cos(n*(5.*phi1+2.*phi2-3.*phi3-3.*phi4-1.*phi5)),1.); // <cos(n(5*phi1+2*phi2-3*phi3-3*phi4-1*phi5))>
21534 fMixedHarmonicsNestedLoops->Fill(134.5,cos(n*(5.*phi1+1.*phi2+1.*phi3-4.*phi4-3.*phi5)),1.); // <cos(n(5*phi1+1*phi2+1*phi3-4*phi4-3*phi5))>
21535 fMixedHarmonicsNestedLoops->Fill(135.5,cos(n*(5.*phi1+3.*phi2-4.*phi3-2.*phi4-2.*phi5)),1.); // <cos(n(5*phi1+3*phi2-4*phi3-2*phi4-2*phi5))>
21536 fMixedHarmonicsNestedLoops->Fill(136.5,cos(n*(5.*phi1+2.*phi2+1.*phi3-4.*phi4-4.*phi5)),1.); // <cos(n(5*phi1+2*phi2+1*phi3-4*phi4-4*phi5))>
21537 fMixedHarmonicsNestedLoops->Fill(137.5,cos(n*(6.*phi1+1.*phi2-3.*phi3-2.*phi4-2.*phi5)),1.); // <cos(n(6*phi1+1*phi2-3*phi3-2*phi4-2*phi5))>
21538 fMixedHarmonicsNestedLoops->Fill(138.5,cos(n*(6.*phi1+3.*phi2-4.*phi3-4.*phi4-1.*phi5)),1.); // <cos(n(6*phi1+3*phi2-4*phi3-4*phi4-1*phi5))>
21539 fMixedHarmonicsNestedLoops->Fill(139.5,cos(n*(6.*phi1+1.*phi2+1.*phi3-5.*phi4-3.*phi5)),1.); // <cos(n(6*phi1+1*phi2+1*phi3-5*phi4-3*phi5))>
21540 fMixedHarmonicsNestedLoops->Fill(140.5,cos(n*(6.*phi1+3.*phi2-5.*phi3-2.*phi4-2.*phi5)),1.); // <cos(n(6*phi1+3*phi2-5*phi3-2*phi4-2*phi5))>
21541 fMixedHarmonicsNestedLoops->Fill(141.5,cos(n*(6.*phi1+5.*phi2-4.*phi3-4.*phi4-3.*phi5)),1.); // <cos(n(6*phi1+5*phi2-4*phi3-4*phi4-3*phi5))>
21542 fMixedHarmonicsNestedLoops->Fill(142.5,cos(n*(6.*phi1+3.*phi2+1.*phi3-5.*phi4-5.*phi5)),1.); // <cos(n(6*phi1+3*phi2+1*phi3-5*phi4-5*phi5))>
21543 fMixedHarmonicsNestedLoops->Fill(143.5,cos(n*(6.*phi1+6.*phi2-5.*phi3-4.*phi4-3.*phi5)),1.); // <cos(n(6*phi1+6*phi2-5*phi3-4*phi4-3*phi5))>
21544 //fMixedHarmonicsNestedLoops->Fill(144.5,-44.,1.); // empty
21545 fMixedHarmonicsNestedLoops->Fill(145.5,cos(n*(6.*phi1+2.*phi2-4.*phi3-3.*phi4-1.*phi5)),1.); // <cos(n(6*phi1+2*phi2-4*phi3-3*phi4-1*phi5))>
21546 fMixedHarmonicsNestedLoops->Fill(146.5,cos(n*(6.*phi1+2.*phi2+1.*phi3-5.*phi4-4.*phi5)),1.); // <cos(n(6*phi1+2*phi2+1*phi3-5*phi4-4*phi5))>
21547 fMixedHarmonicsNestedLoops->Fill(147.5,cos(n*(6.*phi1+4.*phi2-5.*phi3-3.*phi4-2.*phi5)),1.); // <cos(n(6*phi1+4*phi2-5*phi3-3*phi4-2*phi5))>
21548 } // end of for(Int_t i5=0;i5<nPrim;i5++)
21549 } // end of for(Int_t i4=0;i4<nPrim;i4++)
21550 } // end of for(Int_t i3=0;i3<nPrim;i3++)
21551 } // end of for(Int_t i2=0;i2<nPrim;i2++)
21552 } // end of for(Int_t i1=0;i1<nPrim;i1++)
21553 } // end of if(nPrim>=5)
21557 } // end of void AliFlowAnalysisWithQCumulants::EvaluateMixedHarmonicsWithNestedLoops(AliFlowEventSimple * const anEvent)
21559 //================================================================================================================
21561 void AliFlowAnalysisWithQCumulants::CrossCheckIntFlowCorrelations()
21563 // Cross-check results for multiparticle correlations needed for int. flow: results from Q-vectors vs results from nested loops.
21567 cout<<" *****************************************"<<endl;
21568 cout<<" **** cross-checking the correlations ****"<<endl;
21569 cout<<" **** for integrated flow ****"<<endl;
21570 if(!(fUsePhiWeights||fUsePtWeights||fUseEtaWeights||fUseTrackWeights))
21572 cout<<" **** (particle weights not used) ****"<<endl;
21575 cout<<" **** (particle weights used) ****"<<endl;
21577 cout<<" *****************************************"<<endl;
21581 Int_t ciMax = 64; // to be improved (removed eventually when I calculate 6th and 8th order with particle weights)
21583 if(fUsePhiWeights||fUsePtWeights||fUseEtaWeights||fUseTrackWeights)
21588 for(Int_t ci=1;ci<=ciMax;ci++)
21590 if(strcmp((fIntFlowCorrelationsAllPro->GetXaxis())->GetBinLabel(ci), "") == 0) continue; // to be improved (access finalized histogram here)
21591 cout<<(fIntFlowCorrelationsAllPro->GetXaxis())->GetBinLabel(ci)<<":"<<endl; // to be improved (access finalized histogram here)
21592 cout<<"from Q-vectors = "<<fIntFlowCorrelationsAllPro->GetBinContent(ci)<<endl; // to be improved (access finalized histogram here)
21593 cout<<"from nested loops = "<<fIntFlowDirectCorrelations->GetBinContent(ci)<<endl;
21597 if(!fCalculateMixedHarmonics){return;}
21601 cout<<" *****************************************"<<endl;
21602 cout<<" **** cross-checking the correlations ****"<<endl;
21603 cout<<" **** for mixed harmonics ****"<<endl;
21604 cout<<" *****************************************"<<endl;
21609 for(Int_t ci=1;ci<=6;ci++)
21611 cout<<(f2pCorrelations->GetXaxis())->GetBinLabel(ci)<<":"<<endl;
21612 cout<<"from Q-vectors = "<<f2pCorrelations->GetBinContent(ci)<<endl;
21613 cout<<"from nested loops = "<<fMixedHarmonicsNestedLoops->GetBinContent(ci)<<endl;
21615 } // end of for(Int_t ci=1;ci<=6;ci++)
21618 for(Int_t ci=1;ci<=10;ci++)
21620 if(4==ci){continue;} // skipping the empty bins
21621 cout<<(f3pCorrelations->GetXaxis())->GetBinLabel(ci)<<":"<<endl;
21622 cout<<"from Q-vectors = "<<f3pCorrelations->GetBinContent(ci)<<endl;
21623 cout<<"from nested loops = "<<fMixedHarmonicsNestedLoops->GetBinContent(ci+6)<<endl;
21625 } // end of for(Int_t ci=1;ci<=10;ci++)
21628 for(Int_t ci=1;ci<=45;ci++)
21630 if(7==ci||23==ci||26==ci||37==ci){continue;} // skipping the empty bins
21631 cout<<(f4pCorrelations->GetXaxis())->GetBinLabel(ci)<<":"<<endl;
21632 cout<<"from Q-vectors = "<<f4pCorrelations->GetBinContent(ci)<<endl;
21633 cout<<"from nested loops = "<<fMixedHarmonicsNestedLoops->GetBinContent(ci+6+10)<<endl;
21634 //if(TMath::Abs(f4pCorrelations->GetBinContent(ci)-fMixedHarmonicsNestedLoops->GetBinContent(ci+6+10))
21635 // > 1.e-10){exit(0);}
21637 } // end of for(Int_t ci=1;ci<=45;ci++)
21639 for(Int_t ci=1;ci<=87;ci++)
21641 if(31==ci||41==ci||72==ci||84==ci){continue;} // skipping the empty bins
21642 cout<<(f5pCorrelations->GetXaxis())->GetBinLabel(ci)<<":"<<endl;
21643 cout<<"from Q-vectors = "<<f5pCorrelations->GetBinContent(ci)<<endl;
21644 cout<<"from nested loops = "<<fMixedHarmonicsNestedLoops->GetBinContent(ci+6+10+45)<<endl;
21645 if(TMath::Abs(f5pCorrelations->GetBinContent(ci)-fMixedHarmonicsNestedLoops->GetBinContent(ci+6+10+45))
21646 > 1.e-10){exit(0);}
21648 } // end of for(Int_t ci=1;ci<=87;ci++)
21652 } // end of void AliFlowAnalysisWithQCumulants::CrossCheckIntFlowCorrelations()
21654 //=======================================================================================================================
21656 void AliFlowAnalysisWithQCumulants::CrossCheckIntFlowCorrectionTermsForNUA()
21658 // Cross-check results for corrections terms for non-uniform acceptance needed for int. flow: results from Q-vectors vs results from nested loops.
21662 cout<<" *********************************************"<<endl;
21663 cout<<" **** cross-checking the correction terms ****"<<endl;
21664 cout<<" **** for non-uniform acceptance relevant ****"<<endl;
21665 cout<<" **** for integrated flow ****"<<endl;
21666 if(!(fUsePhiWeights||fUsePtWeights||fUseEtaWeights||fUseTrackWeights))
21668 cout<<" **** (particle weights not used) ****"<<endl;
21671 cout<<" **** (particle weights used) ****"<<endl;
21673 cout<<" *********************************************"<<endl;
21677 for(Int_t ci=1;ci<=4;ci++) // correction term index (to be improved - hardwired 4)
21679 for(Int_t sc=0;sc<2;sc++) // sin or cos term
21681 if(strcmp((fIntFlowCorrectionTermsForNUAPro[sc]->GetXaxis())->GetBinLabel(ci), "") == 0) continue; // to be improved (access finalized histogram here)
21682 cout<<(fIntFlowCorrectionTermsForNUAPro[sc]->GetXaxis())->GetBinLabel(ci)<<":"<<endl; // to be improved (access finalized histogram here)
21683 cout<<"from Q-vectors = "<<fIntFlowCorrectionTermsForNUAPro[sc]->GetBinContent(ci)<<endl; // to be improved (access finalized histogram here)
21684 cout<<"from nested loops = "<<fIntFlowDirectCorrectionTermsForNUA[sc]->GetBinContent(ci)<<endl;
21686 } // end of for(Int_t sc=0;sc<2;sc++) // sin or cos term
21687 } // end of for(Int_t ci=1;ci<=10;ci++) // correction term index
21689 } // end of void AliFlowAnalysisWithQCumulants::CrossCheckIntFlowCorrectionTermsForNUA()
21691 //=======================================================================================================================
21693 void AliFlowAnalysisWithQCumulants::EvaluateIntFlowCorrelationsWithNestedLoopsUsingParticleWeights(AliFlowEventSimple * const anEvent)
21695 // Evaluate with nested loops multiparticle correlations for integrated flow (using the particle weights).
21697 // Results are stored in profile fIntFlowDirectCorrelations.
21698 // Remark 1: When particle weights are used the binning of fIntFlowDirectCorrelations is organized as follows:
21700 // 1st bin: <2>_{1n|1n} = two1n1nW1W1 = <w1 w2 cos(n*(phi1-phi2))>
21701 // 2nd bin: <2>_{2n|2n} = two2n2nW2W2 = <w1^2 w2^2 cos(2n*(phi1-phi2))>
21702 // 3rd bin: <2>_{3n|3n} = two3n3nW3W3 = <w1^3 w2^3 cos(3n*(phi1-phi2))>
21703 // 4th bin: <2>_{4n|4n} = two4n4nW4W4 = <w1^4 w2^4 cos(4n*(phi1-phi2))>
21704 // 5th bin: ---- EMPTY ----
21705 // 6th bin: <3>_{2n|1n,1n} = three2n1n1nW2W1W1 = <w1^2 w2 w3 cos(n*(2phi1-phi2-phi3))>
21706 // 7th bin: <3>_{3n|2n,1n} = ...
21707 // 8th bin: <3>_{4n|2n,2n} = ...
21708 // 9th bin: <3>_{4n|3n,1n} = ...
21709 // 10th bin: ---- EMPTY ----
21710 // 11th bin: <4>_{1n,1n|1n,1n} = four1n1n1n1nW1W1W1W1 = <w1 w2 w3 w4 cos(n*(phi1+phi2-phi3-phi4))>
21711 // 12th bin: <4>_{2n,1n|2n,1n} = ...
21712 // 13th bin: <4>_{2n,2n|2n,2n} = ...
21713 // 14th bin: <4>_{3n|1n,1n,1n} = ...
21714 // 15th bin: <4>_{3n,1n|3n,1n} = ...
21715 // 16th bin: <4>_{3n,1n|2n,2n} = ...
21716 // 17th bin: <4>_{4n|2n,1n,1n} = ...
21717 // 18th bin: ---- EMPTY ----
21718 // 19th bin: <5>_{2n|1n,1n,1n,1n} = ...
21719 // 20th bin: <5>_{2n,2n|2n,1n,1n} = ...
21720 // 21st bin: <5>_{3n,1n|2n,1n,1n} = ...
21721 // 22nd bin: <5>_{4n|1n,1n,1n,1n} = ...
21722 // 23rd bin: ---- EMPTY ----
21723 // 24th bin: <6>_{1n,1n,1n|1n,1n,1n} = ...
21724 // 25th bin: <6>_{2n,1n,1n|2n,1n,1n} = ...
21725 // 26th bin: <6>_{2n,2n|1n,1n,1n,1n} = ...
21726 // 27th bin: <6>_{3n,1n|1n,1n,1n,1n} = ...
21727 // 28th bin: ---- EMPTY ----
21728 // 29th bin: <7>_{2n,1n,1n|1n,1n,1n,1n} = ...
21729 // 30th bin: ---- EMPTY ----
21730 // 31st bin: <8>_{1n,1n,1n,1n|1n,1n,1n,1n} = ...
21732 // Remark 2: When particle weights are used there are some extra correlations. They are stored in
21733 // fIntFlowExtraDirectCorrelations binning of which is organized as follows:
21735 // 1st bin: two1n1nW3W1 = <w1^3 w2 cos(n*(phi1-phi2))>
21736 // 2nd bin: two1n1nW1W1W2 = <w1 w2 w3^2 cos(n*(phi1-phi2))>
21739 Int_t nPrim = anEvent->NumberOfTracks();
21740 AliFlowTrackSimple *aftsTrack = NULL;
21741 //Double_t phi1=0., phi2=0., phi3=0., phi4=0., phi5=0., phi6=0., phi7=0., phi8=0.;
21742 //Double_t wPhi1=1., wPhi2=1., wPhi3=1., wPhi4=1., wPhi5=1., wPhi6=1., wPhi7=1., wPhi8=1.;
21743 Double_t phi1=0., phi2=0., phi3=0., phi4=0.;
21744 Double_t wPhi1=1., wPhi2=1., wPhi3=1., wPhi4=1.;
21745 Int_t n = fHarmonic;
21746 Int_t eventNo = (Int_t)fAvMultiplicity->GetBinEntries(1); // to be improved (is this casting safe in general?)
21747 Double_t dMult = (*fSpk)(0,0);
21749 cout<<"Multiparticle correlations: Event number: "<<eventNo<<", multiplicity is "<<dMult<<endl;
21752 cout<<"... skipping this event (multiplicity too low) ..."<<endl;
21753 } else if (dMult>fMaxAllowedMultiplicity)
21755 cout<<"... skipping this event (multiplicity too high) ..."<<endl;
21758 cout<<"... evaluating nested loops (using particle weights) ..."<<endl;
21761 // 2-particle correlations:
21762 if(nPrim>=2 && nPrim<=fMaxAllowedMultiplicity)
21764 // 2 nested loops multiparticle correlations using particle weights:
21765 for(Int_t i1=0;i1<nPrim;i1++)
21767 aftsTrack=anEvent->GetTrack(i1);
21768 if(!(aftsTrack->InRPSelection())) continue;
21769 phi1=aftsTrack->Phi();
21770 if(fUsePhiWeights && fPhiWeights) wPhi1 = fPhiWeights->GetBinContent(1+(Int_t)(TMath::Floor(phi1*fnBinsPhi/TMath::TwoPi())));
21771 for(Int_t i2=0;i2<nPrim;i2++)
21773 if(i2==i1)continue;
21774 aftsTrack=anEvent->GetTrack(i2);
21775 if(!(aftsTrack->InRPSelection())) continue;
21776 phi2=aftsTrack->Phi();
21777 if(fUsePhiWeights && fPhiWeights) wPhi2 = fPhiWeights->GetBinContent(1+(Int_t)(TMath::Floor(phi2*fnBinsPhi/TMath::TwoPi())));
21778 if(nPrim==2) cout<<i1<<" "<<i2<<"\r"<<flush;
21779 // 2-p correlations using particle weights:
21780 if(fUsePhiWeights) fIntFlowDirectCorrelations->Fill(0.5,cos(n*(phi1-phi2)),wPhi1*wPhi2); // <w1 w2 cos( n*(phi1-phi2))>
21781 if(fUsePhiWeights) fIntFlowDirectCorrelations->Fill(1.5,cos(2.*n*(phi1-phi2)),pow(wPhi1,2)*pow(wPhi2,2)); // <w1^2 w2^2 cos(2n*(phi1-phi2))>
21782 if(fUsePhiWeights) fIntFlowDirectCorrelations->Fill(2.5,cos(3.*n*(phi1-phi2)),pow(wPhi1,3)*pow(wPhi2,3)); // <w1^3 w2^3 cos(3n*(phi1-phi2))>
21783 if(fUsePhiWeights) fIntFlowDirectCorrelations->Fill(3.5,cos(4.*n*(phi1-phi2)),pow(wPhi1,4)*pow(wPhi2,4)); // <w1^4 w2^4 cos(4n*(phi1-phi2))>
21784 // extra correlations:
21785 // 2-p extra correlations (do not appear if particle weights are not used):
21786 if(fUsePhiWeights) fIntFlowExtraDirectCorrelations->Fill(0.5,cos(n*(phi1-phi2)),pow(wPhi1,3)*wPhi2); // <w1^3 w2 cos(n*(phi1-phi2))>
21788 } // end of for(Int_t i2=0;i2<nPrim;i2++)
21789 } // end of for(Int_t i1=0;i1<nPrim;i1++)
21790 } // end of if(nPrim>=2)
21792 if(nPrim>=3 && nPrim<=fMaxAllowedMultiplicity)
21794 // 3 nested loops multiparticle correlations using particle weights:
21795 for(Int_t i1=0;i1<nPrim;i1++)
21797 aftsTrack=anEvent->GetTrack(i1);
21798 if(!(aftsTrack->InRPSelection())) continue;
21799 phi1=aftsTrack->Phi();
21800 if(fUsePhiWeights && fPhiWeights) wPhi1 = fPhiWeights->GetBinContent(1+(Int_t)(TMath::Floor(phi1*fnBinsPhi/TMath::TwoPi())));
21801 for(Int_t i2=0;i2<nPrim;i2++)
21803 if(i2==i1)continue;
21804 aftsTrack=anEvent->GetTrack(i2);
21805 if(!(aftsTrack->InRPSelection())) continue;
21806 phi2=aftsTrack->Phi();
21807 if(fUsePhiWeights && fPhiWeights) wPhi2 = fPhiWeights->GetBinContent(1+(Int_t)(TMath::Floor(phi2*fnBinsPhi/TMath::TwoPi())));
21808 for(Int_t i3=0;i3<nPrim;i3++)
21810 if(i3==i1||i3==i2)continue;
21811 aftsTrack=anEvent->GetTrack(i3);
21812 if(!(aftsTrack->InRPSelection())) continue;
21813 phi3=aftsTrack->Phi();
21814 if(fUsePhiWeights && fPhiWeights) wPhi3 = fPhiWeights->GetBinContent(1+(Int_t)(TMath::Floor(phi3*fnBinsPhi/TMath::TwoPi())));
21815 if(nPrim==3) cout<<i1<<" "<<i2<<" "<<i3<<"\r"<<flush;
21816 // 3-p correlations using particle weights:
21817 if(fUsePhiWeights) fIntFlowDirectCorrelations->Fill(5.5,cos(2.*n*phi1-n*(phi2+phi3)),pow(wPhi1,2)*wPhi2*wPhi3); // <w1^2 w2 w3 cos(n*(2phi1-phi2-phi3))>
21819 // extra correlations:
21820 // 2-p extra correlations (do not appear if particle weights are not used):
21821 if(fUsePhiWeights) fIntFlowExtraDirectCorrelations->Fill(1.5,cos(n*(phi1-phi2)),wPhi1*wPhi2*pow(wPhi3,2)); // <w1 w2 w3^2 cos(n*(phi1-phi2))>
21823 // 3-p extra correlations (do not appear if particle weights are not used):
21825 } // end of for(Int_t i3=0;i3<nPrim;i3++)
21826 } // end of for(Int_t i2=0;i2<nPrim;i2++)
21827 } // end of for(Int_t i1=0;i1<nPrim;i1++)
21828 } // end of if(nPrim>=3)
21830 if(nPrim>=4 && nPrim<=fMaxAllowedMultiplicity)
21832 // 4 nested loops multiparticle correlations using particle weights:
21833 for(Int_t i1=0;i1<nPrim;i1++)
21835 aftsTrack=anEvent->GetTrack(i1);
21836 if(!(aftsTrack->InRPSelection())) continue;
21837 phi1=aftsTrack->Phi();
21838 if(fUsePhiWeights && fPhiWeights) wPhi1 = fPhiWeights->GetBinContent(1+(Int_t)(TMath::Floor(phi1*fnBinsPhi/TMath::TwoPi())));
21839 for(Int_t i2=0;i2<nPrim;i2++)
21841 if(i2==i1)continue;
21842 aftsTrack=anEvent->GetTrack(i2);
21843 if(!(aftsTrack->InRPSelection())) continue;
21844 phi2=aftsTrack->Phi();
21845 if(fUsePhiWeights && fPhiWeights) wPhi2 = fPhiWeights->GetBinContent(1+(Int_t)(TMath::Floor(phi2*fnBinsPhi/TMath::TwoPi())));
21846 for(Int_t i3=0;i3<nPrim;i3++)
21848 if(i3==i1||i3==i2)continue;
21849 aftsTrack=anEvent->GetTrack(i3);
21850 if(!(aftsTrack->InRPSelection())) continue;
21851 phi3=aftsTrack->Phi();
21852 if(fUsePhiWeights && fPhiWeights) wPhi3 = fPhiWeights->GetBinContent(1+(Int_t)(TMath::Floor(phi3*fnBinsPhi/TMath::TwoPi())));
21853 for(Int_t i4=0;i4<nPrim;i4++)
21855 if(i4==i1||i4==i2||i4==i3)continue;
21856 aftsTrack=anEvent->GetTrack(i4);
21857 if(!(aftsTrack->InRPSelection())) continue;
21858 phi4=aftsTrack->Phi();
21859 if(fUsePhiWeights && fPhiWeights) wPhi4 = fPhiWeights->GetBinContent(1+(Int_t)(TMath::Floor(phi4*fnBinsPhi/TMath::TwoPi())));
21860 if(nPrim>=4) cout<<i1<<" "<<i2<<" "<<i3<<" "<<i4<<"\r"<<flush; // to be improved (replace eventually this if statement with if(nPrim==4))
21861 // 4-p correlations using particle weights:
21862 if(fUsePhiWeights) fIntFlowDirectCorrelations->Fill(10.5,cos(n*phi1+n*phi2-n*phi3-n*phi4),wPhi1*wPhi2*wPhi3*wPhi4);
21863 // extra correlations:
21864 // 2-p extra correlations (do not appear if particle weights are not used):
21866 // 3-p extra correlations (do not appear if particle weights are not used):
21868 // 4-p extra correlations (do not appear if particle weights are not used):
21870 } // end of for(Int_t i4=0;i4<nPrim;i4++)
21871 } // end of for(Int_t i3=0;i3<nPrim;i3++)
21872 } // end of for(Int_t i2=0;i2<nPrim;i2++)
21873 } // end of for(Int_t i1=0;i1<nPrim;i1++)
21874 } // end of if(nPrim>=4)
21878 } // end of void AliFlowAnalysisWithQCumulants::EvaluateIntFlowCorrelationsWithNestedLoopsUsingParticleWeights(AliFlowEventSimple* anEvent)
21880 //=======================================================================================================================
21882 void AliFlowAnalysisWithQCumulants::CrossCheckIntFlowExtraCorrelations()
21884 // Cross-check results for extra multiparticle correlations needed for int. flow
21885 // which appear only when particle weights are used: results from Q-vectors vs results from nested loops.
21889 cout<<" ***********************************************"<<endl;
21890 cout<<" **** cross-checking the extra correlations ****"<<endl;
21891 cout<<" **** for integrated flow ****"<<endl;
21892 cout<<" ***********************************************"<<endl;
21896 for(Int_t eci=1;eci<=2;eci++) // to be improved (increased eciMax eventually when I calculate 6th and 8th)
21898 if(strcmp((fIntFlowExtraCorrelationsPro->GetXaxis())->GetBinLabel(eci), "") == 0) continue;
21899 cout<<(fIntFlowExtraCorrelationsPro->GetXaxis())->GetBinLabel(eci)<<":"<<endl;
21900 cout<<"from Q-vectors = "<<fIntFlowExtraCorrelationsPro->GetBinContent(eci)<<endl;
21901 cout<<"from nested loops = "<<fIntFlowExtraDirectCorrelations->GetBinContent(eci)<<endl;
21905 } // end of void AliFlowAnalysisWithQCumulants::CrossCheckIntFlowExtraCorrelations()
21907 //=======================================================================================================================
21909 void AliFlowAnalysisWithQCumulants::EvaluateIntFlowCorrectionsForNUAWithNestedLoops(AliFlowEventSimple * const anEvent)
21911 // Evaluate with nested loops correction terms for non-uniform acceptance relevant for NONAME integrated flow (to be improved (name)).
21913 // Remark: Both sin and cos correction terms are calculated in this method. Sin terms are stored in fIntFlowDirectCorrectionTermsForNUA[0],
21914 // and cos terms in fIntFlowDirectCorrectionTermsForNUA[1]. Binning of fIntFlowDirectCorrectionTermsForNUA[sc] is organized as follows
21915 // (sc stands for either sin or cos):
21917 // 1st bin: <<sc(n*(phi1))>>
21918 // 2nd bin: <<sc(n*(phi1+phi2))>>
21919 // 3rd bin: <<sc(n*(phi1-phi2-phi3))>>
21920 // 4th bin: <<sc(n*(2phi1-phi2))>>
21922 Int_t nPrim = anEvent->NumberOfTracks();
21923 AliFlowTrackSimple *aftsTrack = NULL;
21924 Double_t phi1=0., phi2=0., phi3=0.;
21925 Int_t n = fHarmonic;
21926 Int_t eventNo = (Int_t)fAvMultiplicity->GetBinEntries(1); // to be improved (is this casting safe in general?)
21927 Double_t dMult = (*fSpk)(0,0);
21929 cout<<"Correction terms for non-uniform acceptance: Event number: "<<eventNo<<", multiplicity is "<<dMult<<endl;
21932 cout<<"... skipping this event (multiplicity too low) ..."<<endl;
21933 } else if (dMult>fMaxAllowedMultiplicity)
21935 cout<<"... skipping this event (multiplicity too high) ..."<<endl;
21938 cout<<"... evaluating nested loops (without using particle weights)..."<<endl;
21941 if(nPrim>=1 && nPrim<=fMaxAllowedMultiplicity)
21943 // 1-particle correction terms for non-uniform acceptance:
21944 for(Int_t i1=0;i1<nPrim;i1++)
21946 aftsTrack=anEvent->GetTrack(i1);
21947 if(!(aftsTrack->InRPSelection())) continue;
21948 phi1=aftsTrack->Phi();
21949 if(nPrim==1) cout<<i1<<"\r"<<flush;
21951 fIntFlowDirectCorrectionTermsForNUA[0]->Fill(0.5,sin(n*phi1),1.); // <sin(n*phi1)>
21953 fIntFlowDirectCorrectionTermsForNUA[1]->Fill(0.5,cos(n*phi1),1.); // <cos(n*phi1)>
21954 } // end of for(Int_t i1=0;i1<nPrim;i1++)
21955 } // end of if(nPrim>=1)
21957 if(nPrim>=2 && nPrim<=fMaxAllowedMultiplicity)
21959 // 2-particle correction terms for non-uniform acceptance:
21960 for(Int_t i1=0;i1<nPrim;i1++)
21962 aftsTrack=anEvent->GetTrack(i1);
21963 if(!(aftsTrack->InRPSelection())) continue;
21964 phi1=aftsTrack->Phi();
21965 for(Int_t i2=0;i2<nPrim;i2++)
21967 if(i2==i1)continue;
21968 aftsTrack=anEvent->GetTrack(i2);
21969 if(!(aftsTrack->InRPSelection())) continue;
21970 phi2=aftsTrack->Phi();
21971 if(nPrim==2) cout<<i1<<" "<<i2<<"\r"<<flush;
21973 fIntFlowDirectCorrectionTermsForNUA[0]->Fill(1.5,sin(n*(phi1+phi2)),1.); // <<sin(n*(phi1+phi2))>>
21974 fIntFlowDirectCorrectionTermsForNUA[0]->Fill(3.5,sin(n*(2*phi1-phi2)),1.); // <<sin(n*(2*phi1-phi2))>>
21976 fIntFlowDirectCorrectionTermsForNUA[1]->Fill(1.5,cos(n*(phi1+phi2)),1.); // <<cos(n*(phi1+phi2))>>
21977 fIntFlowDirectCorrectionTermsForNUA[1]->Fill(3.5,cos(n*(2*phi1-phi2)),1.); // <<cos(n*(2*phi1-phi2))>>
21978 } // end of for(Int_t i2=0;i2<nPrim;i2++)
21979 } // end of for(Int_t i1=0;i1<nPrim;i1++)
21980 } // end of if(nPrim>=2)
21982 if(nPrim>=3 && nPrim<=fMaxAllowedMultiplicity)
21984 // 3-particle correction terms for non-uniform acceptance:
21985 for(Int_t i1=0;i1<nPrim;i1++)
21987 aftsTrack=anEvent->GetTrack(i1);
21988 if(!(aftsTrack->InRPSelection())) continue;
21989 phi1=aftsTrack->Phi();
21990 for(Int_t i2=0;i2<nPrim;i2++)
21992 if(i2==i1)continue;
21993 aftsTrack=anEvent->GetTrack(i2);
21994 if(!(aftsTrack->InRPSelection())) continue;
21995 phi2=aftsTrack->Phi();
21996 for(Int_t i3=0;i3<nPrim;i3++)
21998 if(i3==i1||i3==i2)continue;
21999 aftsTrack=anEvent->GetTrack(i3);
22000 if(!(aftsTrack->InRPSelection())) continue;
22001 phi3=aftsTrack->Phi();
22002 if(nPrim>=3) cout<<i1<<" "<<i2<<" "<<i3<<"\r"<<flush; // to be improved (eventually I will change this if statement)
22004 fIntFlowDirectCorrectionTermsForNUA[0]->Fill(2.5,sin(n*(phi1-phi2-phi3)),1.); // <<sin(n*(phi1-phi2-phi3))>>
22006 fIntFlowDirectCorrectionTermsForNUA[1]->Fill(2.5,cos(n*(phi1-phi2-phi3)),1.); // <<cos(n*(phi1-phi2-phi3))>>
22007 } // end of for(Int_t i3=0;i3<nPrim;i3++)
22008 } // end of for(Int_t i2=0;i2<nPrim;i2++)
22009 } // end of for(Int_t i1=0;i1<nPrim;i1++)
22010 } // end of if(nPrim>=3)
22015 //=======================================================================================================================
22017 void AliFlowAnalysisWithQCumulants::EvaluateDiffFlowCorrelationsWithNestedLoops(AliFlowEventSimple * const anEvent, TString type, TString ptOrEta)
22019 // Evaluate reduced correlations with nested loops without using the particle weights.
22021 // Remark 1: Reduced correlations are evaluated in pt bin number fCrossCheckInPtBinNo and eta bin number fCrossCheckInEtaBinNo both for RPs and POIs.
22022 // Remark 2: Results are stored in 1 bin profiles fDiffFlowDirectCorrelations[t][pe][ci], where indices runs as follows:
22023 // [0=RP,1=POI][0=Pt,1=Eta][0=<2'>,1=<4'>,2=<6'>,3=<8'>]
22024 // Remark 3: <2'> = <cos(n*(psi1-phi2))>
22025 // <4'> = <cos(n*(psi1+phi2-phi3-phi4))>
22028 Int_t typeFlag = 0;
22029 Int_t ptEtaFlag = 0;
22033 } else if(type == "POI")
22037 if(ptOrEta == "Pt")
22040 } else if(ptOrEta == "Eta")
22045 Int_t t = typeFlag;
22046 Int_t pe = ptEtaFlag;
22048 Double_t lowerPtEtaEdge[2] = {fPtMin+(fCrossCheckInPtBinNo-1)*fPtBinWidth,fEtaMin+(fCrossCheckInEtaBinNo-1)*fEtaBinWidth};
22049 Double_t upperPtEtaEdge[2] = {fPtMin+fCrossCheckInPtBinNo*fPtBinWidth,fEtaMin+fCrossCheckInEtaBinNo*fEtaBinWidth};
22050 Double_t binWidthPtEta[2] = {fPtBinWidth,fEtaBinWidth};
22052 Int_t nPrim = anEvent->NumberOfTracks();
22053 AliFlowTrackSimple *aftsTrack = NULL;
22055 Double_t psi1=0., phi2=0., phi3=0., phi4=0.;// phi5=0., phi6=0., phi7=0., phi8=0.;
22057 Int_t n = fHarmonic;
22059 // 2'-particle correlations:
22060 for(Int_t i1=0;i1<nPrim;i1++)
22062 aftsTrack=anEvent->GetTrack(i1);
22063 // POI condition (first particle in the correlator must be POI): // to be improved (this can be implemented much better)
22064 if(typeFlag==1) // this is diff flow of POIs
22066 if(ptOrEta == "Pt")
22068 if(!((aftsTrack->Pt()>=lowerPtEtaEdge[pe] && aftsTrack->Pt()<upperPtEtaEdge[pe]) && (aftsTrack->InPOISelection())))continue;
22069 } else if (ptOrEta == "Eta")
22071 if(!((aftsTrack->Eta()>=lowerPtEtaEdge[pe] && aftsTrack->Eta()<upperPtEtaEdge[pe]) && (aftsTrack->InPOISelection())))continue;
22073 } else // this is diff flow of RPs
22075 if(ptOrEta == "Pt")
22077 if(!((aftsTrack->Pt()>=lowerPtEtaEdge[pe] && aftsTrack->Pt()<upperPtEtaEdge[pe]) && (aftsTrack->InRPSelection())))continue;
22078 } else if (ptOrEta == "Eta")
22080 if(!((aftsTrack->Eta()>=lowerPtEtaEdge[pe] && aftsTrack->Eta()<upperPtEtaEdge[pe]) && (aftsTrack->InRPSelection())))continue;
22084 psi1=aftsTrack->Phi();
22085 for(Int_t i2=0;i2<nPrim;i2++)
22087 if(i2==i1)continue;
22088 aftsTrack=anEvent->GetTrack(i2);
22089 // RP condition (!(first) particle in the correlator must be RP):
22090 if(!(aftsTrack->InRPSelection()))continue;
22091 phi2=aftsTrack->Phi();
22092 // 2'-particle correlations:
22093 fDiffFlowDirectCorrelations[t][pe][0]->Fill(lowerPtEtaEdge[pe]+binWidthPtEta[pe]/2.,cos(1.*n*(psi1-phi2)),1.); // <cos(n*(psi1-phi2))
22094 }//end of for(Int_t i2=0;i2<nPrim;i2++)
22095 }//end of for(Int_t i1=0;i1<nPrim;i1++)
22099 // 3'-particle correlations:
22100 for(Int_t i1=0;i1<nPrim;i1++)
22102 aftsTrack=anEvent->GetTrack(i1);
22103 // POI condition (first particle in the correlator must be POI): // to be improved (this can be implemented much better)
22104 if(ptOrEta == "Pt")
22106 if(!((aftsTrack->Pt()>=lowerPtEtaEdge[pe] && aftsTrack->Pt()<upperPtEtaEdge[pe]) && (aftsTrack->InPOISelection())))continue;
22107 } else if (ptOrEta == "Eta")
22109 if(!((aftsTrack->Eta()>=lowerPtEtaEdge[pe] && aftsTrack->Eta()<upperPtEtaEdge[pe]) && (aftsTrack->InPOISelection())))continue;
22111 psi1=aftsTrack->Phi();
22112 for(Int_t i2=0;i2<nPrim;i2++)
22114 if(i2==i1)continue;
22115 aftsTrack=anEvent->GetTrack(i2);
22116 // RP condition (!(first) particle in the correlator must be RP):
22117 if(!(aftsTrack->InRPSelection())) continue;
22118 phi2=aftsTrack->Phi();
22119 for(Int_t i3=0;i3<nPrim;i3++)
22121 if(i3==i1||i3==i2)continue;
22122 aftsTrack=anEvent->GetTrack(i3);
22123 // RP condition (!(first) particle in the correlator must be RP):
22124 if(!(aftsTrack->InRPSelection())) continue;
22125 phi3=aftsTrack->Phi();
22126 // to be improved : where to store it? ->Fill(lowerPtEtaEdge[pe]+binWidthPtEta[pe]/2.,cos(n*(2.*phi1-phi2-phi3)),1.); // <w1 w2 w3 cos(n(2psi1-phi2-phi3))>
22127 }//end of for(Int_t i3=0;i3<nPrim;i3++)
22128 }//end of for(Int_t i2=0;i2<nPrim;i2++)
22129 }//end of for(Int_t i1=0;i1<nPrim;i1++)
22133 // 4'-particle correlations:
22134 for(Int_t i1=0;i1<nPrim;i1++)
22136 aftsTrack=anEvent->GetTrack(i1);
22137 // POI condition (first particle in the correlator must be POI): // to be improved (this can be implemented much better)
22138 if(typeFlag==1) // this is diff flow of POIs
22140 if(ptOrEta == "Pt")
22142 if(!((aftsTrack->Pt()>=lowerPtEtaEdge[pe] && aftsTrack->Pt()<upperPtEtaEdge[pe]) && (aftsTrack->InPOISelection())))continue;
22143 } else if (ptOrEta == "Eta")
22145 if(!((aftsTrack->Eta()>=lowerPtEtaEdge[pe] && aftsTrack->Eta()<upperPtEtaEdge[pe]) && (aftsTrack->InPOISelection())))continue;
22147 } else // this is diff flow of RPs
22149 if(ptOrEta == "Pt")
22151 if(!((aftsTrack->Pt()>=lowerPtEtaEdge[pe] && aftsTrack->Pt()<upperPtEtaEdge[pe]) && (aftsTrack->InRPSelection())))continue;
22152 } else if (ptOrEta == "Eta")
22154 if(!((aftsTrack->Eta()>=lowerPtEtaEdge[pe] && aftsTrack->Eta()<upperPtEtaEdge[pe]) && (aftsTrack->InRPSelection())))continue;
22158 psi1=aftsTrack->Phi();
22159 for(Int_t i2=0;i2<nPrim;i2++)
22161 if(i2==i1) continue;
22162 aftsTrack=anEvent->GetTrack(i2);
22163 // RP condition (!(first) particle in the correlator must be RP):
22164 if(!(aftsTrack->InRPSelection())) continue;
22165 phi2=aftsTrack->Phi();
22166 for(Int_t i3=0;i3<nPrim;i3++)
22168 if(i3==i1||i3==i2) continue;
22169 aftsTrack=anEvent->GetTrack(i3);
22170 // RP condition (!(first) particle in the correlator must be RP):
22171 if(!(aftsTrack->InRPSelection())) continue;
22172 phi3=aftsTrack->Phi();
22173 for(Int_t i4=0;i4<nPrim;i4++)
22175 if(i4==i1||i4==i2||i4==i3) continue;
22176 aftsTrack=anEvent->GetTrack(i4);
22177 // RP condition (!(first) particle in the correlator must be RP):
22178 if(!(aftsTrack->InRPSelection())) continue;
22179 phi4=aftsTrack->Phi();
22180 // 4'-particle correlations:
22181 fDiffFlowDirectCorrelations[t][pe][1]->Fill(lowerPtEtaEdge[pe]+binWidthPtEta[pe]/2.,cos(n*(psi1+phi2-phi3-phi4)),1.); // <cos(n(psi1+phi2-phi3-phi4))>
22182 }//end of for(Int_t i4=0;i4<nPrim;i4++)
22183 }//end of for(Int_t i3=0;i3<nPrim;i3++)
22184 }//end of for(Int_t i2=0;i2<nPrim;i2++)
22185 }//end of for(Int_t i1=0;i1<nPrim;i1++)
22187 // count # of RPs and POIs in selected pt and eta bins for cross-checkings:
22188 for(Int_t i=0;i<nPrim;i++)
22190 aftsTrack=anEvent->GetTrack(i);
22191 // POI condition (first particle in the correlator must be POI): // to be improved (this can be implemented much better)
22192 if(typeFlag==1) // this is diff flow of POIs
22194 if(ptOrEta == "Pt")
22196 if(!((aftsTrack->Pt()>=lowerPtEtaEdge[pe] && aftsTrack->Pt()<upperPtEtaEdge[pe]) && (aftsTrack->InPOISelection())))continue;
22197 } else if (ptOrEta == "Eta")
22199 if(!((aftsTrack->Eta()>=lowerPtEtaEdge[pe] && aftsTrack->Eta()<upperPtEtaEdge[pe]) && (aftsTrack->InPOISelection())))continue;
22201 } else // this is diff flow of RPs
22203 if(ptOrEta == "Pt")
22205 if(!((aftsTrack->Pt()>=lowerPtEtaEdge[pe] && aftsTrack->Pt()<upperPtEtaEdge[pe]) && (aftsTrack->InRPSelection())))continue;
22206 } else if (ptOrEta == "Eta")
22208 if(!((aftsTrack->Eta()>=lowerPtEtaEdge[pe] && aftsTrack->Eta()<upperPtEtaEdge[pe]) && (aftsTrack->InRPSelection())))continue;
22212 fNoOfParticlesInBin->Fill(t+pe+0.5);
22215 } // end of void AliFlowAnalysisWithQCumulants::EvaluateDiffFlowCorrelationsWithNestedLoops(AliFlowEventSimple* anEvent, TString type, TString ptOrEta)
22217 //=======================================================================================================================
22219 void AliFlowAnalysisWithQCumulants::EvaluateOtherDiffCorrelatorsWithNestedLoops(AliFlowEventSimple * const anEvent, TString type, TString ptOrEta)
22221 // Evaluate other differential correlators with nested loops without using the particle weights.
22223 // Remark 1: Other differential correlators are evaluated in pt bin number fCrossCheckInPtBinNo
22224 // and eta bin number fCrossCheckInEtaBinNo both for RPs and POIs.
22225 // Remark 2: Results are stored in 1 bin profiles fOtherDirectDiffCorrelators[t][pe][sc][ci], where indices runs as follows:
22226 // [0=RP,1=POI][0=Pt,1=Eta][0=sin terms,1=cos terms][ci = correlator index]
22227 // Remark 3: Correlator index 'ci' runs as follows:
22228 // 0: <exp(n*(psi1-3phi2+2phi3))> (Teaney-Yan correlator)
22230 Int_t typeFlag = 0;
22231 Int_t ptEtaFlag = 0;
22235 } else if(type == "POI")
22239 if(ptOrEta == "Pt")
22242 } else if(ptOrEta == "Eta")
22247 Int_t t = typeFlag;
22248 Int_t pe = ptEtaFlag;
22250 Double_t lowerPtEtaEdge[2] = {fPtMin+(fCrossCheckInPtBinNo-1)*fPtBinWidth,fEtaMin+(fCrossCheckInEtaBinNo-1)*fEtaBinWidth};
22251 Double_t upperPtEtaEdge[2] = {fPtMin+fCrossCheckInPtBinNo*fPtBinWidth,fEtaMin+fCrossCheckInEtaBinNo*fEtaBinWidth};
22252 Double_t binWidthPtEta[2] = {fPtBinWidth,fEtaBinWidth};
22254 Int_t nPrim = anEvent->NumberOfTracks();
22255 AliFlowTrackSimple *aftsTrack = NULL;
22257 Double_t psi1=0., phi2=0., phi3=0.;
22259 Int_t n = fHarmonic;
22261 // 3-p correlators:
22262 for(Int_t i1=0;i1<nPrim;i1++)
22264 aftsTrack=anEvent->GetTrack(i1);
22265 // POI condition (first particle in the correlator must be POI): // to be improved (this can be implemented much better)
22266 if(typeFlag==1) // this is diff flow of POIs
22268 if(ptOrEta == "Pt")
22270 if(!((aftsTrack->Pt()>=lowerPtEtaEdge[pe] && aftsTrack->Pt()<upperPtEtaEdge[pe]) && (aftsTrack->InPOISelection())))continue;
22271 } else if (ptOrEta == "Eta")
22273 if(!((aftsTrack->Eta()>=lowerPtEtaEdge[pe] && aftsTrack->Eta()<upperPtEtaEdge[pe]) && (aftsTrack->InPOISelection())))continue;
22275 } else // this is diff flow of RPs
22277 if(ptOrEta == "Pt")
22279 if(!((aftsTrack->Pt()>=lowerPtEtaEdge[pe] && aftsTrack->Pt()<upperPtEtaEdge[pe]) && (aftsTrack->InRPSelection())))continue;
22280 } else if (ptOrEta == "Eta")
22282 if(!((aftsTrack->Eta()>=lowerPtEtaEdge[pe] && aftsTrack->Eta()<upperPtEtaEdge[pe]) && (aftsTrack->InRPSelection())))continue;
22285 psi1=aftsTrack->Phi();
22286 for(Int_t i2=0;i2<nPrim;i2++)
22288 if(i2==i1) continue;
22289 aftsTrack=anEvent->GetTrack(i2);
22290 // RP condition (!(first) particle in the correlator must be RP):
22291 if(!(aftsTrack->InRPSelection())) continue;
22292 phi2=aftsTrack->Phi();
22293 for(Int_t i3=0;i3<nPrim;i3++)
22295 if(i3==i1||i3==i2) continue;
22296 aftsTrack=anEvent->GetTrack(i3);
22297 // RP condition (!(first) particle in the correlator must be RP):
22298 if(!(aftsTrack->InRPSelection())) continue;
22299 phi3=aftsTrack->Phi();
22300 // Fill 3-p correlators:
22301 fOtherDirectDiffCorrelators[t][pe][1][0]->Fill(lowerPtEtaEdge[pe]+binWidthPtEta[pe]/2.,cos(n*(psi1-3.*phi2+2.*phi3)),1.); // <cos(n(psi1-3.*phi2+2.*phi3))>
22302 }//end of for(Int_t i3=0;i3<nPrim;i3++)
22303 }//end of for(Int_t i2=0;i2<nPrim;i2++)
22304 }//end of for(Int_t i1=0;i1<nPrim;i1++)
22305 } // end of void AliFlowAnalysisWithQCumulants::EvaluateOtherDiffCorrelatorsWithNestedLoops(AliFlowEventSimple * const anEvent, TString type, TString ptOrEta)
22307 //=======================================================================================================================
22309 void AliFlowAnalysisWithQCumulants::CrossCheckDiffFlowCorrelations(TString type, TString ptOrEta)
22311 // Compare correlations needed for diff. flow calculated with nested loops and those calculated from Q-vectors
22313 Int_t typeFlag = 0;
22314 Int_t ptEtaFlag = 0;
22318 } else if(type == "POI")
22322 if(ptOrEta == "Pt")
22325 } else if(ptOrEta == "Eta")
22330 Int_t t = typeFlag;
22331 Int_t pe = ptEtaFlag;
22333 TString rpORpoiString[2] = {"RP ","POI"}; // to be improved (name in the same way as in the other methods, eventually promote to data member)
22334 TString ptORetaString[2] = {"pt","eta"}; // to be improved (name in the same way as in the other methods, eventually promote to data member)
22335 TString reducedCorrelations[4] = {"<<cos(n(psi1-phi2))>>","<<cos(n(psi1+phi2-phi3-phi4))>>","",""}; // to be improved (access this from pro or hist)
22336 Double_t lowerPtEtaEdge[2] = {fPtMin+(fCrossCheckInPtBinNo-1)*fPtBinWidth,fEtaMin+(fCrossCheckInEtaBinNo-1)*fEtaBinWidth};
22337 Double_t upperPtEtaEdge[2] = {fPtMin+fCrossCheckInPtBinNo*fPtBinWidth,fEtaMin+fCrossCheckInEtaBinNo*fEtaBinWidth};
22339 Int_t crossCheckInPtEtaBinNo[2] = {fCrossCheckInPtBinNo,fCrossCheckInEtaBinNo};
22343 cout<<" *****************************************"<<endl;
22344 cout<<" **** cross-checking the correlations ****"<<endl;
22345 cout<<" **** for differential flow ("<<rpORpoiString[t]<<") ****"<<endl;
22346 if(!(fUsePhiWeights||fUsePtWeights||fUseEtaWeights||fUseTrackWeights))
22348 cout<<" **** (particle weights not used) ****"<<endl;
22351 cout<<" **** (particle weights used) ****"<<endl;
22353 cout<<" *****************************************"<<endl;
22355 cout<<" "<<ptORetaString[pe]<<" bin: "<<lowerPtEtaEdge[pe]<<" <= "<<ptORetaString[pe]<<" < "<<upperPtEtaEdge[pe]<<endl;
22358 for(Int_t rci=0;rci<2;rci++) // to be improved (calculate 6th and 8th order)
22360 cout<<" "<<reducedCorrelations[rci].Data()<<":"<<endl;
22361 cout<<" from Q-vectors = "<<fDiffFlowCorrelationsPro[t][pe][rci]->GetBinContent(crossCheckInPtEtaBinNo[pe])<<endl;
22362 cout<<" from nested loops = "<<fDiffFlowDirectCorrelations[t][pe][rci]->GetBinContent(1)<<endl;
22364 } // end of for(Int_t rci=0;rci<4;rci++)
22366 } // end of void AliFlowAnalysisWithQCumulants::CrossCheckDiffFlowCorrelations(TString type, TString ptOrEta)
22368 //=======================================================================================================================
22370 void AliFlowAnalysisWithQCumulants::CrossCheckOtherDiffCorrelators(TString type, TString ptOrEta)
22372 // Compare correlations needed for diff. flow calculated with nested loops and those calculated from Q-vectors
22374 Int_t typeFlag = 0;
22375 Int_t ptEtaFlag = 0;
22379 } else if(type == "POI")
22383 if(ptOrEta == "Pt")
22386 } else if(ptOrEta == "Eta")
22391 Int_t t = typeFlag;
22392 Int_t pe = ptEtaFlag;
22394 TString rpORpoiString[2] = {"RP ","POI"}; // to be improved (name in the same way as in the other methods, eventually promote to data member)
22395 TString ptORetaString[2] = {"pt","eta"}; // to be improved (name in the same way as in the other methods, eventually promote to data member)
22396 TString otherCorrelators[1] = {"<<cos(n(psi1-3phi2+2phi3))>>"}; // to be improved (access this from pro or hist)
22397 Double_t lowerPtEtaEdge[2] = {fPtMin+(fCrossCheckInPtBinNo-1)*fPtBinWidth,fEtaMin+(fCrossCheckInEtaBinNo-1)*fEtaBinWidth};
22398 Double_t upperPtEtaEdge[2] = {fPtMin+fCrossCheckInPtBinNo*fPtBinWidth,fEtaMin+fCrossCheckInEtaBinNo*fEtaBinWidth};
22400 Int_t crossCheckInPtEtaBinNo[2] = {fCrossCheckInPtBinNo,fCrossCheckInEtaBinNo};
22403 cout<<" *****************************************"<<endl;
22404 cout<<" **** cross-checking the other ****"<<endl;
22405 cout<<" **** diff. correlators ("<<rpORpoiString[t]<<") ****"<<endl;
22406 if(!(fUsePhiWeights||fUsePtWeights||fUseEtaWeights||fUseTrackWeights))
22408 cout<<" **** (particle weights not used) ****"<<endl;
22411 cout<<" **** (particle weights used) ****"<<endl;
22413 cout<<" *****************************************"<<endl;
22415 cout<<" "<<ptORetaString[pe]<<" bin: "<<lowerPtEtaEdge[pe]<<" <= "<<ptORetaString[pe]<<" < "<<upperPtEtaEdge[pe]<<endl;
22418 for(Int_t ci=0;ci<1;ci++)
22420 cout<<" "<<otherCorrelators[ci].Data()<<":"<<endl;
22421 cout<<" from Q-vectors = "<<fOtherDiffCorrelators[t][pe][1][ci]->GetBinContent(crossCheckInPtEtaBinNo[pe])<<endl;
22422 cout<<" from nested loops = "<<fOtherDirectDiffCorrelators[t][pe][1][ci]->GetBinContent(1)<<endl;
22424 } // end of for(Int_t ci=0;ci<1;ci++)
22426 } // end of void AliFlowAnalysisWithQCumulants::CrossCheckOtherDiffCorrelators(TString type, TString ptOrEta)
22428 //=======================================================================================================================
22430 void AliFlowAnalysisWithQCumulants::PrintNumberOfParticlesInSelectedBin()
22432 // Print on the screen number of RPs and POIs in selected pt and eta bin for cross checkings.
22435 cout<<"Number of RPs in selected pt bin = "<<fNoOfParticlesInBin->GetBinContent(1)<<endl;
22436 cout<<"Number of RPs in selected eta bin = "<<fNoOfParticlesInBin->GetBinContent(2)<<endl;
22437 cout<<"Number of POIs in selected pt bin = "<<fNoOfParticlesInBin->GetBinContent(3)<<endl;
22438 cout<<"Number of POIs in selected eta bin = "<<fNoOfParticlesInBin->GetBinContent(4)<<endl;
22440 } // end of void AliFlowAnalysisWithQCumulants::PrintNumberOfParticlesInSelectedBin()
22442 //=======================================================================================================================
22444 void AliFlowAnalysisWithQCumulants::EvaluateDiffFlowCorrelationsWithNestedLoopsUsingParticleWeights(AliFlowEventSimple * const anEvent, TString type, TString ptOrEta)
22446 // Evaluate reduced correlations with nested loops without using the particle weights.
22448 // Remark 1: Reduced correlations are evaluated in pt bin number fCrossCheckInPtBinNo and eta bin number fCrossCheckInEtaBinNo both for RPs and POIs.
22449 // Remark 2: Results are stored in 1 bin profiles fDiffFlowDirectCorrelations[t][pe][ci], where indices runs as follows:
22450 // [0=RP,1=POI][0=Pt,1=Eta][0=<2'>,1=<4'>,2=<6'>,3=<8'>]
22451 // Remark 3: <2'> = <w2 cos(n*(psi1-phi2))>
22452 // <4'> = <w2 w3 w4 cos(n*(psi1+phi2-phi3-phi4))>
22455 Int_t typeFlag = 0;
22456 Int_t ptEtaFlag = 0;
22460 } else if(type == "POI")
22464 if(ptOrEta == "Pt")
22467 } else if(ptOrEta == "Eta")
22472 Int_t t = typeFlag;
22473 Int_t pe = ptEtaFlag;
22475 Double_t lowerPtEtaEdge[2] = {fPtMin+(fCrossCheckInPtBinNo-1)*fPtBinWidth,fEtaMin+(fCrossCheckInEtaBinNo-1)*fEtaBinWidth};
22476 Double_t upperPtEtaEdge[2] = {fPtMin+fCrossCheckInPtBinNo*fPtBinWidth,fEtaMin+fCrossCheckInEtaBinNo*fEtaBinWidth};
22477 Double_t binWidthPtEta[2] = {fPtBinWidth,fEtaBinWidth};
22479 Int_t nPrim = anEvent->NumberOfTracks();
22480 AliFlowTrackSimple *aftsTrack = NULL;
22482 Double_t psi1=0., phi2=0., phi3=0., phi4=0.;// phi5=0., phi6=0., phi7=0., phi8=0.;
22483 Double_t wPhi2=1., wPhi3=1., wPhi4=1.;// wPhi5=1., wPhi6=1., wPhi7=1., wPhi8=1.;
22485 Int_t n = fHarmonic;
22487 // 2'-particle correlations:
22488 for(Int_t i1=0;i1<nPrim;i1++)
22490 aftsTrack=anEvent->GetTrack(i1);
22491 // POI condition (first particle in the correlator must be POI): // to be improved (this can be implemented much better)
22492 if(typeFlag==1) // this is diff flow of POIs
22494 if(ptOrEta == "Pt")
22496 if(!((aftsTrack->Pt()>=lowerPtEtaEdge[pe] && aftsTrack->Pt()<upperPtEtaEdge[pe]) && (aftsTrack->InPOISelection())))continue;
22497 } else if (ptOrEta == "Eta")
22499 if(!((aftsTrack->Eta()>=lowerPtEtaEdge[pe] && aftsTrack->Eta()<upperPtEtaEdge[pe]) && (aftsTrack->InPOISelection())))continue;
22501 } else // this is diff flow of RPs
22503 if(ptOrEta == "Pt")
22505 if(!((aftsTrack->Pt()>=lowerPtEtaEdge[pe] && aftsTrack->Pt()<upperPtEtaEdge[pe]) && (aftsTrack->InRPSelection())))continue;
22506 } else if (ptOrEta == "Eta")
22508 if(!((aftsTrack->Eta()>=lowerPtEtaEdge[pe] && aftsTrack->Eta()<upperPtEtaEdge[pe]) && (aftsTrack->InRPSelection())))continue;
22511 psi1=aftsTrack->Phi();
22512 for(Int_t i2=0;i2<nPrim;i2++)
22514 if(i2==i1) continue;
22515 aftsTrack=anEvent->GetTrack(i2);
22516 // RP condition (!(first) particle in the correlator must be RP):
22517 if(!(aftsTrack->InRPSelection())) continue;
22518 phi2=aftsTrack->Phi();
22519 if(fUsePhiWeights && fPhiWeights) wPhi2 = fPhiWeights->GetBinContent(1+(Int_t)(TMath::Floor(phi2*fnBinsPhi/TMath::TwoPi())));
22520 // 2'-particle correlations:
22521 fDiffFlowDirectCorrelations[t][pe][0]->Fill(lowerPtEtaEdge[pe]+binWidthPtEta[pe]/2.,cos(1.*n*(psi1-phi2)),wPhi2); // <w2 cos(n*(psi1-phi2))
22522 }//end of for(Int_t i2=0;i2<nPrim;i2++)
22523 }//end of for(Int_t i1=0;i1<nPrim;i1++)
22525 // 4'-particle correlations:
22526 for(Int_t i1=0;i1<nPrim;i1++)
22528 aftsTrack=anEvent->GetTrack(i1);
22529 // POI condition (first particle in the correlator must be POI): // to be improved (this can be implemented much better)
22530 if(typeFlag==1) // this is diff flow of POIs
22532 if(ptOrEta == "Pt")
22534 if(!((aftsTrack->Pt()>=lowerPtEtaEdge[pe] && aftsTrack->Pt()<upperPtEtaEdge[pe]) && (aftsTrack->InPOISelection())))continue;
22535 } else if (ptOrEta == "Eta")
22537 if(!((aftsTrack->Eta()>=lowerPtEtaEdge[pe] && aftsTrack->Eta()<upperPtEtaEdge[pe]) && (aftsTrack->InPOISelection())))continue;
22539 } else // this is diff flow of RPs
22541 if(ptOrEta == "Pt")
22543 if(!((aftsTrack->Pt()>=lowerPtEtaEdge[pe] && aftsTrack->Pt()<upperPtEtaEdge[pe]) && (aftsTrack->InRPSelection())))continue;
22544 } else if (ptOrEta == "Eta")
22546 if(!((aftsTrack->Eta()>=lowerPtEtaEdge[pe] && aftsTrack->Eta()<upperPtEtaEdge[pe]) && (aftsTrack->InRPSelection())))continue;
22549 psi1=aftsTrack->Phi();
22550 for(Int_t i2=0;i2<nPrim;i2++)
22552 if(i2==i1) continue;
22553 aftsTrack=anEvent->GetTrack(i2);
22554 // RP condition (!(first) particle in the correlator must be RP):
22555 if(!(aftsTrack->InRPSelection())) continue;
22556 phi2=aftsTrack->Phi();
22557 if(fUsePhiWeights && fPhiWeights) wPhi2 = fPhiWeights->GetBinContent(1+(Int_t)(TMath::Floor(phi2*fnBinsPhi/TMath::TwoPi())));
22558 for(Int_t i3=0;i3<nPrim;i3++)
22560 if(i3==i1||i3==i2) continue;
22561 aftsTrack=anEvent->GetTrack(i3);
22562 // RP condition (!(first) particle in the correlator must be RP):
22563 if(!(aftsTrack->InRPSelection())) continue;
22564 phi3=aftsTrack->Phi();
22565 if(fUsePhiWeights && fPhiWeights) wPhi3 = fPhiWeights->GetBinContent(1+(Int_t)(TMath::Floor(phi3*fnBinsPhi/TMath::TwoPi())));
22566 for(Int_t i4=0;i4<nPrim;i4++)
22568 if(i4==i1||i4==i2||i4==i3) continue;
22569 aftsTrack=anEvent->GetTrack(i4);
22570 // RP condition (!(first) particle in the correlator must be RP):
22571 if(!(aftsTrack->InRPSelection())) continue;
22572 phi4=aftsTrack->Phi();
22573 if(fUsePhiWeights && fPhiWeights) wPhi4 = fPhiWeights->GetBinContent(1+(Int_t)(TMath::Floor(phi4*fnBinsPhi/TMath::TwoPi())));
22574 // 4'-particle correlations <w2 w3 w4 cos(n(psi1+phi2-phi3-phi4))>:
22575 fDiffFlowDirectCorrelations[t][pe][1]->Fill(lowerPtEtaEdge[pe]+binWidthPtEta[pe]/2.,cos(n*(psi1+phi2-phi3-phi4)),wPhi2*wPhi3*wPhi4);
22576 }//end of for(Int_t i4=0;i4<nPrim;i4++)
22577 }//end of for(Int_t i3=0;i3<nPrim;i3++)
22578 }//end of for(Int_t i2=0;i2<nPrim;i2++)
22579 }//end of for(Int_t i1=0;i1<nPrim;i1++)
22581 // count # of RPs and POIs in selected pt and eta bins for cross-checkings: (to be improved - moved to dedicated method)
22582 for(Int_t i=0;i<nPrim;i++)
22584 aftsTrack=anEvent->GetTrack(i);
22585 // POI condition (first particle in the correlator must be POI): // to be improved (this can be implemented much better)
22586 if(typeFlag==1) // this is diff flow of POIs
22588 if(ptOrEta == "Pt")
22590 if(!((aftsTrack->Pt()>=lowerPtEtaEdge[pe] && aftsTrack->Pt()<upperPtEtaEdge[pe]) && (aftsTrack->InPOISelection())))continue;
22591 } else if (ptOrEta == "Eta")
22593 if(!((aftsTrack->Eta()>=lowerPtEtaEdge[pe] && aftsTrack->Eta()<upperPtEtaEdge[pe]) && (aftsTrack->InPOISelection())))continue;
22595 } else // this is diff flow of RPs
22597 if(ptOrEta == "Pt")
22599 if(!((aftsTrack->Pt()>=lowerPtEtaEdge[pe] && aftsTrack->Pt()<upperPtEtaEdge[pe]) && (aftsTrack->InRPSelection())))continue;
22600 } else if (ptOrEta == "Eta")
22602 if(!((aftsTrack->Eta()>=lowerPtEtaEdge[pe] && aftsTrack->Eta()<upperPtEtaEdge[pe]) && (aftsTrack->InRPSelection())))continue;
22606 fNoOfParticlesInBin->Fill(t+pe+0.5);
22609 } // end of void AliFlowAnalysisWithQCumulants::EvaluateDiffFlowCorrelationsWithNestedLoopsUsingParticleWeights(AliFlowEventSimple* anEvent, TString type, TString ptOrEta)
22611 //=======================================================================================================================
22613 void AliFlowAnalysisWithQCumulants::EvaluateDiffFlowCorrectionTermsForNUAWithNestedLoops(AliFlowEventSimple * const anEvent, TString type, TString ptOrEta)
22615 // Evaluate with nested loops correction terms for non-uniform acceptance (both sin and cos terms) relevant for differential flow.
22617 // Remark 1: Reduced correction terms for non-uniform acceptance are evaluated in pt bin number fCrossCheckInPtBinNo
22618 // and eta bin number fCrossCheckInEtaBinNo both for RPs and POIs.
22619 // Remark 2: Results are stored in 1 bin profiles fDiffFlowDirectCorrections[t][pe][sc][cti], where first three indices runs as:
22620 // [0=RP,1=POI][0=Pt,1=Eta][0=sin terms,1=cos terms], whilst the cti (correction term index) runs as follows:
22622 // 0: <<sc n(psi1)>>
22623 // 1: <<sc n(psi1+phi2)>>
22624 // 2: <<sc n(psi1+phi2-phi3)>>
22625 // 3: <<sc n(psi1-phi2-phi3)>>
22630 Int_t typeFlag = 0;
22631 Int_t ptEtaFlag = 0;
22635 } else if(type == "POI")
22639 if(ptOrEta == "Pt")
22642 } else if(ptOrEta == "Eta")
22647 Int_t t = typeFlag;
22648 Int_t pe = ptEtaFlag;
22650 Double_t lowerPtEtaEdge[2] = {fPtMin+(fCrossCheckInPtBinNo-1)*fPtBinWidth,fEtaMin+(fCrossCheckInEtaBinNo-1)*fEtaBinWidth};
22651 Double_t upperPtEtaEdge[2] = {fPtMin+fCrossCheckInPtBinNo*fPtBinWidth,fEtaMin+fCrossCheckInEtaBinNo*fEtaBinWidth};
22652 Double_t binWidthPtEta[2] = {fPtBinWidth,fEtaBinWidth};
22654 Int_t nPrim = anEvent->NumberOfTracks();
22655 AliFlowTrackSimple *aftsTrack = NULL;
22657 Double_t psi1=0., phi2=0., phi3=0.;// phi4=0.;// phi5=0., phi6=0., phi7=0., phi8=0.;
22659 Int_t n = fHarmonic;
22661 // 1-particle correction terms:
22662 for(Int_t i1=0;i1<nPrim;i1++)
22664 aftsTrack=anEvent->GetTrack(i1);
22665 // POI condition (first particle in the correlator must be POI): // to be improved (this can be implemented much better)
22666 if(typeFlag==1) // this is diff flow of POIs
22668 if(ptOrEta == "Pt")
22670 if(!((aftsTrack->Pt()>=lowerPtEtaEdge[pe] && aftsTrack->Pt()<upperPtEtaEdge[pe]) && (aftsTrack->InPOISelection())))continue;
22671 } else if (ptOrEta == "Eta")
22673 if(!((aftsTrack->Eta()>=lowerPtEtaEdge[pe] && aftsTrack->Eta()<upperPtEtaEdge[pe]) && (aftsTrack->InPOISelection())))continue;
22675 } else // this is diff flow of RPs
22677 if(ptOrEta == "Pt")
22679 if(!((aftsTrack->Pt()>=lowerPtEtaEdge[pe] && aftsTrack->Pt()<upperPtEtaEdge[pe]) && (aftsTrack->InRPSelection())))continue;
22680 } else if (ptOrEta == "Eta")
22682 if(!((aftsTrack->Eta()>=lowerPtEtaEdge[pe] && aftsTrack->Eta()<upperPtEtaEdge[pe]) && (aftsTrack->InRPSelection())))continue;
22685 psi1=aftsTrack->Phi();
22687 fDiffFlowDirectCorrectionTermsForNUA[t][pe][0][0]->Fill(lowerPtEtaEdge[pe]+binWidthPtEta[pe]/2.,sin(n*psi1),1.); // <<sin(n*(psi1))>>
22689 fDiffFlowDirectCorrectionTermsForNUA[t][pe][1][0]->Fill(lowerPtEtaEdge[pe]+binWidthPtEta[pe]/2.,cos(n*psi1),1.); // <<cos(n*(psi1))>>
22690 }//end of for(Int_t i1=0;i1<nPrim;i1++)
22692 // 2-particle correction terms:
22693 for(Int_t i1=0;i1<nPrim;i1++)
22695 aftsTrack=anEvent->GetTrack(i1);
22696 // POI condition (first particle in the correlator must be POI): // to be improved (this can be implemented much better)
22697 if(typeFlag==1) // this is diff flow of POIs
22699 if(ptOrEta == "Pt")
22701 if(!((aftsTrack->Pt()>=lowerPtEtaEdge[pe] && aftsTrack->Pt()<upperPtEtaEdge[pe]) && (aftsTrack->InPOISelection())))continue;
22702 } else if (ptOrEta == "Eta")
22704 if(!((aftsTrack->Eta()>=lowerPtEtaEdge[pe] && aftsTrack->Eta()<upperPtEtaEdge[pe]) && (aftsTrack->InPOISelection())))continue;
22706 } else // this is diff flow of RPs
22708 if(ptOrEta == "Pt")
22710 if(!((aftsTrack->Pt()>=lowerPtEtaEdge[pe] && aftsTrack->Pt()<upperPtEtaEdge[pe]) && (aftsTrack->InRPSelection())))continue;
22711 } else if (ptOrEta == "Eta")
22713 if(!((aftsTrack->Eta()>=lowerPtEtaEdge[pe] && aftsTrack->Eta()<upperPtEtaEdge[pe]) && (aftsTrack->InRPSelection())))continue;
22716 psi1=aftsTrack->Phi();
22717 for(Int_t i2=0;i2<nPrim;i2++)
22719 if(i2==i1) continue;
22720 aftsTrack=anEvent->GetTrack(i2);
22721 // RP condition (!(first) particle in the correlator must be RP):
22722 if(!(aftsTrack->InRPSelection())) continue;
22723 phi2=aftsTrack->Phi();
22725 fDiffFlowDirectCorrectionTermsForNUA[t][pe][0][1]->Fill(lowerPtEtaEdge[pe]+binWidthPtEta[pe]/2.,sin(n*(psi1+phi2)),1.); // <<sin(n*(psi1+phi2))>>
22727 fDiffFlowDirectCorrectionTermsForNUA[t][pe][1][1]->Fill(lowerPtEtaEdge[pe]+binWidthPtEta[pe]/2.,cos(n*(psi1+phi2)),1.); // <<cos(n*(psi1+phi2))>>
22728 }//end of for(Int_t i2=0;i2<nPrim;i2++)
22729 }//end of for(Int_t i1=0;i1<nPrim;i1++)
22731 // 3-particle correction terms:
22732 for(Int_t i1=0;i1<nPrim;i1++)
22734 aftsTrack=anEvent->GetTrack(i1);
22735 // POI condition (first particle in the correlator must be POI): // to be improved (this can be implemented much better)
22736 if(typeFlag==1) // this is diff flow of POIs
22738 if(ptOrEta == "Pt")
22740 if(!((aftsTrack->Pt()>=lowerPtEtaEdge[pe] && aftsTrack->Pt()<upperPtEtaEdge[pe]) && (aftsTrack->InPOISelection())))continue;
22741 } else if (ptOrEta == "Eta")
22743 if(!((aftsTrack->Eta()>=lowerPtEtaEdge[pe] && aftsTrack->Eta()<upperPtEtaEdge[pe]) && (aftsTrack->InPOISelection())))continue;
22745 } else // this is diff flow of RPs
22747 if(ptOrEta == "Pt")
22749 if(!((aftsTrack->Pt()>=lowerPtEtaEdge[pe] && aftsTrack->Pt()<upperPtEtaEdge[pe]) && (aftsTrack->InRPSelection())))continue;
22750 } else if (ptOrEta == "Eta")
22752 if(!((aftsTrack->Eta()>=lowerPtEtaEdge[pe] && aftsTrack->Eta()<upperPtEtaEdge[pe]) && (aftsTrack->InRPSelection())))continue;
22755 psi1=aftsTrack->Phi();
22756 for(Int_t i2=0;i2<nPrim;i2++)
22758 if(i2==i1) continue;
22759 aftsTrack=anEvent->GetTrack(i2);
22760 // RP condition (!(first) particle in the correlator must be RP):
22761 if(!(aftsTrack->InRPSelection())) continue;
22762 phi2=aftsTrack->Phi();
22763 for(Int_t i3=0;i3<nPrim;i3++)
22765 if(i3==i1||i3==i2) continue;
22766 aftsTrack=anEvent->GetTrack(i3);
22767 // RP condition (!(first) particle in the correlator must be RP):
22768 if(!(aftsTrack->InRPSelection())) continue;
22769 phi3=aftsTrack->Phi();
22771 fDiffFlowDirectCorrectionTermsForNUA[t][pe][0][2]->Fill(lowerPtEtaEdge[pe]+binWidthPtEta[pe]/2.,sin(n*(psi1+phi2-phi3)),1.); // <<sin(n*(psi1+phi2-phi3))>>
22772 fDiffFlowDirectCorrectionTermsForNUA[t][pe][0][3]->Fill(lowerPtEtaEdge[pe]+binWidthPtEta[pe]/2.,sin(n*(psi1-phi2-phi3)),1.); // <<sin(n*(psi1-phi2-phi3))>>
22774 fDiffFlowDirectCorrectionTermsForNUA[t][pe][1][2]->Fill(lowerPtEtaEdge[pe]+binWidthPtEta[pe]/2.,cos(n*(psi1+phi2-phi3)),1.); // <<cos(n*(psi1+phi2-phi3))>>
22775 fDiffFlowDirectCorrectionTermsForNUA[t][pe][1][3]->Fill(lowerPtEtaEdge[pe]+binWidthPtEta[pe]/2.,cos(n*(psi1-phi2-phi3)),1.); // <<cos(n*(psi1-phi2-phi3))>>
22776 }//end of for(Int_t i3=0;i3<nPrim;i3++)
22777 }//end of for(Int_t i2=0;i2<nPrim;i2++)
22778 }//end of for(Int_t i1=0;i1<nPrim;i1++)
22780 } // end of void AliFlowAnalysisWithQCumulants::EvaluateDiffFlowCorrectionTermsForNUAWithNestedLoops(AliFlowEventSimple* anEvent, TString type, TString ptOrEta)
22783 //=======================================================================================================================
22786 void AliFlowAnalysisWithQCumulants::CrossCheckDiffFlowCorrectionTermsForNUA(TString type, TString ptOrEta)
22788 // Compare corrections temrs for non-uniform acceptance needed for diff. flow calculated with nested loops and those calculated from Q-vectors
22790 Int_t typeFlag = 0;
22791 Int_t ptEtaFlag = 0;
22795 } else if(type == "POI")
22799 if(ptOrEta == "Pt")
22802 } else if(ptOrEta == "Eta")
22807 Int_t t = typeFlag;
22808 Int_t pe = ptEtaFlag;
22810 TString rpORpoiString[2] = {"RP ","POI"}; // to be improved (name in the same way as in the other methods, eventually promote to data member)
22811 TString ptORetaString[2] = {"pt","eta"}; // to be improved (name in the same way as in the other methods, eventually promote to data member)
22812 //TString sinCosFlag[2] = {"sin","cos"}; // to be improved (eventually promote to data member)
22813 TString reducedCorrectionSinTerms[4] = {"<<sin(n(psi1))>>","<<sin(n(psi1+phi2))>>","<<sin(n*(psi1+phi2-phi3))>>","<<sin(n*(psi1-phi2-phi3))>>"}; // to be improved (access this from pro or hist)
22814 TString reducedCorrectionCosTerms[4] = {"<<cos(n(psi1))>>","<<cos(n(psi1+phi2))>>","<<cos(n*(psi1+phi2-phi3))>>","<<cos(n*(psi1-phi2-phi3))>>"}; // to be improved (access this from pro or hist)
22815 Double_t lowerPtEtaEdge[2] = {fPtMin+(fCrossCheckInPtBinNo-1)*fPtBinWidth,fEtaMin+(fCrossCheckInEtaBinNo-1)*fEtaBinWidth};
22816 Double_t upperPtEtaEdge[2] = {fPtMin+fCrossCheckInPtBinNo*fPtBinWidth,fEtaMin+fCrossCheckInEtaBinNo*fEtaBinWidth};
22818 Int_t crossCheckInPtEtaBinNo[2] = {fCrossCheckInPtBinNo,fCrossCheckInEtaBinNo};
22821 cout<<" ******************************************"<<endl;
22822 cout<<" **** cross-checking the correction ****"<<endl;
22823 cout<<" **** terms for non-uniform acceptance ****"<<endl;
22824 cout<<" **** for differential flow ("<<rpORpoiString[t]<<") ****"<<endl;
22825 if(!(fUsePhiWeights||fUsePtWeights||fUseEtaWeights||fUseTrackWeights))
22827 cout<<" **** (particle weights not used) ****"<<endl;
22830 cout<<" **** (particle weights used) ****"<<endl;
22832 cout<<" ******************************************"<<endl;
22834 cout<<" "<<ptORetaString[pe]<<" bin: "<<lowerPtEtaEdge[pe]<<" <= "<<ptORetaString[pe]<<" < "<<upperPtEtaEdge[pe]<<endl;
22837 for(Int_t cti=0;cti<4;cti++) // correction term index
22839 for(Int_t sc=0;sc<2;sc++) // sin or cos terms
22841 if(sc==0) // to be improved (this can be implemented better)
22843 cout<<" "<<reducedCorrectionSinTerms[cti].Data()<<":"<<endl;
22846 cout<<" "<<reducedCorrectionCosTerms[cti].Data()<<":"<<endl;
22848 cout<<" from Q-vectors = "<<fDiffFlowCorrectionTermsForNUAPro[t][pe][sc][cti]->GetBinContent(crossCheckInPtEtaBinNo[pe])<<endl;
22849 cout<<" from nested loops = "<<fDiffFlowDirectCorrectionTermsForNUA[t][pe][sc][cti]->GetBinContent(1)<<endl;
22852 } // end of for(Int_t rci=0;rci<4;rci++)
22854 } // end of void AliFlowAnalysisWithQCumulants::CrossCheckDiffFlowCorrectionTermsForNUA(TString type, TString ptOrEta)
22856 //=======================================================================================================================
22858 void AliFlowAnalysisWithQCumulants::CalculateIntFlowCorrectionsForNUACosTermsUsingParticleWeights()
22860 // Calculate corrections using particle weights for non-uniform acceptance of the detector for no-name integrated flow (cos terms).
22862 // **********************************************************************
22863 // **** weighted corrections for non-uniform acceptance (cos terms): ****
22864 // **********************************************************************
22866 // Remark 1: When particle weights are used the binning of fIntFlowCorrectionTermsForNUAPro[1] is organized as follows:
22868 // 1st bin: <<w1 cos(n*(phi1))>> = cosP1nW1
22869 // 2nd bin: <<w1 w2 cos(n*(phi1+phi2))>> = cosP1nP1nW1W1
22870 // 3rd bin: <<w1 w2 w3 cos(n*(phi1-phi2-phi3))>> = cosP1nM1nM1nW1W1W1
22873 // multiplicity (number of particles used to determine the reaction plane)
22874 Double_t dMult = (*fSpk)(0,0);
22876 // real and imaginary parts of weighted Q-vectors evaluated in harmonics n, 2n, 3n and 4n:
22877 Double_t dReQ1n1k = (*fReQ)(0,1);
22878 Double_t dReQ2n2k = (*fReQ)(1,2);
22879 //Double_t dReQ3n3k = (*fReQ)(2,3);
22880 //Double_t dReQ4n4k = (*fReQ)(3,4);
22881 Double_t dReQ1n3k = (*fReQ)(0,3);
22882 Double_t dImQ1n1k = (*fImQ)(0,1);
22883 Double_t dImQ2n2k = (*fImQ)(1,2);
22884 //Double_t dImQ3n3k = (*fImQ)(2,3);
22885 //Double_t dImQ4n4k = (*fImQ)(3,4);
22886 //Double_t dImQ1n3k = (*fImQ)(0,3);
22888 // dMs are variables introduced in order to simplify some Eqs. bellow:
22889 //..............................................................................................
22890 Double_t dM11 = (*fSpk)(1,1)-(*fSpk)(0,2); // dM11 = sum_{i,j=1,i!=j}^M w_i w_j
22891 Double_t dM111 = (*fSpk)(2,1)-3.*(*fSpk)(0,2)*(*fSpk)(0,1)
22892 + 2.*(*fSpk)(0,3); // dM111 = sum_{i,j,k=1,i!=j!=k}^M w_i w_j w_k
22893 //..............................................................................................
22895 Double_t cosP1nW1 = 0.; // <<w1 cos(n*(phi1))>>
22897 if(dMult>0 && TMath::Abs((*fSpk)(0,1))>1.e-6)
22899 cosP1nW1 = dReQ1n1k/(*fSpk)(0,1);
22901 // average weighted 1-particle correction (cos terms) for non-uniform acceptance for single event:
22902 fIntFlowCorrectionTermsForNUAEBE[1]->SetBinContent(1,cosP1nW1);
22904 // final average weighted 1-particle correction (cos terms) for non-uniform acceptance for all events:
22905 fIntFlowCorrectionTermsForNUAPro[1]->Fill(0.5,cosP1nW1,(*fSpk)(0,1));
22909 Double_t cosP1nP1nW1W1 = 0.; // <<w1 w2 cos(n*(phi1+phi2))>>
22911 if(dMult>1 && TMath::Abs(dM11)>1.e-6)
22913 cosP1nP1nW1W1 = (pow(dReQ1n1k,2)-pow(dImQ1n1k,2)-dReQ2n2k)/dM11;
22915 // average weighted 2-particle correction (cos terms) for non-uniform acceptance for single event:
22916 fIntFlowCorrectionTermsForNUAEBE[1]->SetBinContent(2,cosP1nP1nW1W1);
22918 // final average weighted 2-particle correction (cos terms) for non-uniform acceptance for all events:
22919 fIntFlowCorrectionTermsForNUAPro[1]->Fill(1.5,cosP1nP1nW1W1,dM11);
22923 Double_t cosP1nM1nM1nW1W1W1 = 0.; // <<w1 w2 w3 cos(n*(phi1-phi2-phi3))>>
22925 if(dMult>2 && TMath::Abs(dM111)>1.e-6)
22927 cosP1nM1nM1nW1W1W1 = (dReQ1n1k*(pow(dReQ1n1k,2)+pow(dImQ1n1k,2))
22928 - dReQ1n1k*dReQ2n2k-dImQ1n1k*dImQ2n2k
22929 - 2.*((*fSpk)(0,2))*dReQ1n1k
22933 // average non-weighted 3-particle correction (cos terms) for non-uniform acceptance for single event:
22934 fIntFlowCorrectionTermsForNUAEBE[1]->SetBinContent(3,cosP1nM1nM1nW1W1W1);
22936 // final average non-weighted 3-particle correction (cos terms) for non-uniform acceptance for all events:
22937 fIntFlowCorrectionTermsForNUAPro[1]->Fill(2.5,cosP1nM1nM1nW1W1W1,dM111);
22940 } // end of AliFlowAnalysisWithQCumulants::CalculateIntFlowCorrectionsForNUACosTermsUsingParticleWeights()
22943 //=======================================================================================================================
22946 void AliFlowAnalysisWithQCumulants::CalculateIntFlowCorrectionsForNUASinTermsUsingParticleWeights()
22948 // calculate corrections using particle weights for non-uniform acceptance of the detector for no-name integrated flow (sin terms)
22950 // **********************************************************************
22951 // **** weighted corrections for non-uniform acceptance (sin terms): ****
22952 // **********************************************************************
22954 // Remark 1: When particle weights are used the binning of fIntFlowCorrectionTermsForNUAPro[0] is organized as follows:
22956 // 1st bin: <<w1 sin(n*(phi1))>> = sinP1nW1
22957 // 2nd bin: <<w1 w2 sin(n*(phi1+phi2))>> = sinP1nP1nW1W1
22958 // 3rd bin: <<w1 w2 w3 sin(n*(phi1-phi2-phi3))>> = sinP1nM1nM1nW1W1W1
22961 // multiplicity (number of particles used to determine the reaction plane)
22962 Double_t dMult = (*fSpk)(0,0);
22964 // real and imaginary parts of weighted Q-vectors evaluated in harmonics n, 2n, 3n and 4n:
22965 Double_t dReQ1n1k = (*fReQ)(0,1);
22966 Double_t dReQ2n2k = (*fReQ)(1,2);
22967 //Double_t dReQ3n3k = (*fReQ)(2,3);
22968 //Double_t dReQ4n4k = (*fReQ)(3,4);
22969 //Double_t dReQ1n3k = (*fReQ)(0,3);
22970 Double_t dImQ1n1k = (*fImQ)(0,1);
22971 Double_t dImQ2n2k = (*fImQ)(1,2);
22972 //Double_t dImQ3n3k = (*fImQ)(2,3);
22973 //Double_t dImQ4n4k = (*fImQ)(3,4);
22974 Double_t dImQ1n3k = (*fImQ)(0,3);
22976 // dMs are variables introduced in order to simplify some Eqs. bellow:
22977 //..............................................................................................
22978 Double_t dM11 = (*fSpk)(1,1)-(*fSpk)(0,2); // dM11 = sum_{i,j=1,i!=j}^M w_i w_j
22979 Double_t dM111 = (*fSpk)(2,1)-3.*(*fSpk)(0,2)*(*fSpk)(0,1)
22980 + 2.*(*fSpk)(0,3); // dM111 = sum_{i,j,k=1,i!=j!=k}^M w_i w_j w_k
22981 //..............................................................................................
22984 Double_t sinP1nW1 = 0.; // <<w1 sin(n*(phi1))>>
22986 if(dMult>0 && TMath::Abs((*fSpk)(0,1))>1.e-6)
22988 sinP1nW1 = dImQ1n1k/((*fSpk)(0,1));
22990 // average weighted 1-particle correction (sin terms) for non-uniform acceptance for single event:
22991 fIntFlowCorrectionTermsForNUAEBE[0]->SetBinContent(1,sinP1nW1);
22993 // final average weighted 1-particle correction (sin terms) for non-uniform acceptance for all events:
22994 fIntFlowCorrectionTermsForNUAPro[0]->Fill(0.5,sinP1nW1,(*fSpk)(0,1));
22998 Double_t sinP1nP1nW1W1 = 0.; // <<w1 w2 sin(n*(phi1+phi2))>>
23000 if(dMult>1 && TMath::Abs(dM11)>1.e-6)
23002 sinP1nP1nW1W1 = (2.*dReQ1n1k*dImQ1n1k-dImQ2n2k)/dM11;
23004 // average weighted 2-particle correction (sin terms) for non-uniform acceptance for single event:
23005 fIntFlowCorrectionTermsForNUAEBE[0]->SetBinContent(2,sinP1nP1nW1W1);
23007 // final average weighted 1-particle correction (sin terms) for non-uniform acceptance for all events:
23008 fIntFlowCorrectionTermsForNUAPro[0]->Fill(1.5,sinP1nP1nW1W1,dM11);
23012 Double_t sinP1nM1nM1nW1W1W1 = 0.; // <<w1 w2 w3 sin(n*(phi1-phi2-phi3))>>
23014 if(dMult>2 && TMath::Abs(dM111)>1.e-6)
23016 sinP1nM1nM1nW1W1W1 = (-dImQ1n1k*(pow(dReQ1n1k,2)+pow(dImQ1n1k,2))
23017 + dReQ1n1k*dImQ2n2k-dImQ1n1k*dReQ2n2k
23018 + 2.*((*fSpk)(0,2))*dImQ1n1k
23022 // average weighted 3-particle correction (sin terms) for non-uniform acceptance for single event:
23023 fIntFlowCorrectionTermsForNUAEBE[0]->SetBinContent(3,sinP1nM1nM1nW1W1W1);
23025 // final average weighted 3-particle correction (sin terms) for non-uniform acceptance for all events:
23026 fIntFlowCorrectionTermsForNUAPro[0]->Fill(2.5,sinP1nM1nM1nW1W1W1,dM111);
23029 } // end of AliFlowAnalysisWithQCumulants::CalculateIntFlowCorrectionsForNUASinTermsUsingParticleWeights()
23031 //=======================================================================================================================
23033 void AliFlowAnalysisWithQCumulants::EvaluateIntFlowCorrectionsForNUAWithNestedLoopsUsingParticleWeights(AliFlowEventSimple * const anEvent)
23035 // Evaluate with nested loops correction terms for non-uniform acceptance for integrated flow (using the particle weights).
23037 // Results are stored in profiles fIntFlowDirectCorrectionTermsForNUA[0] (sin terms) and
23038 // fIntFlowDirectCorrectionTermsForNUA[1] (cos terms).
23040 // Remark 1: When particle weights are used the binning of fIntFlowDirectCorrectionTermsForNUA[sc] is
23041 // organized as follows (sc stands for either sin or cos):
23043 // 1st bin: <<w1 sc(n*(phi1))>> = scP1nW1
23044 // 2nd bin: <<w1 w2 sc(n*(phi1+phi2))>> = scP1nP1nW1W1
23045 // 3rd bin: <<w1 w2 w3 sc(n*(phi1-phi2-phi3))>> = scP1nM1nM1nW1W1W1
23048 Int_t nPrim = anEvent->NumberOfTracks();
23049 AliFlowTrackSimple *aftsTrack = NULL;
23050 //Double_t phi1=0., phi2=0., phi3=0., phi4=0., phi5=0., phi6=0., phi7=0., phi8=0.;
23051 //Double_t wPhi1=1., wPhi2=1., wPhi3=1., wPhi4=1., wPhi5=1., wPhi6=1., wPhi7=1., wPhi8=1.;
23052 Double_t phi1=0., phi2=0., phi3=0.;
23053 Double_t wPhi1=1., wPhi2=1., wPhi3=1.;
23054 Int_t n = fHarmonic;
23055 Int_t eventNo = (Int_t)fAvMultiplicity->GetBinEntries(1); // to be improved (is this casting safe in general?)
23056 Double_t dMult = (*fSpk)(0,0);
23058 cout<<"Correction terms for non-uniform acceptance: Event number: "<<eventNo<<", multiplicity is "<<dMult<<endl;
23061 cout<<"... skipping this event (multiplicity too low) ..."<<endl;
23062 } else if (dMult>fMaxAllowedMultiplicity)
23064 cout<<"... skipping this event (multiplicity too high) ..."<<endl;
23067 cout<<"... evaluating nested loops (using particle weights) ..."<<endl;
23070 // 1-particle correction terms using particle weights:
23071 if(nPrim>=1 && nPrim<=fMaxAllowedMultiplicity)
23073 for(Int_t i1=0;i1<nPrim;i1++)
23075 aftsTrack=anEvent->GetTrack(i1);
23076 if(!(aftsTrack->InRPSelection())) continue;
23077 phi1=aftsTrack->Phi();
23078 if(fUsePhiWeights && fPhiWeights) wPhi1 = fPhiWeights->GetBinContent(1+(Int_t)(TMath::Floor(phi1*fnBinsPhi/TMath::TwoPi())));
23079 // 1-particle correction terms using particle weights:
23080 if(fUsePhiWeights) fIntFlowDirectCorrectionTermsForNUA[0]->Fill(0.5,sin(n*phi1),wPhi1); // <w1 sin(n*phi1)>
23081 if(fUsePhiWeights) fIntFlowDirectCorrectionTermsForNUA[1]->Fill(0.5,cos(n*phi1),wPhi1); // <w1 cos(n*phi1)>
23082 } // end of for(Int_t i1=0;i1<nPrim;i1++)
23083 } // end of if(nPrim>=1 && nPrim<=fMaxAllowedMultiplicity)
23085 // 2-particle correction terms using particle weights:
23086 if(nPrim>=2 && nPrim<=fMaxAllowedMultiplicity)
23088 for(Int_t i1=0;i1<nPrim;i1++)
23090 aftsTrack=anEvent->GetTrack(i1);
23091 if(!(aftsTrack->InRPSelection())) continue;
23092 phi1=aftsTrack->Phi();
23093 if(fUsePhiWeights && fPhiWeights) wPhi1 = fPhiWeights->GetBinContent(1+(Int_t)(TMath::Floor(phi1*fnBinsPhi/TMath::TwoPi())));
23094 for(Int_t i2=0;i2<nPrim;i2++)
23096 if(i2==i1)continue;
23097 aftsTrack=anEvent->GetTrack(i2);
23098 if(!(aftsTrack->InRPSelection())) continue;
23099 phi2=aftsTrack->Phi();
23100 if(fUsePhiWeights && fPhiWeights) wPhi2 = fPhiWeights->GetBinContent(1+(Int_t)(TMath::Floor(phi2*fnBinsPhi/TMath::TwoPi())));
23101 if(nPrim==2) cout<<i1<<" "<<i2<<"\r"<<flush;
23102 // 2-p correction terms using particle weights:
23103 if(fUsePhiWeights) fIntFlowDirectCorrectionTermsForNUA[0]->Fill(1.5,sin(n*(phi1+phi2)),wPhi1*wPhi2); // <w1 w2 sin(n*(phi1+phi2))>
23104 if(fUsePhiWeights) fIntFlowDirectCorrectionTermsForNUA[1]->Fill(1.5,cos(n*(phi1+phi2)),wPhi1*wPhi2); // <w1 w2 cos(n*(phi1+phi2))>
23105 } // end of for(Int_t i2=0;i2<nPrim;i2++)
23106 } // end of for(Int_t i1=0;i1<nPrim;i1++)
23107 } // end of if(nPrim>=2)
23109 // 3-particle correction terms using particle weights:
23110 if(nPrim>=3 && nPrim<=fMaxAllowedMultiplicity)
23112 for(Int_t i1=0;i1<nPrim;i1++)
23114 aftsTrack=anEvent->GetTrack(i1);
23115 if(!(aftsTrack->InRPSelection())) continue;
23116 phi1=aftsTrack->Phi();
23117 if(fUsePhiWeights && fPhiWeights) wPhi1 = fPhiWeights->GetBinContent(1+(Int_t)(TMath::Floor(phi1*fnBinsPhi/TMath::TwoPi())));
23118 for(Int_t i2=0;i2<nPrim;i2++)
23120 if(i2==i1)continue;
23121 aftsTrack=anEvent->GetTrack(i2);
23122 if(!(aftsTrack->InRPSelection())) continue;
23123 phi2=aftsTrack->Phi();
23124 if(fUsePhiWeights && fPhiWeights) wPhi2 = fPhiWeights->GetBinContent(1+(Int_t)(TMath::Floor(phi2*fnBinsPhi/TMath::TwoPi())));
23125 for(Int_t i3=0;i3<nPrim;i3++)
23127 if(i3==i1||i3==i2)continue;
23128 aftsTrack=anEvent->GetTrack(i3);
23129 if(!(aftsTrack->InRPSelection())) continue;
23130 phi3=aftsTrack->Phi();
23131 if(fUsePhiWeights && fPhiWeights) wPhi3 = fPhiWeights->GetBinContent(1+(Int_t)(TMath::Floor(phi3*fnBinsPhi/TMath::TwoPi())));
23132 if(nPrim==3) cout<<i1<<" "<<i2<<" "<<i3<<"\r"<<flush;
23133 // 3-p correction terms using particle weights:
23134 if(fUsePhiWeights) fIntFlowDirectCorrectionTermsForNUA[0]->Fill(2.5,sin(n*(phi1-phi2-phi3)),wPhi1*wPhi2*wPhi3); // <w1 w2 w3 sin(n*(phi1-phi2-phi3))>
23135 if(fUsePhiWeights) fIntFlowDirectCorrectionTermsForNUA[1]->Fill(2.5,cos(n*(phi1-phi2-phi3)),wPhi1*wPhi2*wPhi3); // <w1 w2 w3 cos(n*(phi1-phi2-phi3))>
23136 } // end of for(Int_t i3=0;i3<nPrim;i3++)
23137 } // end of for(Int_t i2=0;i2<nPrim;i2++)
23138 } // end of for(Int_t i1=0;i1<nPrim;i1++)
23139 } // end of if(nPrim>=3)
23143 if(nPrim>=4 && nPrim<=fMaxAllowedMultiplicity)
23145 // 4 nested loops multiparticle correlations using particle weights:
23146 for(Int_t i1=0;i1<nPrim;i1++)
23148 aftsTrack=anEvent->GetTrack(i1);
23149 if(!(aftsTrack->InRPSelection())) continue;
23150 phi1=aftsTrack->Phi();
23151 if(fUsePhiWeights && fPhiWeights) wPhi1 = fPhiWeights->GetBinContent(1+(Int_t)(TMath::Floor(phi1*fnBinsPhi/TMath::TwoPi())));
23152 for(Int_t i2=0;i2<nPrim;i2++)
23154 if(i2==i1)continue;
23155 aftsTrack=anEvent->GetTrack(i2);
23156 if(!(aftsTrack->InRPSelection())) continue;
23157 phi2=aftsTrack->Phi();
23158 if(fUsePhiWeights && fPhiWeights) wPhi2 = fPhiWeights->GetBinContent(1+(Int_t)(TMath::Floor(phi2*fnBinsPhi/TMath::TwoPi())));
23159 for(Int_t i3=0;i3<nPrim;i3++)
23161 if(i3==i1||i3==i2)continue;
23162 aftsTrack=anEvent->GetTrack(i3);
23163 if(!(aftsTrack->InRPSelection())) continue;
23164 phi3=aftsTrack->Phi();
23165 if(fUsePhiWeights && fPhiWeights) wPhi3 = fPhiWeights->GetBinContent(1+(Int_t)(TMath::Floor(phi3*fnBinsPhi/TMath::TwoPi())));
23166 for(Int_t i4=0;i4<nPrim;i4++)
23168 if(i4==i1||i4==i2||i4==i3)continue;
23169 aftsTrack=anEvent->GetTrack(i4);
23170 if(!(aftsTrack->InRPSelection())) continue;
23171 phi4=aftsTrack->Phi();
23172 if(fUsePhiWeights && fPhiWeights) wPhi4 = fPhiWeights->GetBinContent(1+(Int_t)(TMath::Floor(phi4*fnBinsPhi/TMath::TwoPi())));
23173 if(nPrim>=4) cout<<i1<<" "<<i2<<" "<<i3<<" "<<i4<<"\r"<<flush; // to be improved (replace eventually this if statement with if(nPrim==4))
23174 // 4-p correlations using particle weights:
23175 if(fUsePhiWeights) fIntFlowDirectCorrelations->Fill(10.5,cos(n*phi1+n*phi2-n*phi3-n*phi4),wPhi1*wPhi2*wPhi3*wPhi4);
23176 // extra correlations:
23177 // 2-p extra correlations (do not appear if particle weights are not used):
23179 // 3-p extra correlations (do not appear if particle weights are not used):
23181 // 4-p extra correlations (do not appear if particle weights are not used):
23183 } // end of for(Int_t i4=0;i4<nPrim;i4++)
23184 } // end of for(Int_t i3=0;i3<nPrim;i3++)
23185 } // end of for(Int_t i2=0;i2<nPrim;i2++)
23186 } // end of for(Int_t i1=0;i1<nPrim;i1++)
23187 } // end of if(nPrim>=4)
23193 } // end of void AliFlowAnalysisWithQCumulants::EvaluateIntFlowCorrectionsForNUAWithNestedLoopsUsingParticleWeights(AliFlowEventSimple* anEvent)
23195 //=======================================================================================================================
23197 void AliFlowAnalysisWithQCumulants::CalculateDiffFlowCorrectionsForNUACosTermsUsingParticleWeights(TString type, TString ptOrEta)
23199 // Calculate correction terms for non-uniform acceptance for differential flow (cos terms) using particle weights.
23201 // Results are stored in fDiffFlowCorrectionTermsForNUAPro[t][pe][1][cti], where cti runs as follows:
23203 // 0: <<cos n(psi)>>
23204 // 1: <<w2 cos n(psi1+phi2)>>
23205 // 2: <<w2 w3 cos n(psi1+phi2-phi3)>>
23206 // 3: <<w2 w3 cos n(psi1-phi2-phi3)>>
23211 // real and imaginary parts of weighted Q-vectors evaluated in harmonics n, 2n, 3n and 4n:
23212 Double_t dReQ1n1k = (*fReQ)(0,1);
23213 Double_t dReQ2n2k = (*fReQ)(1,2);
23214 //Double_t dReQ1n3k = (*fReQ)(0,3);
23215 //Double_t dReQ4n4k = (*fReQ)(3,4);
23216 Double_t dImQ1n1k = (*fImQ)(0,1);
23217 Double_t dImQ2n2k = (*fImQ)(1,2);
23218 //Double_t dImQ1n3k = (*fImQ)(0,3);
23219 //Double_t dImQ4n4k = (*fImQ)(3,4);
23221 // S^M_{p,k} (see .h file for the definition of fSpk):
23222 Double_t dSM1p1k = (*fSpk)(0,1);
23223 Double_t dSM1p2k = (*fSpk)(0,2);
23224 Double_t dSM2p1k = (*fSpk)(1,1);
23226 Int_t t = 0; // type flag
23227 Int_t pe = 0; // ptEta flag
23232 } else if(type == "POI")
23237 if(ptOrEta == "Pt")
23240 } else if(ptOrEta == "Eta")
23245 Int_t nBinsPtEta[2] = {fnBinsPt,fnBinsEta};
23246 Double_t minPtEta[2] = {fPtMin,fEtaMin};
23247 //Double_t maxPtEta[2] = {fPtMax,fEtaMax};
23248 Double_t binWidthPtEta[2] = {fPtBinWidth,fEtaBinWidth};
23250 // looping over all bins and calculating correction terms:
23251 for(Int_t b=1;b<=nBinsPtEta[pe];b++)
23253 // real and imaginary parts of p_{m*n,0} (non-weighted Q-vector evaluated for POIs in particular pt or eta bin):
23254 Double_t p1n0kRe = 0.;
23255 Double_t p1n0kIm = 0.;
23257 // number of POIs in particular pt or eta bin:
23260 // real and imaginary parts of q_{m*n,0} (weighted Q-vector evaluated for particles which are both RPs and POIs in particular pt or eta bin):
23261 Double_t q1n2kRe = 0.;
23262 //Double_t q1n2kIm = 0.;
23263 Double_t q2n1kRe = 0.;
23264 Double_t q2n1kIm = 0.;
23266 // s_{1,1}, s_{1,2} // to be improved (add explanation)
23267 Double_t s1p1k = 0.;
23268 Double_t s1p2k = 0.;
23270 // number of particles which are both RPs and POIs in particular pt or eta bin:
23271 //Double_t mq = 0.;
23273 // M0111 from Eq. (118) in QC2c (to be improved (notation))
23274 Double_t dM01 = 0.;
23275 Double_t dM011 = 0.;
23280 q1n2kRe = fReRPQ1dEBE[2][pe][0][2]->GetBinContent(fReRPQ1dEBE[2][pe][0][2]->GetBin(b))
23281 * fReRPQ1dEBE[2][pe][0][2]->GetBinEntries(fReRPQ1dEBE[2][pe][0][2]->GetBin(b));
23282 //q1n2kIm = fImRPQ1dEBE[2][pe][0][2]->GetBinContent(fImRPQ1dEBE[2][pe][0][2]->GetBin(b))
23283 // * fImRPQ1dEBE[2][pe][0][2]->GetBinEntries(fImRPQ1dEBE[2][pe][0][2]->GetBin(b));
23284 q2n1kRe = fReRPQ1dEBE[2][pe][1][1]->GetBinContent(fReRPQ1dEBE[2][pe][1][1]->GetBin(b))
23285 * fReRPQ1dEBE[2][pe][1][1]->GetBinEntries(fReRPQ1dEBE[2][pe][1][1]->GetBin(b));
23286 q2n1kIm = fImRPQ1dEBE[2][pe][1][1]->GetBinContent(fImRPQ1dEBE[2][pe][1][1]->GetBin(b))
23287 * fImRPQ1dEBE[2][pe][1][1]->GetBinEntries(fImRPQ1dEBE[2][pe][1][1]->GetBin(b));
23288 //mq = fReRPQ1dEBE[2][pe][1][1]->GetBinEntries(fReRPQ1dEBE[2][pe][1][1]->GetBin(b)); // to be improved (cross-checked by accessing other profiles here)
23290 s1p1k = pow(fs1dEBE[2][pe][1]->GetBinContent(b)*fs1dEBE[2][pe][1]->GetBinEntries(b),1.);
23291 s1p2k = pow(fs1dEBE[2][pe][2]->GetBinContent(b)*fs1dEBE[2][pe][2]->GetBinEntries(b),1.);
23292 }else if(type == "RP")
23294 // q_{m*n,k}: (Remark: m=1 is 0, k=0 iz zero (to be improved!))
23295 q1n2kRe = fReRPQ1dEBE[0][pe][0][2]->GetBinContent(fReRPQ1dEBE[0][pe][0][2]->GetBin(b))
23296 * fReRPQ1dEBE[0][pe][0][2]->GetBinEntries(fReRPQ1dEBE[0][pe][0][2]->GetBin(b));
23297 //q1n2kIm = fImRPQ1dEBE[0][pe][0][2]->GetBinContent(fImRPQ1dEBE[0][pe][0][2]->GetBin(b))
23298 // * fImRPQ1dEBE[0][pe][0][2]->GetBinEntries(fImRPQ1dEBE[0][pe][0][2]->GetBin(b));
23299 q2n1kRe = fReRPQ1dEBE[0][pe][1][1]->GetBinContent(fReRPQ1dEBE[0][pe][1][1]->GetBin(b))
23300 * fReRPQ1dEBE[0][pe][1][1]->GetBinEntries(fReRPQ1dEBE[0][pe][1][1]->GetBin(b));
23301 q2n1kIm = fImRPQ1dEBE[0][pe][1][1]->GetBinContent(fImRPQ1dEBE[0][pe][1][1]->GetBin(b))
23302 * fImRPQ1dEBE[0][pe][1][1]->GetBinEntries(fImRPQ1dEBE[0][pe][1][1]->GetBin(b));
23303 // s_{1,1}, s_{1,2} and s_{1,3} // to be improved (add explanation)
23304 s1p1k = pow(fs1dEBE[0][pe][1]->GetBinContent(b)*fs1dEBE[0][pe][1]->GetBinEntries(b),1.);
23305 s1p2k = pow(fs1dEBE[0][pe][2]->GetBinContent(b)*fs1dEBE[0][pe][2]->GetBinEntries(b),1.);
23306 //s1p3k = pow(fs1dEBE[0][pe][3]->GetBinContent(b)*fs1dEBE[0][pe][3]->GetBinEntries(b),1.);
23308 //mq = fReRPQ1dEBE[0][pe][1][1]->GetBinEntries(fReRPQ1dEBE[0][pe][1][1]->GetBin(b)); // to be improved (cross-checked by accessing other profiles here)
23314 p1n0kRe = fReRPQ1dEBE[1][pe][0][0]->GetBinContent(fReRPQ1dEBE[1][pe][0][0]->GetBin(b))
23315 * fReRPQ1dEBE[1][pe][0][0]->GetBinEntries(fReRPQ1dEBE[1][pe][0][0]->GetBin(b));
23316 p1n0kIm = fImRPQ1dEBE[1][pe][0][0]->GetBinContent(fImRPQ1dEBE[1][pe][0][0]->GetBin(b))
23317 * fImRPQ1dEBE[1][pe][0][0]->GetBinEntries(fImRPQ1dEBE[1][pe][0][0]->GetBin(b));
23318 mp = fReRPQ1dEBE[1][pe][0][0]->GetBinEntries(fReRPQ1dEBE[1][pe][0][0]->GetBin(b)); // to be improved (cross-checked by accessing other profiles here)
23319 // M01 from Eq. (118) in QC2c (to be improved (notation)):
23320 dM01 = mp*dSM1p1k-s1p1k;
23321 dM011 = mp*(dSM2p1k-dSM1p2k)
23322 - 2.*(s1p1k*dSM1p1k-s1p2k);
23324 // typeFlag = RP (0) or POI (1):
23326 } else if(type == "RP")
23328 // to be improved (cross-checked):
23329 p1n0kRe = fReRPQ1dEBE[0][pe][0][0]->GetBinContent(fReRPQ1dEBE[0][pe][0][0]->GetBin(b))
23330 * fReRPQ1dEBE[0][pe][0][0]->GetBinEntries(fReRPQ1dEBE[0][pe][0][0]->GetBin(b));
23331 p1n0kIm = fImRPQ1dEBE[0][pe][0][0]->GetBinContent(fImRPQ1dEBE[0][pe][0][0]->GetBin(b))
23332 * fImRPQ1dEBE[0][pe][0][0]->GetBinEntries(fImRPQ1dEBE[0][pe][0][0]->GetBin(b));
23333 mp = fReRPQ1dEBE[0][pe][0][0]->GetBinEntries(fReRPQ1dEBE[0][pe][0][0]->GetBin(b)); // to be improved (cross-checked by accessing other profiles here)
23334 // M01 from Eq. (118) in QC2c (to be improved (notation)):
23335 dM01 = mp*dSM1p1k-s1p1k;
23336 dM011 = mp*(dSM2p1k-dSM1p2k)
23337 - 2.*(s1p1k*dSM1p1k-s1p2k);
23338 // typeFlag = RP (0) or POI (1):
23342 // <<cos n(psi1)>>:
23343 Double_t cosP1nPsi = 0.;
23346 cosP1nPsi = p1n0kRe/mp;
23348 // fill profile for <<cos n(psi1)>>:
23349 fDiffFlowCorrectionTermsForNUAPro[t][pe][1][0]->Fill(minPtEta[pe]+(b-1)*binWidthPtEta[pe],cosP1nPsi,mp);
23350 // histogram to store <cos n(psi1)> e-b-e (needed in some other methods):
23351 fDiffFlowCorrectionTermsForNUAEBE[t][pe][1][0]->SetBinContent(b,cosP1nPsi);
23354 // <<w2 cos n(psi1+phi2)>>:
23355 Double_t cosP1nPsiP1nPhiW2 = 0.;
23358 cosP1nPsiP1nPhiW2 = (p1n0kRe*dReQ1n1k-p1n0kIm*dImQ1n1k-q2n1kRe)/(dM01);
23359 // fill profile for <<w2 cos n(psi1+phi2)>>:
23360 fDiffFlowCorrectionTermsForNUAPro[t][pe][1][1]->Fill(minPtEta[pe]+(b-1)*binWidthPtEta[pe],cosP1nPsiP1nPhiW2,dM01);
23361 // histogram to store <w2 cos n(psi1+phi2)> e-b-e (needed in some other methods):
23362 fDiffFlowCorrectionTermsForNUAEBE[t][pe][1][1]->SetBinContent(b,cosP1nPsiP1nPhiW2);
23363 } // end of if(dM01)
23365 // <<w2 w3 cos n(psi1+phi2-phi3)>>:
23366 Double_t cosP1nPsi1P1nPhi2MPhi3W2W3 = 0.;
23369 cosP1nPsi1P1nPhi2MPhi3W2W3 = (p1n0kRe*(pow(dImQ1n1k,2.)+pow(dReQ1n1k,2.))
23371 - q2n1kRe*dReQ1n1k-q2n1kIm*dImQ1n1k
23375 // fill profile for <<w1 w2 w3 cos n(psi1+phi2)>>:
23376 fDiffFlowCorrectionTermsForNUAPro[t][pe][1][2]->Fill(minPtEta[pe]+(b-1)*binWidthPtEta[pe],cosP1nPsi1P1nPhi2MPhi3W2W3,dM011);
23377 // histogram to store <w1 w2 w3 cos n(psi1+phi2)> e-b-e (needed in some other methods):
23378 fDiffFlowCorrectionTermsForNUAEBE[t][pe][1][2]->SetBinContent(b,cosP1nPsi1P1nPhi2MPhi3W2W3);
23379 } // end of if(dM011)
23381 // <<w2 w3 cos n(psi1-phi2-phi3)>>:
23382 Double_t cosP1nPsi1M1nPhi2MPhi3W2W3 = 0.;
23385 cosP1nPsi1M1nPhi2MPhi3W2W3 = (p1n0kRe*(pow(dReQ1n1k,2.)-pow(dImQ1n1k,2.))+2.*p1n0kIm*dReQ1n1k*dImQ1n1k
23386 - 1.*(p1n0kRe*dReQ2n2k+p1n0kIm*dImQ2n2k)
23387 - 2.*s1p1k*dReQ1n1k
23390 // fill profile for <<w1 w2 w3 cos n(psi1+phi2)>>:
23391 fDiffFlowCorrectionTermsForNUAPro[t][pe][1][3]->Fill(minPtEta[pe]+(b-1)*binWidthPtEta[pe],cosP1nPsi1M1nPhi2MPhi3W2W3,dM011);
23392 // histogram to store <w1 w2 w3 cos n(psi1+phi2)> e-b-e (needed in some other methods):
23393 fDiffFlowCorrectionTermsForNUAEBE[t][pe][1][3]->SetBinContent(b,cosP1nPsi1M1nPhi2MPhi3W2W3);
23394 } // end of if(dM011)
23396 } // end of for(Int_t b=1;b<=nBinsPtEta[pe];b++)
23398 } // end of AliFlowAnalysisWithQCumulants::CalculateDiffFlowCorrectionsForNUACosTermsUsingParticleWeights(TString type, TString ptOrEta)
23401 //=======================================================================================================================
23404 void AliFlowAnalysisWithQCumulants::CalculateDiffFlowCorrectionsForNUASinTermsUsingParticleWeights(TString type, TString ptOrEta)
23406 // Calculate correction terms for non-uniform acceptance for differential flow (sin terms).
23408 // Results are stored in fDiffFlowCorrectionTermsForNUAPro[t][pe][0][cti], where cti runs as follows:
23409 // 0: <<sin n(psi1)>>
23410 // 1: <<w2 sin n(psi1+phi2)>>
23411 // 2: <<w2 w3 sin n(psi1+phi2-phi3)>>
23412 // 3: <<w2 w3 sin n(psi1-phi2-phi3)>>:
23417 // real and imaginary parts of weighted Q-vectors evaluated in harmonics n, 2n, 3n and 4n:
23418 Double_t dReQ1n1k = (*fReQ)(0,1);
23419 Double_t dReQ2n2k = (*fReQ)(1,2);
23420 //Double_t dReQ1n3k = (*fReQ)(0,3);
23421 //Double_t dReQ4n4k = (*fReQ)(3,4);
23422 Double_t dImQ1n1k = (*fImQ)(0,1);
23423 Double_t dImQ2n2k = (*fImQ)(1,2);
23424 //Double_t dImQ1n3k = (*fImQ)(0,3);
23425 //Double_t dImQ4n4k = (*fImQ)(3,4);
23427 // S^M_{p,k} (see .h file for the definition of fSpk):
23428 Double_t dSM1p1k = (*fSpk)(0,1);
23429 Double_t dSM1p2k = (*fSpk)(0,2);
23430 Double_t dSM2p1k = (*fSpk)(1,1);
23432 Int_t t = 0; // type flag
23433 Int_t pe = 0; // ptEta flag
23438 } else if(type == "POI")
23443 if(ptOrEta == "Pt")
23446 } else if(ptOrEta == "Eta")
23451 Int_t nBinsPtEta[2] = {fnBinsPt,fnBinsEta};
23452 Double_t minPtEta[2] = {fPtMin,fEtaMin};
23453 //Double_t maxPtEta[2] = {fPtMax,fEtaMax};
23454 Double_t binWidthPtEta[2] = {fPtBinWidth,fEtaBinWidth};
23456 // looping over all bins and calculating correction terms:
23457 for(Int_t b=1;b<=nBinsPtEta[pe];b++)
23459 // real and imaginary parts of p_{m*n,0} (non-weighted Q-vector evaluated for POIs in particular pt or eta bin):
23460 Double_t p1n0kRe = 0.;
23461 Double_t p1n0kIm = 0.;
23463 // number of POIs in particular pt or eta bin:
23466 // real and imaginary parts of q_{m*n,0} (weighted Q-vector evaluated for particles which are both RPs and POIs in particular pt or eta bin):
23467 //Double_t q1n2kRe = 0.;
23468 Double_t q1n2kIm = 0.;
23469 Double_t q2n1kRe = 0.;
23470 Double_t q2n1kIm = 0.;
23472 // s_{1,1}, s_{1,2} and s_{1,3} // to be improved (add explanation)
23473 Double_t s1p1k = 0.;
23474 Double_t s1p2k = 0.;
23476 // number of particles which are both RPs and POIs in particular pt or eta bin:
23477 //Double_t mq = 0.;
23479 // M0111 from Eq. (118) in QC2c (to be improved (notation))
23480 Double_t dM01 = 0.;
23481 Double_t dM011 = 0.;
23486 //q1n2kRe = fReRPQ1dEBE[2][pe][0][2]->GetBinContent(fReRPQ1dEBE[2][pe][0][2]->GetBin(b))
23487 // * fReRPQ1dEBE[2][pe][0][2]->GetBinEntries(fReRPQ1dEBE[2][pe][0][2]->GetBin(b));
23488 q1n2kIm = fImRPQ1dEBE[2][pe][0][2]->GetBinContent(fImRPQ1dEBE[2][pe][0][2]->GetBin(b))
23489 * fImRPQ1dEBE[2][pe][0][2]->GetBinEntries(fImRPQ1dEBE[2][pe][0][2]->GetBin(b));
23490 q2n1kRe = fReRPQ1dEBE[2][pe][1][1]->GetBinContent(fReRPQ1dEBE[2][pe][1][1]->GetBin(b))
23491 * fReRPQ1dEBE[2][pe][1][1]->GetBinEntries(fReRPQ1dEBE[2][pe][1][1]->GetBin(b));
23492 q2n1kIm = fImRPQ1dEBE[2][pe][1][1]->GetBinContent(fImRPQ1dEBE[2][pe][1][1]->GetBin(b))
23493 * fImRPQ1dEBE[2][pe][1][1]->GetBinEntries(fImRPQ1dEBE[2][pe][1][1]->GetBin(b));
23494 //mq = fReRPQ1dEBE[2][pe][0][0]->GetBinEntries(fReRPQ1dEBE[2][pe][0][0]->GetBin(b)); // to be improved (cross-checked by accessing other profiles here)
23496 s1p1k = pow(fs1dEBE[2][pe][1]->GetBinContent(b)*fs1dEBE[2][pe][1]->GetBinEntries(b),1.);
23497 s1p2k = pow(fs1dEBE[2][pe][2]->GetBinContent(b)*fs1dEBE[2][pe][2]->GetBinEntries(b),1.);
23498 }else if(type == "RP")
23500 // q_{m*n,k}: (Remark: m=1 is 0, k=0 iz zero (to be improved!))
23501 //q1n2kRe = fReRPQ1dEBE[0][pe][0][2]->GetBinContent(fReRPQ1dEBE[0][pe][0][2]->GetBin(b))
23502 // * fReRPQ1dEBE[0][pe][0][2]->GetBinEntries(fReRPQ1dEBE[0][pe][0][2]->GetBin(b));
23503 q1n2kIm = fImRPQ1dEBE[0][pe][0][2]->GetBinContent(fImRPQ1dEBE[0][pe][0][2]->GetBin(b))
23504 * fImRPQ1dEBE[0][pe][0][2]->GetBinEntries(fImRPQ1dEBE[0][pe][0][2]->GetBin(b));
23505 q2n1kRe = fReRPQ1dEBE[0][pe][1][1]->GetBinContent(fReRPQ1dEBE[0][pe][1][1]->GetBin(b))
23506 * fReRPQ1dEBE[0][pe][1][1]->GetBinEntries(fReRPQ1dEBE[0][pe][1][1]->GetBin(b));
23507 q2n1kIm = fImRPQ1dEBE[0][pe][1][1]->GetBinContent(fImRPQ1dEBE[0][pe][1][1]->GetBin(b))
23508 * fImRPQ1dEBE[0][pe][1][1]->GetBinEntries(fImRPQ1dEBE[0][pe][1][1]->GetBin(b));
23509 // s_{1,1}, s_{1,2} and s_{1,3} // to be improved (add explanation)
23510 s1p1k = pow(fs1dEBE[0][pe][1]->GetBinContent(b)*fs1dEBE[0][pe][1]->GetBinEntries(b),1.);
23511 s1p2k = pow(fs1dEBE[0][pe][2]->GetBinContent(b)*fs1dEBE[0][pe][2]->GetBinEntries(b),1.);
23512 //s1p3k = pow(fs1dEBE[0][pe][3]->GetBinContent(b)*fs1dEBE[0][pe][3]->GetBinEntries(b),1.);
23518 p1n0kRe = fReRPQ1dEBE[1][pe][0][0]->GetBinContent(fReRPQ1dEBE[1][pe][0][0]->GetBin(b))
23519 * fReRPQ1dEBE[1][pe][0][0]->GetBinEntries(fReRPQ1dEBE[1][pe][0][0]->GetBin(b));
23520 p1n0kIm = fImRPQ1dEBE[1][pe][0][0]->GetBinContent(fImRPQ1dEBE[1][pe][0][0]->GetBin(b))
23521 * fImRPQ1dEBE[1][pe][0][0]->GetBinEntries(fImRPQ1dEBE[1][pe][0][0]->GetBin(b));
23522 mp = fReRPQ1dEBE[1][pe][0][0]->GetBinEntries(fReRPQ1dEBE[1][pe][0][0]->GetBin(b)); // to be improved (cross-checked by accessing other profiles here)
23523 // M01 from Eq. (118) in QC2c (to be improved (notation)):
23524 dM01 = mp*dSM1p1k-s1p1k;
23525 dM011 = mp*(dSM2p1k-dSM1p2k)
23526 - 2.*(s1p1k*dSM1p1k-s1p2k);
23527 // typeFlag = RP (0) or POI (1):
23529 } else if(type == "RP")
23531 // to be improved (cross-checked):
23532 p1n0kRe = fReRPQ1dEBE[0][pe][0][0]->GetBinContent(fReRPQ1dEBE[0][pe][0][0]->GetBin(b))
23533 * fReRPQ1dEBE[0][pe][0][0]->GetBinEntries(fReRPQ1dEBE[0][pe][0][0]->GetBin(b));
23534 p1n0kIm = fImRPQ1dEBE[0][pe][0][0]->GetBinContent(fImRPQ1dEBE[0][pe][0][0]->GetBin(b))
23535 * fImRPQ1dEBE[0][pe][0][0]->GetBinEntries(fImRPQ1dEBE[0][pe][0][0]->GetBin(b));
23536 mp = fReRPQ1dEBE[0][pe][0][0]->GetBinEntries(fReRPQ1dEBE[0][pe][0][0]->GetBin(b)); // to be improved (cross-checked by accessing other profiles here)
23537 // M01 from Eq. (118) in QC2c (to be improved (notation)):
23538 dM01 = mp*dSM1p1k-s1p1k;
23539 dM011 = mp*(dSM2p1k-dSM1p2k)
23540 - 2.*(s1p1k*dSM1p1k-s1p2k);
23541 // typeFlag = RP (0) or POI (1):
23545 // <<sin n(psi1)>>:
23546 Double_t sinP1nPsi = 0.;
23549 sinP1nPsi = p1n0kIm/mp;
23551 // fill profile for <<sin n(psi1)>>:
23552 fDiffFlowCorrectionTermsForNUAPro[t][pe][0][0]->Fill(minPtEta[pe]+(b-1)*binWidthPtEta[pe],sinP1nPsi,mp);
23553 // histogram to store <sin n(psi1)> e-b-e (needed in some other methods):
23554 fDiffFlowCorrectionTermsForNUAEBE[t][pe][0][0]->SetBinContent(b,sinP1nPsi);
23557 // <<w2 sin n(psi1+phi2)>>:
23558 Double_t sinP1nPsiP1nPhiW2 = 0.;
23561 sinP1nPsiP1nPhiW2 = (p1n0kRe*dImQ1n1k+p1n0kIm*dReQ1n1k-q2n1kIm)/(dM01);
23562 // fill profile for <<w2 sin n(psi1+phi2)>>:
23563 fDiffFlowCorrectionTermsForNUAPro[t][pe][0][1]->Fill(minPtEta[pe]+(b-1)*binWidthPtEta[pe],sinP1nPsiP1nPhiW2,dM01);
23564 // histogram to store <w2 sin n(psi1+phi2)> e-b-e (needed in some other methods):
23565 fDiffFlowCorrectionTermsForNUAEBE[t][pe][0][1]->SetBinContent(b,sinP1nPsiP1nPhiW2);
23566 } // end of if(mp*dMult-mq)
23568 // <<w2 w3 sin n(psi1+phi2-phi3)>>:
23569 Double_t sinP1nPsi1P1nPhi2MPhi3W2W3 = 0.;
23572 sinP1nPsi1P1nPhi2MPhi3W2W3 = (p1n0kIm*(pow(dImQ1n1k,2.)+pow(dReQ1n1k,2.))
23574 + q2n1kRe*dImQ1n1k-q2n1kIm*dReQ1n1k
23578 // fill profile for <<w2 w3 sin n(psi1+phi2-phi3)>>:
23579 fDiffFlowCorrectionTermsForNUAPro[t][pe][0][2]->Fill(minPtEta[pe]+(b-1)*binWidthPtEta[pe],sinP1nPsi1P1nPhi2MPhi3W2W3,dM011);
23580 // histogram to store <w2 w3 sin n(psi1+phi2-phi3)> e-b-e (needed in some other methods):
23581 fDiffFlowCorrectionTermsForNUAEBE[t][pe][0][2]->SetBinContent(b,sinP1nPsi1P1nPhi2MPhi3W2W3);
23582 } // end of if(dM011)
23584 // <<w2 w3 sin n(psi1-phi2-phi3)>>:
23585 Double_t sinP1nPsi1M1nPhi2MPhi3W2W3 = 0.;
23588 sinP1nPsi1M1nPhi2MPhi3W2W3 = (p1n0kIm*(pow(dReQ1n1k,2.)-pow(dImQ1n1k,2.))-2.*p1n0kRe*dReQ1n1k*dImQ1n1k
23589 + 1.*(p1n0kRe*dImQ2n2k-p1n0kIm*dReQ2n2k)
23590 + 2.*s1p1k*dImQ1n1k
23593 // fill profile for <<w2 w3 sin n(psi1-phi2-phi3)>>:
23594 fDiffFlowCorrectionTermsForNUAPro[t][pe][0][3]->Fill(minPtEta[pe]+(b-1)*binWidthPtEta[pe],sinP1nPsi1M1nPhi2MPhi3W2W3,dM011);
23595 // histogram to store <w2 w3 sin n(psi1-phi2-phi3)> e-b-e (needed in some other methods):
23596 fDiffFlowCorrectionTermsForNUAEBE[t][pe][0][3]->SetBinContent(b,sinP1nPsi1M1nPhi2MPhi3W2W3);
23597 } // end of if(dM011)
23599 } // end of for(Int_t b=1;b<=nBinsPtEta[pe];b++)
23601 } // end of AliFlowAnalysisWithQCumulants::CalculateDiffFlowCorrectionsForNUASinTermsUsingParticleWeights(TString type, TString ptOrEta)
23603 //=======================================================================================================================
23605 void AliFlowAnalysisWithQCumulants::EvaluateDiffFlowCorrectionTermsForNUAWithNestedLoopsUsingParticleWeights(AliFlowEventSimple * const anEvent, TString type, TString ptOrEta)
23607 // Evaluate with nested loops correction terms for non-uniform acceptance
23608 // with using particle weights (both sin and cos terms) relevant for differential flow.
23610 // Remark 1: "w1" in expressions bellow is a particle weight used only for particles which were
23611 // flagged both as POI and RP.
23612 // Remark 2: Reduced correction terms for non-uniform acceptance are evaluated in pt bin number fCrossCheckInPtBinNo
23613 // and eta bin number fCrossCheckInEtaBinNo both for RPs and POIs.
23614 // Remark 3: Results are stored in 1 bin profiles fDiffFlowDirectCorrections[t][pe][sc][cti], where first three indices runs as:
23615 // [0=RP,1=POI][0=Pt,1=Eta][0=sin terms,1=cos terms], whilst the cti (correction term index) runs as follows:
23617 // 0: <<sc n(psi1)>>
23618 // 1: <<w2 sc n(psi1+phi2)>>
23619 // 2: <<w2 w3 sc n(psi1+phi2-phi3)>>
23620 // 3: <<w2 w3 sc n(psi1-phi2-phi3)>>
23625 Int_t typeFlag = 0;
23626 Int_t ptEtaFlag = 0;
23630 } else if(type == "POI")
23634 if(ptOrEta == "Pt")
23637 } else if(ptOrEta == "Eta")
23642 Int_t t = typeFlag;
23643 Int_t pe = ptEtaFlag;
23645 Double_t lowerPtEtaEdge[2] = {fPtMin+(fCrossCheckInPtBinNo-1)*fPtBinWidth,fEtaMin+(fCrossCheckInEtaBinNo-1)*fEtaBinWidth};
23646 Double_t upperPtEtaEdge[2] = {fPtMin+fCrossCheckInPtBinNo*fPtBinWidth,fEtaMin+fCrossCheckInEtaBinNo*fEtaBinWidth};
23647 Double_t binWidthPtEta[2] = {fPtBinWidth,fEtaBinWidth};
23649 Int_t nPrim = anEvent->NumberOfTracks();
23650 AliFlowTrackSimple *aftsTrack = NULL;
23652 Double_t psi1=0., phi2=0., phi3=0.;// phi4=0.;// phi5=0., phi6=0., phi7=0., phi8=0.;
23653 Double_t wPhi2=1., wPhi3=1.;
23655 Int_t n = fHarmonic;
23657 // 1'-particle correction terms:
23658 for(Int_t i1=0;i1<nPrim;i1++)
23660 aftsTrack=anEvent->GetTrack(i1);
23661 // POI condition (first particle in the correlator must be POI): // to be improved (this can be implemented much better)
23662 if(typeFlag==1) // this is diff flow of POIs
23664 if(ptOrEta == "Pt")
23666 if(!((aftsTrack->Pt()>=lowerPtEtaEdge[pe] && aftsTrack->Pt()<upperPtEtaEdge[pe]) && (aftsTrack->InPOISelection())))continue;
23667 } else if (ptOrEta == "Eta")
23669 if(!((aftsTrack->Eta()>=lowerPtEtaEdge[pe] && aftsTrack->Eta()<upperPtEtaEdge[pe]) && (aftsTrack->InPOISelection())))continue;
23671 } else // this is diff flow of RPs
23673 if(ptOrEta == "Pt")
23675 if(!((aftsTrack->Pt()>=lowerPtEtaEdge[pe] && aftsTrack->Pt()<upperPtEtaEdge[pe]) && (aftsTrack->InRPSelection())))continue;
23676 } else if (ptOrEta == "Eta")
23678 if(!((aftsTrack->Eta()>=lowerPtEtaEdge[pe] && aftsTrack->Eta()<upperPtEtaEdge[pe]) && (aftsTrack->InRPSelection())))continue;
23681 psi1=aftsTrack->Phi();
23683 fDiffFlowDirectCorrectionTermsForNUA[t][pe][0][0]->Fill(lowerPtEtaEdge[pe]+binWidthPtEta[pe]/2.,sin(n*psi1),1.); // <<sin(n*(psi1))>>
23685 fDiffFlowDirectCorrectionTermsForNUA[t][pe][1][0]->Fill(lowerPtEtaEdge[pe]+binWidthPtEta[pe]/2.,cos(n*psi1),1.); // <<cos(n*(psi1))>>
23686 }//end of for(Int_t i1=0;i1<nPrim;i1++)
23688 // 2'-particle correction terms:
23689 for(Int_t i1=0;i1<nPrim;i1++)
23691 aftsTrack=anEvent->GetTrack(i1);
23692 // POI condition (first particle in the correlator must be POI): // to be improved (this can be implemented much better)
23693 if(typeFlag==1) // this is diff flow of POIs
23695 if(ptOrEta == "Pt")
23697 if(!((aftsTrack->Pt()>=lowerPtEtaEdge[pe] && aftsTrack->Pt()<upperPtEtaEdge[pe]) && (aftsTrack->InPOISelection())))continue;
23698 } else if (ptOrEta == "Eta")
23700 if(!((aftsTrack->Eta()>=lowerPtEtaEdge[pe] && aftsTrack->Eta()<upperPtEtaEdge[pe]) && (aftsTrack->InPOISelection())))continue;
23702 } else // this is diff flow of RPs
23704 if(ptOrEta == "Pt")
23706 if(!((aftsTrack->Pt()>=lowerPtEtaEdge[pe] && aftsTrack->Pt()<upperPtEtaEdge[pe]) && (aftsTrack->InRPSelection())))continue;
23707 } else if (ptOrEta == "Eta")
23709 if(!((aftsTrack->Eta()>=lowerPtEtaEdge[pe] && aftsTrack->Eta()<upperPtEtaEdge[pe]) && (aftsTrack->InRPSelection())))continue;
23712 psi1=aftsTrack->Phi();
23713 for(Int_t i2=0;i2<nPrim;i2++)
23715 if(i2==i1) continue;
23716 aftsTrack=anEvent->GetTrack(i2);
23717 // RP condition (!(first) particle in the correlator must be RP):
23718 if(!(aftsTrack->InRPSelection())) continue;
23719 phi2=aftsTrack->Phi();
23720 if(fUsePhiWeights && fPhiWeights) wPhi2 = fPhiWeights->GetBinContent(1+(Int_t)(TMath::Floor(phi2*fnBinsPhi/TMath::TwoPi())));
23722 fDiffFlowDirectCorrectionTermsForNUA[t][pe][0][1]->Fill(lowerPtEtaEdge[pe]+binWidthPtEta[pe]/2.,sin(n*(psi1+phi2)),wPhi2); // <<w2 sin(n*(psi1+phi2))>>
23724 fDiffFlowDirectCorrectionTermsForNUA[t][pe][1][1]->Fill(lowerPtEtaEdge[pe]+binWidthPtEta[pe]/2.,cos(n*(psi1+phi2)),wPhi2); // <<w2 cos(n*(psi1+phi2))>>
23725 }//end of for(Int_t i2=0;i2<nPrim;i2++)
23726 }//end of for(Int_t i1=0;i1<nPrim;i1++)
23728 // 3'-particle correction terms:
23729 for(Int_t i1=0;i1<nPrim;i1++)
23731 aftsTrack=anEvent->GetTrack(i1);
23732 // POI condition (first particle in the correlator must be POI): // to be improved (this can be implemented much better)
23733 if(typeFlag==1) // this is diff flow of POIs
23735 if(ptOrEta == "Pt")
23737 if(!((aftsTrack->Pt()>=lowerPtEtaEdge[pe] && aftsTrack->Pt()<upperPtEtaEdge[pe]) && (aftsTrack->InPOISelection())))continue;
23738 } else if (ptOrEta == "Eta")
23740 if(!((aftsTrack->Eta()>=lowerPtEtaEdge[pe] && aftsTrack->Eta()<upperPtEtaEdge[pe]) && (aftsTrack->InPOISelection())))continue;
23742 } else // this is diff flow of RPs
23744 if(ptOrEta == "Pt")
23746 if(!((aftsTrack->Pt()>=lowerPtEtaEdge[pe] && aftsTrack->Pt()<upperPtEtaEdge[pe]) && (aftsTrack->InRPSelection())))continue;
23747 } else if (ptOrEta == "Eta")
23749 if(!((aftsTrack->Eta()>=lowerPtEtaEdge[pe] && aftsTrack->Eta()<upperPtEtaEdge[pe]) && (aftsTrack->InRPSelection())))continue;
23752 psi1=aftsTrack->Phi();
23753 for(Int_t i2=0;i2<nPrim;i2++)
23755 if(i2==i1) continue;
23756 aftsTrack=anEvent->GetTrack(i2);
23757 // RP condition (!(first) particle in the correlator must be RP):
23758 if(!(aftsTrack->InRPSelection())) continue;
23759 phi2=aftsTrack->Phi();
23760 if(fUsePhiWeights && fPhiWeights) wPhi2 = fPhiWeights->GetBinContent(1+(Int_t)(TMath::Floor(phi2*fnBinsPhi/TMath::TwoPi())));
23761 for(Int_t i3=0;i3<nPrim;i3++)
23763 if(i3==i1||i3==i2) continue;
23764 aftsTrack=anEvent->GetTrack(i3);
23765 // RP condition (!(first) particle in the correlator must be RP):
23766 if(!(aftsTrack->InRPSelection())) continue;
23767 phi3=aftsTrack->Phi();
23768 if(fUsePhiWeights && fPhiWeights) wPhi3 = fPhiWeights->GetBinContent(1+(Int_t)(TMath::Floor(phi3*fnBinsPhi/TMath::TwoPi())));
23770 fDiffFlowDirectCorrectionTermsForNUA[t][pe][0][2]->Fill(lowerPtEtaEdge[pe]+binWidthPtEta[pe]/2.,sin(n*(psi1+phi2-phi3)),wPhi2*wPhi3); // <<wPhi2*wPhi3 sin(n*(psi1+phi2-phi3))>>
23771 fDiffFlowDirectCorrectionTermsForNUA[t][pe][0][3]->Fill(lowerPtEtaEdge[pe]+binWidthPtEta[pe]/2.,sin(n*(psi1-phi2-phi3)),wPhi2*wPhi3); // <<wPhi2*wPhi3 sin(n*(psi1-phi2-phi3))>>
23773 fDiffFlowDirectCorrectionTermsForNUA[t][pe][1][2]->Fill(lowerPtEtaEdge[pe]+binWidthPtEta[pe]/2.,cos(n*(psi1+phi2-phi3)),wPhi2*wPhi3); // <<wPhi2*wPhi3 cos(n*(psi1+phi2-phi3))>>
23774 fDiffFlowDirectCorrectionTermsForNUA[t][pe][1][3]->Fill(lowerPtEtaEdge[pe]+binWidthPtEta[pe]/2.,cos(n*(psi1-phi2-phi3)),wPhi2*wPhi3); // <<wPhi2*wPhi3 cos(n*(psi1-phi2-phi3))>>
23775 }//end of for(Int_t i3=0;i3<nPrim;i3++)
23776 }//end of for(Int_t i2=0;i2<nPrim;i2++)
23777 }//end of for(Int_t i1=0;i1<nPrim;i1++)
23779 } // end of void AliFlowAnalysisWithQCumulants::EvaluateDiffFlowCorrectionTermsForNUAWithNestedLoopsUsingParticleWeights(AliFlowEventSimple* anEvent, TString type, TString ptOrEta)
23781 //=======================================================================================================================
23783 void AliFlowAnalysisWithQCumulants::CheckPointersUsedInFinish()
23785 // Check all pointers used in method Finish().
23787 if(!fAvMultiplicity)
23790 cout<<" WARNING (QC): fAvMultiplicity is NULL in CheckPointersUsedInFinish() !!!!"<<endl;
23794 if(!fIntFlowCorrelationsPro)
23797 cout<<" WARNING (QC): fIntFlowCorrelationsPro is NULL in CheckPointersUsedInFinish() !!!!"<<endl;
23801 if(!fIntFlowSquaredCorrelationsPro)
23804 cout<<" WARNING (QC): fIntFlowSquaredCorrelationsPro is NULL in CheckPointersUsedInFinish() !!!!"<<endl;
23808 if(!fIntFlowCorrelationsHist)
23811 cout<<" WARNING (QC): fIntFlowCorrelationsHist is NULL in CheckPointersUsedInFinish() !!!!"<<endl;
23815 if((fUsePhiWeights||fUsePtWeights||fUseEtaWeights||fUseTrackWeights) && !fIntFlowExtraCorrelationsPro)
23818 cout<<" WARNING (QC): fIntFlowExtraCorrelationsPro is NULL in CheckPointersUsedInFinish() !!!!"<<endl;
23822 for(Int_t power=0;power<2;power++)
23824 if(!fIntFlowSumOfEventWeights[power])
23827 cout<<Form(" WARNING (QC): fIntFlowSumOfEventWeights[%d] is NULL in CheckPointersUsedInFinish() !!!!",power)<<endl;
23831 } // end of for(Int_t power=0;power<2;power++)
23832 if(!fIntFlowProductOfCorrelationsPro)
23835 cout<<" WARNING (QC): fIntFlowProductOfCorrelationsPro is NULL in CheckPointersUsedInFinish() !!!!"<<endl;
23839 if(!fIntFlowSumOfProductOfEventWeights)
23842 cout<<" WARNING (QC): fIntFlowSumOfProductOfEventWeights is NULL in CheckPointersUsedInFinish() !!!!"<<endl;
23846 if(!fIntFlowCovariances)
23849 cout<<" WARNING (QC): fIntFlowCovariances is NULL in CheckPointersUsedInFinish() !!!!"<<endl;
23853 if(!fIntFlowQcumulants)
23856 cout<<" WARNING (QC): fIntFlowQcumulants is NULL in CheckPointersUsedInFinish() !!!!"<<endl;
23863 cout<<" WARNING (QC): fIntFlow is NULL in CheckPointersUsedInFinish() !!!!"<<endl;
23870 cout<<" WARNING (QC): fCommonHists is NULL in CheckPointersUsedInFinish() !!!!"<<endl;
23874 if(!(fCommonHistsResults2nd && fCommonHistsResults4th && fCommonHistsResults6th && fCommonHistsResults8th))
23877 cout<<" WARNING (QC): fCommonHistsResults2nd && fCommonHistsResults4th && fCommonHistsResults6th"<<endl;
23878 cout<<" && fCommonHistsResults8th is NULL in CheckPointersUsedInFinish() !!!!"<<endl;
23884 for(Int_t sc=0;sc<2;sc++) // sin/cos
23886 if(!fIntFlowCorrectionTermsForNUAPro[sc])
23889 cout<<Form(" WARNING (QC): fIntFlowCorrectionTermsForNUAPro[%d] is NULL in CheckPointersUsedInFinish() !!!!",sc)<<endl;
23893 if(!fIntFlowCorrectionTermsForNUAHist[sc])
23896 cout<<Form(" WARNING (QC): fIntFlowCorrectionTermsForNUAHist[%d] is NULL in CheckPointersUsedInFinish() !!!!",sc)<<endl;
23900 for(Int_t lq=0;lq<2;lq++) // linear/quadratic
23902 if(!fIntFlowSumOfEventWeightsNUA[sc][lq])
23905 cout<<Form(" WARNING (QC): fIntFlowSumOfEventWeightsNUA[%d][%d] is NULL in CheckPointersUsedInFinish() !!!!",sc,lq)<<endl;
23909 } // end of for(Int_t lq=0;lq<2;lq++) // linear/quadratic
23910 } // end of for(Int_t power=0;power<2;power++)
23911 if(!fIntFlowProductOfCorrectionTermsForNUAPro)
23914 cout<<" WARNING (QC): fIntFlowProductOfCorrectionTermsForNUAPro is NULL in CheckPointersUsedInFinish() !!!!"<<endl;
23918 if(!fIntFlowSumOfProductOfEventWeightsNUA)
23921 cout<<" WARNING (QC): fIntFlowSumOfProductOfEventWeightsNUA is NULL in CheckPointersUsedInFinish() !!!!"<<endl;
23925 if(!fIntFlowCovariancesNUA)
23928 cout<<" WARNING (QC): fIntFlowCovariancesNUA is NULL in CheckPointersUsedInFinish() !!!!"<<endl;
23932 if(!fIntFlowQcumulantsErrorSquaredRatio)
23935 cout<<" WARNING (QC): fIntFlowQcumulantsErrorSquaredRatio is NULL in CheckPointersUsedInFinish() !!!!"<<endl;
23939 if(!fIntFlowDetectorBias)
23942 cout<<" WARNING (QC): fIntFlowDetectorBias is NULL in CheckPointersUsedInFinish() !!!!"<<endl;
23947 if(fCalculateMixedHarmonics)
23949 if(!(fMixedHarmonicsFlags))
23952 cout<<" WARNING (QC): fMixedHarmonicsFlags is NULL in CheckPointersUsedInFinish() !!!!"<<endl;
23956 if(!(f2pCorrelations && f3pCorrelations && f4pCorrelations && f5pCorrelations))
23959 cout<<" WARNING (QC): f2pCorrelations && f3pCorrelations && f4pCorrelations && f5pCorrelations is NULL in CheckPointersUsedInFinish() !!!!"<<endl;
23963 if(!(f2pCumulants && f3pCumulants && f4pCumulants && f5pCumulants))
23966 cout<<" WARNING (QC): f2pCumulants && f3pCumulants && f4pCumulants && f5pCumulants is NULL in CheckPointersUsedInFinish() !!!!"<<endl;
23970 for(Int_t power=0;power<2;power++)
23972 if(!fMixedHarmonicEventWeights[power])
23975 cout<<Form(" WARNING (QC): fMixedHarmonicEventWeights[%d] is NULL in CheckPointersUsedInFinish() !!!!",power)<<endl;
23979 } // end of for(Int_t power=0;power<2;power++)
23980 if(!(fMixedHarmonicProductOfEventWeights))
23983 cout<<" WARNING (QC): fMixedHarmonicProductOfEventWeights is NULL in CheckPointersUsedInFinish() !!!!"<<endl;
23987 if(!(fMixedHarmonicProductOfCorrelations))
23990 cout<<" WARNING (QC): fMixedHarmonicProductOfCorrelations is NULL in CheckPointersUsedInFinish() !!!!"<<endl;
23994 } // end of if(fCalculateMixedHarmonics)
23996 // Versus multiplicity:
23997 if(!fCalculateCumulantsVsM){return;}
23998 for(Int_t co=0;co<=3;co++) // cumulant order
24000 if(!fIntFlowQcumulantsVsM[co])
24003 cout<<Form(" WARNING (QC): fIntFlowQcumulantsVsM[%d] is NULL in CheckPointersUsedInFinish() !!!!",co)<<endl;
24007 if(!fIntFlowVsM[co])
24010 cout<<Form(" WARNING (QC): fIntFlowVsM[%d] is NULL in CheckPointersUsedInFinish() !!!!",co)<<endl;
24014 if(!fIntFlowDetectorBiasVsM[co])
24017 cout<<Form(" WARNING (QC): fIntFlowDetectorBiasVsM[%d] is NULL in CheckPointersUsedInFinish() !!!!",co)<<endl;
24021 } // end of for(Int_t c0=0;c0<=3;c0++) // cumulant order
24022 for(Int_t ci=0;ci<=3;ci++) // correlation index
24024 if(!fIntFlowCorrelationsVsMPro[ci])
24027 cout<<Form(" WARNING (QC): fIntFlowCorrelationsVsMPro[%d] is NULL in CheckPointersUsedInFinish() !!!!",ci)<<endl;
24031 if(!fIntFlowSquaredCorrelationsVsMPro[ci])
24034 cout<<Form(" WARNING (QC): fIntFlowSquaredCorrelationsVsMPro[%d] is NULL in CheckPointersUsedInFinish() !!!!",ci)<<endl;
24038 if(!fIntFlowCorrelationsVsMHist[ci])
24041 cout<<Form(" WARNING (QC): fIntFlowCorrelationsVsMHist[%d] is NULL in CheckPointersUsedInFinish() !!!!",ci)<<endl;
24045 for(Int_t power=0;power<2;power++)
24047 if(!fIntFlowSumOfEventWeightsVsM[ci][power])
24050 cout<<Form(" WARNING (QC): fIntFlowSumOfEventWeightsVsM[%d][%d] is NULL in CheckPointersUsedInFinish() !!!!",ci,power)<<endl;
24054 } // end of for(Int_t power=0;power<2;power++)
24055 } // end of for(Int_t ci=0;ci<=3;ci++) // correlation index
24056 for(Int_t i=0;i<6;i++)
24058 if(!fIntFlowProductOfCorrelationsVsMPro[i])
24061 cout<<Form(" WARNING (QC): fIntFlowProductOfCorrelationsVsMPro[%d] is NULL in CheckPointersUsedInFinish() !!!!",i)<<endl;
24065 if(!fIntFlowSumOfProductOfEventWeightsVsM[i])
24068 cout<<Form(" WARNING (QC): fIntFlowSumOfProductOfEventWeightsVsM[%d] is NULL in CheckPointersUsedInFinish() !!!!",i)<<endl;
24072 if(!fIntFlowCovariancesVsM[i])
24075 cout<<Form(" WARNING (QC): fIntFlowCovariancesVsM[%d] is NULL in CheckPointersUsedInFinish() !!!!",i)<<endl;
24079 } // end of for(Int_t i=0;i<6;i++)
24080 if(!fIntFlowRebinnedInM)
24083 cout<<" WARNING (QC): fIntFlowRebinnedInM is NULL in CheckPointersUsedInFinish() !!!!"<<endl;
24087 if(!fIntFlowQcumulantsRebinnedInM)
24090 cout<<" WARNING (QC): fIntFlowQcumulantsRebinnedInM is NULL in CheckPointersUsedInFinish() !!!!"<<endl;
24095 } // end of void AliFlowAnalysisWithQCumulants::CheckPointersUsedInFinish()
24097 //=======================================================================================================================
24099 void AliFlowAnalysisWithQCumulants::CheckPointersUsedInMake()
24101 // Check all pointers used in method Make(). // to be improved - check other pointers as well
24103 if(!fAvMultiplicity)
24105 printf("\n WARNING (QC): fAvMultiplicity is NULL in CheckPointersUsedInMake() !!!!\n\n");
24108 if((fUsePhiWeights||fUsePtWeights||fUseEtaWeights||fUseTrackWeights) && !fIntFlowExtraCorrelationsPro)
24110 printf("\n WARNING (QC): fIntFlowExtraCorrelationsPro is NULL in CheckPointersUsedInMake() !!!!\n\n");
24114 if(fCalculate2DDiffFlow)
24116 for(Int_t t=0;t<2;t++) // type = RP or POI
24118 for(Int_t rci=0;rci<4;rci++) // reduced correlation index
24120 if(!f2DDiffFlowCorrelationsPro[t][rci])
24122 printf("\n WARNING (QC): f2DDiffFlowCorrelationsPro[%i][%i] is NULL in CheckPointersUsedInMake() !!!!\n\n",t,rci);
24124 } // end of if(!f2DDiffFlowCorrelationsPro[t][rci])
24125 } // end of for(Int_t rci=0;rci<4;rci++) // reduced correlation index
24126 } // end of for(Int_t t=0;t<2;t++)
24127 } // end of if(fCalculate2DDiffFlow)
24129 } // end of void AliFlowAnalysisWithQCumulants::CheckPointersUsedInMake()