1 #ifndef AliAnalysisTaskpzpz_H_Included
2 #define AliAnalysisTaskpzpz_H_Included
4 #include "AliAnalysisTaskSE.h"
9 #include "AliPIDResponse.h"
13 class AliInputEventHandler;
29 class AliAnalysisTaskpzpz : public AliAnalysisTaskSE
32 AliAnalysisTaskpzpz();
33 AliAnalysisTaskpzpz(const TString & name);
36 AliAnalysisTaskpzpz(const AliAnalysisTaskpzpz&);
37 const AliAnalysisTaskpzpz& operator=(const AliAnalysisTaskpzpz&);
40 virtual ~AliAnalysisTaskpzpz();
42 // Implementation of interace methods
43 //virtual void ConnectInputData(Option_t *);
44 virtual void UserCreateOutputObjects();
45 virtual void UserExec(Option_t *option);
46 virtual void FinishTaskOutput();
47 virtual void Terminate(Option_t* );
48 virtual void createHistograms();
49 virtual void finalizeHistograms();
51 virtual void addToList(TH1 *h);
53 TH1D * createHisto1D(const TString & name, const TString & title,int n, double xmin, double xmax,const TString & xTitle, const TString & yTitle);
54 TH1D * createHisto1D(const TString & name, const TString & title,int n, double * bins,const TString & xTitle, const TString & yTitle);
55 TH2D * createHisto2D(const TString & name, const TString & title,
56 int nx, double xmin, double xmax, int ny, double ymin, double ymax, const TString & xTitle, const TString & yTitle, const TString & zTitle);
57 TH2D * createHisto2D(const TString & name, const TString & title, int nx, double* xbins, int ny, double ymin, double ymax,
58 const TString & xTitle, const TString & yTitle, const TString & zTitle);
60 TH1F * createHisto1F(const TString & name, const TString & title,int n, double xmin, double xmax,const TString & xTitle, const TString & yTitle);
61 TH1F * createHisto1F(const TString & name, const TString & title,int n, double * bins,const TString & xTitle, const TString & yTitle);
62 TH2F * createHisto2F(const TString & name, const TString & title,
63 int nx, double xmin, double xmax, int ny, double ymin, double ymax, const TString & xTitle, const TString & yTitle, const TString & zTitle);
64 TH2F * createHisto2F(const TString & name, const TString & title, int nx, double* xbins, int ny, double ymin, double ymax,
65 const TString & xTitle, const TString & yTitle, const TString & zTitle);
66 TH3F * createHisto3F(const TString & name, const TString & title,
67 int nx, double xmin, double xmax, int ny, double ymin, double ymax, int nz, double zmin, double zmax,
68 const TString & xTitle, const TString & yTitle, const TString & zTitle);
69 TProfile * createProfile(const TString & title,const TString & description, int n, double xMin,double xMax,
70 const TString & xTitle, const TString & yTitle);
71 TProfile * createProfile(const TString & name,const TString & description,
73 const TString & xTitle, const TString & yTitle);
75 //________________________________________________________________________
77 float * getFloatArray(int size, float v);
78 double * getDoubleArray(int size, double v);
79 void fillHistoWithArray(TH1 * h, double * array, int size);
80 void fillHistoWithArray(TH2 * h, double * array, int size1, int size2);
81 void fillHistoWithArray(TH3 * h, double * array, int size1, int size2, int size3);
82 void fillHistoWithArray(TH1 * h, float * array, int size);
83 void fillHistoWithArray(TH2 * h, float * array, int size1, int size2);
84 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; }
92 virtual void SetSameFilter(int v) { _sameFilter = v; }
94 virtual void SetRejectPileup(int v) { _rejectPileup = v; }
95 virtual void SetRejectPairConversion(int v) { _rejectPairConversion = v; }
96 virtual void SetVertexZMin(double v) { _vertexZMin = v; }
97 virtual void SetVertexZMax(double v) { _vertexZMax = v; }
98 virtual void SetVertexXYMin(double v) { _vertexXYMin = v; }
99 virtual void SetVertexXYMax(double v) { _vertexXYMax = v; }
100 virtual void SetCentralityMethod(int v) { _centralityMethod = v; }
101 virtual void SetCentrality(double centralityMin, double centralityMax)
103 _centralityMin = centralityMin;
104 _centralityMax = centralityMax;
106 virtual void SetRequestedCharge_1(int v) { _requestedCharge_1 = v; }
107 virtual void SetRequestedCharge_2(int v) { _requestedCharge_2 = v; }
108 virtual void SetPtMin1( double v) { _min_pt_1 = v; }
109 virtual void SetPtMax1( double v) { _max_pt_1 = v; }
110 virtual void SetEtaMin1(double v) { _min_eta_1 = v; }
111 virtual void SetEtaMax1(double v) { _max_eta_1 = v; }
112 virtual void SetPtMin2( double v) { _min_pt_2 = v; }
113 virtual void SetPtMax2( double v) { _max_pt_2 = v; }
114 virtual void SetEtaMin2(double v) { _min_eta_2 = v; }
115 virtual void SetEtaMax2(double v) { _max_eta_2 = v; }
116 virtual void SetDcaZMin(double v) { _dcaZMin = v; }
117 virtual void SetDcaZMax(double v) { _dcaZMax = v; }
118 virtual void SetDcaXYMin(double v) { _dcaXYMin = v; }
119 virtual void SetDcaXYMax(double v) { _dcaXYMax = v; }
120 virtual void SetTPCNclus(int v) { _tpcnclus = v; }
121 virtual void SetChi2PerNDF(double v) { _chi2ndf = v; }
123 virtual void SetDedxMin(double v) { _dedxMin = v; }
124 virtual void SetDedxMax(double v) { _dedxMax = v; }
125 virtual void SetNClusterMin(int v) { _nClusterMin = v; }
126 virtual void SetTrackFilterBit(int v) { _trackFilterBit = v; }
127 virtual void SetWeigth_1(TH3F * v) { _weight_1 = v; }
128 virtual void SetWeigth_2(TH3F * v) { _weight_2 = v; }
130 void SetNSigmaCut(Double_t nsigma){ fNSigmaCut = nsigma;}
134 // Handlers and events
135 AliAODEvent* fAODEvent; //! AOD Event
136 AliESDEvent* fESDEvent; //! ESD Event
137 AliInputEventHandler* fInputHandler; //! Generic InputEventHandler
139 AliPIDResponse* fPIDResponse;
141 // Histogram settings
142 //TList* _inputHistoList;
143 TList* _outputHistoList;
150 //configuration variables and filters
156 int _rejectPairConversion;
161 int _centralityMethod;
162 double _centralityMin;
163 double _centralityMax;
164 int _requestedCharge_1;
165 int _requestedCharge_2;
185 // event and track wise variables
210 //float * _phi_1; //!
212 float *_correction_1; //!
228 float *_correction_2; //!
231 float * _correctionWeight_1; //!
232 float * _correctionWeight_2; //!
235 int _nBins_M0; double _min_M0; double _max_M0; double _width_M0;
236 int _nBins_M1; double _min_M1; double _max_M1; double _width_M1;
237 int _nBins_M2; double _min_M2; double _max_M2; double _width_M2;
238 int _nBins_M3; double _min_M3; double _max_M3; double _width_M3;
239 int _nBins_M4; double _min_M4; double _max_M4; double _width_M4;
240 int _nBins_M5; double _min_M5; double _max_M5; double _width_M5;
241 int _nBins_M6; double _min_M6; double _max_M6; double _width_M6;
243 int _nBins_vertexZ; double _min_vertexZ; double _max_vertexZ; double _width_vertexZ;
245 int _nBins_pt_1; double _min_pt_1; double _max_pt_1; double _width_pt_1;
246 int _nBins_phi_1; double _min_phi_1; double _max_phi_1; double _width_phi_1;
247 int _nBins_eta_1; double _min_eta_1; double _max_eta_1; double _width_eta_1;
249 int _nBins_etaPhiPt_1;
250 int _nBins_zEtaPhiPt_1;
252 int _nBins_pt_2; double _min_pt_2; double _max_pt_2; double _width_pt_2;
253 int _nBins_phi_2; double _min_phi_2; double _max_phi_2; double _width_phi_2;
254 int _nBins_eta_2; double _min_eta_2; double _max_eta_2; double _width_eta_2;
256 int _nBins_etaPhiPt_2;
257 int _nBins_zEtaPhiPt_2;
259 int _nBins_etaPhi_12;
275 double __s2ptptNw_12;
279 double * __n1_1_vsPt; //!
280 double * __n1_1_vsEtaPhi; //!
281 double * __s1pt_1_vsEtaPhi; //!
282 float * __n1_1_vsZEtaPhiPt; //!
284 double * __n1_2_vsPt; //!
285 double * __n1_2_vsEtaPhi; //!
286 double * __s1pt_2_vsEtaPhi; //!
287 float * __n1_2_vsZEtaPhiPt; //!
289 //double * __n2_12_vsPtPt;
290 //double * __n2_12_vsEtaPhi;
291 //double * __s2ptpt_12_vsEtaPhi;
292 //double * __s2PtN_12_vsEtaPhi;
293 //double * __s2NPt_12_vsEtaPhi;
295 double * __n2_12_vsPtPt; //!
296 float * __n2_12_vsEtaPhi; //!
297 float * __s2ptpt_12_vsEtaPhi; //!
298 float * __s2PtN_12_vsEtaPhi; //!
299 float * __s2NPt_12_vsEtaPhi; //!
303 TH1D * _eventAccounting;
321 // PARTICLE 1 (satisfies filter 1)
322 // Primary filled quantities
324 TH2F * _n1_1_vsEtaVsPhi;
325 TH2F * _s1pt_1_vsEtaVsPhi;
326 TH3F * _n1_1_vsZVsEtaVsPhiVsPt;
327 TProfile * _n1_1_vsM; // w/ weight
328 TProfile * _s1pt_1_vsM;
329 TProfile * _n1Nw_1_vsM; // w/o weight
330 TProfile * _s1ptNw_1_vsM;
332 TH2D * _corrDedxVsP_1;
335 // PARTICLE 2 (satisfies filter 2)
336 // Primary filled quantities
338 TH2F * _n1_2_vsEtaVsPhi;
339 TH2F * _s1pt_2_vsEtaVsPhi;
340 TH3F * _n1_2_vsZVsEtaVsPhiVsPt;
341 TProfile * _n1_2_vsM;
342 TProfile * _s1pt_2_vsM;
343 TProfile * _n1Nw_2_vsM; // w/o weight
344 TProfile * _s1ptNw_2_vsM;
346 TH2D * _corrDedxVsP_2;
350 TH1F * _n2_12_vsEtaPhi;
351 TH2F * _n2_12_vsPtVsPt;
352 TH1F * _s2PtPt_12_vsEtaPhi;
353 TH1F * _s2PtN_12_vsEtaPhi;
354 TH1F * _s2NPt_12_vsEtaPhi;
356 TProfile * _n2_12_vsM;
357 TProfile * _s2PtPt_12_vsM;
358 TProfile * _s2PtN_12_vsM;
359 TProfile * _s2NPt_12_vsM;
360 TProfile * _n2Nw_12_vsM;
361 TProfile * _s2PtPtNw_12_vsM;
362 TProfile * _s2PtNNw_12_vsM;
363 TProfile * _s2NPtNw_12_vsM;
388 TString intBinCorrName;
394 TString pair_12_Name;
395 TString pair_13_Name;
396 TString pair_23_Name;
409 TString s2DptDptName;
411 TString s2PtPtNwName;
425 TString _title_counts;
435 TString _title_eta_1;
436 TString _title_phi_1;
438 TString _title_etaPhi_1;
440 TString _title_SumPt_1;
441 TString _title_AvgPt_1;
442 TString _title_AvgN_1;
443 TString _title_AvgSumPt_1;
445 TString _title_eta_2;
446 TString _title_phi_2;
448 TString _title_etaPhi_2;
450 TString _title_SumPt_2;
451 TString _title_AvgPt_2;
452 TString _title_AvgN_2;
453 TString _title_AvgSumPt_2;
455 TString _title_etaPhi_12;
457 TString _title_AvgN2_12;
458 TString _title_AvgSumPtPt_12;
459 TString _title_AvgSumPtN_12;
460 TString _title_AvgNSumPt_12;
471 ClassDef(AliAnalysisTaskpzpz,1)