]> 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   // Weights:
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;};
59
60   // Correlations:
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;};
75
76   // Cumulants:
77   void SetCalculateCumulants(Bool_t const cc) {this->fCalculateCumulants = cc;};
78   Bool_t GetCalculateCumulants() const {return this->fCalculateCumulants;};
79
80   // Nested loops:
81   void SetCrossCheckWithNestedLoops(Bool_t const ccwnl) {this->fCrossCheckWithNestedLoops = ccwnl;};
82   Bool_t GetCrossCheckWithNestedLoops() const {return this->fCrossCheckWithNestedLoops;};
83   
84   // 'Standard candles':
85   void SetCalculateStandardCandles(Bool_t const csc) {this->fCalculateStandardCandles = csc;};
86   Bool_t GetCalculateStandardCandles() const {return this->fCalculateStandardCandles;};
87
88  private:
89   AliAnalysisTaskMultiparticleCorrelations(const AliAnalysisTaskMultiparticleCorrelations& aatqc);
90   AliAnalysisTaskMultiparticleCorrelations& operator=(const AliAnalysisTaskMultiparticleCorrelations& aatqc);
91   
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)
95
96   // Internal flags:
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 
101
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] 
107
108   // Weights:
109   TH1D *fPhiWeightsHist; // histogram holding phi weights
110   TH1D *fPtWeightsHist;  // histogram holding pt weights
111   TH1D *fEtaWeightsHist; // histogram holding eta weights 
112
113   // Correlations:
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
121
122   // Cumulants:
123   Bool_t fCalculateCumulants; // calculate and store cumulants, or perhaps not, if the weather is bad...
124
125   // Nested loops:
126   Bool_t fCrossCheckWithNestedLoops; // cross-check results with nested loops
127
128   // 'Standard candles':
129   Bool_t fCalculateStandardCandles; // calculate and store 'standard candles'
130   
131   ClassDef(AliAnalysisTaskMultiparticleCorrelations,0); 
132
133 };
134
135 //================================================================================================================
136
137 #endif
138
139
140
141
142
143
144
145
146
147
148