2 * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved.
3 * See cxx source for full Copyright notice
7 /**********************************
8 * flow analysis with Q-cumulants *
10 * author: Ante Bilandzic *
12 *********************************/
14 #ifndef ALIFLOWANALYSISWITHQCUMULANTS_H
15 #define ALIFLOWANALYSISWITHQCUMULANTS_H
17 #include "AliFlowCommonConstants.h"//needed as include
26 class AliFlowEventSimple;
27 class AliFlowTrackSimple;
30 class AliFlowCommonHist;
31 class AliFlowCommonHistResults;
33 //================================================================================================================
35 class AliFlowAnalysisWithQCumulants{
37 AliFlowAnalysisWithQCumulants();
38 virtual ~AliFlowAnalysisWithQCumulants();
40 virtual void CreateOutputObjects();
41 virtual void Make(AliFlowEventSimple* anEvent);
42 virtual void Finish();
43 virtual void WriteHistograms(TString* outputFileName);
45 //----------------------------------------------------------------------------------------------------------------
46 // setters and getters
47 //----------------------------------------------------------------------------------------------------------------
48 TList* GetHistList() const {return this->fHistList;} //output histogram list
50 void SetIntFlowResults(TH1D* const ifr) {this->fIntFlowResultsQC = ifr;};
51 TH1D* GetIntFlowResults() const {return this->fIntFlowResultsQC;};
53 void SetDiffFlowResults2nd(TH1D* const diff2nd) {this->fDiffFlowResults2ndOrderQC = diff2nd;};
54 TH1D* GetDiffFlowResults2nd() const {return this->fDiffFlowResults2ndOrderQC;};
56 void SetDiffFlowResults4th(TH1D* const diff4th) {this->fDiffFlowResults4thOrderQC = diff4th;};
57 TH1D* GetDiffFlowResults4th() const {return this->fDiffFlowResults4thOrderQC;};
59 void SetCovariances(TH1D* const cov) {this->fCovariances = cov;};
60 TH1D* GetCovariances() const {return this->fCovariances;};
62 void SetCommonHistsResults2nd(AliFlowCommonHistResults* const chr2nd) {this->fCommonHistsResults2nd = chr2nd;};
63 AliFlowCommonHistResults* GetCommonHistsResults2nd() const {return this->fCommonHistsResults2nd;};
65 void SetCommonHistsResults4th(AliFlowCommonHistResults* const chr4th) {this->fCommonHistsResults4th = chr4th;};
66 AliFlowCommonHistResults* GetCommonHistsResults4th() const {return this->fCommonHistsResults4th;};
68 void SetCommonHistsResults6th(AliFlowCommonHistResults* const chr6th) {this->fCommonHistsResults6th = chr6th;};
69 AliFlowCommonHistResults* GetCommonHistsResults6th() const {return this->fCommonHistsResults6th;};
71 void SetCommonHistsResults8th(AliFlowCommonHistResults* const chr8th) {this->fCommonHistsResults8th = chr8th;};
72 AliFlowCommonHistResults* GetCommonHistsResults8th() const {return this->fCommonHistsResults8th;};
74 void SetAverageMultiplicity(TProfile* const am) {this->fAvMultIntFlowQC = am;};
75 TProfile* GetAverageMultiplicity() const {return this->fAvMultIntFlowQC;};
77 void SetQCorrelations(TProfile* const QCorr) {this->fQCorrelations = QCorr;};
78 TProfile* GetQCorrelations() const {return this->fQCorrelations;};
80 void SetQProduct(TProfile* const qp) {this->fQProduct = qp;};
81 TProfile* GetQProduct() const {return this->fQProduct;};
83 void SetQVectorComponents(TProfile* const qvc) {this->fQvectorComponents = qvc;};
84 TProfile* GetQVectorComponents() const {return this->fQvectorComponents;};
86 void SetTwo1n1nPerBin(TProfile* const pb2PerBin1n1n) {this->f2PerBin1n1n = pb2PerBin1n1n;};
87 TProfile* GetTwo1n1nPerBin() const {return this->f2PerBin1n1n;};
89 void SetTwo2n2nPerBin(TProfile* const pb2PerBin2n2n) {this->f2PerBin2n2n = pb2PerBin2n2n;};
90 TProfile* GetTwo2n2nPerBin() const {return this->f2PerBin2n2n;};
92 void SetThree2n1n1nPerBin(TProfile* const pb3PerBin2n1n1n) {this->f3PerBin2n1n1n = pb3PerBin2n1n1n;};
93 TProfile* GetThree2n1n1nPerBin() const {return this->f3PerBin2n1n1n;};
95 void SetThree1n1n2nPerBin(TProfile* const pb3PerBin1n1n2n) {this->f3PerBin1n1n2n = pb3PerBin1n1n2n;};
96 TProfile* GetThree1n1n2nPerBin() const {return this->f3PerBin1n1n2n;};
98 void SetFour1n1n1n1nPerBin(TProfile* const pb4PerBin1n1n1n1n) {this->f4PerBin1n1n1n1n = pb4PerBin1n1n1n1n;};
99 TProfile* GetFour1n1n1n1nPerBin() const {return this->f4PerBin1n1n1n1n;};
101 void SetDirectCorrelations(TProfile* const dc) {this->fDirectCorrelations = dc;};
102 TProfile* GetDirectCorrelations() const {return this->fDirectCorrelations;};
103 //----------------------------------------------------------------------------------------------------------------
106 AliFlowAnalysisWithQCumulants(const AliFlowAnalysisWithQCumulants& afawQc);
107 AliFlowAnalysisWithQCumulants& operator=(const AliFlowAnalysisWithQCumulants& afawQc);
109 AliFlowTrackSimple* fTrack; //track
110 TList* fHistList; //list to hold all output histograms
111 TProfile* fAvMultIntFlowQC; //average selected multiplicity (for int. flow)
113 TProfile* fQvectorComponents; //averages of Q-vector components (1st bin: <Q_x>, 2nd bin: <Q_y>, ...)
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>, ...
120 TProfile* fQCorrelations; //multi-particle correlations calculated from Q-vectors
121 TProfile* fQProduct; //average of products: 1st bin: <2*4>, 2nd bin: <2*6>, ...
123 TProfile* fDirectCorrelations; //multi-particle correlations calculated with nested loop
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
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
136 AliFlowCommonHist* fCommonHists; //common control histograms
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
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}
147 Int_t fnBinsPt; //number of pt bins
148 Double_t fPtMin; //minimum pt
149 Double_t fPtMax; //maximum pt
151 ClassDef(AliFlowAnalysisWithQCumulants, 0);
154 //================================================================================================================