]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWG/FLOW/Tasks/AliAnalysisTaskMultiparticleCorrelations.h
Merge branch 'master' of https://git.cern.ch/reps/AliRoot
[u/mrichter/AliRoot.git] / PWG / FLOW / Tasks / AliAnalysisTaskMultiparticleCorrelations.h
CommitLineData
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
24class 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