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)
136 ,fRecPtPosPhiEtaPos(0)
137 ,fRecPtNegPhiEtaPos(0)
138 ,fRecPtPosPhiEtaNeg(0)
139 ,fRecPtNegPhiEtaNeg(0)
142 ,fRecDcaPhiPtPosEtaPos(0)
143 ,fRecDcaPhiPtNegEtaPos(0)
144 ,fRecDcaPhiPtPosEtaNeg(0)
145 ,fRecDcaPhiPtNegEtaNeg(0)
160 for(Int_t i = 0;i<18;++i){
161 fRecPtTpcSector[i] = 0;
162 fRecEtaTpcSector[i] = 0;
163 fSignedDcaTpcSector[i] = 0;
164 fRecQPtTpcSector[i] = 0;
165 fRecEtaPtTpcSector[i] = 0;
168 for(Int_t i = 0;i< 7;++i){
169 fRecPtPosLadder[i] = 0;
170 fRecPtNegLadder[i] = 0;
171 fRecPhiPosLadder[i] = 0;
172 fRecPhiNegLadder[i] = 0;
173 fRecEtaPosLadder[i] = 0;
174 fRecEtaNegLadder[i] = 0;
177 fSignDcaNegInv[i] = 0;
185 DefineOutput(1, TList::Class());
192 //________________________________________________________________________
193 void AliAnalysisTaskQASym::UserCreateOutputObjects()
198 Bool_t oldStatus = TH1::AddDirectoryStatus();
199 TH1::AddDirectory(kFALSE);
201 Double_t range = 0.2;
204 fHists = new TList();
205 // test = new TNtuple("test","test",
206 // "pt:phi:theta:x:y:z:charge");
207 fHistRECpt = new TH1F("fHistRECpt",
210 fEta = new TH1F("fEta",
213 fEtavPt = new TH2F("fEtavPt",
217 fEtaPhi = new TH2F("fEtaPhi",
219 200, -2., 2., 128, 0., 2. * TMath::Pi());
221 fThetaRec = new TH1F("fThetaRec",
223 180, 0., TMath::Pi());
224 fPhiRec = new TH1F("fPhiRec",
226 180, 0., 2*TMath::Pi());
227 fNumber = new TH1F("fNumber",
228 "number of tracks per event",
230 fVx = new TH1F("fVx",
233 fVy = new TH1F("fVy",
236 fVz = new TH1F("fVz",
240 fEtaPt = new TH1F("fEtaPt",
244 fQPt = new TH1F("fQPt",
248 fDca = new TH1F("fDca",
250 200, -range*(1+Int_t(fTrackType/2)*9), range*(1+Int_t(fTrackType/2)*9));
253 fqRec = new TH1F("fqRec",
254 " charge all reconstructed particle",
257 fsigmaPt = new TH1F("fsigmaPt",
258 "Log_{10}(#sigma_{p_{T}})",
265 for(Int_t ITSlayer_case=0;ITSlayer_case<7;ITSlayer_case++){
267 fSignDcaPos[ITSlayer_case] = new TH1F(Form("fSignDcaPos%d", ITSlayer_case),
269 200, -range*(1+Int_t(fTrackType/2)*9), range*(1+Int_t(fTrackType/2)*9));
270 fSignDcaPos[ITSlayer_case]->GetXaxis()->SetTitle("dca");
271 fSignDcaPos[ITSlayer_case]->GetYaxis()->SetTitle("");
274 fSignDcaNeg[ITSlayer_case] = new TH1F(Form("fSignDcaNeg%d", ITSlayer_case),
276 200, -range*(1+Int_t(fTrackType/2)*9), range*(1+Int_t(fTrackType/2)*9));
277 fSignDcaNeg[ITSlayer_case]->GetXaxis()->SetTitle("dca");
278 fSignDcaNeg[ITSlayer_case]->GetYaxis()->SetTitle("");
280 fSignDcaNegInv[ITSlayer_case] = new TH1F(Form("fSignDcaNegInv%d", ITSlayer_case),
281 " inverse Signed dca ",
282 200, -range*(1+Int_t(fTrackType/2)*9), range*(1+Int_t(fTrackType/2)*9));
283 fSignDcaNegInv[ITSlayer_case]->GetXaxis()->SetTitle("-dca");
284 fSignDcaNegInv[ITSlayer_case]->GetYaxis()->SetTitle("");
289 fPtSigmaPos[ITSlayer_case] = new TH1F(Form("fPtSigmaPos%d", ITSlayer_case),
292 fPtSigmaPos[ITSlayer_case]->GetXaxis()->SetTitle("Log_{10}(#sigma_{pT})");
293 fPtSigmaPos[ITSlayer_case]->GetYaxis()->SetTitle("");
296 fPtSigmaNeg[ITSlayer_case] = new TH1F(Form("fPtSigmaNeg%d",ITSlayer_case),
299 fPtSigmaNeg[ITSlayer_case]->GetXaxis()->SetTitle("Log_{10}(#sigma_{pT})");
300 fPtSigmaNeg[ITSlayer_case]->GetYaxis()->SetTitle("");
306 fqPtRec[ITSlayer_case] = new TH1F(Form("fqPtRec%d",ITSlayer_case),
309 fqPtRec[ITSlayer_case]->GetXaxis()->SetTitle("q_{tr}/p_{T, tr} (GeV/c)");
310 fqPtRec[ITSlayer_case]->GetYaxis()->SetTitle("");
316 fDcaSigmaPos[ITSlayer_case] = new TH2F(Form("fDcaSigmaPos%d", ITSlayer_case),
317 " p_{T} shift vs #sigma_{pT} ",
318 200, -range*(1+Int_t(fTrackType/2)*9), range*(1+Int_t(fTrackType/2)*9),200, -4., 4. );
319 fDcaSigmaPos[ITSlayer_case]->GetXaxis()->SetTitle("signed DCA)");
320 fDcaSigmaPos[ITSlayer_case]->GetYaxis()->SetTitle("log_{10}(#sigma_{pT})");
323 fDcaSigmaNeg[ITSlayer_case] = new TH2F(Form("fDcaSigmaNeg%d", ITSlayer_case),
324 " p_{T} shift vs #sigma_{pT} ",
325 200, -range*(1+Int_t(fTrackType/2)*9), range*(1+Int_t(fTrackType/2)*9),200, -4., 4. );
326 fDcaSigmaNeg[ITSlayer_case]->GetXaxis()->SetTitle("signed DCA");
327 fDcaSigmaNeg[ITSlayer_case]->GetYaxis()->SetTitle("log_{10}(#sigma_{pT})");
334 // YIELDs---------- positive and negative particles
336 fRecPtPos = new TH1F("fRecPtPos",
339 fRecPtPos->GetXaxis()->SetTitle("p_{T} (GeV/c)");
340 fRecPtNeg = new TH1F("fRecPtNeg",
343 fRecPtNeg->GetXaxis()->SetTitle("p_{T} (GeV/c)");
346 fRecPhiPos = new TH1F("fRecPhiPos",
349 fRecPhiPos->GetXaxis()->SetTitle("#phi (deg)");
351 fRecPhiNeg = new TH1F("fRecPhiNeg",
354 fRecPhiNeg->GetXaxis()->SetTitle("#phi (deg)");
356 fRecEtaPos = new TH1F("fRecEtaPos",
359 fRecEtaPos->GetXaxis()->SetTitle("#eta");
361 fRecEtaNeg = new TH1F("fRecEtaNeg",
364 fRecEtaNeg->GetXaxis()->SetTitle("#eta");
366 fRecEtaPtPos = new TH1F("fRecEtaPtPos",
369 fRecEtaPtPos->GetXaxis()->SetTitle("#eta/p_{T}");
371 fRecEtaPtNeg = new TH1F("fRecEtaPtNeg",
374 fRecEtaPtNeg->GetXaxis()->SetTitle("#eta/p_{T}");
376 fRecDcaPos = new TH1F("fRecDcaPos",
378 100, -range*(1+Int_t(fTrackType/2)*9), range*(1+Int_t(fTrackType/2)*9));
379 fRecDcaPos->GetXaxis()->SetTitle("dca (cm)");
380 fRecDcaNeg = new TH1F("fRecDcaNeg",
382 100, -range*(1+Int_t(fTrackType/2)*9), range*(1+Int_t(fTrackType/2)*9));
383 fRecDcaNeg->GetXaxis()->SetTitle("dca (cm)");
385 fRecDcaNegInv = new TH1F("fRecDcaNegInv",
387 100, -range*(1+Int_t(fTrackType/2)*9), range*(1+Int_t(fTrackType/2)*9));
388 fRecDcaNegInv->GetXaxis()->SetTitle("dca (cm)");
391 fRecDPos = new TH1F("fRecDPos",
393 100, -range*(1+Int_t(fTrackType/2)*9), range*(1+Int_t(fTrackType/2)*9));
394 fRecDPos->GetXaxis()->SetTitle("d (cm)");
395 fRecDNeg = new TH1F("fRecDNeg",
397 100, -range*(1+Int_t(fTrackType/2)*9), range*(1+Int_t(fTrackType/2)*9));
398 fRecDNeg->GetXaxis()->SetTitle("d (cm)");
401 // YIELDs ---------------- positive and negative eta
404 fRecQPtPosEta = new TH1F("fRecQPtPosEta",
407 fRecQPtPosEta->GetXaxis()->SetTitle("q/p_{T} ");
409 fRecQPtNegEta = new TH1F("fRecQPtNegEta",
412 fRecQPtNegEta->GetXaxis()->SetTitle("q/p_{T}");
414 fRecPtPosEta = new TH1F("fRecPtPosEta",
417 fRecPtPosEta->GetXaxis()->SetTitle("p_{T} (GeV/c)");
419 fRecPtNegEta = new TH1F("fRecPtNegEta",
422 fRecPtNegEta->GetXaxis()->SetTitle("p_{T} (GeV/c)");
424 fRecPhiPosEta = new TH1F("fRecPhiPosEta",
427 fRecPhiPosEta->GetXaxis()->SetTitle("#phi (deg)");
429 fRecPhiNegEta = new TH1F("fRecPhiNegEta",
432 fRecPhiNegEta->GetXaxis()->SetTitle("#phi (deg)");
434 fRecDcaPosEta = new TH1F("fRecDcaPosEta",
436 100, -range*(1+Int_t(fTrackType/2)*9), range*(1+Int_t(fTrackType/2)*9));
437 fRecDcaPosEta->GetXaxis()->SetTitle("dca (cm)");
438 fRecDcaNegEta = new TH1F("fRecDcaNegEta",
440 100, -range*(1+Int_t(fTrackType/2)*9), range*(1+Int_t(fTrackType/2)*9));
441 fRecDcaNegEta->GetXaxis()->SetTitle("dca (cm)");
443 fRecDPosEta = new TH1F("fRecDPosEta",
445 100, -range*(1+Int_t(fTrackType/2)*9), range*(1+Int_t(fTrackType/2)*9));
446 fRecDPosEta->GetXaxis()->SetTitle("d (cm)");
447 fRecDNegEta = new TH1F("fRecDNegEta",
450 fRecDNegEta->GetXaxis()->SetTitle("d (cm)");
452 fRecDcaPosPhi = new TH2F("fRecDcaPosPhi",
454 100, -range*(1+Int_t(fTrackType/2)*9), range*(1+Int_t(fTrackType/2)*9), 180, 0, TMath::Pi()*2);
455 fRecDcaPosPhi->GetXaxis()->SetTitle("dca (cm)");
456 fRecDcaPosPhi->GetYaxis()->SetTitle("#phi (rad.)");
457 fRecDcaNegPhi = new TH2F("fRecDcaNegPhi",
459 100, -range*(1+Int_t(fTrackType/2)*9), range*(1+Int_t(fTrackType/2)*9), 180, 0, TMath::Pi()*2);
460 fRecDcaNegPhi->GetXaxis()->SetTitle("dca (cm)");
461 fRecDcaNegPhi->GetYaxis()->SetTitle("#phi (rad.)");
463 fRecPtPosPhi = new TH2F("fRecPtPosPhi",
465 100, -2.5, 2., 180, 0, TMath::Pi()*2);
466 fRecPtPosPhi->GetXaxis()->SetTitle("log_{10}(p_{T})");
467 fRecPtPosPhi->GetYaxis()->SetTitle("#phi (rad.)");
468 fRecPtNegPhi = new TH2F("fRecPtNegPhi",
470 100,-2.5 , 2., 180, 0, TMath::Pi()*2);
471 fRecPtNegPhi->GetXaxis()->SetTitle("log_{10}(p_{T})");
472 fRecPtNegPhi->GetYaxis()->SetTitle("#phi (rad.)");
474 fRecEtaPosPhi = new TH2F("fRecEtaPosPhi",
476 100, -1.5, 1.5, 180, 0, TMath::Pi()*2);
477 fRecEtaPosPhi->GetXaxis()->SetTitle("#eta");
478 fRecEtaPosPhi->GetYaxis()->SetTitle("#phi (rad.)");
479 fRecEtaNegPhi = new TH2F("fRecEtaNegPhi",
481 100, -1.5, 1.5, 180, 0, TMath::Pi()*2);
482 fRecEtaNegPhi->GetXaxis()->SetTitle("#eta");
483 fRecEtaNegPhi->GetYaxis()->SetTitle("#phi (rad.)");
485 fRecQPtPhi = new TH2F("fRecQPtPhi",
486 " charge/p_T vs. phi",
487 100,-1. , 1., 180, 0, TMath::Pi()*2);
488 fRecQPtPhi->GetXaxis()->SetTitle("charge/p_{T}");
489 fRecQPtPhi->GetYaxis()->SetTitle("#phi (rad.)");
491 fRecEtaPtPosPhi = new TH2F("fRecEtaPtPosPhi",
493 100, -5, 5., 180, 0, TMath::Pi()*2);
494 fRecEtaPtPosPhi->GetXaxis()->SetTitle("#eta/p_{T}");
495 fRecEtaPtPosPhi->GetYaxis()->SetTitle("#phi (rad.)");
496 fRecEtaPtNegPhi = new TH2F("fRecEtaPtNegPhi",
498 100,-5 , 5., 180, 0, TMath::Pi()*2);
499 fRecEtaPtNegPhi->GetXaxis()->SetTitle("#eta/p_{T}");
500 fRecEtaPtNegPhi->GetYaxis()->SetTitle("#phi (rad.)");
506 fRecDcaPosPhiEtaPos = new TH2F("fRecDcaPosPhiEtaPos",
508 100, -range*(1+Int_t(fTrackType/2)*9), range*(1+Int_t(fTrackType/2)*9), 180, 0, TMath::Pi()*2);
509 fRecDcaPosPhiEtaPos->GetXaxis()->SetTitle("dca (cm)");
510 fRecDcaPosPhiEtaPos->GetYaxis()->SetTitle("#phi (rad.)");
511 fRecDcaNegPhiEtaPos = new TH2F("fRecDcaNegPhiEtaPos",
513 100, -range*(1+Int_t(fTrackType/2)*9), range*(1+Int_t(fTrackType/2)*9), 180, 0, TMath::Pi()*2);
514 fRecDcaNegPhiEtaPos->GetXaxis()->SetTitle("dca (cm)");
515 fRecDcaNegPhiEtaPos->GetYaxis()->SetTitle("#phi (rad.)");
517 fRecPtPosPhiEtaPos = new TH2F("fRecPtPosPhiEtaPos",
519 100, -2.5, 2., 180, 0, TMath::Pi()*2);
520 fRecPtPosPhiEtaPos->GetXaxis()->SetTitle("log_{10}(p_{T})");
521 fRecPtPosPhiEtaPos->GetYaxis()->SetTitle("#phi (rad.)");
522 fRecPtNegPhiEtaPos = new TH2F("fRecPtNegPhiEtaPos",
524 100,-2.5 , 2., 180, 0, TMath::Pi()*2);
525 fRecPtNegPhiEtaPos->GetXaxis()->SetTitle("log_{10}(p_{T})");
526 fRecPtNegPhiEtaPos->GetYaxis()->SetTitle("#phi (rad.)");
529 fRecDcaPosPhiEtaNeg = new TH2F("fRecDcaPosPhiEtaNeg",
531 100, -range*(1+Int_t(fTrackType/2)*9), range*(1+Int_t(fTrackType/2)*9), 180, 0, TMath::Pi()*2);
532 fRecDcaPosPhiEtaNeg->GetXaxis()->SetTitle("dca (cm)");
533 fRecDcaPosPhiEtaNeg->GetYaxis()->SetTitle("#phi (rad.)");
534 fRecDcaNegPhiEtaNeg = new TH2F("fRecDcaNegPhiEtaNeg",
536 100, -range*(1+Int_t(fTrackType/2)*9), range*(1+Int_t(fTrackType/2)*9), 180, 0, TMath::Pi()*2);
537 fRecDcaNegPhiEtaNeg->GetXaxis()->SetTitle("dca (cm)");
538 fRecDcaNegPhiEtaNeg->GetYaxis()->SetTitle("#phi (rad.)");
540 fRecPtPosPhiEtaNeg = new TH2F("fRecPtPosPhiEtaNeg",
542 100, -2.5, 2., 180, 0, TMath::Pi()*2);
543 fRecPtPosPhiEtaNeg->GetXaxis()->SetTitle("log_{10}(p_{T})");
544 fRecPtPosPhiEtaNeg->GetYaxis()->SetTitle("#phi (rad.)");
545 fRecPtNegPhiEtaNeg = new TH2F("fRecPtNegPhiEtaNeg",
547 100,-2.5 , 2., 180, 0, TMath::Pi()*2);
548 fRecPtNegPhiEtaNeg->GetXaxis()->SetTitle("log_{10}(p_{T})");
549 fRecPtNegPhiEtaNeg->GetYaxis()->SetTitle("#phi (rad.)");
554 // YIELDs ---------------- for TPC sectors
555 for(Int_t sector=0; sector<18;sector++){
558 fRecPtTpcSector[sector] = new TH1F(Form("fRecPtTpcSector%02d",sector),
559 Form("p_{T} distribution: TPC sector %d",
560 sector),100, 0., pt);
561 fRecPtTpcSector[sector]->GetXaxis()->SetTitle("p_{T} (GeV/c)");
563 fRecEtaTpcSector[sector] = new TH1F(Form("fRecEtaTpcSector%02d",sector),
564 Form("#eta distribution: TPC sector %d",
565 sector),200, -2., 2.);
566 fRecEtaTpcSector[sector]->GetXaxis()->SetTitle("p_{T} (GeV/c)");
569 fSignedDcaTpcSector[sector] = new TH1F(Form("fSignedDcaTpcSector%02d",sector),
570 Form("dca distribution: TPC sector %d",
571 sector),200, -range*(1+Int_t(fTrackType/2)*9), range*(1+Int_t(fTrackType/2)*9) );
572 fSignedDcaTpcSector[sector]->GetXaxis()->SetTitle("dca");
574 fRecQPtTpcSector[sector] = new TH1F(Form("fRecQPtTpcSector%02d",sector),
575 Form("Q/ p_{T} distribution: TPC sector %d",
576 sector),100, -1., 1.);
577 fRecQPtTpcSector[sector]->GetXaxis()->SetTitle("Q/p_{T} (GeV/c)");
579 fRecEtaPtTpcSector[sector] = new TH1F(Form("fRecEtaPtTpcSector%02d",sector),
580 Form("#eta/ p_{T} distribution: TPC sector %d",
581 sector),100, -1., 1.);
582 fRecEtaPtTpcSector[sector]->GetXaxis()->SetTitle("#eta/p_{T} (GeV/c)");
586 for(Int_t i=0;i<7;i++){
587 fRecPtPosLadder[i] = new TH1F(Form("fRecPtPosLadder%d", i),
588 " p_{T} distribution",
590 fRecPtPosLadder[i]->GetXaxis()->SetTitle("p_{T} (GeV/c)");
591 fRecPtNegLadder[i] = new TH1F(Form("fRecPtNegLadder%d",i),
592 " p_{T} distribution ",
594 fRecPtNegLadder[i]->GetXaxis()->SetTitle("p_{T} (GeV/c)");
597 fRecPhiPosLadder[i] = new TH1F(Form("fRecPhiPosLadder%d",i),
598 "#phi distribution: all pos eta",
600 fRecPhiPosLadder[i]->GetXaxis()->SetTitle("#phi (deg)");
602 fRecPhiNegLadder[i] = new TH1F(Form("fRecPhiNegLadder%d", i),
603 "#phi distribution: all neg eta",
605 fRecPhiNegLadder[i]->GetXaxis()->SetTitle("#phi (deg)");
609 fRecEtaPosLadder[i] = new TH1F(Form("fRecEtaPosLadder%d",i),
612 fRecEtaPosLadder[i]->GetXaxis()->SetTitle("#eta)");
614 fRecEtaNegLadder[i] = new TH1F(Form("fRecEtaNegLadder%d", i),
617 fRecEtaNegLadder[i]->GetXaxis()->SetTitle("#eta");
622 fRecPtPosVz = new TH2F("fRecPtPosVz",
623 "p_{T} distribution vs Vz()",
624 100, -1., 2., 200,-vzmax,vzmax);
625 fRecPtPosVz->GetXaxis()->SetTitle("log_{10}(p_{T})");
627 fRecPtNegVz = new TH2F("fRecPtNegVz",
628 "p_{T} distribution vs Vz()",
629 100, -1., 2.,200,-vzmax,vzmax);
630 fRecPtNegVz->GetXaxis()->SetTitle("Log_{10}(p_{T})");
633 fRecEtaPosVz= new TH2F("fRecEtaPosVz",
634 "#eta distribution vs Vz()",
635 100, -2., 2., 200,-vzmax,vzmax);
636 fRecEtaPosVz->GetXaxis()->SetTitle("#eta");
637 fRecEtaNegVz = new TH2F("fRecEtaNegVz",
638 "#eta distribution vs Vz()",
639 100, -2., 2.,200,-vzmax,vzmax);
640 fRecEtaNegVz->GetXaxis()->SetTitle("#eta");
642 fRecPhiPosVz= new TH2F("fRecPhiPosVz",
643 "#eta distribution vs Vz()",
644 361, 0., 360., 200,-vzmax,vzmax);
645 fRecPhiPosVz->GetXaxis()->SetTitle("#phi (deg)");
646 fRecPhiNegVz = new TH2F("fRecPhiNegVz",
648 361, 0., 360.,200,-vzmax,vzmax);
649 fRecPhiNegVz->GetXaxis()->SetTitle("#phi (deg)");
651 fSignedDcaPosVz= new TH2F("fSignedDcaPosVz",
652 "#eta distribution vs Vz()",
653 200, -range*(1+Int_t(fTrackType/2)*9), range*(1+Int_t(fTrackType/2)*9), 200,-vzmax,vzmax);
654 fSignedDcaPosVz->GetXaxis()->SetTitle("dca (cm)");
655 fSignedDcaNegVz = new TH2F("fSignedDcaNegVz",
657 200, -range*(1+Int_t(fTrackType/2)*9), range*(1+Int_t(fTrackType/2)*9),200,-vzmax,vzmax);
658 fSignedDcaNegVz->GetXaxis()->SetTitle("dca (cm)");
660 fRecQPtPosEtaVz= new TH2F("fRecQPtPosEtaVz",
661 " Q/p_{T} distribution vs Vz()",
662 100, -1., 1., 200,-vzmax,vzmax);
663 fRecQPtPosEtaVz->GetXaxis()->SetTitle("Q/p_{T}");
664 fRecQPtNegEtaVz = new TH2F("fRecQPtNegEtaVz",
665 " Q/p_{T} distribution vs Vz()",
666 100, -1., 1.,200,-vzmax,vzmax);
667 fRecQPtNegEtaVz->GetXaxis()->SetTitle("Q/p_{T}");
670 fRecEtaPtPosVz= new TH2F("fRecEtaPtPosVz",
671 " #eta/p_{T} distribution vs Vz()",
672 100, -1., 1., 200,-vzmax,vzmax);
673 fRecEtaPtPosVz->GetXaxis()->SetTitle("#eta/p_{T");
674 fRecEtaPtNegVz = new TH2F("fRecEtaPtNegVz",
675 " #eta/p_{T} distribution vs Vz()",
676 100, -1., 1.,200,-vzmax,vzmax);
677 fRecEtaPtNegVz->GetXaxis()->SetTitle("#eta/p_{T}");
680 fDeltaPhiAll = new TH1F("fDeltaPhiAll",
681 " #Delta #phi",200,-360,360);
682 fDeltaPhiAll->GetXaxis()->SetTitle("#Delta #phi");
685 fDeltaPhiLeading = new TH2F("fDeltaPhiLeading",
686 " #Delta #phi",361,-360,360, 361,0, 360);
687 fDeltaPhiLeading->GetXaxis()->SetTitle("#Delta #phi (deg.)");
688 fDeltaPhiLeading->GetYaxis()->SetTitle("#phi_{leading particle} (deg.)");
690 fDiffDcaD = new TH1F("fDiffDcaD",
695 fRecPtPosEtaPos = new TH1F("fRecPtPosEtaPos",
696 "p_{T} distribution",100,0,pt);
697 fRecPtPosEtaPos->GetXaxis()->SetTitle("p_{T} (GeV/c)");
699 fRecPtNegEtaPos = new TH1F("fRecPtNegEtaPos",
700 "p_{T} distribution",100,0,pt);
701 fRecPtNegEtaPos->GetXaxis()->SetTitle("p_{T} (GeV/c)");
703 fRecPtPosEtaNeg = new TH1F("fRecPtPosEtaNeg",
704 "p_{T} distribution",100,0,pt);
705 fRecPtPosEtaNeg->GetXaxis()->SetTitle("p_{T} (GeV/c)");
707 fRecPtNegEtaNeg = new TH1F("fRecPtNegEtaNeg",
708 "p_{T} distribution",100,0,pt);
709 fRecPtNegEtaNeg->GetXaxis()->SetTitle("p_{T} (GeV/c)");
713 fRec1PtPosEtaPos = new TH1F("fRec1PtPosEtaPos",
714 "1/p_{T} distribution",100,0,0.5);
715 fRec1PtPosEtaPos->GetXaxis()->SetTitle("p_{T} (c/GeV)");
717 fRec1PtNegEtaPos = new TH1F("fRec1PtNegEtaPos",
718 "1/p_{T} distribution",100,0,0.5);
719 fRec1PtNegEtaPos->GetXaxis()->SetTitle("p_{T} (c/GeV)");
721 fRec1PtPosEtaNeg = new TH1F("fRec1PtPosEtaNeg",
722 "1/p_{T} distribution",100,0,0.5);
723 fRec1PtPosEtaNeg->GetXaxis()->SetTitle("p_{T} (c/GeV)");
725 fRec1PtNegEtaNeg = new TH1F("fRec1PtNegEtaNeg",
726 "1/p_{T} distribution",100,0,0.5);
727 fRec1PtNegEtaNeg->GetXaxis()->SetTitle("1/p_{T} (c/GeV)");
731 fRecPhiPosEtaPos = new TH1F("fRecPhiPosEtaPos",
732 "#phi",180,0,2*TMath::Pi());
733 fRecPhiPosEtaPos->GetXaxis()->SetTitle("#phi (rad.)");
735 fRecPhiNegEtaPos = new TH1F("fRecPhiNegEtaPos",
736 "#phi",180,0,2*TMath::Pi());
737 fRecPhiNegEtaPos->GetXaxis()->SetTitle("#phi (rad.)");
739 fRecPhiPosEtaNeg = new TH1F("fRecPhiPosEtaNeg",
740 "#phi",180,0,2*TMath::Pi());
741 fRecPhiPosEtaNeg->GetXaxis()->SetTitle("#phi (rad.)");
743 fRecPhiNegEtaNeg = new TH1F("fRecPhiNegEtaNeg",
744 "#phi",180,0,2*TMath::Pi());
745 fRecPhiNegEtaNeg->GetXaxis()->SetTitle("#phi (rad.)");
749 fRecDcaPhiPtPosEtaPos = new TH3F("fRecDcaPhiPtPosEtaPos",
753 100, -range*(1+Int_t(fTrackType/2)*9), range*(1+Int_t(fTrackType/2)*9));
754 fRecDcaPhiPtPosEtaPos->GetXaxis()->SetTitle("#phi (rad.)");
755 fRecDcaPhiPtPosEtaPos->GetYaxis()->SetTitle("p_{T} (GeV/c)");
756 fRecDcaPhiPtPosEtaPos->GetZaxis()->SetTitle("dca (cm)");
758 fRecDcaPhiPtPosEtaNeg = new TH3F("fRecDcaPhiPtPosEtaNeg",
762 100, -range*(1+Int_t(fTrackType/2)*9), range*(1+Int_t(fTrackType/2)*9));
763 fRecDcaPhiPtPosEtaNeg->GetZaxis()->SetTitle("dca (cm)");
764 fRecDcaPhiPtPosEtaNeg->GetXaxis()->SetTitle("#phi (rad.)");
765 fRecDcaPhiPtPosEtaNeg->GetYaxis()->SetTitle("p_{T} (GeV/c)");
767 fRecDcaPhiPtNegEtaPos = new TH3F("fRecDcaPhiPtNegEtaPos",
771 100, -range*(1+Int_t(fTrackType/2)*9), range*(1+Int_t(fTrackType/2)*9));
772 fRecDcaPhiPtNegEtaPos->GetZaxis()->SetTitle("dca (cm)");
773 fRecDcaPhiPtNegEtaPos->GetXaxis()->SetTitle("#phi (rad.)");
774 fRecDcaPhiPtNegEtaPos->GetYaxis()->SetTitle("p_{T} (GeV/c)");
776 fRecDcaPhiPtNegEtaNeg = new TH3F("fRecDcaPhiPtNegEtaNeg",
780 100, -range*(1+Int_t(fTrackType/2)*9), range*(1+Int_t(fTrackType/2)*9));
781 fRecDcaPhiPtNegEtaNeg->GetZaxis()->SetTitle("dca (cm)");
782 fRecDcaPhiPtNegEtaNeg->GetYaxis()->SetTitle("#phi (rad.)");
783 fRecDcaPhiPtNegEtaNeg->GetXaxis()->SetTitle("p_{T} (GeV/c)");
790 fHists->Add(fHistRECpt);
792 fHists->Add(fEtavPt);
793 fHists->Add(fEtaPhi);
794 fHists->Add(fThetaRec);
795 fHists->Add(fPhiRec);
796 fHists->Add(fNumber);
805 fHists->Add(fDeltaPhiAll);
806 fHists->Add(fDeltaPhiLeading);
807 fHists->Add(fDiffDcaD);
810 fHists->Add(fsigmaPt);
812 fHists->Add(fRecPtPos);
813 fHists->Add(fRecPtNeg);
814 fHists->Add(fRecPhiPos);
815 fHists->Add(fRecPhiNeg);
816 fHists->Add(fRecEtaPos);
817 fHists->Add(fRecEtaNeg);
818 fHists->Add(fRecEtaPtPos);
819 fHists->Add(fRecEtaPtNeg);
820 fHists->Add(fRecDcaPos);
821 fHists->Add(fRecDcaNeg);
822 fHists->Add(fRecDcaNegInv);
823 fHists->Add(fRecDPos);
824 fHists->Add(fRecDNeg);
827 fHists->Add(fRecQPtPosEta);
828 fHists->Add(fRecQPtNegEta);
829 fHists->Add(fRecPtPosEta);
830 fHists->Add(fRecPtNegEta);
831 fHists->Add(fRecPhiPosEta);
832 fHists->Add(fRecPhiNegEta);
833 fHists->Add(fRecDcaPosEta);
834 fHists->Add(fRecDcaNegEta);
835 fHists->Add(fRecDPosEta);
836 fHists->Add(fRecDNegEta);
839 for(Int_t i=0;i<18;i++){
840 fHists->Add(fRecPtTpcSector[i]);
841 fHists->Add(fRecEtaTpcSector[i]);
842 fHists->Add(fSignedDcaTpcSector[i]);
843 fHists->Add(fRecQPtTpcSector[i]);
844 fHists->Add(fRecEtaPtTpcSector[i]);
847 for(Int_t i=0;i<7;i++){
848 fHists->Add(fRecPtPosLadder[i]);
849 fHists->Add(fRecPtNegLadder[i]);
850 fHists->Add(fRecPhiPosLadder[i]);
851 fHists->Add(fRecPhiNegLadder[i]);
852 fHists->Add(fRecEtaPosLadder[i]);
853 fHists->Add(fRecEtaNegLadder[i]);
856 fHists->Add(fRecPtPosVz);
857 fHists->Add(fRecPtNegVz);
858 fHists->Add(fRecEtaPosVz);
859 fHists->Add(fRecEtaNegVz);
860 fHists->Add(fRecPhiPosVz);
861 fHists->Add(fRecPhiNegVz);
862 fHists->Add(fSignedDcaPosVz);
863 fHists->Add(fSignedDcaNegVz);
864 fHists->Add(fRecQPtPosEtaVz);
865 fHists->Add(fRecQPtNegEtaVz);
866 fHists->Add(fRecEtaPtPosVz);
867 fHists->Add(fRecEtaPtNegVz);
870 for(Int_t i=0;i<7;i++){
871 fHists->Add(fSignDcaPos[i]);
872 fHists->Add(fSignDcaNeg[i]);
873 fHists->Add(fSignDcaNegInv[i]);
875 fHists->Add(fPtSigmaPos[i]);
876 fHists->Add(fPtSigmaNeg[i]);
877 fHists->Add(fqPtRec[i]);
879 fHists->Add(fDcaSigmaPos[i]);
880 fHists->Add(fDcaSigmaNeg[i]);
885 fHists->Add(fRecDcaPosPhi);
886 fHists->Add(fRecDcaNegPhi);
887 fHists->Add(fRecPtPosPhi);
888 fHists->Add(fRecPtNegPhi);
889 fHists->Add(fRecEtaPosPhi);
890 fHists->Add(fRecEtaNegPhi);
891 fHists->Add(fRecQPtPhi);
892 fHists->Add(fRecEtaPtPosPhi);
893 fHists->Add(fRecEtaPtNegPhi);
895 fHists->Add(fRecPtPosEtaPos);
896 fHists->Add(fRecPtNegEtaPos);
897 fHists->Add(fRecPtPosEtaNeg);
898 fHists->Add(fRecPtNegEtaNeg);
900 fHists->Add(fRec1PtPosEtaPos);
901 fHists->Add(fRec1PtNegEtaPos);
902 fHists->Add(fRec1PtPosEtaNeg);
903 fHists->Add(fRec1PtNegEtaNeg);
906 fHists->Add(fRecPhiPosEtaPos);
907 fHists->Add(fRecPhiNegEtaPos);
908 fHists->Add(fRecPhiPosEtaNeg);
909 fHists->Add(fRecPhiNegEtaNeg);
911 fHists->Add(fRecDcaPosPhiEtaPos);
912 fHists->Add(fRecDcaNegPhiEtaPos);
913 fHists->Add(fRecPtPosPhiEtaPos);
914 fHists->Add(fRecPtNegPhiEtaPos);
915 fHists->Add(fRecDcaPosPhiEtaNeg);
916 fHists->Add(fRecDcaNegPhiEtaNeg);
917 fHists->Add(fRecPtPosPhiEtaNeg);
918 fHists->Add(fRecPtNegPhiEtaNeg);
920 fHists->Add(fRecDcaPhiPtPosEtaPos);
921 fHists->Add(fRecDcaPhiPtPosEtaNeg);
922 fHists->Add(fRecDcaPhiPtNegEtaPos);
923 fHists->Add(fRecDcaPhiPtNegEtaNeg);
929 // for (Int_t i=0; i<fHists->GetEntries(); ++i) {
930 // TH1 *h1 = dynamic_cast<TH1*>(fHists->At(i));
932 // // Printf("%s ",h1->GetName());
938 TH1::AddDirectory(oldStatus);
941 //__________________________________________________________
943 void AliAnalysisTaskQASym::UserExec(Option_t *)
945 AliVEvent *event = InputEvent();
947 Printf("ERROR: Could not retrieve event");
953 AliESDEvent* esd = dynamic_cast<AliESDEvent*>(event);
955 Printf("We are reading from ESD");
962 if(fDebug>1)Printf("There are %d tracks in this event", event->GetNumberOfTracks());
965 Int_t leadingTrack = 0;
966 Float_t leadingEnergy = -20.;
967 Float_t leadingPhi = 0;//TMath::Pi();
970 if(event->GetNumberOfTracks()!=0) fNumber->Fill(event->GetNumberOfTracks());
972 const AliVVertex* vertex = event->GetPrimaryVertex();
973 Float_t vz = vertex->GetZ();
974 if (TMath::Abs(vz) > 10.) return;
976 for (Int_t iTrack = 0; iTrack < event->GetNumberOfTracks(); iTrack++) {
979 AliVParticle *track = event->GetTrack(iTrack);
980 AliESDtrack *esdtrack = dynamic_cast<AliESDtrack*>(track);
981 esdtrack->PropagateToDCA(event->GetPrimaryVertex(),
982 event->GetMagneticField(), 10000.);
985 Printf("ERROR: Could not receive track %d", iTrack);
989 // run Task for global tracks or ITS tracks or TPC tracks
990 AliESDtrack *tpcP = 0x0;
991 const AliExternalTrackParam *tpcPin = 0x0;
994 //Fill all histograms with global tracks
998 if (!fCuts->AcceptTrack(tpcP)) continue;
1000 else if(fTrackType==1){
1001 //Fill all histograms with ITS tracks
1003 phiIn = tpcP->Phi();
1004 if (!tpcP) continue;
1005 if (!fCuts->AcceptTrack(tpcP)) continue;
1007 else if(fTrackType==2){
1008 //Fill all histograms with TPC track information
1009 tpcPin = esdtrack->GetInnerParam();
1010 if (!tpcPin) continue;
1011 phiIn=tpcPin->Phi();
1013 tpcP = AliESDtrackCuts::GetTPCOnlyTrack(dynamic_cast<AliESDEvent*>(event),esdtrack->GetID());
1014 if (!tpcP) continue;
1015 if (!fCuts->AcceptTrack(tpcP)) continue;
1016 if(tpcP->GetNcls(1)>160)continue;//jacek's track cut
1017 if(tpcP->GetConstrainedChi2TPC()<0)continue; // jacek's track cut
1020 Printf("ERROR: wrong track type \n");
1027 if(tpcP->E()>leadingEnergy){
1028 leadingTrack=iTrack;
1029 leadingEnergy=tpcP->E();
1034 fqRec->Fill(tpcP->Charge());
1037 Double_t sigmapt = tpcP->GetSigma1Pt2();
1038 sigmapt= sqrt(sigmapt);
1039 sigmapt= sigmapt *(tpcP->Pt()*tpcP->Pt());
1041 if(sigmapt == 0.)continue;
1042 fsigmaPt->Fill(TMath::Log10(sigmapt));
1045 // hits in ITS layer
1047 if(tpcP->HasPointOnITSLayer(0))
1049 else if(!tpcP->HasPointOnITSLayer(0)
1050 && tpcP->HasPointOnITSLayer(1))
1052 else if(!tpcP->HasPointOnITSLayer(0)
1053 && !tpcP->HasPointOnITSLayer(1)
1054 && tpcP->HasPointOnITSLayer(2))
1056 else if(!tpcP->HasPointOnITSLayer(0)
1057 && !tpcP->HasPointOnITSLayer(1)
1058 && !tpcP->HasPointOnITSLayer(2)
1059 && tpcP->HasPointOnITSLayer(3))
1061 else if(!tpcP->HasPointOnITSLayer(0)
1062 && !tpcP->HasPointOnITSLayer(1)
1063 && !tpcP->HasPointOnITSLayer(2)
1064 && !tpcP->HasPointOnITSLayer(3)
1065 && tpcP->HasPointOnITSLayer(4))
1067 else if( !tpcP->HasPointOnITSLayer(0)
1068 && !tpcP->HasPointOnITSLayer(1)
1069 && !tpcP->HasPointOnITSLayer(2)
1070 && !tpcP->HasPointOnITSLayer(3)
1071 && !tpcP->HasPointOnITSLayer(4)
1072 && tpcP->HasPointOnITSLayer(5))
1079 //-------------------
1081 xvertexcor = tpcP->Xv() - vertex->GetX(); // coordinate corrected for vertex position
1082 yvertexcor = tpcP->Yv() - vertex->GetY(); // "
1083 sdca = (tpcP->Py()*xvertexcor - tpcP->Px()*yvertexcor)/tpcP->Pt();
1086 fqPtRec[cas]->Fill(tpcP->Charge()/tpcP->Pt());
1090 fHistRECpt->Fill(tpcP->Pt());
1091 fEta->Fill(tpcP->Eta());
1092 fEtavPt->Fill(tpcP->Eta(), tpcP->Pt());
1093 fEtaPhi->Fill(tpcP->Eta(), phiIn);
1094 fThetaRec->Fill(tpcP->Theta());
1095 fPhiRec->Fill(phiIn);
1096 fVx->Fill(tpcP->Xv());
1097 fVy->Fill(tpcP->Yv());
1098 fVz->Fill(tpcP->Zv());
1101 fEtaPt->Fill(tpcP->Eta()/tpcP->Pt());
1102 fQPt->Fill(tpcP->Charge()/tpcP->Pt());
1104 fRecQPtPhi->Fill(tpcP->Charge()/tpcP->Pt(), phiIn);
1107 tpcP->GetImpactParameters(xy,z);
1108 fDiffDcaD->Fill(sdca+xy);
1112 //for positive particles
1114 if(tpcP->Charge()>0){
1115 fRecPtPos->Fill(tpcP->Pt());
1116 fRecPtPosLadder[cas]->Fill(tpcP->Pt());
1117 fRecPtPosVz->Fill(TMath::Log10(tpcP->Pt()),tpcP->Zv());
1118 fRecPhiPos->Fill(TMath::RadToDeg()*phiIn);
1121 fRecPhiPosLadder[cas]->Fill(TMath::RadToDeg()*phiIn);
1122 fRecPhiPosVz->Fill(TMath::RadToDeg()*phiIn,tpcP->Zv());
1123 fSignedDcaPosVz->Fill(sdca,tpcP->Zv());
1125 fRecEtaPos->Fill(tpcP->Eta());
1126 fRecEtaPosLadder[cas]->Fill(tpcP->Eta());
1127 fRecEtaPtPos->Fill(tpcP->Eta()/tpcP->Pt());
1128 fRecEtaPosVz->Fill(tpcP->Eta(),tpcP->Zv());
1129 fRecEtaPtPosVz->Fill(tpcP->Eta()/tpcP->Pt(),tpcP->Zv());
1131 fRecDcaPos->Fill(sdca);
1132 fRecDcaPosPhi->Fill(sdca, phiIn);
1133 fRecPtPosPhi->Fill(TMath::Log10(tpcP->Pt()), phiIn);
1134 fRecEtaPtPosPhi->Fill(tpcP->Eta()/tpcP->Pt(), phiIn);
1135 fRecEtaPosPhi->Fill(tpcP->Eta(), phiIn);
1137 fSignDcaPos[cas]->Fill(sdca);
1140 fDcaSigmaPos[cas]->Fill(sdca, TMath::Log10(sigmapt));
1142 fPtSigmaPos[cas]->Fill(TMath::Log10(sigmapt));
1145 fRecPtPosEtaPos->Fill(tpcP->Pt());
1146 fRec1PtPosEtaPos->Fill(1/tpcP->Pt());
1147 fRecPhiPosEtaPos->Fill(phiIn);
1148 fRecDcaPosPhiEtaPos->Fill(sdca, phiIn);
1149 fRecPtPosPhiEtaPos->Fill(TMath::Log10(tpcP->Pt()), phiIn);
1150 fRecDcaPhiPtPosEtaPos->Fill(phiIn, tpcP->Pt(), sdca);
1154 fRecPtPosEtaNeg->Fill(tpcP->Pt());
1155 fRec1PtPosEtaNeg->Fill(1/tpcP->Pt());
1156 fRecPhiPosEtaNeg->Fill(phiIn);
1157 fRecDcaPosPhiEtaNeg->Fill(sdca, phiIn);
1158 fRecPtPosPhiEtaNeg->Fill(TMath::Log10(tpcP->Pt()), phiIn);
1159 fRecDcaPhiPtPosEtaNeg->Fill(phiIn, tpcP->Pt(), sdca);
1163 //and negative particles
1165 fRecPtNeg->Fill(tpcP->Pt());
1166 fRecPtNegLadder[cas]->Fill(tpcP->Pt());
1167 fRecPtNegVz->Fill(TMath::Log10(tpcP->Pt()),tpcP->Zv());
1169 fRecPhiNeg->Fill(TMath::RadToDeg()*phiIn);
1170 fRecPhiNegLadder[cas]->Fill(TMath::RadToDeg()*phiIn);
1171 fRecPhiNegVz->Fill(TMath::RadToDeg()*phiIn,tpcP->Zv());
1172 fSignedDcaNegVz->Fill(sdca,tpcP->Zv());
1173 fRecEtaPtNegVz->Fill(tpcP->Eta()/tpcP->Pt(),tpcP->Zv());
1175 fRecEtaNeg->Fill(tpcP->Eta());
1176 fRecEtaNegLadder[cas]->Fill(tpcP->Eta());
1177 fRecEtaPtNeg->Fill(tpcP->Eta()/tpcP->Pt());
1178 fRecEtaNegVz->Fill(tpcP->Eta(),tpcP->Zv());
1180 fRecDcaNeg->Fill(sdca);
1181 fRecDcaNegInv->Fill(-sdca);
1182 fRecDcaNegPhi->Fill(sdca, phiIn);
1183 fRecPtNegPhi->Fill(TMath::Log10(tpcP->Pt()), phiIn);
1184 fRecEtaNegPhi->Fill(tpcP->Eta(), phiIn);
1185 fRecEtaPtNegPhi->Fill(tpcP->Eta()/tpcP->Pt(), phiIn);
1187 fSignDcaNeg[cas]->Fill(sdca);
1188 fSignDcaNegInv[cas]->Fill(-sdca);
1191 fDcaSigmaNeg[cas]->Fill(sdca,TMath::Log10(sigmapt));
1193 fPtSigmaNeg[cas]->Fill(TMath::Log10(sigmapt));
1197 fRecPtNegEtaPos->Fill(tpcP->Pt());
1198 fRec1PtNegEtaPos->Fill(1/tpcP->Pt());
1199 fRecPhiNegEtaPos->Fill(phiIn);
1200 fRecDcaNegPhiEtaPos->Fill(sdca, phiIn);
1201 fRecPtNegPhiEtaPos->Fill(TMath::Log10(tpcP->Pt()), phiIn);
1202 fRecDcaPhiPtNegEtaPos->Fill(phiIn, tpcP->Pt(), sdca);
1206 fRecPtNegEtaNeg->Fill(tpcP->Pt());
1207 fRec1PtNegEtaNeg->Fill(1/tpcP->Pt());
1208 fRecPhiNegEtaNeg->Fill(phiIn);
1209 fRecDcaNegPhiEtaNeg->Fill(sdca, phiIn);
1210 fRecPtNegPhiEtaNeg->Fill(TMath::Log10(tpcP->Pt()), phiIn);
1211 fRecDcaPhiPtNegEtaNeg->Fill(phiIn, tpcP->Pt(), sdca);
1218 //all particles with positive eta
1220 fRecQPtPosEta->Fill(tpcP->Charge()/tpcP->Pt());
1221 fRecPtPosEta->Fill(tpcP->Pt());
1222 fRecPhiPosEta->Fill(TMath::RadToDeg()*phiIn);
1223 fRecQPtPosEtaVz->Fill(tpcP->Charge()/tpcP->Pt(),tpcP->Zv());
1224 fRecDcaPosEta->Fill(sdca);
1225 fRecDPosEta->Fill(xy);
1227 //all particles with negative eta (and eta==0)
1229 fRecQPtNegEta->Fill(tpcP->Charge()/tpcP->Pt());
1230 fRecPtNegEta->Fill(tpcP->Pt());
1231 fRecPhiNegEta->Fill(TMath::RadToDeg()*phiIn);
1232 fRecQPtNegEtaVz->Fill(tpcP->Charge()/tpcP->Pt(),tpcP->Zv());
1233 fRecDcaNegEta->Fill(sdca);
1234 fRecDNegEta->Fill(xy);
1239 fRecPtTpcSector[Int_t(phiIn*
1240 TMath::RadToDeg()/20)]->Fill(tpcP->Pt());
1241 fRecEtaTpcSector[Int_t(phiIn*
1242 TMath::RadToDeg()/20)]->Fill(tpcP->Eta());
1243 fSignedDcaTpcSector[Int_t(phiIn*
1244 TMath::RadToDeg()/20)]->Fill(sdca);
1245 fRecQPtTpcSector[Int_t(phiIn*
1246 TMath::RadToDeg()/20)]->Fill(tpcP->Charge()/tpcP->Pt());
1247 fRecEtaPtTpcSector[Int_t(phiIn*
1248 TMath::RadToDeg()/20)]->Fill(tpcP->Eta()/tpcP->Pt());
1252 // // another track loop
1253 // for (Int_t iTrack2 = 0; iTrack2 < event->GetNumberOfTracks(); iTrack2++) {
1255 // if(LeadingTrack==iTrack2) continue;
1257 // AliVParticle *track2 = event->GetTrack(iTrack2);
1258 // AliESDtrack* esdtrack2 = dynamic_cast<AliESDtrack*>(track2);
1260 // Printf("ERROR: Could not receive track %d", iTrack);
1263 // if (!fCuts->AcceptTrack(esdtrack2)) continue;
1264 // //propagate to dca
1265 // esdtrack2->PropagateToDCA(event->GetPrimaryVertex(),
1266 // event->GetMagneticField(), 10000.);
1268 // fDeltaPhiLeading->Fill((LeadingPhi-esdtrack2->Phi())*TMath::RadToDeg(),
1269 // LeadingPhi*TMath::RadToDeg() );
1273 // }//second track loop
1279 // Post output data.
1280 // PostData(1, fHistPt);
1281 PostData(1, fHists);
1288 //________________________________________________________________________
1289 void AliAnalysisTaskQASym::Terminate(Option_t *)