]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGCF/Correlations/DPhi/AliAnalysisTask3PCorrelations.h
Merge branch 'feature-movesplit'
[u/mrichter/AliRoot.git] / PWGCF / Correlations / DPhi / AliAnalysisTask3PCorrelations.h
CommitLineData
17039b7c 1#ifndef AliAnalysisTask3PCorrelations_H_Included
2#define AliAnalysisTask3PCorrelations_H_Included
3
4#include "AliAnalysisTaskSE.h"
5#include "TString.h"
6#include "AliLog.h"
7
8class AliAODEvent;
9class AliESDEvent;
10class AliInputEventHandler;
11//class AliMCEvent;
12//class AliMCEventHandler;
13class TH1;
14class TH2;
15class TH2;
16class TH3;
17class TH1F;
18class TH2F;
19class TH2F;
20class TH3F;
21class TH1D;
22class TH2D;
23class TH2D;
24class TH3D;
25class TProfile;
26
27///This class is designed for 3 particle analysis.
28///There are 3 sets of cuts
29/// #1 : 'trigger'
30/// #2 : low pt associates
31/// #3 : low pt associates
32class AliAnalysisTask3PCorrelations : public AliAnalysisTaskSE
33{
34public:
35 AliAnalysisTask3PCorrelations();
36 AliAnalysisTask3PCorrelations(const TString & name);
37
38private:
39 AliAnalysisTask3PCorrelations(const AliAnalysisTask3PCorrelations&);
40 const AliAnalysisTask3PCorrelations& operator=(const AliAnalysisTask3PCorrelations&);
41
42public:
43 virtual ~AliAnalysisTask3PCorrelations();
44
45 // Implementation of interace methods
46 //virtual void ConnectInputData(Option_t *);
47 virtual void UserCreateOutputObjects();
48 virtual void UserExec(Option_t *option);
49 virtual void FinishTaskOutput();
50 virtual void Terminate(Option_t* );
51 virtual void createHistograms();
52 virtual void finalizeHistograms();
53
54 virtual void addToList(TH1 *h);
55
56 TH1D * createHisto1D(const TString & name, const TString & title,int n, double xmin, double xmax,const TString & xTitle, const TString & yTitle);
57 TH1D * createHisto1D(const TString & name, const TString & title,int n, double * bins,const TString & xTitle, const TString & yTitle);
58 TH2D * createHisto2D(const TString & name, const TString & title,
59 int nx, double xmin, double xmax, int ny, double ymin, double ymax, const TString & xTitle, const TString & yTitle, const TString & zTitle);
60 TH2D * createHisto2D(const TString & name, const TString & title, int nx, double* xbins, int ny, double ymin, double ymax,
61 const TString & xTitle, const TString & yTitle, const TString & zTitle);
62
63 TH1F * createHisto1F(const TString & name, const TString & title,int n, double xmin, double xmax,const TString & xTitle, const TString & yTitle);
64 TH1F * createHisto1F(const TString & name, const TString & title,int n, double * bins,const TString & xTitle, const TString & yTitle);
65 TH2F * createHisto2F(const TString & name, const TString & title,
66 int nx, double xmin, double xmax, int ny, double ymin, double ymax, const TString & xTitle, const TString & yTitle, const TString & zTitle);
67 TH2F * createHisto2F(const TString & name, const TString & title, int nx, double* xbins, int ny, double ymin, double ymax,
68 const TString & xTitle, const TString & yTitle, const TString & zTitle);
69 TH3F * createHisto3F(const TString & name, const TString & title,
70 int nx, double xmin, double xmax, int ny, double ymin, double ymax, int nz, double zmin, double zmax,
71 const TString & xTitle, const TString & yTitle, const TString & zTitle);
72 TProfile * createProfile(const TString & title,const TString & description, int n, double xMin,double xMax,
73 const TString & xTitle, const TString & yTitle);
74 TProfile * createProfile(const TString & name,const TString & description,
75 int nx, double* bins,
76 const TString & xTitle, const TString & yTitle);
77
78 //________________________________________________________________________
79
80 float * getFloatArray(int size, float v);
81 double * getDoubleArray(int size, double v);
82 void fillHistoWithArray(TH1 * h, double * array, int size);
83 void fillHistoWithArray(TH2 * h, double * array, int size1, int size2);
84 void fillHistoWithArray(TH3 * h, double * array, int size1, int size2, int size3);
85 void fillHistoWithArray(TH1 * h, float * array, int size);
86 void fillHistoWithArray(TH2 * h, float * array, int size1, int size2);
87 void fillHistoWithArray(TH3 * h, float * array, int size1, int size2, int size3);
88
89 virtual void SetDebugLevel( int v ) { _debugLevel = v; }
90 virtual void SetSinglesOnly(int v) { _singlesOnly = v; }
91 virtual void SetUseWeights(int v) { _useWeights = v; }
92
93 virtual void SetRejectPileup(int v) { _rejectPileup = v; }
94 virtual void SetRejectPairConversion(int v) { _rejectPairConversion = v; }
95 virtual void SetVertexZMin(double v) { _vertexZMin = v; }
96 virtual void SetVertexZMax(double v) { _vertexZMax = v; }
97 virtual void SetVertexXYMin(double v) { _vertexXYMin = v; }
98 virtual void SetVertexXYMax(double v) { _vertexXYMax = v; }
99 virtual void SetCentralityMethod(int v) { _centralityMethod = v; }
100 virtual void SetCentrality(double centralityMin, double centralityMax)
101 {
102 _centralityMin = centralityMin;
103 _centralityMax = centralityMax;
104 }
105 virtual void SetPtMin1( double v) { _min_pt_1 = v; }
106 virtual void SetPtMax1( double v) { _max_pt_1 = v; }
107 virtual void SetEtaMin1(double v) { _min_eta_1 = v; }
108 virtual void SetEtaMax1(double v) { _max_eta_1 = v; }
109 virtual void SetPtMin2( double v) { _min_pt_2 = v; }
110 virtual void SetPtMax2( double v) { _max_pt_2 = v; }
111 virtual void SetEtaMin2(double v) { _min_eta_2 = v; }
112 virtual void SetEtaMax2(double v) { _max_eta_2 = v; }
113 virtual void SetPtMin3( double v) { _min_pt_3 = v; }
114 virtual void SetPtMax3( double v) { _max_pt_3 = v; }
115 virtual void SetEtaMin3(double v) { _min_eta_3 = v; }
116 virtual void SetEtaMax3(double v) { _max_eta_3 = v; }
117 virtual void SetDcaZMin(double v) { _dcaZMin = v; }
118 virtual void SetDcaZMax(double v) { _dcaZMax = v; }
119 virtual void SetDcaXYMin(double v) { _dcaXYMin = v; }
120 virtual void SetDcaXYMax(double v) { _dcaXYMax = v; }
121 virtual void SetDedxMin(double v) { _dedxMin = v; }
122 virtual void SetDedxMax(double v) { _dedxMax = v; }
123 virtual void SetNClusterMin(int v) { _nClusterMin = v; }
124 virtual void SetTrackFilterBit(int v) { _trackFilterBit = v; }
125 virtual void SetWeigth_1P(TH3F * v) { _weight_1P = v; }
126 virtual void SetWeigth_1M(TH3F * v) { _weight_1M = v; }
127 virtual void SetWeigth_2P(TH3F * v) { _weight_2P = v; }
128 virtual void SetWeigth_2M(TH3F * v) { _weight_2M = v; }
129 virtual void SetWeigth_3P(TH3F * v) { _weight_3P = v; }
130 virtual void SetWeigth_3M(TH3F * v) { _weight_3M = v; }
131
132
133protected:
134
135 // Handlers and events
136 AliAODEvent* fAODEvent; //! AOD Event
137 AliESDEvent* fESDEvent; //! ESD Event
138 AliInputEventHandler* fInputHandler; //! Generic InputEventHandler
139
140 // Histogram settings
141 //TList* _inputHistoList;
142 TList* _outputHistoList;
143 //int _outputSlot;
144
145
146 double _twoPi;
147 long _eventCount;
148
149 //configuration variables and filters
150 int _debugLevel;
151 int _singlesOnly;
152 int _useWeights;
153 int _rejectPileup;
154 int _rejectPairConversion;
155 double _vertexZMin;
156 double _vertexZMax;
157 double _vertexXYMin;
158 double _vertexXYMax;
159 int _centralityMethod;
160 double _centralityMin;
161 double _centralityMax;
162 double _dcaZMin;
163 double _dcaZMax;
164 double _dcaXYMin;
165 double _dcaXYMax;
166 double _dedxMin;
167 double _dedxMax;
168 int _nClusterMin;
169 int _trackFilterBit;
170
171
172 // event and track wise variables
173
174 double _field;
175 int _nTracks;
176 double _mult0;
177 double _mult1;
178 double _mult2;
179 double _mult3;
180 double _mult4;
181 double _mult5;
182 double _mult6;
183
184 //particle 1
185 int arraySize;
186
187 int *_id_1; //!
188 int *_charge_1; //!
189 int *_iPhi_1; //!
190 float *_pt_1; //!
191 float *_px_1; //!
192 float *_py_1; //!
193 float *_pz_1; //!
194 float *_correction_1; //!
195 float *_dedx_1; //!
196
197 //particle 2
198 int *_id_2; //!
199 int *_charge_2; //!
200 int *_iPhi_2; //!
201 float *_pt_2; //!
202 float *_px_2; //!
203 float *_py_2; //!
204 float *_pz_2; //!
205 float *_correction_2; //!
206 float *_dedx_2; //!
207
208 //particle 3
209 int *_id_3; //!
210 int *_charge_3; //!
211 int *_iPhi_3; //!
212 float *_pt_3; //!
213 float *_px_3; //!
214 float *_py_3; //!
215 float *_pz_3; //!
216 float *_correction_3; //!
217 float *_dedx_3; //!
218
219 float * _correctionWeight_1P; //!
220 float * _correctionWeight_1M; //!
221 float * _correctionWeight_2P; //!
222 float * _correctionWeight_2M; //!
223 float * _correctionWeight_3P; //!
224 float * _correctionWeight_3M; //!
225
226 //histograming
227 int _nBins_M0; double _min_M0; double _max_M0; double _width_M0;
228 int _nBins_M1; double _min_M1; double _max_M1; double _width_M1;
229 int _nBins_M2; double _min_M2; double _max_M2; double _width_M2;
230 int _nBins_M3; double _min_M3; double _max_M3; double _width_M3;
231 int _nBins_M4; double _min_M4; double _max_M4; double _width_M4;
232 int _nBins_M5; double _min_M5; double _max_M5; double _width_M5;
233 int _nBins_M6; double _min_M6; double _max_M6; double _width_M6;
234 int _nBins_vsM; double _min_vsM; double _max_vsM; double _width_vsM;
235
236 int _nBins_vertexZ; double _min_vertexZ; double _max_vertexZ; double _width_vertexZ;
237
238 int _nBins_pt_1; double _min_pt_1; double _max_pt_1; double _width_pt_1;
239 int _nBins_phi_1; double _min_phi_1; double _max_phi_1; double _width_phi_1;
240 int _nBins_eta_1; double _min_eta_1; double _max_eta_1; double _width_eta_1;
241 int _nBins_etaPhi_1;
242 int _nBins_etaPhiPt_1;
243 int _nBins_zEtaPhiPt_1;
244
245 int _nBins_pt_2; double _min_pt_2; double _max_pt_2; double _width_pt_2;
246 int _nBins_phi_2; double _min_phi_2; double _max_phi_2; double _width_phi_2;
247 int _nBins_eta_2; double _min_eta_2; double _max_eta_2; double _width_eta_2;
248 int _nBins_etaPhi_2;
249 int _nBins_etaPhiPt_2;
250 int _nBins_zEtaPhiPt_2;
251
252 int _nBins_pt_3; double _min_pt_3; double _max_pt_3; double _width_pt_3;
253 int _nBins_phi_3; double _min_phi_3; double _max_phi_3; double _width_phi_3;
254 int _nBins_eta_3; double _min_eta_3; double _max_eta_3; double _width_eta_3;
255 int _nBins_etaPhi_3;
256 int _nBins_etaPhiPt_3;
257 int _nBins_zEtaPhiPt_3;
258
259 int _nBins_phi_12;
260 int _nBins_phi_13;
261 int _nBins_phi_23;
262 int _nBins_phi_123;
263
264 int _nBins_etaPhi_12;
265 int _nBins_etaPhi_13;
266 int _nBins_etaPhi_23;
267 int _nBins_etaPhi_123;
268
269 double __n1_1;
270 double __n1_2;
271 double __n1_3;
272 double __n2_12;
273 double __n2_13;
274 double __n2_23;
275 double __n3_123;
276
277 double __n1Nw_1;
278 double __n1Nw_2;
279 double __n1Nw_3;
280 double __n2Nw_12;
281 double __n2Nw_13;
282 double __n2Nw_23;
283
284 double __n3Nw_123;
285
286 double * __n1_1_vsPt; //!
287 double * __n1_1_vsPhi; //!
288 float * __n1_1P_vsZEtaPhiPt; //!
289 float * __n1_1M_vsZEtaPhiPt; //!
290
291 double * __n1_2_vsPt; //!
292 double * __n1_2_vsPhi; //!
293 float * __n1_2P_vsZEtaPhiPt; //!
294 float * __n1_2M_vsZEtaPhiPt; //!
295
296 double * __n1_3_vsPt; //!
297 double * __n1_3_vsPhi; //!
298 float * __n1_3P_vsZEtaPhiPt; //!
299 float * __n1_3M_vsZEtaPhiPt; //!
300
301 float * __n2_12_vsPhi; //!
302 float * __n2_13_vsPhi; //!
303 float * __n2_23_vsPhi; //!
304 float * __n3_123_vsPhi; //!
305
306 TH3F * _weight_1P;
307 TH3F * _weight_1M;
308 TH3F * _weight_2P;
309 TH3F * _weight_2M;
310 TH3F * _weight_3P;
311 TH3F * _weight_3M;
312 TH1D * _eventAccounting;
313 TH1D * _m0;
314 TH1D * _m1;
315 TH1D * _m2;
316 TH1D * _m3;
317 TH1D * _m4;
318 TH1D * _m5;
319 TH1D * _m6;
320 TH1D * _vertexZ;
321
322 // PARTICLE 1 (satisfies filter 1)
323 // Primary filled quantities
324 TH1F * _n1_1_vsPhi;
325 TProfile * _n1_1_vsM; // w/ weight
326 TProfile * _n1Nw_1_vsM; // w/o weight
327
328 TH1F * _n1_1_vsPt;
329 TH3F * _n1_1P_vsZVsEtaVsPhiVsPt;
330 TH3F * _n1_1M_vsZVsEtaVsPhiVsPt;
331 TH2F * _dedxVsP_1;
332 TH2F * _corrDedxVsP_1;
333 TH2F * _betaVsP_1;
334
335 // PARTICLE 2 (satisfies filter 2)
336 // Primary filled quantities
337 TH1F * _n1_2_vsPhi;
338 TProfile * _n1_2_vsM; // w/ weight
339 TProfile * _n1Nw_2_vsM; // w/o weight
340
341 TH1F * _n1_2_vsPt;
342 TH3F * _n1_2P_vsZVsEtaVsPhiVsPt;
343 TH3F * _n1_2M_vsZVsEtaVsPhiVsPt;
344 TH2F * _dedxVsP_2;
345 TH2F * _corrDedxVsP_2;
346 TH2F * _betaVsP_2;
347
348 // PARTICLE 3 (satisfies filter 3)
349 // Primary filled quantities
350 TH1F * _n1_3_vsPhi;
351 TProfile * _n1_3_vsM; // w/ weight
352 TProfile * _n1Nw_3_vsM; // w/o weight
353
354 TH1F * _n1_3_vsPt;
355 TH3F * _n1_3P_vsZVsEtaVsPhiVsPt;
356 TH3F * _n1_3M_vsZVsEtaVsPhiVsPt;
357 TH2F * _dedxVsP_3;
358 TH2F * _corrDedxVsP_3;
359 TH2F * _betaVsP_3;
360
361 // Pairs 1 & 2
362 TH2F * _n2_12_vsPhi;
363 TH2F * _n2_13_vsPhi;
364 TH2F * _n2_23_vsPhi;
365
366 // Triplets
367 TH3F * _n3_123_vsPhi;
368
369 TProfile * _n2_12_vsM;
370 TProfile * _n2_13_vsM;
371 TProfile * _n2_23_vsM;
372 TProfile * _n3_123_vsM;
373 TProfile * _n2Nw_12_vsM;
374 TProfile * _n2Nw_13_vsM;
375 TProfile * _n2Nw_23_vsM;
376 TProfile * _n3Nw_123_vsM;
377
378 TString n1Name;
379 TString n2Name;
380 TString n3Name;
381 TString n1NwName;
382 TString n2NwName;
383 TString n3NwName;
384 TString n1n1Name;
385 TString n1n1n1Name;
386 TString n2n1Name;
387 TString r1Name;
388 TString r2Name;
389 TString r3Name;
390 TString r2r1Name;
391 TString c2Name;
392 TString c3Name;
393 TString d3Name;
394 TString p3Name;
395
396 TString intR2Name;
397 TString binCorrName;
398 TString intBinCorrName;
399
400 TString countsName;
401 TString part_1_Name;
402 TString part_1P_Name;
403 TString part_1M_Name;
404 TString part_2_Name;
405 TString part_2P_Name;
406 TString part_2M_Name;
407 TString part_3_Name;
408 TString part_3P_Name;
409 TString part_3M_Name;
410 TString pair_12_Name;
411 TString pair_13_Name;
412 TString pair_23_Name;
413 TString triplet_Name;
414
415 TString _title_counts;
416 TString _title_m0;
417 TString _title_m1;
418 TString _title_m2;
419 TString _title_m3;
420 TString _title_m4;
421 TString _title_m5;
422 TString _title_m6;
423
424 TString _title_phi_1;
425 TString _title_phi_2;
426 TString _title_phi_3;
427 TString _title_phi_12;
428 TString _title_phi_13;
429 TString _title_phi_23;
430 TString _title_phi_123;
431
432 TString vsZ;
433 TString vsM;
434 TString vsPt;
435 TString vsPhi;
436 TString vsEta;
437 TString vsEtaPhi;
438
439 ClassDef(AliAnalysisTask3PCorrelations,1)
440};
441
442
443#endif
444
445