]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGCF/Correlations/DPhi/AliAnalysisTaskDptDptCorrelations.h
update DHC task (Constantin Loizides <cloizides@lbl.gov>)
[u/mrichter/AliRoot.git] / PWGCF / Correlations / DPhi / AliAnalysisTaskDptDptCorrelations.h
1 #ifndef AliAnalysisTaskDptDptCorrelations_H_Included
2 #define AliAnalysisTaskDptDptCorrelations_H_Included
3
4 #include "AliAnalysisTaskSE.h"
5 #include "TString.h"
6 #include "AliLog.h"
7
8 class AliAODEvent;
9 class AliESDEvent;
10 class AliInputEventHandler;
11 //class AliMCEvent;
12 //class AliMCEventHandler;
13 class TH1;
14 class TH2;
15 class TH2;
16 class TH3;
17 class TH1F;
18 class TH2F;
19 class TH2F;
20 class TH3F;
21 class TH1D;
22 class TH2D;
23 class TH2D;
24 class TH3D;
25 class TProfile;
26
27 class AliAnalysisTaskDptDptCorrelations : public AliAnalysisTaskSE
28 {
29 public:
30   AliAnalysisTaskDptDptCorrelations();  
31   AliAnalysisTaskDptDptCorrelations(const TString & name);
32   
33 private:
34   AliAnalysisTaskDptDptCorrelations(const  AliAnalysisTaskDptDptCorrelations&);
35   const AliAnalysisTaskDptDptCorrelations& operator=(const  AliAnalysisTaskDptDptCorrelations&);
36
37 public:
38   virtual ~AliAnalysisTaskDptDptCorrelations();
39
40   // Implementation of interace methods
41   //virtual void   ConnectInputData(Option_t *);
42   virtual void   UserCreateOutputObjects();
43   virtual void   UserExec(Option_t *option);
44   virtual void   FinishTaskOutput();
45   virtual void   Terminate(Option_t* );   
46   virtual void   createHistograms();
47   virtual void   finalizeHistograms();
48   
49   virtual void   addToList(TH1 *h);
50
51   TH1D * createHisto1D(const TString &  name, const TString &  title,int n, double xmin, double xmax,const TString &  xTitle, const TString &  yTitle);
52   TH1D * createHisto1D(const TString &  name, const TString &  title,int n, double * bins,const TString &  xTitle, const TString &  yTitle);
53   TH2D * createHisto2D(const TString &  name, const TString &  title, 
54                        int nx, double xmin, double xmax, int ny, double ymin, double ymax, const TString &  xTitle, const TString &  yTitle, const TString &  zTitle);
55   TH2D * createHisto2D(const TString &  name, const TString &  title, int nx, double* xbins, int ny, double ymin, double ymax, 
56                        const TString &  xTitle, const TString &  yTitle, const TString &  zTitle);
57
58   TH1F * createHisto1F(const TString &  name, const TString &  title,int n, double xmin, double xmax,const TString &  xTitle, const TString &  yTitle);
59   TH1F * createHisto1F(const TString &  name, const TString &  title,int n, double * bins,const TString &  xTitle, const TString &  yTitle);
60   TH2F * createHisto2F(const TString &  name, const TString &  title, 
61                        int nx, double xmin, double xmax, int ny, double ymin, double ymax, const TString &  xTitle, const TString &  yTitle, const TString &  zTitle);
62   TH2F * createHisto2F(const TString &  name, const TString &  title, int nx, double* xbins, int ny, double ymin, double ymax, 
63                        const TString &  xTitle, const TString &  yTitle, const TString &  zTitle);
64   TH3F * createHisto3F(const TString &  name, const TString &  title, 
65                        int nx, double xmin, double xmax, int ny, double ymin, double ymax, int nz, double zmin, double zmax, 
66                        const TString &  xTitle, const TString &  yTitle, const TString &  zTitle);  
67   TProfile * createProfile(const TString &  title,const TString &  description, int n,  double xMin,double xMax,
68                            const TString &  xTitle, const TString &  yTitle);
69   TProfile * createProfile(const TString &  name,const TString &  description, 
70                            int nx,  double* bins,
71                            const TString &  xTitle, const TString &  yTitle);
72   
73   //________________________________________________________________________
74   
75   float  * getFloatArray(int size, float v);
76   double * getDoubleArray(int size, double v);
77   void fillHistoWithArray(TH1 * h, double * array, int size);
78   void fillHistoWithArray(TH2 * h, double * array, int size1, int size2);
79   void fillHistoWithArray(TH3 * h, double * array, int size1, int size2, int size3);
80   void fillHistoWithArray(TH1 * h, float * array, int size);
81   void fillHistoWithArray(TH2 * h, float * array, int size1, int size2);
82   void fillHistoWithArray(TH3 * h, float * array, int size1, int size2, int size3);
83   
84   virtual     void    SetDebugLevel( int v )              { _debugLevel   = v; }
85   virtual     void    SetSinglesOnly(int v)               { _singlesOnly  = v; } 
86   virtual     void    SetUseWeights(int v)                { _useWeights   = v; } 
87   virtual     void    SetSameFilter(int v)                { _sameFilter   = v; }
88   
89   virtual     void    SetRejectPileup(int v)              { _rejectPileup         = v; } 
90   virtual     void    SetRejectPairConversion(int v)      { _rejectPairConversion = v; } 
91   virtual     void    SetVertexZMin(double v)             { _vertexZMin           = v; } 
92   virtual     void    SetVertexZMax(double v)             { _vertexZMax           = v; } 
93   virtual     void    SetVertexXYMin(double v)            { _vertexXYMin          = v; } 
94   virtual     void    SetVertexXYMax(double v)            { _vertexXYMax          = v; } 
95   virtual     void    SetCentralityMethod(int v)          { _centralityMethod     = v; }
96   virtual     void    SetCentrality(double centralityMin, double centralityMax)
97   {
98     _centralityMin = centralityMin;
99     _centralityMax = centralityMax;
100   }
101   virtual     void    SetRequestedCharge_1(int v)     { _requestedCharge_1 = v; }
102   virtual     void    SetRequestedCharge_2(int v)     { _requestedCharge_2 = v; }
103   virtual     void    SetPtMin1( double v)            { _min_pt_1          = v; } 
104   virtual     void    SetPtMax1( double v)            { _max_pt_1          = v; } 
105   virtual     void    SetEtaMin1(double v)            { _min_eta_1         = v; } 
106   virtual     void    SetEtaMax1(double v)            { _max_eta_1         = v; } 
107   virtual     void    SetPtMin2( double v)            { _min_pt_2          = v; } 
108   virtual     void    SetPtMax2( double v)            { _max_pt_2          = v; } 
109   virtual     void    SetEtaMin2(double v)            { _min_eta_2         = v; } 
110   virtual     void    SetEtaMax2(double v)            { _max_eta_2         = v; } 
111   virtual     void    SetDcaZMin(double v)            { _dcaZMin           = v; } 
112   virtual     void    SetDcaZMax(double v)            { _dcaZMax           = v; } 
113   virtual     void    SetDcaXYMin(double v)           { _dcaXYMin          = v; } 
114   virtual     void    SetDcaXYMax(double v)           { _dcaXYMax          = v; } 
115   virtual     void    SetDedxMin(double v)            { _dedxMin           = v; } 
116   virtual     void    SetDedxMax(double v)            { _dedxMax           = v; } 
117   virtual     void    SetNClusterMin(int v)           { _nClusterMin       = v; } 
118   virtual     void    SetTrackFilterBit(int v)        { _trackFilterBit    = v; }
119   virtual     void    SetWeigth_1(TH3F * v)           { _weight_1          = v; }
120   virtual     void    SetWeigth_2(TH3F * v)           { _weight_2          = v; }
121   
122   
123 protected:      
124   
125   // Handlers and events
126   AliAODEvent*             fAODEvent;             //! AOD Event 
127   AliESDEvent*             fESDEvent;             //! ESD Event 
128   AliInputEventHandler*    fInputHandler;    //! Generic InputEventHandler 
129   
130   // Histogram settings
131   //TList*              _inputHistoList;
132   TList*              _outputHistoList;
133   //int _outputSlot;
134   
135   
136   double   _twoPi;
137   long     _eventCount;
138   
139   //configuration variables and filters
140   int      _debugLevel;
141   int      _singlesOnly; 
142   int      _useWeights; 
143   int      _sameFilter;
144   int      _rejectPileup; 
145   int      _rejectPairConversion; 
146   double   _vertexZMin; 
147   double   _vertexZMax; 
148   double   _vertexXYMin; 
149   double   _vertexXYMax; 
150   int      _centralityMethod;
151   double   _centralityMin;
152   double   _centralityMax;
153   int      _requestedCharge_1;
154   int      _requestedCharge_2;
155   double   _dcaZMin; 
156   double   _dcaZMax; 
157   double   _dcaXYMin; 
158   double   _dcaXYMax;
159   double   _dedxMin;
160   double   _dedxMax;
161   int      _nClusterMin; 
162   int      _trackFilterBit;
163   
164  
165   // event and track wise variables
166   
167   double _field;
168   int    _nTracks;
169   double _mult0;
170   double _mult1;
171   double _mult2;
172   double _mult3;
173   double _mult4;
174   double _mult5;
175   double _mult6;
176   
177   //particle 1
178   int     arraySize;
179   int    *_id_1;               //!
180   int    *_charge_1;           //! 
181   //int  *  _iPhi_1;            //!
182   //int  *  _iEta_1;            //!
183   int    *_iEtaPhi_1;            //!
184   int    *_iPt_1;             //!
185   float  *_pt_1;               //!
186   float  *_px_1;              //!
187   float  *_py_1;              //!
188   float  *_pz_1;              //!
189  //float * _phi_1;             //!
190   //float*  _eta_1;             //!
191   float  *_correction_1;           //!
192   float  *_dedx_1;           //!
193   
194   //particle 2
195   int    *_id_2;              //!
196   int    *_charge_2;            //!
197   //int    *_iPhi_2;            //!
198   //int    *_iEta_2;            //!
199   int    *_iEtaPhi_2;            //!
200   int    *_iPt_2;             //!
201   float  *_pt_2;              //!
202   float  *_px_2;              //!
203   float  *_py_2;              //!
204   float  *_pz_2;              //!
205   //float  *_phi_2;             //!
206   //float  *_eta_2;             //!
207   float  *_correction_2;           //!
208   float  *_dedx_2;           //!
209   
210   float * _correctionWeight_1;           //!
211   float * _correctionWeight_2;           //!
212   
213   //histograming
214   int _nBins_M0;       double _min_M0;       double _max_M0;       double _width_M0;
215   int _nBins_M1;       double _min_M1;       double _max_M1;       double _width_M1;
216   int _nBins_M2;       double _min_M2;       double _max_M2;       double _width_M2;
217   int _nBins_M3;       double _min_M3;       double _max_M3;       double _width_M3;
218   int _nBins_M4;       double _min_M4;       double _max_M4;       double _width_M4;
219   int _nBins_M5;       double _min_M5;       double _max_M5;       double _width_M5;
220   int _nBins_M6;       double _min_M6;       double _max_M6;       double _width_M6;
221   
222   int _nBins_vertexZ;  double _min_vertexZ;  double _max_vertexZ;  double _width_vertexZ;
223   
224   int _nBins_pt_1;     double _min_pt_1;     double _max_pt_1;     double _width_pt_1;
225   int _nBins_phi_1;    double _min_phi_1;    double _max_phi_1;    double _width_phi_1;
226   int _nBins_eta_1;    double _min_eta_1;    double _max_eta_1;    double _width_eta_1;
227   int _nBins_etaPhi_1; 
228   int _nBins_etaPhiPt_1;
229   int _nBins_zEtaPhiPt_1;
230   
231   int _nBins_pt_2;     double _min_pt_2;     double _max_pt_2;     double _width_pt_2;
232   int _nBins_phi_2;    double _min_phi_2;    double _max_phi_2;    double _width_phi_2;
233   int _nBins_eta_2;    double _min_eta_2;    double _max_eta_2;    double _width_eta_2;
234   int _nBins_etaPhi_2; 
235   int _nBins_etaPhiPt_2;
236   int _nBins_zEtaPhiPt_2;
237   
238   int _nBins_etaPhi_12;
239     
240   double __n1_1;
241   double __n1_2;
242   double __n2_12;   
243   double __s1pt_1;
244   double __s1pt_2;
245   double __s2ptpt_12;
246   double __s2NPt_12;
247   double __s2PtN_12;
248   
249   double __n1Nw_1;
250   double __n1Nw_2;
251   double __n2Nw_12;   
252   double __s1ptNw_1;
253   double __s1ptNw_2;
254   double __s2ptptNw_12;
255   double __s2NPtNw_12;
256   double __s2PtNNw_12;
257   
258   double * __n1_1_vsPt;   //!
259   double * __n1_1_vsEtaPhi;     //! 
260   double * __s1pt_1_vsEtaPhi;    //!
261   float  * __n1_1_vsZEtaPhiPt;    //!
262     
263   double * __n1_2_vsPt;   //!
264   double * __n1_2_vsEtaPhi;     //! 
265   double * __s1pt_2_vsEtaPhi;    //!
266   float  * __n1_2_vsZEtaPhiPt;    //!
267   
268   //double * __n2_12_vsPtPt;
269   //double * __n2_12_vsEtaPhi;
270   //double * __s2ptpt_12_vsEtaPhi;
271   //double * __s2PtN_12_vsEtaPhi;
272   //double * __s2NPt_12_vsEtaPhi;
273   
274   double * __n2_12_vsPtPt;   //!
275   float  * __n2_12_vsEtaPhi;   //!
276   float  * __s2ptpt_12_vsEtaPhi;   //!
277   float  * __s2PtN_12_vsEtaPhi;   //!
278   float  * __s2NPt_12_vsEtaPhi;   //!
279   
280   TH3F * _weight_1;
281   TH3F * _weight_2;
282   TH1D * _eventAccounting;
283   TH1D * _m0;
284   TH1D * _m1;
285   TH1D * _m2;
286   TH1D * _m3;
287   TH1D * _m4;
288   TH1D * _m5;
289   TH1D * _m6;
290   TH1D * _vertexZ;
291   
292   // PARTICLE 1 (satisfies filter 1)
293   // Primary filled quantities
294   TH1F      *  _n1_1_vsPt;         
295   TH2F      *  _n1_1_vsEtaVsPhi;
296   TH2F      *  _s1pt_1_vsEtaVsPhi; 
297   TH3F      *  _n1_1_vsZVsEtaVsPhiVsPt;
298   TProfile *  _n1_1_vsM;  // w/ weight
299   TProfile *  _s1pt_1_vsM;
300   TProfile *  _n1Nw_1_vsM; // w/o weight
301   TProfile *  _s1ptNw_1_vsM;
302   TH2F      *  _dedxVsP_1;
303   TH2F      *  _corrDedxVsP_1;
304   TH2F      *  _betaVsP_1;
305   
306   // PARTICLE 2 (satisfies filter 2)
307   // Primary filled quantities
308   TH1F      *  _n1_2_vsPt;         
309   TH2F      *  _n1_2_vsEtaVsPhi;
310   TH2F      *  _s1pt_2_vsEtaVsPhi;
311   TH3F      *  _n1_2_vsZVsEtaVsPhiVsPt; 
312   TProfile *  _n1_2_vsM;
313   TProfile *  _s1pt_2_vsM;
314   TProfile *  _n1Nw_2_vsM; // w/o weight
315   TProfile *  _s1ptNw_2_vsM;
316   TH2F      *  _dedxVsP_2;
317   TH2F      *  _corrDedxVsP_2;
318   TH2F      *  _betaVsP_2;
319   
320   // Pairs 1 & 2  
321   TH1F      * _n2_12_vsEtaPhi;        
322   TH2F      * _n2_12_vsPtVsPt;
323   TH1F      * _s2PtPt_12_vsEtaPhi;    
324   TH1F      * _s2PtN_12_vsEtaPhi;       
325   TH1F      * _s2NPt_12_vsEtaPhi;     
326   
327   TProfile * _n2_12_vsM;        
328   TProfile * _s2PtPt_12_vsM;    
329   TProfile * _s2PtN_12_vsM;       
330   TProfile * _s2NPt_12_vsM; 
331   TProfile * _n2Nw_12_vsM;        
332   TProfile * _s2PtPtNw_12_vsM;    
333   TProfile * _s2PtNNw_12_vsM;       
334   TProfile * _s2NPtNw_12_vsM; 
335   
336   TH1F      * _invMass;
337   TH1F      * _invMassElec;
338   
339   TString n1Name;
340   TString n1NwName;
341   TString n2Name;
342   TString n2NwName;
343   TString n3Name;
344   TString n1n1Name;
345   TString n1n1n1Name;
346   TString n2n1Name;
347   TString r1Name;
348   TString r2Name;
349   TString r3Name;
350   TString r2r1Name;
351   TString c2Name;
352   TString c3Name;
353   TString d3Name;
354   TString p3Name;
355   TString cName;
356   
357   TString intR2Name;
358   TString binCorrName;
359   TString intBinCorrName;
360   
361   TString countsName;
362   TString part_1_Name;
363   TString part_2_Name;
364   TString part_3_Name;
365   TString pair_12_Name;
366   TString pair_13_Name;
367   TString pair_23_Name;
368   TString tripletName;
369   
370   TString avg;
371   TString avgName;
372   TString sumName;
373   TString s1ptName;
374   TString s1ptNwName;
375   TString s1DptName;
376   
377   TString s2PtPtName;
378   TString s2NPtName;
379   TString s2PtNName;
380   TString s2DptDptName;
381  
382   TString s2PtPtNwName;
383   TString s2NPtNwName;
384   TString s2PtNNwName;
385   
386   TString ptName;
387   TString ptptName;
388   TString pt1pt1Name;
389   TString DptName;
390   TString DptDptName;
391   TString RDptDptName;
392   TString nPtName;
393   TString ptNName;
394   TString seanName;
395   
396   TString _title_counts;
397   
398   TString _title_m0;
399   TString _title_m1;
400   TString _title_m2;
401   TString _title_m3;
402   TString _title_m4;
403   TString _title_m5;
404   TString _title_m6;
405   
406   TString _title_eta_1;
407   TString _title_phi_1;
408   TString _title_pt_1;
409   TString _title_etaPhi_1;
410   TString _title_n_1;
411   TString _title_SumPt_1;
412   TString _title_AvgPt_1;
413   TString _title_AvgN_1;
414   TString _title_AvgSumPt_1;
415   
416   TString _title_eta_2;
417   TString _title_phi_2;
418   TString _title_pt_2;
419   TString _title_etaPhi_2;
420   TString _title_n_2;
421   TString _title_SumPt_2;
422   TString _title_AvgPt_2;
423   TString _title_AvgN_2;
424   TString _title_AvgSumPt_2;
425   
426   TString _title_etaPhi_12;
427   
428   TString _title_AvgN2_12;
429   TString _title_AvgSumPtPt_12;
430   TString _title_AvgSumPtN_12;
431   TString _title_AvgNSumPt_12;
432   
433   TString vsZ;
434   TString vsM;
435   TString vsPt;
436   TString vsPhi; 
437   TString vsEta; 
438   TString vsEtaPhi; 
439   TString vsPtVsPt;
440
441   
442   ClassDef(AliAnalysisTaskDptDptCorrelations,1)
443 }; 
444
445
446 #endif
447
448