]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWG2/EBYE/AliAnalysisTaskToyModel.h
Updated version of the toy model + coverity fixes
[u/mrichter/AliRoot.git] / PWG2 / EBYE / AliAnalysisTaskToyModel.h
CommitLineData
63d15f4b 1#ifndef ALIANALYSISTASKTOYMODEL_CXX\r
2#define ALIANALYSISTASKTOYMODEL_CXX\r
3\r
4// Analysis task for a simple toy model, currently used for the \r
5// balance function\r
6// Authors: Panos Christakoglou@nikhef.nl\r
7\r
8class TList;\r
9class TH1F;\r
10class TH2F;\r
11class TF1;\r
12\r
13class AliBalance;\r
14\r
0ed078e1 15class AliAnalysisTaskToyModel : public TObject {\r
63d15f4b 16 public:\r
0ed078e1 17 AliAnalysisTaskToyModel();\r
63d15f4b 18 virtual ~AliAnalysisTaskToyModel(); \r
19 \r
20 virtual void Init();\r
0ed078e1 21 virtual void CreateOutputObjects();\r
22 virtual void Run(Int_t nEvents);\r
23 virtual void FinishOutput();\r
63d15f4b 24 \r
0ed078e1 25 void SetDebugFlag() {fUseDebug = kTRUE;}\r
26\r
63d15f4b 27 void SetAnalysisObject(AliBalance *const analysis) {\r
28 fBalance = analysis;\r
29 }\r
30 void SetShufflingObject(AliBalance *const analysisShuffled) {\r
31 fRunShuffling = kTRUE;\r
32 fShuffledBalance = analysisShuffled;\r
33 }\r
34\r
35 //============Toy model: List of setters============//\r
36 void SetTotalMultiplicity(Double_t mean, Double_t sigma) {\r
37 fTotalMultiplicityMean = mean;\r
38 fTotalMultiplicitySigma = sigma;}\r
39 void SetNetCharge(Double_t mean, Double_t sigma) {\r
40 fNetChargeMean = mean;\r
41 fNetChargeSigma = sigma;}\r
42\r
43 //Acceptance\r
44 void SetKinematicsCutsMC(Double_t ptmin, Double_t ptmax,\r
45 Double_t etamin, Double_t etamax){\r
46 fPtMin = ptmin; fPtMax = ptmax;\r
47 fEtaMin = etamin; fEtaMax = etamax;\r
48 }\r
49\r
50 //Acceptance filter\r
51 void SetAcceptanceParameterization(TF1 *parameterization) {\r
6b3bc65c 52 fUseAcceptanceParameterization = kTRUE;\r
63d15f4b 53 fAcceptanceParameterization = parameterization;}\r
54\r
55 //All charges\r
56 void SetSpectraTemperatureForAllCharges(Double_t temperature) {\r
b4665e0f 57 fUseAllCharges = kTRUE;\r
63d15f4b 58 fTemperatureAllCharges = temperature;}\r
59 void SetDirectedFlowForAllCharges(Double_t v1) {\r
b4665e0f 60 fUseAllCharges = kTRUE;\r
63d15f4b 61 fDirectedFlowAllCharges = v1;}\r
62 void SetEllipticFlowForAllCharges(Double_t v2) {\r
b4665e0f 63 fUseAllCharges = kTRUE;\r
63d15f4b 64 fEllipticFlowAllCharges = v2;}\r
65 void SetTriangularFlowForAllCharges(Double_t v3) {\r
b4665e0f 66 fUseAllCharges = kTRUE;\r
63d15f4b 67 fTriangularFlowAllCharges = v3;}\r
0ed078e1 68 void SetQuandrangularFlowForAllCharges(Double_t v4) {\r
b4665e0f 69 fUseAllCharges = kTRUE;\r
63d15f4b 70 fQuandrangularFlowAllCharges = v4;}\r
71 void SetPentangularFlowForAllCharges(Double_t v5) {\r
b4665e0f 72 fUseAllCharges = kTRUE;\r
63d15f4b 73 fPentangularFlowAllCharges = v5;}\r
74\r
75 //Pions\r
76 void SetPionPercentage(Double_t percentage) {\r
77 fPionPercentage = percentage;}\r
78 void SetSpectraTemperatureForPions(Double_t temperature) {\r
79 fTemperaturePions = temperature;}\r
80 void SetDirectedFlowForPions(Double_t v1) {\r
81 fDirectedFlowPions = v1;}\r
82 void SetEllipticFlowForPions(Double_t v2) {\r
83 fEllipticFlowPions = v2;}\r
84 void SetTriangularFlowForPions(Double_t v3) {\r
85 fTriangularFlowPions = v3;}\r
0ed078e1 86 void SetQuandrangularFlowForPions(Double_t v4) {\r
63d15f4b 87 fQuandrangularFlowPions = v4;}\r
88 void SetPentangularFlowForPions(Double_t v5) {\r
89 fPentangularFlowPions = v5;}\r
90 \r
91 //Kaons\r
92 void SetKaonPercentage(Double_t percentage) {\r
93 fKaonPercentage = percentage;}\r
94 void SetSpectraTemperatureForKaons(Double_t temperature) {\r
95 fTemperatureKaons = temperature;}\r
96 void SetDirectedFlowForKaons(Double_t v1) {\r
97 fDirectedFlowKaons = v1;}\r
98 void SetEllipticFlowForKaons(Double_t v2) {\r
99 fEllipticFlowKaons = v2;}\r
100 void SetTriangularFlowForKaons(Double_t v3) {\r
101 fTriangularFlowKaons = v3;}\r
0ed078e1 102 void SetQuandrangularFlowForKaons(Double_t v4) {\r
63d15f4b 103 fQuandrangularFlowKaons = v4;}\r
104 void SetPentangularFlowForKaons(Double_t v5) {\r
105 fPentangularFlowKaons = v5;}\r
106\r
107 //Protons\r
108 void SetProtonPercentage(Double_t percentage) {\r
109 fProtonPercentage = percentage;}\r
110 void SetSpectraTemperatureForProtons(Double_t temperature) {\r
111 fTemperatureProtons = temperature;}\r
112 void SetDirectedFlowForProtons(Double_t v1) {\r
113 fDirectedFlowProtons = v1;}\r
114 void SetEllipticFlowForProtons(Double_t v2) {\r
115 fEllipticFlowProtons = v2;}\r
116 void SetTriangularFlowForProtons(Double_t v3) {\r
117 fTriangularFlowProtons = v3;}\r
0ed078e1 118 void SetQuandrangularFlowForProtons(Double_t v4) {\r
63d15f4b 119 fQuandrangularFlowProtons = v4;}\r
120 void SetPentangularFlowForProtons(Double_t v5) {\r
121 fPentangularFlowProtons = v5;}\r
6b3bc65c 122\r
123 //Dynamical correlations\r
124 void SetCorrelationPercentage(Double_t percentage) {\r
125 fUseDynamicalCorrelations = kTRUE; \r
126 fDynamicalCorrelationsPercentage = percentage;\r
127 }\r
63d15f4b 128 //============Toy model: List of setters============//\r
129\r
130 private:\r
0ed078e1 131 Bool_t fUseDebug; //Debug flag\r
132\r
63d15f4b 133 AliBalance *fBalance; //BF object\r
134 Bool_t fRunShuffling;//run shuffling or not\r
135 AliBalance *fShuffledBalance; //BF object (shuffled)\r
136 TList *fList; //fList object\r
137 TList *fListBF; //fList object\r
138 TList *fListBFS; //fList object\r
139\r
140 TH1F *fHistEventStats; //event stats\r
0ed078e1 141 TH1F *fHistNumberOfAcceptedParticles; //number of accepted particles\r
142 TH1F *fHistReactionPlane; //reaction plane angle\r
143 TH1F *fHistEtaTotal; //pseudo-rapidity (full phase space)\r
144 TH1F *fHistEta; //pseudo-rapidity (acceptance)\r
0ed078e1 145 TH1F *fHistRapidity; //rapidity (acceptance)\r
146 TH1F *fHistRapidityPions; //rapidity (acceptance)\r
147 TH1F *fHistRapidityKaons; //rapidity (acceptance)\r
148 TH1F *fHistRapidityProtons; //rapidity (acceptance)\r
0ed078e1 149 TH1F *fHistPhi; //phi (acceptance)\r
150 TH1F *fHistPhiPions; //phi (acceptance)\r
151 TH1F *fHistPhiKaons; //phi (acceptance)\r
152 TH1F *fHistPhiProtons; //phi (acceptance)\r
0ed078e1 153 TH1F *fHistPt; //pt (acceptance)\r
154 TH1F *fHistPtPions; //pt (acceptance)\r
155 TH1F *fHistPtKaons; //pt (acceptance)\r
156 TH1F *fHistPtProtons; //pt (acceptance)\r
63d15f4b 157\r
158 //Toy model input\r
159 Double_t fTotalMultiplicityMean; //mean for the total multiplicity\r
160 Double_t fTotalMultiplicitySigma; //sigma for the total multiplicity\r
161 Double_t fNetChargeMean; //mean for the net charge\r
162 Double_t fNetChargeSigma; //sigma for the net charge\r
163 Double_t fPtMin; //pt min for acceptance\r
164 Double_t fPtMax; //pt max for acceptance\r
165 Double_t fEtaMin; //eta min for acceptance\r
166 Double_t fEtaMax; //eta max for acceptance\r
167\r
168 Bool_t fUseAcceptanceParameterization; //flag acceptance parameterization\r
169 TF1 *fAcceptanceParameterization; //acceptance parameterization\r
170\r
b4665e0f 171 Bool_t fUseAllCharges; //use all charges\r
172 Double_t fParticleMass; //particle mass\r
63d15f4b 173 TF1 *fPtSpectraAllCharges; //spectra for all charges\r
174 Double_t fTemperatureAllCharges; //temperature for pt spectra\r
175 Double_t fReactionPlane; //reaction plane angle\r
176 TF1 *fAzimuthalAngleAllCharges; //azimuthal angle\r
177 Double_t fDirectedFlowAllCharges; //directed flow value\r
178 Double_t fEllipticFlowAllCharges; //elliptic flow value\r
179 Double_t fTriangularFlowAllCharges; //triangular flow value\r
180 Double_t fQuandrangularFlowAllCharges; //quadrangular flow value\r
181 Double_t fPentangularFlowAllCharges; //pentangular flow value\r
182\r
183 Double_t fPionPercentage; //percentage of pions\r
b4665e0f 184 Double_t fPionMass; //pion mass\r
63d15f4b 185 TF1 *fPtSpectraPions; //spectra for pions\r
186 Double_t fTemperaturePions; //temperature for pt spectra\r
187 TF1 *fAzimuthalAnglePions; //azimuthal angle for pions\r
188 Double_t fDirectedFlowPions; //directed flow value\r
189 Double_t fEllipticFlowPions; //elliptic flow value\r
190 Double_t fTriangularFlowPions; //triangular flow value\r
191 Double_t fQuandrangularFlowPions; //quadrangular flow value\r
192 Double_t fPentangularFlowPions; //pentangular flow value\r
193\r
194 Double_t fKaonPercentage; //percentage of kaons\r
b4665e0f 195 Double_t fKaonMass; //kaon mass\r
63d15f4b 196 TF1 *fPtSpectraKaons; //spectra for kaons\r
197 Double_t fTemperatureKaons; //temperature for pt spectra\r
198 TF1 *fAzimuthalAngleKaons; //azimuthal angle for kaons\r
199 Double_t fDirectedFlowKaons; //directed flow value\r
200 Double_t fEllipticFlowKaons; //elliptic flow value\r
201 Double_t fTriangularFlowKaons; //triangular flow value\r
202 Double_t fQuandrangularFlowKaons; //quadrangular flow value\r
203 Double_t fPentangularFlowKaons; //pentangular flow value\r
204\r
205 Double_t fProtonPercentage; //percentage of protons\r
b4665e0f 206 Double_t fProtonMass; //proton mass\r
63d15f4b 207 TF1 *fPtSpectraProtons; //spectra for protons\r
208 Double_t fTemperatureProtons; //temperature for pt spectra\r
209 TF1 *fAzimuthalAngleProtons; //azimuthal angle for protons\r
210 Double_t fDirectedFlowProtons; //directed flow value\r
211 Double_t fEllipticFlowProtons; //elliptic flow value\r
212 Double_t fTriangularFlowProtons; //triangular flow value\r
213 Double_t fQuandrangularFlowProtons; //quadrangular flow value\r
214 Double_t fPentangularFlowProtons; //pentangular flow value\r
215\r
6b3bc65c 216 Bool_t fUseDynamicalCorrelations; //Usage of dynamical correlations\r
217 Double_t fDynamicalCorrelationsPercentage; //Percentage of correlations\r
218\r
63d15f4b 219 AliAnalysisTaskToyModel(const AliAnalysisTaskToyModel&); // not implemented\r
220 AliAnalysisTaskToyModel& operator=(const AliAnalysisTaskToyModel&); // not implemented\r
221 \r
222 ClassDef(AliAnalysisTaskToyModel, 1); // example of analysis\r
223};\r
224\r
225#endif\r