AliPhysics  ff07904 (ff07904)
AliAnalysisTaskTwoMultiCorrelations.h
Go to the documentation of this file.
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 anisotropic flow analysis of data taken by ALICE *
9 * with different methods for two- and multiparticle correlations *
10 * *
11 * Author: Cindy Mordasini (cindy.mordasini@cern.ch) *
12 *******************************************************************************/
13 
14 #ifndef ALIANALYSISTASKTWOMULTICORRELATIONS_H
15 #define ALIANALYSISTASKTWOMULTICORRELATIONS_H
16 
17 #include "AliAnalysisTaskSE.h"
18 #include "AliAODTrack.h"
19 #include "AliAODEvent.h"
20 #include "AliVEvent.h"
21 #include "TProfile.h"
22 #include "TComplex.h"
23 #include "TH1F.h"
24 
25 //==============================================================================
26 
28  public:
29  // The six following lines are mandatory for AliAnalysisTaskSE to use the class properly
31  AliAnalysisTaskTwoMultiCorrelations(const char *name, Bool_t useParticleWeights=kFALSE);
33 
34  virtual void UserCreateOutputObjects();
35  virtual void UserExec(Option_t *);
36  virtual void Terminate(Option_t *);
37 
38 
39 // Organisation of the methods
40  // Setters and getters for the data members
41  // Methods called in UserCreateOutputObjects()
42  // Methods called in UserExec(Option_t *)
43  // Methods called in Terminate(Option_t *)
44 
45  // Setters and getters for the data members
46  void SetParameters(Int_t nCorr, Bool_t usePartweights, Bool_t checkNestedLoops)
47  {
48  this->fNparticlesCorrelations = nCorr;
49  this->fUseParticleWeights = usePartweights;
50  this->fDoNestedLoops = checkNestedLoops;
51  }; // End of void SetParameters(Int_t, Bool_t, Bool_t)
52 
53  void SetHarmonics(Int_t nOne, Int_t nTwo, Int_t nThree, Int_t nFour, Int_t nFive, Int_t nSix, Int_t nSeven, Int_t nEight, Int_t nNine, Int_t nTen, Int_t nEleven, Int_t nTwelve, Int_t nThirteen, Int_t nFourteen)
54  {
55  this->fHarmonicOne = nOne;
56  this->fHarmonicTwo = nTwo;
57  this->fHarmonicThree = nThree;
58  this->fHarmonicFour = nFour;
59  this->fHarmonicFive = nFive;
60  this->fHarmonicSix = nSix;
61  this->fHarmonicSeven = nSeven;
62  this->fHarmonicEight = nEight;
63  this->fHarmonicNine = nNine;
64  this->fHarmonicTen = nTen;
65  this->fHarmonicEleven = nEleven;
66  this->fHarmonicTwelve = nTwelve;
67  this->fHarmonicThirteen = nThirteen;
68  this->fHarmonicFourteen = nFourteen;
69  }; // End of void SetHarmonics(Int_t, Int_t, Int_t, Int_t, Int_t, Int_t, Int_t, Int_t, Int_t, Int_t, Int_t, Int_t, Int_t, Int_t)
70 
71  void SetCentralityBinning(Int_t const nBins, Float_t minBin, Float_t maxBin)
72  {
73  this->fMinCentrality = minBin;
74  this->fMaxCentrality = maxBin;
75  }; // End of void SetCentralityBinning(Int_t const, Float_t, Float_t)
76 
77  void SetControlOutputList(TList* const col) {this->fControlOutputList = col;};
79  void SetDraftOutputList(TList* const dol) {this->fDraftOutputList = dol;};
80  TList* GetDraftOutputList() const {return this->fDraftOutputList;}
81  void SetFinalOutputList(TList* const fol) {this->fFinalOutputList = fol;};
82  TList* GetFinalOutputList() const {return this->fFinalOutputList;}
83 
84  // Methods called in UserCreateOutputObjects()
85  virtual void BookAndNestAllLists();
86  virtual void BookControlList();
87  virtual void BookDraftList();
88  virtual void BookFinalList();
89 
90  // Methods called in UserExec(Option_t *)
91  TComplex CalculateQvector(Int_t n, Int_t p, Int_t nParticles, Double_t phi[], Double_t particleWeight[]);
92  TComplex CalculateRecursionWithQvectors(Int_t nParticles, Double_t phi[], Double_t particleWeight[], Int_t nCorr, Int_t harmonics[], Int_t p = 1, Int_t skip = 0);
93  virtual void ComputeCorrelationsWithQvectors(Int_t nParticles, Double_t phi[], Double_t particleWeight[], Int_t harmonics[], Int_t nCorr);
94  virtual void ComputeCorrelationsWithTwoNestedLoops(Int_t nOne, Int_t nTwo, Int_t nParticles, Double_t phi[], Double_t particleWeight[]);
95  virtual void ComputeCorrelationsWithFourNestedLoops(Int_t nOne, Int_t nTwo, Int_t nThree, Int_t nFour, Int_t nParticles, Double_t phi[], Double_t particleWeight[]);
96  virtual void ComputeCorrelationsWithStandAloneQvectors(Int_t n, Int_t p, Int_t nParticles, Double_t phi[], Double_t particleWeight[]);
97 
98  // Methods called in Terminate(Option_t *)
99  //virtual void EstimateFlowWithCumulants(Int_t maxMcorr);
100 
101 
102  private:
105 
106 // Organisation of the data members
107  // Initial general parameters
108  // Selection of the methods to compute
109  // Structure of the output
110  // Histograms and TProfiles
111 
112  // Initial general parameters
113  Int_t fNparticlesCorrelations; // Number of m-particle correlations and harmonics (2-14)
114  Int_t fHarmonicOne; // Harmonic n_1
115  Int_t fHarmonicTwo; // Harmonic n_2
116  Int_t fHarmonicThree; // Harmonic n_3
117  Int_t fHarmonicFour; // Harmonic n_4
118  Int_t fHarmonicFive; // Harmonic n_5
119  Int_t fHarmonicSix; // Harmonic n_6
120  Int_t fHarmonicSeven; // Harmonic n_7
121  Int_t fHarmonicEight; // Harmonic n_8
122  Int_t fHarmonicNine; // Harmonic n_9
123  Int_t fHarmonicTen; // Harmonic n_10
124  Int_t fHarmonicEleven; // Harmonic n_11
125  Int_t fHarmonicTwelve; // Harmonic n_12
126  Int_t fHarmonicThirteen; // Harmonic n_13
127  Int_t fHarmonicFourteen; // Harmonic n_14
128  Float_t fMinCentrality; // Minimum of the centrality
129  Float_t fMaxCentrality; // Maximum of the centrality
130 
131  // Selection of the methods to compute (unit-weighted Q-vectors are default)
132  Bool_t fUseParticleWeights; // Use non-unit particle weights
133  Bool_t fDoNestedLoops; // Cross-check the results with nested loops
134 
135  // Structure of the output
136  TList* fOutputList; // Main list holding all the output objects
137  TList* fControlOutputList; // List holding all the control objects
138  TList* fDraftOutputList; // List holding all the intermediate objects
139  TList* fFinalOutputList; // List holding all the final results
140 
141  // Histograms and TProfiles
150  //TProfile *fEstimatedFlowWithQcProfile; //! Anisotropic flow estimated with Q-cumulants
151 
152  // Version counter for the submissions on Grid
153  // Increase the counter by one when the latest version changes the structure
154  // of the output file
156 
157 }; // End of the definition of the class AliAnalysisTaskTwoMultiCorrelations
158 
159 #endif
160 
double Double_t
Definition: External.C:58
void SetCentralityBinning(Int_t const nBins, Float_t minBin, Float_t maxBin)
AliAnalysisTaskTwoMultiCorrelations & operator=(const AliAnalysisTaskTwoMultiCorrelations &aattmc)
virtual void ComputeCorrelationsWithStandAloneQvectors(Int_t n, Int_t p, Int_t nParticles, Double_t phi[], Double_t particleWeight[])
TH1F * fControlPhiHisto
Control histogram for the pseudorapidity.
virtual void ComputeCorrelationsWithQvectors(Int_t nParticles, Double_t phi[], Double_t particleWeight[], Int_t harmonics[], Int_t nCorr)
TProfile * fCorrelationWithQvectorsSaProfile
m-p correlation estimated with nested loops
virtual void ComputeCorrelationsWithTwoNestedLoops(Int_t nOne, Int_t nTwo, Int_t nParticles, Double_t phi[], Double_t particleWeight[])
int Int_t
Definition: External.C:63
float Float_t
Definition: External.C:68
void SetParameters(Int_t nCorr, Bool_t usePartweights, Bool_t checkNestedLoops)
TProfile * fCorrelationWithQvectorsProfile
Control histogram for the multiplicity distribution.
virtual void ComputeCorrelationsWithFourNestedLoops(Int_t nOne, Int_t nTwo, Int_t nThree, Int_t nFour, Int_t nParticles, Double_t phi[], Double_t particleWeight[])
TH1F * fMultiplicityDist
Control histogram for the centrality.
TH1F * fEtaControlHisto
Control histogram for the transverse momentum.
TProfile * fCorrelationWithNestedLoopsProfile
m-p correlation estimated with Q-vectors
TComplex CalculateQvector(Int_t n, Int_t p, Int_t nParticles, Double_t phi[], Double_t particleWeight[])
TH1F * fCentralityHisto
Control histogram for the azimuthal angles.
const char Option_t
Definition: External.C:48
bool Bool_t
Definition: External.C:53
TComplex CalculateRecursionWithQvectors(Int_t nParticles, Double_t phi[], Double_t particleWeight[], Int_t nCorr, Int_t harmonics[], Int_t p=1, Int_t skip=0)
void SetHarmonics(Int_t nOne, Int_t nTwo, Int_t nThree, Int_t nFour, Int_t nFive, Int_t nSix, Int_t nSeven, Int_t nEight, Int_t nNine, Int_t nTen, Int_t nEleven, Int_t nTwelve, Int_t nThirteen, Int_t nFourteen)