]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGCF/Correlations/DPhi/AliAnalysisTaskDptDptCorrelations.cxx
Update from Prabhat
[u/mrichter/AliRoot.git] / PWGCF / Correlations / DPhi / AliAnalysisTaskDptDptCorrelations.cxx
CommitLineData
9cabc5db 1/**************************************************************************
2 * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
3 * *
4 * Author: The ALICE Off-line Project. *
5 * Contributors are mentioned in the code where appropriate. *
6 * *
7 * Permission to use, copy, modify and distribute this software and its *
8 * documentation strictly for non-commercial purposes is hereby granted *
9 * without fee, provided that the above copyright notice appears in all *
10 * copies and that both the copyright notice and this permission notice *
11 * appear in the supporting documentation. The authors make no claims *
12 * about the suitability of this software for any purpose. It is *
13 * provided "as is" without express or implied warranty. *
14 **************************************************************************/
15
cc7ee8f9 16#include "TChain.h"
17#include "TList.h"
18#include "TFile.h"
19#include "TTree.h"
20#include "TH1D.h"
21#include "TH2D.h"
22#include "TH3D.h"
23#include "THnSparse.h"
24#include "TCanvas.h"
25
9cabc5db 26#include <TROOT.h>
27#include <TChain.h>
28#include <TFile.h>
29#include <TList.h>
30#include <TMath.h>
31#include <TTree.h>
32#include <TH1F.h>
33#include <TH2F.h>
34#include <TH3F.h>
35#include <TProfile.h>
36#include <TH1D.h>
37#include <TH2D.h>
38#include <TH3D.h>
39#include <TRandom.h>
40#include "AliAnalysisManager.h"
41
42#include "AliAODHandler.h"
43#include "AliAODInputHandler.h"
9cabc5db 44#include "AliInputEventHandler.h"
45#include "AliLog.h"
46#include "AliESDEvent.h"
47#include "AliESDInputHandler.h"
48#include "AliMultiplicity.h"
49#include "AliCentrality.h"
50#include "AliAnalysisTaskDptDptCorrelations.h"
1cb2a06e 51
cc7ee8f9 52#include "AliPID.h"
53#include "AliPIDResponse.h"
54
55#include "AliESDVertex.h"
56#include "AliESDEvent.h"
57#include "AliESDInputHandler.h"
58#include "AliAODEvent.h"
59#include "AliAODTrack.h"
60#include "AliAODInputHandler.h"
61#include "AliESD.h"
62#include "AliESDEvent.h"
63#include "AliAODEvent.h"
64#include "AliStack.h"
65#include "AliESDtrackCuts.h"
66#include "AliAODMCHeader.h"
67
68
69#include "AliGenHijingEventHeader.h"
70#include "AliGenEventHeader.h"
71#include "AliPID.h"
72#include "AliAODPid.h"
73#include "AliPIDResponse.h"
74#include "AliAODpidUtil.h"
75#include "AliPIDCombined.h"
76
77
2781d660 78
9cabc5db 79ClassImp(AliAnalysisTaskDptDptCorrelations)
80
81AliAnalysisTaskDptDptCorrelations::AliAnalysisTaskDptDptCorrelations()
82: AliAnalysisTaskSE(),
83fAODEvent(0),
84fESDEvent(0), //! ESD Event
85fInputHandler(0),
cc7ee8f9 86fPIDResponse(0x0),
9cabc5db 87_outputHistoList(0),
88_twoPi ( 2.0 * 3.1415927),
89_eventCount ( 0),
90_debugLevel ( 0),
91_singlesOnly ( 0),
92_useWeights ( 0),
93_sameFilter ( false),
94_rejectPileup ( 1),
95_rejectPairConversion ( 0),
96_vertexZMin ( -10),
97_vertexZMax ( 10),
98_vertexXYMin ( -10),
99_vertexXYMax ( 10),
100_centralityMethod ( 4),
101_centralityMin ( 0.),
102_centralityMax ( 0.),
103_requestedCharge_1 ( 1),
104_requestedCharge_2 ( -1),
105_dcaZMin ( -3),
106_dcaZMax ( 3.),
49f44fbe 107_dcaXYMin ( -2.4),
108_dcaXYMax ( 2.4),
9cabc5db 109_dedxMin ( 0),
110_dedxMax ( 100000),
8e9400c2 111_nClusterMin ( 80),
4ebeb50b 112_trackFilterBit (0),
974257a9 113fNSigmaCut (3.),
70de3ddf 114_tpcnclus ( 50),
115_chi2ndf (5.),
9cabc5db 116_field ( 1.),
117_nTracks ( 0 ),
118_mult0 ( 0 ),
119_mult1 ( 0 ),
120_mult2 ( 0 ),
121_mult3 ( 0 ),
122_mult4 ( 0 ),
b8ab2bb9 123_mult4a ( 0 ),
9cabc5db 124_mult5 ( 0 ),
125_mult6 ( 0 ),
126arraySize ( 2000),
127_id_1(0),
128_charge_1(0),
129_iEtaPhi_1(0),
130_iPt_1(0),
131_pt_1(0),
132_px_1(0),
133_py_1(0),
134_pz_1(0),
135_correction_1(0),
136_dedx_1(0),
137_id_2(0),
138_charge_2(0),
139_iEtaPhi_2(0),
140_iPt_2(0),
141_pt_2(0),
142_px_2(0),
143_py_2(0),
144_pz_2(0),
145_correction_2(0),
146_dedx_2(0),
147_correctionWeight_1(0),
148_correctionWeight_2(0),
149_nBins_M0(500), _min_M0(0), _max_M0(10000), _width_M0(20),
150_nBins_M1(500), _min_M1(0), _max_M1(10000), _width_M1(20),
151_nBins_M2(500), _min_M2(0), _max_M2(10000), _width_M2(20),
152_nBins_M3(500), _min_M3(0), _max_M3(10000), _width_M3(20),
153_nBins_M4(100), _min_M4(0), _max_M4(1), _width_M4(0.01),
154_nBins_M5(100), _min_M5(0), _max_M5(1), _width_M5(0.01),
155_nBins_M6(100), _min_M6(0), _max_M6(1), _width_M6(0.01),
156_nBins_vertexZ(40), _min_vertexZ(-10), _max_vertexZ(10), _width_vertexZ(0.5),
157
158_nBins_pt_1(18), _min_pt_1(0.2), _max_pt_1(2.0), _width_pt_1(0.1),
159_nBins_phi_1(72), _min_phi_1(0), _max_phi_1(2.*3.1415927),_width_phi_1(2.*3.1415927/72.),
5d603bbf 160_nBins_eta_1(0), _min_eta_1(0), _max_eta_1(0), _width_eta_1(0.1),
9cabc5db 161
162_nBins_etaPhi_1(0),
163_nBins_etaPhiPt_1(0),
164_nBins_zEtaPhiPt_1(0),
165
166_nBins_pt_2(18), _min_pt_2(0.2), _max_pt_2(2.0), _width_pt_2(0.1),
167_nBins_phi_2(72), _min_phi_2(0), _max_phi_2(2.*3.1415927),_width_phi_2(2.*3.1415927/72),
5d603bbf 168_nBins_eta_2(0), _min_eta_2(0), _max_eta_2(0), _width_eta_2(0.1),
9cabc5db 169
170_nBins_etaPhi_2(0),
171_nBins_etaPhiPt_2(0),
172_nBins_zEtaPhiPt_2(0),
173_nBins_etaPhi_12(0),
174__n1_1(0),
175__n1_2(0),
176__n2_12(0),
177__s1pt_1(0),
178__s1pt_2(0),
179__s2ptpt_12(0),
180__s2NPt_12(0),
181__s2PtN_12(0),
182__n1Nw_1(0),
183__n1Nw_2(0),
184__n2Nw_12(0),
185__s1ptNw_1(0),
186__s1ptNw_2(0),
187__s2ptptNw_12(0),
188__s2NPtNw_12(0),
189__s2PtNNw_12(0),
190__n1_1_vsPt(0),
191__n1_1_vsEtaPhi(0),
192__s1pt_1_vsEtaPhi(0),
193__n1_1_vsZEtaPhiPt(0),
194__n1_2_vsPt(0),
195__n1_2_vsEtaPhi(0),
196__s1pt_2_vsEtaPhi(0),
197__n1_2_vsZEtaPhiPt(0),
198__n2_12_vsPtPt(0),
199__n2_12_vsEtaPhi(0),
200__s2ptpt_12_vsEtaPhi(0),
201__s2PtN_12_vsEtaPhi(0),
202__s2NPt_12_vsEtaPhi(0),
203_weight_1 ( 0 ),
204_weight_2 ( 0 ),
205_eventAccounting ( 0),
206_m0 ( 0),
207_m1 ( 0),
208_m2 ( 0),
209_m3 ( 0),
210_m4 ( 0),
211_m5 ( 0),
212_m6 ( 0),
405d1b01 213_vertexZ ( 0),
d9e7b37f 214
405d1b01 215_Ncluster1 ( 0),
216_Ncluster2 ( 0),
217_etadis ( 0),
218_phidis ( 0),
219_dcaz ( 0),
220_dcaxy ( 0),
9cabc5db 221_n1_1_vsPt ( 0),
222_n1_1_vsEtaVsPhi ( 0),
223_s1pt_1_vsEtaVsPhi ( 0),
224_n1_1_vsZVsEtaVsPhiVsPt ( 0),
5d603bbf 225_n1_1_vsM ( 0),
9cabc5db 226_s1pt_1_vsM ( 0),
5d603bbf 227_n1Nw_1_vsM ( 0),
9cabc5db 228_s1ptNw_1_vsM ( 0),
229_dedxVsP_1 ( 0),
230_corrDedxVsP_1 ( 0),
231_betaVsP_1 ( 0),
232_n1_2_vsPt ( 0),
233_n1_2_vsEtaVsPhi ( 0),
234_s1pt_2_vsEtaVsPhi ( 0),
235_n1_2_vsZVsEtaVsPhiVsPt ( 0),
236_n1_2_vsM ( 0),
237_s1pt_2_vsM ( 0),
238_n1Nw_2_vsM ( 0),
239_s1ptNw_2_vsM ( 0),
240_dedxVsP_2 ( 0),
241_corrDedxVsP_2 ( 0),
242_betaVsP_2 ( 0),
243_n2_12_vsEtaPhi ( 0),
244_n2_12_vsPtVsPt ( 0),
245_s2PtPt_12_vsEtaPhi( 0),
246_s2PtN_12_vsEtaPhi ( 0),
247_s2NPt_12_vsEtaPhi ( 0),
248_n2_12_vsM ( 0),
249_s2PtPt_12_vsM ( 0),
250_s2PtN_12_vsM ( 0),
251_s2NPt_12_vsM ( 0),
252_n2Nw_12_vsM ( 0),
253_s2PtPtNw_12_vsM ( 0),
254_s2PtNNw_12_vsM ( 0),
255_s2NPtNw_12_vsM ( 0),
256_invMass ( 0),
257_invMassElec ( 0),
258n1Name("NA"),
259n1NwName("NA"),
260n2Name("NA"),
261n2NwName("NA"),
262n3Name("NA"),
263n1n1Name("NA"),
264n1n1n1Name("NA"),
265n2n1Name("NA"),
266r1Name("NA"),
267r2Name("NA"),
268r3Name("NA"),
269r2r1Name("NA"),
270c2Name("NA"),
271c3Name("NA"),
272d3Name("NA"),
273p3Name("NA"),
274cName("NA"),
275
276intR2Name("NA"),
277binCorrName("NA"),
278intBinCorrName("NA"),
279
280countsName("NA"),
281part_1_Name("NA"),
282part_2_Name("NA"),
283part_3_Name("NA"),
284pair_12_Name("NA"),
285pair_13_Name("NA"),
286pair_23_Name("NA"),
287tripletName("NA"),
288
289avg("NA"),
290avgName("NA"),
291sumName("NA"),
292s1ptName("NA"),
293s1ptNwName("NA"),
294s1DptName("NA"),
295
296s2PtPtName("NA"),
297s2NPtName("NA"),
298s2PtNName("NA"),
299s2DptDptName("NA"),
300
301s2PtPtNwName("NA"),
302s2NPtNwName("NA"),
303s2PtNNwName("NA"),
304
305ptName("NA"),
306ptptName("NA"),
307pt1pt1Name("NA"),
308DptName("NA"),
309DptDptName("NA"),
310RDptDptName("NA"),
311nPtName("NA"),
312ptNName("NA"),
313seanName("NA"),
314
315_title_counts("NA"),
316
317_title_m0("NA"),
318_title_m1("NA"),
319_title_m2("NA"),
320_title_m3("NA"),
321_title_m4("NA"),
322_title_m5("NA"),
323_title_m6("NA"),
324
325_title_eta_1("NA"),
326_title_phi_1("NA"),
327_title_pt_1("NA"),
328_title_etaPhi_1("NA"),
329_title_n_1("NA"),
330_title_SumPt_1("NA"),
331_title_AvgPt_1("NA"),
332_title_AvgN_1("NA"),
333_title_AvgSumPt_1("NA"),
334
335_title_eta_2("NA"),
336_title_phi_2("NA"),
337_title_pt_2("NA"),
338_title_etaPhi_2("NA"),
339_title_n_2("NA"),
340_title_SumPt_2("NA"),
341_title_AvgPt_2("NA"),
342_title_AvgN_2("NA"),
343_title_AvgSumPt_2("NA"),
344
345_title_etaPhi_12("NA"),
346
347_title_AvgN2_12("NA"),
348_title_AvgSumPtPt_12("NA"),
349_title_AvgSumPtN_12("NA"),
350_title_AvgNSumPt_12("NA"),
351
352vsZ("NA"),
353vsM("NA"),
354vsPt("NA"),
355vsPhi("NA"),
356vsEta("NA"),
357vsEtaPhi("NA"),
358vsPtVsPt("NA")
359{
360 printf("Default constructor called \n");
361
362 printf("passed \n ");
363
364}
365
366AliAnalysisTaskDptDptCorrelations::AliAnalysisTaskDptDptCorrelations(const TString & name)
367: AliAnalysisTaskSE(name),
368fAODEvent(0),
369fESDEvent(0),
370fInputHandler(0),
cc7ee8f9 371fPIDResponse(0),
9cabc5db 372_outputHistoList(0),
373_twoPi ( 2.0 * 3.1415927),
374_eventCount ( 0),
375_debugLevel ( 0),
376_singlesOnly ( 0),
377_useWeights ( 0),
378_sameFilter ( false),
379_rejectPileup ( 1),
380_rejectPairConversion ( 0),
381_vertexZMin ( -10.),
382_vertexZMax ( 10.),
383_vertexXYMin ( -10.),
384_vertexXYMax ( 10.),
385_centralityMethod ( 4),
386_centralityMin ( 0.),
387_centralityMax ( 1.),
388_requestedCharge_1 ( 1),
389_requestedCharge_2 ( -1),
390_dcaZMin ( -3),
391_dcaZMax ( 3.),
49f44fbe 392_dcaXYMin ( -2.4),
393_dcaXYMax ( 2.4),
9cabc5db 394_dedxMin ( 0),
395_dedxMax ( 100000),
8e9400c2 396_nClusterMin ( 80),
4ebeb50b 397_trackFilterBit ( 0),
974257a9 398fNSigmaCut ( 3.),
d0b37020 399_tpcnclus ( 50),
400_chi2ndf (5.),
9cabc5db 401_field ( 1.),
402_nTracks ( 0 ),
403_mult0 ( 0 ),
404_mult1 ( 0 ),
405_mult2 ( 0 ),
406_mult3 ( 0 ),
407_mult4 ( 0 ),
b8ab2bb9 408_mult4a ( 0 ),
9cabc5db 409_mult5 ( 0 ),
410_mult6 ( 0 ),
411arraySize ( 2000),
412_id_1(0),
413_charge_1(0),
414_iEtaPhi_1(0),
415_iPt_1(0),
416_pt_1(0),
417_px_1(0),
418_py_1(0),
419_pz_1(0),
420_correction_1(0),
421_dedx_1(0),
422_id_2(0),
423_charge_2(0),
424_iEtaPhi_2(0),
425_iPt_2(0),
426_pt_2(0),
427_px_2(0),
428_py_2(0),
429_pz_2(0),
430_correction_2(0),
431_dedx_2(0),
432_correctionWeight_1(0),
433_correctionWeight_2(0),
434_nBins_M0(500), _min_M0(0), _max_M0(10000), _width_M0(20),
435_nBins_M1(500), _min_M1(0), _max_M1(10000), _width_M1(20),
436_nBins_M2(500), _min_M2(0), _max_M2(10000), _width_M2(20),
437_nBins_M3(500), _min_M3(0), _max_M3(10000), _width_M3(20),
438_nBins_M4(100), _min_M4(0), _max_M4(1), _width_M4(0.01),
439_nBins_M5(100), _min_M5(0), _max_M5(1), _width_M5(0.01),
440_nBins_M6(100), _min_M6(0), _max_M6(1), _width_M6(0.01),
441_nBins_vertexZ(40), _min_vertexZ(-10), _max_vertexZ(10), _width_vertexZ(0.5),
442
443_nBins_pt_1(18), _min_pt_1(0.2), _max_pt_1(2.0), _width_pt_1(0.1),
444_nBins_phi_1(72), _min_phi_1(0), _max_phi_1(2.*3.1415927),_width_phi_1(2.*3.1415927/72.),
5d603bbf 445_nBins_eta_1(0), _min_eta_1(0), _max_eta_1(0), _width_eta_1(0.1),
9cabc5db 446
447_nBins_etaPhi_1(0),
448_nBins_etaPhiPt_1(0),
449_nBins_zEtaPhiPt_1(0),
450
451_nBins_pt_2(18), _min_pt_2(0.2), _max_pt_2(2.0), _width_pt_2(0.1),
452_nBins_phi_2(72), _min_phi_2(0), _max_phi_2(2.*3.1415927),_width_phi_2(2.*3.1415927/72),
5d603bbf 453_nBins_eta_2(0), _min_eta_2(0), _max_eta_2(0), _width_eta_2(0.1),
9cabc5db 454
455_nBins_etaPhi_2(0),
456_nBins_etaPhiPt_2(0),
457_nBins_zEtaPhiPt_2(0),
458_nBins_etaPhi_12(0),
459__n1_1(0),
460__n1_2(0),
461__n2_12(0),
462__s1pt_1(0),
463__s1pt_2(0),
464__s2ptpt_12(0),
465__s2NPt_12(0),
466__s2PtN_12(0),
467__n1Nw_1(0),
468__n1Nw_2(0),
469__n2Nw_12(0),
470__s1ptNw_1(0),
471__s1ptNw_2(0),
472__s2ptptNw_12(0),
473__s2NPtNw_12(0),
474__s2PtNNw_12(0),
475__n1_1_vsPt(0),
476__n1_1_vsEtaPhi(0),
477__s1pt_1_vsEtaPhi(0),
478__n1_1_vsZEtaPhiPt(0),
479__n1_2_vsPt(0),
480__n1_2_vsEtaPhi(0),
481__s1pt_2_vsEtaPhi(0),
482__n1_2_vsZEtaPhiPt(0),
483__n2_12_vsPtPt(0),
484__n2_12_vsEtaPhi(0),
485__s2ptpt_12_vsEtaPhi(0),
486__s2PtN_12_vsEtaPhi(0),
487__s2NPt_12_vsEtaPhi(0),
488_weight_1 ( 0 ),
489_weight_2 ( 0 ),
490_eventAccounting ( 0),
491_m0 ( 0),
492_m1 ( 0),
493_m2 ( 0),
494_m3 ( 0),
495_m4 ( 0),
496_m5 ( 0),
497_m6 ( 0),
405d1b01 498_vertexZ ( 0),
499_Ncluster1 ( 0),
500_Ncluster2 ( 0),
d9e7b37f 501_etadis ( 0),
502_phidis ( 0),
405d1b01 503
d9e7b37f 504_dcaz ( 0),
505_dcaxy ( 0),
9cabc5db 506_n1_1_vsPt ( 0),
507_n1_1_vsEtaVsPhi ( 0),
508_s1pt_1_vsEtaVsPhi ( 0),
509_n1_1_vsZVsEtaVsPhiVsPt ( 0),
5d603bbf 510_n1_1_vsM ( 0),
9cabc5db 511_s1pt_1_vsM ( 0),
5d603bbf 512_n1Nw_1_vsM ( 0),
9cabc5db 513_s1ptNw_1_vsM ( 0),
514_dedxVsP_1 ( 0),
515_corrDedxVsP_1 ( 0),
516_betaVsP_1 ( 0),
517_n1_2_vsPt ( 0),
518_n1_2_vsEtaVsPhi ( 0),
519_s1pt_2_vsEtaVsPhi ( 0),
520_n1_2_vsZVsEtaVsPhiVsPt ( 0),
521_n1_2_vsM ( 0),
522_s1pt_2_vsM ( 0),
523_n1Nw_2_vsM ( 0),
524_s1ptNw_2_vsM ( 0),
525_dedxVsP_2 ( 0),
526_corrDedxVsP_2 ( 0),
527_betaVsP_2 ( 0),
528_n2_12_vsEtaPhi ( 0),
529_n2_12_vsPtVsPt ( 0),
530_s2PtPt_12_vsEtaPhi( 0),
531_s2PtN_12_vsEtaPhi ( 0),
532_s2NPt_12_vsEtaPhi ( 0),
533_n2_12_vsM ( 0),
534_s2PtPt_12_vsM ( 0),
535_s2PtN_12_vsM ( 0),
536_s2NPt_12_vsM ( 0),
537_n2Nw_12_vsM ( 0),
538_s2PtPtNw_12_vsM ( 0),
539_s2PtNNw_12_vsM ( 0),
540_s2NPtNw_12_vsM ( 0),
541_invMass ( 0),
542_invMassElec ( 0),
543n1Name("NA"),
544n1NwName("NA"),
545n2Name("NA"),
546n2NwName("NA"),
547n3Name("NA"),
548n1n1Name("NA"),
549n1n1n1Name("NA"),
550n2n1Name("NA"),
551r1Name("NA"),
552r2Name("NA"),
553r3Name("NA"),
554r2r1Name("NA"),
555c2Name("NA"),
556c3Name("NA"),
557d3Name("NA"),
558p3Name("NA"),
559cName("NA"),
560
561intR2Name("NA"),
562binCorrName("NA"),
563intBinCorrName("NA"),
564
565countsName("NA"),
566part_1_Name("NA"),
567part_2_Name("NA"),
568part_3_Name("NA"),
569pair_12_Name("NA"),
570pair_13_Name("NA"),
571pair_23_Name("NA"),
572tripletName("NA"),
573
574avg("NA"),
575avgName("NA"),
576sumName("NA"),
577s1ptName("NA"),
578s1ptNwName("NA"),
579s1DptName("NA"),
580
581s2PtPtName("NA"),
582s2NPtName("NA"),
583s2PtNName("NA"),
584s2DptDptName("NA"),
585
586s2PtPtNwName("NA"),
587s2NPtNwName("NA"),
588s2PtNNwName("NA"),
589
590ptName("NA"),
591ptptName("NA"),
592pt1pt1Name("NA"),
593DptName("NA"),
594DptDptName("NA"),
595RDptDptName("NA"),
596nPtName("NA"),
597ptNName("NA"),
598seanName("NA"),
599
600_title_counts("NA"),
601
602_title_m0("NA"),
603_title_m1("NA"),
604_title_m2("NA"),
605_title_m3("NA"),
606_title_m4("NA"),
607_title_m5("NA"),
608_title_m6("NA"),
609
610_title_eta_1("NA"),
611_title_phi_1("NA"),
612_title_pt_1("NA"),
613_title_etaPhi_1("NA"),
614_title_n_1("NA"),
615_title_SumPt_1("NA"),
616_title_AvgPt_1("NA"),
617_title_AvgN_1("NA"),
618_title_AvgSumPt_1("NA"),
619
620_title_eta_2("NA"),
621_title_phi_2("NA"),
622_title_pt_2("NA"),
623_title_etaPhi_2("NA"),
624_title_n_2("NA"),
625_title_SumPt_2("NA"),
626_title_AvgPt_2("NA"),
627_title_AvgN_2("NA"),
628_title_AvgSumPt_2("NA"),
629
630_title_etaPhi_12("NA"),
631
632_title_AvgN2_12("NA"),
633_title_AvgSumPtPt_12("NA"),
634_title_AvgSumPtN_12("NA"),
635_title_AvgNSumPt_12("NA"),
636
637vsZ("NA"),
638vsM("NA"),
639vsPt("NA"),
640vsPhi("NA"),
641vsEta("NA"),
642vsEtaPhi("NA"),
643vsPtVsPt("NA")
644{
645 printf("2nd constructor called ");
646
647 DefineOutput(0, TList::Class());
648
649 printf("passed ");
650
651}
652
653AliAnalysisTaskDptDptCorrelations::~AliAnalysisTaskDptDptCorrelations()
654{
5d603bbf 655
9cabc5db 656}
657
658void AliAnalysisTaskDptDptCorrelations::UserCreateOutputObjects()
659{
9cabc5db 660 OpenFile(0);
661 _outputHistoList = new TList();
662 _outputHistoList->SetOwner();
663
9cabc5db 664 _nBins_M0 = 500; _min_M0 = 0.; _max_M0 = 5000.; _width_M0 = (_max_M0-_min_M0)/_nBins_M0;
665 _nBins_M1 = 500; _min_M1 = 0.; _max_M1 = 5000.; _width_M1 = (_max_M1-_min_M1)/_nBins_M1;
666 _nBins_M2 = 500; _min_M2 = 0.; _max_M2 = 5000.; _width_M2 = (_max_M2-_min_M2)/_nBins_M2;
667 _nBins_M3 = 500; _min_M3 = 0.; _max_M3 = 5000.; _width_M3 = (_max_M3-_min_M3)/_nBins_M3;
668 _nBins_M4 = 100; _min_M4 = 0.; _max_M4 = 100.; _width_M4 = (_max_M4-_min_M4)/_nBins_M4;
669 _nBins_M5 = 100; _min_M5 = 0.; _max_M5 = 100.; _width_M5 = (_max_M5-_min_M5)/_nBins_M5;
670 _nBins_M6 = 100; _min_M6 = 0.; _max_M6 = 100.; _width_M6 = (_max_M6-_min_M6)/_nBins_M6;
671
672 _min_vertexZ = _vertexZMin;
673 _max_vertexZ = _vertexZMax;
674 _width_vertexZ = 0.5;
675 _nBins_vertexZ = int(0.5+ (_max_vertexZ - _min_vertexZ)/_width_vertexZ);
676 _nBins_pt_1 = int(0.5+ (_max_pt_1 -_min_pt_1 )/_width_pt_1);
677 _nBins_eta_1 = int(0.5+ (_max_eta_1-_min_eta_1)/_width_eta_1);
678 _width_phi_1 = (_max_phi_1 - _min_phi_1) /_nBins_phi_1;
679 _nBins_etaPhi_1 = _nBins_phi_1 * _nBins_eta_1;
680 _nBins_etaPhiPt_1 = _nBins_etaPhi_1 * _nBins_pt_1;
681 _nBins_zEtaPhiPt_1 = _nBins_vertexZ * _nBins_etaPhiPt_1;
682
683 _nBins_pt_2 = int(0.5+ (_max_pt_2 -_min_pt_2 )/_width_pt_2);
684 _nBins_eta_2 = int(0.5+ (_max_eta_2-_min_eta_2)/_width_eta_2);
685 _width_phi_2 = (_max_phi_2 - _min_phi_2) /_nBins_phi_2;
686 _nBins_etaPhi_2 = _nBins_phi_2 * _nBins_eta_2;
687 _nBins_etaPhiPt_2 = _nBins_etaPhi_2 * _nBins_pt_2;
688 _nBins_zEtaPhiPt_2 = _nBins_vertexZ * _nBins_etaPhiPt_2;
689 _nBins_etaPhi_12 = _nBins_etaPhi_1 * _nBins_etaPhi_2;
5d603bbf 690
9cabc5db 691 _id_1 = new int[arraySize];
692 _charge_1 = new int[arraySize];
9cabc5db 693 _iEtaPhi_1 = new int[arraySize];
694 _iPt_1 = new int[arraySize];
695 _pt_1 = new float[arraySize];
696 _px_1 = new float[arraySize];
697 _py_1 = new float[arraySize];
698 _pz_1 = new float[arraySize];
9cabc5db 699 _correction_1 = new float[arraySize];
5d603bbf 700
9cabc5db 701 __n1_1_vsPt = getDoubleArray(_nBins_pt_1, 0.);
702 __n1_1_vsEtaPhi = getDoubleArray(_nBins_etaPhi_1, 0.);
703 __s1pt_1_vsEtaPhi = getDoubleArray(_nBins_etaPhi_1, 0.);
704 __n1_1_vsZEtaPhiPt = getFloatArray(_nBins_zEtaPhiPt_1, 0.);
705
5d603bbf 706
9cabc5db 707 if (_requestedCharge_2!=_requestedCharge_1)
708 {
5d603bbf 709 _sameFilter = 0;
9cabc5db 710 //particle 2
711 _id_2 = new int[arraySize];
712 _charge_2 = new int[arraySize];
9cabc5db 713 _iEtaPhi_2 = new int[arraySize];
714 _iPt_2 = new int[arraySize];
715 _pt_2 = new float[arraySize];
716 _px_2 = new float[arraySize];
717 _py_2 = new float[arraySize];
718 _pz_2 = new float[arraySize];
9cabc5db 719 _correction_2 = new float[arraySize];
5d603bbf 720
9cabc5db 721 __n1_2_vsPt = getDoubleArray(_nBins_pt_2, 0.);
722 __n1_2_vsEtaPhi = getDoubleArray(_nBins_etaPhi_2, 0.);
723 __s1pt_2_vsEtaPhi = getDoubleArray(_nBins_etaPhi_2, 0.);
724 __n1_2_vsZEtaPhiPt = getFloatArray(_nBins_zEtaPhiPt_2, 0.);
725
726 }
727
728 __n2_12_vsPtPt = getDoubleArray(_nBins_pt_1*_nBins_pt_2,0.);
729 __n2_12_vsEtaPhi = getFloatArray(_nBins_etaPhi_12, 0.);
730 __s2ptpt_12_vsEtaPhi = getFloatArray(_nBins_etaPhi_12, 0.);
731 __s2PtN_12_vsEtaPhi = getFloatArray(_nBins_etaPhi_12, 0.);
732 __s2NPt_12_vsEtaPhi = getFloatArray(_nBins_etaPhi_12, 0.);
733
734 // Setup all the labels needed.
735
736 part_1_Name = "_1";
737 part_2_Name = "_2";
738 pair_12_Name = "_12";
739
740 n1Name = "n1";
741 n2Name = "n2";
742 n1NwName = "n1Nw";
743 n2NwName = "n2Nw";
744 r1Name = "r1";
745 r2Name = "r2";
746 r3Name = "r3";
747 r2r1Name = "r2r1";
748 c2Name = "c2";
749 c3Name = "c3";
750 d3Name = "d3";
751 p3Name = "p3";
752 cName = "sean";
753
754 intR2Name = "intR2";
755 binCorrName = "binCorr";
756 intBinCorrName = "intBinCorr";
757
758 avgName = "avg";
759 sumName = "sum";
760 s1ptName = "sumPt";
761 s1ptNwName = "sumPtNw";
762 s1DptName = "sumDpt";
763 s2PtPtName = "sumPtPt";
764 s2PtPtNwName = "sumPtPtNw";
765 s2DptDptName = "sumDptDpt";
766 s2NPtName = "sumNPt";
767 s2NPtNwName = "sumNPtNw";
768 s2PtNName = "sumPtN";
769 s2NPtNwName = "sumNPtNw";
770 s2PtNNwName = "sumPtNNw";
771 ptName = "avgPt";
772 ptptName = "avgPtPt";
773 pt1pt1Name = "avgPtavgPt";
774 DptName = "avgDpt";
775 DptDptName = "avgDptDpt";
776 RDptDptName = "relDptDpt"; // ratio of avgDptDpt by avgPt*avgPt
777 nPtName = "avgNpt";
778 ptNName = "avgPtN";
779 seanName = "seanC";
780
781 _title_counts = "yield";
782
783 _title_m0 = "M_{0}";
784 _title_m1 = "M_{1}";
785 _title_m2 = "M_{2}";
786 _title_m3 = "M_{3}";
787 _title_m4 = "V0Centrality";
788 _title_m5 = "TrkCentrality";
789 _title_m6 = "SpdCentrality";
790
791 _title_eta_1 = "#eta_{1}";
792 _title_phi_1 = "#varphi_{1} (radian)";
793 _title_etaPhi_1 = "#eta_{1}#times#varphi_{1}";
794 _title_pt_1 = "p_{t,1} (GeV/c)";
795 _title_n_1 = "n_{1}";
796 _title_SumPt_1 = "#Sigma p_{t,1} (GeV/c)";
797 _title_AvgPt_1 = "#LT p_{t,1} #GT (GeV/c)";
798 _title_AvgN_1 = "#LT n_{1} #GT";
799 _title_AvgSumPt_1 = "#LT #Sigma p_{t,1} #GT (GeV/c)";
800
801 _title_eta_2 = "#eta_{2}";
802 _title_phi_2 = "#varphi_{2} (radian)";
803 _title_etaPhi_2 = "#eta_{2}#times#varphi_{2}";
804 _title_pt_2 = "p_{t,2} (GeV/c)";
805 _title_n_2 = "n_{2}";
806 _title_SumPt_2 = "#Sigma p_{t,1} (GeV/c)";
807 _title_AvgPt_2 = "#LT p_{t,2} #GT (GeV/c)";
808 _title_AvgN_2 = "#LT n_{2} #GT";
809 _title_AvgSumPt_2 = "#LT #Sigma p_{t,2} #GT (GeV/c)";
810
811 _title_etaPhi_12 = "#eta_{1}#times#varphi_{1}#times#eta_{2}#times#varphi_{2}";
812
813 _title_AvgN2_12 = "#LT n_{2} #GT";;
814 _title_AvgSumPtPt_12 = "#LT #Sigma p_{t,1}p_{t,2} #GT";;
815 _title_AvgSumPtN_12 = "#LT #Sigma p_{t,1}N #GT";;
816 _title_AvgNSumPt_12 = "#LT N#Sigma p_{t,2} #GT";;
817
818
819 vsZ = "_vsZ";
820 vsM = "_vsM";
821 vsPt = "_vsPt";
822 vsPhi = "_vsPhi";
823 vsEta = "_vsEta";
824 vsEtaPhi = "_vsEtaPhi";
825 vsPtVsPt = "_vsPtVsPt";
826
827
828 if (_useWeights)
829 {
830 int iZ, iEtaPhi, iPt;
831 int iZ1,iEtaPhi1,iPt1;
832 int a, b;
833 if (_weight_1)
834 {
835 _correctionWeight_1 = new float[_nBins_vertexZ*_nBins_etaPhi_1*_nBins_pt_1];
836 a = _nBins_pt_1;
837 b = _nBins_etaPhi_1*_nBins_pt_1;
838 for (iZ=0,iZ1=1; iZ<_nBins_vertexZ; iZ++, iZ1++)
839 {
840 for (iEtaPhi=0,iEtaPhi1=1; iEtaPhi<_nBins_etaPhi_1; iEtaPhi++, iEtaPhi1++)
841 {
842 for (iPt=0,iPt1=1; iPt<_nBins_pt_1; iPt++, iPt1++)
843 {
844 _correctionWeight_1[iZ*b+iEtaPhi*a+iPt] = _weight_1->GetBinContent(iZ1,iEtaPhi1,iPt1);
845 }
846 }
847 }
848 } // _weight_1
849 else
850 {
851 AliError("AliAnalysisTaskDptDptCorrelations:: _weight_1 is a null pointer.");
852 return;
853 }
854 if (!_sameFilter)
855 {
856 if (_weight_2)
857 {
858 _correctionWeight_2 = new float[_nBins_vertexZ*_nBins_etaPhi_2*_nBins_pt_2];
859 a = _nBins_pt_2;
860 b = _nBins_etaPhi_2*_nBins_pt_2;
861 for (iZ=0,iZ1=1; iZ<_nBins_vertexZ; iZ++, iZ1++)
862 {
863 for (iEtaPhi=0,iEtaPhi1=1; iEtaPhi<_nBins_etaPhi_2; iEtaPhi++, iEtaPhi1++)
864 {
865 for (iPt=0,iPt1=1; iPt<_nBins_pt_2; iPt++, iPt1++)
866 {
867 _correctionWeight_2[iZ*b+iEtaPhi*a+iPt] = _weight_2->GetBinContent(iZ1,iEtaPhi1,iPt1);
868 }
869 }
870 }
871 } // _weight_2
872 else
873 {
874 AliError("AliAnalysisTaskDptDptCorrelations:: _weight_1 is a null pointer.");
875 return;
876 }
877 }
878 }
879
880 createHistograms();
881 PostData(0,_outputHistoList);
882
23496d49 883 //cout<< "AliAnalysisTaskDptDptCorrelations::CreateOutputObjects() DONE " << endl;
9cabc5db 884
885}
886
887void AliAnalysisTaskDptDptCorrelations::createHistograms()
888{
889 AliInfo(" AliAnalysisTaskDptDptCorrelations::createHistoHistograms() Creating Event Histos");
890 TString name;
891
892 name = "eventAccounting";
893
5d603bbf 894 _eventAccounting = createHisto1D(name,name,10, -0.5, 9.5, "event Code", _title_counts);
239bac74 895
896 name = "m0"; _m0 = createHisto1D(name,name,_nBins_M1, _min_M1, _max_M1, _title_m0, _title_counts);
897 name = "m1"; _m1 = createHisto1D(name,name,_nBins_M1, _min_M1, _max_M1, _title_m1, _title_counts);
898 name = "m2"; _m2 = createHisto1D(name,name,_nBins_M2, _min_M2, _max_M2, _title_m2, _title_counts);
899 name = "m3"; _m3 = createHisto1D(name,name,_nBins_M3, _min_M3, _max_M3, _title_m3, _title_counts);
900 name = "m4"; _m4 = createHisto1D(name,name,_nBins_M4, _min_M4, _max_M4, _title_m4, _title_counts);
901 name = "m5"; _m5 = createHisto1D(name,name,_nBins_M5, _min_M5, _max_M5, _title_m5, _title_counts);
902 name = "m6"; _m6 = createHisto1D(name,name,_nBins_M6, _min_M6, _max_M6, _title_m6, _title_counts);
4358ff80 903 name = "zV"; _vertexZ = createHisto1D(name,name,100, -10, 10, "z-Vertex (cm)", _title_counts);
239bac74 904
49f44fbe 905
ee39f9f4 906 name = "Eta"; _etadis = createHisto1F(name,name, 200, -1.0, 1.0, "#eta","counts");
d9e7b37f 907 name = "Phi"; _phidis = createHisto1F(name,name, 360, 0.0, 6.4, "#phi","counts");
908 name = "DCAz"; _dcaz = createHisto1F(name,name, 500, -5.0, 5.0, "dcaZ","counts");
909 name = "DCAxy"; _dcaxy = createHisto1F(name,name, 500, -5.0, 5.0, "dcaXY","counts");
5d603bbf
MW
910
911 //name = "Nclus1"; _Ncluster1 = createHisto1F(name,name, 200, 0, 200, "Ncluster1","counts");
912 //name = "Nclus2"; _Ncluster2 = createHisto1F(name,name, 200, 0, 200, "Ncluster2","counts");
d9e7b37f 913
239bac74 914 if (_singlesOnly)
9cabc5db 915 {
239bac74 916 name = n1Name+part_1_Name+vsPt; _n1_1_vsPt = createHisto1F(name,name, _nBins_pt_1, _min_pt_1, _max_pt_1, _title_pt_1, _title_AvgN_1);
917 name = n1Name+part_1_Name+vsZ+vsEtaPhi+vsPt; _n1_1_vsZVsEtaVsPhiVsPt = createHisto3F(name,name, _nBins_vertexZ,_min_vertexZ,_max_vertexZ, _nBins_etaPhi_1, 0., double(_nBins_etaPhi_1), _nBins_pt_1, _min_pt_1, _max_pt_1, "zVertex", _title_etaPhi_1, _title_pt_1);
239bac74 918
919 name = n1Name+part_2_Name+vsPt; _n1_2_vsPt = createHisto1F(name,name, _nBins_pt_2, _min_pt_2, _max_pt_2, _title_pt_2, _title_AvgN_2);
920 name = n1Name+part_2_Name+vsZ+vsEtaPhi+vsPt; _n1_2_vsZVsEtaVsPhiVsPt = createHisto3F(name,name, _nBins_vertexZ,_min_vertexZ,_max_vertexZ, _nBins_etaPhi_2, 0., double(_nBins_etaPhi_2), _nBins_pt_2, _min_pt_2, _max_pt_2, "zVertex", _title_etaPhi_2, _title_pt_2);
239bac74 921
922 }
923 else
924 {
925 name = n1Name+part_1_Name+vsEtaPhi; _n1_1_vsEtaVsPhi = createHisto2F(name,name, _nBins_eta_1, _min_eta_1, _max_eta_1, _nBins_phi_1, _min_phi_1, _max_phi_1, _title_eta_1, _title_phi_1, _title_AvgN_1);
926 name = s1ptName+part_1_Name+vsEtaPhi; _s1pt_1_vsEtaVsPhi = createHisto2F(name,name, _nBins_eta_1, _min_eta_1, _max_eta_1, _nBins_phi_1, _min_phi_1, _max_phi_1, _title_eta_1, _title_phi_1, _title_AvgSumPt_1);
927 name = n1Name+part_1_Name+vsM; _n1_1_vsM = createProfile(name,name, _nBins_M4, _min_M4, _max_M4, _title_m4, _title_AvgN_1);
928 name = s1ptName+part_1_Name+vsM; _s1pt_1_vsM = createProfile(name,name, _nBins_M4, _min_M4, _max_M4, _title_m4, _title_AvgSumPt_1);
929 name = n1NwName+part_1_Name+vsM; _n1Nw_1_vsM = createProfile(name,name, _nBins_M4, _min_M4, _max_M4, _title_m4, _title_AvgN_1);
930 name = s1ptNwName+part_1_Name+vsM; _s1ptNw_1_vsM = createProfile(name,name, _nBins_M4, _min_M4, _max_M4, _title_m4, _title_AvgSumPt_1);
931
932 name = n1Name+part_2_Name+vsEtaPhi; _n1_2_vsEtaVsPhi = createHisto2F(name,name, _nBins_eta_2, _min_eta_2, _max_eta_2, _nBins_phi_2, _min_phi_2, _max_phi_2, _title_eta_2, _title_phi_2, _title_AvgN_2);
933 name = s1ptName+part_2_Name+vsEtaPhi; _s1pt_2_vsEtaVsPhi = createHisto2F(name,name, _nBins_eta_2, _min_eta_2, _max_eta_2, _nBins_phi_2, _min_phi_2, _max_phi_2, _title_eta_2, _title_phi_2, _title_AvgSumPt_2);
934 name = n1Name+part_2_Name + vsM; _n1_2_vsM = createProfile(name,name, _nBins_M4, _min_M4, _max_M4, _title_m4, _title_AvgN_2);
935 name = s1ptName+part_2_Name + vsM; _s1pt_2_vsM = createProfile(name,name, _nBins_M4, _min_M4, _max_M4, _title_m4, _title_AvgSumPt_2);
936 name = n1NwName+part_2_Name+vsM; _n1Nw_2_vsM = createProfile(name,name, _nBins_M4, _min_M4, _max_M4, _title_m4, _title_AvgN_1);
937 name = s1ptNwName+part_2_Name+vsM; _s1ptNw_2_vsM = createProfile(name,name, _nBins_M4, _min_M4, _max_M4, _title_m4, _title_AvgSumPt_1);
938
939 name = n2Name+pair_12_Name+vsEtaPhi; _n2_12_vsEtaPhi = createHisto1F(name,name, _nBins_etaPhi_12, 0., double(_nBins_etaPhi_12), _title_etaPhi_12, _title_AvgN2_12);
940 name = s2PtPtName+pair_12_Name + vsEtaPhi;_s2PtPt_12_vsEtaPhi = createHisto1F(name,name, _nBins_etaPhi_12, 0., double(_nBins_etaPhi_12), _title_etaPhi_12, _title_AvgSumPtPt_12);
941 name = s2PtNName+pair_12_Name + vsEtaPhi; _s2PtN_12_vsEtaPhi = createHisto1F(name,name, _nBins_etaPhi_12, 0., double(_nBins_etaPhi_12), _title_etaPhi_12, _title_AvgSumPtN_12);
942 name = s2NPtName+pair_12_Name + vsEtaPhi; _s2NPt_12_vsEtaPhi = createHisto1F(name,name, _nBins_etaPhi_12, 0., double(_nBins_etaPhi_12), _title_etaPhi_12, _title_AvgNSumPt_12);
943 name = n2Name+pair_12_Name+vsPtVsPt; _n2_12_vsPtVsPt = createHisto2F(name,name, _nBins_pt_1, _min_pt_1, _max_pt_1, _nBins_pt_2, _min_pt_2, _max_pt_2, _title_pt_1, _title_pt_2, _title_AvgN2_12);
9cabc5db 944
239bac74 945 name = n2Name+pair_12_Name + vsM; _n2_12_vsM = createProfile(name,name, _nBins_M4, _min_M4, _max_M4, _title_m4, _title_AvgN2_12);
946 name = s2PtPtName+pair_12_Name + vsM; _s2PtPt_12_vsM = createProfile(name,name, _nBins_M4, _min_M4, _max_M4, _title_m4, _title_AvgSumPtPt_12);
947 name = s2PtNName+pair_12_Name + vsM; _s2PtN_12_vsM = createProfile(name,name, _nBins_M4, _min_M4, _max_M4, _title_m4, _title_AvgSumPtN_12);
948 name = s2NPtName+pair_12_Name + vsM; _s2NPt_12_vsM = createProfile(name,name, _nBins_M4, _min_M4, _max_M4, _title_m4, _title_AvgNSumPt_12);
9cabc5db 949
239bac74 950 name = n2NwName+pair_12_Name + vsM; _n2Nw_12_vsM = createProfile(name,name, _nBins_M4, _min_M4, _max_M4, _title_m4, _title_AvgN2_12);
951 name = s2PtPtNwName+pair_12_Name + vsM; _s2PtPtNw_12_vsM = createProfile(name,name, _nBins_M4, _min_M4, _max_M4, _title_m4, _title_AvgSumPtPt_12);
952 name = s2PtNNwName+pair_12_Name + vsM; _s2PtNNw_12_vsM = createProfile(name,name, _nBins_M4, _min_M4, _max_M4, _title_m4, _title_AvgSumPtN_12);
953 name = s2NPtNwName+pair_12_Name + vsM; _s2NPtNw_12_vsM = createProfile(name,name, _nBins_M4, _min_M4, _max_M4, _title_m4, _title_AvgNSumPt_12);
9cabc5db 954
9fe7543b 955 name = "mInv"; _invMass = createHisto1F(name,name, 50, 0.41, 0.55, "M_{inv}","counts");
239bac74 956 name = "mInvElec"; _invMassElec = createHisto1F(name,name, 500, 0., 1.000, "M_{inv}","counts");
9cabc5db 957 }
958
959 AliInfo(" AliAnalysisTaskDptDptCorrelations::createHistoHistograms() All Done");
960}
961//-----------------------//
962
963void AliAnalysisTaskDptDptCorrelations::finalizeHistograms()
964{
965
966 AliInfo("AliAnalysisTaskDptDptCorrelations::finalizeHistograms() starting");
967 AliInfo(Form("CorrelationAnalyzers::finalizeHistograms() _eventCount : %d",int(_eventCount)));
239bac74 968 if (_singlesOnly)
9cabc5db 969 {
239bac74 970 if (_sameFilter)
971 {
972 fillHistoWithArray(_n1_1_vsPt, __n1_1_vsPt, _nBins_pt_1);
973 fillHistoWithArray(_n1_1_vsZVsEtaVsPhiVsPt, __n1_1_vsZEtaPhiPt, _nBins_vertexZ, _nBins_etaPhi_1, _nBins_pt_1);
974 fillHistoWithArray(_n1_2_vsPt, __n1_1_vsPt, _nBins_pt_1);
975 fillHistoWithArray(_n1_2_vsZVsEtaVsPhiVsPt, __n1_1_vsZEtaPhiPt, _nBins_vertexZ, _nBins_etaPhi_1, _nBins_pt_1);
976 }
977 else
978 {
979 fillHistoWithArray(_n1_1_vsPt, __n1_1_vsPt, _nBins_pt_1);
980 fillHistoWithArray(_n1_1_vsZVsEtaVsPhiVsPt, __n1_1_vsZEtaPhiPt, _nBins_vertexZ, _nBins_etaPhi_1, _nBins_pt_1);
981 fillHistoWithArray(_n1_2_vsPt, __n1_2_vsPt, _nBins_pt_2);
982 fillHistoWithArray(_n1_2_vsZVsEtaVsPhiVsPt, __n1_2_vsZEtaPhiPt, _nBins_vertexZ, _nBins_etaPhi_2, _nBins_pt_2);
983 }
9cabc5db 984 }
985 else
986 {
239bac74 987 if (_sameFilter)
988 {
989 fillHistoWithArray(_n1_1_vsEtaVsPhi, __n1_1_vsEtaPhi, _nBins_eta_1, _nBins_phi_1);
990 fillHistoWithArray(_s1pt_1_vsEtaVsPhi, __s1pt_1_vsEtaPhi, _nBins_eta_1, _nBins_phi_1);
991 fillHistoWithArray(_n1_2_vsEtaVsPhi, __n1_1_vsEtaPhi, _nBins_eta_1, _nBins_phi_1);
992 fillHistoWithArray(_s1pt_2_vsEtaVsPhi, __s1pt_1_vsEtaPhi, _nBins_eta_1, _nBins_phi_1);
993 }
994 else
995 {
996 fillHistoWithArray(_n1_1_vsEtaVsPhi, __n1_1_vsEtaPhi, _nBins_eta_1, _nBins_phi_1);
997 fillHistoWithArray(_s1pt_1_vsEtaVsPhi, __s1pt_1_vsEtaPhi, _nBins_eta_1, _nBins_phi_1);
998 fillHistoWithArray(_n1_2_vsEtaVsPhi, __n1_2_vsEtaPhi, _nBins_eta_2, _nBins_phi_2);
999 fillHistoWithArray(_s1pt_2_vsEtaVsPhi, __s1pt_2_vsEtaPhi, _nBins_eta_2, _nBins_phi_2);
1000 }
9cabc5db 1001 fillHistoWithArray(_n2_12_vsEtaPhi, __n2_12_vsEtaPhi, _nBins_etaPhi_12);
1002 fillHistoWithArray(_s2PtPt_12_vsEtaPhi, __s2ptpt_12_vsEtaPhi, _nBins_etaPhi_12);
1003 fillHistoWithArray(_s2PtN_12_vsEtaPhi, __s2PtN_12_vsEtaPhi, _nBins_etaPhi_12);
1004 fillHistoWithArray(_s2NPt_12_vsEtaPhi, __s2NPt_12_vsEtaPhi, _nBins_etaPhi_12);
239bac74 1005 fillHistoWithArray(_n2_12_vsPtVsPt, __n2_12_vsPtPt, _nBins_pt_1, _nBins_pt_2);
1006
1007 }
9cabc5db 1008 AliInfo("AliAnalysisTaskDptDptCorrelations::finalizeHistograms() Done ");
1009}
1010//--------------//
1011
1012
ba6301d5 1013void AliAnalysisTaskDptDptCorrelations::UserExec(Option_t */*option*/)
9cabc5db 1014{
1015
1016 int k1,k2;
1017 int iPhi, iEta, iEtaPhi, iPt, charge;
23496d49 1018 float q, phi, pt, eta, corr, corrPt, px, py, pz;
9cabc5db 1019 int ij;
1020 int id_1, q_1, iEtaPhi_1, iPt_1;
23496d49 1021 float pt_1, px_1, py_1, pz_1, corr_1;
9cabc5db 1022 int id_2, q_2, iEtaPhi_2, iPt_2;
23496d49 1023 float pt_2, px_2, py_2, pz_2, corr_2;
9cabc5db 1024 float ptpt;
1025 int iVertex, iVertexP1, iVertexP2;
1026 int iZEtaPhiPt;
4358ff80 1027 float massElecSq = 1.94797849000000016e-02;
2781d660 1028 //double b[2];
1029 //double bCov[3];
9cabc5db 1030 const AliAODVertex* vertex;
9cabc5db 1031 bool bitOK;
2781d660 1032
cc7ee8f9 1033 AliAnalysisManager* manager = AliAnalysisManager::GetAnalysisManager();
1034 if (!manager) {
cc7ee8f9 1035 return;
1036 }
cc7ee8f9 1037 AliAODInputHandler* inputHandler = dynamic_cast<AliAODInputHandler*> (manager->GetInputEventHandler());
1038 if (!inputHandler) {
cc7ee8f9 1039 return;
1040 }
2781d660 1041
cc7ee8f9 1042 fAODEvent = dynamic_cast<AliAODEvent*>(InputEvent());
5d603bbf 1043 //AliAODEvent* fAODEvent = dynamic_cast<AliAODEvent*>(InputEvent());
2781d660 1044
cc7ee8f9 1045 if (!fAODEvent)
1046 {
cc7ee8f9 1047 return;
1048 }
1049 fPIDResponse =inputHandler->GetPIDResponse();
1050 if (!fPIDResponse){
1051 AliFatal("This Task needs the PID response attached to the inputHandler");
1052 return;
1053 }
2781d660 1054
9cabc5db 1055 // count all events looked at here
1056 _eventCount++;
2781d660 1057
2e00326e 1058 if (_eventAccounting)
1059 {
1060 _eventAccounting->Fill(0);// count all calls to this function
1061 }
239bac74 1062 else
1063 {
2781d660 1064
1065 return;
239bac74 1066 }
9cabc5db 1067
9cabc5db 1068 _eventAccounting->Fill(1);// count all calls to this function with a valid pointer
9cabc5db 1069 //reset single particle counters
1070 k1 = k2 = 0;
1071 __n1_1 = __n1_2 = __s1pt_1 = __s1pt_2 = __n1Nw_1 = __n1Nw_2 = __s1ptNw_1 = __s1ptNw_2 = 0;
1072
1073 float v0Centr = -999.;
b8ab2bb9 1074 float v0ACentr = -999.;
9cabc5db 1075 float trkCentr = -999.;
1076 float spdCentr = -999.;
1077
1078 float vertexX = -999;
1079 float vertexY = -999;
1080 float vertexZ = -999;
0a268a8e 1081 //float vertexXY = -999;
e72a23ac 1082 //float dcaZ = -999;
1083 //float dcaXY = -999;
9cabc5db 1084 float centrality = -999;
2781d660 1085
9cabc5db 1086 if(fAODEvent)
1087 {
2781d660 1088 //Centrality
1089 AliCentrality* centralityObject = fAODEvent->GetHeader()->GetCentralityP();
1090 if (centralityObject)
1091 {
1092 //cout << "AliAnalysisTaskDptDptCorrelations::UserExec(Option_t *option) - 6" << endl;
1093
1094 v0Centr = centralityObject->GetCentralityPercentile("V0M");
1095 v0ACentr = centralityObject->GetCentralityPercentile("V0A");
1096 trkCentr = centralityObject->GetCentralityPercentile("TRK");
1097 spdCentr = centralityObject->GetCentralityPercentile("CL1");
1098
1099 }
9cabc5db 1100
2781d660 1101 _nTracks =fAODEvent->GetNumberOfTracks();//NEW Test
9cabc5db 1102
2781d660 1103 _mult3 = _nTracks;
1104 _mult4 = v0Centr;
1105 _mult4a = v0ACentr;
1106 _mult5 = trkCentr;
1107 _mult6 = spdCentr;
1108 _field = fAODEvent->GetMagneticField();
1109
1110 //_centralityMethod
1111 switch (_centralityMethod)
1112 {
1113 case 0: centrality = _mult0; break;
1114 case 1: centrality = _mult1; break;
1115 case 2: centrality = _mult2; break;
1116 case 3: centrality = _mult3; break;
1117 case 4: centrality = _mult4; break;
1118 case 5: centrality = _mult5; break;
1119 case 6: centrality = _mult6; break;
1120 case 7: centrality = _mult4a; break;
1121 }
1122
1123
1124 if ( centrality < _centralityMin || centrality > _centralityMax )
1125 {
1126 return;
1127 }
1128 _eventAccounting->Fill(2);// count all events with right centrality
1129
1130 // filter on z and xy vertex
0a268a8e 1131 vertex = (AliAODVertex*) fAODEvent->GetPrimaryVertex();
1132 // Double_t V[2];
1133 //vertex->GetXYZ(V);
1134
1135 if(vertex)
2781d660 1136 {
0a268a8e 1137 Double32_t fCov[6];
1138 vertex->GetCovarianceMatrix(fCov);
1139 if(vertex->GetNContributors() > 0)
1140 {
1141 if(fCov[5] != 0)
1142 {
1143 vertexX = vertex->GetX();
1144 vertexY = vertex->GetY();
1145 vertexZ = vertex->GetZ();
1146
1147 if(TMath::Abs(vertexZ) > 10)
1148 {
1149 return;
1150 } // Z-Vertex Cut
1151 }
1152 }
2781d660 1153 }
2781d660 1154
1155 _vertexZ->Fill(vertexZ);
1156
1157 iVertex = int((vertexZ-_min_vertexZ)/_width_vertexZ);
1158 iVertexP1 = iVertex*_nBins_etaPhiPt_1;
1159 iVertexP2 = iVertex*_nBins_etaPhiPt_2;
1160 if (iVertex<0 || iVertex>=_nBins_vertexZ)
1161 {
1162 AliError("AliAnalysisTaskDptDptCorrelations::Exec(Option_t *option) iVertex<0 || iVertex>=_nBins_vertexZ ");
1163 return;
1164 }
1165 _eventAccounting->Fill(3);// count all calls to this function with a valid pointer
1166 //======================
1167
1168 //*********************************************************
e72a23ac 1169 TExMap *trackMap = new TExMap();//Mapping matrix----
c4ccbacd 1170 TRandom *ran = new TRandom(); //random eff. correction
1171
94694b54 1172 //1st loop track for Global tracks
e72a23ac 1173 for(Int_t i = 0; i < _nTracks; i++)
2781d660 1174 {
1175 AliAODTrack* aodTrack = dynamic_cast<AliAODTrack *>(fAODEvent->GetTrack(i));
1176 if(!aodTrack) {
1177 AliError(Form("ERROR: Could not retrieve AODtrack %d",i));
1178 continue;
1179 }
1180 Int_t gID = aodTrack->GetID();
1181 if (aodTrack->TestFilterBit(1)) trackMap->Add(gID, i);//Global tracks
e72a23ac 1182 }
2781d660 1183
e72a23ac 1184 AliAODTrack* newAodTrack;
2781d660 1185
1186 //Track Loop starts here
1187 for (int iTrack=0; iTrack< _nTracks; iTrack++)
1188 {
1189 AliAODTrack* t = dynamic_cast<AliAODTrack *>(fAODEvent->GetTrack(iTrack));
1190 if (!t) {
1191 AliError(Form("Could not receive track %d", iTrack));
1192 continue;
1193 }
1194
1195 bitOK = t->TestFilterBit(_trackFilterBit);
0a268a8e 1196 if (!bitOK) continue; //128bit or 272bit
c4ccbacd 1197
1198 //------- Eff. test----------
8a98df0c 1199 // Double_t yy = (1-0.7)/1.8;
1200 // Double_t zz = (pt-0.2);
1201 //Double_t effValue = 0.7+yy*zz;
1202 Double_t effValue = 0.7;
c4ccbacd 1203 Double_t R = ran->Uniform(0,1);
1204
1205 if(R > effValue) continue;
1206 //---------------------------
1207
e72a23ac 1208 Int_t gID = t->GetID();
1209 newAodTrack = gID >= 0 ?t : fAODEvent->GetTrack(trackMap->GetValue(-1-gID));
2781d660 1210
1211 q = t->Charge();
1212 charge = int(q);
1213 phi = t->Phi();
1214 pt = t->Pt();
1215 px = t->Px();
1216 py = t->Py();
1217 pz = t->Pz();
1218 eta = t->Eta();
e72a23ac 1219 //dcaXY = t->DCA();
1220 //dcaZ = t->ZAtDCA();
2781d660 1221
94694b54 1222 //for Global tracks
e72a23ac 1223 Double_t nsigmaelectron = TMath::Abs(fPIDResponse->NumberOfSigmasTPC(newAodTrack,(AliPID::EParticleType)AliPID::kElectron));
2781d660 1224 Double_t nsigmapion = TMath::Abs(fPIDResponse->NumberOfSigmasTPC(newAodTrack,(AliPID::EParticleType)AliPID::kPion));
1225 Double_t nsigmakaon = TMath::Abs(fPIDResponse->NumberOfSigmasTPC(newAodTrack,(AliPID::EParticleType)AliPID::kKaon));
e72a23ac 1226 Double_t nsigmaproton = TMath::Abs(fPIDResponse->NumberOfSigmasTPC(newAodTrack,(AliPID::EParticleType)AliPID::kProton));
2781d660 1227
1228 //nsigma cut to reject electron
1229
1230 if(nsigmaelectron < fNSigmaCut
1231 && nsigmapion > fNSigmaCut
1232 && nsigmakaon > fNSigmaCut
1233 && nsigmaproton > fNSigmaCut ) continue;
1234
1235 if(charge == 0) continue;
1236
2781d660 1237 // Kinematics cuts used
0a268a8e 1238 if( pt < _min_pt_1 || pt > _max_pt_1) continue;
1239 if( eta < _min_eta_1 || eta > _max_eta_1) continue;
49f44fbe 1240
e72a23ac 1241 Double_t pos[3];
0a268a8e 1242 newAodTrack->GetXYZ(pos);
1243
1244 Double_t DCAX = pos[0] - vertexX;
1245 Double_t DCAY = pos[1] - vertexY;
1246 Double_t DCAZ = pos[2] - vertexZ;
ab6b1a67 1247
1248 Double_t DCAXY = TMath::Sqrt((DCAX*DCAX) + (DCAY*DCAY));
1249
0a268a8e 1250 if (DCAZ < _dcaZMin ||
1251 DCAZ > _dcaZMax ||
e72a23ac 1252 DCAXY > _dcaXYMax ) continue;
94694b54 1253
94694b54 1254
2781d660 1255 //==== QA ===========================
c4ccbacd 1256 //_dcaz->Fill(DCAZ);
1257 //_dcaxy->Fill(DCAXY);
1258 //_etadis->Fill(eta);
1259 //_phidis->Fill(phi);
2781d660 1260 //===================================
1261 //*************************************************
1262
1263 //Particle 1
1264 if (_requestedCharge_1 == charge)
cc7ee8f9 1265 {
2781d660 1266
1267 iPhi = int( phi/_width_phi_1);
1268
1269 if (iPhi<0 || iPhi>=_nBins_phi_1 )
1270 {
1271 AliWarning("AliAnalysisTaskDptDptCorrelations::analyze() iPhi<0 || iPhi>=_nBins_phi_1");
1272 return;
1273 }
1274
1275 iEta = int((eta-_min_eta_1)/_width_eta_1);
1276 if (iEta<0 || iEta>=_nBins_eta_1)
1277 {
1278 AliWarning(Form("AliAnalysisTaskDptDptCorrelations::analyze(AliceEvent * event) Mismatched iEta: %d", iEta));
1279 continue;
1280 }
1281 iPt = int((pt -_min_pt_1 )/_width_pt_1 );
1282 if (iPt<0 || iPt >=_nBins_pt_1)
1283 {
1284 AliWarning(Form("AliAnalysisTaskDptDptCorrelations::analyze(AliceEvent * event) Mismatched iPt: %d",iPt));
1285 continue;
1286 }
1287 iEtaPhi = iEta*_nBins_phi_1+iPhi;
1288 iZEtaPhiPt = iVertexP1 + iEtaPhi*_nBins_pt_1 + iPt;
1289
1290 if (_correctionWeight_1)
1291 corr = _correctionWeight_1[iZEtaPhiPt];
1292 else
1293 corr = 1;
1294 if (iZEtaPhiPt<0 || iZEtaPhiPt>=_nBins_zEtaPhiPt_1)
1295 {
1296 AliWarning("AliAnalysisTaskDptDptCorrelations::analyze(AliceEvent * event) iZEtaPhiPt<0 || iZEtaPhiPt>=_nBins_zEtaPhiPt_1");
1297 continue;
1298 }
1299
1300
1301 if (_singlesOnly)
1302 {
1303
1304 __n1_1_vsPt[iPt] += corr; //cout << "step 15" << endl;
1305 __n1_1_vsZEtaPhiPt[iZEtaPhiPt] += corr; //cout << "step 12" << endl;
1306
1307 }
1308 else
1309 {
1310 corrPt = corr*pt;
1311 _id_1[k1] = iTrack;
1312 _charge_1[k1] = charge;
1313 _iEtaPhi_1[k1] = iEtaPhi;
1314 _iPt_1[k1] = iPt;
1315 _pt_1[k1] = pt;
1316 _px_1[k1] = px;
1317 _py_1[k1] = py;
1318 _pz_1[k1] = pz;
1319 _correction_1[k1] = corr;
1320 __n1_1 += corr;
1321 __n1_1_vsEtaPhi[iEtaPhi] += corr;
1322 __s1pt_1 += corrPt;
1323 __s1pt_1_vsEtaPhi[iEtaPhi] += corrPt;
1324 __n1Nw_1 += 1;
1325 __s1ptNw_1 += pt;
1326 ++k1;
1327 if (k1>=arraySize)
1328 {
1329 AliError(Form("AliAnalysisTaskDptDptCorrelations::analyze(AliceEvent * event) k1 >=arraySize; arraySize: %d",arraySize));
1330 return;
1331 }
1332 }
1333 }
49f44fbe 1334
2781d660 1335 if (!_sameFilter && _requestedCharge_2 == charge)
1336 {
1337
1338 iPhi = int( phi/_width_phi_2);
1339
1340 if (iPhi<0 || iPhi>=_nBins_phi_2 )
1341 {
1342 AliWarning("AliAnalysisTaskDptDptCorrelations::analyze() iPhi<0 || iPhi>=_nBins_phi_1");
1343 return;
1344 }
1345
1346 iEta = int((eta-_min_eta_2)/_width_eta_2);
1347 if (iEta<0 || iEta>=_nBins_eta_2)
1348 {
1349 AliWarning(Form("AliAnalysisTaskDptDptCorrelations::analyze(AliceEvent * event) Mismatched iEta: %d", iEta));
1350 continue;
1351 }
1352 iPt = int((pt -_min_pt_2 )/_width_pt_2 );
1353 if (iPt<0 || iPt >=_nBins_pt_2)
1354 {
1355 AliWarning(Form("AliAnalysisTaskDptDptCorrelations::analyze(AliceEvent * event) Mismatched iPt: %d",iPt));
1356 continue;
1357 }
1358
1359 iEtaPhi = iEta*_nBins_phi_2+iPhi;
1360 iZEtaPhiPt = iVertexP2 + iEtaPhi*_nBins_pt_2 + iPt;
1361 if (iZEtaPhiPt<0 || iZEtaPhiPt>=_nBins_zEtaPhiPt_2)
1362 {
1363 AliWarning("AliAnalysisTaskDptDptCorrelations::analyze(AliceEvent * event) iZEtaPhiPt<0 || iZEtaPhiPt>=_nBins_zEtaPhiPt_2");
1364 continue;
1365 }
1366
1367
1368 if (_correctionWeight_2)
1369 corr = _correctionWeight_2[iZEtaPhiPt];
1370 else
1371 corr = 1;
1372
1373 if (_singlesOnly)
1374 {
1375 __n1_2_vsPt[iPt] += corr; //cout << "step 15" << endl;
1376 __n1_2_vsZEtaPhiPt[iZEtaPhiPt] += corr; //cout << "step 12" << endl;
1377 }
1378 else
1379 {
1380 corrPt = corr*pt;
1381 _id_2[k2] = iTrack; //cout << "step 1" << endl;
1382 _charge_2[k2] = charge; //cout << "step 2" << endl;
1383 _iEtaPhi_2[k2] = iEtaPhi; //cout << "step 3" << endl;
1384 _iPt_2[k2] = iPt; //cout << "step 4" << endl;
1385 _pt_2[k2] = pt; //cout << "step 5" << endl;
1386 _px_2[k2] = px; //cout << "step 6" << endl;
1387 _py_2[k2] = py; //cout << "step 7" << endl;
1388 _pz_2[k2] = pz; //cout << "step 8" << endl;
1389 _correction_2[k2] = corr; //cout << "step 9" << endl;
1390 __n1_2 += corr; //cout << "step 10" << endl;
1391 __s1pt_2 += corrPt; //cout << "step 13" << endl;
1392 __n1Nw_2 += 1;
1393 __n1_2_vsEtaPhi[iEtaPhi] += corr; //cout << "step 11" << endl;
1394 __s1pt_2_vsEtaPhi[iEtaPhi] += corrPt; //cout << "step 14" << endl;
1395 __s1ptNw_2 += pt;
1396 ++k2;
1397 if (k2>=arraySize)
1398 {
1399 AliWarning(Form("-W- k2 >=arraySize; arraySize: %d",arraySize));
1400 return;
1401 }
1402 }
1403
1404 //cout << "done with track" << endl;
1405 } //iTrack
1406 } //aod
9cabc5db 1407 }
2781d660 1408
9cabc5db 1409
1410 //cout << "Filling histograms now" << endl;
1411 _m0->Fill(_mult0);
1412 _m1->Fill(_mult1);
1413 _m2->Fill(_mult2);
1414 _m3->Fill(_mult3);
1415 _m4->Fill(_mult4);
1416 _m5->Fill(_mult5);
1417 _m6->Fill(_mult6);
5d603bbf 1418 //_vertexZ->Fill(vertexZ);
b8ab2bb9 1419
239bac74 1420 if (_singlesOnly)
9cabc5db 1421 {
2781d660 1422 // nothing to do here.
9cabc5db 1423 }
1424 else
1425 {
2781d660 1426 if (_sameFilter)
1427 {
239bac74 1428 _n1_1_vsM->Fill(centrality, __n1_1);
1429 _s1pt_1_vsM->Fill(centrality, __s1pt_1);
1430 _n1Nw_1_vsM->Fill(centrality, __n1Nw_1);
1431 _s1ptNw_1_vsM->Fill(centrality, __s1ptNw_1);
1432 _n1_2_vsM->Fill(centrality, __n1_1);
1433 _s1pt_2_vsM->Fill(centrality, __s1pt_1);
1434 _n1Nw_2_vsM->Fill(centrality, __n1Nw_1);
1435 _s1ptNw_2_vsM->Fill(centrality, __s1ptNw_1);
1436 // reset pair counters
1437 __n2_12 = __s2ptpt_12 = __s2NPt_12 = __s2PtN_12 = 0;
1438 __n2Nw_12 = __s2ptptNw_12 = __s2NPtNw_12 = __s2PtNNw_12 = 0;
1439 if (_field>0)
9cabc5db 1440 {
2781d660 1441 for (int i1=0; i1<k1; i1++)
1442 {
1443 ////cout << " i1:" << i1 << endl;
1444 id_1 = _id_1[i1]; ////cout << " id_1:" << id_1 << endl;
1445 q_1 = _charge_1[i1]; ////cout << " q_1:" << q_1 << endl;
1446 iEtaPhi_1 = _iEtaPhi_1[i1]; ////cout << " iEtaPhi_1:" << iEtaPhi_1 << endl;
1447 iPt_1 = _iPt_1[i1]; ////cout << " iPt_1:" << iPt_1 << endl;
1448 corr_1 = _correction_1[i1]; ////cout << " corr_1:" << corr_1 << endl;
1449 pt_1 = _pt_1[i1]; ////cout << " pt_1:" << pt_1 << endl;
1450 //dedx_1 = _dedx_1[i1]; ////cout << " dedx_1:" << dedx_1 << endl;
1451 //1 and 2
1452 for (int i2=i1+1; i2<k1; i2++)
1453 {
1454 ////cout << " i2:" << i2 << endl;
1455 id_2 = _id_1[i2]; ////cout << " id_2:" << id_2 << endl;
1456 if (id_1!=id_2)
1457 {
1458 q_2 = _charge_1[i2]; ////cout << " q_1:" << q_1 << endl;
1459 iEtaPhi_2 = _iEtaPhi_1[i2]; ////cout << " iEtaPhi_1:" << iEtaPhi_1 << endl;
1460 iPt_2 = _iPt_1[i2]; ////cout << " iPt_1:" << iPt_1 << endl;
1461 corr_2 = _correction_1[i2]; ////cout << " corr_1:" << corr_1 << endl;
1462 pt_2 = _pt_1[i2]; ////cout << " pt_1:" << pt_1 << endl;
1463 //dedx_2 = _dedx_1[i2]; ////cout << " dedx_2:" << dedx_2 << endl;
1464 corr = corr_1*corr_2;
1465 if (q_2>q_1 || (q_1>0 && q_2>0 && pt_2<=pt_1) || (q_1<0 && q_2<0 && pt_2>=pt_1))
1466 {
1467 ij = iEtaPhi_1*_nBins_etaPhi_1 + iEtaPhi_2; ////cout << " ij:" << ij<< endl;
1468 }
1469 else // swap particles
1470 {
1471 ij = iEtaPhi_2*_nBins_etaPhi_1 + iEtaPhi_1; ////cout << " ij:" << ij<< endl;
1472 }
1473
1474 __n2_12 += corr;
1475 __n2_12_vsEtaPhi[ij] += corr;
1476 ptpt = pt_1*pt_2;
1477 __s2ptpt_12 += corr*ptpt;
1478 __s2PtN_12 += corr*pt_1;
1479 __s2NPt_12 += corr*pt_2;
1480 __s2ptpt_12_vsEtaPhi[ij] += corr*ptpt;
1481 __s2PtN_12_vsEtaPhi[ij] += corr*pt_1;
1482 __s2NPt_12_vsEtaPhi[ij] += corr*pt_2;
1483 __n2_12_vsPtPt[iPt_1*_nBins_pt_2 + iPt_2] += corr;
1484
1485 __n2Nw_12 += 1;
1486 __s2ptptNw_12 += ptpt;
1487 __s2PtNNw_12 += pt_1;
1488 __s2NPtNw_12 += pt_2;
1489
1490 }
1491 } //i2
1492 } //i1
239bac74 1493 }
1494 else // field<0
1495 {
2781d660 1496 for (int i1=0; i1<k1; i1++)
1497 {
1498 ////cout << " i1:" << i1 << endl;
1499 id_1 = _id_1[i1]; ////cout << " id_1:" << id_1 << endl;
1500 q_1 = _charge_1[i1]; ////cout << " q_1:" << q_1 << endl;
1501 iEtaPhi_1 = _iEtaPhi_1[i1]; ////cout << " iEtaPhi_1:" << iEtaPhi_1 << endl;
1502 iPt_1 = _iPt_1[i1]; ////cout << " iPt_1:" << iPt_1 << endl;
1503 corr_1 = _correction_1[i1]; ////cout << " corr_1:" << corr_1 << endl;
1504 pt_1 = _pt_1[i1]; ////cout << " pt_1:" << pt_1 << endl;
1505 //dedx_1 = _dedx_1[i1]; ////cout << " dedx_1:" << dedx_1 << endl;
1506 //1 and 2
1507 for (int i2=i1+1; i2<k1; i2++)
1508 {
1509 ////cout << " i2:" << i2 << endl;
1510 id_2 = _id_1[i2]; ////cout << " id_2:" << id_2 << endl;
1511 if (id_1!=id_2)
1512 {
1513 q_2 = _charge_1[i2]; ////cout << " q_2:" << q_2 << endl;
1514 iEtaPhi_2 = _iEtaPhi_1[i2]; ////cout << " iEtaPhi_2:" << iEtaPhi_2 << endl;
1515 iPt_2 = _iPt_1[i2]; ////cout << " iPt_2:" << iPt_2 << endl;
1516 corr_2 = _correction_1[i2]; ////cout << " corr_2:" << corr_2 << endl;
1517 pt_2 = _pt_1[i2]; ////cout << " pt_2:" << pt_2 << endl;
1518 //dedx_2 = _dedx_1[i2]; ////cout << " dedx_2:" << dedx_2 << endl;
1519 corr = corr_1*corr_2;
1520 if ( q_2<q_1 || (q_1>0 && q_2>0 && pt_2>=pt_1) || (q_1<0 && q_2<0 && pt_2<=pt_1))
1521 {
1522 ij = iEtaPhi_1*_nBins_etaPhi_1 + iEtaPhi_2; ////cout << " ij:" << ij<< endl;
1523 }
1524 else // swap particles
1525 {
1526 ij = iEtaPhi_2*_nBins_etaPhi_1 + iEtaPhi_1; ////cout << " ij:" << ij<< endl;
1527 }
1528
1529 __n2_12 += corr;
1530 __n2_12_vsEtaPhi[ij] += corr;
1531 ptpt = pt_1*pt_2;
1532 __s2ptpt_12 += corr*ptpt;
1533 __s2PtN_12 += corr*pt_1;
1534 __s2NPt_12 += corr*pt_2;
1535 __s2ptpt_12_vsEtaPhi[ij] += corr*ptpt;
1536 __s2PtN_12_vsEtaPhi[ij] += corr*pt_1;
1537 __s2NPt_12_vsEtaPhi[ij] += corr*pt_2;
1538 __n2_12_vsPtPt[iPt_1*_nBins_pt_2 + iPt_2] += corr;
1539
1540 __n2Nw_12 += 1;
1541 __s2ptptNw_12 += ptpt;
1542 __s2PtNNw_12 += pt_1;
1543 __s2NPtNw_12 += pt_2;
1544
1545 }
1546 } //i2
1547 } //i1
239bac74 1548 }
2781d660 1549 }
1550 else // filter 1 and 2 are different -- must do all particle pairs...
1551 {
1552 _n1_1_vsM->Fill(centrality, __n1_1);
1553 _s1pt_1_vsM->Fill(centrality, __s1pt_1);
1554 _n1Nw_1_vsM->Fill(centrality, __n1Nw_1);
1555 _s1ptNw_1_vsM->Fill(centrality, __s1ptNw_1);
1556 _n1_2_vsM->Fill(centrality, __n1_2);
1557 _s1pt_2_vsM->Fill(centrality, __s1pt_2);
1558 _n1Nw_2_vsM->Fill(centrality, __n1Nw_2);
1559 _s1ptNw_2_vsM->Fill(centrality, __s1ptNw_2);
1560 // reset pair counters
1561 __n2_12 = __s2ptpt_12 = __s2NPt_12 = __s2PtN_12 = 0;
1562 __n2Nw_12 = __s2ptptNw_12 = __s2NPtNw_12 = __s2PtNNw_12 = 0;
1563 for (int i1=0; i1<k1; i1++)
1564 {
1565 ////cout << " i1:" << i1 << endl;
1566 id_1 = _id_1[i1]; ////cout << " id_1:" << id_1 << endl;
1567 q_1 = _charge_1[i1]; ////cout << " q_1:" << q_1 << endl;
1568 iEtaPhi_1 = _iEtaPhi_1[i1]; ////cout << " iEtaPhi_1:" << iEtaPhi_1 << endl;
1569 iPt_1 = _iPt_1[i1]; ////cout << " iPt_1:" << iPt_1 << endl;
1570 corr_1 = _correction_1[i1]; ////cout << " corr_1:" << corr_1 << endl;
1571 pt_1 = _pt_1[i1]; ////cout << " pt_1:" << pt_1 << endl;
1572 px_1 = _px_1[i1]; ////cout << " px_1:" << px_1 << endl;
1573 py_1 = _py_1[i1]; ////cout << " py_1:" << py_1 << endl;
1574 pz_1 = _pz_1[i1]; ////cout << " pz_1:" << pz_1 << endl;
1575 //dedx_1 = _dedx_1[i1]; ////cout << " dedx_1:" << dedx_1 << endl;
1576
1577 //1 and 2
1578 for (int i2=0; i2<k2; i2++)
1579 {
1580 ////cout << " i2:" << i2 << endl;
1581 id_2 = _id_2[i2]; ////cout << " id_2:" << id_2 << endl;
1582 if (id_1!=id_2) // exclude auto correlation
1583 {
1584 q_2 = _charge_2[i2]; ////cout << " q_2:" << q_2 << endl;
1585 iEtaPhi_2 = _iEtaPhi_2[i2]; ////cout << " iEtaPhi_2:" << iEtaPhi_2 << endl;
1586 iPt_2 = _iPt_2[i2]; ////cout << " iPt_2:" << iPt_2 << endl;
1587 corr_2 = _correction_2[i2]; ////cout << " corr_2:" << corr_2 << endl;
1588 pt_2 = _pt_2[i2]; ////cout << " pt_2:" << pt_2 << endl;
1589 px_2 = _px_2[i2]; ////cout << " px_2:" << px_2 << endl;
1590 py_2 = _py_2[i2]; ////cout << " py_2:" << py_2 << endl;
1591 pz_2 = _pz_2[i2]; ////cout << " pz_2:" << pz_2 << endl;
1592 //dedx_2 = _dedx_2[i2]; ////cout << " dedx_2:" << dedx_2 << endl;
1593
1594
1595 if (_rejectPairConversion)
1596 {
1597 float e1Sq = massElecSq + pt_1*pt_1 + pz_1*pz_1;
1598 float e2Sq = massElecSq + pt_2*pt_2 + pz_2*pz_2;
1599 float mInvSq = 2*(massElecSq + sqrt(e1Sq*e2Sq) - px_1*px_2 - py_1*py_2 - pz_1*pz_2 );
1600 float mInv = sqrt(mInvSq);
1601 _invMass->Fill(mInv);
1602 }
1603
1604 corr = corr_1*corr_2;
1605 ij = iEtaPhi_1*_nBins_etaPhi_1 + iEtaPhi_2; ////cout << " ij:" << ij<< endl;
1606 __n2_12 += corr;
1607 __n2_12_vsEtaPhi[ij] += corr;
1608 ptpt = pt_1*pt_2;
1609 __s2ptpt_12 += corr*ptpt;
1610 __s2PtN_12 += corr*pt_1;
1611 __s2NPt_12 += corr*pt_2;
1612 __s2ptpt_12_vsEtaPhi[ij] += corr*ptpt;
1613 __s2PtN_12_vsEtaPhi[ij] += corr*pt_1;
1614 __s2NPt_12_vsEtaPhi[ij] += corr*pt_2;
1615 __n2_12_vsPtPt[iPt_1*_nBins_pt_2 + iPt_2] += corr;
1616 __n2Nw_12 += 1;
1617 __s2ptptNw_12 += ptpt;
1618 __s2PtNNw_12 += pt_1;
1619 __s2NPtNw_12 += pt_2;
1620
1621 }
1622 } //i2
1623 } //i1
1624 }
1625
1626 _n2_12_vsM->Fill(centrality, __n2_12);
1627 _s2PtPt_12_vsM->Fill(centrality, __s2ptpt_12);
1628 _s2PtN_12_vsM->Fill(centrality, __s2NPt_12);
1629 _s2NPt_12_vsM->Fill(centrality, __s2PtN_12);
1630
1631 _n2Nw_12_vsM->Fill(centrality, __n2Nw_12);
1632 _s2PtPtNw_12_vsM->Fill(centrality, __s2ptptNw_12);
1633 _s2PtNNw_12_vsM->Fill(centrality, __s2NPtNw_12);
1634 _s2NPtNw_12_vsM->Fill(centrality, __s2PtNNw_12);
1635
9cabc5db 1636 }
9cabc5db 1637
9cabc5db 1638
4e5b8cae 1639 AliInfo("AliAnalysisTaskDptDptCorrelations::UserExec() -----------------Event Done ");
9cabc5db 1640 PostData(0,_outputHistoList);
1641
1642}
1643
1644void AliAnalysisTaskDptDptCorrelations::FinishTaskOutput()
1645{
4e5b8cae 1646 AliInfo("AliAnalysisTaskDptDptCorrelations::FinishTaskOutput() Starting.");
8c006fc6 1647 Printf("= 0 ====================================================================");
9cabc5db 1648 finalizeHistograms();
4e5b8cae 1649 AliInfo("= 1 ====================================================================");
9cabc5db 1650 PostData(0,_outputHistoList);
4e5b8cae 1651 AliInfo("= 2 ====================================================================");
1652 AliInfo("AliAnalysisTaskDptDptCorrelations::FinishTaskOutput() Done.");
9cabc5db 1653}
1654
ba6301d5 1655void AliAnalysisTaskDptDptCorrelations::Terminate(Option_t* /*option*/)
9cabc5db 1656{
4e5b8cae 1657 AliInfo("AliAnalysisTaskDptDptCorrelations::Terminate() Starting/Done.");
9cabc5db 1658}
1659
1660
1661//Tools
1662//===================================================================================================
1663void AliAnalysisTaskDptDptCorrelations::fillHistoWithArray(TH1 * h, float * array, int size)
1664{
1665 int i, i1;
1666 float v1, ev1, v2, ev2, sum, esum;
1667 for (i=0, i1=1; i<size; ++i,++i1)
1668 {
1669 v1 = array[i]; ev1 = sqrt(v1);
1670 v2 = h->GetBinContent(i1);
1671 ev2 = h->GetBinError(i1);
1672 sum = v1 + v2;
1673 esum = sqrt(ev1*ev1+ev2*ev2);
1674 h->SetBinContent(i1,sum);
1675 h->SetBinError(i1,esum);
1676 }
1677}
1678
1679void AliAnalysisTaskDptDptCorrelations::fillHistoWithArray(TH2 * h, float * array, int size1, int size2)
1680{
1681 int i, i1;
1682 int j, j1;
1683 float v1, ev1, v2, ev2, sum, esum;
1684 for (i=0, i1=1; i<size1; ++i,++i1)
1685 {
1686 for (j=0, j1=1; j<size2; ++j,++j1)
1687 {
1688 v1 = array[i*size2+j]; ev1 = sqrt(v1);
1689 v2 = h->GetBinContent(i1,j1);
1690 ev2 = h->GetBinError(i1,j1);
1691 sum = v1 + v2;
1692 esum = sqrt(ev1*ev1+ev2*ev2);
1693 h->SetBinContent(i1,j1,sum);
1694 h->SetBinError(i1,j1,esum);
1695 }
1696 }
1697}
1698
1699void AliAnalysisTaskDptDptCorrelations::fillHistoWithArray(TH3 * h, float * array, int size1, int size2, int size3)
1700{
1701 int i, i1;
1702 int j, j1;
1703 int k, k1;
1704 float v1, ev1, v2, ev2, sum, esum;
1705 int size23 = size2*size3;
1706 for (i=0, i1=1; i<size1; ++i,++i1)
1707 {
1708 for (j=0, j1=1; j<size2; ++j,++j1)
1709 {
1710 for (k=0, k1=1; k<size3; ++k,++k1)
1711 {
1712 v1 = array[i*size23+j*size3+k]; ev1 = sqrt(v1);
1713 v2 = h->GetBinContent(i1,j1,k1);
1714 ev2 = h->GetBinError(i1,j1,k1);
1715 sum = v1 + v2;
1716 esum = sqrt(ev1*ev1+ev2*ev2);
1717 h->SetBinContent(i1,j1,k1,sum);
1718 h->SetBinError(i1,j1,k1,esum);
1719 }
1720 }
1721 }
1722}
1723
1724void AliAnalysisTaskDptDptCorrelations::fillHistoWithArray(TH1 * h, double * array, int size)
1725{
1726 int i, i1;
1727 double v1, ev1, v2, ev2, sum, esum;
1728 for (i=0, i1=1; i<size; ++i,++i1)
1729 {
1730 v1 = array[i]; ev1 = sqrt(v1);
1731 v2 = h->GetBinContent(i1);
1732 ev2 = h->GetBinError(i1);
1733 sum = v1 + v2;
1734 esum = sqrt(ev1*ev1+ev2*ev2);
1735 h->SetBinContent(i1,sum);
1736 h->SetBinError(i1,esum);
1737 }
1738}
1739
1740void AliAnalysisTaskDptDptCorrelations::fillHistoWithArray(TH2 * h, double * array, int size1, int size2)
1741{
1742 int i, i1;
1743 int j, j1;
1744 double v1, ev1, v2, ev2, sum, esum;
1745 for (i=0, i1=1; i<size1; ++i,++i1)
1746 {
1747 for (j=0, j1=1; j<size2; ++j,++j1)
1748 {
1749 v1 = array[i*size2+j]; ev1 = sqrt(v1);
1750 v2 = h->GetBinContent(i1,j1);
1751 ev2 = h->GetBinError(i1,j1);
1752 sum = v1 + v2;
1753 esum = sqrt(ev1*ev1+ev2*ev2);
1754 h->SetBinContent(i1,j1,sum);
1755 h->SetBinError(i1,j1,esum);
1756 }
1757 }
1758}
1759
1760void AliAnalysisTaskDptDptCorrelations::fillHistoWithArray(TH3 * h, double * array, int size1, int size2, int size3)
1761{
1762 int i, i1;
1763 int j, j1;
1764 int k, k1;
1765 double v1, ev1, v2, ev2, sum, esum;
1766 int size23 = size2*size3;
1767 for (i=0, i1=1; i<size1; ++i,++i1)
1768 {
1769 for (j=0, j1=1; j<size2; ++j,++j1)
1770 {
1771 for (k=0, k1=1; k<size3; ++k,++k1)
1772 {
1773 v1 = array[i*size23+j*size3+k]; ev1 = sqrt(v1);
1774 v2 = h->GetBinContent(i1,j1,k1);
1775 ev2 = h->GetBinError(i1,j1,k1);
1776 sum = v1 + v2;
1777 esum = sqrt(ev1*ev1+ev2*ev2);
1778 h->SetBinContent(i1,j1,k1,sum);
1779 h->SetBinError(i1,j1,k1,esum);
1780 }
1781 }
1782 }
1783}
1784
1785//________________________________________________________________________
1786double * AliAnalysisTaskDptDptCorrelations::getDoubleArray(int size, double v)
1787{
1788 /// Allocate an array of type double with n values
1789 /// Initialize the array to the given value
1790 double * array = new double [size];
1791 for (int i=0;i<size;++i) array[i]=v;
1792 return array;
1793}
1794
1795//________________________________________________________________________
1796float * AliAnalysisTaskDptDptCorrelations::getFloatArray(int size, float v)
1797{
1798 /// Allocate an array of type float with n values
1799 /// Initialize the array to the given value
1800 float * array = new float [size];
1801 for (int i=0;i<size;++i) array[i]=v;
1802 return array;
1803}
1804
1805
1806//________________________________________________________________________
239bac74 1807TH1D * AliAnalysisTaskDptDptCorrelations::createHisto1D(const TString & name, const TString & title,
9cabc5db 1808 int n, double xMin, double xMax,
1809 const TString & xTitle, const TString & yTitle)
1810{
1811 //CreateHisto new 1D historgram
1812 AliInfo(Form("createHisto 1D histo %s nBins: %d xMin: %f xMax: %f",name.Data(),n,xMin,xMax));
1813 TH1D * h = new TH1D(name,title,n,xMin,xMax);
1814 h->GetXaxis()->SetTitle(xTitle);
1815 h->GetYaxis()->SetTitle(yTitle);
1816 addToList(h);
1817 return h;
1818}
1819
1820
1821//________________________________________________________________________
239bac74 1822TH1D * AliAnalysisTaskDptDptCorrelations::createHisto1D(const TString & name, const TString & title,
9cabc5db 1823 int n, double * bins,
1824 const TString & xTitle, const TString & yTitle)
1825{
1826 AliInfo(Form("createHisto 1D histo %s with %d non uniform nBins",name.Data(),n));
1827 TH1D * h = new TH1D(name,title,n,bins);
1828 h->GetXaxis()->SetTitle(xTitle);
1829 h->GetYaxis()->SetTitle(yTitle);
1830 addToList(h);
1831 return h;
1832}
1833
1834
1835//________________________________________________________________________
239bac74 1836TH2D * AliAnalysisTaskDptDptCorrelations::createHisto2D(const TString & name, const TString & title,
9cabc5db 1837 int nx, double xMin, double xMax, int ny, double yMin, double yMax,
1838 const TString & xTitle, const TString & yTitle, const TString & zTitle)
1839{
1840 AliInfo(Form("createHisto 2D histo %s nx: %d xMin: %f10.4 xMax: %f10.4 ny: %d yMin: %f10.4 yMax: %f10.4",name.Data(),nx,xMin,xMax,ny,yMin,yMax));
1841 TH2D * h = new TH2D(name,title,nx,xMin,xMax,ny,yMin,yMax);
1842 h->GetXaxis()->SetTitle(xTitle);
1843 h->GetYaxis()->SetTitle(yTitle);
1844 h->GetZaxis()->SetTitle(zTitle);
1845 addToList(h);
1846 return h;
1847}
1848
1849//________________________________________________________________________
239bac74 1850TH2D * AliAnalysisTaskDptDptCorrelations::createHisto2D(const TString & name, const TString & title,
9cabc5db 1851 int nx, double* xbins, int ny, double yMin, double yMax,
1852 const TString & xTitle, const TString & yTitle, const TString & zTitle)
1853{
1854 AliInfo(Form("createHisto 2D histo %s with %d non uniform nBins",name.Data(),nx));
1855 TH2D * h;
1856 h = new TH2D(name,title,nx,xbins,ny,yMin,yMax);
1857 h->GetXaxis()->SetTitle(xTitle);
1858 h->GetYaxis()->SetTitle(yTitle);
1859 h->GetZaxis()->SetTitle(zTitle);
1860 addToList(h);
1861 return h;
1862}
1863
239bac74 1864//// F /////
1865//________________________________________________________________________
1866TH1F * AliAnalysisTaskDptDptCorrelations::createHisto1F(const TString & name, const TString & title,
1867 int n, double xMin, double xMax,
1868 const TString & xTitle, const TString & yTitle)
1869{
1870 //CreateHisto new 1D historgram
1871 AliInfo(Form("createHisto 1D histo %s nBins: %d xMin: %f xMax: %f",name.Data(),n,xMin,xMax));
1872 TH1F * h = new TH1F(name,title,n,xMin,xMax);
1873 h->GetXaxis()->SetTitle(xTitle);
1874 h->GetYaxis()->SetTitle(yTitle);
1875 addToList(h);
1876 return h;
1877}
1878
1879
1880//________________________________________________________________________
1881TH1F * AliAnalysisTaskDptDptCorrelations::createHisto1F(const TString & name, const TString & title,
1882 int n, double * bins,
1883 const TString & xTitle, const TString & yTitle)
1884{
1885 AliInfo(Form("createHisto 1D histo %s with %d non uniform nBins",name.Data(),n));
1886 TH1F * h = new TH1F(name,title,n,bins);
1887 h->GetXaxis()->SetTitle(xTitle);
1888 h->GetYaxis()->SetTitle(yTitle);
1889 addToList(h);
1890 return h;
1891}
1892
1893
1894//________________________________________________________________________
1895TH2F * AliAnalysisTaskDptDptCorrelations::createHisto2F(const TString & name, const TString & title,
1896 int nx, double xMin, double xMax, int ny, double yMin, double yMax,
1897 const TString & xTitle, const TString & yTitle, const TString & zTitle)
1898{
1899 AliInfo(Form("createHisto 2D histo %s nx: %d xMin: %f10.4 xMax: %f10.4 ny: %d yMin: %f10.4 yMax: %f10.4",name.Data(),nx,xMin,xMax,ny,yMin,yMax));
1900 TH2F * h = new TH2F(name,title,nx,xMin,xMax,ny,yMin,yMax);
1901 h->GetXaxis()->SetTitle(xTitle);
1902 h->GetYaxis()->SetTitle(yTitle);
1903 h->GetZaxis()->SetTitle(zTitle);
1904 addToList(h);
1905 return h;
1906}
1907
1908//________________________________________________________________________
1909TH2F * AliAnalysisTaskDptDptCorrelations::createHisto2F(const TString & name, const TString & title,
1910 int nx, double* xbins, int ny, double yMin, double yMax,
1911 const TString & xTitle, const TString & yTitle, const TString & zTitle)
1912{
1913 AliInfo(Form("createHisto 2D histo %s with %d non uniform nBins",name.Data(),nx));
1914 TH2F * h;
1915 h = new TH2F(name,title,nx,xbins,ny,yMin,yMax);
1916 h->GetXaxis()->SetTitle(xTitle);
1917 h->GetYaxis()->SetTitle(yTitle);
1918 h->GetZaxis()->SetTitle(zTitle);
1919 addToList(h);
1920 return h;
1921}
1922
9cabc5db 1923
1924//________________________________________________________________________
239bac74 1925TH3F * AliAnalysisTaskDptDptCorrelations::createHisto3F(const TString & name, const TString & title,
9cabc5db 1926 int nx, double xMin, double xMax,
1927 int ny, double yMin, double yMax,
1928 int nz, double zMin, double zMax,
1929 const TString & xTitle, const TString & yTitle, const TString & zTitle)
1930{
1931 AliInfo(Form("createHisto 2D histo %s nx: %d xMin: %f10.4 xMax: %f10.4 ny: %d yMin: %f10.4 yMax: %f10.4 nz: %d zMin: %f10.4 zMax: %f10.4",name.Data(),nx,xMin,xMax,ny,yMin,yMax,nz,zMin,zMax));
1932 TH3F * h = new TH3F(name,title,nx,xMin,xMax,ny,yMin,yMax,nz,zMin,zMax);
1933 h->GetXaxis()->SetTitle(xTitle);
1934 h->GetYaxis()->SetTitle(yTitle);
1935 h->GetZaxis()->SetTitle(zTitle);
1936 addToList(h);
1937 return h;
1938}
1939
1940
1941//________________________________________________________________________
1942TProfile * AliAnalysisTaskDptDptCorrelations::createProfile(const TString & name, const TString & description,
1943 int nx,double xMin,double xMax,
1944 const TString & xTitle, const TString & yTitle)
1945{
1946 AliInfo(Form("createHisto 1D profile %s nBins: %d xMin: %f10.4 xMax: %f10.4",name.Data(),nx,xMin,xMax));
1947 TProfile * h = new TProfile(name,description,nx,xMin,xMax);
1948 h->GetXaxis()->SetTitle(xTitle);
1949 h->GetYaxis()->SetTitle(yTitle);
1950 addToList(h);
1951 return h;
1952}
1953
1954//________________________________________________________________________
1955TProfile * AliAnalysisTaskDptDptCorrelations::createProfile(const TString & name,const TString & description,
1956 int nx, double* bins,
1957 const TString & xTitle, const TString & yTitle)
1958{
1959 AliInfo(Form("createHisto 1D profile %s with %d non uniform bins",name.Data(),nx));
1960 TProfile * h = new TProfile(name,description,nx,bins);
1961 h->GetXaxis()->SetTitle(xTitle);
1962 h->GetYaxis()->SetTitle(yTitle);
1963 addToList(h);
1964 return h;
1965}
1966
1967
1968void AliAnalysisTaskDptDptCorrelations::addToList(TH1 *h)
1969{
1970 if (_outputHistoList)
1971 {
1972 _outputHistoList->Add(h);
1973 }
1974 else
4e5b8cae 1975 AliInfo("addToList(TH1 *h) _outputHistoList is null!!!!! Should abort ship");
9cabc5db 1976
1977}
1978
1979
1980