AliPhysics  06cda10 (06cda10)
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:
30  AliAnalysisTaskTwoMultiCorrelations(const char *name, Bool_t useParticleWeights=kFALSE);
32 
33  virtual void UserCreateOutputObjects();
34  virtual void UserExec(Option_t *);
35  virtual void Terminate(Option_t *);
36 
37 
38 // Organisation of the methods
39  // 1.) Setters and getters for the data members
40  // 2.) Methods called in UserCreateOutputObjects()
41  // 3.) Methods called in UserExec(Option_t *)
42 
43 // 1.) Setters and getters for the data members
44  void SetParameters(Int_t nCorr, Bool_t usePartweights, Bool_t checkNestedLoops)
45  {
46  this->fNparticlesCorrelations = nCorr;
47  this->fUseParticleWeights = usePartweights;
48  this->fDoNestedLoops = checkNestedLoops;
49  }; // End of void SetParameters(Int_t, Bool_t, Bool_t)
50 
51  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)
52  {
53  this->fHarmonicOne = nOne;
54  this->fHarmonicTwo = nTwo;
55  this->fHarmonicThree = nThree;
56  this->fHarmonicFour = nFour;
57  this->fHarmonicFive = nFive;
58  this->fHarmonicSix = nSix;
59  this->fHarmonicSeven = nSeven;
60  this->fHarmonicEight = nEight;
61  this->fHarmonicNine = nNine;
62  this->fHarmonicTen = nTen;
63  this->fHarmonicEleven = nEleven;
64  this->fHarmonicTwelve = nTwelve;
65  this->fHarmonicThirteen = nThirteen;
66  this->fHarmonicFourteen = nFourteen;
67  }; // 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)
68 
69  void SetCentralityBinning(Int_t const nBins, Float_t minBin, Float_t maxBin)
70  {
71  this->fMinCentrality = minBin;
72  this->fMaxCentrality = maxBin;
73  }; // End of void SetCentralityBinning(Int_t const, Float_t, Float_t)
74 
75  void SetControlOutputList(TList* const col) {this->fControlOutputList = col;};
77  void SetDraftOutputList(TList* const dol) {this->fDraftOutputList = dol;};
78  TList* GetDraftOutputList() const {return this->fDraftOutputList;}
79  void SetFinalOutputList(TList* const fol) {this->fFinalOutputList = fol;};
80  TList* GetFinalOutputList() const {return this->fFinalOutputList;}
81 
82 // 2.) Methods called in UserCreateOutputObjects()
83  virtual void BookAndNestAllLists();
84  virtual void BookControlList();
85  virtual void BookDraftList();
86  virtual void BookFinalList();
87 
88 // 3.) Methods called in UserExec(Option_t *)
89  TComplex CalculateQvector(Int_t n, Int_t p, Int_t nParticles, Double_t phi[], Double_t particleWeight[]);
90  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);
91  virtual void ComputeCorrelationsWithQvectors(Int_t nParticles, Double_t phi[], Double_t particleWeight[], Int_t harmonics[], Int_t nCorr);
92  virtual void ComputeCorrelationsWithTwoNestedLoops(Int_t nOne, Int_t nTwo, Int_t nParticles, Double_t phi[], Double_t particleWeight[]);
93  virtual void ComputeCorrelationsWithFourNestedLoops(Int_t nOne, Int_t nTwo, Int_t nThree, Int_t nFour, Int_t nParticles, Double_t phi[], Double_t particleWeight[]);
94  virtual void ComputeCorrelationsWithStandAloneQvectors(Int_t n, Int_t p, Int_t nParticles, Double_t phi[], Double_t particleWeight[]);
95 
96 
97  private:
100 
101 // Organisation of the data members
102  // 1.) Initial general parameters
103  // 2.) Selection of the methods to compute
104  // 3.) Structure of the output
105  // 4.) Histograms and TProfiles
106 
107 // 1.) Initial general parameters
108  Int_t fNparticlesCorrelations; // Number of m-particle correlations and harmonics (2-14)
109  Int_t fHarmonicOne; // Harmonic n_1
110  Int_t fHarmonicTwo; // Harmonic n_2
111  Int_t fHarmonicThree; // Harmonic n_3
112  Int_t fHarmonicFour; // Harmonic n_4
113  Int_t fHarmonicFive; // Harmonic n_5
114  Int_t fHarmonicSix; // Harmonic n_6
115  Int_t fHarmonicSeven; // Harmonic n_7
116  Int_t fHarmonicEight; // Harmonic n_8
117  Int_t fHarmonicNine; // Harmonic n_9
118  Int_t fHarmonicTen; // Harmonic n_10
119  Int_t fHarmonicEleven; // Harmonic n_11
120  Int_t fHarmonicTwelve; // Harmonic n_12
121  Int_t fHarmonicThirteen; // Harmonic n_13
122  Int_t fHarmonicFourteen; // Harmonic n_14
123  Float_t fMinCentrality; // Minimum of the centrality
124  Float_t fMaxCentrality; // Maximum of the centrality
125 
126 // 2.) Selection of the methods to compute (unit-weighted Q-vectors are mandatory)
127  Bool_t fUseParticleWeights; // Use non-unit particle weights
128  Bool_t fDoNestedLoops; // Cross-check the results with nested loops
129 
130 // 3.) Structure of the output
131  TList* fOutputList; // Main list holding all the output objects
132  TList* fControlOutputList; // List holding all the control objects
133  TList* fDraftOutputList; // List holding all the intermediate objects
134  TList* fFinalOutputList; // List holding all the final results
135 
136 // 4.) Histograms and TProfiles
137  TProfile *fCorrelationWithQvectorsProfile; // m-p correlation estimated with Q-vectors
138  TProfile *fCorrelationWithNestedLoopsProfile; // m-p correlation estimated with nested loops
139  TProfile *fCorrelationWithQvectorsSaProfile; // 2-p correlation estimated with stand-alone Q-vectors
140  TH1F *fControlPhiHisto; // Control histogram for the azimuthal angles
141  TH1F *fCentralityHisto; // Control histogram for the centrality
142  TProfile *fAverageMulti; // Control histogram for the average multiplicity
143 
144 // Version counter for the submissions on Grid
145  // Increase the counter by one when the latest version changes the structure
146  // of the output file
148 
149 }; // End of the definition of the class AliAnalysisTaskTwoMultiCorrelations
150 
151 #endif
152 
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[])
virtual void ComputeCorrelationsWithQvectors(Int_t nParticles, Double_t phi[], Double_t particleWeight[], Int_t harmonics[], Int_t nCorr)
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)
virtual void ComputeCorrelationsWithFourNestedLoops(Int_t nOne, Int_t nTwo, Int_t nThree, Int_t nFour, Int_t nParticles, Double_t phi[], Double_t particleWeight[])
TComplex CalculateQvector(Int_t n, Int_t p, Int_t nParticles, Double_t phi[], Double_t particleWeight[])
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)