]>
Commit | Line | Data |
---|---|---|
37d2f768 | 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 | ||
7ecb5af4 | 34 | // Internal flags: |
6696a113 | 35 | void SetMinNoRPs(Int_t const min) {fUseInternalFlags = kTRUE; this->fMinNoRPs = min;}; |
7ecb5af4 | 36 | Int_t GetMinNoRPs() const {return this->fMinNoRPs;}; |
6696a113 | 37 | void SetMaxNoRPs(Int_t const max) {fUseInternalFlags = kTRUE; this->fMaxNoRPs = max;}; |
7ecb5af4 | 38 | Int_t GetMaxNoRPs() const {return this->fMaxNoRPs;}; |
6696a113 | 39 | void SetExactNoRPs(Int_t const exact) {fUseInternalFlags = kTRUE; this->fExactNoRPs = exact;}; |
7ecb5af4 | 40 | Int_t GetExactNoRPs() const {return this->fExactNoRPs;}; |
6696a113 | 41 | |
7ecb5af4 | 42 | // Control histograms: |
43 | void SetFillControlHistograms(Bool_t const fch) {this->fFillControlHistograms = fch;}; | |
44 | Bool_t GetFillControlHistograms() const {return this->fFillControlHistograms;}; | |
6696a113 | 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;}; | |
7ecb5af4 | 51 | |
9efbd2f5 | 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 | |
7ecb5af4 | 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;}; | |
6696a113 | 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;}; | |
7ecb5af4 | 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;}; | |
37d2f768 | 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) | |
7ecb5af4 | 99 | |
100 | // Internal flags: | |
6696a113 | 101 | Bool_t fUseInternalFlags; // use internal flags (automatically set if some internal flag is used) |
7ecb5af4 | 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: | |
6696a113 | 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] | |
7ecb5af4 | 111 | |
9efbd2f5 | 112 | // Q-vector: |
113 | Bool_t fCalculateQvector; // to calculate or not to calculate Q-vector components, that's a Boolean... | |
114 | ||
7ecb5af4 | 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: | |
6696a113 | 121 | Bool_t fCalculateCorrelations; // calculate and store correlations, or perhaps not, if the weather is bad... |
122 | Bool_t fCalculateIsotropic; // calculate only isotropic correlations | |
9efbd2f5 | 123 | Bool_t fCalculateSame; // calculate only 'same abs harmonics' correlations TBI |
6696a113 | 124 | Bool_t fSkipZeroHarmonics; // skip correlations which have some of the harmonicc equal to zero |
9efbd2f5 | 125 | Bool_t fCalculateSameIsotropic; // calculate all isotropic correlations in 'same abs harmonic' TBI this can be implemented better |
6696a113 | 126 | Bool_t fCalculateAll; // calculate all possible correlations |
127 | Int_t fDontGoBeyond; // do not go beyond fDontGoBeyond-p correlators | |
7ecb5af4 | 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' | |
37d2f768 | 137 | |
9efbd2f5 | 138 | ClassDef(AliAnalysisTaskMultiparticleCorrelations,1); |
37d2f768 | 139 | |
140 | }; | |
141 | ||
142 | //================================================================================================================ | |
143 | ||
144 | #endif | |
145 | ||
146 | ||
147 | ||
148 | ||
149 | ||
150 | ||
151 | ||
152 | ||
153 | ||
154 | ||
155 |