]>
Commit | Line | Data |
---|---|---|
83bc3e95 | 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 | * Only in this class nested loops are used for flow analysis. * | |
9 | * Nested loops are used to evaluate: * | |
10 | * * | |
11 | * a) Distribution of relative angle difference (phi1-phi2). * | |
12 | * * | |
13 | * Author: Ante Bilandzic (abilandzic@gmail.com) * | |
14 | ***************************************************************/ | |
15 | ||
16 | #ifndef ALIFLOWANALYSISNESTEDLOOPS_H | |
17 | #define ALIFLOWANALYSISNESTEDLOOPS_H | |
18 | ||
19 | #include "AliFlowCommonConstants.h" // needed as include | |
20 | ||
21 | class TList; | |
22 | class TFile; | |
23 | class TH1; | |
24 | class TProfile; | |
25 | ||
26 | class AliFlowEventSimple; | |
27 | class AliFlowCommonHist; | |
28 | class AliFlowCommonHistResults; | |
29 | ||
30 | //================================================================================================================ | |
31 | ||
32 | class AliFlowAnalysisWithNestedLoops | |
33 | { | |
34 | public: | |
35 | AliFlowAnalysisWithNestedLoops(); | |
36 | virtual ~AliFlowAnalysisWithNestedLoops(); | |
37 | // 0.) Methods called in the constructor: | |
38 | // 1.) Method Init() and methods called within Init(): | |
39 | virtual void Init(); | |
40 | virtual void CrossCheckSettings(); | |
41 | virtual void AccessConstants(); | |
42 | virtual void BookAndNestAllLists(); | |
43 | virtual void BookProfileHoldingSettings(); | |
44 | virtual void BookCommonHistograms(); | |
45 | virtual void BookEverythingForDistributions(); | |
46 | virtual void BookAndFillWeightsHistograms(); | |
47 | // 2.) Method Make() and methods called within Make(): | |
48 | virtual void Make(AliFlowEventSimple *anEvent); | |
49 | virtual void CheckPointersUsedInMake(); | |
50 | // 3.) Method Finish() and methods called within Finish(): | |
51 | virtual void Finish(); | |
52 | virtual void CheckPointersUsedInFinish(); | |
53 | virtual void AccessSettings(); | |
54 | // 4.) Method GetOutputHistograms and method called within it: | |
55 | virtual void GetOutputHistograms(TList *outputListHistos); | |
56 | virtual void GetPointersForCommonHistograms(); | |
57 | virtual void GetPointersForResultsHistograms(); | |
58 | // 5.) Other methods: | |
59 | virtual void WriteHistograms(TString outputFileName); | |
60 | virtual void WriteHistograms(TDirectoryFile *outputFileName); | |
61 | // 6.) Setters and getters: | |
62 | void SetHistList(TList* const hl) {this->fHistList = hl;} | |
63 | TList* GetHistList() const {return this->fHistList;} | |
64 | void SetHistListName(const char *hln) {this->fHistListName->Append(*hln);}; | |
65 | TString *GetHistListName() const {return this->fHistListName;}; | |
66 | void SetAnalysisLabel(const char *al) {this->fAnalysisLabel->Append(*al);}; | |
67 | TString *GetAnalysisLabel() const {return this->fAnalysisLabel;}; | |
68 | void SetAnalysisSettings(TProfile* const as) {this->fAnalysisSettings = as;}; | |
69 | TProfile* GetAnalysisSettings() const {return this->fAnalysisSettings;}; | |
70 | void SetCommonHists(AliFlowCommonHist* const ch) {this->fCommonHists = ch;}; | |
71 | AliFlowCommonHist* GetCommonHists() const {return this->fCommonHists;}; | |
72 | void SetWeightsList(TList* const wl) {this->fWeightsList = (TList*)wl->Clone();} | |
73 | TList* GetWeightsList() const {return this->fWeightsList;} | |
74 | void SetUsePhiWeights(Bool_t const uPhiW) {this->fUsePhiWeights = uPhiW;}; | |
75 | Bool_t GetUsePhiWeights() const {return this->fUsePhiWeights;}; | |
76 | void SetUsePtWeights(Bool_t const uPtW) {this->fUsePtWeights = uPtW;}; | |
77 | Bool_t GetUsePtWeights() const {return this->fUsePtWeights;}; | |
78 | void SetUseEtaWeights(Bool_t const uEtaW) {this->fUseEtaWeights = uEtaW;}; | |
79 | Bool_t GetUseEtaWeights() const {return this->fUseEtaWeights;}; | |
80 | void SetUseParticleWeights(TProfile* const uPW) {this->fUseParticleWeights = uPW;}; | |
81 | TProfile* GetUseParticleWeights() const {return this->fUseParticleWeights;}; | |
82 | void SetPhiWeights(TH1F* const histPhiWeights) {this->fPhiWeights = histPhiWeights;}; | |
83 | TH1F* GetPhiWeights() const {return this->fPhiWeights;}; | |
84 | void SetPtWeights(TH1D* const histPtWeights) {this->fPtWeights = histPtWeights;}; | |
85 | TH1D* GetPtWeights() const {return this->fPtWeights;}; | |
86 | void SetEtaWeights(TH1D* const histEtaWeights) {this->fEtaWeights = histEtaWeights;}; | |
87 | TH1D* GetEtaWeights() const {return this->fEtaWeights;}; | |
88 | void SetResultsList(TList* const rlist) {this->fResultsList = rlist;} | |
89 | TList* GetResultsList() const {return this->fResultsList;} | |
90 | void SetRelativeAngleDistribution(TH1D* const rad) {this->fRelativeAngleDistribution = rad;}; | |
91 | TH1D* GetRelativeAngleDistribution() const {return this->fRelativeAngleDistribution;}; | |
92 | ||
93 | private: | |
94 | AliFlowAnalysisWithNestedLoops(const AliFlowAnalysisWithNestedLoops& afawQc); | |
95 | AliFlowAnalysisWithNestedLoops& operator=(const AliFlowAnalysisWithNestedLoops& afawQc); | |
96 | // 0.) Base: | |
97 | TList *fHistList; // base list to hold all output objects | |
98 | TString *fHistListName; // name of base list | |
99 | TString *fAnalysisLabel; // analysis label | |
100 | TProfile *fAnalysisSettings; // profile to hold analysis settings | |
101 | // 1.) Common: | |
102 | AliFlowCommonHist *fCommonHists; // common control histograms (filled only with events with 3 or more tracks for 3-p correlators) | |
103 | Int_t fnBinsPhi; // number of phi bins | |
104 | Double_t fPhiMin; // minimum phi | |
105 | Double_t fPhiMax; // maximum phi | |
106 | Double_t fPhiBinWidth; // bin width for phi histograms | |
107 | Int_t fnBinsPt; // number of pt bins | |
108 | Double_t fPtMin; // minimum pt | |
109 | Double_t fPtMax; // maximum pt | |
110 | Double_t fPtBinWidth; // bin width for pt histograms | |
111 | Int_t fnBinsEta; // number of eta bins | |
112 | Double_t fEtaMin; // minimum eta | |
113 | Double_t fEtaMax; // maximum eta | |
114 | Double_t fEtaBinWidth; // bin width for eta histograms | |
115 | // 2a.) Particle weights: | |
116 | TList *fWeightsList; // list to hold all histograms with particle weights: fUseParticleWeights, fPhiWeights, fPtWeights and fEtaWeights | |
117 | Bool_t fUsePhiWeights; // use phi weights | |
118 | Bool_t fUsePtWeights; // use pt weights | |
119 | Bool_t fUseEtaWeights; // use eta weights | |
120 | TProfile *fUseParticleWeights; // profile with three bins to hold values of fUsePhiWeights, fUsePtWeights and fUseEtaWeights | |
121 | TH1F *fPhiWeights; // histogram holding phi weights | |
122 | TH1D *fPtWeights; // histogram holding phi weights | |
123 | TH1D *fEtaWeights; // histogram holding phi weights | |
124 | // 3.) Final results: | |
125 | TList *fResultsList; // list holding objects with final results | |
126 | TH1D *fRelativeAngleDistribution; // distribution of phi1-phi2 for all distinct pairs of particles | |
127 | ||
128 | ClassDef(AliFlowAnalysisWithNestedLoops, 0); | |
129 | ||
130 | }; | |
131 | ||
132 | //================================================================================================================ | |
133 | ||
134 | #endif | |
135 | ||
136 | ||
137 | ||
138 | ||
139 |