AliPhysics  ec7afe5 (ec7afe5)
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
AliFlowAnalysisWithMCEventPlane.h
Go to the documentation of this file.
1 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
2  * See cxx source for full Copyright notice */
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.
6 
7 /* $Id$ */
8 
9 #ifndef ALIFLOWANALYSISWITHMCEVENTPLANE_H
10 #define ALIFLOWANALYSISWITHMCEVENTPLANE_H
11 
12 class TVector2;
13 class TString;
14 class TDirectoryFile;
15 
16 class AliFlowTrackSimple;
17 class AliFlowEventSimple;
18 class AliFlowCommonHist;
20 
21 class TH1F;
22 class TH1D;
23 class TProfile;
24 class TProfile2D;
25 class TObjArray;
26 class TFile;
27 class TList;
28 class TComplex;
29 class Riostream;
30 
31 
32 
34 
35  public:
36 
37  AliFlowAnalysisWithMCEventPlane(); //default constructor
38  virtual ~AliFlowAnalysisWithMCEventPlane(); //destructor
39 
40  void WriteHistograms(TString* outputFileName);
41  void WriteHistograms(TString outputFileName);
42  void WriteHistograms(TDirectoryFile *outputFileName);
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
47 
48  void SetDebug(Bool_t kt) { this->fDebug = kt ; }
49  Bool_t GetDebug() const { return this->fDebug ; }
50 
51  void SetEventNumber(Int_t n) { this->fEventNumber = n; }
52  Int_t GetEventNumber() const { return this->fEventNumber; }
53 
54  // Output
55  TList* GetHistList() const { return this->fHistList ; }
56  AliFlowCommonHist* GetCommonHists() const { return this->fCommonHists; }
57  void SetCommonHists(AliFlowCommonHist* const aCommonHist)
58  { this->fCommonHists = aCommonHist; }
60  void SetCommonHistsRes( AliFlowCommonHistResults* const aCommonHistResult )
61  { this->fCommonHistsRes = aCommonHistResult; }
62 
63  //histograms
64  TH1F* GetHistRP() const {return this->fHistRP; }
65  void SetHistRP(TH1F* const aHistRP) {this->fHistRP = aHistRP; }
66 
67  TProfile* GetHistProIntFlow() const {return this->fHistProIntFlow; }
68  void SetHistProIntFlow(TProfile* const aHistProIntFlow)
69  {this->fHistProIntFlow = aHistProIntFlow; }
70 
71  TProfile* GetHistProIntFlowVsM() const {return this->fHistProIntFlowVsM; }
72  void SetHistProIntFlowVsM(TProfile* const aHistProIntFlowVsM)
73  {this->fHistProIntFlowVsM = aHistProIntFlowVsM; }
74 
75  TProfile2D* GetHistProDiffFlowPtEtaRP() const {return this->fHistProDiffFlowPtEtaRP; }
76  void SetHistProDiffFlowPtEtaRP(TProfile2D* const aHistProDiffFlowPtEtaRP)
77  {this->fHistProDiffFlowPtEtaRP = aHistProDiffFlowPtEtaRP; }
78 
79  TProfile* GetHistProDiffFlowPtRP() const {return this->fHistProDiffFlowPtRP; }
80  void SetHistProDiffFlowPtRP(TProfile* const aHistProDiffFlowPtRP)
81  {this->fHistProDiffFlowPtRP = aHistProDiffFlowPtRP; }
82 
83  TProfile* GetHistProDiffFlowEtaRP() const {return this->fHistProDiffFlowEtaRP; }
84  void SetHistProDiffFlowEtaRP(TProfile* const aHistProDiffFlowEtaRP)
85  {this->fHistProDiffFlowEtaRP = aHistProDiffFlowEtaRP; }
86 
87  TProfile2D* GetHistProDiffFlowPtEtaPOI()const {return this->fHistProDiffFlowPtEtaPOI; }
88  void SetHistProDiffFlowPtEtaPOI(TProfile2D* const aHistProDiffFlowPtEtaPOI)
89  {this->fHistProDiffFlowPtEtaPOI = aHistProDiffFlowPtEtaPOI; }
90 
91  TProfile* GetHistProDiffFlowPtPOI()const {return this->fHistProDiffFlowPtPOI; }
92  void SetHistProDiffFlowPtPOI(TProfile* const aHistProDiffFlowPtPOI)
93  {this->fHistProDiffFlowPtPOI = aHistProDiffFlowPtPOI; }
94 
95  TProfile* GetHistProDiffFlowEtaPOI()const {return this->fHistProDiffFlowEtaPOI; }
96  void SetHistProDiffFlowEtaPOI(TProfile* const aHistProDiffFlowEtaPOI)
97  {this->fHistProDiffFlowEtaPOI = aHistProDiffFlowEtaPOI; }
98 
99  TH1D* GetHistSpreadOfFlow()const {return this->fHistSpreadOfFlow; }
100  void SetHistSpreadOfFlow(TH1D* const aHistSpreadOfFlow)
101  {this->fHistSpreadOfFlow = aHistSpreadOfFlow; }
102 
103  // harmonic:
104  void SetHarmonic(Int_t const harmonic) {this->fHarmonic = harmonic;};
105  Int_t GetHarmonic() const {return this->fHarmonic;};
106 
107  // mixed harmonics:
108  // a) methods:
109  virtual void InitalizeArraysForMixedHarmonics();
110  virtual void BookObjectsForMixedHarmonics();
111  virtual void EvaluateMixedHarmonics(AliFlowEventSimple* anEvent);
112  virtual void GetOutputHistoramsForMixedHarmonics(TList *mixedHarmonicsList);
113  // b) setters and getters:
114  void SetMixedHarmonicsList(TList* const mhl) {this->fMixedHarmonicsList = mhl;}
118  void SetMixedHarmonicsSettings(TProfile* const mhs) {this->fMixedHarmonicsSettings = mhs;};
119  TProfile* GetMixedHarmonicsSettings() const {return this->fMixedHarmonicsSettings;};
120  void SetPairCorrelator(TProfile* const spc, Int_t const cs) {this->fPairCorrelator[cs] = spc;};
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;};
136  void SetXinPairAngle(Double_t const xipa) {this->fXinPairAngle = xipa;};
137  Double_t GetXinPairAngle() const {return this->fXinPairAngle;};
138 
139  private:
140 
141  AliFlowAnalysisWithMCEventPlane(const AliFlowAnalysisWithMCEventPlane& aAnalysis); //copy constructor
142  AliFlowAnalysisWithMCEventPlane& operator=(const AliFlowAnalysisWithMCEventPlane& aAnalysis); //assignment operator
143 
144 
145 #ifndef __CINT__
146  TVector2* fQsum; // flow vector sum
147  Double_t fQ2sum; // flow vector sum squared
148 #endif /*__CINT__*/
149 
150  Int_t fEventNumber; // event counter
152 
153  TList* fHistList; //list to hold all output histograms
154 
157 
158  TH1F* fHistRP; // reaction plane
159  TProfile* fHistProIntFlow; // profile used to calculate the integrated flow of RP particles
160  TProfile* fHistProIntFlowVsM; // profile used to calculate the integrated flow of RP particles vs multiplicity
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
166  TProfile* fHistProDiffFlowEtaPOI; // profile used to calculate the differential flow (Eta) of POI particles
167  TH1D* fHistSpreadOfFlow; // histogram filled with reference flow calculated e-b-e
168  Int_t fHarmonic; // harmonic
169 
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
182  Double_t fXinPairAngle; // x in definition phi_{pair} = x*phi1+(1-x)*phi2
183 
184  ClassDef(AliFlowAnalysisWithMCEventPlane,0) // Analyse particle distribution versus MC reaction plane
185 
186  };
187 
188 
189 #endif
190 
191 
double Double_t
Definition: External.C:58
void SetHistProDiffFlowPtPOI(TProfile *const aHistProDiffFlowPtPOI)
void SetHistProDiffFlowPtRP(TProfile *const aHistProDiffFlowPtRP)
AliFlowAnalysisWithMCEventPlane & operator=(const AliFlowAnalysisWithMCEventPlane &aAnalysis)
void SetHistProDiffFlowEtaPOI(TProfile *const aHistProDiffFlowEtaPOI)
void GetOutputHistograms(TList *outputListHistos)
TProfile * GetPairCorrelatorVsM(Int_t const cs) const
int Int_t
Definition: External.C:63
void SetPairCorrelator(TProfile *const spc, Int_t const cs)
Definition: External.C:212
TProfile * GetPairCorrelatorVsPtSumDiff(Int_t const cs, Int_t const sd) const
virtual void EvaluateMixedHarmonics(AliFlowEventSimple *anEvent)
void SetHistProDiffFlowEtaRP(TProfile *const aHistProDiffFlowEtaRP)
void SetHistProDiffFlowPtEtaPOI(TProfile2D *const aHistProDiffFlowPtEtaPOI)
TList * fHistList
flag for lyz analysis: more print statements
void SetPairCorrelatorVsM(TProfile *const spcVsM, Int_t const cs)
void SetPairCorrelatorVsPtSumDiff(TProfile *const spcVspsd, Int_t const cs, Int_t const sd)
void SetHistProDiffFlowPtEtaRP(TProfile2D *const aHistProDiffFlowPtEtaRP)
TProfile * GetPairCorrelator(Int_t const cs) const
void SetHistSpreadOfFlow(TH1D *const aHistSpreadOfFlow)
void SetCommonHistsRes(AliFlowCommonHistResults *const aCommonHistResult)
void SetCommonHists(AliFlowCommonHist *const aCommonHist)
virtual void GetOutputHistoramsForMixedHarmonics(TList *mixedHarmonicsList)
bool Bool_t
Definition: External.C:53
AliFlowCommonHistResults * GetCommonHistsRes() const
void SetHistProIntFlowVsM(TProfile *const aHistProIntFlowVsM)
void SetHistProIntFlow(TProfile *const aHistProIntFlow)