]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWG2/FLOW/AliFlowCommon/AliFlowAnalysisWithNestedLoops.h
move nested loops calculations for testing purposes to seperate class
[u/mrichter/AliRoot.git] / PWG2 / FLOW / AliFlowCommon / AliFlowAnalysisWithNestedLoops.h
CommitLineData
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
21class TList;
22class TFile;
23class TH1;
24class TProfile;
25
26class AliFlowEventSimple;
27class AliFlowCommonHist;
28class AliFlowCommonHistResults;
29
30//================================================================================================================
31
32class 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