1 #ifndef AliAnalysisTask3PCorrelations_H_Included
2 #define AliAnalysisTask3PCorrelations_H_Included
4 #include "AliAnalysisTaskSE.h"
10 class AliInputEventHandler;
12 //class AliMCEventHandler;
27 ///This class is designed for 3 particle analysis.
28 ///There are 3 sets of cuts
30 /// #2 : low pt associates
31 /// #3 : low pt associates
32 class AliAnalysisTask3PCorrelations : public AliAnalysisTaskSE
35 AliAnalysisTask3PCorrelations();
36 AliAnalysisTask3PCorrelations(const TString & name);
39 AliAnalysisTask3PCorrelations(const AliAnalysisTask3PCorrelations&);
40 const AliAnalysisTask3PCorrelations& operator=(const AliAnalysisTask3PCorrelations&);
43 virtual ~AliAnalysisTask3PCorrelations();
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();
54 virtual void addToList(TH1 *h);
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);
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,
76 const TString & xTitle, const TString & yTitle);
78 //________________________________________________________________________
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);
89 virtual void SetDebugLevel( int v ) { _debugLevel = v; }
90 virtual void SetSinglesOnly(int v) { _singlesOnly = v; }
91 virtual void SetUseWeights(int v) { _useWeights = v; }
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)
102 _centralityMin = centralityMin;
103 _centralityMax = centralityMax;
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; }
135 // Handlers and events
136 AliAODEvent* fAODEvent; //! AOD Event
137 AliESDEvent* fESDEvent; //! ESD Event
138 AliInputEventHandler* fInputHandler; //! Generic InputEventHandler
140 // Histogram settings
141 //TList* _inputHistoList;
142 TList* _outputHistoList;
149 //configuration variables and filters
154 int _rejectPairConversion;
159 int _centralityMethod;
160 double _centralityMin;
161 double _centralityMax;
172 // event and track wise variables
194 float *_correction_1; //!
205 float *_correction_2; //!
216 float *_correction_3; //!
219 float * _correctionWeight_1P; //!
220 float * _correctionWeight_1M; //!
221 float * _correctionWeight_2P; //!
222 float * _correctionWeight_2M; //!
223 float * _correctionWeight_3P; //!
224 float * _correctionWeight_3M; //!
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;
236 int _nBins_vertexZ; double _min_vertexZ; double _max_vertexZ; double _width_vertexZ;
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;
242 int _nBins_etaPhiPt_1;
243 int _nBins_zEtaPhiPt_1;
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;
249 int _nBins_etaPhiPt_2;
250 int _nBins_zEtaPhiPt_2;
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;
256 int _nBins_etaPhiPt_3;
257 int _nBins_zEtaPhiPt_3;
264 int _nBins_etaPhi_12;
265 int _nBins_etaPhi_13;
266 int _nBins_etaPhi_23;
267 int _nBins_etaPhi_123;
286 double * __n1_1_vsPt; //!
287 double * __n1_1_vsPhi; //!
288 float * __n1_1P_vsZEtaPhiPt; //!
289 float * __n1_1M_vsZEtaPhiPt; //!
291 double * __n1_2_vsPt; //!
292 double * __n1_2_vsPhi; //!
293 float * __n1_2P_vsZEtaPhiPt; //!
294 float * __n1_2M_vsZEtaPhiPt; //!
296 double * __n1_3_vsPt; //!
297 double * __n1_3_vsPhi; //!
298 float * __n1_3P_vsZEtaPhiPt; //!
299 float * __n1_3M_vsZEtaPhiPt; //!
301 float * __n2_12_vsPhi; //!
302 float * __n2_13_vsPhi; //!
303 float * __n2_23_vsPhi; //!
304 float * __n3_123_vsPhi; //!
312 TH1D * _eventAccounting;
322 // PARTICLE 1 (satisfies filter 1)
323 // Primary filled quantities
325 TProfile * _n1_1_vsM; // w/ weight
326 TProfile * _n1Nw_1_vsM; // w/o weight
329 TH3F * _n1_1P_vsZVsEtaVsPhiVsPt;
330 TH3F * _n1_1M_vsZVsEtaVsPhiVsPt;
332 TH2F * _corrDedxVsP_1;
335 // PARTICLE 2 (satisfies filter 2)
336 // Primary filled quantities
338 TProfile * _n1_2_vsM; // w/ weight
339 TProfile * _n1Nw_2_vsM; // w/o weight
342 TH3F * _n1_2P_vsZVsEtaVsPhiVsPt;
343 TH3F * _n1_2M_vsZVsEtaVsPhiVsPt;
345 TH2F * _corrDedxVsP_2;
348 // PARTICLE 3 (satisfies filter 3)
349 // Primary filled quantities
351 TProfile * _n1_3_vsM; // w/ weight
352 TProfile * _n1Nw_3_vsM; // w/o weight
355 TH3F * _n1_3P_vsZVsEtaVsPhiVsPt;
356 TH3F * _n1_3M_vsZVsEtaVsPhiVsPt;
358 TH2F * _corrDedxVsP_3;
367 TH3F * _n3_123_vsPhi;
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;
398 TString intBinCorrName;
402 TString part_1P_Name;
403 TString part_1M_Name;
405 TString part_2P_Name;
406 TString part_2M_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;
415 TString _title_counts;
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;
439 ClassDef(AliAnalysisTask3PCorrelations,1)