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 * analysis task for flow analysis with *
18 * multi-particle correlations *
20 * author: Ante Bilandzic *
21 * (abilandzic@gmail.com) *
22 ***************************************/
24 #include "Riostream.h"
25 #include "AliFlowEventSimple.h"
26 #include "AliAnalysisTaskMultiparticleCorrelations.h"
27 #include "AliFlowAnalysisWithMultiparticleCorrelations.h"
33 ClassImp(AliAnalysisTaskMultiparticleCorrelations)
35 //================================================================================================================
37 AliAnalysisTaskMultiparticleCorrelations::AliAnalysisTaskMultiparticleCorrelations(const char *name, Bool_t useParticleWeights):
38 AliAnalysisTaskSE(name),
42 fUseInternalFlags(kFALSE),
47 fDumpThePoints(kFALSE),
48 fMaxNoEventsPerFile(100),
49 fFillControlHistograms(kFALSE),
50 fFillKinematicsHist(kFALSE),
51 fFillMultDistributionsHist(kFALSE),
52 fFillMultCorrelationsHist(kFALSE),
53 fCalculateQvector(kFALSE),
54 fCalculateDiffQvectors(kFALSE),
55 fCalculateCorrelations(kFALSE),
56 fCalculateIsotropic(kFALSE),
57 fCalculateSame(kFALSE),
58 fSkipZeroHarmonics(kFALSE),
59 fCalculateSameIsotropic(kFALSE),
60 fCalculateAll(kFALSE),
62 fCalculateOnlyForHarmonicQC(kFALSE),
63 fCalculateOnlyForSC(kFALSE),
64 fCalculateOnlyCos(kFALSE),
65 fCalculateOnlySin(kFALSE),
66 fCalculateEbECumulants(kFALSE),
67 fCrossCheckWithNestedLoops(kFALSE),
68 fCrossCheckDiffWithNestedLoops(kFALSE),
69 fCalculateStandardCandles(kFALSE),
70 fPropagateErrorSC(kTRUE),
71 fCalculateQcumulants(kFALSE),
73 fPropagateErrorQC(kTRUE),
74 fCalculateDiffCorrelations(kFALSE),
75 fCalculateDiffCos(kTRUE),
76 fCalculateDiffSin(kFALSE),
77 fCalculateDiffCorrelationsVsPt(kTRUE),
78 fUseDefaultBinning(kTRUE),
84 AliDebug(2,"AliAnalysisTaskMultiparticleCorrelations::AliAnalysisTaskMultiparticleCorrelations(const char *name, Bool_t useParticleWeights)");
86 // Define input and output slots here
87 // Input slot #0 works with an AliFlowEventSimple
88 DefineInput(0, AliFlowEventSimple::Class());
89 // Input slot #1 is needed for the weights input file:
90 if(useParticleWeights)
92 DefineInput(1, TList::Class());
94 // Output slot #0 is reserved
95 // Output slot #1 writes into a TList container
96 DefineOutput(1, TList::Class());
98 // Initialize all arrays:
99 for(Int_t rp=0;rp<2;rp++) // [RP,POI]
101 for(Int_t ppe=0;ppe<3;ppe++) // [phi,pt,eta]
103 fUseWeights[rp][ppe] = kFALSE;
104 fWeightsHist[rp][ppe] = NULL;
107 // For nested loops arrays:
108 fCrossCheckDiffCSCOBN[0] = 0; // cos/sin
109 fCrossCheckDiffCSCOBN[1] = 2; // correlator order
110 fCrossCheckDiffCSCOBN[2] = 4; // bin number
111 // Initialize default binning values for fKinematicsHist[2][3]:
113 fnBins[0][0] = 360; // [RP][phi]
114 fnBins[0][1] = 1000; // [RP][pt]
115 fnBins[0][2] = 1000; // [RP][eta]
116 fnBins[1][0] = 360; // [POI][phi]
117 fnBins[1][1] = 1000; // [POI][pt]
118 fnBins[1][2] = 1000; // [POI][eta]
120 fMin[0][0] = 0.; // [RP][phi]
121 fMin[0][1] = 0.; // [RP][pt]
122 fMin[0][2] = -1.; // [RP][eta]
123 fMin[1][0] = 0.; // [POI][phi]
124 fMin[1][1] = 0.; // [POI][pt]
125 fMin[1][2] = -1.; // [POI][eta]
127 fMax[0][0] = TMath::TwoPi(); // [RP][phi]
128 fMax[0][1] = 10.; // [RP][pt]
129 fMax[0][2] = 1.; // [RP][eta]
130 fMax[1][0] = TMath::TwoPi(); // [POI][phi]
131 fMax[1][1] = 10.; // [POI][pt]
132 fMax[1][2] = 1.; // [POI][eta]
133 // Initialize default binning values for fMultCorrelationsHist[3]:
135 fnBinsMult[0] = 3000; // [RP]
136 fnBinsMult[1] = 3000; // [POI]
137 fnBinsMult[2] = 3000; // [REF]
139 fMinMult[0] = 0.; // [RP]
140 fMinMult[1] = 0.; // [POI]
141 fMinMult[2] = 0.; // [REF]
143 fMaxMult[0] = 3000.; // [RP]
144 fMaxMult[1] = 3000.; // [POI]
145 fMaxMult[2] = 3000.; // [REF]
147 } // AliAnalysisTaskMultiparticleCorrelations::AliAnalysisTaskMultiparticleCorrelations(const char *name, Bool_t useParticleWeights):
149 //================================================================================================================
151 AliAnalysisTaskMultiparticleCorrelations::AliAnalysisTaskMultiparticleCorrelations():
156 fUseInternalFlags(kFALSE),
161 fDumpThePoints(kFALSE),
162 fMaxNoEventsPerFile(0),
163 fFillControlHistograms(kFALSE),
164 fFillKinematicsHist(kFALSE),
165 fFillMultDistributionsHist(kFALSE),
166 fFillMultCorrelationsHist(kFALSE),
167 fCalculateQvector(kFALSE),
168 fCalculateDiffQvectors(kFALSE),
169 fCalculateCorrelations(kFALSE),
170 fCalculateIsotropic(kFALSE),
171 fCalculateSame(kFALSE),
172 fSkipZeroHarmonics(kFALSE),
173 fCalculateSameIsotropic(kFALSE),
174 fCalculateAll(kFALSE),
176 fCalculateOnlyForHarmonicQC(kFALSE),
177 fCalculateOnlyForSC(kFALSE),
178 fCalculateOnlyCos(kFALSE),
179 fCalculateOnlySin(kFALSE),
180 fCalculateEbECumulants(kFALSE),
181 fCrossCheckWithNestedLoops(kFALSE),
182 fCrossCheckDiffWithNestedLoops(kFALSE),
183 fCalculateStandardCandles(kFALSE),
184 fPropagateErrorSC(kFALSE),
185 fCalculateQcumulants(kFALSE),
187 fPropagateErrorQC(kFALSE),
188 fCalculateDiffCorrelations(kFALSE),
189 fCalculateDiffCos(kTRUE),
190 fCalculateDiffSin(kFALSE),
191 fCalculateDiffCorrelationsVsPt(kTRUE),
192 fUseDefaultBinning(kTRUE),
194 fRangesDiffBins(NULL)
196 // Dummy constructor.
198 AliDebug(2,"AliAnalysisTaskMultiparticleCorrelations::AliAnalysisTaskMultiparticleCorrelations()");
200 // Initialize all arrays:
201 for(Int_t rp=0;rp<2;rp++) // [RP,POI]
203 for(Int_t ppe=0;ppe<3;ppe++) // [phi,pt,eta]
205 fUseWeights[rp][ppe] = kFALSE;
206 fWeightsHist[rp][ppe] = NULL;
209 // For nested loops arrays:
210 fCrossCheckDiffCSCOBN[0] = 0; // cos/sin
211 fCrossCheckDiffCSCOBN[1] = 2; // correlator order
212 fCrossCheckDiffCSCOBN[2] = 4; // bin number
213 // Initialize default binning values for fKinematicsHist[2][3]:
215 fnBins[0][0] = 360; // [RP][phi]
216 fnBins[0][1] = 1000; // [RP][pt]
217 fnBins[0][2] = 1000; // [RP][eta]
218 fnBins[1][0] = 360; // [POI][phi]
219 fnBins[1][1] = 1000; // [POI][pt]
220 fnBins[1][2] = 1000; // [POI][eta]
222 fMin[0][0] = 0.; // [RP][phi]
223 fMin[0][1] = 0.; // [RP][pt]
224 fMin[0][2] = -1.; // [RP][eta]
225 fMin[1][0] = 0.; // [POI][phi]
226 fMin[1][1] = 0.; // [POI][pt]
227 fMin[1][2] = -1.; // [POI][eta]
229 fMax[0][0] = TMath::TwoPi(); // [RP][phi]
230 fMax[0][1] = 10.; // [RP][pt]
231 fMax[0][2] = 1.; // [RP][eta]
232 fMax[1][0] = TMath::TwoPi(); // [POI][phi]
233 fMax[1][1] = 10.; // [POI][pt]
234 fMax[1][2] = 1.; // [POI][eta]
235 // Initialize default binning values for fMultCorrelationsHist[3]:
237 fnBinsMult[0] = 3000; // [RP]
238 fnBinsMult[1] = 3000; // [POI]
239 fnBinsMult[2] = 3000; // [REF]
241 fMinMult[0] = 0.; // [RP]
242 fMinMult[1] = 0.; // [POI]
243 fMinMult[2] = 0.; // [REF]
245 fMaxMult[0] = 3000.; // [RP]
246 fMaxMult[1] = 3000.; // [POI]
247 fMaxMult[2] = 3000.; // [REF]
249 } // AliAnalysisTaskMultiparticleCorrelations::AliAnalysisTaskMultiparticleCorrelations():
251 //================================================================================================================
253 void AliAnalysisTaskMultiparticleCorrelations::UserCreateOutputObjects()
255 // Called at every worker node to initialize.
257 AliDebug(2,"AliAnalysisTaskMultiparticleCorrelations::UserCreateOutputObjects()");
258 TString sMethodName = "void AliAnalysisTaskMultiparticleCorrelations::UserCreateOutputObjects()";
261 fMPC = new AliFlowAnalysisWithMultiparticleCorrelations();
264 if(fUseInternalFlags){fMPC->SetMinNoRPs(fMinNoRPs);}
265 if(fUseInternalFlags){fMPC->SetMaxNoRPs(fMaxNoRPs);}
266 if(fUseInternalFlags){fMPC->SetExactNoRPs(fExactNoRPs);}
267 fMPC->SetAnalysisTag(fAnalysisTag.Data());
268 fMPC->SetDumpThePoints(fDumpThePoints,fMaxNoEventsPerFile);
269 fMPC->SetFillControlHistograms(fFillControlHistograms);
270 fMPC->SetFillKinematicsHist(fFillKinematicsHist);
271 fMPC->SetFillMultDistributionsHist(fFillMultDistributionsHist);
272 fMPC->SetFillMultCorrelationsHist(fFillMultCorrelationsHist);
273 fMPC->SetCalculateQvector(fCalculateQvector);
274 fMPC->SetCalculateDiffQvectors(fCalculateDiffQvectors);
275 fMPC->SetCalculateCorrelations(fCalculateCorrelations);
276 fMPC->SetCalculateIsotropic(fCalculateIsotropic);
277 fMPC->SetCalculateSame(fCalculateSame);
278 fMPC->SetSkipZeroHarmonics(fSkipZeroHarmonics);
279 fMPC->SetCalculateSameIsotropic(fCalculateSameIsotropic);
280 fMPC->SetCalculateAll(fCalculateAll);
281 fMPC->SetDontGoBeyond(fDontGoBeyond);
282 fMPC->SetCalculateOnlyForHarmonicQC(fCalculateOnlyForHarmonicQC);
283 fMPC->SetCalculateOnlyForSC(fCalculateOnlyForSC);
284 fMPC->SetCalculateOnlyCos(fCalculateOnlyCos);
285 fMPC->SetCalculateOnlySin(fCalculateOnlySin);
286 fMPC->SetCalculateEbECumulants(fCalculateEbECumulants);
287 fMPC->SetCrossCheckWithNestedLoops(fCrossCheckWithNestedLoops);
288 fMPC->SetCrossCheckDiffWithNestedLoops(fCrossCheckDiffWithNestedLoops);
289 fMPC->SetCrossCheckDiffCSCOBN(fCrossCheckDiffCSCOBN[0],fCrossCheckDiffCSCOBN[1],fCrossCheckDiffCSCOBN[2]);
290 fMPC->SetCalculateStandardCandles(fCalculateStandardCandles);
291 fMPC->SetPropagateErrorSC(fPropagateErrorSC);
292 fMPC->SetCalculateQcumulants(fCalculateQcumulants);
293 fMPC->SetHarmonicQC(fHarmonicQC);
294 fMPC->SetPropagateErrorQC(fPropagateErrorQC);
295 fMPC->SetCalculateDiffCorrelations(fCalculateDiffCorrelations);
296 fMPC->SetCalculateDiffCos(fCalculateDiffCos);
297 fMPC->SetCalculateDiffSin(fCalculateDiffSin);
298 fMPC->SetCalculateDiffCorrelationsVsPt(fCalculateDiffCorrelationsVsPt);
299 fMPC->SetUseDefaultBinning(fUseDefaultBinning);
300 fMPC->SetnDiffBins(fnDiffBins);
301 fMPC->SetRangesDiffBins(fRangesDiffBins);
304 TString type[2] = {"RP","POI"};
305 TString variable[3] = {"phi","pt","eta"};
306 for(Int_t rp=0;rp<2;rp++) // [RP,POI]
308 for(Int_t ppe=0;ppe<3;ppe++) // [phi,pt,eta]
310 if(fUseWeights[rp][ppe])
312 if(!fWeightsHist[rp][ppe])
314 fWeightsHist[rp][ppe] = GetHistogramWithWeights(TString(Form("%s/%s",gSystem->pwd(),"weights.root")).Data(),TString(this->fName).Data(),type[rp].Data(),variable[ppe].Data());
316 if(!fWeightsHist[rp][ppe])
318 Fatal(sMethodName.Data(),"fWeightsHist[%d][%d]",rp,ppe);
319 } else{fMPC->SetWeightsHist(fWeightsHist[rp][ppe],type[rp].Data(),variable[ppe].Data());}
320 } // if(fUseWeights[rp][ppe])
321 } // for(Int_t ppe=0;ppe<3;ppe++) // [phi,pt,eta]
322 } // for(Int_t rp=0;rp<2;rp++) // [RP,POI]
326 //TString typeKine[2] = {"RP","POI"};
327 //TString variable[3] = {"phi","pt","eta"};
328 for(Int_t rp=0;rp<2;rp++) // [RP,POI]
330 for(Int_t ppe=0;ppe<3;ppe++) // [phi,pt,eta]
332 fMPC->SetnBins(type[rp].Data(),variable[ppe].Data(),fnBins[rp][ppe]);
333 fMPC->SetMin(type[rp].Data(),variable[ppe].Data(),fMin[rp][ppe]);
334 fMPC->SetMax(type[rp].Data(),variable[ppe].Data(),fMax[rp][ppe]);
335 } // for(Int_t ppe=0;ppe<3;ppe++) // [phi,pt,eta]
336 } // for(Int_t rp=0;rp<2;rp++) // [RP,POI]
338 TString typeMult[3] = {"RP","POI","REF"};
339 for(Int_t rpr=0;rpr<3;rpr++) // [RP,POI,REF]
341 fMPC->SetnBinsMult(typeMult[rpr].Data(),fnBinsMult[rpr]);
342 fMPC->SetMinMult(typeMult[rpr].Data(),fMinMult[rpr]);
343 fMPC->SetMaxMult(typeMult[rpr].Data(),fMaxMult[rpr]);
344 } // for(Int_t rpr=0;rpr<3;rpr++) // [RP,POI,REF]
348 if(fMPC->GetHistList())
350 fHistList = fMPC->GetHistList();
351 // fHistList->Print();
354 Printf("ERROR: Could not retrieve histogram list (MPC, Task::UserCreateOutputObjects()) !!!!");
357 PostData(1,fHistList);
359 } // void AliAnalysisTaskMultiparticleCorrelations::UserCreateOutputObjects()
361 //================================================================================================================
363 void AliAnalysisTaskMultiparticleCorrelations::UserExec(Option_t *)
365 // Main loop (called for each event).
367 fEvent = dynamic_cast<AliFlowEventSimple*>(GetInputData(0));
369 // It's time for multi-particle correlations:
375 cout<<" WARNING: No input data (MPC, Task::UserExec()) !!!!"<<endl;
379 PostData(1,fHistList);
381 } // void AliAnalysisTaskMultiparticleCorrelations::UserExec(Option_t *)
383 //================================================================================================================
385 void AliAnalysisTaskMultiparticleCorrelations::Terminate(Option_t *)
387 // Accessing the merged output list.
389 fHistList = (TList*)GetOutputData(1);
391 fMPC = new AliFlowAnalysisWithMultiparticleCorrelations();
395 fMPC->GetOutputHistograms(fHistList);
397 PostData(1,fHistList);
400 cout<<" WARNING: fHistList is NULL (MPC, Task::Terminate()) !!!!"<<endl;
404 } // end of void AliAnalysisTaskMultiparticleCorrelations::Terminate(Option_t *)
406 //================================================================================================================
408 void AliAnalysisTaskMultiparticleCorrelations::SetWeightsHist(TH1D* const hist, const char *type, const char *variable)
410 // Pass histogram holding weights from an external file to the corresponding data member.
412 TString sMethodName = "void AliAnalysisTaskMultiparticleCorrelations::SetWeightsHist(TH1D* const hist, const char *type, const char *variable)";
415 if(!hist){Fatal(sMethodName.Data(),"hist");}
416 if(!(TString(type).EqualTo("RP") || TString(type).EqualTo("POI"))){Fatal(sMethodName.Data(),"!(TString(type).EqualTo... type = %s ",type);}
417 if(!(TString(variable).EqualTo("phi") || TString(variable).EqualTo("pt") || TString(variable).EqualTo("eta"))){Fatal(sMethodName.Data(),"!(TString(variable).EqualTo... variable = %s ",variable);}
419 Int_t rp = 0; // [RP,POI]
420 if(TString(type).EqualTo("POI")){rp=1;}
422 Int_t ppe = 0; // [phi,pt,eta]
423 if(TString(variable).EqualTo("pt")){ppe=1;}
424 if(TString(variable).EqualTo("eta")){ppe=2;}
427 hist->SetDirectory(0);
428 fWeightsHist[rp][ppe] = (TH1D*)hist->Clone();
429 if(!fWeightsHist[rp][ppe]){Fatal(sMethodName.Data(),"fWeightsHist[%d][%d]",rp,ppe);}
431 fUseWeights[rp][ppe] = kTRUE;
433 } // void AliAnalysisTaskMultiparticleCorrelations::SetWeightsHist(TH1D* const hwh, const char *type, const char *variable)
435 //================================================================================================================
437 void AliAnalysisTaskMultiparticleCorrelations::SetnBins(const char *type, const char *variable, const Int_t nBins)
439 // Set number of bins for histograms fKinematicsHist[2][3].
441 TString sMethodName = "void AliAnalysisTaskMultiparticleCorrelations::SetnBins(const char *type, const char *variable, const Int_t nBins)";
444 if(!(TString(type).EqualTo("RP") || TString(type).EqualTo("POI")))
446 cout<<"Well, it would be better for you to use RP or POI here..."<<endl;
447 Fatal(sMethodName.Data(),"!(TString(type).EqualTo... type = %s ",type);
449 if(!(TString(variable).EqualTo("phi") || TString(variable).EqualTo("pt") || TString(variable).EqualTo("eta")))
451 cout<<"phi, pt or eta, please!"<<endl;
452 Fatal(sMethodName.Data(),"!(TString(variable).EqualTo... variable = %s ",variable);
455 Int_t rp = 0; // [RP,POI]
456 if(TString(type).EqualTo("POI")){rp=1;}
458 Int_t ppe = 0; // [phi,pt,eta]
459 if(TString(variable).EqualTo("pt")){ppe=1;}
460 if(TString(variable).EqualTo("eta")){ppe=2;}
462 fnBins[rp][ppe] = nBins;
464 } // void AliAnalysisTaskMultiparticleCorrelations::SetnBins(const char *type, const char *variable, const Int_t nBins)
466 //=======================================================================================================================
468 void AliAnalysisTaskMultiparticleCorrelations::SetMin(const char *type, const char *variable, const Double_t min)
470 // Set min bin range for histograms fKinematicsHist[2][3].
472 TString sMethodName = "void AliAnalysisTaskMultiparticleCorrelations::SetMin(const char *type, const char *variable, const Double_t min)";
475 if(!(TString(type).EqualTo("RP") || TString(type).EqualTo("POI")))
477 cout<<"Well, it would be better for you to use RP or POI here..."<<endl;
478 Fatal(sMethodName.Data(),"!(TString(type).EqualTo... type = %s ",type);
480 if(!(TString(variable).EqualTo("phi") || TString(variable).EqualTo("pt") || TString(variable).EqualTo("eta")))
482 cout<<"phi, pt or eta, please!"<<endl;
483 Fatal(sMethodName.Data(),"!(TString(variable).EqualTo... variable = %s ",variable);
486 Int_t rp = 0; // [RP,POI]
487 if(TString(type).EqualTo("POI")){rp=1;}
489 Int_t ppe = 0; // [phi,pt,eta]
490 if(TString(variable).EqualTo("pt")){ppe=1;}
491 if(TString(variable).EqualTo("eta")){ppe=2;}
495 } // void AliAnalysisTaskMultiparticleCorrelations::SetMin(const char *type, const char *variable, const Double_t min)
497 //=======================================================================================================================
499 void AliAnalysisTaskMultiparticleCorrelations::SetMax(const char *type, const char *variable, const Double_t max)
501 // Set max bin range for histograms fKinematicsHist[2][3].
503 TString sMethodName = "void AliAnalysisTaskMultiparticleCorrelations::SetMax(const char *type, const char *variable, const Double_t max)";
506 if(!(TString(type).EqualTo("RP") || TString(type).EqualTo("POI")))
508 cout<<"Well, it would be better for you to use RP or POI here..."<<endl;
509 Fatal(sMethodName.Data(),"!(TString(type).EqualTo... type = %s ",type);
511 if(!(TString(variable).EqualTo("phi") || TString(variable).EqualTo("pt") || TString(variable).EqualTo("eta")))
513 cout<<"phi, pt or eta, please!"<<endl;
514 Fatal(sMethodName.Data(),"!(TString(variable).EqualTo... variable = %s ",variable);
517 Int_t rp = 0; // [RP,POI]
518 if(TString(type).EqualTo("POI")){rp=1;}
520 Int_t ppe = 0; // [phi,pt,eta]
521 if(TString(variable).EqualTo("pt")){ppe=1;}
522 if(TString(variable).EqualTo("eta")){ppe=2;}
526 } // void AliAnalysisTaskMultiparticleCorrelations::SetMax(const char *type, const char *variable, const Double_t min)
528 //=======================================================================================================================
530 void AliAnalysisTaskMultiparticleCorrelations::SetnBinsMult(const char *type, const Int_t nBinsMult)
532 // Set number of bins for histograms fMultDistributionsHist[3].
534 TString sMethodName = "void AliAnalysisTaskMultiparticleCorrelations::SetnBinsMult(const char *type, const Int_t nBinsMult)";
537 if(!(TString(type).EqualTo("RP") || TString(type).EqualTo("POI") || TString(type).EqualTo("REF")))
539 cout<<"Well, it would be better for you to use RP, POI or REF here..."<<endl;
540 Fatal(sMethodName.Data(),"!(TString(type).EqualTo... type = %s ",type);
543 Int_t rpr = 0; // [RP,POI,REF]
544 if(TString(type).EqualTo("POI")){rpr=1;}
545 else if(TString(type).EqualTo("REF")){rpr=2;}
547 fnBinsMult[rpr] = nBinsMult;
549 } // void AliAnalysisTaskMultiparticleCorrelations::SetnBinsMult(const char *type, const Int_t nBinsMult)
551 //=======================================================================================================================
553 void AliAnalysisTaskMultiparticleCorrelations::SetMinMult(const char *type, const Double_t minMult)
555 // Set min bin range for histograms fMultDistributionsHist[3].
557 TString sMethodName = "void AliAnalysisTaskMultiparticleCorrelations::SetMinMult(const char *type, const Double_t minMult)";
560 if(!(TString(type).EqualTo("RP") || TString(type).EqualTo("POI") || TString(type).EqualTo("REF")))
562 cout<<"Well, it would be better for you to use RP, POI or REF here..."<<endl;
563 Fatal(sMethodName.Data(),"!(TString(type).EqualTo... type = %s ",type);
566 Int_t rpr = 0; // [RP,POI,REF]
567 if(TString(type).EqualTo("POI")){rpr=1;}
568 else if(TString(type).EqualTo("REF")){rpr=2;}
570 fMinMult[rpr] = minMult;
572 } // void AliAnalysisTaskMultiparticleCorrelations::SetMinMult(const char *type const Double_t minMult)
574 //=======================================================================================================================
576 void AliAnalysisTaskMultiparticleCorrelations::SetMaxMult(const char *type, const Double_t maxMult)
578 // Set max bin range for histograms fMultDistributionsHist[3].
580 TString sMethodName = "void AliAnalysisTaskMultiparticleCorrelations::SetMaxMult(const char *type, const Double_t maxMult)";
583 if(!(TString(type).EqualTo("RP") || TString(type).EqualTo("POI") || TString(type).EqualTo("REF")))
585 cout<<"Well, it would be better for you to use RP, POI or REF here..."<<endl;
586 Fatal(sMethodName.Data(),"!(TString(type).EqualTo... type = %s ",type);
589 Int_t rpr = 0; // [RP,POI,REF]
590 if(TString(type).EqualTo("POI")){rpr=1;}
591 else if(TString(type).EqualTo("REF")){rpr=2;}
593 fMaxMult[rpr] = maxMult;
595 } // void AliAnalysisTaskMultiparticleCorrelations::SetMaxMult(const char *type, const Double_t minMult)
597 //=======================================================================================================================