]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWG/FLOW/Base/AliFlowAnalysisWithMCEventPlane.h
coverity fixes
[u/mrichter/AliRoot.git] / PWG / FLOW / Base / AliFlowAnalysisWithMCEventPlane.h
CommitLineData
f1d945a1 1/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
2 * See cxx source for full Copyright notice */
fbdb53fa 3// Description: Maker to analyze Flow from the generated MC reaction plane.
4// This class is used to get the real value of the flow
5// to compare the other methods to when analysing simulated events.
f1d945a1 6
7/* $Id$ */
8
45cdbef2 9#ifndef ALIFLOWANALYSISWITHMCEVENTPLANE_H
10#define ALIFLOWANALYSISWITHMCEVENTPLANE_H
f1d945a1 11
fbdb53fa 12class TVector2;
13class TString;
929098e4 14class TDirectoryFile;
f1d945a1 15
16class AliFlowTrackSimple;
17class AliFlowEventSimple;
18class AliFlowCommonHist;
19class AliFlowCommonHistResults;
20
21class TH1F;
22class TH1D;
23class TProfile;
24class TProfile2D;
25class TObjArray;
26class TFile;
28ca24ad 27class TList;
f1d945a1 28class TComplex;
29class Riostream;
30
31
f1d945a1 32
33class AliFlowAnalysisWithMCEventPlane {
34
35 public:
36
28ca24ad 37 AliFlowAnalysisWithMCEventPlane(); //default constructor
f1d945a1 38 virtual ~AliFlowAnalysisWithMCEventPlane(); //destructor
39
bb26a78c 40 void WriteHistograms(TString* outputFileName);
b0fda271 41 void WriteHistograms(TString outputFileName);
ad87ae62 42 void WriteHistograms(TDirectoryFile *outputFileName);
205ff969 43 void Init(); //defines variables and histograms
44 void Make(AliFlowEventSimple* anEvent); //calculates variables and fills histograms
45 void GetOutputHistograms(TList *outputListHistos); //get pointers to all output histograms (called before Finish())
46 void Finish(); //saves histograms
bb26a78c 47
9d062fe3 48 void SetDebug(Bool_t kt) { this->fDebug = kt ; }
49 Bool_t GetDebug() const { return this->fDebug ; }
f1d945a1 50
9d062fe3 51 void SetEventNumber(Int_t n) { this->fEventNumber = n; }
52 Int_t GetEventNumber() const { return this->fEventNumber; }
f1d945a1 53
54 // Output
9d062fe3 55 TList* GetHistList() const { return this->fHistList ; }
56 AliFlowCommonHist* GetCommonHists() const { return this->fCommonHists; }
fbdb53fa 57 void SetCommonHists(AliFlowCommonHist* const aCommonHist)
9d062fe3 58 { this->fCommonHists = aCommonHist; }
b7cb54d5 59 AliFlowCommonHistResults* GetCommonHistsRes() const { return this->fCommonHistsRes; }
fbdb53fa 60 void SetCommonHistsRes( AliFlowCommonHistResults* const aCommonHistResult )
9d062fe3 61 { this->fCommonHistsRes = aCommonHistResult; }
f1d945a1 62
9d062fe3 63 //histograms
fbdb53fa 64 TH1F* GetHistRP() const {return this->fHistRP; }
65 void SetHistRP(TH1F* const aHistRP) {this->fHistRP = aHistRP; }
45cdbef2 66
fbdb53fa 67 TProfile* GetHistProIntFlow() const {return this->fHistProIntFlow; }
68 void SetHistProIntFlow(TProfile* const aHistProIntFlow)
b7cb54d5 69 {this->fHistProIntFlow = aHistProIntFlow; }
9cc9e6cc 70
10a70cd5 71 TProfile* GetHistProIntFlowVsM() const {return this->fHistProIntFlowVsM; }
72 void SetHistProIntFlowVsM(TProfile* const aHistProIntFlowVsM)
73 {this->fHistProIntFlowVsM = aHistProIntFlowVsM; }
74
fbdb53fa 75 TProfile2D* GetHistProDiffFlowPtEtaRP() const {return this->fHistProDiffFlowPtEtaRP; }
76 void SetHistProDiffFlowPtEtaRP(TProfile2D* const aHistProDiffFlowPtEtaRP)
9cc9e6cc 77 {this->fHistProDiffFlowPtEtaRP = aHistProDiffFlowPtEtaRP; }
45cdbef2 78
fbdb53fa 79 TProfile* GetHistProDiffFlowPtRP() const {return this->fHistProDiffFlowPtRP; }
80 void SetHistProDiffFlowPtRP(TProfile* const aHistProDiffFlowPtRP)
b7cb54d5 81 {this->fHistProDiffFlowPtRP = aHistProDiffFlowPtRP; }
45cdbef2 82
fbdb53fa 83 TProfile* GetHistProDiffFlowEtaRP() const {return this->fHistProDiffFlowEtaRP; }
84 void SetHistProDiffFlowEtaRP(TProfile* const aHistProDiffFlowEtaRP)
b7cb54d5 85 {this->fHistProDiffFlowEtaRP = aHistProDiffFlowEtaRP; }
9cc9e6cc 86
fbdb53fa 87 TProfile2D* GetHistProDiffFlowPtEtaPOI()const {return this->fHistProDiffFlowPtEtaPOI; }
88 void SetHistProDiffFlowPtEtaPOI(TProfile2D* const aHistProDiffFlowPtEtaPOI)
9cc9e6cc 89 {this->fHistProDiffFlowPtEtaPOI = aHistProDiffFlowPtEtaPOI; }
45cdbef2 90
fbdb53fa 91 TProfile* GetHistProDiffFlowPtPOI()const {return this->fHistProDiffFlowPtPOI; }
92 void SetHistProDiffFlowPtPOI(TProfile* const aHistProDiffFlowPtPOI)
b7cb54d5 93 {this->fHistProDiffFlowPtPOI = aHistProDiffFlowPtPOI; }
45cdbef2 94
fbdb53fa 95 TProfile* GetHistProDiffFlowEtaPOI()const {return this->fHistProDiffFlowEtaPOI; }
96 void SetHistProDiffFlowEtaPOI(TProfile* const aHistProDiffFlowEtaPOI)
4f678629 97 {this->fHistProDiffFlowEtaPOI = aHistProDiffFlowEtaPOI; }
98
fbdb53fa 99 TH1D* GetHistSpreadOfFlow()const {return this->fHistSpreadOfFlow; }
100 void SetHistSpreadOfFlow(TH1D* const aHistSpreadOfFlow)
4f678629 101 {this->fHistSpreadOfFlow = aHistSpreadOfFlow; }
102
afa4af05 103 // harmonic:
104 void SetHarmonic(Int_t const harmonic) {this->fHarmonic = harmonic;};
105 Int_t GetHarmonic() const {return this->fHarmonic;};
b3a29c75 106
4740c6b8 107 // mixed harmonics:
b3a29c75 108 // a) methods:
4740c6b8 109 virtual void InitalizeArraysForMixedHarmonics();
110 virtual void BookObjectsForMixedHarmonics();
111 virtual void EvaluateMixedHarmonics(AliFlowEventSimple* anEvent);
112 virtual void GetOutputHistoramsForMixedHarmonics(TList *mixedHarmonicsList);
b3a29c75 113 // b) setters and getters:
4740c6b8 114 void SetMixedHarmonicsList(TList* const mhl) {this->fMixedHarmonicsList = mhl;}
115 TList* GetMixedHarmonicsList() const {return this->fMixedHarmonicsList;}
116 void SetEvaluateMixedHarmonics(Bool_t const emh) {this->fEvaluateMixedHarmonics = emh;};
117 Bool_t GetEvalauteMixedHarmonics() const {return this->fEvaluateMixedHarmonics;};
118 void SetMixedHarmonicsSettings(TProfile* const mhs) {this->fMixedHarmonicsSettings = mhs;};
119 TProfile* GetMixedHarmonicsSettings() const {return this->fMixedHarmonicsSettings;};
b3a29c75 120 void SetPairCorrelator(TProfile* const spc, Int_t const cs) {this->fPairCorrelator[cs] = spc;};
4740c6b8 121 TProfile* GetPairCorrelator(Int_t const cs) const {return this->fPairCorrelator[cs];};
122 void SetPairCorrelatorVsM(TProfile* const spcVsM, Int_t const cs) {this->fPairCorrelatorVsM[cs] = spcVsM;};
123 TProfile* GetPairCorrelatorVsM(Int_t const cs) const {return this->fPairCorrelatorVsM[cs];};
124 void SetnBinsMult(Int_t const nbm) {this->fnBinsMult = nbm;};
125 Int_t GetnBinsMult() const {return this->fnBinsMult;};
126 void SetMinMult(Double_t const minm) {this->fMinMult = minm;};
127 Double_t GetMinMult() const {return this->fMinMult;};
128 void SetMaxMult(Double_t const maxm) {this->fMaxMult = maxm;};
129 Double_t GetMaxMult() const {return this->fMaxMult;};
130 void SetPairCorrelatorVsPtSumDiff(TProfile* const spcVspsd, Int_t const cs, Int_t const sd) {this->fPairCorrelatorVsPtSumDiff[cs][sd] = spcVspsd;};
131 TProfile* GetPairCorrelatorVsPtSumDiff(Int_t const cs, Int_t const sd) const {return this->fPairCorrelatorVsPtSumDiff[cs][sd];};
132 void SetNinCorrelator(Int_t const n) {this->fNinCorrelator = n;};
133 Int_t GetNinCorrelator() const {return this->fNinCorrelator;};
134 void SetMinCorrelator(Int_t const m) {this->fMinCorrelator = m;};
135 Int_t GetMinCorrelator() const {return this->fMinCorrelator;};
b3a29c75 136 void SetXinPairAngle(Double_t const xipa) {this->fXinPairAngle = xipa;};
137 Double_t GetXinPairAngle() const {return this->fXinPairAngle;};
138
f1d945a1 139 private:
af795c87 140
00731146 141 AliFlowAnalysisWithMCEventPlane(const AliFlowAnalysisWithMCEventPlane& aAnalysis); //copy constructor
142 AliFlowAnalysisWithMCEventPlane& operator=(const AliFlowAnalysisWithMCEventPlane& aAnalysis); //assignment operator
af795c87 143
f1d945a1 144
145#ifndef __CINT__
00731146 146 TVector2* fQsum; // flow vector sum
147 Double_t fQ2sum; // flow vector sum squared
f1d945a1 148#endif /*__CINT__*/
149
00731146 150 Int_t fEventNumber; // event counter
f1d945a1 151 Bool_t fDebug ; //! flag for lyz analysis: more print statements
152
28ca24ad 153 TList* fHistList; //list to hold all output histograms
f1d945a1 154
fbdb53fa 155 AliFlowCommonHist* fCommonHists; // hist
156 AliFlowCommonHistResults* fCommonHistsRes; // hist
45cdbef2 157
9cc9e6cc 158 TH1F* fHistRP; // reaction plane
159 TProfile* fHistProIntFlow; // profile used to calculate the integrated flow of RP particles
10a70cd5 160 TProfile* fHistProIntFlowVsM; // profile used to calculate the integrated flow of RP particles vs multiplicity
9cc9e6cc 161 TProfile2D* fHistProDiffFlowPtEtaRP; // profile used to calculate the differential flow (Pt,Eta) of RP particles
162 TProfile* fHistProDiffFlowPtRP; // profile used to calculate the differential flow (Pt) of RP particles
163 TProfile* fHistProDiffFlowEtaRP; // profile used to calculate the differential flow (Eta) of RP particles
164 TProfile2D* fHistProDiffFlowPtEtaPOI; // profile used to calculate the differential flow (Pt,Eta) of POI particles
165 TProfile* fHistProDiffFlowPtPOI; // profile used to calculate the differential flow (Pt) of POI particles
4f678629 166 TProfile* fHistProDiffFlowEtaPOI; // profile used to calculate the differential flow (Eta) of POI particles
b3a29c75 167 TH1D* fHistSpreadOfFlow; // histogram filled with reference flow calculated e-b-e
afa4af05 168 Int_t fHarmonic; // harmonic
b3a29c75 169
4740c6b8 170 // mixed harmonics:
171 TList *fMixedHarmonicsList; // list to hold all objects relevant for mixed harmonics
172 Bool_t fEvaluateMixedHarmonics; // evaluate and store objects relevant for mixed harmonics
173 TProfile *fMixedHarmonicsSettings; // profile used to hold all flags relevant for the mixed harmonics
174 TProfile *fPairCorrelator[2]; // profiles used to calculate <cos[m*phi_{pair}-n*RP]> and <sin[m*phi_{pair}-n*RP]> (0 = cos, 1 = sin), where phi_{pair} = x*phi1+(1-x)*phi2
175 TProfile *fPairCorrelatorVsM[2]; // <cos[m*phi_{pair}-n*RP]> and <sin[m*phi_{pair}-n*RP]> versus multiplicity (0 = cos, 1 = sin), where phi_{pair} = x*phi1+(1-x)*phi2
176 Int_t fnBinsMult; // number of multiplicity bins for mixed harmonics analysis versus multiplicity
177 Double_t fMinMult; // minimal multiplicity for mixed harmonics analysis versus multiplicity
178 Double_t fMaxMult; // maximal multiplicity for mixed harmonics analysis versus multiplicity
179 TProfile *fPairCorrelatorVsPtSumDiff[2][2]; // <cos/sin[m*phi_{pair}-n*RP]> vs (1/2)(pt1+pt2) (0) and |pt1-pt2| (1), where phi_{pair} = x*phi1+(1-x)*phi2
180 Int_t fNinCorrelator; // n in <cos[m*phi_{pair}-n*RP]> and <sin[m*phi_{pair}-n*RP]>, where phi_{pair} = x*phi1+(1-x)*phi2
181 Int_t fMinCorrelator; // m in <cos[m*phi_{pair}-n*RP]> and <sin[m*phi_{pair}-n*RP]>, where phi_{pair} = x*phi1+(1-x)*phi2
b3a29c75 182 Double_t fXinPairAngle; // x in definition phi_{pair} = x*phi1+(1-x)*phi2
183
c109b8c7 184 ClassDef(AliFlowAnalysisWithMCEventPlane,0) // Analyse particle distribution versus MC reaction plane
4740c6b8 185
186 };
d7671632 187
f1d945a1 188
189#endif
af795c87 190
191