]>
Commit | Line | Data |
---|---|---|
8d312f00 | 1 | /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * |
2 | * See cxx source for full Copyright notice */ | |
3 | ||
4 | /* $Id$ */ | |
5 | ||
6 | ||
395fadba | 7 | #ifndef ALIFLOWANALYSISWITHSCALARPRODUCT_H |
8 | #define ALIFLOWANALYSISWITHSCALARPRODUCT_H | |
8d312f00 | 9 | |
8d312f00 | 10 | #include "TString.h" |
11 | ||
12 | class AliFlowTrackSimple; | |
13 | class AliFlowEventSimple; | |
14 | class AliFlowCommonHist; | |
395fadba | 15 | class AliFlowCommonHistResults; |
8d312f00 | 16 | |
17 | class TProfile; | |
d7eb18ec | 18 | class TList; |
1dfa3c16 | 19 | class TFile; |
8d312f00 | 20 | class Riostream; |
21 | ||
12dc476e | 22 | ///////////////////////////////////////////////////////////////////////////// |
8d312f00 | 23 | // Description: Maker to analyze Flow from the Scalar Product method. |
24 | // | |
12dc476e | 25 | // authors: N. van der Kolk (kolk@nikhef.nl), A. Bilandzic (anteb@nikhef.nl) |
26 | ///////////////////////////////////////////////////////////////////////////// | |
8d312f00 | 27 | |
28 | class AliFlowAnalysisWithScalarProduct { | |
29 | ||
30 | public: | |
31 | ||
e35ddff0 | 32 | AliFlowAnalysisWithScalarProduct(); //default constructor |
8d312f00 | 33 | virtual ~AliFlowAnalysisWithScalarProduct(); //destructor |
34 | ||
ad87ae62 | 35 | void Init(); //defines variables and histograms |
36 | void Make(AliFlowEventSimple* anEvent); //calculates variables and fills histograms | |
37 | void GetOutputHistograms(TList *outputListHistos); //get pointers to all output histograms (called before Finish()) | |
38 | void Finish(); //saves histograms | |
39 | void WriteHistograms(TString* outputFileName); //writes histograms locally | |
40 | void WriteHistograms(TString outputFileName); //writes histograms locally | |
41 | void WriteHistograms(TDirectoryFile *outputFileName); //writes histograms locally | |
c1cd5c5f | 42 | |
b125a454 | 43 | void SetDebug(Bool_t kt) { this->fDebug = kt ; } |
44 | Bool_t GetDebug() const { return this->fDebug ; } | |
8d312f00 | 45 | |
12dc476e | 46 | Double_t CalculateStatisticalError(Int_t bin, |
47 | Double_t aStatErrorQaQb, | |
48 | TProfile* aHistProUQ, | |
49 | TProfile* aHistProUQQaQb, | |
50 | TH1D** aHistSumOfWeights); | |
51 | ||
52 | ||
29195b69 | 53 | //phi weights |
54 | void SetWeightsList(TList* const aWeightsList) {this->fWeightsList = (TList*)aWeightsList->Clone();} | |
55 | TList* GetWeightsList() const {return this->fWeightsList;} | |
56 | void SetUsePhiWeights(Bool_t const aPhiW) {this->fUsePhiWeights = aPhiW;} | |
57 | Bool_t GetUsePhiWeights() const {return this->fUsePhiWeights;} | |
58 | ||
8d312f00 | 59 | // Output |
b125a454 | 60 | TList* GetHistList() const { return this->fHistList ; } // Gets output histogram list |
12dc476e | 61 | //histogram getters |
62 | TProfile* GetHistProUQetaRP() const {return this->fHistProUQetaRP;} | |
395fadba | 63 | TProfile* GetHistProUQetaPOI() const {return this->fHistProUQetaPOI;} |
12dc476e | 64 | TProfile* GetHistProUQPtRP() const {return this->fHistProUQPtRP;} |
65 | TProfile* GetHistProUQPtPOI() const {return this->fHistProUQPtPOI;} | |
66 | TProfile* GetHistProQaQb() const {return this->fHistProQaQb;} | |
67 | TH1D* GetHistSumOfLinearWeights() const {return this->fHistSumOfLinearWeights;} | |
68 | TH1D* GetHistSumOfQuadraticWeights() const {return this->fHistSumOfQuadraticWeights;} | |
69 | TProfile* GetHistProUQQaQbPtRP() const {return this->fHistProUQQaQbPtRP;} | |
70 | TProfile* GetHistProUQQaQbEtaRP() const {return this->fHistProUQQaQbEtaRP;} | |
71 | TProfile* GetHistProUQQaQbPtPOI() const {return this->fHistProUQQaQbPtPOI;} | |
72 | TProfile* GetHistProUQQaQbEtaPOI() const {return this->fHistProUQQaQbEtaPOI;} | |
73 | TH1D* GetHistSumOfWeightsPtRP(Int_t i) const {return this->fHistSumOfWeightsPtRP[i];} | |
74 | TH1D* GetHistSumOfWeightsEtaRP(Int_t i) const {return this->fHistSumOfWeightsEtaRP[i];} | |
75 | TH1D* GetHistSumOfWeightsPtPOI(Int_t i) const {return this->fHistSumOfWeightsPtPOI[i];} | |
76 | TH1D* GetHistSumOfWeightsEtaPOI(Int_t i) const {return this->fHistSumOfWeightsEtaPOI[i];} | |
77 | AliFlowCommonHist* GetCommonHists() const {return this->fCommonHists; } | |
395fadba | 78 | AliFlowCommonHistResults* GetCommonHistsRes() const {return this->fCommonHistsRes; } |
395fadba | 79 | |
12dc476e | 80 | //histogram setters |
81 | void SetHistProUQetaRP(TProfile* const aHistProUQetaRP) | |
82 | {this->fHistProUQetaRP = aHistProUQetaRP;} | |
83 | void SetHistProUQetaPOI(TProfile* const aHistProUQetaPOI) | |
84 | {this->fHistProUQetaPOI = aHistProUQetaPOI;} | |
85 | void SetHistProUQPtRP(TProfile* const aHistProUQPtRP) | |
86 | {this->fHistProUQPtRP = aHistProUQPtRP;} | |
87 | void SetHistProUQPtPOI(TProfile* const aHistProUQPtPOI) | |
88 | {this->fHistProUQPtPOI = aHistProUQPtPOI;} | |
89 | void SetHistProQaQb(TProfile* const aHistProQaQb) | |
90 | {this->fHistProQaQb = aHistProQaQb;} | |
91 | void SetHistSumOfLinearWeights(TH1D* const aHistSumOfLinearWeights) | |
92 | {this->fHistSumOfLinearWeights = aHistSumOfLinearWeights;} | |
93 | void SetHistSumOfQuadraticWeights(TH1D* const aHistSumOfQuadraticWeights) | |
94 | {this->fHistSumOfQuadraticWeights = aHistSumOfQuadraticWeights;} | |
95 | void SetHistProUQQaQbPtRP(TProfile* const aHistProUQQaQbPtRP) | |
96 | {this->fHistProUQQaQbPtRP = aHistProUQQaQbPtRP;} | |
97 | void SetHistProUQQaQbEtaRP(TProfile* const aHistProUQQaQbEtaRP) | |
98 | {this->fHistProUQQaQbEtaRP = aHistProUQQaQbEtaRP;} | |
99 | void SetHistProUQQaQbPtPOI(TProfile* const aHistProUQQaQbPtPOI) | |
100 | {this->fHistProUQQaQbPtPOI = aHistProUQQaQbPtPOI;} | |
101 | void SetHistProUQQaQbEtaPOI(TProfile* const aHistProUQQaQbEtaPOI) | |
102 | {this->fHistProUQQaQbEtaPOI = aHistProUQQaQbEtaPOI;} | |
103 | void SetHistSumOfWeightsPtRP(TH1D* const aHistSumOfWeightsPtRP, Int_t const i) | |
104 | {this->fHistSumOfWeightsPtRP[i] = aHistSumOfWeightsPtRP;} | |
105 | void SetHistSumOfWeightsEtaRP(TH1D* const aHistSumOfWeightsEtaRP, Int_t const i) | |
106 | {this->fHistSumOfWeightsEtaRP[i] = aHistSumOfWeightsEtaRP;} | |
107 | void SetHistSumOfWeightsPtPOI(TH1D* const aHistSumOfWeightsPtPOI, Int_t const i) | |
108 | {this->fHistSumOfWeightsPtPOI[i] = aHistSumOfWeightsPtPOI;} | |
109 | void SetHistSumOfWeightsEtaPOI(TH1D* const aHistSumOfWeightsEtaPOI, Int_t const i) | |
110 | {this->fHistSumOfWeightsEtaPOI[i] = aHistSumOfWeightsEtaPOI;} | |
111 | void SetCommonHists(AliFlowCommonHist* const someCommonHists) | |
112 | {this->fCommonHists = someCommonHists; } | |
113 | void SetCommonHistsRes(AliFlowCommonHistResults* const someCommonHistsRes) | |
114 | {this->fCommonHistsRes = someCommonHistsRes; } | |
115 | ||
395fadba | 116 | |
8d312f00 | 117 | private: |
e35ddff0 | 118 | AliFlowAnalysisWithScalarProduct(const AliFlowAnalysisWithScalarProduct& anAnalysis); //copy constructor |
119 | AliFlowAnalysisWithScalarProduct& operator=(const AliFlowAnalysisWithScalarProduct& anAnalysis); //assignment operator | |
120 | ||
e4cecfa0 | 121 | Int_t fEventNumber; // event counter |
122 | Bool_t fDebug ; // flag for analysis: more print statements | |
123 | ||
29195b69 | 124 | TList* fWeightsList; // list holding input histograms with phi weights |
125 | Bool_t fUsePhiWeights; // use phi weights | |
126 | TH1F* fPhiWeights; // histogram holding phi weights | |
127 | ||
e4cecfa0 | 128 | TList* fHistList; //list to hold all output histograms |
129 | TProfile* fHistProUQetaRP; //uQ(eta) for RP | |
130 | TProfile* fHistProUQetaPOI; //uQ(eta) for POI | |
131 | TProfile* fHistProUQPtRP; //uQ(pt) for RP | |
132 | TProfile* fHistProUQPtPOI; //uQ(pt) for POI | |
133 | TProfile* fHistProQaQb; //average of QaQb (for event plane resolution) | |
12dc476e | 134 | TH1D* fHistSumOfLinearWeights; //holds sum of Ma*Mb |
135 | TH1D* fHistSumOfQuadraticWeights; //holds sum of (Ma*Mb)^2 | |
136 | ||
137 | TProfile* fHistProUQQaQbPtRP; //holds weighted average of <QuQaQb> | |
138 | TProfile* fHistProUQQaQbEtaRP; //holds weighted average of <QuQaQb> | |
139 | TProfile* fHistProUQQaQbPtPOI; //holds weighted average of <QuQaQb> | |
140 | TProfile* fHistProUQQaQbEtaPOI; //holds weighted average of <QuQaQb> | |
141 | TH1D* fHistSumOfWeightsPtRP[3]; //holds sums of 0: Mq-1, 1: (Mq-1)^2, 2: (Mq-1)*Ma*Mb for each bin | |
142 | TH1D* fHistSumOfWeightsEtaRP[3]; //holds sums of 0: Mq-1, 1: (Mq-1)^2, 2: (Mq-1)*Ma*Mb for each bin | |
143 | TH1D* fHistSumOfWeightsPtPOI[3]; //holds sums of 0: Mq-1, 1: (Mq-1)^2, 2: (Mq-1)*Ma*Mb for each bin | |
144 | TH1D* fHistSumOfWeightsEtaPOI[3]; //holds sums of 0: Mq-1, 1: (Mq-1)^2, 2: (Mq-1)*Ma*Mb for each bin | |
145 | ||
395fadba | 146 | AliFlowCommonHist* fCommonHists; //control histograms |
147 | AliFlowCommonHistResults* fCommonHistsRes; //results histograms | |
e35ddff0 | 148 | |
149 | ClassDef(AliFlowAnalysisWithScalarProduct,0) // macro for rootcint | |
150 | }; | |
8d312f00 | 151 | |
0092f3c2 | 152 | |
df802279 | 153 | #endif |