9 #include "TParticlePDG.h"
14 #include "AliAnalysisTask.h"
15 #include "AliAnalysisManager.h"
17 #include "AliESDEvent.h"
19 #include "AliESDVertex.h"
20 #include "AliESDInputHandler.h"
21 #include "AliESDtrackCuts.h"
22 #include "AliMultiplicity.h"
24 #include "AliAnalysisTaskQASym.h"
25 #include "AliExternalTrackParam.h"
26 #include "AliTrackReference.h"
27 #include "AliHeader.h"
28 #include "AliGenEventHeader.h"
29 #include "AliGenDPMjetEventHeader.h"
31 // Analysis Task for basic QA on the ESD
33 // Authors: Jan Fiete Grosse-Oetringhaus, Christian Klein-Boesing,
34 // Andreas Morsch, Eva Sicking
36 ClassImp(AliAnalysisTaskQASym)
38 //________________________________________________________________________
39 AliAnalysisTaskQASym::AliAnalysisTaskQASym(const char *name)
40 : AliAnalysisTaskSE(name)
132 ,fRecDcaPosPhiEtaPos(0)
133 ,fRecDcaNegPhiEtaPos(0)
134 ,fRecDcaPosPhiEtaNeg(0)
135 ,fRecDcaNegPhiEtaNeg(0)
137 ,fRecDcaPosPtEtaPos(0)
138 ,fRecDcaNegPtEtaPos(0)
139 ,fRecDcaPosPtEtaNeg(0)
140 ,fRecDcaNegPtEtaNeg(0)
142 ,fRecPtPosPhiEtaPos(0)
143 ,fRecPtNegPhiEtaPos(0)
144 ,fRecPtPosPhiEtaNeg(0)
145 ,fRecPtNegPhiEtaNeg(0)
148 ,fRecDcaPhiPtPosEtaPos(0)
149 ,fRecDcaPhiPtNegEtaPos(0)
150 ,fRecDcaPhiPtPosEtaNeg(0)
151 ,fRecDcaPhiPtNegEtaNeg(0)
166 for(Int_t i = 0;i<18;++i){
167 fRecPtTpcSector[i] = 0;
168 fRecEtaTpcSector[i] = 0;
169 fSignedDcaTpcSector[i] = 0;
170 fRecQPtTpcSector[i] = 0;
171 fRecEtaPtTpcSector[i] = 0;
174 for(Int_t i = 0;i< 7;++i){
175 fRecPtPosLadder[i] = 0;
176 fRecPtNegLadder[i] = 0;
177 fRecPhiPosLadder[i] = 0;
178 fRecPhiNegLadder[i] = 0;
179 fRecEtaPosLadder[i] = 0;
180 fRecEtaNegLadder[i] = 0;
183 fSignDcaNegInv[i] = 0;
191 DefineOutput(1, TList::Class());
198 //________________________________________________________________________
199 void AliAnalysisTaskQASym::UserCreateOutputObjects()
204 Bool_t oldStatus = TH1::AddDirectoryStatus();
205 TH1::AddDirectory(kFALSE);
207 Double_t range = 0.2;
210 fHists = new TList();
211 // test = new TNtuple("test","test",
212 // "pt:phi:theta:x:y:z:charge");
213 fHistRECpt = new TH1F("fHistRECpt",
216 fEta = new TH1F("fEta",
219 fEtavPt = new TH2F("fEtavPt",
223 fCompareTPCparam = new TH2F("fCompareTPCparam",
225 100, -1., 1.,100,-5, 5);
227 fEtaPhi = new TH2F("fEtaPhi",
229 200, -2., 2., 128, 0., 2. * TMath::Pi());
231 fThetaRec = new TH1F("fThetaRec",
233 180, 0., TMath::Pi());
234 fPhiRec = new TH1F("fPhiRec",
236 180, 0., 2*TMath::Pi());
237 fNumber = new TH1F("fNumber",
238 "number of tracks per event",
240 fVx = new TH1F("fVx",
243 fVy = new TH1F("fVy",
246 fVz = new TH1F("fVz",
250 fEtaPt = new TH1F("fEtaPt",
254 fQPt = new TH1F("fQPt",
258 fDca = new TH1F("fDca",
260 200, -range*(1+Int_t(fTrackType/2)*9), range*(1+Int_t(fTrackType/2)*9));
263 fqRec = new TH1F("fqRec",
264 " charge all reconstructed particle",
267 fsigmaPt = new TH1F("fsigmaPt",
268 "Log_{10}(#sigma_{p_{T}})",
275 for(Int_t ITSlayer_case=0;ITSlayer_case<7;ITSlayer_case++){
277 fSignDcaPos[ITSlayer_case] = new TH1F(Form("fSignDcaPos%d", ITSlayer_case),
279 200, -range*(1+Int_t(fTrackType/2)*9), range*(1+Int_t(fTrackType/2)*9));
280 fSignDcaPos[ITSlayer_case]->GetXaxis()->SetTitle("dca");
281 fSignDcaPos[ITSlayer_case]->GetYaxis()->SetTitle("");
284 fSignDcaNeg[ITSlayer_case] = new TH1F(Form("fSignDcaNeg%d", ITSlayer_case),
286 200, -range*(1+Int_t(fTrackType/2)*9), range*(1+Int_t(fTrackType/2)*9));
287 fSignDcaNeg[ITSlayer_case]->GetXaxis()->SetTitle("dca");
288 fSignDcaNeg[ITSlayer_case]->GetYaxis()->SetTitle("");
290 fSignDcaNegInv[ITSlayer_case] = new TH1F(Form("fSignDcaNegInv%d", ITSlayer_case),
291 " inverse Signed dca ",
292 200, -range*(1+Int_t(fTrackType/2)*9), range*(1+Int_t(fTrackType/2)*9));
293 fSignDcaNegInv[ITSlayer_case]->GetXaxis()->SetTitle("-dca");
294 fSignDcaNegInv[ITSlayer_case]->GetYaxis()->SetTitle("");
299 fPtSigmaPos[ITSlayer_case] = new TH1F(Form("fPtSigmaPos%d", ITSlayer_case),
302 fPtSigmaPos[ITSlayer_case]->GetXaxis()->SetTitle("Log_{10}(#sigma_{pT})");
303 fPtSigmaPos[ITSlayer_case]->GetYaxis()->SetTitle("");
306 fPtSigmaNeg[ITSlayer_case] = new TH1F(Form("fPtSigmaNeg%d",ITSlayer_case),
309 fPtSigmaNeg[ITSlayer_case]->GetXaxis()->SetTitle("Log_{10}(#sigma_{pT})");
310 fPtSigmaNeg[ITSlayer_case]->GetYaxis()->SetTitle("");
316 fqPtRec[ITSlayer_case] = new TH1F(Form("fqPtRec%d",ITSlayer_case),
319 fqPtRec[ITSlayer_case]->GetXaxis()->SetTitle("q_{tr}/p_{T, tr} (GeV/c)");
320 fqPtRec[ITSlayer_case]->GetYaxis()->SetTitle("");
326 fDcaSigmaPos[ITSlayer_case] = new TH2F(Form("fDcaSigmaPos%d", ITSlayer_case),
327 " p_{T} shift vs #sigma_{pT} ",
328 200, -range*(1+Int_t(fTrackType/2)*9), range*(1+Int_t(fTrackType/2)*9),200, -4., 4. );
329 fDcaSigmaPos[ITSlayer_case]->GetXaxis()->SetTitle("signed DCA)");
330 fDcaSigmaPos[ITSlayer_case]->GetYaxis()->SetTitle("log_{10}(#sigma_{pT})");
333 fDcaSigmaNeg[ITSlayer_case] = new TH2F(Form("fDcaSigmaNeg%d", ITSlayer_case),
334 " p_{T} shift vs #sigma_{pT} ",
335 200, -range*(1+Int_t(fTrackType/2)*9), range*(1+Int_t(fTrackType/2)*9),200, -4., 4. );
336 fDcaSigmaNeg[ITSlayer_case]->GetXaxis()->SetTitle("signed DCA");
337 fDcaSigmaNeg[ITSlayer_case]->GetYaxis()->SetTitle("log_{10}(#sigma_{pT})");
344 // YIELDs---------- positive and negative particles
346 fRecPtPos = new TH1F("fRecPtPos",
349 fRecPtPos->GetXaxis()->SetTitle("p_{T} (GeV/c)");
350 fRecPtNeg = new TH1F("fRecPtNeg",
353 fRecPtNeg->GetXaxis()->SetTitle("p_{T} (GeV/c)");
356 fRecPhiPos = new TH1F("fRecPhiPos",
359 fRecPhiPos->GetXaxis()->SetTitle("#phi (deg)");
361 fRecPhiNeg = new TH1F("fRecPhiNeg",
364 fRecPhiNeg->GetXaxis()->SetTitle("#phi (deg)");
366 fRecEtaPos = new TH1F("fRecEtaPos",
369 fRecEtaPos->GetXaxis()->SetTitle("#eta");
371 fRecEtaNeg = new TH1F("fRecEtaNeg",
374 fRecEtaNeg->GetXaxis()->SetTitle("#eta");
376 fRecEtaPtPos = new TH1F("fRecEtaPtPos",
379 fRecEtaPtPos->GetXaxis()->SetTitle("#eta/p_{T}");
381 fRecEtaPtNeg = new TH1F("fRecEtaPtNeg",
384 fRecEtaPtNeg->GetXaxis()->SetTitle("#eta/p_{T}");
386 fRecDcaPos = new TH1F("fRecDcaPos",
388 100, -range*(1+Int_t(fTrackType/2)*9), range*(1+Int_t(fTrackType/2)*9));
389 fRecDcaPos->GetXaxis()->SetTitle("dca (cm)");
390 fRecDcaNeg = new TH1F("fRecDcaNeg",
392 100, -range*(1+Int_t(fTrackType/2)*9), range*(1+Int_t(fTrackType/2)*9));
393 fRecDcaNeg->GetXaxis()->SetTitle("dca (cm)");
395 fRecDcaNegInv = new TH1F("fRecDcaNegInv",
397 100, -range*(1+Int_t(fTrackType/2)*9), range*(1+Int_t(fTrackType/2)*9));
398 fRecDcaNegInv->GetXaxis()->SetTitle("dca (cm)");
401 fRecDPos = new TH1F("fRecDPos",
403 100, -range*(1+Int_t(fTrackType/2)*9), range*(1+Int_t(fTrackType/2)*9));
404 fRecDPos->GetXaxis()->SetTitle("d (cm)");
405 fRecDNeg = new TH1F("fRecDNeg",
407 100, -range*(1+Int_t(fTrackType/2)*9), range*(1+Int_t(fTrackType/2)*9));
408 fRecDNeg->GetXaxis()->SetTitle("d (cm)");
411 // YIELDs ---------------- positive and negative eta
414 fRecQPtPosEta = new TH1F("fRecQPtPosEta",
417 fRecQPtPosEta->GetXaxis()->SetTitle("q/p_{T} ");
419 fRecQPtNegEta = new TH1F("fRecQPtNegEta",
422 fRecQPtNegEta->GetXaxis()->SetTitle("q/p_{T}");
424 fRecPtPosEta = new TH1F("fRecPtPosEta",
427 fRecPtPosEta->GetXaxis()->SetTitle("p_{T} (GeV/c)");
429 fRecPtNegEta = new TH1F("fRecPtNegEta",
432 fRecPtNegEta->GetXaxis()->SetTitle("p_{T} (GeV/c)");
434 fRecPhiPosEta = new TH1F("fRecPhiPosEta",
437 fRecPhiPosEta->GetXaxis()->SetTitle("#phi (deg)");
439 fRecPhiNegEta = new TH1F("fRecPhiNegEta",
442 fRecPhiNegEta->GetXaxis()->SetTitle("#phi (deg)");
444 fRecDcaPosEta = new TH1F("fRecDcaPosEta",
446 100, -range*(1+Int_t(fTrackType/2)*9), range*(1+Int_t(fTrackType/2)*9));
447 fRecDcaPosEta->GetXaxis()->SetTitle("dca (cm)");
448 fRecDcaNegEta = new TH1F("fRecDcaNegEta",
450 100, -range*(1+Int_t(fTrackType/2)*9), range*(1+Int_t(fTrackType/2)*9));
451 fRecDcaNegEta->GetXaxis()->SetTitle("dca (cm)");
453 fRecDPosEta = new TH1F("fRecDPosEta",
455 100, -range*(1+Int_t(fTrackType/2)*9), range*(1+Int_t(fTrackType/2)*9));
456 fRecDPosEta->GetXaxis()->SetTitle("d (cm)");
457 fRecDNegEta = new TH1F("fRecDNegEta",
460 fRecDNegEta->GetXaxis()->SetTitle("d (cm)");
462 fRecDcaPosPhi = new TH2F("fRecDcaPosPhi",
464 100, -range*(1+Int_t(fTrackType/2)*9), range*(1+Int_t(fTrackType/2)*9), 180, 0, TMath::Pi()*2);
465 fRecDcaPosPhi->GetXaxis()->SetTitle("dca (cm)");
466 fRecDcaPosPhi->GetYaxis()->SetTitle("#phi (rad.)");
467 fRecDcaNegPhi = new TH2F("fRecDcaNegPhi",
469 100, -range*(1+Int_t(fTrackType/2)*9), range*(1+Int_t(fTrackType/2)*9), 180, 0, TMath::Pi()*2);
470 fRecDcaNegPhi->GetXaxis()->SetTitle("dca (cm)");
471 fRecDcaNegPhi->GetYaxis()->SetTitle("#phi (rad.)");
473 fRecPtPosPhi = new TH2F("fRecPtPosPhi",
475 100, -2.5, 2., 180, 0, TMath::Pi()*2);
476 fRecPtPosPhi->GetXaxis()->SetTitle("log_{10}(p_{T})");
477 fRecPtPosPhi->GetYaxis()->SetTitle("#phi (rad.)");
478 fRecPtNegPhi = new TH2F("fRecPtNegPhi",
480 100,-2.5 , 2., 180, 0, TMath::Pi()*2);
481 fRecPtNegPhi->GetXaxis()->SetTitle("log_{10}(p_{T})");
482 fRecPtNegPhi->GetYaxis()->SetTitle("#phi (rad.)");
484 fRecEtaPosPhi = new TH2F("fRecEtaPosPhi",
486 100, -1.5, 1.5, 180, 0, TMath::Pi()*2);
487 fRecEtaPosPhi->GetXaxis()->SetTitle("#eta");
488 fRecEtaPosPhi->GetYaxis()->SetTitle("#phi (rad.)");
489 fRecEtaNegPhi = new TH2F("fRecEtaNegPhi",
491 100, -1.5, 1.5, 180, 0, TMath::Pi()*2);
492 fRecEtaNegPhi->GetXaxis()->SetTitle("#eta");
493 fRecEtaNegPhi->GetYaxis()->SetTitle("#phi (rad.)");
495 fRecQPtPhi = new TH2F("fRecQPtPhi",
496 " charge/p_T vs. phi",
497 100,-1. , 1., 180, 0, TMath::Pi()*2);
498 fRecQPtPhi->GetXaxis()->SetTitle("charge/p_{T}");
499 fRecQPtPhi->GetYaxis()->SetTitle("#phi (rad.)");
501 fRecEtaPtPosPhi = new TH2F("fRecEtaPtPosPhi",
503 100, -5, 5., 180, 0, TMath::Pi()*2);
504 fRecEtaPtPosPhi->GetXaxis()->SetTitle("#eta/p_{T}");
505 fRecEtaPtPosPhi->GetYaxis()->SetTitle("#phi (rad.)");
506 fRecEtaPtNegPhi = new TH2F("fRecEtaPtNegPhi",
508 100,-5 , 5., 180, 0, TMath::Pi()*2);
509 fRecEtaPtNegPhi->GetXaxis()->SetTitle("#eta/p_{T}");
510 fRecEtaPtNegPhi->GetYaxis()->SetTitle("#phi (rad.)");
516 fRecDcaPosPhiEtaPos = new TH2F("fRecDcaPosPhiEtaPos",
518 100, -range*(1+Int_t(fTrackType/2)*9), range*(1+Int_t(fTrackType/2)*9), 180, 0, TMath::Pi()*2);
519 fRecDcaPosPhiEtaPos->GetXaxis()->SetTitle("dca (cm)");
520 fRecDcaPosPhiEtaPos->GetYaxis()->SetTitle("#phi (rad.)");
521 fRecDcaNegPhiEtaPos = new TH2F("fRecDcaNegPhiEtaPos",
523 100, -range*(1+Int_t(fTrackType/2)*9), range*(1+Int_t(fTrackType/2)*9), 180, 0, TMath::Pi()*2);
524 fRecDcaNegPhiEtaPos->GetXaxis()->SetTitle("dca (cm)");
525 fRecDcaNegPhiEtaPos->GetYaxis()->SetTitle("#phi (rad.)");
527 fRecPtPosPhiEtaPos = new TH2F("fRecPtPosPhiEtaPos",
529 100, -2.5, 2., 180, 0, TMath::Pi()*2);
530 fRecPtPosPhiEtaPos->GetXaxis()->SetTitle("log_{10}(p_{T})");
531 fRecPtPosPhiEtaPos->GetYaxis()->SetTitle("#phi (rad.)");
532 fRecPtNegPhiEtaPos = new TH2F("fRecPtNegPhiEtaPos",
534 100,-2.5 , 2., 180, 0, TMath::Pi()*2);
535 fRecPtNegPhiEtaPos->GetXaxis()->SetTitle("log_{10}(p_{T})");
536 fRecPtNegPhiEtaPos->GetYaxis()->SetTitle("#phi (rad.)");
539 fRecDcaPosPhiEtaNeg = new TH2F("fRecDcaPosPhiEtaNeg",
541 100, -range*(1+Int_t(fTrackType/2)*9), range*(1+Int_t(fTrackType/2)*9), 180, 0, TMath::Pi()*2);
542 fRecDcaPosPhiEtaNeg->GetXaxis()->SetTitle("dca (cm)");
543 fRecDcaPosPhiEtaNeg->GetYaxis()->SetTitle("#phi (rad.)");
544 fRecDcaNegPhiEtaNeg = new TH2F("fRecDcaNegPhiEtaNeg",
546 100, -range*(1+Int_t(fTrackType/2)*9), range*(1+Int_t(fTrackType/2)*9), 180, 0, TMath::Pi()*2);
547 fRecDcaNegPhiEtaNeg->GetXaxis()->SetTitle("dca (cm)");
548 fRecDcaNegPhiEtaNeg->GetYaxis()->SetTitle("#phi (rad.)");
550 fRecPtPosPhiEtaNeg = new TH2F("fRecPtPosPhiEtaNeg",
552 100, -2.5, 2., 180, 0, TMath::Pi()*2);
553 fRecPtPosPhiEtaNeg->GetXaxis()->SetTitle("log_{10}(p_{T})");
554 fRecPtPosPhiEtaNeg->GetYaxis()->SetTitle("#phi (rad.)");
555 fRecPtNegPhiEtaNeg = new TH2F("fRecPtNegPhiEtaNeg",
557 100,-2.5 , 2., 180, 0, TMath::Pi()*2);
558 fRecPtNegPhiEtaNeg->GetXaxis()->SetTitle("log_{10}(p_{T})");
559 fRecPtNegPhiEtaNeg->GetYaxis()->SetTitle("#phi (rad.)");
562 fRecDcaPosPtEtaPos = new TH2F("fRecDcaPosPtEtaPos",
564 100, -range*(1+Int_t(fTrackType/2)*9), range*(1+Int_t(fTrackType/2)*9), 200, -2, 2);
565 fRecDcaPosPtEtaPos->GetXaxis()->SetTitle("dca (cm)");
566 fRecDcaPosPtEtaPos->GetYaxis()->SetTitle("log_{10}(p_{T})");
568 fRecDcaPosPtEtaNeg = new TH2F("fRecDcaPosPtEtaNeg",
570 100, -range*(1+Int_t(fTrackType/2)*9), range*(1+Int_t(fTrackType/2)*9), 200, -2, 2);
571 fRecDcaPosPtEtaNeg->GetXaxis()->SetTitle("dca (cm)");
572 fRecDcaPosPtEtaNeg->GetYaxis()->SetTitle("log_{10}(p_{T})");
574 fRecDcaNegPtEtaPos = new TH2F("fRecDcaNegPtEtaPos",
576 100, -range*(1+Int_t(fTrackType/2)*9), range*(1+Int_t(fTrackType/2)*9), 200, -2, 2);
577 fRecDcaNegPtEtaPos->GetXaxis()->SetTitle("dca (cm)");
578 fRecDcaNegPtEtaPos->GetYaxis()->SetTitle("log_{10}(p_{T})");
580 fRecDcaNegPtEtaNeg = new TH2F("fRecDcaNegPtEtaNeg",
582 100, -range*(1+Int_t(fTrackType/2)*9), range*(1+Int_t(fTrackType/2)*9), 200, -2, 2);
583 fRecDcaNegPtEtaNeg->GetXaxis()->SetTitle("dca (cm)");
584 fRecDcaNegPtEtaNeg->GetYaxis()->SetTitle("log_{10}(p_{T})");
588 // YIELDs ---------------- for TPC sectors
589 for(Int_t sector=0; sector<18;sector++){
592 fRecPtTpcSector[sector] = new TH1F(Form("fRecPtTpcSector%02d",sector),
593 Form("p_{T} distribution: TPC sector %d",
594 sector),100, 0., pt);
595 fRecPtTpcSector[sector]->GetXaxis()->SetTitle("p_{T} (GeV/c)");
597 fRecEtaTpcSector[sector] = new TH1F(Form("fRecEtaTpcSector%02d",sector),
598 Form("#eta distribution: TPC sector %d",
599 sector),200, -2., 2.);
600 fRecEtaTpcSector[sector]->GetXaxis()->SetTitle("p_{T} (GeV/c)");
603 fSignedDcaTpcSector[sector] = new TH1F(Form("fSignedDcaTpcSector%02d",sector),
604 Form("dca distribution: TPC sector %d",
605 sector),200, -range*(1+Int_t(fTrackType/2)*9), range*(1+Int_t(fTrackType/2)*9) );
606 fSignedDcaTpcSector[sector]->GetXaxis()->SetTitle("dca");
608 fRecQPtTpcSector[sector] = new TH1F(Form("fRecQPtTpcSector%02d",sector),
609 Form("Q/ p_{T} distribution: TPC sector %d",
610 sector),100, -1., 1.);
611 fRecQPtTpcSector[sector]->GetXaxis()->SetTitle("Q/p_{T} (GeV/c)");
613 fRecEtaPtTpcSector[sector] = new TH1F(Form("fRecEtaPtTpcSector%02d",sector),
614 Form("#eta/ p_{T} distribution: TPC sector %d",
615 sector),100, -1., 1.);
616 fRecEtaPtTpcSector[sector]->GetXaxis()->SetTitle("#eta/p_{T} (GeV/c)");
620 for(Int_t i=0;i<7;i++){
621 fRecPtPosLadder[i] = new TH1F(Form("fRecPtPosLadder%d", i),
622 " p_{T} distribution",
624 fRecPtPosLadder[i]->GetXaxis()->SetTitle("p_{T} (GeV/c)");
625 fRecPtNegLadder[i] = new TH1F(Form("fRecPtNegLadder%d",i),
626 " p_{T} distribution ",
628 fRecPtNegLadder[i]->GetXaxis()->SetTitle("p_{T} (GeV/c)");
631 fRecPhiPosLadder[i] = new TH1F(Form("fRecPhiPosLadder%d",i),
632 "#phi distribution: all pos eta",
634 fRecPhiPosLadder[i]->GetXaxis()->SetTitle("#phi (deg)");
636 fRecPhiNegLadder[i] = new TH1F(Form("fRecPhiNegLadder%d", i),
637 "#phi distribution: all neg eta",
639 fRecPhiNegLadder[i]->GetXaxis()->SetTitle("#phi (deg)");
643 fRecEtaPosLadder[i] = new TH1F(Form("fRecEtaPosLadder%d",i),
646 fRecEtaPosLadder[i]->GetXaxis()->SetTitle("#eta)");
648 fRecEtaNegLadder[i] = new TH1F(Form("fRecEtaNegLadder%d", i),
651 fRecEtaNegLadder[i]->GetXaxis()->SetTitle("#eta");
656 fRecPtPosVz = new TH2F("fRecPtPosVz",
657 "p_{T} distribution vs Vz()",
658 100, -1., 2., 200,-vzmax,vzmax);
659 fRecPtPosVz->GetXaxis()->SetTitle("log_{10}(p_{T})");
661 fRecPtNegVz = new TH2F("fRecPtNegVz",
662 "p_{T} distribution vs Vz()",
663 100, -1., 2.,200,-vzmax,vzmax);
664 fRecPtNegVz->GetXaxis()->SetTitle("Log_{10}(p_{T})");
667 fRecEtaPosVz= new TH2F("fRecEtaPosVz",
668 "#eta distribution vs Vz()",
669 100, -2., 2., 200,-vzmax,vzmax);
670 fRecEtaPosVz->GetXaxis()->SetTitle("#eta");
671 fRecEtaNegVz = new TH2F("fRecEtaNegVz",
672 "#eta distribution vs Vz()",
673 100, -2., 2.,200,-vzmax,vzmax);
674 fRecEtaNegVz->GetXaxis()->SetTitle("#eta");
676 fRecPhiPosVz= new TH2F("fRecPhiPosVz",
677 "#eta distribution vs Vz()",
678 361, 0., 360., 200,-vzmax,vzmax);
679 fRecPhiPosVz->GetXaxis()->SetTitle("#phi (deg)");
680 fRecPhiNegVz = new TH2F("fRecPhiNegVz",
682 361, 0., 360.,200,-vzmax,vzmax);
683 fRecPhiNegVz->GetXaxis()->SetTitle("#phi (deg)");
685 fSignedDcaPosVz= new TH2F("fSignedDcaPosVz",
686 "#eta distribution vs Vz()",
687 200, -range*(1+Int_t(fTrackType/2)*9), range*(1+Int_t(fTrackType/2)*9), 200,-vzmax,vzmax);
688 fSignedDcaPosVz->GetXaxis()->SetTitle("dca (cm)");
689 fSignedDcaNegVz = new TH2F("fSignedDcaNegVz",
691 200, -range*(1+Int_t(fTrackType/2)*9), range*(1+Int_t(fTrackType/2)*9),200,-vzmax,vzmax);
692 fSignedDcaNegVz->GetXaxis()->SetTitle("dca (cm)");
694 fRecQPtPosEtaVz= new TH2F("fRecQPtPosEtaVz",
695 " Q/p_{T} distribution vs Vz()",
696 100, -1., 1., 200,-vzmax,vzmax);
697 fRecQPtPosEtaVz->GetXaxis()->SetTitle("Q/p_{T}");
698 fRecQPtNegEtaVz = new TH2F("fRecQPtNegEtaVz",
699 " Q/p_{T} distribution vs Vz()",
700 100, -1., 1.,200,-vzmax,vzmax);
701 fRecQPtNegEtaVz->GetXaxis()->SetTitle("Q/p_{T}");
704 fRecEtaPtPosVz= new TH2F("fRecEtaPtPosVz",
705 " #eta/p_{T} distribution vs Vz()",
706 100, -1., 1., 200,-vzmax,vzmax);
707 fRecEtaPtPosVz->GetXaxis()->SetTitle("#eta/p_{T");
708 fRecEtaPtNegVz = new TH2F("fRecEtaPtNegVz",
709 " #eta/p_{T} distribution vs Vz()",
710 100, -1., 1.,200,-vzmax,vzmax);
711 fRecEtaPtNegVz->GetXaxis()->SetTitle("#eta/p_{T}");
714 fDeltaPhiAll = new TH1F("fDeltaPhiAll",
715 " #Delta #phi",200,-360,360);
716 fDeltaPhiAll->GetXaxis()->SetTitle("#Delta #phi");
719 fDeltaPhiLeading = new TH2F("fDeltaPhiLeading",
720 " #Delta #phi",361,-360,360, 361,0, 360);
721 fDeltaPhiLeading->GetXaxis()->SetTitle("#Delta #phi (deg.)");
722 fDeltaPhiLeading->GetYaxis()->SetTitle("#phi_{leading particle} (deg.)");
724 fDiffDcaD = new TH1F("fDiffDcaD",
729 fRecPtPosEtaPos = new TH1F("fRecPtPosEtaPos",
730 "p_{T} distribution",100,0,pt);
731 fRecPtPosEtaPos->GetXaxis()->SetTitle("p_{T} (GeV/c)");
733 fRecPtNegEtaPos = new TH1F("fRecPtNegEtaPos",
734 "p_{T} distribution",100,0,pt);
735 fRecPtNegEtaPos->GetXaxis()->SetTitle("p_{T} (GeV/c)");
737 fRecPtPosEtaNeg = new TH1F("fRecPtPosEtaNeg",
738 "p_{T} distribution",100,0,pt);
739 fRecPtPosEtaNeg->GetXaxis()->SetTitle("p_{T} (GeV/c)");
741 fRecPtNegEtaNeg = new TH1F("fRecPtNegEtaNeg",
742 "p_{T} distribution",100,0,pt);
743 fRecPtNegEtaNeg->GetXaxis()->SetTitle("p_{T} (GeV/c)");
747 fRec1PtPosEtaPos = new TH1F("fRec1PtPosEtaPos",
748 "1/p_{T} distribution",100,0,0.5);
749 fRec1PtPosEtaPos->GetXaxis()->SetTitle("p_{T} (c/GeV)");
751 fRec1PtNegEtaPos = new TH1F("fRec1PtNegEtaPos",
752 "1/p_{T} distribution",100,0,0.5);
753 fRec1PtNegEtaPos->GetXaxis()->SetTitle("p_{T} (c/GeV)");
755 fRec1PtPosEtaNeg = new TH1F("fRec1PtPosEtaNeg",
756 "1/p_{T} distribution",100,0,0.5);
757 fRec1PtPosEtaNeg->GetXaxis()->SetTitle("p_{T} (c/GeV)");
759 fRec1PtNegEtaNeg = new TH1F("fRec1PtNegEtaNeg",
760 "1/p_{T} distribution",100,0,0.5);
761 fRec1PtNegEtaNeg->GetXaxis()->SetTitle("1/p_{T} (c/GeV)");
765 fRecPhiPosEtaPos = new TH1F("fRecPhiPosEtaPos",
766 "#phi",180,0,2*TMath::Pi());
767 fRecPhiPosEtaPos->GetXaxis()->SetTitle("#phi (rad.)");
769 fRecPhiNegEtaPos = new TH1F("fRecPhiNegEtaPos",
770 "#phi",180,0,2*TMath::Pi());
771 fRecPhiNegEtaPos->GetXaxis()->SetTitle("#phi (rad.)");
773 fRecPhiPosEtaNeg = new TH1F("fRecPhiPosEtaNeg",
774 "#phi",180,0,2*TMath::Pi());
775 fRecPhiPosEtaNeg->GetXaxis()->SetTitle("#phi (rad.)");
777 fRecPhiNegEtaNeg = new TH1F("fRecPhiNegEtaNeg",
778 "#phi",180,0,2*TMath::Pi());
779 fRecPhiNegEtaNeg->GetXaxis()->SetTitle("#phi (rad.)");
783 fRecDcaPhiPtPosEtaPos = new TH3F("fRecDcaPhiPtPosEtaPos",
787 100, -range*(1+Int_t(fTrackType/2)*9), range*(1+Int_t(fTrackType/2)*9));
788 fRecDcaPhiPtPosEtaPos->GetXaxis()->SetTitle("#phi (rad.)");
789 fRecDcaPhiPtPosEtaPos->GetYaxis()->SetTitle("p_{T} (GeV/c)");
790 fRecDcaPhiPtPosEtaPos->GetZaxis()->SetTitle("dca (cm)");
792 fRecDcaPhiPtPosEtaNeg = new TH3F("fRecDcaPhiPtPosEtaNeg",
796 100, -range*(1+Int_t(fTrackType/2)*9), range*(1+Int_t(fTrackType/2)*9));
797 fRecDcaPhiPtPosEtaNeg->GetZaxis()->SetTitle("dca (cm)");
798 fRecDcaPhiPtPosEtaNeg->GetXaxis()->SetTitle("#phi (rad.)");
799 fRecDcaPhiPtPosEtaNeg->GetYaxis()->SetTitle("p_{T} (GeV/c)");
801 fRecDcaPhiPtNegEtaPos = new TH3F("fRecDcaPhiPtNegEtaPos",
805 100, -range*(1+Int_t(fTrackType/2)*9), range*(1+Int_t(fTrackType/2)*9));
806 fRecDcaPhiPtNegEtaPos->GetZaxis()->SetTitle("dca (cm)");
807 fRecDcaPhiPtNegEtaPos->GetXaxis()->SetTitle("#phi (rad.)");
808 fRecDcaPhiPtNegEtaPos->GetYaxis()->SetTitle("p_{T} (GeV/c)");
810 fRecDcaPhiPtNegEtaNeg = new TH3F("fRecDcaPhiPtNegEtaNeg",
814 100, -range*(1+Int_t(fTrackType/2)*9), range*(1+Int_t(fTrackType/2)*9));
815 fRecDcaPhiPtNegEtaNeg->GetZaxis()->SetTitle("dca (cm)");
816 fRecDcaPhiPtNegEtaNeg->GetYaxis()->SetTitle("#phi (rad.)");
817 fRecDcaPhiPtNegEtaNeg->GetXaxis()->SetTitle("p_{T} (GeV/c)");
824 fHists->Add(fHistRECpt);
826 fHists->Add(fEtavPt);
827 fHists->Add(fCompareTPCparam);
828 fHists->Add(fEtaPhi);
829 fHists->Add(fThetaRec);
830 fHists->Add(fPhiRec);
831 fHists->Add(fNumber);
840 fHists->Add(fDeltaPhiAll);
841 fHists->Add(fDeltaPhiLeading);
842 fHists->Add(fDiffDcaD);
845 fHists->Add(fsigmaPt);
847 fHists->Add(fRecPtPos);
848 fHists->Add(fRecPtNeg);
849 fHists->Add(fRecPhiPos);
850 fHists->Add(fRecPhiNeg);
851 fHists->Add(fRecEtaPos);
852 fHists->Add(fRecEtaNeg);
853 fHists->Add(fRecEtaPtPos);
854 fHists->Add(fRecEtaPtNeg);
855 fHists->Add(fRecDcaPos);
856 fHists->Add(fRecDcaNeg);
857 fHists->Add(fRecDcaNegInv);
858 fHists->Add(fRecDPos);
859 fHists->Add(fRecDNeg);
862 fHists->Add(fRecQPtPosEta);
863 fHists->Add(fRecQPtNegEta);
864 fHists->Add(fRecPtPosEta);
865 fHists->Add(fRecPtNegEta);
866 fHists->Add(fRecPhiPosEta);
867 fHists->Add(fRecPhiNegEta);
868 fHists->Add(fRecDcaPosEta);
869 fHists->Add(fRecDcaNegEta);
870 fHists->Add(fRecDPosEta);
871 fHists->Add(fRecDNegEta);
874 for(Int_t i=0;i<18;i++){
875 fHists->Add(fRecPtTpcSector[i]);
876 fHists->Add(fRecEtaTpcSector[i]);
877 fHists->Add(fSignedDcaTpcSector[i]);
878 fHists->Add(fRecQPtTpcSector[i]);
879 fHists->Add(fRecEtaPtTpcSector[i]);
882 for(Int_t i=0;i<7;i++){
883 fHists->Add(fRecPtPosLadder[i]);
884 fHists->Add(fRecPtNegLadder[i]);
885 fHists->Add(fRecPhiPosLadder[i]);
886 fHists->Add(fRecPhiNegLadder[i]);
887 fHists->Add(fRecEtaPosLadder[i]);
888 fHists->Add(fRecEtaNegLadder[i]);
891 fHists->Add(fRecPtPosVz);
892 fHists->Add(fRecPtNegVz);
893 fHists->Add(fRecEtaPosVz);
894 fHists->Add(fRecEtaNegVz);
895 fHists->Add(fRecPhiPosVz);
896 fHists->Add(fRecPhiNegVz);
897 fHists->Add(fSignedDcaPosVz);
898 fHists->Add(fSignedDcaNegVz);
899 fHists->Add(fRecQPtPosEtaVz);
900 fHists->Add(fRecQPtNegEtaVz);
901 fHists->Add(fRecEtaPtPosVz);
902 fHists->Add(fRecEtaPtNegVz);
905 for(Int_t i=0;i<7;i++){
906 fHists->Add(fSignDcaPos[i]);
907 fHists->Add(fSignDcaNeg[i]);
908 fHists->Add(fSignDcaNegInv[i]);
910 fHists->Add(fPtSigmaPos[i]);
911 fHists->Add(fPtSigmaNeg[i]);
912 fHists->Add(fqPtRec[i]);
914 fHists->Add(fDcaSigmaPos[i]);
915 fHists->Add(fDcaSigmaNeg[i]);
920 fHists->Add(fRecDcaPosPhi);
921 fHists->Add(fRecDcaNegPhi);
922 fHists->Add(fRecPtPosPhi);
923 fHists->Add(fRecPtNegPhi);
924 fHists->Add(fRecEtaPosPhi);
925 fHists->Add(fRecEtaNegPhi);
926 fHists->Add(fRecQPtPhi);
927 fHists->Add(fRecEtaPtPosPhi);
928 fHists->Add(fRecEtaPtNegPhi);
930 fHists->Add(fRecPtPosEtaPos);
931 fHists->Add(fRecPtNegEtaPos);
932 fHists->Add(fRecPtPosEtaNeg);
933 fHists->Add(fRecPtNegEtaNeg);
935 fHists->Add(fRec1PtPosEtaPos);
936 fHists->Add(fRec1PtNegEtaPos);
937 fHists->Add(fRec1PtPosEtaNeg);
938 fHists->Add(fRec1PtNegEtaNeg);
941 fHists->Add(fRecPhiPosEtaPos);
942 fHists->Add(fRecPhiNegEtaPos);
943 fHists->Add(fRecPhiPosEtaNeg);
944 fHists->Add(fRecPhiNegEtaNeg);
946 fHists->Add(fRecDcaPosPhiEtaPos);
947 fHists->Add(fRecDcaNegPhiEtaPos);
948 fHists->Add(fRecPtPosPhiEtaPos);
949 fHists->Add(fRecPtNegPhiEtaPos);
950 fHists->Add(fRecDcaPosPhiEtaNeg);
951 fHists->Add(fRecDcaNegPhiEtaNeg);
952 fHists->Add(fRecPtPosPhiEtaNeg);
953 fHists->Add(fRecPtNegPhiEtaNeg);
955 fHists->Add(fRecDcaPosPtEtaPos);
956 fHists->Add(fRecDcaNegPtEtaPos);
957 fHists->Add(fRecDcaPosPtEtaNeg);
958 fHists->Add(fRecDcaNegPtEtaNeg);
960 fHists->Add(fRecDcaPhiPtPosEtaPos);
961 fHists->Add(fRecDcaPhiPtPosEtaNeg);
962 fHists->Add(fRecDcaPhiPtNegEtaPos);
963 fHists->Add(fRecDcaPhiPtNegEtaNeg);
969 // for (Int_t i=0; i<fHists->GetEntries(); ++i) {
970 // TH1 *h1 = dynamic_cast<TH1*>(fHists->At(i));
972 // // Printf("%s ",h1->GetName());
978 TH1::AddDirectory(oldStatus);
981 //__________________________________________________________
983 void AliAnalysisTaskQASym::UserExec(Option_t *)
985 AliVEvent *event = InputEvent();
987 Printf("ERROR: Could not retrieve event");
993 AliESDEvent* esd = dynamic_cast<AliESDEvent*>(event);
995 Printf("We are reading from ESD");
1002 if(fDebug>1)Printf("There are %d tracks in this event", event->GetNumberOfTracks());
1005 Int_t leadingTrack = 0;
1006 Float_t leadingEnergy = -20.;
1007 Float_t leadingPhi = 0;//TMath::Pi();
1010 if(event->GetNumberOfTracks()!=0) fNumber->Fill(event->GetNumberOfTracks());
1012 const AliVVertex* vertex = event->GetPrimaryVertex();
1013 Float_t vz = vertex->GetZ();
1014 if (TMath::Abs(vz) > 10.) return;
1016 for (Int_t iTrack = 0; iTrack < event->GetNumberOfTracks(); iTrack++) {
1019 AliVParticle *track = event->GetTrack(iTrack);
1020 AliESDtrack *esdtrack = dynamic_cast<AliESDtrack*>(track);
1021 esdtrack->PropagateToDCA(event->GetPrimaryVertex(),
1022 event->GetMagneticField(), 10000.);
1025 Printf("ERROR: Could not receive track %d", iTrack);
1029 // run Task for global tracks or ITS tracks or TPC tracks
1030 AliESDtrack *tpcP = 0x0;
1031 const AliExternalTrackParam *tpcPin = 0x0;
1034 //Fill all histograms with global tracks
1036 phiIn = tpcP->Phi();
1037 if (!tpcP) continue;
1038 if (!fCuts->AcceptTrack(tpcP)) continue;
1040 else if(fTrackType==1){
1041 //Fill all histograms with ITS tracks
1043 phiIn = tpcP->Phi();
1044 if (!tpcP) continue;
1045 if (!fCuts->AcceptTrack(tpcP)) continue;
1047 else if(fTrackType==2){
1048 //Fill all histograms with TPC track information
1049 tpcPin = esdtrack->GetInnerParam();
1050 if (!tpcPin) continue;
1051 phiIn=tpcPin->Phi();
1053 tpcP = AliESDtrackCuts::GetTPCOnlyTrack(dynamic_cast<AliESDEvent*>(event),esdtrack->GetID());
1054 if (!tpcP) continue;
1055 if (!fCuts->AcceptTrack(tpcP)) continue;
1056 if(tpcP->GetNcls(1)>160)continue;//jacek's track cut
1057 if(tpcP->GetConstrainedChi2TPC()<0)continue; // jacek's track cut
1060 Printf("ERROR: wrong track type \n");
1067 if(tpcP->E()>leadingEnergy){
1068 leadingTrack=iTrack;
1069 leadingEnergy=tpcP->E();
1074 fqRec->Fill(tpcP->Charge());
1077 Double_t sigmapt = tpcP->GetSigma1Pt2();
1078 sigmapt= sqrt(sigmapt);
1079 sigmapt= sigmapt *(tpcP->Pt()*tpcP->Pt());
1081 if(sigmapt == 0.)continue;
1082 fsigmaPt->Fill(TMath::Log10(sigmapt));
1085 // hits in ITS layer
1087 if(tpcP->HasPointOnITSLayer(0))
1089 else if(!tpcP->HasPointOnITSLayer(0)
1090 && tpcP->HasPointOnITSLayer(1))
1092 else if(!tpcP->HasPointOnITSLayer(0)
1093 && !tpcP->HasPointOnITSLayer(1)
1094 && tpcP->HasPointOnITSLayer(2))
1096 else if(!tpcP->HasPointOnITSLayer(0)
1097 && !tpcP->HasPointOnITSLayer(1)
1098 && !tpcP->HasPointOnITSLayer(2)
1099 && tpcP->HasPointOnITSLayer(3))
1101 else if(!tpcP->HasPointOnITSLayer(0)
1102 && !tpcP->HasPointOnITSLayer(1)
1103 && !tpcP->HasPointOnITSLayer(2)
1104 && !tpcP->HasPointOnITSLayer(3)
1105 && tpcP->HasPointOnITSLayer(4))
1107 else if( !tpcP->HasPointOnITSLayer(0)
1108 && !tpcP->HasPointOnITSLayer(1)
1109 && !tpcP->HasPointOnITSLayer(2)
1110 && !tpcP->HasPointOnITSLayer(3)
1111 && !tpcP->HasPointOnITSLayer(4)
1112 && tpcP->HasPointOnITSLayer(5))
1119 //-------------------
1121 xvertexcor = tpcP->Xv() - vertex->GetX(); // coordinate corrected for vertex position
1122 yvertexcor = tpcP->Yv() - vertex->GetY(); // "
1123 sdca = (tpcP->Py()*xvertexcor - tpcP->Px()*yvertexcor)/tpcP->Pt();
1126 fqPtRec[cas]->Fill(tpcP->Charge()/tpcP->Pt());
1130 fHistRECpt->Fill(tpcP->Pt());
1131 fEta->Fill(tpcP->Eta());
1132 fEtavPt->Fill(tpcP->Eta(), tpcP->Pt());
1133 fEtaPhi->Fill(tpcP->Eta(), phiIn);
1134 fThetaRec->Fill(tpcP->Theta());
1135 fPhiRec->Fill(phiIn);
1136 fVx->Fill(tpcP->Xv());
1137 fVy->Fill(tpcP->Yv());
1138 fVz->Fill(tpcP->Zv());
1141 fEtaPt->Fill(tpcP->Eta()/tpcP->Pt());
1142 fQPt->Fill(tpcP->Charge()/tpcP->Pt());
1144 fRecQPtPhi->Fill(tpcP->Charge()/tpcP->Pt(), phiIn);
1147 tpcP->GetImpactParameters(xy,z);
1148 fDiffDcaD->Fill(sdca+xy);
1150 if(fTrackType==2) fCompareTPCparam->Fill(z,tpcPin->GetTgl());
1152 //for positive particles
1154 if(tpcP->Charge()>0){
1155 fRecPtPos->Fill(tpcP->Pt());
1156 fRecPtPosLadder[cas]->Fill(tpcP->Pt());
1157 fRecPtPosVz->Fill(TMath::Log10(tpcP->Pt()),tpcP->Zv());
1158 fRecPhiPos->Fill(TMath::RadToDeg()*phiIn);
1161 fRecPhiPosLadder[cas]->Fill(TMath::RadToDeg()*phiIn);
1162 fRecPhiPosVz->Fill(TMath::RadToDeg()*phiIn,tpcP->Zv());
1163 fSignedDcaPosVz->Fill(sdca,tpcP->Zv());
1165 fRecEtaPos->Fill(tpcP->Eta());
1166 fRecEtaPosLadder[cas]->Fill(tpcP->Eta());
1167 fRecEtaPtPos->Fill(tpcP->Eta()/tpcP->Pt());
1168 fRecEtaPosVz->Fill(tpcP->Eta(),tpcP->Zv());
1169 fRecEtaPtPosVz->Fill(tpcP->Eta()/tpcP->Pt(),tpcP->Zv());
1171 fRecDcaPos->Fill(sdca);
1172 fRecDcaPosPhi->Fill(sdca, phiIn);
1173 fRecPtPosPhi->Fill(TMath::Log10(tpcP->Pt()), phiIn);
1174 fRecEtaPtPosPhi->Fill(tpcP->Eta()/tpcP->Pt(), phiIn);
1175 fRecEtaPosPhi->Fill(tpcP->Eta(), phiIn);
1177 fSignDcaPos[cas]->Fill(sdca);
1180 fDcaSigmaPos[cas]->Fill(sdca, TMath::Log10(sigmapt));
1182 fPtSigmaPos[cas]->Fill(TMath::Log10(sigmapt));
1185 fRecPtPosEtaPos->Fill(tpcP->Pt());
1186 fRec1PtPosEtaPos->Fill(1/tpcP->Pt());
1187 fRecPhiPosEtaPos->Fill(phiIn);
1188 fRecDcaPosPhiEtaPos->Fill(sdca, phiIn);
1189 fRecDcaPosPtEtaPos->Fill(sdca, TMath::Log10(tpcP->Pt()));
1190 fRecPtPosPhiEtaPos->Fill(TMath::Log10(tpcP->Pt()), phiIn);
1191 fRecDcaPhiPtPosEtaPos->Fill(phiIn, tpcP->Pt(), sdca);
1195 fRecPtPosEtaNeg->Fill(tpcP->Pt());
1196 fRec1PtPosEtaNeg->Fill(1/tpcP->Pt());
1197 fRecPhiPosEtaNeg->Fill(phiIn);
1198 fRecDcaPosPhiEtaNeg->Fill(sdca, phiIn);
1199 fRecDcaPosPtEtaNeg->Fill(sdca, TMath::Log10(tpcP->Pt()));
1200 fRecPtPosPhiEtaNeg->Fill(TMath::Log10(tpcP->Pt()), phiIn);
1201 fRecDcaPhiPtPosEtaNeg->Fill(phiIn, tpcP->Pt(), sdca);
1205 //and negative particles
1207 fRecPtNeg->Fill(tpcP->Pt());
1208 fRecPtNegLadder[cas]->Fill(tpcP->Pt());
1209 fRecPtNegVz->Fill(TMath::Log10(tpcP->Pt()),tpcP->Zv());
1211 fRecPhiNeg->Fill(TMath::RadToDeg()*phiIn);
1212 fRecPhiNegLadder[cas]->Fill(TMath::RadToDeg()*phiIn);
1213 fRecPhiNegVz->Fill(TMath::RadToDeg()*phiIn,tpcP->Zv());
1214 fSignedDcaNegVz->Fill(sdca,tpcP->Zv());
1215 fRecEtaPtNegVz->Fill(tpcP->Eta()/tpcP->Pt(),tpcP->Zv());
1217 fRecEtaNeg->Fill(tpcP->Eta());
1218 fRecEtaNegLadder[cas]->Fill(tpcP->Eta());
1219 fRecEtaPtNeg->Fill(tpcP->Eta()/tpcP->Pt());
1220 fRecEtaNegVz->Fill(tpcP->Eta(),tpcP->Zv());
1222 fRecDcaNeg->Fill(sdca);
1223 fRecDcaNegInv->Fill(-sdca);
1224 fRecDcaNegPhi->Fill(sdca, phiIn);
1225 fRecPtNegPhi->Fill(TMath::Log10(tpcP->Pt()), phiIn);
1226 fRecEtaNegPhi->Fill(tpcP->Eta(), phiIn);
1227 fRecEtaPtNegPhi->Fill(tpcP->Eta()/tpcP->Pt(), phiIn);
1229 fSignDcaNeg[cas]->Fill(sdca);
1230 fSignDcaNegInv[cas]->Fill(-sdca);
1233 fDcaSigmaNeg[cas]->Fill(sdca,TMath::Log10(sigmapt));
1235 fPtSigmaNeg[cas]->Fill(TMath::Log10(sigmapt));
1239 fRecPtNegEtaPos->Fill(tpcP->Pt());
1240 fRec1PtNegEtaPos->Fill(1/tpcP->Pt());
1241 fRecPhiNegEtaPos->Fill(phiIn);
1242 fRecDcaNegPhiEtaPos->Fill(sdca, phiIn);
1243 fRecDcaNegPtEtaPos->Fill(sdca, TMath::Log10(tpcP->Pt()));
1244 fRecPtNegPhiEtaPos->Fill(TMath::Log10(tpcP->Pt()), phiIn);
1245 fRecDcaPhiPtNegEtaPos->Fill(phiIn, tpcP->Pt(), sdca);
1249 fRecPtNegEtaNeg->Fill(tpcP->Pt());
1250 fRec1PtNegEtaNeg->Fill(1/tpcP->Pt());
1251 fRecPhiNegEtaNeg->Fill(phiIn);
1252 fRecDcaNegPhiEtaNeg->Fill(sdca, phiIn);
1253 fRecDcaNegPtEtaNeg->Fill(sdca, TMath::Log10(tpcP->Pt()));
1254 fRecPtNegPhiEtaNeg->Fill(TMath::Log10(tpcP->Pt()), phiIn);
1255 fRecDcaPhiPtNegEtaNeg->Fill(phiIn, tpcP->Pt(), sdca);
1262 //all particles with positive eta
1264 fRecQPtPosEta->Fill(tpcP->Charge()/tpcP->Pt());
1265 fRecPtPosEta->Fill(tpcP->Pt());
1266 fRecPhiPosEta->Fill(TMath::RadToDeg()*phiIn);
1267 fRecQPtPosEtaVz->Fill(tpcP->Charge()/tpcP->Pt(),tpcP->Zv());
1268 fRecDcaPosEta->Fill(sdca);
1269 fRecDPosEta->Fill(xy);
1271 //all particles with negative eta (and eta==0)
1273 fRecQPtNegEta->Fill(tpcP->Charge()/tpcP->Pt());
1274 fRecPtNegEta->Fill(tpcP->Pt());
1275 fRecPhiNegEta->Fill(TMath::RadToDeg()*phiIn);
1276 fRecQPtNegEtaVz->Fill(tpcP->Charge()/tpcP->Pt(),tpcP->Zv());
1277 fRecDcaNegEta->Fill(sdca);
1278 fRecDNegEta->Fill(xy);
1283 fRecPtTpcSector[Int_t(phiIn*
1284 TMath::RadToDeg()/20)]->Fill(tpcP->Pt());
1285 fRecEtaTpcSector[Int_t(phiIn*
1286 TMath::RadToDeg()/20)]->Fill(tpcP->Eta());
1287 fSignedDcaTpcSector[Int_t(phiIn*
1288 TMath::RadToDeg()/20)]->Fill(sdca);
1289 fRecQPtTpcSector[Int_t(phiIn*
1290 TMath::RadToDeg()/20)]->Fill(tpcP->Charge()/tpcP->Pt());
1291 fRecEtaPtTpcSector[Int_t(phiIn*
1292 TMath::RadToDeg()/20)]->Fill(tpcP->Eta()/tpcP->Pt());
1296 // // another track loop
1297 // for (Int_t iTrack2 = 0; iTrack2 < event->GetNumberOfTracks(); iTrack2++) {
1299 // if(LeadingTrack==iTrack2) continue;
1301 // AliVParticle *track2 = event->GetTrack(iTrack2);
1302 // AliESDtrack* esdtrack2 = dynamic_cast<AliESDtrack*>(track2);
1304 // Printf("ERROR: Could not receive track %d", iTrack);
1307 // if (!fCuts->AcceptTrack(esdtrack2)) continue;
1308 // //propagate to dca
1309 // esdtrack2->PropagateToDCA(event->GetPrimaryVertex(),
1310 // event->GetMagneticField(), 10000.);
1312 // fDeltaPhiLeading->Fill((LeadingPhi-esdtrack2->Phi())*TMath::RadToDeg(),
1313 // LeadingPhi*TMath::RadToDeg() );
1317 // }//second track loop
1319 if(fTrackType==2) delete tpcP; // delete in case of TPCOnlyTrack
1326 // Post output data.
1327 // PostData(1, fHistPt);
1328 PostData(1, fHists);
1335 //________________________________________________________________________
1336 void AliAnalysisTaskQASym::Terminate(Option_t *)