]>
Commit | Line | Data |
---|---|---|
2542e3ae | 1 | #include "TChain.h" |
2 | #include "TList.h" | |
3 | #include "TFile.h" | |
4 | #include "TTree.h" | |
5 | #include "TH1D.h" | |
6 | #include "TH2D.h" | |
7 | #include "TH3D.h" | |
8 | #include "THnSparse.h" | |
9 | #include "TCanvas.h" | |
10 | ||
11 | #include <TROOT.h> | |
12 | #include <TChain.h> | |
13 | #include <TFile.h> | |
14 | #include <TList.h> | |
15 | #include <TMath.h> | |
16 | #include <TTree.h> | |
17 | #include <TH1F.h> | |
18 | #include <TH2F.h> | |
19 | #include <TH3F.h> | |
20 | #include <TProfile.h> | |
21 | #include <TH1D.h> | |
22 | #include <TH2D.h> | |
23 | #include <TH3D.h> | |
24 | #include <TRandom.h> | |
25 | #include "AliAnalysisManager.h" | |
26 | ||
27 | #include "AliAODHandler.h" | |
28 | #include "AliAODInputHandler.h" | |
29 | #include "AliInputEventHandler.h" | |
30 | #include "AliLog.h" | |
31 | #include "AliESDEvent.h" | |
32 | #include "AliESDInputHandler.h" | |
33 | #include "AliMultiplicity.h" | |
34 | #include "AliCentrality.h" | |
35 | #include "AliAnalysisTaskDptDptQA.h" | |
36 | ||
37 | #include "AliPID.h" | |
38 | #include "AliPIDResponse.h" | |
39 | ||
40 | #include "AliESDVertex.h" | |
41 | #include "AliESDEvent.h" | |
42 | #include "AliESDInputHandler.h" | |
43 | #include "AliAODEvent.h" | |
44 | #include "AliAODTrack.h" | |
45 | #include "AliAODInputHandler.h" | |
46 | #include "AliESD.h" | |
47 | #include "AliESDEvent.h" | |
48 | #include "AliAODEvent.h" | |
49 | #include "AliStack.h" | |
50 | #include "AliESDtrackCuts.h" | |
51 | #include "AliAODMCHeader.h" | |
52 | ||
53 | ||
54 | #include "AliGenHijingEventHeader.h" | |
55 | #include "AliGenEventHeader.h" | |
56 | #include "AliPID.h" | |
57 | #include "AliAODPid.h" | |
58 | #include "AliPIDResponse.h" | |
59 | #include "AliAODpidUtil.h" | |
60 | #include "AliPIDCombined.h" | |
61 | ||
62 | ||
63 | ||
64 | ClassImp(AliAnalysisTaskDptDptQA) | |
65 | ||
66 | AliAnalysisTaskDptDptQA::AliAnalysisTaskDptDptQA() | |
67 | : AliAnalysisTaskSE(), | |
68 | fAODEvent(0), | |
69 | fESDEvent(0), //! ESD Event | |
70 | fInputHandler(0), | |
71 | fPIDResponse(0x0), | |
72 | _outputHistoList(0), | |
73 | _twoPi ( 2.0 * 3.1415927), | |
74 | _eventCount ( 0), | |
75 | _debugLevel ( 0), | |
76 | _singlesOnly ( 0), | |
77 | _useWeights ( 0), | |
78 | _sameFilter ( false), | |
79 | _rejectPileup ( 1), | |
80 | _rejectPairConversion ( 0), | |
81 | _vertexZMin ( -10), | |
82 | _vertexZMax ( 10), | |
83 | _vertexXYMin ( -10), | |
84 | _vertexXYMax ( 10), | |
85 | _centralityMethod ( 4), | |
86 | _centralityMin ( 0.), | |
87 | _centralityMax ( 0.), | |
88 | _requestedCharge_1 ( 1), | |
89 | _requestedCharge_2 ( -1), | |
90 | _dcaZMin ( -3), | |
91 | _dcaZMax ( 3.), | |
92 | _dcaXYMin ( -2.4), | |
93 | _dcaXYMax ( 2.4), | |
94 | _dedxMin ( 0), | |
95 | _dedxMax ( 100000), | |
96 | _nClusterMin ( 80), | |
97 | _trackFilterBit (0), | |
98 | fNSigmaCut (3.), | |
99 | _field ( 1.), | |
100 | _nTracks ( 0 ), | |
101 | _mult0 ( 0 ), | |
102 | _mult1 ( 0 ), | |
103 | _mult2 ( 0 ), | |
104 | _mult3 ( 0 ), | |
105 | _mult4 ( 0 ), | |
106 | _mult4a ( 0 ), | |
107 | _mult5 ( 0 ), | |
108 | _mult6 ( 0 ), | |
109 | arraySize ( 2000), | |
110 | _id_1(0), | |
111 | _charge_1(0), | |
112 | _iEtaPhi_1(0), | |
113 | _iPt_1(0), | |
114 | _pt_1(0), | |
115 | _px_1(0), | |
116 | _py_1(0), | |
117 | _pz_1(0), | |
118 | _correction_1(0), | |
119 | _dedx_1(0), | |
120 | _id_2(0), | |
121 | _charge_2(0), | |
122 | _iEtaPhi_2(0), | |
123 | _iPt_2(0), | |
124 | _pt_2(0), | |
125 | _px_2(0), | |
126 | _py_2(0), | |
127 | _pz_2(0), | |
128 | _correction_2(0), | |
129 | _dedx_2(0), | |
130 | _correctionWeight_1(0), | |
131 | _correctionWeight_2(0), | |
132 | _nBins_M0(500), _min_M0(0), _max_M0(10000), _width_M0(20), | |
133 | _nBins_M1(500), _min_M1(0), _max_M1(10000), _width_M1(20), | |
134 | _nBins_M2(500), _min_M2(0), _max_M2(10000), _width_M2(20), | |
135 | _nBins_M3(500), _min_M3(0), _max_M3(10000), _width_M3(20), | |
136 | _nBins_M4(100), _min_M4(0), _max_M4(1), _width_M4(0.01), | |
137 | _nBins_M5(100), _min_M5(0), _max_M5(1), _width_M5(0.01), | |
138 | _nBins_M6(100), _min_M6(0), _max_M6(1), _width_M6(0.01), | |
139 | _nBins_vertexZ(40), _min_vertexZ(-10), _max_vertexZ(10), _width_vertexZ(0.5), | |
140 | ||
141 | _nBins_pt_1(18), _min_pt_1(0.2), _max_pt_1(2.0), _width_pt_1(0.1), | |
142 | _nBins_phi_1(72), _min_phi_1(0), _max_phi_1(2.*3.1415927),_width_phi_1(2.*3.1415927/72.), | |
143 | _nBins_eta_1(0), _min_eta_1(0), _max_eta_1(0), _width_eta_1(0.1), | |
144 | ||
145 | _nBins_etaPhi_1(0), | |
146 | _nBins_etaPhiPt_1(0), | |
147 | _nBins_zEtaPhiPt_1(0), | |
148 | ||
149 | _nBins_pt_2(18), _min_pt_2(0.2), _max_pt_2(2.0), _width_pt_2(0.1), | |
150 | _nBins_phi_2(72), _min_phi_2(0), _max_phi_2(2.*3.1415927),_width_phi_2(2.*3.1415927/72), | |
151 | _nBins_eta_2(0), _min_eta_2(0), _max_eta_2(0), _width_eta_2(0.1), | |
152 | ||
153 | _nBins_etaPhi_2(0), | |
154 | _nBins_etaPhiPt_2(0), | |
155 | _nBins_zEtaPhiPt_2(0), | |
156 | _nBins_etaPhi_12(0), | |
157 | __n1_1(0), | |
158 | __n1_2(0), | |
159 | __n2_12(0), | |
160 | __s1pt_1(0), | |
161 | __s1pt_2(0), | |
162 | __s2ptpt_12(0), | |
163 | __s2NPt_12(0), | |
164 | __s2PtN_12(0), | |
165 | __n1Nw_1(0), | |
166 | __n1Nw_2(0), | |
167 | __n2Nw_12(0), | |
168 | __s1ptNw_1(0), | |
169 | __s1ptNw_2(0), | |
170 | __s2ptptNw_12(0), | |
171 | __s2NPtNw_12(0), | |
172 | __s2PtNNw_12(0), | |
173 | __n1_1_vsPt(0), | |
174 | __n1_1_vsEtaPhi(0), | |
175 | __s1pt_1_vsEtaPhi(0), | |
176 | __n1_1_vsZEtaPhiPt(0), | |
177 | __n1_2_vsPt(0), | |
178 | __n1_2_vsEtaPhi(0), | |
179 | __s1pt_2_vsEtaPhi(0), | |
180 | __n1_2_vsZEtaPhiPt(0), | |
181 | __n2_12_vsPtPt(0), | |
182 | __n2_12_vsEtaPhi(0), | |
183 | __s2ptpt_12_vsEtaPhi(0), | |
184 | __s2PtN_12_vsEtaPhi(0), | |
185 | __s2NPt_12_vsEtaPhi(0), | |
186 | _weight_1 ( 0 ), | |
187 | _weight_2 ( 0 ), | |
188 | _eventAccounting ( 0), | |
189 | _m0 ( 0), | |
190 | _m1 ( 0), | |
191 | _m2 ( 0), | |
192 | _m3 ( 0), | |
193 | _m4 ( 0), | |
194 | _m5 ( 0), | |
195 | _m6 ( 0), | |
196 | _vertexZ ( 0), | |
197 | ||
198 | _Ncluster1 ( 0), | |
199 | _Ncluster2 ( 0), | |
200 | _etadis ( 0), | |
201 | _phidis ( 0), | |
202 | _dcaz ( 0), | |
203 | _dcaxy ( 0), | |
204 | _spectra ( 0), | |
205 | _n1_1_vsPt ( 0), | |
206 | _n1_1_vsEtaVsPhi ( 0), | |
207 | _s1pt_1_vsEtaVsPhi ( 0), | |
208 | _n1_1_vsZVsEtaVsPhiVsPt ( 0), | |
209 | _n1_1_vsM ( 0), | |
210 | _s1pt_1_vsM ( 0), | |
211 | _n1Nw_1_vsM ( 0), | |
212 | _s1ptNw_1_vsM ( 0), | |
213 | _dedxVsP_1 ( 0), | |
214 | _corrDedxVsP_1 ( 0), | |
215 | _betaVsP_1 ( 0), | |
216 | _n1_2_vsPt ( 0), | |
217 | _n1_2_vsEtaVsPhi ( 0), | |
218 | _s1pt_2_vsEtaVsPhi ( 0), | |
219 | _n1_2_vsZVsEtaVsPhiVsPt ( 0), | |
220 | _n1_2_vsM ( 0), | |
221 | _s1pt_2_vsM ( 0), | |
222 | _n1Nw_2_vsM ( 0), | |
223 | _s1ptNw_2_vsM ( 0), | |
224 | _dedxVsP_2 ( 0), | |
225 | _corrDedxVsP_2 ( 0), | |
226 | _betaVsP_2 ( 0), | |
227 | _n2_12_vsEtaPhi ( 0), | |
228 | _n2_12_vsPtVsPt ( 0), | |
229 | _s2PtPt_12_vsEtaPhi( 0), | |
230 | _s2PtN_12_vsEtaPhi ( 0), | |
231 | _s2NPt_12_vsEtaPhi ( 0), | |
232 | _n2_12_vsM ( 0), | |
233 | _s2PtPt_12_vsM ( 0), | |
234 | _s2PtN_12_vsM ( 0), | |
235 | _s2NPt_12_vsM ( 0), | |
236 | _n2Nw_12_vsM ( 0), | |
237 | _s2PtPtNw_12_vsM ( 0), | |
238 | _s2PtNNw_12_vsM ( 0), | |
239 | _s2NPtNw_12_vsM ( 0), | |
240 | _invMass ( 0), | |
241 | n1Name("NA"), | |
242 | n1NwName("NA"), | |
243 | n2Name("NA"), | |
244 | n2NwName("NA"), | |
245 | n3Name("NA"), | |
246 | n1n1Name("NA"), | |
247 | n1n1n1Name("NA"), | |
248 | n2n1Name("NA"), | |
249 | r1Name("NA"), | |
250 | r2Name("NA"), | |
251 | r3Name("NA"), | |
252 | r2r1Name("NA"), | |
253 | c2Name("NA"), | |
254 | c3Name("NA"), | |
255 | d3Name("NA"), | |
256 | p3Name("NA"), | |
257 | cName("NA"), | |
258 | ||
259 | intR2Name("NA"), | |
260 | binCorrName("NA"), | |
261 | intBinCorrName("NA"), | |
262 | ||
263 | countsName("NA"), | |
264 | part_1_Name("NA"), | |
265 | part_2_Name("NA"), | |
266 | part_3_Name("NA"), | |
267 | pair_12_Name("NA"), | |
268 | pair_13_Name("NA"), | |
269 | pair_23_Name("NA"), | |
270 | tripletName("NA"), | |
271 | ||
272 | avg("NA"), | |
273 | avgName("NA"), | |
274 | sumName("NA"), | |
275 | s1ptName("NA"), | |
276 | s1ptNwName("NA"), | |
277 | s1DptName("NA"), | |
278 | ||
279 | s2PtPtName("NA"), | |
280 | s2NPtName("NA"), | |
281 | s2PtNName("NA"), | |
282 | s2DptDptName("NA"), | |
283 | ||
284 | s2PtPtNwName("NA"), | |
285 | s2NPtNwName("NA"), | |
286 | s2PtNNwName("NA"), | |
287 | ||
288 | ptName("NA"), | |
289 | ptptName("NA"), | |
290 | pt1pt1Name("NA"), | |
291 | DptName("NA"), | |
292 | DptDptName("NA"), | |
293 | RDptDptName("NA"), | |
294 | nPtName("NA"), | |
295 | ptNName("NA"), | |
296 | seanName("NA"), | |
297 | ||
298 | _title_counts("NA"), | |
299 | ||
300 | _title_m0("NA"), | |
301 | _title_m1("NA"), | |
302 | _title_m2("NA"), | |
303 | _title_m3("NA"), | |
304 | _title_m4("NA"), | |
305 | _title_m5("NA"), | |
306 | _title_m6("NA"), | |
307 | ||
308 | _title_eta_1("NA"), | |
309 | _title_phi_1("NA"), | |
310 | _title_pt_1("NA"), | |
311 | _title_etaPhi_1("NA"), | |
312 | _title_n_1("NA"), | |
313 | _title_SumPt_1("NA"), | |
314 | _title_AvgPt_1("NA"), | |
315 | _title_AvgN_1("NA"), | |
316 | _title_AvgSumPt_1("NA"), | |
317 | ||
318 | _title_eta_2("NA"), | |
319 | _title_phi_2("NA"), | |
320 | _title_pt_2("NA"), | |
321 | _title_etaPhi_2("NA"), | |
322 | _title_n_2("NA"), | |
323 | _title_SumPt_2("NA"), | |
324 | _title_AvgPt_2("NA"), | |
325 | _title_AvgN_2("NA"), | |
326 | _title_AvgSumPt_2("NA"), | |
327 | ||
328 | _title_etaPhi_12("NA"), | |
329 | ||
330 | _title_AvgN2_12("NA"), | |
331 | _title_AvgSumPtPt_12("NA"), | |
332 | _title_AvgSumPtN_12("NA"), | |
333 | _title_AvgNSumPt_12("NA"), | |
334 | ||
335 | vsZ("NA"), | |
336 | vsM("NA"), | |
337 | vsPt("NA"), | |
338 | vsPhi("NA"), | |
339 | vsEta("NA"), | |
340 | vsEtaPhi("NA"), | |
341 | vsPtVsPt("NA") | |
342 | { | |
343 | printf("Default constructor called \n"); | |
344 | ||
345 | printf("passed \n "); | |
346 | ||
347 | } | |
348 | ||
349 | AliAnalysisTaskDptDptQA::AliAnalysisTaskDptDptQA(const TString & name) | |
350 | : AliAnalysisTaskSE(name), | |
351 | fAODEvent(0), | |
352 | fESDEvent(0), | |
353 | fInputHandler(0), | |
354 | fPIDResponse(0), | |
355 | _outputHistoList(0), | |
356 | _twoPi ( 2.0 * 3.1415927), | |
357 | _eventCount ( 0), | |
358 | _debugLevel ( 0), | |
359 | _singlesOnly ( 0), | |
360 | _useWeights ( 0), | |
361 | _sameFilter ( false), | |
362 | _rejectPileup ( 1), | |
363 | _rejectPairConversion ( 0), | |
364 | _vertexZMin ( -10.), | |
365 | _vertexZMax ( 10.), | |
366 | _vertexXYMin ( -10.), | |
367 | _vertexXYMax ( 10.), | |
368 | _centralityMethod ( 4), | |
369 | _centralityMin ( 0.), | |
370 | _centralityMax ( 1.), | |
371 | _requestedCharge_1 ( 1), | |
372 | _requestedCharge_2 ( -1), | |
373 | _dcaZMin ( -3), | |
374 | _dcaZMax ( 3.), | |
375 | _dcaXYMin ( -2.4), | |
376 | _dcaXYMax ( 2.4), | |
377 | _dedxMin ( 0), | |
378 | _dedxMax ( 100000), | |
379 | _nClusterMin ( 80), | |
380 | _trackFilterBit ( 0), | |
381 | fNSigmaCut ( 3.), | |
382 | _field ( 1.), | |
383 | _nTracks ( 0 ), | |
384 | _mult0 ( 0 ), | |
385 | _mult1 ( 0 ), | |
386 | _mult2 ( 0 ), | |
387 | _mult3 ( 0 ), | |
388 | _mult4 ( 0 ), | |
389 | _mult4a ( 0 ), | |
390 | _mult5 ( 0 ), | |
391 | _mult6 ( 0 ), | |
392 | arraySize ( 2000), | |
393 | _id_1(0), | |
394 | _charge_1(0), | |
395 | _iEtaPhi_1(0), | |
396 | _iPt_1(0), | |
397 | _pt_1(0), | |
398 | _px_1(0), | |
399 | _py_1(0), | |
400 | _pz_1(0), | |
401 | _correction_1(0), | |
402 | _dedx_1(0), | |
403 | _id_2(0), | |
404 | _charge_2(0), | |
405 | _iEtaPhi_2(0), | |
406 | _iPt_2(0), | |
407 | _pt_2(0), | |
408 | _px_2(0), | |
409 | _py_2(0), | |
410 | _pz_2(0), | |
411 | _correction_2(0), | |
412 | _dedx_2(0), | |
413 | _correctionWeight_1(0), | |
414 | _correctionWeight_2(0), | |
415 | _nBins_M0(500), _min_M0(0), _max_M0(10000), _width_M0(20), | |
416 | _nBins_M1(500), _min_M1(0), _max_M1(10000), _width_M1(20), | |
417 | _nBins_M2(500), _min_M2(0), _max_M2(10000), _width_M2(20), | |
418 | _nBins_M3(500), _min_M3(0), _max_M3(10000), _width_M3(20), | |
419 | _nBins_M4(100), _min_M4(0), _max_M4(1), _width_M4(0.01), | |
420 | _nBins_M5(100), _min_M5(0), _max_M5(1), _width_M5(0.01), | |
421 | _nBins_M6(100), _min_M6(0), _max_M6(1), _width_M6(0.01), | |
422 | _nBins_vertexZ(40), _min_vertexZ(-10), _max_vertexZ(10), _width_vertexZ(0.5), | |
423 | ||
424 | _nBins_pt_1(18), _min_pt_1(0.2), _max_pt_1(2.0), _width_pt_1(0.1), | |
425 | _nBins_phi_1(72), _min_phi_1(0), _max_phi_1(2.*3.1415927),_width_phi_1(2.*3.1415927/72.), | |
426 | _nBins_eta_1(0), _min_eta_1(0), _max_eta_1(0), _width_eta_1(0.1), | |
427 | ||
428 | _nBins_etaPhi_1(0), | |
429 | _nBins_etaPhiPt_1(0), | |
430 | _nBins_zEtaPhiPt_1(0), | |
431 | ||
432 | _nBins_pt_2(18), _min_pt_2(0.2), _max_pt_2(2.0), _width_pt_2(0.1), | |
433 | _nBins_phi_2(72), _min_phi_2(0), _max_phi_2(2.*3.1415927),_width_phi_2(2.*3.1415927/72), | |
434 | _nBins_eta_2(0), _min_eta_2(0), _max_eta_2(0), _width_eta_2(0.1), | |
435 | ||
436 | _nBins_etaPhi_2(0), | |
437 | _nBins_etaPhiPt_2(0), | |
438 | _nBins_zEtaPhiPt_2(0), | |
439 | _nBins_etaPhi_12(0), | |
440 | __n1_1(0), | |
441 | __n1_2(0), | |
442 | __n2_12(0), | |
443 | __s1pt_1(0), | |
444 | __s1pt_2(0), | |
445 | __s2ptpt_12(0), | |
446 | __s2NPt_12(0), | |
447 | __s2PtN_12(0), | |
448 | __n1Nw_1(0), | |
449 | __n1Nw_2(0), | |
450 | __n2Nw_12(0), | |
451 | __s1ptNw_1(0), | |
452 | __s1ptNw_2(0), | |
453 | __s2ptptNw_12(0), | |
454 | __s2NPtNw_12(0), | |
455 | __s2PtNNw_12(0), | |
456 | __n1_1_vsPt(0), | |
457 | __n1_1_vsEtaPhi(0), | |
458 | __s1pt_1_vsEtaPhi(0), | |
459 | __n1_1_vsZEtaPhiPt(0), | |
460 | __n1_2_vsPt(0), | |
461 | __n1_2_vsEtaPhi(0), | |
462 | __s1pt_2_vsEtaPhi(0), | |
463 | __n1_2_vsZEtaPhiPt(0), | |
464 | __n2_12_vsPtPt(0), | |
465 | __n2_12_vsEtaPhi(0), | |
466 | __s2ptpt_12_vsEtaPhi(0), | |
467 | __s2PtN_12_vsEtaPhi(0), | |
468 | __s2NPt_12_vsEtaPhi(0), | |
469 | _weight_1 ( 0 ), | |
470 | _weight_2 ( 0 ), | |
471 | _eventAccounting ( 0), | |
472 | _m0 ( 0), | |
473 | _m1 ( 0), | |
474 | _m2 ( 0), | |
475 | _m3 ( 0), | |
476 | _m4 ( 0), | |
477 | _m5 ( 0), | |
478 | _m6 ( 0), | |
479 | _vertexZ ( 0), | |
480 | _Ncluster1 ( 0), | |
481 | _Ncluster2 ( 0), | |
482 | _etadis ( 0), | |
483 | _phidis ( 0), | |
484 | ||
485 | _dcaz ( 0), | |
486 | _dcaxy ( 0), | |
487 | _spectra ( 0), | |
488 | _n1_1_vsPt ( 0), | |
489 | _n1_1_vsEtaVsPhi ( 0), | |
490 | _s1pt_1_vsEtaVsPhi ( 0), | |
491 | _n1_1_vsZVsEtaVsPhiVsPt ( 0), | |
492 | _n1_1_vsM ( 0), | |
493 | _s1pt_1_vsM ( 0), | |
494 | _n1Nw_1_vsM ( 0), | |
495 | _s1ptNw_1_vsM ( 0), | |
496 | _dedxVsP_1 ( 0), | |
497 | _corrDedxVsP_1 ( 0), | |
498 | _betaVsP_1 ( 0), | |
499 | _n1_2_vsPt ( 0), | |
500 | _n1_2_vsEtaVsPhi ( 0), | |
501 | _s1pt_2_vsEtaVsPhi ( 0), | |
502 | _n1_2_vsZVsEtaVsPhiVsPt ( 0), | |
503 | _n1_2_vsM ( 0), | |
504 | _s1pt_2_vsM ( 0), | |
505 | _n1Nw_2_vsM ( 0), | |
506 | _s1ptNw_2_vsM ( 0), | |
507 | _dedxVsP_2 ( 0), | |
508 | _corrDedxVsP_2 ( 0), | |
509 | _betaVsP_2 ( 0), | |
510 | _n2_12_vsEtaPhi ( 0), | |
511 | _n2_12_vsPtVsPt ( 0), | |
512 | _s2PtPt_12_vsEtaPhi( 0), | |
513 | _s2PtN_12_vsEtaPhi ( 0), | |
514 | _s2NPt_12_vsEtaPhi ( 0), | |
515 | _n2_12_vsM ( 0), | |
516 | _s2PtPt_12_vsM ( 0), | |
517 | _s2PtN_12_vsM ( 0), | |
518 | _s2NPt_12_vsM ( 0), | |
519 | _n2Nw_12_vsM ( 0), | |
520 | _s2PtPtNw_12_vsM ( 0), | |
521 | _s2PtNNw_12_vsM ( 0), | |
522 | _s2NPtNw_12_vsM ( 0), | |
523 | _invMass ( 0), | |
524 | n1Name("NA"), | |
525 | n1NwName("NA"), | |
526 | n2Name("NA"), | |
527 | n2NwName("NA"), | |
528 | n3Name("NA"), | |
529 | n1n1Name("NA"), | |
530 | n1n1n1Name("NA"), | |
531 | n2n1Name("NA"), | |
532 | r1Name("NA"), | |
533 | r2Name("NA"), | |
534 | r3Name("NA"), | |
535 | r2r1Name("NA"), | |
536 | c2Name("NA"), | |
537 | c3Name("NA"), | |
538 | d3Name("NA"), | |
539 | p3Name("NA"), | |
540 | cName("NA"), | |
541 | ||
542 | intR2Name("NA"), | |
543 | binCorrName("NA"), | |
544 | intBinCorrName("NA"), | |
545 | ||
546 | countsName("NA"), | |
547 | part_1_Name("NA"), | |
548 | part_2_Name("NA"), | |
549 | part_3_Name("NA"), | |
550 | pair_12_Name("NA"), | |
551 | pair_13_Name("NA"), | |
552 | pair_23_Name("NA"), | |
553 | tripletName("NA"), | |
554 | ||
555 | avg("NA"), | |
556 | avgName("NA"), | |
557 | sumName("NA"), | |
558 | s1ptName("NA"), | |
559 | s1ptNwName("NA"), | |
560 | s1DptName("NA"), | |
561 | ||
562 | s2PtPtName("NA"), | |
563 | s2NPtName("NA"), | |
564 | s2PtNName("NA"), | |
565 | s2DptDptName("NA"), | |
566 | ||
567 | s2PtPtNwName("NA"), | |
568 | s2NPtNwName("NA"), | |
569 | s2PtNNwName("NA"), | |
570 | ||
571 | ptName("NA"), | |
572 | ptptName("NA"), | |
573 | pt1pt1Name("NA"), | |
574 | DptName("NA"), | |
575 | DptDptName("NA"), | |
576 | RDptDptName("NA"), | |
577 | nPtName("NA"), | |
578 | ptNName("NA"), | |
579 | seanName("NA"), | |
580 | ||
581 | _title_counts("NA"), | |
582 | ||
583 | _title_m0("NA"), | |
584 | _title_m1("NA"), | |
585 | _title_m2("NA"), | |
586 | _title_m3("NA"), | |
587 | _title_m4("NA"), | |
588 | _title_m5("NA"), | |
589 | _title_m6("NA"), | |
590 | ||
591 | _title_eta_1("NA"), | |
592 | _title_phi_1("NA"), | |
593 | _title_pt_1("NA"), | |
594 | _title_etaPhi_1("NA"), | |
595 | _title_n_1("NA"), | |
596 | _title_SumPt_1("NA"), | |
597 | _title_AvgPt_1("NA"), | |
598 | _title_AvgN_1("NA"), | |
599 | _title_AvgSumPt_1("NA"), | |
600 | ||
601 | _title_eta_2("NA"), | |
602 | _title_phi_2("NA"), | |
603 | _title_pt_2("NA"), | |
604 | _title_etaPhi_2("NA"), | |
605 | _title_n_2("NA"), | |
606 | _title_SumPt_2("NA"), | |
607 | _title_AvgPt_2("NA"), | |
608 | _title_AvgN_2("NA"), | |
609 | _title_AvgSumPt_2("NA"), | |
610 | ||
611 | _title_etaPhi_12("NA"), | |
612 | ||
613 | _title_AvgN2_12("NA"), | |
614 | _title_AvgSumPtPt_12("NA"), | |
615 | _title_AvgSumPtN_12("NA"), | |
616 | _title_AvgNSumPt_12("NA"), | |
617 | ||
618 | vsZ("NA"), | |
619 | vsM("NA"), | |
620 | vsPt("NA"), | |
621 | vsPhi("NA"), | |
622 | vsEta("NA"), | |
623 | vsEtaPhi("NA"), | |
624 | vsPtVsPt("NA") | |
625 | { | |
626 | printf("2nd constructor called "); | |
627 | ||
628 | DefineOutput(0, TList::Class()); | |
629 | ||
630 | printf("passed "); | |
631 | ||
632 | } | |
633 | ||
634 | AliAnalysisTaskDptDptQA::~AliAnalysisTaskDptDptQA() | |
635 | { | |
636 | ||
637 | } | |
638 | ||
639 | void AliAnalysisTaskDptDptQA::UserCreateOutputObjects() | |
640 | { | |
641 | OpenFile(0); | |
642 | _outputHistoList = new TList(); | |
643 | _outputHistoList->SetOwner(); | |
644 | ||
645 | _nBins_M0 = 500; _min_M0 = 0.; _max_M0 = 5000.; _width_M0 = (_max_M0-_min_M0)/_nBins_M0; | |
646 | _nBins_M1 = 500; _min_M1 = 0.; _max_M1 = 5000.; _width_M1 = (_max_M1-_min_M1)/_nBins_M1; | |
647 | _nBins_M2 = 500; _min_M2 = 0.; _max_M2 = 5000.; _width_M2 = (_max_M2-_min_M2)/_nBins_M2; | |
648 | _nBins_M3 = 500; _min_M3 = 0.; _max_M3 = 5000.; _width_M3 = (_max_M3-_min_M3)/_nBins_M3; | |
649 | _nBins_M4 = 100; _min_M4 = 0.; _max_M4 = 100.; _width_M4 = (_max_M4-_min_M4)/_nBins_M4; | |
650 | _nBins_M5 = 100; _min_M5 = 0.; _max_M5 = 100.; _width_M5 = (_max_M5-_min_M5)/_nBins_M5; | |
651 | _nBins_M6 = 100; _min_M6 = 0.; _max_M6 = 100.; _width_M6 = (_max_M6-_min_M6)/_nBins_M6; | |
652 | ||
653 | _min_vertexZ = _vertexZMin; | |
654 | _max_vertexZ = _vertexZMax; | |
655 | _width_vertexZ = 0.5; | |
656 | _nBins_vertexZ = int(0.5+ (_max_vertexZ - _min_vertexZ)/_width_vertexZ); | |
657 | _nBins_pt_1 = int(0.5+ (_max_pt_1 -_min_pt_1 )/_width_pt_1); | |
658 | _nBins_eta_1 = int(0.5+ (_max_eta_1-_min_eta_1)/_width_eta_1); | |
659 | _width_phi_1 = (_max_phi_1 - _min_phi_1) /_nBins_phi_1; | |
660 | _nBins_etaPhi_1 = _nBins_phi_1 * _nBins_eta_1; | |
661 | _nBins_etaPhiPt_1 = _nBins_etaPhi_1 * _nBins_pt_1; | |
662 | _nBins_zEtaPhiPt_1 = _nBins_vertexZ * _nBins_etaPhiPt_1; | |
663 | ||
664 | _nBins_pt_2 = int(0.5+ (_max_pt_2 -_min_pt_2 )/_width_pt_2); | |
665 | _nBins_eta_2 = int(0.5+ (_max_eta_2-_min_eta_2)/_width_eta_2); | |
666 | _width_phi_2 = (_max_phi_2 - _min_phi_2) /_nBins_phi_2; | |
667 | _nBins_etaPhi_2 = _nBins_phi_2 * _nBins_eta_2; | |
668 | _nBins_etaPhiPt_2 = _nBins_etaPhi_2 * _nBins_pt_2; | |
669 | _nBins_zEtaPhiPt_2 = _nBins_vertexZ * _nBins_etaPhiPt_2; | |
670 | _nBins_etaPhi_12 = _nBins_etaPhi_1 * _nBins_etaPhi_2; | |
671 | ||
672 | _id_1 = new int[arraySize]; | |
673 | _charge_1 = new int[arraySize]; | |
674 | _iEtaPhi_1 = new int[arraySize]; | |
675 | _iPt_1 = new int[arraySize]; | |
676 | _pt_1 = new float[arraySize]; | |
677 | _px_1 = new float[arraySize]; | |
678 | _py_1 = new float[arraySize]; | |
679 | _pz_1 = new float[arraySize]; | |
680 | _correction_1 = new float[arraySize]; | |
681 | ||
682 | __n1_1_vsPt = getDoubleArray(_nBins_pt_1, 0.); | |
683 | __n1_1_vsEtaPhi = getDoubleArray(_nBins_etaPhi_1, 0.); | |
684 | __s1pt_1_vsEtaPhi = getDoubleArray(_nBins_etaPhi_1, 0.); | |
685 | __n1_1_vsZEtaPhiPt = getFloatArray(_nBins_zEtaPhiPt_1, 0.); | |
686 | ||
687 | ||
688 | if (_requestedCharge_2!=_requestedCharge_1) | |
689 | { | |
690 | _sameFilter = 0; | |
691 | //particle 2 | |
692 | _id_2 = new int[arraySize]; | |
693 | _charge_2 = new int[arraySize]; | |
694 | _iEtaPhi_2 = new int[arraySize]; | |
695 | _iPt_2 = new int[arraySize]; | |
696 | _pt_2 = new float[arraySize]; | |
697 | _px_2 = new float[arraySize]; | |
698 | _py_2 = new float[arraySize]; | |
699 | _pz_2 = new float[arraySize]; | |
700 | _correction_2 = new float[arraySize]; | |
701 | ||
702 | __n1_2_vsPt = getDoubleArray(_nBins_pt_2, 0.); | |
703 | __n1_2_vsEtaPhi = getDoubleArray(_nBins_etaPhi_2, 0.); | |
704 | __s1pt_2_vsEtaPhi = getDoubleArray(_nBins_etaPhi_2, 0.); | |
705 | __n1_2_vsZEtaPhiPt = getFloatArray(_nBins_zEtaPhiPt_2, 0.); | |
706 | ||
707 | } | |
708 | ||
709 | __n2_12_vsPtPt = getDoubleArray(_nBins_pt_1*_nBins_pt_2,0.); | |
710 | __n2_12_vsEtaPhi = getFloatArray(_nBins_etaPhi_12, 0.); | |
711 | __s2ptpt_12_vsEtaPhi = getFloatArray(_nBins_etaPhi_12, 0.); | |
712 | __s2PtN_12_vsEtaPhi = getFloatArray(_nBins_etaPhi_12, 0.); | |
713 | __s2NPt_12_vsEtaPhi = getFloatArray(_nBins_etaPhi_12, 0.); | |
714 | ||
715 | // Setup all the labels needed. | |
716 | ||
717 | part_1_Name = "_1"; | |
718 | part_2_Name = "_2"; | |
719 | pair_12_Name = "_12"; | |
720 | ||
721 | n1Name = "n1"; | |
722 | n2Name = "n2"; | |
723 | n1NwName = "n1Nw"; | |
724 | n2NwName = "n2Nw"; | |
725 | r1Name = "r1"; | |
726 | r2Name = "r2"; | |
727 | r3Name = "r3"; | |
728 | r2r1Name = "r2r1"; | |
729 | c2Name = "c2"; | |
730 | c3Name = "c3"; | |
731 | d3Name = "d3"; | |
732 | p3Name = "p3"; | |
733 | cName = "sean"; | |
734 | ||
735 | intR2Name = "intR2"; | |
736 | binCorrName = "binCorr"; | |
737 | intBinCorrName = "intBinCorr"; | |
738 | ||
739 | avgName = "avg"; | |
740 | sumName = "sum"; | |
741 | s1ptName = "sumPt"; | |
742 | s1ptNwName = "sumPtNw"; | |
743 | s1DptName = "sumDpt"; | |
744 | s2PtPtName = "sumPtPt"; | |
745 | s2PtPtNwName = "sumPtPtNw"; | |
746 | s2DptDptName = "sumDptDpt"; | |
747 | s2NPtName = "sumNPt"; | |
748 | s2NPtNwName = "sumNPtNw"; | |
749 | s2PtNName = "sumPtN"; | |
750 | s2NPtNwName = "sumNPtNw"; | |
751 | s2PtNNwName = "sumPtNNw"; | |
752 | ptName = "avgPt"; | |
753 | ptptName = "avgPtPt"; | |
754 | pt1pt1Name = "avgPtavgPt"; | |
755 | DptName = "avgDpt"; | |
756 | DptDptName = "avgDptDpt"; | |
757 | RDptDptName = "relDptDpt"; // ratio of avgDptDpt by avgPt*avgPt | |
758 | nPtName = "avgNpt"; | |
759 | ptNName = "avgPtN"; | |
760 | seanName = "seanC"; | |
761 | ||
762 | _title_counts = "yield"; | |
763 | ||
764 | _title_m0 = "M_{0}"; | |
765 | _title_m1 = "M_{1}"; | |
766 | _title_m2 = "M_{2}"; | |
767 | _title_m3 = "M_{3}"; | |
768 | _title_m4 = "V0Centrality"; | |
769 | _title_m5 = "TrkCentrality"; | |
770 | _title_m6 = "SpdCentrality"; | |
771 | ||
772 | _title_eta_1 = "#eta_{1}"; | |
773 | _title_phi_1 = "#varphi_{1} (radian)"; | |
774 | _title_etaPhi_1 = "#eta_{1}#times#varphi_{1}"; | |
775 | _title_pt_1 = "p_{t,1} (GeV/c)"; | |
776 | _title_n_1 = "n_{1}"; | |
777 | _title_SumPt_1 = "#Sigma p_{t,1} (GeV/c)"; | |
778 | _title_AvgPt_1 = "#LT p_{t,1} #GT (GeV/c)"; | |
779 | _title_AvgN_1 = "#LT n_{1} #GT"; | |
780 | _title_AvgSumPt_1 = "#LT #Sigma p_{t,1} #GT (GeV/c)"; | |
781 | ||
782 | _title_eta_2 = "#eta_{2}"; | |
783 | _title_phi_2 = "#varphi_{2} (radian)"; | |
784 | _title_etaPhi_2 = "#eta_{2}#times#varphi_{2}"; | |
785 | _title_pt_2 = "p_{t,2} (GeV/c)"; | |
786 | _title_n_2 = "n_{2}"; | |
787 | _title_SumPt_2 = "#Sigma p_{t,1} (GeV/c)"; | |
788 | _title_AvgPt_2 = "#LT p_{t,2} #GT (GeV/c)"; | |
789 | _title_AvgN_2 = "#LT n_{2} #GT"; | |
790 | _title_AvgSumPt_2 = "#LT #Sigma p_{t,2} #GT (GeV/c)"; | |
791 | ||
792 | _title_etaPhi_12 = "#eta_{1}#times#varphi_{1}#times#eta_{2}#times#varphi_{2}"; | |
793 | ||
794 | _title_AvgN2_12 = "#LT n_{2} #GT";; | |
795 | _title_AvgSumPtPt_12 = "#LT #Sigma p_{t,1}p_{t,2} #GT";; | |
796 | _title_AvgSumPtN_12 = "#LT #Sigma p_{t,1}N #GT";; | |
797 | _title_AvgNSumPt_12 = "#LT N#Sigma p_{t,2} #GT";; | |
798 | ||
799 | ||
800 | vsZ = "_vsZ"; | |
801 | vsM = "_vsM"; | |
802 | vsPt = "_vsPt"; | |
803 | vsPhi = "_vsPhi"; | |
804 | vsEta = "_vsEta"; | |
805 | vsEtaPhi = "_vsEtaPhi"; | |
806 | vsPtVsPt = "_vsPtVsPt"; | |
807 | ||
808 | ||
809 | if (_useWeights) | |
810 | { | |
811 | int iZ, iEtaPhi, iPt; | |
812 | int iZ1,iEtaPhi1,iPt1; | |
813 | int a, b; | |
814 | if (_weight_1) | |
815 | { | |
816 | _correctionWeight_1 = new float[_nBins_vertexZ*_nBins_etaPhi_1*_nBins_pt_1]; | |
817 | a = _nBins_pt_1; | |
818 | b = _nBins_etaPhi_1*_nBins_pt_1; | |
819 | for (iZ=0,iZ1=1; iZ<_nBins_vertexZ; iZ++, iZ1++) | |
820 | { | |
821 | for (iEtaPhi=0,iEtaPhi1=1; iEtaPhi<_nBins_etaPhi_1; iEtaPhi++, iEtaPhi1++) | |
822 | { | |
823 | for (iPt=0,iPt1=1; iPt<_nBins_pt_1; iPt++, iPt1++) | |
824 | { | |
825 | _correctionWeight_1[iZ*b+iEtaPhi*a+iPt] = _weight_1->GetBinContent(iZ1,iEtaPhi1,iPt1); | |
826 | } | |
827 | } | |
828 | } | |
829 | } // _weight_1 | |
830 | else | |
831 | { | |
832 | AliError("AliAnalysisTaskDptDptQA:: _weight_1 is a null pointer."); | |
833 | return; | |
834 | } | |
835 | if (!_sameFilter) | |
836 | { | |
837 | if (_weight_2) | |
838 | { | |
839 | _correctionWeight_2 = new float[_nBins_vertexZ*_nBins_etaPhi_2*_nBins_pt_2]; | |
840 | a = _nBins_pt_2; | |
841 | b = _nBins_etaPhi_2*_nBins_pt_2; | |
842 | for (iZ=0,iZ1=1; iZ<_nBins_vertexZ; iZ++, iZ1++) | |
843 | { | |
844 | for (iEtaPhi=0,iEtaPhi1=1; iEtaPhi<_nBins_etaPhi_2; iEtaPhi++, iEtaPhi1++) | |
845 | { | |
846 | for (iPt=0,iPt1=1; iPt<_nBins_pt_2; iPt++, iPt1++) | |
847 | { | |
848 | _correctionWeight_2[iZ*b+iEtaPhi*a+iPt] = _weight_2->GetBinContent(iZ1,iEtaPhi1,iPt1); | |
849 | } | |
850 | } | |
851 | } | |
852 | } // _weight_2 | |
853 | else | |
854 | { | |
855 | AliError("AliAnalysisTaskDptDptQA:: _weight_1 is a null pointer."); | |
856 | return; | |
857 | } | |
858 | } | |
859 | } | |
860 | ||
861 | createHistograms(); | |
862 | PostData(0,_outputHistoList); | |
863 | ||
864 | //cout<< "AliAnalysisTaskDptDptQA::CreateOutputObjects() DONE " << endl; | |
865 | ||
866 | } | |
867 | ||
868 | void AliAnalysisTaskDptDptQA::createHistograms() | |
869 | { | |
870 | AliInfo(" AliAnalysisTaskDptDptQA::createHistoHistograms() Creating Event Histos"); | |
871 | TString name; | |
872 | ||
873 | name = "eventAccounting"; | |
874 | ||
875 | _eventAccounting = createHisto1D(name,name,10, -0.5, 9.5, "event Code", _title_counts); | |
876 | ||
877 | name = "m0"; _m0 = createHisto1D(name,name,_nBins_M1, _min_M1, _max_M1, _title_m0, _title_counts); | |
878 | name = "m1"; _m1 = createHisto1D(name,name,_nBins_M1, _min_M1, _max_M1, _title_m1, _title_counts); | |
879 | name = "m2"; _m2 = createHisto1D(name,name,_nBins_M2, _min_M2, _max_M2, _title_m2, _title_counts); | |
880 | name = "m3"; _m3 = createHisto1D(name,name,_nBins_M3, _min_M3, _max_M3, _title_m3, _title_counts); | |
881 | name = "m4"; _m4 = createHisto1D(name,name,_nBins_M4, _min_M4, _max_M4, _title_m4, _title_counts); | |
882 | name = "m5"; _m5 = createHisto1D(name,name,_nBins_M5, _min_M5, _max_M5, _title_m5, _title_counts); | |
883 | name = "m6"; _m6 = createHisto1D(name,name,_nBins_M6, _min_M6, _max_M6, _title_m6, _title_counts); | |
884 | name = "zV"; _vertexZ = createHisto1D(name,name,100, -10, 10, "z-Vertex (cm)", _title_counts); | |
885 | ||
886 | ||
887 | name = "Eta"; _etadis = createHisto1F(name,name, 200, -1.0, 1.0, "#eta","counts"); | |
888 | name = "Phi"; _phidis = createHisto1F(name,name, 360, 0.0, 6.4, "#phi","counts"); | |
889 | name = "DCAz"; _dcaz = createHisto1F(name,name, 500, -5.0, 5.0, "dcaZ","counts"); | |
890 | name = "DCAxy"; _dcaxy = createHisto1F(name,name, 500, -5.0, 5.0, "dcaXY","counts"); | |
891 | name = "pTspectra"; _spectra = createHisto1F(name,name, 300, 0.1, 2.5, "pT","counts"); | |
892 | ||
893 | //name = "Nclus1"; _Ncluster1 = createHisto1F(name,name, 200, 0, 200, "Ncluster1","counts"); | |
894 | //name = "Nclus2"; _Ncluster2 = createHisto1F(name,name, 200, 0, 200, "Ncluster2","counts"); | |
895 | ||
896 | if (_singlesOnly) | |
897 | { | |
898 | 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); | |
899 | 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); | |
900 | ||
901 | 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); | |
902 | 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); | |
903 | ||
904 | } | |
905 | else | |
906 | { | |
907 | 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); | |
908 | 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); | |
909 | name = n1Name+part_1_Name+vsM; _n1_1_vsM = createProfile(name,name, _nBins_M4, _min_M4, _max_M4, _title_m4, _title_AvgN_1); | |
910 | name = s1ptName+part_1_Name+vsM; _s1pt_1_vsM = createProfile(name,name, _nBins_M4, _min_M4, _max_M4, _title_m4, _title_AvgSumPt_1); | |
911 | name = n1NwName+part_1_Name+vsM; _n1Nw_1_vsM = createProfile(name,name, _nBins_M4, _min_M4, _max_M4, _title_m4, _title_AvgN_1); | |
912 | name = s1ptNwName+part_1_Name+vsM; _s1ptNw_1_vsM = createProfile(name,name, _nBins_M4, _min_M4, _max_M4, _title_m4, _title_AvgSumPt_1); | |
913 | ||
914 | 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); | |
915 | 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); | |
916 | name = n1Name+part_2_Name + vsM; _n1_2_vsM = createProfile(name,name, _nBins_M4, _min_M4, _max_M4, _title_m4, _title_AvgN_2); | |
917 | name = s1ptName+part_2_Name + vsM; _s1pt_2_vsM = createProfile(name,name, _nBins_M4, _min_M4, _max_M4, _title_m4, _title_AvgSumPt_2); | |
918 | name = n1NwName+part_2_Name+vsM; _n1Nw_2_vsM = createProfile(name,name, _nBins_M4, _min_M4, _max_M4, _title_m4, _title_AvgN_1); | |
919 | name = s1ptNwName+part_2_Name+vsM; _s1ptNw_2_vsM = createProfile(name,name, _nBins_M4, _min_M4, _max_M4, _title_m4, _title_AvgSumPt_1); | |
920 | ||
921 | 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); | |
922 | 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); | |
923 | 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); | |
924 | 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); | |
925 | 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); | |
926 | ||
927 | name = n2Name+pair_12_Name + vsM; _n2_12_vsM = createProfile(name,name, _nBins_M4, _min_M4, _max_M4, _title_m4, _title_AvgN2_12); | |
928 | name = s2PtPtName+pair_12_Name + vsM; _s2PtPt_12_vsM = createProfile(name,name, _nBins_M4, _min_M4, _max_M4, _title_m4, _title_AvgSumPtPt_12); | |
929 | name = s2PtNName+pair_12_Name + vsM; _s2PtN_12_vsM = createProfile(name,name, _nBins_M4, _min_M4, _max_M4, _title_m4, _title_AvgSumPtN_12); | |
930 | name = s2NPtName+pair_12_Name + vsM; _s2NPt_12_vsM = createProfile(name,name, _nBins_M4, _min_M4, _max_M4, _title_m4, _title_AvgNSumPt_12); | |
931 | ||
932 | name = n2NwName+pair_12_Name + vsM; _n2Nw_12_vsM = createProfile(name,name, _nBins_M4, _min_M4, _max_M4, _title_m4, _title_AvgN2_12); | |
933 | name = s2PtPtNwName+pair_12_Name + vsM; _s2PtPtNw_12_vsM = createProfile(name,name, _nBins_M4, _min_M4, _max_M4, _title_m4, _title_AvgSumPtPt_12); | |
934 | name = s2PtNNwName+pair_12_Name + vsM; _s2PtNNw_12_vsM = createProfile(name,name, _nBins_M4, _min_M4, _max_M4, _title_m4, _title_AvgSumPtN_12); | |
935 | name = s2NPtNwName+pair_12_Name + vsM; _s2NPtNw_12_vsM = createProfile(name,name, _nBins_M4, _min_M4, _max_M4, _title_m4, _title_AvgNSumPt_12); | |
936 | ||
937 | name = "mInv"; _invMass = createHisto2F(name,name, 10, 0.0, 2.0, 200, 0.4, 0.6, "pT","InvMass","ptvsmass"); | |
938 | ||
939 | } | |
940 | ||
941 | AliInfo(" AliAnalysisTaskDptDptQA::createHistoHistograms() All Done"); | |
942 | } | |
943 | //-----------------------// | |
944 | ||
945 | void AliAnalysisTaskDptDptQA::finalizeHistograms() | |
946 | { | |
947 | ||
948 | AliInfo("AliAnalysisTaskDptDptQA::finalizeHistograms() starting"); | |
949 | AliInfo(Form("CorrelationAnalyzers::finalizeHistograms() _eventCount : %d",int(_eventCount))); | |
950 | ||
951 | AliInfo("AliAnalysisTaskDptDptQA::finalizeHistograms() Done "); | |
952 | } | |
953 | //--------------// | |
954 | ||
955 | ||
956 | void AliAnalysisTaskDptDptQA::UserExec(Option_t */*option*/) | |
957 | { | |
958 | ||
959 | int k1,k2; | |
960 | int charge; | |
961 | float q, phi, pt, eta, px, py, pz; | |
962 | //int ij; | |
963 | //int id_1, q_1, iPt_1; | |
964 | //float pt_1, px_1, py_1, pz_1, corr_1; | |
965 | //int id_2, q_2, iPt_2; | |
966 | //float pt_2, px_2, py_2, pz_2, corr_2; | |
967 | //float ptpt; | |
968 | int iVertex, iVertexP1, iVertexP2; | |
969 | //int iZEtaPhiPt; | |
970 | //float massElecSq = 1.94797849000000016e-02; | |
971 | //double b[2]; | |
972 | //double bCov[3]; | |
973 | const AliAODVertex* vertex; | |
974 | bool bitOK; | |
975 | ||
976 | AliAnalysisManager* manager = AliAnalysisManager::GetAnalysisManager(); | |
977 | if (!manager) { | |
978 | return; | |
979 | } | |
980 | AliAODInputHandler* inputHandler = dynamic_cast<AliAODInputHandler*> (manager->GetInputEventHandler()); | |
981 | if (!inputHandler) { | |
982 | return; | |
983 | } | |
984 | ||
985 | fAODEvent = dynamic_cast<AliAODEvent*>(InputEvent()); | |
986 | //AliAODEvent* fAODEvent = dynamic_cast<AliAODEvent*>(InputEvent()); | |
987 | ||
988 | if (!fAODEvent) | |
989 | { | |
990 | return; | |
991 | } | |
992 | fPIDResponse =inputHandler->GetPIDResponse(); | |
993 | if (!fPIDResponse){ | |
994 | AliFatal("This Task needs the PID response attached to the inputHandler"); | |
995 | return; | |
996 | } | |
997 | ||
998 | // count all events looked at here | |
999 | _eventCount++; | |
1000 | ||
1001 | if (_eventAccounting) | |
1002 | { | |
1003 | _eventAccounting->Fill(0);// count all calls to this function | |
1004 | } | |
1005 | else | |
1006 | { | |
1007 | ||
1008 | return; | |
1009 | } | |
1010 | ||
1011 | _eventAccounting->Fill(1);// count all calls to this function with a valid pointer | |
1012 | //reset single particle counters | |
1013 | k1 = k2 = 0; | |
1014 | __n1_1 = __n1_2 = __s1pt_1 = __s1pt_2 = __n1Nw_1 = __n1Nw_2 = __s1ptNw_1 = __s1ptNw_2 = 0; | |
1015 | ||
1016 | float v0Centr = -999.; | |
1017 | float v0ACentr = -999.; | |
1018 | float trkCentr = -999.; | |
1019 | float spdCentr = -999.; | |
1020 | ||
1021 | float vertexX = -999; | |
1022 | float vertexY = -999; | |
1023 | float vertexZ = -999; | |
1024 | //float vertexXY = -999; | |
1025 | // float dcaZ = -999; | |
1026 | //float dcaXY = -999; | |
1027 | float centrality = -999; | |
1028 | ||
1029 | float Kaon1Charge[50000]; | |
1030 | float Kaon1Px[50000]; | |
1031 | float Kaon1Py[50000]; | |
1032 | float Kaon1Pz[50000]; | |
1033 | float Kaon2Charge[50000]; | |
1034 | float Kaon2Px[50000]; | |
1035 | float Kaon2Py[50000]; | |
1036 | float Kaon2Pz[50000]; | |
1037 | ||
1038 | int nKaon1s = 0; | |
1039 | int nKaon2s = 0; | |
1040 | ||
1041 | //k1Mass = 0.139570; | |
1042 | //kMass = 0.139570; | |
1043 | ||
1044 | ||
1045 | if(fAODEvent) | |
1046 | { | |
1047 | //Centrality | |
1048 | AliCentrality* centralityObject = fAODEvent->GetHeader()->GetCentralityP(); | |
1049 | if (centralityObject) | |
1050 | { | |
1051 | //cout << "AliAnalysisTaskDptDptQA::UserExec(Option_t *option) - 6" << endl; | |
1052 | ||
1053 | v0Centr = centralityObject->GetCentralityPercentile("V0M"); | |
1054 | v0ACentr = centralityObject->GetCentralityPercentile("V0A"); | |
1055 | trkCentr = centralityObject->GetCentralityPercentile("TRK"); | |
1056 | spdCentr = centralityObject->GetCentralityPercentile("CL1"); | |
1057 | ||
1058 | } | |
1059 | ||
1060 | _nTracks =fAODEvent->GetNumberOfTracks();//NEW Test | |
1061 | ||
1062 | _mult3 = _nTracks; | |
1063 | _mult4 = v0Centr; | |
1064 | _mult4a = v0ACentr; | |
1065 | _mult5 = trkCentr; | |
1066 | _mult6 = spdCentr; | |
1067 | _field = fAODEvent->GetMagneticField(); | |
1068 | ||
1069 | //_centralityMethod | |
1070 | switch (_centralityMethod) | |
1071 | { | |
1072 | case 0: centrality = _mult0; break; | |
1073 | case 1: centrality = _mult1; break; | |
1074 | case 2: centrality = _mult2; break; | |
1075 | case 3: centrality = _mult3; break; | |
1076 | case 4: centrality = _mult4; break; | |
1077 | case 5: centrality = _mult5; break; | |
1078 | case 6: centrality = _mult6; break; | |
1079 | case 7: centrality = _mult4a; break; | |
1080 | } | |
1081 | ||
1082 | ||
1083 | if ( centrality < _centralityMin || centrality > _centralityMax ) | |
1084 | { | |
1085 | return; | |
1086 | } | |
1087 | _eventAccounting->Fill(2);// count all events with right centrality | |
1088 | ||
1089 | // filter on z and xy vertex | |
1090 | vertex = (AliAODVertex*) fAODEvent->GetPrimaryVertex(); | |
1091 | // Double_t V[2]; | |
1092 | //vertex->GetXYZ(V); | |
1093 | ||
1094 | if(vertex) | |
1095 | { | |
1096 | Double32_t fCov[6]; | |
1097 | vertex->GetCovarianceMatrix(fCov); | |
1098 | if(vertex->GetNContributors() > 0) | |
1099 | { | |
1100 | if(fCov[5] != 0) | |
1101 | { | |
1102 | vertexX = vertex->GetX(); | |
1103 | vertexY = vertex->GetY(); | |
1104 | vertexZ = vertex->GetZ(); | |
1105 | ||
1106 | if(TMath::Abs(vertexZ) > 10) | |
1107 | { | |
1108 | return; | |
1109 | } // Z-Vertex Cut | |
1110 | } | |
1111 | } | |
1112 | } | |
1113 | ||
1114 | _vertexZ->Fill(vertexZ); | |
1115 | ||
1116 | iVertex = int((vertexZ-_min_vertexZ)/_width_vertexZ); | |
1117 | iVertexP1 = iVertex*_nBins_etaPhiPt_1; | |
1118 | iVertexP2 = iVertex*_nBins_etaPhiPt_2; | |
1119 | if (iVertex<0 || iVertex>=_nBins_vertexZ) | |
1120 | { | |
1121 | AliError("AliAnalysisTaskDptDptQA::Exec(Option_t *option) iVertex<0 || iVertex>=_nBins_vertexZ "); | |
1122 | return; | |
1123 | } | |
1124 | _eventAccounting->Fill(3);// count all calls to this function with a valid pointer | |
1125 | //====================== | |
1126 | ||
1127 | //********************************************************* | |
1128 | TExMap *trackMap = new TExMap();//Mapping matrix---- | |
1129 | //1st loop track | |
1130 | for(Int_t i = 0; i < _nTracks; i++) | |
1131 | { | |
1132 | AliAODTrack* aodTrack = dynamic_cast<AliAODTrack *>(fAODEvent->GetTrack(i)); | |
1133 | if(!aodTrack) { | |
1134 | AliError(Form("ERROR: Could not retrieve AODtrack %d",i)); | |
1135 | continue; | |
1136 | } | |
1137 | Int_t gID = aodTrack->GetID(); | |
1138 | if (aodTrack->TestFilterBit(1)) trackMap->Add(gID, i);//Global tracks | |
1139 | } | |
1140 | ||
1141 | AliAODTrack* newAodTrack; | |
1142 | ||
1143 | //Track Loop starts here | |
1144 | for (int iTrack=0; iTrack< _nTracks; iTrack++) | |
1145 | { | |
1146 | AliAODTrack* t = dynamic_cast<AliAODTrack *>(fAODEvent->GetTrack(iTrack)); | |
1147 | if (!t) { | |
1148 | AliError(Form("Could not receive track %d", iTrack)); | |
1149 | continue; | |
1150 | } | |
1151 | ||
1152 | bitOK = t->TestFilterBit(_trackFilterBit); | |
1153 | if (!bitOK) continue; //128bit or 272bit | |
1154 | ||
1155 | Int_t gID = t->GetID(); | |
1156 | newAodTrack = gID >= 0 ?t : fAODEvent->GetTrack(trackMap->GetValue(-1-gID)); | |
1157 | ||
1158 | q = t->Charge(); | |
1159 | charge = int(q); | |
1160 | phi = t->Phi(); | |
1161 | pt = t->Pt(); | |
1162 | px = t->Px(); | |
1163 | py = t->Py(); | |
1164 | pz = t->Pz(); | |
1165 | eta = t->Eta(); | |
1166 | //dcaXY = t->DCA(); | |
1167 | //dcaZ = t->ZAtDCA(); | |
1168 | ||
1169 | TVector3 mom(px, py, pz); | |
1170 | ||
1171 | //Double_t nsigmaelectron = TMath::Abs(fPIDResponse->NumberOfSigmasTPC(newAodTrack,(AliPID::EParticleType)AliPID::kElectron)); | |
1172 | Double_t nsigmapion = TMath::Abs(fPIDResponse->NumberOfSigmasTPC(newAodTrack,(AliPID::EParticleType)AliPID::kPion)); | |
1173 | //Double_t nsigmakaon = TMath::Abs(fPIDResponse->NumberOfSigmasTPC(newAodTrack,(AliPID::EParticleType)AliPID::kKaon)); | |
1174 | //Double_t nsigmaproton = TMath::Abs(fPIDResponse->NumberOfSigmasTPC(newAodTrack,(AliPID::EParticleType)AliPID::kProton)); | |
1175 | ||
1176 | if(charge == 0) continue; | |
1177 | ||
1178 | // Kinematics cuts used | |
1179 | if( pt < _min_pt_1 || pt > _max_pt_1) continue; | |
1180 | if( eta < _min_eta_1 || eta > _max_eta_1) continue; | |
1181 | ||
1182 | Double_t pos[3]; | |
1183 | newAodTrack->GetXYZ(pos); | |
1184 | ||
1185 | Double_t DCAX = pos[0] - vertexX; | |
1186 | Double_t DCAY = pos[1] - vertexY; | |
1187 | Double_t DCAZ = pos[2] - vertexZ; | |
1188 | ||
1189 | Double_t DCAXY = TMath::Sqrt((DCAX*DCAX) + (DCAY*DCAY)); | |
1190 | ||
1191 | if (DCAZ < _dcaZMin || | |
1192 | DCAZ > _dcaZMax || | |
1193 | DCAXY > _dcaXYMax ) continue; | |
1194 | ||
1195 | //==== QA =========================== | |
1196 | _dcaz->Fill(DCAZ); | |
1197 | _dcaxy->Fill(DCAXY); | |
1198 | _etadis->Fill(eta); | |
1199 | _phidis->Fill(phi); | |
1200 | _spectra->Fill(pt); | |
1201 | //=================================== | |
1202 | ||
1203 | if(TMath::Abs(nsigmapion) < fNSigmaCut && charge == -1) { | |
1204 | Kaon1Charge[nKaon1s] = q; | |
1205 | Kaon1Px[nKaon1s] = mom.X(); | |
1206 | Kaon1Py[nKaon1s] = mom.Y(); | |
1207 | Kaon1Pz[nKaon1s] = mom.Z(); | |
1208 | nKaon1s++; | |
1209 | ||
1210 | } | |
1211 | if(TMath::Abs(nsigmapion) < fNSigmaCut && charge == 1) { | |
1212 | Kaon2Charge[nKaon2s] = q; | |
1213 | Kaon2Px[nKaon1s] = mom.X(); | |
1214 | Kaon2Py[nKaon1s] = mom.Y(); | |
1215 | Kaon2Pz[nKaon1s] = mom.Z(); | |
1216 | nKaon2s++; | |
1217 | ||
1218 | } | |
1219 | ||
1220 | TLorentzVector pion1(0,0,0,0); | |
1221 | TLorentzVector pion2(0,0,0,0); | |
1222 | TLorentzVector Kaon(0,0,0,0); | |
1223 | ||
1224 | for(int i=0; i<nKaon1s; i++) | |
1225 | { | |
1226 | pion1.SetXYZM(Kaon1Px[i],Kaon1Py[i],Kaon1Pz[i],0.139570); | |
1227 | for(int j=0; j<nKaon2s; j++) | |
1228 | { | |
1229 | pion2.SetXYZM(Kaon2Px[j],Kaon2Py[j],Kaon2Pz[j],0.139570); | |
1230 | Kaon = pion1 + pion2; | |
1231 | float rapidity = Kaon.Rapidity(); | |
1232 | float pairpt = Kaon.Pt(); | |
1233 | if( rapidity < -0.50 || rapidity > 0.50 ) continue; | |
1234 | _invMass->Fill(pairpt, Kaon.M()); | |
1235 | } | |
1236 | } | |
1237 | ||
1238 | } //iTrack | |
1239 | } //aod | |
1240 | } | |
1241 | ||
1242 | void AliAnalysisTaskDptDptQA::FinishTaskOutput() | |
1243 | { | |
1244 | AliInfo("AliAnalysisTaskDptDptQA::FinishTaskOutput() Starting."); | |
1245 | Printf("= 0 ===================================================================="); | |
1246 | finalizeHistograms(); | |
1247 | AliInfo("= 1 ===================================================================="); | |
1248 | PostData(0,_outputHistoList); | |
1249 | AliInfo("= 2 ===================================================================="); | |
1250 | AliInfo("AliAnalysisTaskDptDptQA::FinishTaskOutput() Done."); | |
1251 | } | |
1252 | ||
1253 | void AliAnalysisTaskDptDptQA::Terminate(Option_t* /*option*/) | |
1254 | { | |
1255 | AliInfo("AliAnalysisTaskDptDptQA::Terminate() Starting/Done."); | |
1256 | } | |
1257 | ||
1258 | ||
1259 | //Tools | |
1260 | //=================================================================================================== | |
1261 | void AliAnalysisTaskDptDptQA::fillHistoWithArray(TH1 * h, float * array, int size) | |
1262 | { | |
1263 | int i, i1; | |
1264 | float v1, ev1, v2, ev2, sum, esum; | |
1265 | for (i=0, i1=1; i<size; ++i,++i1) | |
1266 | { | |
1267 | v1 = array[i]; ev1 = sqrt(v1); | |
1268 | v2 = h->GetBinContent(i1); | |
1269 | ev2 = h->GetBinError(i1); | |
1270 | sum = v1 + v2; | |
1271 | esum = sqrt(ev1*ev1+ev2*ev2); | |
1272 | h->SetBinContent(i1,sum); | |
1273 | h->SetBinError(i1,esum); | |
1274 | } | |
1275 | } | |
1276 | ||
1277 | void AliAnalysisTaskDptDptQA::fillHistoWithArray(TH2 * h, float * array, int size1, int size2) | |
1278 | { | |
1279 | int i, i1; | |
1280 | int j, j1; | |
1281 | float v1, ev1, v2, ev2, sum, esum; | |
1282 | for (i=0, i1=1; i<size1; ++i,++i1) | |
1283 | { | |
1284 | for (j=0, j1=1; j<size2; ++j,++j1) | |
1285 | { | |
1286 | v1 = array[i*size2+j]; ev1 = sqrt(v1); | |
1287 | v2 = h->GetBinContent(i1,j1); | |
1288 | ev2 = h->GetBinError(i1,j1); | |
1289 | sum = v1 + v2; | |
1290 | esum = sqrt(ev1*ev1+ev2*ev2); | |
1291 | h->SetBinContent(i1,j1,sum); | |
1292 | h->SetBinError(i1,j1,esum); | |
1293 | } | |
1294 | } | |
1295 | } | |
1296 | ||
1297 | void AliAnalysisTaskDptDptQA::fillHistoWithArray(TH3 * h, float * array, int size1, int size2, int size3) | |
1298 | { | |
1299 | int i, i1; | |
1300 | int j, j1; | |
1301 | int k, k1; | |
1302 | float v1, ev1, v2, ev2, sum, esum; | |
1303 | int size23 = size2*size3; | |
1304 | for (i=0, i1=1; i<size1; ++i,++i1) | |
1305 | { | |
1306 | for (j=0, j1=1; j<size2; ++j,++j1) | |
1307 | { | |
1308 | for (k=0, k1=1; k<size3; ++k,++k1) | |
1309 | { | |
1310 | v1 = array[i*size23+j*size3+k]; ev1 = sqrt(v1); | |
1311 | v2 = h->GetBinContent(i1,j1,k1); | |
1312 | ev2 = h->GetBinError(i1,j1,k1); | |
1313 | sum = v1 + v2; | |
1314 | esum = sqrt(ev1*ev1+ev2*ev2); | |
1315 | h->SetBinContent(i1,j1,k1,sum); | |
1316 | h->SetBinError(i1,j1,k1,esum); | |
1317 | } | |
1318 | } | |
1319 | } | |
1320 | } | |
1321 | ||
1322 | void AliAnalysisTaskDptDptQA::fillHistoWithArray(TH1 * h, double * array, int size) | |
1323 | { | |
1324 | int i, i1; | |
1325 | double v1, ev1, v2, ev2, sum, esum; | |
1326 | for (i=0, i1=1; i<size; ++i,++i1) | |
1327 | { | |
1328 | v1 = array[i]; ev1 = sqrt(v1); | |
1329 | v2 = h->GetBinContent(i1); | |
1330 | ev2 = h->GetBinError(i1); | |
1331 | sum = v1 + v2; | |
1332 | esum = sqrt(ev1*ev1+ev2*ev2); | |
1333 | h->SetBinContent(i1,sum); | |
1334 | h->SetBinError(i1,esum); | |
1335 | } | |
1336 | } | |
1337 | ||
1338 | void AliAnalysisTaskDptDptQA::fillHistoWithArray(TH2 * h, double * array, int size1, int size2) | |
1339 | { | |
1340 | int i, i1; | |
1341 | int j, j1; | |
1342 | double v1, ev1, v2, ev2, sum, esum; | |
1343 | for (i=0, i1=1; i<size1; ++i,++i1) | |
1344 | { | |
1345 | for (j=0, j1=1; j<size2; ++j,++j1) | |
1346 | { | |
1347 | v1 = array[i*size2+j]; ev1 = sqrt(v1); | |
1348 | v2 = h->GetBinContent(i1,j1); | |
1349 | ev2 = h->GetBinError(i1,j1); | |
1350 | sum = v1 + v2; | |
1351 | esum = sqrt(ev1*ev1+ev2*ev2); | |
1352 | h->SetBinContent(i1,j1,sum); | |
1353 | h->SetBinError(i1,j1,esum); | |
1354 | } | |
1355 | } | |
1356 | } | |
1357 | ||
1358 | void AliAnalysisTaskDptDptQA::fillHistoWithArray(TH3 * h, double * array, int size1, int size2, int size3) | |
1359 | { | |
1360 | int i, i1; | |
1361 | int j, j1; | |
1362 | int k, k1; | |
1363 | double v1, ev1, v2, ev2, sum, esum; | |
1364 | int size23 = size2*size3; | |
1365 | for (i=0, i1=1; i<size1; ++i,++i1) | |
1366 | { | |
1367 | for (j=0, j1=1; j<size2; ++j,++j1) | |
1368 | { | |
1369 | for (k=0, k1=1; k<size3; ++k,++k1) | |
1370 | { | |
1371 | v1 = array[i*size23+j*size3+k]; ev1 = sqrt(v1); | |
1372 | v2 = h->GetBinContent(i1,j1,k1); | |
1373 | ev2 = h->GetBinError(i1,j1,k1); | |
1374 | sum = v1 + v2; | |
1375 | esum = sqrt(ev1*ev1+ev2*ev2); | |
1376 | h->SetBinContent(i1,j1,k1,sum); | |
1377 | h->SetBinError(i1,j1,k1,esum); | |
1378 | } | |
1379 | } | |
1380 | } | |
1381 | } | |
1382 | ||
1383 | //________________________________________________________________________ | |
1384 | double * AliAnalysisTaskDptDptQA::getDoubleArray(int size, double v) | |
1385 | { | |
1386 | /// Allocate an array of type double with n values | |
1387 | /// Initialize the array to the given value | |
1388 | double * array = new double [size]; | |
1389 | for (int i=0;i<size;++i) array[i]=v; | |
1390 | return array; | |
1391 | } | |
1392 | ||
1393 | //________________________________________________________________________ | |
1394 | float * AliAnalysisTaskDptDptQA::getFloatArray(int size, float v) | |
1395 | { | |
1396 | /// Allocate an array of type float with n values | |
1397 | /// Initialize the array to the given value | |
1398 | float * array = new float [size]; | |
1399 | for (int i=0;i<size;++i) array[i]=v; | |
1400 | return array; | |
1401 | } | |
1402 | ||
1403 | ||
1404 | //________________________________________________________________________ | |
1405 | TH1D * AliAnalysisTaskDptDptQA::createHisto1D(const TString & name, const TString & title, | |
1406 | int n, double xMin, double xMax, | |
1407 | const TString & xTitle, const TString & yTitle) | |
1408 | { | |
1409 | //CreateHisto new 1D historgram | |
1410 | AliInfo(Form("createHisto 1D histo %s nBins: %d xMin: %f xMax: %f",name.Data(),n,xMin,xMax)); | |
1411 | TH1D * h = new TH1D(name,title,n,xMin,xMax); | |
1412 | h->GetXaxis()->SetTitle(xTitle); | |
1413 | h->GetYaxis()->SetTitle(yTitle); | |
1414 | addToList(h); | |
1415 | return h; | |
1416 | } | |
1417 | ||
1418 | ||
1419 | //________________________________________________________________________ | |
1420 | TH1D * AliAnalysisTaskDptDptQA::createHisto1D(const TString & name, const TString & title, | |
1421 | int n, double * bins, | |
1422 | const TString & xTitle, const TString & yTitle) | |
1423 | { | |
1424 | AliInfo(Form("createHisto 1D histo %s with %d non uniform nBins",name.Data(),n)); | |
1425 | TH1D * h = new TH1D(name,title,n,bins); | |
1426 | h->GetXaxis()->SetTitle(xTitle); | |
1427 | h->GetYaxis()->SetTitle(yTitle); | |
1428 | addToList(h); | |
1429 | return h; | |
1430 | } | |
1431 | ||
1432 | ||
1433 | //________________________________________________________________________ | |
1434 | TH2D * AliAnalysisTaskDptDptQA::createHisto2D(const TString & name, const TString & title, | |
1435 | int nx, double xMin, double xMax, int ny, double yMin, double yMax, | |
1436 | const TString & xTitle, const TString & yTitle, const TString & zTitle) | |
1437 | { | |
1438 | 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)); | |
1439 | TH2D * h = new TH2D(name,title,nx,xMin,xMax,ny,yMin,yMax); | |
1440 | h->GetXaxis()->SetTitle(xTitle); | |
1441 | h->GetYaxis()->SetTitle(yTitle); | |
1442 | h->GetZaxis()->SetTitle(zTitle); | |
1443 | addToList(h); | |
1444 | return h; | |
1445 | } | |
1446 | ||
1447 | //________________________________________________________________________ | |
1448 | TH2D * AliAnalysisTaskDptDptQA::createHisto2D(const TString & name, const TString & title, | |
1449 | int nx, double* xbins, int ny, double yMin, double yMax, | |
1450 | const TString & xTitle, const TString & yTitle, const TString & zTitle) | |
1451 | { | |
1452 | AliInfo(Form("createHisto 2D histo %s with %d non uniform nBins",name.Data(),nx)); | |
1453 | TH2D * h; | |
1454 | h = new TH2D(name,title,nx,xbins,ny,yMin,yMax); | |
1455 | h->GetXaxis()->SetTitle(xTitle); | |
1456 | h->GetYaxis()->SetTitle(yTitle); | |
1457 | h->GetZaxis()->SetTitle(zTitle); | |
1458 | addToList(h); | |
1459 | return h; | |
1460 | } | |
1461 | ||
1462 | //// F ///// | |
1463 | //________________________________________________________________________ | |
1464 | TH1F * AliAnalysisTaskDptDptQA::createHisto1F(const TString & name, const TString & title, | |
1465 | int n, double xMin, double xMax, | |
1466 | const TString & xTitle, const TString & yTitle) | |
1467 | { | |
1468 | //CreateHisto new 1D historgram | |
1469 | AliInfo(Form("createHisto 1D histo %s nBins: %d xMin: %f xMax: %f",name.Data(),n,xMin,xMax)); | |
1470 | TH1F * h = new TH1F(name,title,n,xMin,xMax); | |
1471 | h->GetXaxis()->SetTitle(xTitle); | |
1472 | h->GetYaxis()->SetTitle(yTitle); | |
1473 | addToList(h); | |
1474 | return h; | |
1475 | } | |
1476 | ||
1477 | ||
1478 | //________________________________________________________________________ | |
1479 | TH1F * AliAnalysisTaskDptDptQA::createHisto1F(const TString & name, const TString & title, | |
1480 | int n, double * bins, | |
1481 | const TString & xTitle, const TString & yTitle) | |
1482 | { | |
1483 | AliInfo(Form("createHisto 1D histo %s with %d non uniform nBins",name.Data(),n)); | |
1484 | TH1F * h = new TH1F(name,title,n,bins); | |
1485 | h->GetXaxis()->SetTitle(xTitle); | |
1486 | h->GetYaxis()->SetTitle(yTitle); | |
1487 | addToList(h); | |
1488 | return h; | |
1489 | } | |
1490 | ||
1491 | ||
1492 | //________________________________________________________________________ | |
1493 | TH2F * AliAnalysisTaskDptDptQA::createHisto2F(const TString & name, const TString & title, | |
1494 | int nx, double xMin, double xMax, int ny, double yMin, double yMax, | |
1495 | const TString & xTitle, const TString & yTitle, const TString & zTitle) | |
1496 | { | |
1497 | 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)); | |
1498 | TH2F * h = new TH2F(name,title,nx,xMin,xMax,ny,yMin,yMax); | |
1499 | h->GetXaxis()->SetTitle(xTitle); | |
1500 | h->GetYaxis()->SetTitle(yTitle); | |
1501 | h->GetZaxis()->SetTitle(zTitle); | |
1502 | addToList(h); | |
1503 | return h; | |
1504 | } | |
1505 | ||
1506 | //________________________________________________________________________ | |
1507 | TH2F * AliAnalysisTaskDptDptQA::createHisto2F(const TString & name, const TString & title, | |
1508 | int nx, double* xbins, int ny, double yMin, double yMax, | |
1509 | const TString & xTitle, const TString & yTitle, const TString & zTitle) | |
1510 | { | |
1511 | AliInfo(Form("createHisto 2D histo %s with %d non uniform nBins",name.Data(),nx)); | |
1512 | TH2F * h; | |
1513 | h = new TH2F(name,title,nx,xbins,ny,yMin,yMax); | |
1514 | h->GetXaxis()->SetTitle(xTitle); | |
1515 | h->GetYaxis()->SetTitle(yTitle); | |
1516 | h->GetZaxis()->SetTitle(zTitle); | |
1517 | addToList(h); | |
1518 | return h; | |
1519 | } | |
1520 | ||
1521 | ||
1522 | //________________________________________________________________________ | |
1523 | TH3F * AliAnalysisTaskDptDptQA::createHisto3F(const TString & name, const TString & title, | |
1524 | int nx, double xMin, double xMax, | |
1525 | int ny, double yMin, double yMax, | |
1526 | int nz, double zMin, double zMax, | |
1527 | const TString & xTitle, const TString & yTitle, const TString & zTitle) | |
1528 | { | |
1529 | 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)); | |
1530 | TH3F * h = new TH3F(name,title,nx,xMin,xMax,ny,yMin,yMax,nz,zMin,zMax); | |
1531 | h->GetXaxis()->SetTitle(xTitle); | |
1532 | h->GetYaxis()->SetTitle(yTitle); | |
1533 | h->GetZaxis()->SetTitle(zTitle); | |
1534 | addToList(h); | |
1535 | return h; | |
1536 | } | |
1537 | ||
1538 | ||
1539 | //________________________________________________________________________ | |
1540 | TProfile * AliAnalysisTaskDptDptQA::createProfile(const TString & name, const TString & description, | |
1541 | int nx,double xMin,double xMax, | |
1542 | const TString & xTitle, const TString & yTitle) | |
1543 | { | |
1544 | AliInfo(Form("createHisto 1D profile %s nBins: %d xMin: %f10.4 xMax: %f10.4",name.Data(),nx,xMin,xMax)); | |
1545 | TProfile * h = new TProfile(name,description,nx,xMin,xMax); | |
1546 | h->GetXaxis()->SetTitle(xTitle); | |
1547 | h->GetYaxis()->SetTitle(yTitle); | |
1548 | addToList(h); | |
1549 | return h; | |
1550 | } | |
1551 | ||
1552 | //________________________________________________________________________ | |
1553 | TProfile * AliAnalysisTaskDptDptQA::createProfile(const TString & name,const TString & description, | |
1554 | int nx, double* bins, | |
1555 | const TString & xTitle, const TString & yTitle) | |
1556 | { | |
1557 | AliInfo(Form("createHisto 1D profile %s with %d non uniform bins",name.Data(),nx)); | |
1558 | TProfile * h = new TProfile(name,description,nx,bins); | |
1559 | h->GetXaxis()->SetTitle(xTitle); | |
1560 | h->GetYaxis()->SetTitle(yTitle); | |
1561 | addToList(h); | |
1562 | return h; | |
1563 | } | |
1564 | ||
1565 | ||
1566 | void AliAnalysisTaskDptDptQA::addToList(TH1 *h) | |
1567 | { | |
1568 | if (_outputHistoList) | |
1569 | { | |
1570 | _outputHistoList->Add(h); | |
1571 | } | |
1572 | else | |
1573 | AliInfo("addToList(TH1 *h) _outputHistoList is null!!!!! Should abort ship"); | |
1574 | ||
1575 | } | |
1576 | ||
1577 | ||
1578 |