2 * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved.
3 * See cxx source for full Copyright notice
7 /****************************************
8 * analysis task for flow analysis with *
9 * multi-particle correlations *
11 * author: Ante Bilandzic *
12 * (abilandzic@gmail.com) *
13 ***************************************/
15 #ifndef ALIANALYSISTASKMULTIPARTICLECORRELATIONS_H
16 #define ALIANALYSISTASKMULTIPARTICLECORRELATIONS_H
18 #include "AliAnalysisTaskSE.h"
19 #include "AliFlowAnalysisWithMultiparticleCorrelations.h"
20 #include "AliFlowEventSimple.h"
22 //================================================================================================================
24 class AliAnalysisTaskMultiparticleCorrelations : public AliAnalysisTaskSE{
26 AliAnalysisTaskMultiparticleCorrelations();
27 AliAnalysisTaskMultiparticleCorrelations(const char *name, Bool_t useParticleWeights=kFALSE);
28 virtual ~AliAnalysisTaskMultiparticleCorrelations(){};
30 virtual void UserCreateOutputObjects();
31 virtual void UserExec(Option_t *option);
32 virtual void Terminate(Option_t *);
35 void SetMinNoRPs(Int_t const min) {fUseInternalFlags = kTRUE; this->fMinNoRPs = min;};
36 Int_t GetMinNoRPs() const {return this->fMinNoRPs;};
37 void SetMaxNoRPs(Int_t const max) {fUseInternalFlags = kTRUE; this->fMaxNoRPs = max;};
38 Int_t GetMaxNoRPs() const {return this->fMaxNoRPs;};
39 void SetExactNoRPs(Int_t const exact) {fUseInternalFlags = kTRUE; this->fExactNoRPs = exact;};
40 Int_t GetExactNoRPs() const {return this->fExactNoRPs;};
42 // Control histograms:
43 void SetFillControlHistograms(Bool_t const fch) {this->fFillControlHistograms = fch;};
44 Bool_t GetFillControlHistograms() const {return this->fFillControlHistograms;};
45 void SetFillKinematicsHist(Bool_t const fkh) {this->fFillKinematicsHist = fkh;};
46 Bool_t GetFillKinematicsHist() const {return this->fFillKinematicsHist;};
47 void SetFillMultDistributionsHist(Bool_t const mdh) {this->fFillMultDistributionsHist = mdh;};
48 Bool_t GetFillMultDistributionsHist() const {return this->fFillMultDistributionsHist;};
49 void SetFillMultCorrelationsHist(Bool_t const mch) {this->fFillMultCorrelationsHist = mch;};
50 Bool_t GetFillMultCorrelationsHist() const {return this->fFillMultCorrelationsHist;};
53 void SetPhiWeightsHist(TH1D* const phwh) {phwh->SetDirectory(0);this->fPhiWeightsHist = (TH1D*)phwh->Clone();}; // TBI
54 TH1D* GetPhiWeightsHist() const {return this->fPhiWeightsHist;};
55 void SetPtWeightsHist(TH1D* const ptwh) {ptwh->SetDirectory(0);this->fPtWeightsHist = (TH1D*)ptwh->Clone();}; // TBI
56 TH1D* GetPtWeightsHist() const {return this->fPtWeightsHist;};
57 void SetEtaWeightsHist(TH1D* const ewh) {ewh->SetDirectory(0);this->fEtaWeightsHist = (TH1D*)ewh->Clone();}; // TBI
58 TH1D* GetEtaWeightsHist() const {return this->fEtaWeightsHist;};
61 void SetCalculateCorrelations(Bool_t const cc) {this->fCalculateCorrelations = cc;};
62 Bool_t GetCalculateCorrelations() const {return this->fCalculateCorrelations;};
63 void SetCalculateIsotropic(Bool_t const ci) {this->fCalculateIsotropic = ci;};
64 Bool_t GetCalculateIsotropic() const {return this->fCalculateIsotropic;};
65 void SetCalculateSame(Bool_t const csh) {this->fCalculateSame = csh;};
66 Bool_t GetCalculateSame() const {return this->fCalculateSame;};
67 void SetSkipZeroHarmonics(Bool_t const szh) {this->fSkipZeroHarmonics = szh;};
68 Bool_t GetSkipZeroHarmonics() const {return this->fSkipZeroHarmonics;};
69 void SetCalculateSameIsotropic(Bool_t const csi) {this->fCalculateSameIsotropic = csi;};
70 Bool_t GetCalculateSameIsotropic() const {return this->fCalculateSameIsotropic;};
71 void SetCalculateAll(Bool_t const ca) {this->fCalculateAll = ca;};
72 Bool_t GetCalculateAll() const {return this->fCalculateAll;};
73 void SetDontGoBeyond(Int_t const dgb) {this->fDontGoBeyond = dgb;};
74 Int_t GetDontGoBeyond() const {return this->fDontGoBeyond;};
77 void SetCalculateCumulants(Bool_t const cc) {this->fCalculateCumulants = cc;};
78 Bool_t GetCalculateCumulants() const {return this->fCalculateCumulants;};
81 void SetCrossCheckWithNestedLoops(Bool_t const ccwnl) {this->fCrossCheckWithNestedLoops = ccwnl;};
82 Bool_t GetCrossCheckWithNestedLoops() const {return this->fCrossCheckWithNestedLoops;};
84 // 'Standard candles':
85 void SetCalculateStandardCandles(Bool_t const csc) {this->fCalculateStandardCandles = csc;};
86 Bool_t GetCalculateStandardCandles() const {return this->fCalculateStandardCandles;};
89 AliAnalysisTaskMultiparticleCorrelations(const AliAnalysisTaskMultiparticleCorrelations& aatqc);
90 AliAnalysisTaskMultiparticleCorrelations& operator=(const AliAnalysisTaskMultiparticleCorrelations& aatqc);
92 AliFlowEventSimple *fEvent; // the input event
93 AliFlowAnalysisWithMultiparticleCorrelations *fMPC; // "multi-particle correlations" object
94 TList *fHistList; // base list to hold all output object (a.k.a. grandmother of all lists)
97 Bool_t fUseInternalFlags; // use internal flags (automatically set if some internal flag is used)
98 Int_t fMinNoRPs; // minimum number of RPs required for the analysis
99 Int_t fMaxNoRPs; // maximum number of RPs allowed for the analysis
100 Int_t fExactNoRPs; // exact (randomly shuffled) number of RPs selected for the analysis
102 // Control histograms:
103 Bool_t fFillControlHistograms; // fill or not control histograms (by default they are filled)
104 Bool_t fFillKinematicsHist; // fill or not fKinematicsHist[2][3]
105 Bool_t fFillMultDistributionsHist; // fill or not TH1D *fMultDistributionsHist[3]
106 Bool_t fFillMultCorrelationsHist; // fill or not TH2D *fMultCorrelationsHist[3]
109 TH1D *fPhiWeightsHist; // histogram holding phi weights
110 TH1D *fPtWeightsHist; // histogram holding pt weights
111 TH1D *fEtaWeightsHist; // histogram holding eta weights
114 Bool_t fCalculateCorrelations; // calculate and store correlations, or perhaps not, if the weather is bad...
115 Bool_t fCalculateIsotropic; // calculate only isotropic correlations
116 Bool_t fCalculateSame; // calculate only isotropic 'same harmonics' correlations
117 Bool_t fSkipZeroHarmonics; // skip correlations which have some of the harmonicc equal to zero
118 Bool_t fCalculateSameIsotropic; // calculate only isotropic correlations in 'same harmonics' TBI this can be implemented better
119 Bool_t fCalculateAll; // calculate all possible correlations
120 Int_t fDontGoBeyond; // do not go beyond fDontGoBeyond-p correlators
123 Bool_t fCalculateCumulants; // calculate and store cumulants, or perhaps not, if the weather is bad...
126 Bool_t fCrossCheckWithNestedLoops; // cross-check results with nested loops
128 // 'Standard candles':
129 Bool_t fCalculateStandardCandles; // calculate and store 'standard candles'
131 ClassDef(AliAnalysisTaskMultiparticleCorrelations,0);
135 //================================================================================================================