]>
Commit | Line | Data |
---|---|---|
bc92c0cb | 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 | ||
52021ae2 | 14 | #ifndef ALIFLOWANALYSISWITHQCUMULANTS_H |
15 | #define ALIFLOWANALYSISWITHQCUMULANTS_H | |
bc92c0cb | 16 | |
52021ae2 | 17 | #include "AliFlowCommonConstants.h"//needed as include |
bc92c0cb | 18 | |
19 | class TObjArray; | |
20 | class TList; | |
21 | class TFile; | |
22 | ||
23 | class TH1; | |
24 | class TProfile; | |
bc92c0cb | 25 | |
26 | class AliFlowEventSimple; | |
27 | class AliFlowTrackSimple; | |
52021ae2 | 28 | class AliFlowVector; |
29 | ||
bc92c0cb | 30 | class AliFlowCommonHist; |
31 | class AliFlowCommonHistResults; | |
bc92c0cb | 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(); | |
1315fe58 | 43 | virtual void WriteHistograms(TString* outputFileName); |
8842fb2b | 44 | |
45 | //---------------------------------------------------------------------------------------------------------------- | |
46 | // setters and getters | |
47 | //---------------------------------------------------------------------------------------------------------------- | |
1315fe58 | 48 | TList* GetHistList() const {return this->fHistList;} //output histogram list |
bc92c0cb | 49 | |
52021ae2 | 50 | void SetIntFlowResults(TH1D* const ifr) {this->fIntFlowResultsQC = ifr;}; |
51 | TH1D* GetIntFlowResults() const {return this->fIntFlowResultsQC;}; | |
8842fb2b | 52 | |
52021ae2 | 53 | void SetDiffFlowResults2nd(TH1D* const diff2nd) {this->fDiffFlowResults2ndOrderQC = diff2nd;}; |
54 | TH1D* GetDiffFlowResults2nd() const {return this->fDiffFlowResults2ndOrderQC;}; | |
8842fb2b | 55 | |
52021ae2 | 56 | void SetDiffFlowResults4th(TH1D* const diff4th) {this->fDiffFlowResults4thOrderQC = diff4th;}; |
57 | TH1D* GetDiffFlowResults4th() const {return this->fDiffFlowResults4thOrderQC;}; | |
8842fb2b | 58 | |
52021ae2 | 59 | void SetCovariances(TH1D* const cov) {this->fCovariances = cov;}; |
60 | TH1D* GetCovariances() const {return this->fCovariances;}; | |
8842fb2b | 61 | |
52021ae2 | 62 | void SetCommonHistsResults2nd(AliFlowCommonHistResults* const chr2nd) {this->fCommonHistsResults2nd = chr2nd;}; |
63 | AliFlowCommonHistResults* GetCommonHistsResults2nd() const {return this->fCommonHistsResults2nd;}; | |
8842fb2b | 64 | |
52021ae2 | 65 | void SetCommonHistsResults4th(AliFlowCommonHistResults* const chr4th) {this->fCommonHistsResults4th = chr4th;}; |
66 | AliFlowCommonHistResults* GetCommonHistsResults4th() const {return this->fCommonHistsResults4th;}; | |
8842fb2b | 67 | |
52021ae2 | 68 | void SetCommonHistsResults6th(AliFlowCommonHistResults* const chr6th) {this->fCommonHistsResults6th = chr6th;}; |
69 | AliFlowCommonHistResults* GetCommonHistsResults6th() const {return this->fCommonHistsResults6th;}; | |
8842fb2b | 70 | |
52021ae2 | 71 | void SetCommonHistsResults8th(AliFlowCommonHistResults* const chr8th) {this->fCommonHistsResults8th = chr8th;}; |
72 | AliFlowCommonHistResults* GetCommonHistsResults8th() const {return this->fCommonHistsResults8th;}; | |
8842fb2b | 73 | |
52021ae2 | 74 | void SetAverageMultiplicity(TProfile* const am) {this->fAvMultIntFlowQC = am;}; |
75 | TProfile* GetAverageMultiplicity() const {return this->fAvMultIntFlowQC;}; | |
8842fb2b | 76 | |
52021ae2 | 77 | void SetQCorrelations(TProfile* const QCorr) {this->fQCorrelations = QCorr;}; |
78 | TProfile* GetQCorrelations() const {return this->fQCorrelations;}; | |
8842fb2b | 79 | |
52021ae2 | 80 | void SetQProduct(TProfile* const qp) {this->fQProduct = qp;}; |
81 | TProfile* GetQProduct() const {return this->fQProduct;}; | |
8842fb2b | 82 | |
52021ae2 | 83 | void SetQVectorComponents(TProfile* const qvc) {this->fQvectorComponents = qvc;}; |
84 | TProfile* GetQVectorComponents() const {return this->fQvectorComponents;}; | |
8842fb2b | 85 | |
52021ae2 | 86 | void SetTwo1n1nPerBin(TProfile* const pb2PerBin1n1n) {this->f2PerBin1n1n = pb2PerBin1n1n;}; |
87 | TProfile* GetTwo1n1nPerBin() const {return this->f2PerBin1n1n;}; | |
8842fb2b | 88 | |
52021ae2 | 89 | void SetTwo2n2nPerBin(TProfile* const pb2PerBin2n2n) {this->f2PerBin2n2n = pb2PerBin2n2n;}; |
90 | TProfile* GetTwo2n2nPerBin() const {return this->f2PerBin2n2n;}; | |
8842fb2b | 91 | |
52021ae2 | 92 | void SetThree2n1n1nPerBin(TProfile* const pb3PerBin2n1n1n) {this->f3PerBin2n1n1n = pb3PerBin2n1n1n;}; |
93 | TProfile* GetThree2n1n1nPerBin() const {return this->f3PerBin2n1n1n;}; | |
8842fb2b | 94 | |
52021ae2 | 95 | void SetThree1n1n2nPerBin(TProfile* const pb3PerBin1n1n2n) {this->f3PerBin1n1n2n = pb3PerBin1n1n2n;}; |
96 | TProfile* GetThree1n1n2nPerBin() const {return this->f3PerBin1n1n2n;}; | |
8842fb2b | 97 | |
52021ae2 | 98 | void SetFour1n1n1n1nPerBin(TProfile* const pb4PerBin1n1n1n1n) {this->f4PerBin1n1n1n1n = pb4PerBin1n1n1n1n;}; |
99 | TProfile* GetFour1n1n1n1nPerBin() const {return this->f4PerBin1n1n1n1n;}; | |
8842fb2b | 100 | |
52021ae2 | 101 | void SetDirectCorrelations(TProfile* const dc) {this->fDirectCorrelations = dc;}; |
102 | TProfile* GetDirectCorrelations() const {return this->fDirectCorrelations;}; | |
8842fb2b | 103 | //---------------------------------------------------------------------------------------------------------------- |
104 | ||
bc92c0cb | 105 | private: |
106 | AliFlowAnalysisWithQCumulants(const AliFlowAnalysisWithQCumulants& afawQc); | |
107 | AliFlowAnalysisWithQCumulants& operator=(const AliFlowAnalysisWithQCumulants& afawQc); | |
8842fb2b | 108 | |
109 | AliFlowTrackSimple* fTrack; //track | |
110 | TList* fHistList; //list to hold all output histograms | |
111 | TProfile* fAvMultIntFlowQC; //average selected multiplicity (for int. flow) | |
bc92c0cb | 112 | |
8842fb2b | 113 | TProfile* fQvectorComponents; //averages of Q-vector components (1st bin: <Q_x>, 2nd bin: <Q_y>, ...) |
bc92c0cb | 114 | |
8842fb2b | 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 | ||
52021ae2 | 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 | |
bc92c0cb | 135 | |
1315fe58 | 136 | AliFlowCommonHist* fCommonHists; //common control histograms |
bc92c0cb | 137 | |
1315fe58 | 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 | |
1315fe58 | 142 | |
5e838eeb | 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 | TH1D* f8pDistribution; //distribution of <8>_{n,n,n,n|n,n,n,n} | |
dee1e0e0 | 147 | |
8842fb2b | 148 | Int_t fnBinsPt; //number of pt bins |
52021ae2 | 149 | Double_t fPtMin; //minimum pt |
150 | Double_t fPtMax; //maximum pt | |
151 | ||
bc92c0cb | 152 | ClassDef(AliFlowAnalysisWithQCumulants, 0); |
153 | }; | |
154 | ||
155 | //================================================================================================================ | |
156 | ||
157 | #endif | |
158 | ||
159 | ||
160 | ||
161 | ||
162 |