]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG2/FLOW/AliFlowAnalysisWithQCumulants.h
added 8th order Q cumulant
[u/mrichter/AliRoot.git] / PWG2 / FLOW / AliFlowAnalysisWithQCumulants.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  * flow analysis with Q-cumulants * 
9  *                                * 
10  * author:  Ante Bilandzic        * 
11  *           (anteb@nikhef.nl)    *
12  *********************************/ 
13
14 #ifndef ALIFLOWANALYSISWITHQCUMULANTS_H
15 #define ALIFLOWANALYSISWITHQCUMULANTS_H
16
17 #include "AliFlowCommonConstants.h"//needed as include
18
19 class TObjArray;
20 class TList;
21 class TFile;
22
23 class TH1;
24 class TProfile;
25
26 class AliFlowEventSimple;
27 class AliFlowTrackSimple;
28 class AliFlowVector;
29
30 class AliFlowCommonHist;
31 class AliFlowCommonHistResults;
32
33 //================================================================================================================
34
35 class AliFlowAnalysisWithQCumulants{
36  public:
37   AliFlowAnalysisWithQCumulants();
38   virtual ~AliFlowAnalysisWithQCumulants(); 
39   
40   virtual void CreateOutputObjects();
41   virtual void Make(AliFlowEventSimple* anEvent);
42   virtual void Finish();
43   virtual void WriteHistograms(TString* outputFileName);
44  
45 //----------------------------------------------------------------------------------------------------------------
46 //                                            setters and getters                                                 
47 //----------------------------------------------------------------------------------------------------------------
48   TList* GetHistList() const {return this->fHistList;} //output histogram list
49  
50   void SetIntFlowResults(TH1D* const ifr) {this->fIntFlowResultsQC = ifr;};
51   TH1D* GetIntFlowResults() const {return this->fIntFlowResultsQC;};
52   
53   void SetDiffFlowResults2nd(TH1D* const diff2nd) {this->fDiffFlowResults2ndOrderQC = diff2nd;};
54   TH1D* GetDiffFlowResults2nd() const {return this->fDiffFlowResults2ndOrderQC;};
55   
56   void SetDiffFlowResults4th(TH1D* const diff4th) {this->fDiffFlowResults4thOrderQC = diff4th;};
57   TH1D* GetDiffFlowResults4th() const {return this->fDiffFlowResults4thOrderQC;};
58   
59   void SetCovariances(TH1D* const cov) {this->fCovariances = cov;};
60   TH1D* GetCovariances() const {return this->fCovariances;};
61   
62   void SetCommonHistsResults2nd(AliFlowCommonHistResults* const chr2nd) {this->fCommonHistsResults2nd = chr2nd;};
63   AliFlowCommonHistResults* GetCommonHistsResults2nd() const {return this->fCommonHistsResults2nd;};
64   
65   void SetCommonHistsResults4th(AliFlowCommonHistResults* const chr4th) {this->fCommonHistsResults4th = chr4th;};
66   AliFlowCommonHistResults* GetCommonHistsResults4th() const {return this->fCommonHistsResults4th;};
67   
68   void SetCommonHistsResults6th(AliFlowCommonHistResults* const chr6th) {this->fCommonHistsResults6th = chr6th;};
69   AliFlowCommonHistResults* GetCommonHistsResults6th() const {return this->fCommonHistsResults6th;};
70   
71   void SetCommonHistsResults8th(AliFlowCommonHistResults* const chr8th) {this->fCommonHistsResults8th = chr8th;};
72   AliFlowCommonHistResults* GetCommonHistsResults8th() const {return this->fCommonHistsResults8th;};
73   
74   void SetAverageMultiplicity(TProfile* const am) {this->fAvMultIntFlowQC = am;};
75   TProfile* GetAverageMultiplicity() const {return this->fAvMultIntFlowQC;};
76   
77   void SetQCorrelations(TProfile* const QCorr) {this->fQCorrelations = QCorr;};
78   TProfile* GetQCorrelations() const {return this->fQCorrelations;};
79   
80   void SetQProduct(TProfile* const qp) {this->fQProduct = qp;};
81   TProfile* GetQProduct() const {return this->fQProduct;};
82   
83   void SetQVectorComponents(TProfile* const qvc) {this->fQvectorComponents = qvc;};
84   TProfile* GetQVectorComponents() const {return this->fQvectorComponents;};
85   
86   void SetTwo1n1nPerBin(TProfile* const pb2PerBin1n1n) {this->f2PerBin1n1n = pb2PerBin1n1n;};
87   TProfile* GetTwo1n1nPerBin() const {return this->f2PerBin1n1n;};
88   
89   void SetTwo2n2nPerBin(TProfile* const pb2PerBin2n2n) {this->f2PerBin2n2n = pb2PerBin2n2n;};
90   TProfile* GetTwo2n2nPerBin() const {return this->f2PerBin2n2n;};
91   
92   void SetThree2n1n1nPerBin(TProfile* const pb3PerBin2n1n1n) {this->f3PerBin2n1n1n = pb3PerBin2n1n1n;};
93   TProfile* GetThree2n1n1nPerBin() const {return this->f3PerBin2n1n1n;};
94   
95   void SetThree1n1n2nPerBin(TProfile* const pb3PerBin1n1n2n) {this->f3PerBin1n1n2n = pb3PerBin1n1n2n;};
96   TProfile* GetThree1n1n2nPerBin() const {return this->f3PerBin1n1n2n;};
97   
98   void SetFour1n1n1n1nPerBin(TProfile* const pb4PerBin1n1n1n1n) {this->f4PerBin1n1n1n1n = pb4PerBin1n1n1n1n;};
99   TProfile* GetFour1n1n1n1nPerBin() const {return this->f4PerBin1n1n1n1n;}; 
100   
101   void SetDirectCorrelations(TProfile* const dc) {this->fDirectCorrelations = dc;};
102   TProfile* GetDirectCorrelations() const {return this->fDirectCorrelations;};
103 //----------------------------------------------------------------------------------------------------------------
104  
105  private:
106   AliFlowAnalysisWithQCumulants(const AliFlowAnalysisWithQCumulants& afawQc);
107   AliFlowAnalysisWithQCumulants& operator=(const AliFlowAnalysisWithQCumulants& afawQc);
108   
109   AliFlowTrackSimple* fTrack;                           //track
110   TList*              fHistList;                        //list to hold all output histograms
111   TProfile*           fAvMultIntFlowQC;                 //average selected multiplicity (for int. flow)
112  
113   TProfile*           fQvectorComponents;               //averages of Q-vector components (1st bin: <Q_x>, 2nd bin: <Q_y>, ...)
114             
115   TH1D*               fIntFlowResultsQC;                //integrated flow results from Q-cumulants
116   TH1D*               fDiffFlowResults2ndOrderQC;       //differential flow results from 2nd order Q-cumulant
117   TH1D*               fDiffFlowResults4thOrderQC;       //differential flow results from 4th order Q-cumulant
118   TH1D*               fCovariances;                     //final results for covariances: 1st bin: <2*4>-<2>*<4>, 2nd bin: <2*6>-<2>*<6>, ...
119   
120   TProfile*                  fQCorrelations;            //multi-particle correlations calculated from Q-vectors 
121   TProfile*                  fQProduct;                 //average of products: 1st bin: <2*4>, 2nd bin: <2*6>, ...
122   
123   TProfile*                  fDirectCorrelations;       //multi-particle correlations calculated with nested loop  
124   
125   TProfile*                  fReq1n;                    //real part of q-vector evaluated in harmonic n for each pt-bin
126   TProfile*                  fImq1n;                    //imaginary part of q-vector evaluated in harmonic n for each pt-bin
127   TProfile*                  fReq2n;                    //real part of q-vector evaluated in harmonic 2n for each pt-bin
128   TProfile*                  fImq2n;                    //imaginary part of q-vector evaluated in harmonic 2n for each pt-bin
129
130   TProfile*                  f2PerBin1n1n;              //<<2'>>_{n|n} per pt-bin
131   TProfile*                  f2PerBin2n2n;              //<<2'>>_{2n|2n} per pt-bin
132   TProfile*                  f3PerBin2n1n1n;            //<<3'>>_{2n|n,n} per pt-bin
133   TProfile*                  f3PerBin1n1n2n;            //<<3'>>_{n,n|2n} per pt-bin
134   TProfile*                  f4PerBin1n1n1n1n;          //<<4'>>_{n,n|n,n} per pt-bin
135  
136   AliFlowCommonHist*         fCommonHists;              //common control histograms
137   
138   AliFlowCommonHistResults*  fCommonHistsResults2nd;    //final results for 2nd order int. and diff. flow stored in the common histograms 
139   AliFlowCommonHistResults*  fCommonHistsResults4th;    //final results for 4th order int. and diff. flow stored in the common histograms 
140   AliFlowCommonHistResults*  fCommonHistsResults6th;    //final results for 6th order int. and diff. flow stored in the common histograms
141   AliFlowCommonHistResults*  fCommonHistsResults8th;    //final results for 8th order int. and diff. flow stored in the common histograms
142       
143   TH1D*                      f2pDistribution;            //distribution of <2>_{n|n}
144   TH1D*                      f4pDistribution;            //distribution of <4>_{n,n|n,n}
145   TH1D*                      f6pDistribution;            //distribution of <6>_{n,n,n|n,n,n} 
146  
147   Int_t                      fnBinsPt;                  //number of pt bins
148   Double_t                   fPtMin;                    //minimum pt   
149   Double_t                   fPtMax;                    //maximum pt           
150                         
151   ClassDef(AliFlowAnalysisWithQCumulants, 0);
152 };
153
154 //================================================================================================================
155
156 #endif
157
158
159
160
161