]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG/FLOW/Tasks/AliAnalysisTaskMultiparticleCorrelations.h
from Ante Bilandzic:
[u/mrichter/AliRoot.git] / PWG / FLOW / Tasks / AliAnalysisTaskMultiparticleCorrelations.h
1 /* 
2  * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. 
3  * See cxx source for full Copyright notice 
4  * $Id$ 
5  */
6
7 /****************************************
8  * analysis task for flow analysis with *
9  *     multi-particle correlations      * 
10  *                                      * 
11  * author: Ante Bilandzic               *
12  *         (abilandzic@gmail.com)       * 
13  ***************************************/
14
15 #ifndef ALIANALYSISTASKMULTIPARTICLECORRELATIONS_H
16 #define ALIANALYSISTASKMULTIPARTICLECORRELATIONS_H
17
18 #include "AliAnalysisTaskSE.h"
19 #include "AliFlowAnalysisWithMultiparticleCorrelations.h"
20 #include "AliFlowEventSimple.h"
21
22 //================================================================================================================
23
24 class AliAnalysisTaskMultiparticleCorrelations : public AliAnalysisTaskSE{
25  public:
26   AliAnalysisTaskMultiparticleCorrelations();
27   AliAnalysisTaskMultiparticleCorrelations(const char *name, Bool_t useParticleWeights=kFALSE);
28   virtual ~AliAnalysisTaskMultiparticleCorrelations(){}; 
29   
30   virtual void UserCreateOutputObjects();
31   virtual void UserExec(Option_t *option);
32   virtual void Terminate(Option_t *);
33   
34   // Internal flags:
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;};
41
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;};
51
52   // Q-vector:
53   void SetCalculateQvector(Bool_t const cqv) {this->fCalculateQvector = cqv;};
54   Bool_t GetCalculateQvector() const {return this->fCalculateQvector;};
55
56   // Weights:               // TBI KG
57   void SetPhiWeightsHist(TH1D* const phwh) {phwh->SetDirectory(0);this->fPhiWeightsHist = (TH1D*)phwh->Clone();}; // TBI
58   TH1D* GetPhiWeightsHist() const {return this->fPhiWeightsHist;};
59   void SetPtWeightsHist(TH1D* const ptwh) {ptwh->SetDirectory(0);this->fPtWeightsHist = (TH1D*)ptwh->Clone();}; // TBI
60   TH1D* GetPtWeightsHist() const {return this->fPtWeightsHist;};
61   void SetEtaWeightsHist(TH1D* const ewh) {ewh->SetDirectory(0);this->fEtaWeightsHist = (TH1D*)ewh->Clone();}; // TBI
62   TH1D* GetEtaWeightsHist() const {return this->fEtaWeightsHist;};
63
64   // Correlations:
65   void SetCalculateCorrelations(Bool_t const cc) {this->fCalculateCorrelations = cc;};
66   Bool_t GetCalculateCorrelations() const {return this->fCalculateCorrelations;};
67   void SetCalculateIsotropic(Bool_t const ci) {this->fCalculateIsotropic = ci;};
68   Bool_t GetCalculateIsotropic() const {return this->fCalculateIsotropic;};
69   void SetCalculateSame(Bool_t const csh) {this->fCalculateSame = csh;};
70   Bool_t GetCalculateSame() const {return this->fCalculateSame;};
71   void SetSkipZeroHarmonics(Bool_t const szh) {this->fSkipZeroHarmonics = szh;};
72   Bool_t GetSkipZeroHarmonics() const {return this->fSkipZeroHarmonics;};
73   void SetCalculateSameIsotropic(Bool_t const csi) {this->fCalculateSameIsotropic = csi;};
74   Bool_t GetCalculateSameIsotropic() const {return this->fCalculateSameIsotropic;};
75   void SetCalculateAll(Bool_t const ca) {this->fCalculateAll = ca;};
76   Bool_t GetCalculateAll() const {return this->fCalculateAll;};
77   void SetDontGoBeyond(Int_t const dgb) {this->fDontGoBeyond = dgb;};
78   Int_t GetDontGoBeyond() const {return this->fDontGoBeyond;};
79
80   // Cumulants:
81   void SetCalculateCumulants(Bool_t const cc) {this->fCalculateCumulants = cc;};
82   Bool_t GetCalculateCumulants() const {return this->fCalculateCumulants;};
83
84   // Nested loops:
85   void SetCrossCheckWithNestedLoops(Bool_t const ccwnl) {this->fCrossCheckWithNestedLoops = ccwnl;};
86   Bool_t GetCrossCheckWithNestedLoops() const {return this->fCrossCheckWithNestedLoops;};
87   
88   // 'Standard candles':
89   void SetCalculateStandardCandles(Bool_t const csc) {this->fCalculateStandardCandles = csc;};
90   Bool_t GetCalculateStandardCandles() const {return this->fCalculateStandardCandles;};
91
92  private:
93   AliAnalysisTaskMultiparticleCorrelations(const AliAnalysisTaskMultiparticleCorrelations& aatqc);
94   AliAnalysisTaskMultiparticleCorrelations& operator=(const AliAnalysisTaskMultiparticleCorrelations& aatqc);
95   
96   AliFlowEventSimple *fEvent; // the input event
97   AliFlowAnalysisWithMultiparticleCorrelations *fMPC; // "multi-particle correlations" object
98   TList *fHistList; // base list to hold all output object (a.k.a. grandmother of all lists)
99
100   // Internal flags:
101   Bool_t fUseInternalFlags; // use internal flags (automatically set if some internal flag is used)
102   Int_t fMinNoRPs; // minimum number of RPs required for the analysis 
103   Int_t fMaxNoRPs; // maximum number of RPs allowed for the analysis 
104   Int_t fExactNoRPs; // exact (randomly shuffled) number of RPs selected for the analysis 
105
106   // Control histograms:
107   Bool_t fFillControlHistograms;     // fill or not control histograms (by default they are filled)
108   Bool_t fFillKinematicsHist;        // fill or not fKinematicsHist[2][3]
109   Bool_t fFillMultDistributionsHist; // fill or not TH1D *fMultDistributionsHist[3]    
110   Bool_t fFillMultCorrelationsHist;  // fill or not TH2D *fMultCorrelationsHist[3] 
111
112   // Q-vector:
113   Bool_t fCalculateQvector; // to calculate or not to calculate Q-vector components, that's a Boolean...
114
115   // Weights:
116   TH1D *fPhiWeightsHist; // histogram holding phi weights
117   TH1D *fPtWeightsHist;  // histogram holding pt weights
118   TH1D *fEtaWeightsHist; // histogram holding eta weights 
119
120   // Correlations:
121   Bool_t fCalculateCorrelations;  // calculate and store correlations, or perhaps not, if the weather is bad...
122   Bool_t fCalculateIsotropic;     // calculate only isotropic correlations
123   Bool_t fCalculateSame;          // calculate only 'same abs harmonics' correlations TBI 
124   Bool_t fSkipZeroHarmonics;      // skip correlations which have some of the harmonicc equal to zero
125   Bool_t fCalculateSameIsotropic; // calculate all isotropic correlations in 'same abs harmonic' TBI this can be implemented better
126   Bool_t fCalculateAll;           // calculate all possible correlations 
127   Int_t  fDontGoBeyond;           // do not go beyond fDontGoBeyond-p correlators
128
129   // Cumulants:
130   Bool_t fCalculateCumulants; // calculate and store cumulants, or perhaps not, if the weather is bad...
131
132   // Nested loops:
133   Bool_t fCrossCheckWithNestedLoops; // cross-check results with nested loops
134
135   // 'Standard candles':
136   Bool_t fCalculateStandardCandles; // calculate and store 'standard candles'
137   
138   ClassDef(AliAnalysisTaskMultiparticleCorrelations,1); 
139
140 };
141
142 //================================================================================================================
143
144 #endif
145
146
147
148
149
150
151
152
153
154
155