25 #include <TClonesArray.h> 32 #include <TDatabasePDG.h> 34 #include <AliAnalysisDataSlot.h> 35 #include <AliAnalysisDataContainer.h> 36 #include "AliAnalysisManager.h" 37 #include "AliAODHandler.h" 38 #include "AliAODEvent.h" 39 #include "AliAODVertex.h" 40 #include "AliAODTrack.h" 41 #include "AliAODMCHeader.h" 42 #include "AliAODMCParticle.h" 45 #include "AliAnalysisTaskSE.h" 47 #include "AliKFParticle.h" 51 #include "AliKFVertex.h" 52 #include "AliESDVertex.h" 54 #include "AliAODPid.h" 55 #include "AliInputEventHandler.h" 72 fhMassPtGreater3TC(0),
73 fhMassPtGreater3Kp(0),
74 fhMassPtGreater3KpTC(0),
75 fhMassPtGreater3Lpi(0),
76 fhMassPtGreater3LpiTC(0),
77 fhMassPtGreater3Dk(0),
78 fhMassPtGreater3DkTC(0),
79 fhMassPtGreater33Pr(0),
80 fhMassPtGreater33PrTC(0),
82 fhMassPtGreater2TC(0),
83 fhMassPtGreater2Kp(0),
84 fhMassPtGreater2KpTC(0),
85 fhMassPtGreater2Lpi(0),
86 fhMassPtGreater2LpiTC(0),
87 fhMassPtGreater2Dk(0),
88 fhMassPtGreater2DkTC(0),
89 fhMassPtGreater23Pr(0),
90 fhMassPtGreater23PrTC(0),
103 fhProtonPtProngLcPt(0),
104 fhBProtonPtProngLcPt(0),
105 fhProtond0ProngLcPt(0),
106 fhBProtond0ProngLcPt(0),
107 fhKaonPtProngLcPt(0),
108 fhBKaonPtProngLcPt(0),
109 fhKaond0ProngLcPt(0),
110 fhBKaond0ProngLcPt(0),
111 fhPionPtProngLcPt(0),
112 fhBPionPtProngLcPt(0),
113 fhPiond0ProngLcPt(0),
114 fhBPiond0ProngLcPt(0),
116 fhBDist12PrimLcPt(0),
121 fhCosPointingAngleLcPt(0),
122 fhBCosPointingAngleLcPt(0),
123 fhDecayLengthLcPt(0),
124 fhBDecayLengthLcPt(0),
131 fLowmasslimit(2.086),
134 fRDCutsProduction(0),
144 fFillVarHists(kFALSE),
145 fMultiplicityHists(kFALSE),
146 fPriorsHists(kFALSE),
284 DefineOutput(1,TList::Class());
285 DefineOutput(2,TList::Class());
286 DefineOutput(3,TList::Class());
287 DefineOutput(4,TH1F::Class());
288 DefineOutput(5,TList::Class());
289 DefineOutput(6,TList::Class());
290 DefineOutput(7,AliNormalizationCounter::Class());
293 DefineOutput(8,TNtuple::Class());
374 printf(
"Max. number of Pt bins = %d\n",
kMaxPtBins);
394 printf(
"Number of Pt bins = %d\n",
fNPtBins);
409 if (fDebug > 1) printf(
"AnalysisTaskSELambdac::Init() \n");
425 if (fDebug > 1) printf(
"AnalysisTaskSELambdac::UserCreateOutputObjects() \n");
430 fOutput->SetName(
"OutputHistos");
440 hisname.Form(
"hMassPt%d",i);
443 hisname.Form(
"hMassPt%dTC",i);
447 hisname.Form(
"hMassPtLpi%d",i);
450 hisname.Form(
"hMassPtLpi%dTC",i);
454 hisname.Form(
"hMassPtKp%d",i);
457 hisname.Form(
"hMassPtKp%dTC",i);
460 hisname.Form(
"hMassPtDk%d",i);
463 hisname.Form(
"hMassPtDk%dTC",i);
467 hisname.Form(
"hMassPt3Pr%d",i);
470 hisname.Form(
"hMassPt3Pr%dTC",i);
475 hisname.Form(
"hSigPt%d",i);
478 hisname.Form(
"hSigPt%dTC",i);
481 hisname.Form(
"hSigPtLpi%d",i);
484 hisname.Form(
"hSigPtLpi%dTC",i);
488 hisname.Form(
"hSigPtKp%d",i);
491 hisname.Form(
"hSigPtKp%dTC",i);
495 hisname.Form(
"hSigPtDk%d",i);
498 hisname.Form(
"hSigPtDk%dTC",i);
502 hisname.Form(
"hSigPt3Pr%d",i);
505 hisname.Form(
"hSigPt3Pr%dTC",i);
510 hisname.Form(
"hSigLbPt%d",i);
513 hisname.Form(
"hSigLbPt%dTC",i);
518 hisname.Form(
"hSigcOnlyPt%d",i);
521 hisname.Form(
"hSigcOnlyPt%dTC",i);
526 hisname.Form(
"hSigNoQuarkPt%d",i);
529 hisname.Form(
"hSigNoQuarkPt%dTC",i);
534 hisname.Form(
"hBkgPt%d",i);
537 hisname.Form(
"hBkgPt%dTC",i);
540 hisname.Form(
"hBkgPtLpi%d",i);
543 hisname.Form(
"hBkgPtLpi%dTC",i);
547 hisname.Form(
"hBkgPtKp%d",i);
550 hisname.Form(
"hBkgPtKp%dTC",i);
554 hisname.Form(
"hBkgPtDk%d",i);
557 hisname.Form(
"hBkgPtDk%dTC",i);
561 hisname.Form(
"hBkgPt3Pr%d",i);
564 hisname.Form(
"hBkgPt3Pr%dTC",i);
591 fhEta3Prong =
new TH2F(
"hEta3Prong",
"hEta3Prong;3-Prong p_{T} GeV/c;3-Prong #eta",75,0.,15.,50,-2.0,2.0);
592 fhEta3ProngAcc =
new TH2F(
"hEta3ProngAcc",
"hEta3ProngAcc;3-Prong p_{T} GeV/c;3-Prong #eta",75,0.,15.,50,-2.0,2.0);
593 fhEta3ProngProd =
new TH2F(
"hEta3ProngProd",
"hEta3ProngProd;3-Prong p_{T} GeV/c;3-Prong #eta",75,0.,15.,50,-2.0,2.0);
594 fhEta3ProngAn =
new TH2F(
"hEta3ProngAn",
"hEta3ProngAn;3-Prong p_{T} GeV/c;3-Prong #eta",75,0.,15.,50,-2.0,2.0);
595 fhRap3Prong =
new TH2F(
"hRap3Prong",
"hRap3Prong;3-Prong p_{T} GeV/c;3-Prong y",75,0.,15.,50,-2.0,2.0);
596 fhRap3ProngAcc =
new TH2F(
"hRap3ProngAcc",
"hRap3ProngAcc;3-Prong p_{T} GeV/c;3-Prong y",75,0.,15.,50,-2.0,2.0);
597 fhRap3ProngProd =
new TH2F(
"hRap3ProngProd",
"hRap3ProngProd;3-Prong p_{T} GeV/c;3-Prong y",75,0.,15.,50,-2.0,2.0);
598 fhRap3ProngAn =
new TH2F(
"hRap3ProngAn",
"hRap3ProngAn;3-Prong p_{T} GeV/c;3-Prong y",75,0.,15.,50,-2.0,2.0);
600 fhSelectBit =
new TH1F(
"hSelectBit",
"hSelectBit",5,-0.5,5.5);
602 fhSelectBit->GetXaxis()->SetBinLabel(3,
"SelectionMap");
616 fHistNEvents =
new TH1F(
"fHistNEvents",
"Number of processed events; ; Events",3,-1.5,1.5);
621 fhChi2 =
new TH1F(
"fhChi2",
"Chi2",100,0.,10.);
695 fNentries=
new TH1F(
"fNentries",
"Integral(1,2) = number of AODs *** Integral(2,3) = number of candidates selected with cuts *** Integral(3,4) = number of Lc selected with cuts *** Integral(4,5) = events with good vertex *** Integral(5,6) = pt out of bounds", 12,-0.5,14.5);
698 fNentries->GetXaxis()->SetBinLabel(1,
"nEventsAnal");
699 fNentries->GetXaxis()->SetBinLabel(2,
"nCandSel(Cuts)");
700 fNentries->GetXaxis()->SetBinLabel(3,
"nLcSelected");
701 fNentries->GetXaxis()->SetBinLabel(4,
"nEventsGoodVtxS");
702 fNentries->GetXaxis()->SetBinLabel(5,
"ptbin = -1");
703 fNentries->GetXaxis()->SetBinLabel(6,
"no daughter");
704 fNentries->GetXaxis()->SetBinLabel(7,
"nCandSel(Tr)");
705 fNentries->GetXaxis()->SetBinLabel(8,
"PID=0");
706 fNentries->GetXaxis()->SetBinLabel(9,
"PID=1");
707 fNentries->GetXaxis()->SetBinLabel(10,
"PID=2");
708 fNentries->GetXaxis()->SetBinLabel(11,
"PID=3");
709 fNentries->GetXaxis()->SetBinLabel(15,
"no. of not on-the-fly rec Lc");
710 fNentries->GetXaxis()->SetNdivisions(1,kFALSE);
712 hisname.Form(
"hMass");
715 hisname.Form(
"hbMass");
720 hisname.Form(
"hpTOFSignal");
721 TH1F *hProtonTOFSignal=
new TH1F(hisname.Data(),hisname.Data(),100,12000.,50000.0);
723 hisname.Form(
"hbpTOFSignal");
724 TH1F *hBProtonTOFSignal=
new TH1F(hisname.Data(),hisname.Data(),100,12000.,50000.0);
727 hisname.Form(
"hpTPCSignal");
728 TH1F *hProtonTPCSignal=
new TH1F(hisname.Data(),hisname.Data(),150,0.,150.0);
730 hisname.Form(
"hbpTPCSignal");
731 TH1F *hBProtonTPCSignal=
new TH1F(hisname.Data(),hisname.Data(),150,0.,150.0);
734 hisname.Form(
"hpptProng");
735 TH1F *hProtonPtProng=
new TH1F(hisname.Data(),hisname.Data(),100,0.,5.0);
737 hisname.Form(
"hbpptProng");
738 TH1F *hBProtonPtProng=
new TH1F(hisname.Data(),hisname.Data(),100,0.,5.0);
741 hisname.Form(
"hpRealTot");
742 TH1F *hProtonRealTot=
new TH1F(hisname.Data(),hisname.Data(),100,0.,10.0);
744 hisname.Form(
"hbpRealTot");
745 TH1F *hBProtonRealTot=
new TH1F(hisname.Data(),hisname.Data(),100,0.,10.0);
747 hisname.Form(
"hpIDTot");
748 TH1F *hProtonIDTot=
new TH1F(hisname.Data(),hisname.Data(),100,0.,10.0);
750 hisname.Form(
"hpIDGood");
751 TH1F *hProtonIDGood=
new TH1F(hisname.Data(),hisname.Data(),100,0.,10.0);
753 hisname.Form(
"hbpIDGood");
754 TH1F *hBProtonIDGood=
new TH1F(hisname.Data(),hisname.Data(),100,0.,10.0);
756 hisname.Form(
"hbpIDTot");
757 TH1F *hBProtonIDTot=
new TH1F(hisname.Data(),hisname.Data(),100,0.,10.0);
759 hisname.Form(
"hnopIDp");
760 TH1F *hnoProtonIDpTot=
new TH1F(hisname.Data(),hisname.Data(),100,0.,10.0);
762 hisname.Form(
"hbnopIDp");
763 TH1F *hBnoProtonIDpTot=
new TH1F(hisname.Data(),hisname.Data(),100,0.,10.0);
766 hisname.Form(
"hpd0Prong");
767 TH1F *hProtond0Prong=
new TH1F(hisname.Data(),hisname.Data(),100,-0.1,0.1);
769 hisname.Form(
"hbpd0Prong");
770 TH1F *hBProtond0Prong=
new TH1F(hisname.Data(),hisname.Data(),100,-0.1,0.1);
772 hisname.Form(
"hbpSignalVspTOF");
773 TH2F *hBpSignalVspTOF=
new TH2F(hisname.Data(),hisname.Data(),100,0.,5.0,100,12000.,50000.0);
775 hisname.Form(
"hbpSignalVspTPC");
776 TH2F *hBpSignalVspTPC=
new TH2F(hisname.Data(),hisname.Data(),100,0.,5.0,150,0.,150.0);
778 hisname.Form(
"hpSignalVspTOF");
779 TH2F *hpSignalVspTOF=
new TH2F(hisname.Data(),hisname.Data(),100,0.,5.0,100,12000.,50000.0);
781 hisname.Form(
"hpSignalVspTPC");
782 TH2F *hpSignalVspTPC=
new TH2F(hisname.Data(),hisname.Data(),100,0.,5.0,150,0.,150.0);
785 hisname.Form(
"hpSigmaVspTOF");
786 TH2F *hpSigmaVspTOF=
new TH2F(hisname.Data(),hisname.Data(),100,0.,5.0,100,-10.0,10.0);
788 hisname.Form(
"hpSigmaVspTPC");
789 TH2F *hpSigmaVspTPC=
new TH2F(hisname.Data(),hisname.Data(),100,0.,5.0,100,-10.0,10.0);
791 hisname.Form(
"hbpSigmaVspTOF");
792 TH2F *hBpSigmaVspTOF=
new TH2F(hisname.Data(),hisname.Data(),100,0.,5.0,100,-10.0,10.0);
794 hisname.Form(
"hbpSigmaVspTPC");
795 TH2F *hBpSigmaVspTPC=
new TH2F(hisname.Data(),hisname.Data(),100,0.,5.0,100,-10.0,10.0);
800 hisname.Form(
"hKTOFSignal");
801 TH1F *hKaonTOFSignal=
new TH1F(hisname.Data(),hisname.Data(),100,12000.,50000.0);
803 hisname.Form(
"hbKTOFSignal");
804 TH1F *hBKaonTOFSignal=
new TH1F(hisname.Data(),hisname.Data(),100,12000.,50000.0);
806 hisname.Form(
"hKTPCSignal");
807 TH1F *hKaonTPCSignal=
new TH1F(hisname.Data(),hisname.Data(),150,0.,150.0);
809 hisname.Form(
"hbKTPCSignal");
810 TH1F *hBKaonTPCSignal=
new TH1F(hisname.Data(),hisname.Data(),150,0.,150.0);
813 hisname.Form(
"hKptProng");
814 TH1F *hKaonPtProng=
new TH1F(hisname.Data(),hisname.Data(),100,0.,5.0);
816 hisname.Form(
"hbKptProng");
817 TH1F *hBKaonPtProng=
new TH1F(hisname.Data(),hisname.Data(),100,0.,5.0);
819 hisname.Form(
"hKRealTot");
820 TH1F *hKaonRealTot=
new TH1F(hisname.Data(),hisname.Data(),100,0.,10.0);
822 hisname.Form(
"hbKRealTot");
823 TH1F *hBKaonRealTot=
new TH1F(hisname.Data(),hisname.Data(),100,0.,10.0);
825 hisname.Form(
"hKIDGood");
826 TH1F *hKaonIDGood=
new TH1F(hisname.Data(),hisname.Data(),100,0.,10.0);
828 hisname.Form(
"hKIDTot");
829 TH1F *hKaonIDTot=
new TH1F(hisname.Data(),hisname.Data(),100,0.,10.0);
831 hisname.Form(
"hbKIDGood");
832 TH1F *hBKaonIDGood=
new TH1F(hisname.Data(),hisname.Data(),100,0.,10.0);
834 hisname.Form(
"hbKIDTot");
835 TH1F *hBKaonIDTot=
new TH1F(hisname.Data(),hisname.Data(),100,0.,10.0);
837 hisname.Form(
"hnokIDk");
838 TH1F *hnoKaonIDkTot=
new TH1F(hisname.Data(),hisname.Data(),100,0.,10.0);
840 hisname.Form(
"hbnokIDk");
841 TH1F *hBnoKaonIDkTot=
new TH1F(hisname.Data(),hisname.Data(),100,0.,10.0);
845 hisname.Form(
"hKd0Prong");
846 TH1F *hKaond0Prong=
new TH1F(hisname.Data(),hisname.Data(),100,-0.1,0.1);
848 hisname.Form(
"hbKd0Prong");
849 TH1F *hBKaond0Prong=
new TH1F(hisname.Data(),hisname.Data(),100,-0.1,0.1);
851 hisname.Form(
"hbKSignalVspTOF");
852 TH2F *hbKSignalVspTOF=
new TH2F(hisname.Data(),hisname.Data(),100,0.,5.0,100,12000.,50000.0);
854 hisname.Form(
"hbKSignalVspTPC");
855 TH2F *hbKSignalVspTPC=
new TH2F(hisname.Data(),hisname.Data(),100,0.,5.0,150,0.,150.0);
857 hisname.Form(
"hKSignalVspTOF");
858 TH2F *hKSignalVspTOF=
new TH2F(hisname.Data(),hisname.Data(),100,0.,5.0,100,12000.,50000.0);
860 hisname.Form(
"hKSignalVspTPC");
861 TH2F *hKSignalVspTPC=
new TH2F(hisname.Data(),hisname.Data(),100,0.,5.0,150,0.,150.0);
863 hisname.Form(
"hKSigmaVspTOF");
864 TH2F *hKSigmaVspTOF=
new TH2F(hisname.Data(),hisname.Data(),100,0.,5.0,100,-10.0,10.0);
866 hisname.Form(
"hKSigmaVspTPC");
867 TH2F *hKSigmaVspTPC=
new TH2F(hisname.Data(),hisname.Data(),100,0.,5.0,100,-10.0,10.0);
869 hisname.Form(
"hbKSigmaVspTOF");
870 TH2F *hBKSigmaVspTOF=
new TH2F(hisname.Data(),hisname.Data(),100,0.,5.0,100,-10.0,10.0);
872 hisname.Form(
"hbKSigmaVspTPC");
873 TH2F *hBKSigmaVspTPC=
new TH2F(hisname.Data(),hisname.Data(),100,0.,5.0,100,-10.0,10.0);
878 hisname.Form(
"hpiTOFSignal");
879 TH1F *hPionTOFSignal=
new TH1F(hisname.Data(),hisname.Data(),100,12000.,50000.0);
881 hisname.Form(
"hbpiTOFSignal");
882 TH1F *hBPionTOFSignal=
new TH1F(hisname.Data(),hisname.Data(),100,12000.,50000.0);
884 hisname.Form(
"hpiTPCSignal");
885 TH1F *hPionTPCSignal=
new TH1F(hisname.Data(),hisname.Data(),100,30.,100.0);
887 hisname.Form(
"hbpiTPCSignal");
888 TH1F *hBPionTPCSignal=
new TH1F(hisname.Data(),hisname.Data(),100,30.,100.0);
891 hisname.Form(
"hpiptProng");
892 TH1F *hPionPtProng=
new TH1F(hisname.Data(),hisname.Data(),100,0.,5.0);
894 hisname.Form(
"hbpiptProng");
895 TH1F *hBPionPtProng=
new TH1F(hisname.Data(),hisname.Data(),100,0.,5.0);
898 hisname.Form(
"hpiRealTot");
899 TH1F *hPionRealTot=
new TH1F(hisname.Data(),hisname.Data(),100,0.,10.0);
901 hisname.Form(
"hbpiRealTot");
902 TH1F *hBPionRealTot=
new TH1F(hisname.Data(),hisname.Data(),100,0.,10.0);
904 hisname.Form(
"hpiIDGood");
905 TH1F *hPionIDGood=
new TH1F(hisname.Data(),hisname.Data(),100,0.,10.0);
907 hisname.Form(
"hpiIDTot");
908 TH1F *hPionIDTot=
new TH1F(hisname.Data(),hisname.Data(),100,0.,10.0);
910 hisname.Form(
"hbpiIDTot");
911 TH1F *hBPionIDTot=
new TH1F(hisname.Data(),hisname.Data(),100,0.,10.0);
913 hisname.Form(
"hbpiIDGood");
914 TH1F *hBPionIDGood=
new TH1F(hisname.Data(),hisname.Data(),100,0.,10.0);
916 hisname.Form(
"hnopiIDpi");
917 TH1F *hnoPionIDpiTot=
new TH1F(hisname.Data(),hisname.Data(),100,0.,10.0);
919 hisname.Form(
"hbnopiIDpi");
920 TH1F *hBnoPionIDpiTot=
new TH1F(hisname.Data(),hisname.Data(),100,0.,10.0);
923 hisname.Form(
"hpid0Prong");
924 TH1F *hPiond0Prong=
new TH1F(hisname.Data(),hisname.Data(),100,-0.1,-0.1);
926 hisname.Form(
"hbpid0Prong");
927 TH1F *hBPiond0Prong=
new TH1F(hisname.Data(),hisname.Data(),100,-0.1,0.1);
930 hisname.Form(
"hpiSignalVspTOF");
931 TH2F *hpiSignalVspTOF=
new TH2F(hisname.Data(),hisname.Data(),100,0.,5.0,100,12000.,50000.0);
933 hisname.Form(
"hpiSignalVspTPC");
934 TH2F *hpiSignalVspTPC=
new TH2F(hisname.Data(),hisname.Data(),100,0.,5.0,150,0.,150.0);
936 hisname.Form(
"hbpiSignalVspTOF");
937 TH2F *hbpiSignalVspTOF=
new TH2F(hisname.Data(),hisname.Data(),100,0.,5.0,100,12000.,50000.0);
939 hisname.Form(
"hbpiSignalVspTPC");
940 TH2F *hbpiSignalVspTPC=
new TH2F(hisname.Data(),hisname.Data(),100,0.,5.0,150,0.,150.0);
942 hisname.Form(
"hpiSigmaVspTOF");
943 TH2F *hpiSigmaVspTOF=
new TH2F(hisname.Data(),hisname.Data(),100,0.,5.0,100,-10.0,10.0);
945 hisname.Form(
"hpiSigmaVspTPC");
946 TH2F *hpiSigmaVspTPC=
new TH2F(hisname.Data(),hisname.Data(),100,0.,5.0,100,-10.0,10.0);
948 hisname.Form(
"hbpiSigmaVspTOF");
949 TH2F *hBpiSigmaVspTOF=
new TH2F(hisname.Data(),hisname.Data(),100,0.,5.0,100,-10.0,10.0);
951 hisname.Form(
"hbpiSigmaVspTPC");
952 TH2F *hBpiSigmaVspTPC=
new TH2F(hisname.Data(),hisname.Data(),100,0.,5.0,100,-10.0,10.0);
956 hisname.Form(
"hLcRealTot");
957 TH1F *hLambdaRealTot=
new TH1F(hisname.Data(),hisname.Data(),100,0.,15.0);
959 hisname.Form(
"hbLcRealTot");
960 TH1F *hbLambdaRealTot=
new TH1F(hisname.Data(),hisname.Data(),100,0.,15.0);
962 hisname.Form(
"hLcIDTot");
963 TH1F *hLambdaIDTot=
new TH1F(hisname.Data(),hisname.Data(),100,0.,15.0);
965 hisname.Form(
"hbLcIDTot");
966 TH1F *hbLambdaIDTot=
new TH1F(hisname.Data(),hisname.Data(),100,0.,15.0);
968 hisname.Form(
"hLcIDGood");
969 TH1F *hLambdaIDGood=
new TH1F(hisname.Data(),hisname.Data(),100,0.,15.0);
971 hisname.Form(
"hbLcIDGood");
972 TH1F *hbLambdaIDGood=
new TH1F(hisname.Data(),hisname.Data(),100,0.,15.0);
974 hisname.Form(
"hLcnoID");
975 TH1F *hLambdanoID=
new TH1F(hisname.Data(),hisname.Data(),100,0.,15.0);
977 hisname.Form(
"hbLcnoID");
978 TH1F *hbLambdanoID=
new TH1F(hisname.Data(),hisname.Data(),100,0.,15.0);
982 hisname.Form(
"hLcpt");
983 TH1F *hLcPt=
new TH1F(hisname.Data(),hisname.Data(),100,0.,5.0);
985 hisname.Form(
"hbLcpt");
986 TH1F *hBLcPt=
new TH1F(hisname.Data(),hisname.Data(),100,0.,5.0);
988 hisname.Form(
"hDist12toPrim");
989 TH1F *hDist12Prim=
new TH1F(hisname.Data(),hisname.Data(),100,0.,1.0);
991 hisname.Form(
"hbDist12toPrim");
992 TH1F *hBDist12Prim=
new TH1F(hisname.Data(),hisname.Data(),100,0.,1.0);
995 hisname.Form(
"hSigmaVert");
996 TH1F *hSigmaVert=
new TH1F(hisname.Data(),hisname.Data(),60,0.,0.06);
998 hisname.Form(
"hbSigmaVert");
999 TH1F *hBSigmaVert=
new TH1F(hisname.Data(),hisname.Data(),60,0.,0.06);
1002 hisname.Form(
"hDCAs");
1003 TH1F *hdcas=
new TH1F(hisname.Data(),hisname.Data(),200,0.,0.1);
1005 hisname.Form(
"hbDCAs");
1006 TH1F *hBdcas=
new TH1F(hisname.Data(),hisname.Data(),200,0.,0.1);
1009 hisname.Form(
"hCosPointingAngle");
1010 TH1F *hCosPointingAngle=
new TH1F(hisname.Data(),hisname.Data(),40,0.,1.);
1012 hisname.Form(
"hbCosPointingAngle");
1013 TH1F *hBCosPointingAngle=
new TH1F(hisname.Data(),hisname.Data(),40,0.,1.);
1016 hisname.Form(
"hDecayLength");
1017 TH1F *hDecayLength=
new TH1F(hisname.Data(),hisname.Data(),100,0.,0.1);
1019 hisname.Form(
"hbDecayLength");
1020 TH1F *hBDecayLength=
new TH1F(hisname.Data(),hisname.Data(),100,0.,0.1);
1023 hisname.Form(
"hSum2");
1024 TH1F *hSum2=
new TH1F(hisname.Data(),hisname.Data(),100,0.,0.1);
1026 hisname.Form(
"hbSum2");
1027 TH1F *hBSum2=
new TH1F(hisname.Data(),hisname.Data(),100,0.,0.1);
1030 hisname.Form(
"hptmax");
1031 TH1F *hPtMax=
new TH1F(hisname.Data(),hisname.Data(),100,0.,5.);
1033 hisname.Form(
"hbptmax");
1034 TH1F *hBPtMax=
new TH1F(hisname.Data(),hisname.Data(),100,0.,5.);
1038 hisname.Form(
"hpptProngLcPt");
1041 hisname.Form(
"hbpptProngLcPt");
1045 hisname.Form(
"hpd0ProngLcPt");
1048 hisname.Form(
"hbpd0ProngLcPt");
1052 hisname.Form(
"hKptProngLcPt");
1055 hisname.Form(
"hbKptProngLcPt");
1059 hisname.Form(
"hKd0ProngLcPt");
1062 hisname.Form(
"hbKd0ProngLcPt");
1066 hisname.Form(
"hpiptProngLcPt");
1069 hisname.Form(
"hbpiptProngLcPt");
1073 hisname.Form(
"hpid0ProngLcPt");
1076 hisname.Form(
"hbpid0ProngLcPt");
1080 hisname.Form(
"hDist12toPrimLcPt");
1083 hisname.Form(
"hbDist12toPrimLcPt");
1087 hisname.Form(
"hSigmaVertLcPt");
1090 hisname.Form(
"hbSigmaVertLcPt");
1094 hisname.Form(
"hDCAsLcPt");
1095 fhdcasLcPt=
new TH2F(hisname.Data(),hisname.Data(),75,0.,15.,200,0.,0.1);
1097 hisname.Form(
"hbDCAsLcPt");
1098 fhBdcasLcPt=
new TH2F(hisname.Data(),hisname.Data(),75,0.,15.,200,0.,0.1);
1101 hisname.Form(
"hCosPointingAngleLcPt");
1104 hisname.Form(
"hbCosPointingAngleLcPt");
1108 hisname.Form(
"hDecayLengthLcPt");
1111 hisname.Form(
"hbDecayLengthLcPt");
1115 hisname.Form(
"hSum2LcPt");
1116 fhSum2LcPt=
new TH2F(hisname.Data(),hisname.Data(),75,0.,15.,100,0.,0.1);
1118 hisname.Form(
"hbSum2LcPt");
1119 fhBSum2LcPt=
new TH2F(hisname.Data(),hisname.Data(),75,0.,15.,100,0.,0.1);
1122 hisname.Form(
"hptmaxLcPt");
1123 fhPtMaxLcPt=
new TH2F(hisname.Data(),hisname.Data(),75,0.,15.,100,0.,5.);
1125 hisname.Form(
"hbptmaxLcPt");
1131 fAPriori->SetName(
"APrioriMCHistos");
1133 hisname.Form(
"hElIn3Prong");
1134 TH1F *hElIn3Prong=
new TH1F(hisname.Data(),hisname.Data(),100,0.,5.);
1136 hisname.Form(
"hMuIn3Prong");
1137 TH1F *hMuIn3Prong=
new TH1F(hisname.Data(),hisname.Data(),100,0.,5.);
1139 hisname.Form(
"hPiIn3Prong");
1140 TH1F *hPiIn3Prong=
new TH1F(hisname.Data(),hisname.Data(),100,0.,5.);
1142 hisname.Form(
"hKaIn3Prong");
1143 TH1F *hKaIn3Prong=
new TH1F(hisname.Data(),hisname.Data(),100,0.,5.);
1145 hisname.Form(
"hPrIn3Prong");
1146 TH1F *hPrIn3Prong=
new TH1F(hisname.Data(),hisname.Data(),100,0.,5.);
1149 hisname.Form(
"hElIn3Prong1");
1150 TH1F *hElIn3Prong1=
new TH1F(hisname.Data(),hisname.Data(),100,0.,5.);
1152 hisname.Form(
"hMuIn3Prong1");
1153 TH1F *hMuIn3Prong1=
new TH1F(hisname.Data(),hisname.Data(),100,0.,5.);
1155 hisname.Form(
"hPiIn3Prong1");
1156 TH1F *hPiIn3Prong1=
new TH1F(hisname.Data(),hisname.Data(),100,0.,5.);
1158 hisname.Form(
"hKaIn3Prong1");
1159 TH1F *hKaIn3Prong1=
new TH1F(hisname.Data(),hisname.Data(),100,0.,5.);
1161 hisname.Form(
"hPrIn3Prong1");
1162 TH1F *hPrIn3Prong1=
new TH1F(hisname.Data(),hisname.Data(),100,0.,5.);
1165 hisname.Form(
"hElIn3Prong2");
1166 TH1F *hElIn3Prong2=
new TH1F(hisname.Data(),hisname.Data(),100,0.,5.);
1168 hisname.Form(
"hMuIn3Prong2");
1169 TH1F *hMuIn3Prong2=
new TH1F(hisname.Data(),hisname.Data(),100,0.,5.);
1171 hisname.Form(
"hPiIn3Prong2");
1172 TH1F *hPiIn3Prong2=
new TH1F(hisname.Data(),hisname.Data(),100,0.,5.);
1174 hisname.Form(
"hKaIn3Prong2");
1175 TH1F *hKaIn3Prong2=
new TH1F(hisname.Data(),hisname.Data(),100,0.,5.);
1177 hisname.Form(
"hPrIn3Prong2");
1178 TH1F *hPrIn3Prong2=
new TH1F(hisname.Data(),hisname.Data(),100,0.,5.);
1181 hisname.Form(
"hElIn3Prong3");
1182 TH1F *hElIn3Prong3=
new TH1F(hisname.Data(),hisname.Data(),100,0.,5.);
1184 hisname.Form(
"hMuIn3Prong3");
1185 TH1F *hMuIn3Prong3=
new TH1F(hisname.Data(),hisname.Data(),100,0.,5.);
1187 hisname.Form(
"hPiIn3Prong3");
1188 TH1F *hPiIn3Prong3=
new TH1F(hisname.Data(),hisname.Data(),100,0.,5.);
1190 hisname.Form(
"hKaIn3Prong3");
1191 TH1F *hKaIn3Prong3=
new TH1F(hisname.Data(),hisname.Data(),100,0.,5.);
1193 hisname.Form(
"hPrIn3Prong3");
1194 TH1F *hPrIn3Prong3=
new TH1F(hisname.Data(),hisname.Data(),100,0.,5.);
1197 hisname.Form(
"hElIn3Prong4");
1198 TH1F *hElIn3Prong4=
new TH1F(hisname.Data(),hisname.Data(),100,0.,5.);
1200 hisname.Form(
"hMuIn3Prong4");
1201 TH1F *hMuIn3Prong4=
new TH1F(hisname.Data(),hisname.Data(),100,0.,5.);
1203 hisname.Form(
"hPiIn3Prong4");
1204 TH1F *hPiIn3Prong4=
new TH1F(hisname.Data(),hisname.Data(),100,0.,5.);
1206 hisname.Form(
"hKaIn3Prong4");
1207 TH1F *hKaIn3Prong4=
new TH1F(hisname.Data(),hisname.Data(),100,0.,5.);
1209 hisname.Form(
"hPrIn3Prong4");
1210 TH1F *hPrIn3Prong4=
new TH1F(hisname.Data(),hisname.Data(),100,0.,5.);
1213 hisname.Form(
"hElIn3Prong5");
1214 TH1F *hElIn3Prong5=
new TH1F(hisname.Data(),hisname.Data(),100,0.,5.);
1216 hisname.Form(
"hMuIn3Prong5");
1217 TH1F *hMuIn3Prong5=
new TH1F(hisname.Data(),hisname.Data(),100,0.,5.);
1219 hisname.Form(
"hPiIn3Prong5");
1220 TH1F *hPiIn3Prong5=
new TH1F(hisname.Data(),hisname.Data(),100,0.,5.);
1222 hisname.Form(
"hKaIn3Prong5");
1223 TH1F *hKaIn3Prong5=
new TH1F(hisname.Data(),hisname.Data(),100,0.,5.);
1225 hisname.Form(
"hPrIn3Prong5");
1226 TH1F *hPrIn3Prong5=
new TH1F(hisname.Data(),hisname.Data(),100,0.,5.);
1229 hisname.Form(
"hElIn3Prong6");
1230 TH1F *hElIn3Prong6=
new TH1F(hisname.Data(),hisname.Data(),100,0.,5.);
1232 hisname.Form(
"hMuIn3Prong6");
1233 TH1F *hMuIn3Prong6=
new TH1F(hisname.Data(),hisname.Data(),100,0.,5.);
1235 hisname.Form(
"hPiIn3Prong6");
1236 TH1F *hPiIn3Prong6=
new TH1F(hisname.Data(),hisname.Data(),100,0.,5.);
1238 hisname.Form(
"hKaIn3Prong6");
1239 TH1F *hKaIn3Prong6=
new TH1F(hisname.Data(),hisname.Data(),100,0.,5.);
1241 hisname.Form(
"hPrIn3Prong6");
1242 TH1F *hPrIn3Prong6=
new TH1F(hisname.Data(),hisname.Data(),100,0.,5.);
1250 hisname.Form(
"hLcinEvent");
1251 TH1I*hLcinEvent=
new TH1I(hisname.Data(),hisname.Data(),3,-1,2);
1254 hisname.Form(
"hPrimariesvsAOD");
1255 TH2I *hPrimariesvsAOD=
new TH2I(hisname.Data(),hisname.Data(),300,0,300,300,0,300);
1258 hisname.Form(
"hMultiplicityInLcEvent");
1259 TH1I *hMultiplicityInLcEvent=
new TH1I(hisname.Data(),hisname.Data(),300,0,300);
1261 hisname.Form(
"h2MultiplicityInLcEvent");
1262 TH1I *h2MultiplicityInLcEvent=
new TH1I(hisname.Data(),hisname.Data(),300,0,300);
1264 hisname.Form(
"hAll2MultiplicityInEvent");
1265 TH1I *hAll2MultiplicityInEvent=
new TH1I(hisname.Data(),hisname.Data(),300,0,300);
1267 hisname.Form(
"hAllMultiplicityInEvent");
1268 TH1I *hAllMultiplicityInEvent=
new TH1I(hisname.Data(),hisname.Data(),300,0,300);
1270 hisname.Form(
"hAllMultiplicityPrimaryInEvent");
1271 TH1I *hAllMultiplicityPrimaryInEvent=
new TH1I(hisname.Data(),hisname.Data(),300,0,300);
1273 hisname.Form(
"hAll2MultiplicityPrimaryInEvent");
1274 TH1I *hAll2MultiplicityPrimaryInEvent=
new TH1I(hisname.Data(),hisname.Data(),300,0,300);
1276 hisname.Form(
"hMultiplicityInEvent");
1277 TH1I *hMultiplicityInEvent=
new TH1I(hisname.Data(),hisname.Data(),300,0.,300);
1279 hisname.Form(
"hMultiplicityIn3ProngLC");
1280 TH1I *hMultiplicityIn3ProngLC=
new TH1I(hisname.Data(),hisname.Data(),300,0,300);
1282 hisname.Form(
"hMultiplicityInLCpid");
1283 TH1I *hMultiplicityInLCpid=
new TH1I(hisname.Data(),hisname.Data(),300,0,300);
1285 hisname.Form(
"hMultiplicityInLCmc");
1286 TH1I *hMultiplicityInLCmc=
new TH1I(hisname.Data(),hisname.Data(),300,0,300);
1288 hisname.Form(
"hMultiplicityInLCNomc");
1289 TH1I *hMultiplicityInLCNomc=
new TH1I(hisname.Data(),hisname.Data(),300,0,300);
1291 hisname.Form(
"hMultiplicityYesC");
1292 TH1I *hMultiplicityYesC=
new TH1I(hisname.Data(),hisname.Data(),300,0,300);
1294 hisname.Form(
"hMultiplicityYesB");
1295 TH1I *hMultiplicityYesB=
new TH1I(hisname.Data(),hisname.Data(),300,0,300);
1297 hisname.Form(
"hMultiplicityJPsi");
1298 TH1I *hMultiplicityJPsi=
new TH1I(hisname.Data(),hisname.Data(),300,0,300);
1303 AliInputEventHandler* inputHandler = (AliInputEventHandler*) (man->GetInputEventHandler());
1329 TString normName=
"NormalizationCounter";
1330 AliAnalysisDataContainer *cont = GetOutputSlot(7)->GetContainer();
1331 if(cont)normName=(
TString)cont->GetName();
1338 "pdg:Px:Py:Pz:PtTrue:VxTrue:VyTrue:VzTrue:Ptpi:PtK:Ptpi2:PtRec:PointingAngle:DecLeng:VxRec:VyRec:VzRec:InvMass:sigvert:d0Pi:d0K:d0Pi2:dca:d0square");
1356 TClonesArray *array3Prong = 0;
1357 TClonesArray *arrayLikeSign =0;
1358 if(!aod && AODEvent() && IsStandardAOD()) {
1364 AliAODHandler* aodHandler = (AliAODHandler*)
1365 ((AliAnalysisManager::GetAnalysisManager())->GetOutputEventHandler());
1366 if(aodHandler->GetExtensions()) {
1367 AliAODExtension *ext = (AliAODExtension*)aodHandler->GetExtensions()->FindObject(
"AliAOD.VertexingHF.root");
1369 array3Prong=(TClonesArray*)aodFromExt->GetList()->FindObject(
"Charm3Prong");
1370 arrayLikeSign=(TClonesArray*)aodFromExt->GetList()->FindObject(
"LikeSign3Prong");
1373 array3Prong=(TClonesArray*)aod->GetList()->FindObject(
"Charm3Prong");
1374 arrayLikeSign=(TClonesArray*)aod->GetList()->FindObject(
"LikeSign3Prong");
1379 TClonesArray *arrayMC=0;
1380 AliAODMCHeader *mcHeader=0;
1385 arrayMC = (TClonesArray*)aod->GetList()->FindObject(AliAODMCParticle::StdBranchName());
1387 AliError(
"AliAnalysisTaskSELambdac::UserExec: MC particles branch not found!\n");
1393 mcHeader = (AliAODMCHeader*)aod->GetList()->FindObject(AliAODMCHeader::StdBranchName());
1395 AliError(
"AliAnalysisTaskSELambdac::UserExec: MC header branch not found!\n");
1404 fillthis=
"hPrimariesvsAOD";
1405 ((
TH1I*)
fMultiplicity->FindObject(fillthis))->Fill(aod->GetNumberOfTracks(),numberOfPrimaries);
1407 fillthis=
"hAll2MultiplicityInEvent";
1410 fillthis=
"hAll2MultiplicityPrimaryInEvent";
1414 fillthis=
"h2MultiplicityInLcEvent";
1420 if(!array3Prong || !aod) {
1421 AliError(
"AliAnalysisTaskSELambdac::UserExec: Charm3Prong branch not found!\n");
1424 if(!arrayLikeSign) {
1425 AliDebug(2,
"AliAnalysisTaskSELambdac::UserExec: LikeSign3Prong branch not found!\n");
1431 AliAODVertex *vtx1 = (AliAODVertex*)aod->GetPrimaryVertex();
1432 if(!vtx1 || TMath::Abs(aod->GetMagneticField())<0.001)
return;
1436 TString trigclass=aod->GetFiredTriggerClasses();
1437 if(trigclass.Contains(
"C0SMH-B-NOPF-ALLNOTRD") || trigclass.Contains(
"C0SMH-B-NOPF-ALL"))
fNentries->Fill(14);
1440 if(!isEvSelProdCuts || !isEvSelAnCuts){
1446 Bool_t isThereA3prongWithGoodTracks = kFALSE;
1447 Bool_t isThereA3ProngLcKine = kFALSE;
1448 Bool_t isThereA3ProngLcKineANDpid = kFALSE;
1449 Bool_t isThereA3ProngLcMC = kFALSE;
1450 Bool_t isThereA3ProngCyes = kFALSE;
1451 Bool_t isThereA3ProngByes = kFALSE;
1452 Bool_t isThereA3ProngJPsi = kFALSE;
1454 Int_t n3Prong = array3Prong->GetEntriesFast();
1455 Int_t nSelectedloose[1]={0};
1456 Int_t nSelectedtight[1]={0};
1462 for (
Int_t i3Prong = 0; i3Prong < n3Prong; i3Prong++) {
1487 if(!isSelectedTracks)
continue;
1491 isThereA3prongWithGoodTracks=kTRUE;
1498 if(ptbin==-1) {
fNentries->Fill(4);
continue;}
1507 isThereA3ProngLcKine,isThereA3ProngLcKineANDpid,isThereA3ProngLcMC,
1508 isThereA3ProngCyes,isThereA3ProngByes,isThereA3ProngJPsi);
1522 fillthis=
"hAllMultiplicityInEvent";
1525 fillthis=
"hAllMultiplicityPrimaryInEvent";
1529 fillthis=
"hMultiplicityInLcEvent";
1533 if (isThereA3prongWithGoodTracks) {
1534 fillthis=
"hMultiplicityInEvent";
1537 if (isThereA3ProngLcKine) {
1538 fillthis=
"hMultiplicityIn3ProngLC";
1541 if (isThereA3ProngLcKineANDpid) {
1542 fillthis=
"hMultiplicityInLCpid";
1545 if (isThereA3ProngLcMC) {
1546 fillthis=
"hMultiplicityInLCmc";
1549 if (isThereA3ProngLcKine && !isThereA3ProngLcMC) {
1550 fillthis=
"hMultiplicityInLCNomc";
1554 if (isThereA3ProngCyes) {
1555 fillthis=
"hMultiplicityYesC";
1558 if (isThereA3ProngByes) {
1559 fillthis=
"hMultiplicityYesB";
1562 if (isThereA3ProngJPsi) {
1563 fillthis=
"hMultiplicityJPsi";
1589 if (fDebug > 1) printf(
"AnalysisTaskSELambdac: Terminate() \n");
1593 AliError(
"ERROR: fOutput not available\n");
1609 Int_t lambdacLab[3]={0,0,0};
1611 for(
Int_t i=0;i<3;i++){
1612 AliAODTrack *daugh=(AliAODTrack*)d->GetDaughter(i);
1613 Int_t lab=daugh->GetLabel();
1615 AliAODMCParticle *part= (AliAODMCParticle*)arrayMC->At(lab);
1618 Int_t partPdgcode = TMath::Abs(part->GetPdgCode());
1619 if(partPdgcode==211 || partPdgcode==321 || partPdgcode==2212){
1620 Int_t motherLabel=part->GetMother();
1621 if(motherLabel<0)
return 0;
1622 AliAODMCParticle *motherPart = (AliAODMCParticle*)arrayMC->At(motherLabel);
1623 if(!motherPart)
continue;
1624 Int_t motherPdg = TMath::Abs(motherPart->GetPdgCode());
1625 if(motherPdg==4122) {
1626 if(
GetLambdacDaugh(motherPart,arrayMC)){lambdacLab[i]=motherLabel;
continue;}
1628 if(motherPdg==313 || motherPdg==2224 || motherPdg==3124){
1629 Int_t granMotherLabel=motherPart->GetMother();
1630 if(granMotherLabel<0)
return 0;
1631 AliAODMCParticle *granMotherPart = (AliAODMCParticle*)arrayMC->At(granMotherLabel);
1632 if(!granMotherPart)
continue;
1633 Int_t granMotherPdg = TMath::Abs(granMotherPart->GetPdgCode());
1634 if(granMotherPdg ==4122) {
1635 if(
GetLambdacDaugh(granMotherPart,arrayMC)) {lambdacLab[i]=granMotherLabel;
continue;}
1641 if(lambdacLab[0]==lambdacLab[1] && lambdacLab[1]==lambdacLab[2]) {
return lambdacLab[0];}
1648 Int_t numberOfLambdac=0;
1649 if(TMath::Abs(part->GetPdgCode())!=4122)
return kFALSE;
1654 if(nDaugh<2)
return kFALSE;
1655 if(nDaugh>3)
return kFALSE;
1656 AliAODMCParticle* pdaugh1 = (AliAODMCParticle*)arrayMC->At(part->GetDaughter(0));
1657 if(!pdaugh1) {
return kFALSE;}
1658 Int_t number1 = TMath::Abs(pdaugh1->GetPdgCode());
1659 AliAODMCParticle* pdaugh2 = (AliAODMCParticle*)arrayMC->At(part->GetDaughter(1));
1660 if(!pdaugh2) {
return kFALSE;}
1661 Int_t number2 = TMath::Abs(pdaugh2->GetPdgCode());
1664 Int_t thirdDaugh=part->GetDaughter(1)-1;
1665 AliAODMCParticle* pdaugh3 = (AliAODMCParticle*)arrayMC->At(thirdDaugh);
1666 Int_t number3 = TMath::Abs(pdaugh3->GetPdgCode());
1667 if((number1==321 && number2==211 && number3==2212) ||
1668 (number1==211 && number2==321 && number3==2212) ||
1669 (number1==211 && number2==2212 && number3==321) ||
1670 (number1==321 && number2==2212 && number3==211) ||
1671 (number1==2212 && number2==321 && number3==211) ||
1672 (number1==2212 && number2==211 && number3==321)) {
1685 if((number1==2212 && number2==313)){
1686 nfiglieK=pdaugh2->GetNDaughters();
1687 if(nfiglieK!=2)
return kFALSE;
1688 AliAODMCParticle* pdaughK1 = (AliAODMCParticle*)arrayMC->At(pdaugh2->GetDaughter(0));
1689 AliAODMCParticle* pdaughK2 = (AliAODMCParticle*)arrayMC->At(pdaugh2->GetDaughter(1));
1690 if(!pdaughK1)
return kFALSE;
1691 if(!pdaughK2)
return kFALSE;
1692 if((TMath::Abs(pdaughK1->GetPdgCode())==211 && TMath::Abs(pdaughK2->GetPdgCode())==321) || (TMath::Abs(pdaughK1->GetPdgCode())==321 && TMath::Abs(pdaughK2->GetPdgCode())==211)) numberOfLambdac++;
1695 if((number1==313 && number2==2212)){
1696 nfiglieK=pdaugh1->GetNDaughters();
1697 if(nfiglieK!=2)
return kFALSE;
1698 AliAODMCParticle* pdaughK1 = (AliAODMCParticle*)arrayMC->At(pdaugh1->GetDaughter(0));
1699 AliAODMCParticle* pdaughK2 = (AliAODMCParticle*)arrayMC->At(pdaugh1->GetDaughter(1));
1700 if(!pdaughK1)
return kFALSE;
1701 if(!pdaughK2)
return kFALSE;
1702 if((TMath::Abs(pdaughK1->GetPdgCode())==211 && TMath::Abs(pdaughK2->GetPdgCode())==321) || (TMath::Abs(pdaughK1->GetPdgCode())==321 && TMath::Abs(pdaughK2->GetPdgCode())==211)) numberOfLambdac++;
1706 Int_t nfiglieDelta=0;
1707 if(number1==321 && number2==2224){
1708 nfiglieDelta=pdaugh2->GetNDaughters();
1709 if(nfiglieDelta!=2)
return kFALSE;
1710 AliAODMCParticle *pdaughD1=(AliAODMCParticle*)arrayMC->At(pdaugh2->GetDaughter(0));
1711 AliAODMCParticle *pdaughD2=(AliAODMCParticle*)arrayMC->At(pdaugh2->GetDaughter(1));
1712 if(!pdaughD1)
return kFALSE;
1713 if(!pdaughD2)
return kFALSE;
1714 if((TMath::Abs(pdaughD1->GetPdgCode())==211 && TMath::Abs(pdaughD2->GetPdgCode())==2212) || (TMath::Abs(pdaughD1->GetPdgCode())==2212 && TMath::Abs(pdaughD2->GetPdgCode())==211)) numberOfLambdac++;
1716 if(number1==2224 && number2==321){
1717 nfiglieDelta=pdaugh1->GetNDaughters();
1718 if(nfiglieDelta!=2)
return kFALSE;
1719 AliAODMCParticle* pdaughD1 = (AliAODMCParticle*)arrayMC->At(pdaugh1->GetDaughter(0));
1720 AliAODMCParticle* pdaughD2 = (AliAODMCParticle*)arrayMC->At(pdaugh1->GetDaughter(1));
1721 if(!pdaughD1)
return kFALSE;
1722 if(!pdaughD2)
return kFALSE;
1723 if((TMath::Abs(pdaughD1->GetPdgCode())==211 && TMath::Abs(pdaughD2->GetPdgCode())==2212) || (TMath::Abs(pdaughD1->GetPdgCode())==2212 && TMath::Abs(pdaughD2->GetPdgCode())==211)) numberOfLambdac++;
1729 if(number1==3124 && number2==211){
1730 nfiglieLa=pdaugh1->GetNDaughters();
1731 if(nfiglieLa!=2)
return kFALSE;
1732 AliAODMCParticle *pdaughL1=(AliAODMCParticle*)arrayMC->At(pdaugh1->GetDaughter(0));
1733 AliAODMCParticle *pdaughL2=(AliAODMCParticle*)arrayMC->At(pdaugh1->GetDaughter(1));
1734 if(!pdaughL1)
return kFALSE;
1735 if(!pdaughL2)
return kFALSE;
1736 if((TMath::Abs(pdaughL1->GetPdgCode())==321 && TMath::Abs(pdaughL2->GetPdgCode())==2212) || (TMath::Abs(pdaughL1->GetPdgCode())==2212 && TMath::Abs(pdaughL2->GetPdgCode())==321)) numberOfLambdac++;
1738 if(number1==211 && number2==3124){
1739 nfiglieLa=pdaugh2->GetNDaughters();
1740 if(nfiglieLa!=2)
return kFALSE;
1741 AliAODMCParticle *pdaughL1=(AliAODMCParticle*)arrayMC->At(pdaugh2->GetDaughter(0));
1742 AliAODMCParticle *pdaughL2=(AliAODMCParticle*)arrayMC->At(pdaugh2->GetDaughter(1));
1743 if(!pdaughL1)
return kFALSE;
1744 if(!pdaughL2)
return kFALSE;
1745 if((TMath::Abs(pdaughL1->GetPdgCode())==321 && TMath::Abs(pdaughL2->GetPdgCode())==2212) || (TMath::Abs(pdaughL1->GetPdgCode())==2212 && TMath::Abs(pdaughL2->GetPdgCode())==321)) numberOfLambdac++;
1750 if(numberOfLambdac>0) {
return kTRUE;}
1756 Int_t lab[3]={0,0,0},pdgs[3]={0,0,0};
1757 for(
Int_t i=0;i<3;i++){
1758 AliAODTrack *daugh=(AliAODTrack*)d->GetDaughter(i);
1759 lab[i]=daugh->GetLabel();
1760 if(lab[i]<0)
return kFALSE;
1761 AliAODMCParticle *part= (AliAODMCParticle*)arrayMC->At(lab[i]);
1762 if(!part)
return kFALSE;
1763 pdgs[i]=TMath::Abs(part->GetPdgCode());
1766 if(pdgs[0]==2212 && pdgs[1]==321 && pdgs[2]==211)
return kTRUE;
1774 Int_t lab[3]={0,0,0},pdgs[3]={0,0,0};
1775 for(
Int_t i=0;i<3;i++){
1776 AliAODTrack *daugh=(AliAODTrack*)d->GetDaughter(i);
1777 lab[i]=daugh->GetLabel();
1778 if(lab[i]<0)
return kFALSE;
1779 AliAODMCParticle *part= (AliAODMCParticle*)arrayMC->At(lab[i]);
1780 if(!part)
return kFALSE;
1781 pdgs[i]=TMath::Abs(part->GetPdgCode());
1784 if(pdgs[2]==2212 && pdgs[1]==321 && pdgs[0]==211) {
return kTRUE;}
1791 Int_t iprongs[3]={0,1,2};
1793 Bool_t constraint=kFALSE;
1794 if(
fCutsKF[0]>0.)constraint=kTRUE;
1796 AliKFParticle *lambdac=d->
ApplyVertexingKF(iprongs,3,pdgs,constraint,field,mass);
1797 if(!lambdac)
return kFALSE;
1798 if(lambdac->GetChi2()/lambdac->GetNDF()>
fCutsKF[1])
return kFALSE;
1807 Int_t ipRes[2]={1,2};
1808 Int_t pdgres[2]={321,2212};
1809 AliKFParticle *lambda1520=d->
ApplyVertexingKF(ipRes,2,pdgres,kFALSE,field,mass);
1810 Double_t probLa=TMath::Prob(lambda1520->GetChi2(),lambda1520->GetNDF());
1811 if(probLa>0.1) resNumber[0]=1;
1813 mass[0]=0.8961;mass[1]=0.03;
1814 ipRes[0]=0;ipRes[1]=1;
1815 pdgres[0]=211;pdgres[1]=321;
1816 AliKFParticle *kstar=d->
ApplyVertexingKF(ipRes,2,pdgres,kFALSE,field,mass);
1817 Double_t probKa=TMath::Prob(kstar->GetChi2(),kstar->GetNDF());
1818 if(probKa>0.1) resNumber[1]=1;
1821 mass[0]=1.232;mass[1]=0.15;
1822 ipRes[0]=0;ipRes[1]=2;
1823 pdgres[0]=211;pdgres[1]=2122;
1824 AliKFParticle *delta=d->
ApplyVertexingKF(ipRes,2,pdgres,kFALSE,field,mass);
1825 Double_t probDe=TMath::Prob(delta->GetChi2(),delta->GetNDF());
1826 if(probDe>0.1) resNumber[2]=1;
1837 Int_t ipRes[2]={0,1};
1838 Int_t pdgres[2]={2212,321};
1839 AliKFParticle *lambda1520=d->
ApplyVertexingKF(ipRes,2,pdgres,kFALSE,field,mass);
1840 Double_t probLa=TMath::Prob(lambda1520->GetChi2(),lambda1520->GetNDF());
1841 if(probLa>0.1) resNumber[0]=1;
1843 mass[0]=0.8961;mass[1]=0.03;
1844 ipRes[0]=1;ipRes[1]=2;
1845 pdgres[1]=211;pdgres[0]=321;
1846 AliKFParticle *kstar=d->
ApplyVertexingKF(ipRes,2,pdgres,kFALSE,field,mass);
1847 Double_t probKa=TMath::Prob(kstar->GetChi2(),kstar->GetNDF());
1848 if(probKa>0.1) resNumber[1]=1;
1851 mass[0]=1.232;mass[1]=0.15;
1852 ipRes[0]=0;ipRes[1]=2;
1853 pdgres[0]=2122;pdgres[1]=211;
1854 AliKFParticle *delta=d->
ApplyVertexingKF(ipRes,2,pdgres,kFALSE,field,mass);
1855 Double_t probDe=TMath::Prob(delta->GetChi2(),delta->GetNDF());
1856 if(probDe>0.1) resNumber[2]=1;
1870 nSelectedloose[0]=nSelectedloose[0]+1;
1876 if(ptCand<fArrayBinLimits[ibin+1])iPtBin=ibin;
1901 Int_t pdgCand =4122;
1902 Int_t pdgDaughter[3]={-1,-1,-1};
1903 pdgDaughter[0]=2212;
1907 labDp = part->MatchToMC(pdgCand,arrayMC,3,pdgDaughter);
1910 AliAODMCParticle *partDp = (AliAODMCParticle*)arrayMC->At(labDp);
1911 AliAODMCParticle *dg0 = (AliAODMCParticle*)arrayMC->At(partDp->GetDaughter(0));
1912 AliAODMCParticle *dg1 = (AliAODMCParticle*)arrayMC->At(partDp->GetDaughter(1));
1913 deltaPx=partDp->Px()-part->Px();
1914 deltaPy=partDp->Py()-part->Py();
1915 deltaPz=partDp->Pz()-part->Pz();
1916 truePt=partDp->Pt();
1920 pdgCode=TMath::Abs(partDp->GetPdgCode());
1921 pdgCode1=TMath::Abs(dg0->GetPdgCode());
1922 pdgCode2=TMath::Abs(dg1->GetPdgCode());
1924 if(pdgMom == 5) IsLcfromLb =1;
1925 if(pdgMom == 4) IsLcfromc =1;
1927 if(isThereaQuark>0) IsLcFromq = 1;
1946 Double_t field=aod->GetMagneticField();
1955 if(selection==1 || selection==3) invMasspKpi=part->
InvMassLcpKpi();
1960 Int_t ispKpi[3]={0,0,0};
1962 Int_t ispiKp[3]={0,0,0};
1964 if (selection==3 || selection==1) {
1974 if(ispKpi[2]==0 && ispKpi[1]==0 && ispKpi[0]==0){
1988 if(ispiKp[2]==0 && ispiKp[1]==0 && ispiKp[0]==0){
1996 if(invMasspiKp<0. && invMasspKpi<0.)
return;
1998 Int_t passTightCuts=0;
2002 Int_t pdgs[3]={0,0,0};
2004 pdgs[0]=2212;pdgs[1]=321;pdgs[2]=211;
2014 pdgs[0]=211;pdgs[1]=321;pdgs[2]=2212;
2024 if(passTightCuts>0) nSelectedtight[0]=nSelectedtight[0]+1;
2029 if(passTightCuts>0){
2032 if(invMasspiKp>0. && invMasspKpi>0.){
2033 fhMassLcPt->Fill(part->Pt(),invMasspKpi,0.5);
2034 fhMassLcPt->Fill(part->Pt(),invMasspiKp,0.5);
2035 if(part->Charge()==1){
2039 else if(part->Charge()==-1){
2044 else if(invMasspiKp>0.){
2046 if(part->Charge()==1)
fhMassLcplusPt->Fill(part->Pt(),invMasspiKp);
2047 else if(part->Charge()==-1)
fhMassLcminusPt->Fill(part->Pt(),invMasspiKp);
2049 else if(invMasspKpi>0.){
2051 if(part->Charge()==1)
fhMassLcplusPt->Fill(part->Pt(),invMasspKpi);
2052 else if(part->Charge()==-1)
fhMassLcminusPt->Fill(part->Pt(),invMasspKpi);
2066 if(pdgCode1==2212) {tmp[8]=part->PtProng(0);}
else{tmp[8]=0.;}
2067 if(pdgCode1==211) {tmp[10]=part->PtProng(0);}
else{tmp[10]=0.;}
2068 tmp[9]=part->PtProng(1);
2069 if(pdgCode2==211) {tmp[10]=part->PtProng(2);}
else{tmp[10]=0.;}
2076 if(invMasspiKp>0.) tmp[17]=invMasspiKp;
2077 if(invMasspKpi>0.) tmp[17]=invMasspKpi;
2079 tmp[19]=part->Getd0Prong(0);
2080 tmp[20]=part->Getd0Prong(1);
2081 tmp[21]=part->Getd0Prong(2);
2082 tmp[22]=part->GetDCA();
2083 tmp[23]=part->Prodd0d0();
2090 if(part->Pt()>3.&& part->Pt()<=6.){
2091 if(invMasspiKp>0. && invMasspKpi>0.){
2098 if(invMasspiKpLpi>0. && invMasspKpiLpi>0.){
2105 if(invMasspiKpKp>0. && invMasspKpiKp>0.){
2112 if(invMasspiKpDk>0. && invMasspKpiDk>0.){
2119 if(invMasspiKp3Pr>0. && invMasspKpi3Pr>0.){
2127 if(passTightCuts>0){
2128 if(invMasspiKp>0. && invMasspKpi>0.){
2135 if(invMasspiKpLpi>0. && invMasspKpiLpi>0.){
2142 if(invMasspiKpKp>0. && invMasspKpiKp>0.){
2150 if(invMasspiKpDk>0. && invMasspKpiDk>0.){
2157 if(invMasspiKp3Pr>0. && invMasspKpi3Pr>0.){
2167 if(part->Pt()>2.&& part->Pt()<=6.){
2168 if(invMasspiKp>0. && invMasspKpi>0.){
2175 if(invMasspiKpLpi>0. && invMasspKpiLpi>0.){
2182 if(invMasspiKpKp>0. && invMasspKpiKp>0.){
2189 if(invMasspiKpDk>0. && invMasspKpiDk>0.){
2196 if(invMasspiKp3Pr>0. && invMasspKpi3Pr>0.){
2204 if(passTightCuts>0){
2205 if(invMasspiKp>0. && invMasspKpi>0.){
2212 if(invMasspiKpLpi>0. && invMasspKpiLpi>0.){
2219 if(invMasspiKpKp>0. && invMasspKpiKp>0.){
2226 if(invMasspiKpDk>0. && invMasspKpiDk>0.){
2233 if(invMasspiKp3Pr>0. && invMasspKpi3Pr>0.){
2246 if(invMasspiKp>0. && invMasspKpi>0.){
2247 if(invMasspiKp>0.)
fMassHist[index]->Fill(invMasspiKp,0.5);
2248 if(invMasspKpi>0.)
fMassHist[index]->Fill(invMasspKpi,0.5);
2250 if(invMasspiKp>0.)
fMassHist[index]->Fill(invMasspiKp);
2251 if(invMasspKpi>0.)
fMassHist[index]->Fill(invMasspKpi);
2253 if(invMasspiKpLpi>0. && invMasspKpiLpi>0.){
2254 if(invMasspiKpLpi>0.)
fMassHistLpi[index]->Fill(invMasspiKpLpi,0.5);
2255 if(invMasspKpiLpi>0.)
fMassHistLpi[index]->Fill(invMasspKpiLpi,0.5);
2257 if(invMasspiKpLpi>0.)
fMassHistLpi[index]->Fill(invMasspiKpLpi);
2258 if(invMasspKpiLpi>0.)
fMassHistLpi[index]->Fill(invMasspKpiLpi);
2260 if(invMasspiKpKp>0. && invMasspKpiKp>0.){
2261 if(invMasspiKpKp>0.)
fMassHistKp[index]->Fill(invMasspiKpKp,0.5);
2262 if(invMasspKpiKp>0.)
fMassHistKp[index]->Fill(invMasspKpiKp,0.5);
2264 if(invMasspiKpKp>0.)
fMassHistKp[index]->Fill(invMasspiKpKp);
2265 if(invMasspKpiKp>0.)
fMassHistKp[index]->Fill(invMasspKpiKp);
2267 if(invMasspiKpDk>0. && invMasspKpiDk>0.){
2268 if(invMasspiKpDk>0.)
fMassHistDk[index]->Fill(invMasspiKpDk,0.5);
2269 if(invMasspKpiDk>0.)
fMassHistDk[index]->Fill(invMasspKpiDk,0.5);
2271 if(invMasspiKpDk>0.)
fMassHistDk[index]->Fill(invMasspiKpDk);
2272 if(invMasspKpiDk>0.)
fMassHistDk[index]->Fill(invMasspKpiDk);
2274 if(invMasspiKp3Pr>0. && invMasspKpi3Pr>0.){
2275 if(invMasspiKp3Pr>0.)
fMassHist3Pr[index]->Fill(invMasspiKp3Pr,0.5);
2276 if(invMasspKpi3Pr>0.)
fMassHist3Pr[index]->Fill(invMasspKpi3Pr,0.5);
2278 if(invMasspiKp3Pr>0.)
fMassHist3Pr[index]->Fill(invMasspiKp3Pr);
2279 if(invMasspKpi3Pr>0.)
fMassHist3Pr[index]->Fill(invMasspKpi3Pr);
2282 if(passTightCuts>0){
2283 if(invMasspiKp>0. && invMasspKpi>0. && passTightCuts==3){
2284 if(invMasspiKp>0.)
fMassHistTC[index]->Fill(invMasspiKp,0.5);
2285 if(invMasspKpi>0.)
fMassHistTC[index]->Fill(invMasspKpi,0.5);
2287 if(invMasspiKp>0. && passTightCuts==2)
fMassHistTC[index]->Fill(invMasspiKp);
2288 if(invMasspKpi>0. && passTightCuts==1)
fMassHistTC[index]->Fill(invMasspKpi);
2290 if(invMasspiKpLpi>0. && invMasspKpiLpi>0. && passTightCuts==3){
2291 if(invMasspiKpLpi>0.)
fMassHistLpiTC[index]->Fill(invMasspiKpLpi,0.5);
2292 if(invMasspKpiLpi>0.)
fMassHistLpiTC[index]->Fill(invMasspKpiLpi,0.5);
2294 if(invMasspiKpLpi>0. && passTightCuts==2)
fMassHistLpiTC[index]->Fill(invMasspiKpLpi);
2295 if(invMasspKpiLpi>0.&& passTightCuts==1)
fMassHistLpiTC[index]->Fill(invMasspKpiLpi);
2297 if(invMasspiKpKp>0. && invMasspKpiKp>0. && passTightCuts==3){
2298 if(invMasspiKpKp>0.)
fMassHistKpTC[index]->Fill(invMasspiKpKp,0.5);
2299 if(invMasspKpiKp>0.)
fMassHistKpTC[index]->Fill(invMasspKpiKp,0.5);
2301 if(invMasspiKpKp>0. && passTightCuts==2)
fMassHistKpTC[index]->Fill(invMasspiKpKp);
2302 if(invMasspKpiKp>0.&& passTightCuts==1)
fMassHistKpTC[index]->Fill(invMasspKpiKp);
2304 if(invMasspiKpDk>0. && invMasspKpiDk>0. && passTightCuts==3){
2305 if(invMasspiKpDk>0.)
fMassHistDkTC[index]->Fill(invMasspiKpDk,0.5);
2306 if(invMasspKpiDk>0.)
fMassHistDkTC[index]->Fill(invMasspKpiDk,0.5);
2308 if(invMasspiKpDk>0. && passTightCuts==2)
fMassHistDkTC[index]->Fill(invMasspiKpDk);
2309 if(invMasspKpiDk>0.&& passTightCuts==1)
fMassHistDkTC[index]->Fill(invMasspKpiDk);
2311 if(invMasspiKp3Pr>0. && invMasspKpi3Pr>0. && passTightCuts==3){
2312 if(invMasspiKp3Pr>0.)
fMassHist3PrTC[index]->Fill(invMasspiKp3Pr,0.5);
2313 if(invMasspKpi3Pr>0.)
fMassHist3PrTC[index]->Fill(invMasspKpi3Pr,0.5);
2315 if(invMasspiKp3Pr>0. && passTightCuts==2)
fMassHist3PrTC[index]->Fill(invMasspiKp3Pr);
2316 if(invMasspKpi3Pr>0.&& passTightCuts==1)
fMassHist3PrTC[index]->Fill(invMasspKpi3Pr);
2324 if(invMasspiKp>0. && invMasspKpi>0.){
2325 if(invMasspiKp>0.)
fMassHist[index]->Fill(invMasspiKp,0.5);
2326 if(invMasspKpi>0.)
fMassHist[index]->Fill(invMasspKpi,0.5);
2328 if(invMasspiKp>0.)
fMassHist[index]->Fill(invMasspiKp);
2329 if(invMasspKpi>0.)
fMassHist[index]->Fill(invMasspKpi);
2331 if(invMasspiKpLpi>0. && invMasspKpiLpi>0.){
2332 if(invMasspiKpLpi>0.)
fMassHistLpi[index]->Fill(invMasspiKpLpi,0.5);
2333 if(invMasspKpiLpi>0.)
fMassHistLpi[index]->Fill(invMasspKpiLpi,0.5);
2335 if(invMasspiKpLpi>0.)
fMassHistLpi[index]->Fill(invMasspiKpLpi);
2336 if(invMasspKpiLpi>0.)
fMassHistLpi[index]->Fill(invMasspKpiLpi);
2338 if(invMasspiKpKp>0. && invMasspKpiKp>0.){
2339 if(invMasspiKpKp>0.)
fMassHistKp[index]->Fill(invMasspiKpKp,0.5);
2340 if(invMasspKpiKp>0.)
fMassHistKp[index]->Fill(invMasspKpiKp,0.5);
2342 if(invMasspiKpKp>0.)
fMassHistKp[index]->Fill(invMasspiKpKp);
2343 if(invMasspKpiKp>0.)
fMassHistKp[index]->Fill(invMasspKpiKp);
2345 if(invMasspiKpDk>0. && invMasspKpiDk>0.){
2346 if(invMasspiKpDk>0.)
fMassHistDk[index]->Fill(invMasspiKpDk,0.5);
2347 if(invMasspKpiDk>0.)
fMassHistDk[index]->Fill(invMasspKpiDk,0.5);
2349 if(invMasspiKpDk>0.)
fMassHistDk[index]->Fill(invMasspiKpDk);
2350 if(invMasspKpiDk>0.)
fMassHistDk[index]->Fill(invMasspKpiDk);
2352 if(invMasspiKp3Pr>0. && invMasspKpi3Pr>0.){
2353 if(invMasspiKp3Pr>0.)
fMassHist3Pr[index]->Fill(invMasspiKp3Pr,0.5);
2354 if(invMasspKpi3Pr>0.)
fMassHist3Pr[index]->Fill(invMasspKpi3Pr,0.5);
2356 if(invMasspiKp3Pr>0.)
fMassHist3Pr[index]->Fill(invMasspiKp3Pr);
2357 if(invMasspKpi3Pr>0.)
fMassHistDk[index]->Fill(invMasspKpi3Pr);
2360 if(passTightCuts>0){
2361 if(invMasspiKp>0. && invMasspKpi>0. && passTightCuts==3){
2362 if(invMasspiKp>0.)
fMassHistTC[index]->Fill(invMasspiKp,0.5);
2363 if(invMasspKpi>0.)
fMassHistTC[index]->Fill(invMasspKpi,0.5);
2365 if(invMasspiKp>0. && passTightCuts==2)
fMassHistTC[index]->Fill(invMasspiKp);
2366 if(invMasspKpi>0.&& passTightCuts==1)
fMassHistTC[index]->Fill(invMasspKpi);
2368 if(invMasspiKpLpi>0. && invMasspKpiLpi>0. && passTightCuts==3){
2369 if(invMasspiKpLpi>0.)
fMassHistLpiTC[index]->Fill(invMasspiKpLpi,0.5);
2370 if(invMasspKpiLpi>0.)
fMassHistLpiTC[index]->Fill(invMasspKpiLpi,0.5);
2372 if(invMasspiKpLpi>0. && passTightCuts==2)
fMassHistLpiTC[index]->Fill(invMasspiKpLpi);
2373 if(invMasspKpiLpi>0.&& passTightCuts==1)
fMassHistLpiTC[index]->Fill(invMasspKpiLpi);
2375 if(invMasspiKpKp>0. && invMasspKpiKp>0. && passTightCuts==3){
2376 if(invMasspiKpKp>0.)
fMassHistKpTC[index]->Fill(invMasspiKpKp,0.5);
2377 if(invMasspKpiKp>0.)
fMassHistKpTC[index]->Fill(invMasspKpiKp,0.5);
2379 if(invMasspiKpKp>0. && passTightCuts==2)
fMassHistKpTC[index]->Fill(invMasspiKpKp);
2380 if(invMasspKpiKp>0.&& passTightCuts==1)
fMassHistKpTC[index]->Fill(invMasspKpiKp);
2382 if(invMasspiKpDk>0. && invMasspKpiDk>0. && passTightCuts==3){
2383 if(invMasspiKpDk>0.)
fMassHistDkTC[index]->Fill(invMasspiKpDk,0.5);
2384 if(invMasspKpiDk>0.)
fMassHistDkTC[index]->Fill(invMasspKpiDk,0.5);
2386 if(invMasspiKpDk>0. && passTightCuts==2)
fMassHistDkTC[index]->Fill(invMasspiKpDk);
2387 if(invMasspKpiDk>0.&& passTightCuts==1)
fMassHistDkTC[index]->Fill(invMasspKpiDk);
2389 if(invMasspiKp3Pr>0. && invMasspKpi3Pr>0. && passTightCuts==3){
2390 if(invMasspiKp3Pr>0.)
fMassHist3PrTC[index]->Fill(invMasspiKp3Pr,0.5);
2391 if(invMasspKpi3Pr>0.)
fMassHist3PrTC[index]->Fill(invMasspKpi3Pr,0.5);
2393 if(invMasspiKp3Pr>0. && passTightCuts==2)
fMassHist3PrTC[index]->Fill(invMasspiKp3Pr);
2394 if(invMasspKpi3Pr>0.&& passTightCuts==1)
fMassHist3PrTC[index]->Fill(invMasspKpi3Pr);
2398 if(IsLc && IsLcfromLb){
2400 if(invMasspiKp>0. && invMasspKpi>0.){
2401 if(invMasspiKp>0.)
fMassHist[index]->Fill(invMasspiKp,0.5);
2402 if(invMasspKpi>0.)
fMassHist[index]->Fill(invMasspKpi,0.5);
2404 if(invMasspiKp>0.)
fMassHist[index]->Fill(invMasspiKp);
2405 if(invMasspKpi>0.)
fMassHist[index]->Fill(invMasspKpi);
2407 if(passTightCuts>0){
2408 if(invMasspiKp>0. && invMasspKpi>0. && passTightCuts==3){
2409 if(invMasspiKp>0.)
fMassHistTC[index]->Fill(invMasspiKp,0.5);
2410 if(invMasspKpi>0.)
fMassHistTC[index]->Fill(invMasspKpi,0.5);
2412 if(invMasspiKp>0. && passTightCuts==2)
fMassHistTC[index]->Fill(invMasspiKp);
2413 if(invMasspKpi>0.&& passTightCuts==1)
fMassHistTC[index]->Fill(invMasspKpi);
2417 if(IsLc && !IsLcfromLb && IsLcfromc) {
2419 if(invMasspiKp>0. && invMasspKpi>0.){
2420 if(invMasspiKp>0.)
fMassHist[index]->Fill(invMasspiKp,0.5);
2421 if(invMasspKpi>0.)
fMassHist[index]->Fill(invMasspKpi,0.5);
2423 if(invMasspiKp>0.)
fMassHist[index]->Fill(invMasspiKp);
2424 if(invMasspKpi>0.)
fMassHist[index]->Fill(invMasspKpi);
2426 if(passTightCuts>0){
2427 if(invMasspiKp>0. && invMasspKpi>0. && passTightCuts==3){
2428 if(invMasspiKp>0.)
fMassHistTC[index]->Fill(invMasspiKp,0.5);
2429 if(invMasspKpi>0.)
fMassHistTC[index]->Fill(invMasspKpi,0.5);
2431 if(invMasspiKp>0. && passTightCuts==2)
fMassHistTC[index]->Fill(invMasspiKp);
2432 if(invMasspKpi>0.&& passTightCuts==1)
fMassHistTC[index]->Fill(invMasspKpi);
2438 if(IsLc && !IsLcFromq) {
2440 if(invMasspiKp>0. && invMasspKpi>0.){
2441 if(invMasspiKp>0.)
fMassHist[index]->Fill(invMasspiKp,0.5);
2442 if(invMasspKpi>0.)
fMassHist[index]->Fill(invMasspKpi,0.5);
2444 if(invMasspiKp>0.)
fMassHist[index]->Fill(invMasspiKp);
2445 if(invMasspKpi>0.)
fMassHist[index]->Fill(invMasspKpi);
2447 if(passTightCuts>0){
2448 if(invMasspiKp>0. && invMasspKpi>0. && passTightCuts==3){
2449 if(invMasspiKp>0.)
fMassHistTC[index]->Fill(invMasspiKp,0.5);
2450 if(invMasspKpi>0.)
fMassHistTC[index]->Fill(invMasspKpi,0.5);
2452 if(invMasspiKp>0. && passTightCuts==2)
fMassHistTC[index]->Fill(invMasspiKp);
2453 if(invMasspKpi>0.&& passTightCuts==1)
fMassHistTC[index]->Fill(invMasspKpi);
2461 if(invMasspiKp>0. && invMasspKpi>0.){
2462 fMassHist[index]->Fill(invMasspiKp,0.5);
2463 fMassHist[index]->Fill(invMasspKpi,0.5);
2465 if(invMasspiKp>0.)
fMassHist[index]->Fill(invMasspiKp);
2466 if(invMasspKpi>0.)
fMassHist[index]->Fill(invMasspKpi);
2468 if(invMasspiKpLpi>0. && invMasspKpiLpi>0.){
2469 if(invMasspiKpLpi>0.)
fMassHistLpi[index]->Fill(invMasspiKpLpi,0.5);
2470 if(invMasspKpiLpi>0.)
fMassHistLpi[index]->Fill(invMasspKpiLpi,0.5);
2472 if(invMasspiKpLpi>0.)
fMassHistLpi[index]->Fill(invMasspiKpLpi);
2473 if(invMasspKpiLpi>0.)
fMassHistLpi[index]->Fill(invMasspKpiLpi);
2475 if(invMasspiKpKp>0. && invMasspKpiKp>0.){
2476 if(invMasspiKpKp>0.)
fMassHistKp[index]->Fill(invMasspiKpKp,0.5);
2477 if(invMasspKpiKp>0.)
fMassHistKp[index]->Fill(invMasspKpiKp,0.5);
2479 if(invMasspiKpKp>0.)
fMassHistKp[index]->Fill(invMasspiKpKp);
2480 if(invMasspKpiKp>0.)
fMassHistKp[index]->Fill(invMasspKpiKp);
2482 if(invMasspiKpDk>0. && invMasspKpiDk>0.){
2483 if(invMasspiKpDk>0.)
fMassHistDk[index]->Fill(invMasspiKpDk,0.5);
2484 if(invMasspKpiDk>0.)
fMassHistDk[index]->Fill(invMasspKpiDk,0.5);
2486 if(invMasspiKpDk>0.)
fMassHistDk[index]->Fill(invMasspiKpDk);
2487 if(invMasspKpiDk>0.)
fMassHistDk[index]->Fill(invMasspKpiDk);
2489 if(invMasspiKp3Pr>0. && invMasspKpi3Pr>0.){
2490 if(invMasspiKp3Pr>0.)
fMassHist3Pr[index]->Fill(invMasspiKp3Pr,0.5);
2491 if(invMasspKpi3Pr>0.)
fMassHist3Pr[index]->Fill(invMasspKpi3Pr,0.5);
2493 if(invMasspiKp3Pr>0.)
fMassHist3Pr[index]->Fill(invMasspiKp3Pr);
2494 if(invMasspKpi3Pr>0.)
fMassHistDk[index]->Fill(invMasspKpi3Pr);
2496 if(invMasspiKp>0. && invMasspKpi>0. && passTightCuts==3){
2500 if(invMasspiKp>0. && passTightCuts==2)
fMassHistTC[index]->Fill(invMasspiKp);
2501 if(invMasspKpi>0. && passTightCuts==1)
fMassHistTC[index]->Fill(invMasspKpi);
2503 if(invMasspiKpLpi>0. && invMasspKpiLpi>0. && passTightCuts==3){
2504 if(invMasspiKpLpi>0.)
fMassHistLpiTC[index]->Fill(invMasspiKpLpi,0.5);
2505 if(invMasspKpiLpi>0.)
fMassHistLpiTC[index]->Fill(invMasspKpiLpi,0.5);
2507 if(invMasspiKpLpi>0. && passTightCuts==2)
fMassHistLpiTC[index]->Fill(invMasspiKpLpi);
2508 if(invMasspKpiLpi>0.&& passTightCuts==1)
fMassHistLpiTC[index]->Fill(invMasspKpiLpi);
2510 if(invMasspiKpKp>0. && invMasspKpiKp>0. && passTightCuts==3){
2511 if(invMasspiKpKp>0.)
fMassHistKpTC[index]->Fill(invMasspiKpKp,0.5);
2512 if(invMasspKpiKp>0.)
fMassHistKpTC[index]->Fill(invMasspKpiKp,0.5);
2514 if(invMasspiKpKp>0. && passTightCuts==2)
fMassHistKpTC[index]->Fill(invMasspiKpKp);
2515 if(invMasspKpiKp>0.&& passTightCuts==1)
fMassHistKpTC[index]->Fill(invMasspKpiKp);
2517 if(invMasspiKpDk>0. && invMasspKpiDk>0. && passTightCuts==3){
2518 if(invMasspiKpDk>0.)
fMassHistDkTC[index]->Fill(invMasspiKpDk,0.5);
2519 if(invMasspKpiDk>0.)
fMassHistDkTC[index]->Fill(invMasspKpiDk,0.5);
2521 if(invMasspiKpDk>0. && passTightCuts==2)
fMassHistDkTC[index]->Fill(invMasspiKpDk);
2522 if(invMasspKpiDk>0.&& passTightCuts==1)
fMassHistDkTC[index]->Fill(invMasspKpiDk);
2524 if(invMasspiKp3Pr>0. && invMasspKpi3Pr>0. && passTightCuts==3){
2525 if(invMasspiKp3Pr>0.)
fMassHist3PrTC[index]->Fill(invMasspiKp3Pr,0.5);
2526 if(invMasspKpi3Pr>0.)
fMassHist3PrTC[index]->Fill(invMasspKpi3Pr,0.5);
2528 if(invMasspiKp3Pr>0. && passTightCuts==2)
fMassHist3PrTC[index]->Fill(invMasspiKp3Pr);
2529 if(invMasspKpi3Pr>0.&& passTightCuts==1)
fMassHist3PrTC[index]->Fill(invMasspKpi3Pr);
2540 TClonesArray *arrMC,
2550 Double_t mPDG=TDatabasePDG::Instance()->GetParticle(4122)->Mass();
2553 Int_t pdgDgLctopKpi[3]={2212,321,211};
2558 lab=part->MatchToMC(4122,arrMC,3,pdgDgLctopKpi);
2560 AliAODMCParticle *partDp = (AliAODMCParticle*)arrMC->At(lab);
2564 if(pdgMom == 4) IsLcfromc =1;
2575 if (isSelectedPID==0)
fNentries->Fill(7);
2576 if (isSelectedPID==1)
fNentries->Fill(8);
2577 if (isSelectedPID==2)
fNentries->Fill(9);
2578 if (isSelectedPID==3)
fNentries->Fill(10);
2580 AliAODTrack *prong0=(AliAODTrack*)part->GetDaughter(0);
2581 AliAODTrack *prong1=(AliAODTrack*)part->GetDaughter(1);
2582 AliAODTrack *prong2=(AliAODTrack*)part->GetDaughter(2);
2583 if (!prong0 || !prong1 || !prong2) {
2593 Int_t labprong[3]={-1,-1,-1};
2595 labprong[0]=prong0->GetLabel();
2596 labprong[1]=prong1->GetLabel();
2597 labprong[2]=prong2->GetLabel();
2600 AliAODMCParticle *mcprong=0;
2601 Int_t pdgProngMC[3]={-1,-1,-1};
2603 for (
Int_t iprong=0;iprong<3;iprong++){
2604 if(labprong[iprong]<0)
continue;
2605 mcprong = (AliAODMCParticle*)arrMC->At(labprong[iprong]);
2606 pdgProngMC[iprong]=TMath::Abs(mcprong->GetPdgCode());
2610 Int_t pdgProngPID[3]={-1,-1,-1};
2611 if(isSelectedPID>0){
2613 if(isSelectedPID==1) {pdgProngPID[0]=2212;pdgProngPID[2]=211;}
2614 if(isSelectedPID==2) {pdgProngPID[0]=211;pdgProngPID[2]=2212;}
2624 AliAODMCHeader *mcHeader2 = (AliAODMCHeader*)aod->GetList()->FindObject(AliAODMCHeader::StdBranchName());
2629 if(
fReadMC && selectionTrack>0) {
2631 if(lab>=0 && IsLcfromc){
2632 for (
Int_t iprong=0; iprong<3; iprong++) {
2633 switch (pdgProngMC[iprong]) {
2635 fillthis=
"hpRealTot";
2636 ((TH1F*)
fOutputMC->FindObject(fillthis))->Fill(part->PtProng(iprong));
2640 fillthis=
"hKRealTot";
2641 ((TH1F*)
fOutputMC->FindObject(fillthis))->Fill(part->PtProng(iprong));
2645 fillthis=
"hpiRealTot";
2646 ((TH1F*)
fOutputMC->FindObject(fillthis))->Fill(part->PtProng(iprong));
2653 fillthis=
"hLcRealTot";
2654 if(isReal==3) ((TH1F*)
fOutputMC->FindObject(fillthis))->Fill(part->Pt());
2656 }
else if(!IsInjected) {
2657 for (
Int_t iprong=0; iprong<3; iprong++) {
2658 switch (pdgProngMC[iprong]) {
2660 fillthis=
"hbpRealTot";
2661 ((TH1F*)
fOutputMC->FindObject(fillthis))->Fill(part->PtProng(iprong));
2665 fillthis=
"hbKRealTot";
2666 ((TH1F*)
fOutputMC->FindObject(fillthis))->Fill(part->PtProng(iprong));
2670 fillthis=
"hbpiRealTot";
2671 ((TH1F*)
fOutputMC->FindObject(fillthis))->Fill(part->PtProng(iprong));
2678 fillthis=
"hbLcRealTot";
2679 if(isReal==3) ((TH1F*)
fOutputMC->FindObject(fillthis))->Fill(part->Pt());
2687 if ( (lab>=0 &&
fReadMC && IsLcfromc) ||
2688 (isSelectedPID>0 && !
fReadMC) ) {
2691 if ( (
fReadMC && ((AliAODMCParticle*)arrMC->At(lab))->GetPdgCode() == 4122) ||
2692 (!
fReadMC && (isSelectedPID>0 && part->Charge()>0)) ) {
2693 if ( (pdgProngPID[0]==2212) && (pdgProngPID[1]==321) && (pdgProngPID[2]==211) )
2694 ((TH1F*)
fOutputMC->FindObject(fillthis))->Fill(minvLcpKpi);
2695 else if ( (pdgProngPID[0]==211) && (pdgProngPID[1]==321) && (pdgProngPID[2]==2212) )
2696 ((TH1F*)
fOutputMC->FindObject(fillthis))->Fill(minvLcpiKp);
2698 else if ( (
fReadMC && ((AliAODMCParticle*)arrMC->At(lab))->GetPdgCode() == -4122) ||
2699 (!
fReadMC && (isSelectedPID>0 && part->Charge()<0)) ) {
2700 if ( (pdgProngPID[0]==2212) && (pdgProngPID[1]==321) && (pdgProngPID[2]==211) )
2701 ((TH1F*)
fOutputMC->FindObject(fillthis))->Fill(minvLcpKpi);
2702 else if ( (pdgProngPID[0]==211) && (pdgProngPID[1]==321) && (pdgProngPID[2]==2212) )
2703 ((TH1F*)
fOutputMC->FindObject(fillthis))->Fill(minvLcpiKp);
2711 for (
Int_t iprong=0; iprong<3; iprong++) {
2712 if (part->PtProng(iprong)>
ptmax) ptmax=part->PtProng(iprong);
2714 AliAODTrack *prong = (AliAODTrack*)part->GetDaughter(iprong);
2715 AliAODPid *pidObjtrk = (AliAODPid*)prong->GetDetPid();
2724 momTOF = prong->P();
2725 tofSignal=pidObjtrk->GetTOFsignal();
2728 momTPC = pidObjtrk->GetTPCmomentum();
2729 dedxTPC=pidObjtrk->GetTPCsignal();
2731 switch (pdgProngPID[iprong]) {
2733 fillthis=
"hpTOFSignal";
2734 ((TH1F*)
fOutputMC->FindObject(fillthis))->Fill(tofSignal);
2735 fillthis=
"hpTPCSignal";
2736 ((TH1F*)
fOutputMC->FindObject(fillthis))->Fill(dedxTPC);
2737 fillthis=
"hpptProng";
2738 ((TH1F*)
fOutputMC->FindObject(fillthis))->Fill(part->PtProng(iprong));
2739 fillthis=
"hpptProngLcPt";
2740 ((TH1F*)
fOutputMC->FindObject(fillthis))->Fill(part->Pt(),part->PtProng(iprong));
2741 fillthis=
"hpd0Prong";
2742 ((TH1F*)
fOutputMC->FindObject(fillthis))->Fill(part->Getd0Prong(iprong));
2743 fillthis=
"hpd0ProngLcPt";
2744 ((TH1F*)
fOutputMC->FindObject(fillthis))->Fill(part->Pt(),part->Getd0Prong(iprong));
2745 fillthis=
"hpSignalVspTPC";
2746 ((
TH2F*)
fOutputMC->FindObject(fillthis))->Fill(momTPC,dedxTPC);
2747 fillthis=
"hpSignalVspTOF";
2748 ((
TH2F*)
fOutputMC->FindObject(fillthis))->Fill(momTOF,tofSignal);
2749 AliPID::EParticleType typep;
2750 typep=AliPID::EParticleType(4);
2754 fillthis=
"hpSigmaVspTPC";
2755 ((
TH2F*)
fOutputMC->FindObject(fillthis))->Fill(momTPC,nsigmap);
2760 fillthis=
"hpSigmaVspTOF";
2761 ((
TH2F*)
fOutputMC->FindObject(fillthis))->Fill(momTOF,nsigma);
2767 ((TH1F*)
fOutputMC->FindObject(fillthis))->Fill(part->PtProng(iprong));
2769 if(pdgProngMC[iprong]==2212) {
2770 fillthis=
"hpIDGood";
2771 ((TH1F*)
fOutputMC->FindObject(fillthis))->Fill(part->PtProng(iprong));
2776 ((TH1F*)
fOutputMC->FindObject(fillthis))->Fill(part->PtProng(iprong));
2782 fillthis=
"hKTOFSignal";
2783 ((TH1F*)
fOutputMC->FindObject(fillthis))->Fill(tofSignal);
2784 fillthis=
"hKTPCSignal";
2785 ((TH1F*)
fOutputMC->FindObject(fillthis))->Fill(dedxTPC);
2786 fillthis=
"hKptProng";
2787 ((TH1F*)
fOutputMC->FindObject(fillthis))->Fill(part->PtProng(iprong));
2788 fillthis=
"hKptProngLcPt";
2789 ((TH1F*)
fOutputMC->FindObject(fillthis))->Fill(part->Pt(),part->PtProng(iprong));
2790 fillthis=
"hKd0Prong";
2791 ((TH1F*)
fOutputMC->FindObject(fillthis))->Fill(part->Getd0Prong(iprong));
2792 fillthis=
"hKd0ProngLcPt";
2793 ((TH1F*)
fOutputMC->FindObject(fillthis))->Fill(part->Pt(),part->Getd0Prong(iprong));
2794 fillthis=
"hKSignalVspTPC";
2795 ((
TH2F*)
fOutputMC->FindObject(fillthis))->Fill(momTPC,dedxTPC);
2796 fillthis=
"hKSignalVspTOF";
2797 ((
TH2F*)
fOutputMC->FindObject(fillthis))->Fill(momTOF,tofSignal);
2798 AliPID::EParticleType typek;
2799 typek=AliPID::EParticleType(3);
2803 fillthis=
"hKSigmaVspTPC";
2804 ((
TH2F*)
fOutputMC->FindObject(fillthis))->Fill(momTPC,nsigmap);
2809 fillthis=
"hKSigmaVspTOF";
2810 ((
TH2F*)
fOutputMC->FindObject(fillthis))->Fill(momTOF,nsigma);
2816 ((TH1F*)
fOutputMC->FindObject(fillthis))->Fill(part->PtProng(iprong));
2818 if(pdgProngMC[iprong]==321) {
2819 fillthis=
"hKIDGood";
2820 ((TH1F*)
fOutputMC->FindObject(fillthis))->Fill(part->PtProng(iprong));
2825 ((TH1F*)
fOutputMC->FindObject(fillthis))->Fill(part->PtProng(iprong));
2831 fillthis=
"hpiTOFSignal";
2832 ((TH1F*)
fOutputMC->FindObject(fillthis))->Fill(tofSignal);
2833 fillthis=
"hpiTPCSignal";
2834 ((TH1F*)
fOutputMC->FindObject(fillthis))->Fill(dedxTPC);
2835 fillthis=
"hpiptProng";
2836 ((TH1F*)
fOutputMC->FindObject(fillthis))->Fill(part->PtProng(iprong));
2837 fillthis=
"hpiptProngLcPt";
2838 ((TH1F*)
fOutputMC->FindObject(fillthis))->Fill(part->Pt(),part->PtProng(iprong));
2839 fillthis=
"hpid0Prong";
2840 ((TH1F*)
fOutputMC->FindObject(fillthis))->Fill(part->Getd0Prong(iprong));
2841 fillthis=
"hpid0ProngLcPt";
2842 ((TH1F*)
fOutputMC->FindObject(fillthis))->Fill(part->Pt(),part->Getd0Prong(iprong));
2844 fillthis=
"hpiSignalVspTPC";
2845 ((
TH2F*)
fOutputMC->FindObject(fillthis))->Fill(momTPC,dedxTPC);
2846 fillthis=
"hpiSignalVspTOF";
2847 ((
TH2F*)
fOutputMC->FindObject(fillthis))->Fill(momTOF,tofSignal);
2848 AliPID::EParticleType typepi;
2849 typepi=AliPID::EParticleType(2);
2853 fillthis=
"hpiSigmaVspTPC";
2854 ((
TH2F*)
fOutputMC->FindObject(fillthis))->Fill(momTPC,nsigmap);
2859 fillthis=
"hpiSigmaVspTOF";
2860 ((
TH2F*)
fOutputMC->FindObject(fillthis))->Fill(momTOF,nsigma);
2865 fillthis=
"hpiIDTot";
2866 ((TH1F*)
fOutputMC->FindObject(fillthis))->Fill(part->PtProng(iprong));
2868 if(pdgProngMC[iprong]==211) {
2869 fillthis=
"hpiIDGood";
2870 ((TH1F*)
fOutputMC->FindObject(fillthis))->Fill(part->PtProng(iprong));
2874 fillthis=
"hnopiIDpi";
2875 ((TH1F*)
fOutputMC->FindObject(fillthis))->Fill(part->PtProng(iprong));
2887 fillthis=
"hLcIDTot";
2888 if(isID==3) ((TH1F*)
fOutputMC->FindObject(fillthis))->Fill(part->Pt());
2889 fillthis=
"hLcIDGood";
2890 if(isCorrect==3) ((TH1F*)
fOutputMC->FindObject(fillthis))->Fill(part->Pt());
2892 if(isCorrect<3) ((TH1F*)
fOutputMC->FindObject(fillthis))->Fill(part->Pt());
2896 ((TH1F*)
fOutputMC->FindObject(fillthis))->Fill(part->Pt());
2897 fillthis =
"hDist12toPrim";
2900 fillthis =
"hDist12toPrimLcPt";
2903 fillthis =
"hSigmaVert";
2905 fillthis =
"hSigmaVertLcPt";
2910 for (
Int_t idca=0;idca<3;idca++) ((TH1F*)
fOutputMC->FindObject(fillthis))->Fill(dcas[idca]);
2911 fillthis =
"hDCAsLcPt";
2912 for (
Int_t idca=0;idca<3;idca++) ((TH1F*)
fOutputMC->FindObject(fillthis))->Fill(part->Pt(),dcas[idca]);
2913 fillthis =
"hCosPointingAngle";
2915 fillthis =
"hCosPointingAngleLcPt";
2917 fillthis =
"hDecayLength";
2919 fillthis =
"hDecayLengthLcPt";
2921 Double_t sum2=part->Getd0Prong(0)*part->Getd0Prong(0)+
2922 part->Getd0Prong(1)*part->Getd0Prong(1)+
2923 part->Getd0Prong(2)*part->Getd0Prong(2);
2925 ((TH1F*)
fOutputMC->FindObject(fillthis))->Fill(sum2);
2926 fillthis =
"hSum2LcPt";
2927 ((TH1F*)
fOutputMC->FindObject(fillthis))->Fill(part->Pt(),sum2);
2928 fillthis =
"hptmax";
2929 ((TH1F*)
fOutputMC->FindObject(fillthis))->Fill(ptmax);
2930 fillthis =
"hptmaxLcPt";
2931 ((TH1F*)
fOutputMC->FindObject(fillthis))->Fill(part->Pt(),
ptmax);
2936 }
else if( lab<0 &&
fReadMC && !IsInjected ) {
2940 if (part->Charge()>0) {
2941 if ( (pdgProngPID[0]==2212) && (pdgProngPID[1]==321) && (pdgProngPID[2]==211) )
2942 ((TH1F*)
fOutputMC->FindObject(fillthis))->Fill(minvLcpKpi);
2943 else if ( (pdgProngPID[0]==211) && (pdgProngPID[1]==321) && (pdgProngPID[2]==2212) )
2944 ((TH1F*)
fOutputMC->FindObject(fillthis))->Fill(minvLcpiKp);
2946 else if (part->Charge()<0){
2947 if ( (pdgProngPID[0]==2212) && (pdgProngPID[1]==321) && (pdgProngPID[2]==211) )
2948 ((TH1F*)
fOutputMC->FindObject(fillthis))->Fill(minvLcpKpi);
2949 else if ( (pdgProngPID[0]==211) && (pdgProngPID[1]==321) && (pdgProngPID[2]==2212) )
2950 ((TH1F*)
fOutputMC->FindObject(fillthis))->Fill(minvLcpiKp);
2955 if (TMath::Abs(minvLcpKpi-mPDG)<invmasscut || TMath::Abs(minvLcpiKp-mPDG)<invmasscut) {
2962 for (
Int_t iprong=0; iprong<3; iprong++) {
2963 if(part->PtProng(iprong)>
ptmax)ptmax=part->PtProng(iprong);
2965 AliAODTrack *prong = (AliAODTrack*)part->GetDaughter(iprong);
2966 AliAODPid *pidObjtrk = (AliAODPid*)prong->GetDetPid();
2975 momTOF = prong->P();
2976 tofSignal=pidObjtrk->GetTOFsignal();
2979 momTPC = pidObjtrk->GetTPCmomentum();
2980 dedxTPC=pidObjtrk->GetTPCsignal();
2983 switch (pdgProngPID[iprong]) {
2985 fillthis=
"hbpTOFSignal";
2986 ((TH1F*)
fOutputMC->FindObject(fillthis))->Fill(tofSignal);
2987 fillthis=
"hbpTPCSignal";
2988 ((TH1F*)
fOutputMC->FindObject(fillthis))->Fill(dedxTPC);
2989 fillthis=
"hbpptProng";
2990 ((TH1F*)
fOutputMC->FindObject(fillthis))->Fill(part->PtProng(iprong));
2991 fillthis=
"hbpptProngLcPt";
2992 ((TH1F*)
fOutputMC->FindObject(fillthis))->Fill(part->Pt(),part->PtProng(iprong));
2993 fillthis=
"hbpd0Prong";
2994 ((TH1F*)
fOutputMC->FindObject(fillthis))->Fill(part->Getd0Prong(iprong));
2995 fillthis=
"hbpd0ProngLcPt";
2996 ((TH1F*)
fOutputMC->FindObject(fillthis))->Fill(part->Pt(),part->Getd0Prong(iprong));
2997 fillthis=
"hbpSignalVspTPC";
2998 ((
TH2F*)
fOutputMC->FindObject(fillthis))->Fill(momTPC,dedxTPC);
2999 fillthis=
"hbpSignalVspTOF";
3000 ((
TH2F*)
fOutputMC->FindObject(fillthis))->Fill(momTOF,tofSignal);
3001 AliPID::EParticleType typep;
3002 typep=AliPID::EParticleType(4);
3006 fillthis=
"hbpSigmaVspTPC";
3007 ((
TH2F*)
fOutputMC->FindObject(fillthis))->Fill(momTPC,nsigmap);
3012 fillthis=
"hbpSigmaVspTOF";
3013 ((
TH2F*)
fOutputMC->FindObject(fillthis))->Fill(momTOF,nsigma);
3017 fillthis=
"hbpIDTot";
3018 ((TH1F*)
fOutputMC->FindObject(fillthis))->Fill(part->PtProng(iprong));
3020 if(pdgProngMC[iprong]==2212) {
3021 fillthis=
"hbpIDGood";
3022 ((TH1F*)
fOutputMC->FindObject(fillthis))->Fill(part->PtProng(iprong));
3026 fillthis=
"hbnopIDp";
3027 ((TH1F*)
fOutputMC->FindObject(fillthis))->Fill(part->PtProng(iprong));
3033 fillthis=
"hbKTOFSignal";
3034 ((TH1F*)
fOutputMC->FindObject(fillthis))->Fill(tofSignal);
3035 fillthis=
"hbKTPCSignal";
3036 ((TH1F*)
fOutputMC->FindObject(fillthis))->Fill(dedxTPC);
3037 fillthis=
"hbKptProng";
3038 ((TH1F*)
fOutputMC->FindObject(fillthis))->Fill(part->PtProng(iprong));
3039 fillthis=
"hbKptProngLcPt";
3040 ((TH1F*)
fOutputMC->FindObject(fillthis))->Fill(part->Pt(),part->PtProng(iprong));
3041 fillthis=
"hbKd0Prong";
3042 ((TH1F*)
fOutputMC->FindObject(fillthis))->Fill(part->Getd0Prong(iprong));
3043 fillthis=
"hbKd0ProngLcPt";
3044 ((TH1F*)
fOutputMC->FindObject(fillthis))->Fill(part->Pt(),part->Getd0Prong(iprong));
3045 fillthis=
"hbKSignalVspTPC";
3046 ((
TH2F*)
fOutputMC->FindObject(fillthis))->Fill(momTPC,dedxTPC);
3047 fillthis=
"hbKSignalVspTOF";
3048 ((
TH2F*)
fOutputMC->FindObject(fillthis))->Fill(momTOF,tofSignal);
3049 AliPID::EParticleType typek;
3050 typek=AliPID::EParticleType(3);
3054 fillthis=
"hbKSigmaVspTPC";
3055 ((
TH2F*)
fOutputMC->FindObject(fillthis))->Fill(momTPC,nsigmap);
3060 fillthis=
"hbKSigmaVspTOF";
3061 ((
TH2F*)
fOutputMC->FindObject(fillthis))->Fill(momTOF,nsigma);
3065 fillthis=
"hbKIDTot";
3066 ((TH1F*)
fOutputMC->FindObject(fillthis))->Fill(part->PtProng(iprong));
3068 if(pdgProngMC[iprong]==321) {
3069 fillthis=
"hbKIDGood";
3070 ((TH1F*)
fOutputMC->FindObject(fillthis))->Fill(part->PtProng(iprong));
3074 fillthis=
"hbnokIDk";
3075 ((TH1F*)
fOutputMC->FindObject(fillthis))->Fill(part->PtProng(iprong));
3081 fillthis=
"hbpiTOFSignal";
3082 ((TH1F*)
fOutputMC->FindObject(fillthis))->Fill(tofSignal);
3083 fillthis=
"hbpiTPCSignal";
3084 ((TH1F*)
fOutputMC->FindObject(fillthis))->Fill(dedxTPC);
3085 fillthis=
"hbpiptProng";
3086 ((TH1F*)
fOutputMC->FindObject(fillthis))->Fill(part->PtProng(iprong));
3087 fillthis=
"hbpiptProngLcPt";
3088 ((TH1F*)
fOutputMC->FindObject(fillthis))->Fill(part->PtProng(iprong));
3089 fillthis=
"hbpid0Prong";
3090 ((TH1F*)
fOutputMC->FindObject(fillthis))->Fill(part->Getd0Prong(iprong));
3091 fillthis=
"hbpid0ProngLcPt";
3092 ((TH1F*)
fOutputMC->FindObject(fillthis))->Fill(part->Pt(),part->Getd0Prong(iprong));
3093 fillthis=
"hbpiSignalVspTPC";
3094 ((
TH2F*)
fOutputMC->FindObject(fillthis))->Fill(momTPC,dedxTPC);
3095 fillthis=
"hbpiSignalVspTOF";
3096 ((
TH2F*)
fOutputMC->FindObject(fillthis))->Fill(momTOF,tofSignal);
3097 AliPID::EParticleType typepi;
3098 typepi=AliPID::EParticleType(2);
3102 fillthis=
"hbpiSigmaVspTPC";
3103 ((
TH2F*)
fOutputMC->FindObject(fillthis))->Fill(momTPC,nsigmap);
3108 fillthis=
"hbpiSigmaVspTOF";
3109 ((
TH2F*)
fOutputMC->FindObject(fillthis))->Fill(momTOF,nsigma);
3113 fillthis=
"hbpiIDTot";
3114 ((TH1F*)
fOutputMC->FindObject(fillthis))->Fill(part->PtProng(iprong));
3116 if(pdgProngMC[iprong]==211) {
3117 fillthis=
"hbpiIDGood";
3118 ((TH1F*)
fOutputMC->FindObject(fillthis))->Fill(part->PtProng(iprong));
3122 fillthis=
"hbnopiIDpi";
3123 ((TH1F*)
fOutputMC->FindObject(fillthis))->Fill(part->PtProng(iprong));
3134 fillthis=
"hbLcIDTot";
3135 if(isID==3) ((TH1F*)
fOutputMC->FindObject(fillthis))->Fill(part->Pt());
3136 fillthis=
"hbLcIDGood";
3137 if(isCorrect==3) ((TH1F*)
fOutputMC->FindObject(fillthis))->Fill(part->Pt());
3138 fillthis=
"hbLcnoID";
3139 if(isCorrect<3) ((TH1F*)
fOutputMC->FindObject(fillthis))->Fill(part->Pt());
3143 ((TH1F*)
fOutputMC->FindObject(fillthis))->Fill(part->Pt());
3145 fillthis =
"hbDist12toPrim";
3148 fillthis =
"hbDist12toPrimLcPt";
3151 fillthis =
"hbSigmaVert";
3153 fillthis =
"hbSigmaVertLcPt";
3155 fillthis =
"hbDCAs";
3158 for (
Int_t idca=0;idca<3;idca++) ((TH1F*)
fOutputMC->FindObject(fillthis))->Fill(dcas[idca]);
3159 fillthis =
"hbDCAsLcPt";
3160 for (
Int_t idca=0;idca<3;idca++) ((TH1F*)
fOutputMC->FindObject(fillthis))->Fill(part->Pt(),dcas[idca]);
3161 fillthis =
"hbCosPointingAngle";
3163 fillthis =
"hbCosPointingAngleLcPt";
3165 fillthis =
"hbDecayLength";
3167 fillthis =
"hbDecayLengthLcPt";
3169 Double_t sum2=part->Getd0Prong(0)*part->Getd0Prong(0)+
3170 part->Getd0Prong(1)*part->Getd0Prong(1)+
3171 part->Getd0Prong(2)*part->Getd0Prong(2);
3172 fillthis =
"hbSum2";
3173 ((TH1F*)
fOutputMC->FindObject(fillthis))->Fill(sum2);
3174 fillthis =
"hbSum2LcPt";
3175 ((TH1F*)
fOutputMC->FindObject(fillthis))->Fill(part->Pt(),sum2);
3176 fillthis =
"hbptmax";
3177 ((TH1F*)
fOutputMC->FindObject(fillthis))->Fill(ptmax);
3178 fillthis =
"hbptmaxLcPt";
3179 ((TH1F*)
fOutputMC->FindObject(fillthis))->Fill(part->Pt(),
ptmax);
3195 TClonesArray *arrMC)
3204 if(isSelected3ProngByLc>0 &&
fReadMC) {
3206 for (
Int_t ii=0; ii<3; ii++) {
3207 AliAODTrack *prongTest=(AliAODTrack*)part->GetDaughter(ii);
3208 if (!prongTest)
continue;
3209 Int_t labprongTest = prongTest->GetLabel();
3210 if(labprongTest<0)
continue;
3211 AliAODMCParticle *mcprongTest = (AliAODMCParticle*)arrMC->At(labprongTest);
3213 switch (TMath::Abs(mcprongTest->GetPdgCode())) {
3215 fillthis=
"hElIn3Prong";
3216 ((TH1F*)
fAPriori->FindObject(fillthis))->Fill(part->PtProng(ii));
3219 fillthis=
"hMuIn3Prong";
3220 ((TH1F*)
fAPriori->FindObject(fillthis))->Fill(part->PtProng(ii));
3223 fillthis=
"hPiIn3Prong";
3224 ((TH1F*)
fAPriori->FindObject(fillthis))->Fill(part->PtProng(ii));
3227 fillthis=
"hKaIn3Prong";
3228 ((TH1F*)
fAPriori->FindObject(fillthis))->Fill(part->PtProng(ii));
3231 fillthis=
"hPrIn3Prong";
3232 ((TH1F*)
fAPriori->FindObject(fillthis))->Fill(part->PtProng(ii));
3246 TClonesArray *arrayMC,
3247 Int_t pdgToBeCompared)
3254 Bool_t localFlag = kFALSE;
3256 for (
Int_t ii=0;ii<3;ii++) {
3257 AliAODTrack *daugh = (AliAODTrack*)d->GetDaughter(ii);
3259 Int_t lab = daugh->GetLabel();
3261 AliAODMCParticle *part= (AliAODMCParticle*)arrayMC->At(lab);
3265 Int_t motherLabel = part->GetMother();
3266 if(motherLabel<0)
continue;
3268 AliAODMCParticle *motherPart = 0;
3269 Int_t motherPdg = 0;
3270 while (!localFlag && motherLabel>=0) {
3271 motherPart = (AliAODMCParticle*)arrayMC->At(motherLabel);
3272 motherPdg = motherPart->GetPdgCode();
3274 if (TMath::Abs(motherPdg)==pdgToBeCompared) {
3279 motherLabel = motherPart->GetMother();
3291 TClonesArray *arrayMC,
3292 Int_t pdgToBeCompared)
3299 Bool_t localFlag = kFALSE;
3301 Int_t lab = daugh->GetLabel();
3302 if(lab<0)
return localFlag;
3303 AliAODMCParticle *part= (AliAODMCParticle*)arrayMC->At(lab);
3307 Int_t motherLabel = part->GetMother();
3308 if(motherLabel<0)
return localFlag;
3310 AliAODMCParticle *motherPart = 0;
3311 Int_t motherPdg = 0;
3312 while (!localFlag && motherLabel>=0) {
3313 motherPart = (AliAODMCParticle*)arrayMC->At(motherLabel);
3314 motherPdg = motherPart->GetPdgCode();
3316 if (TMath::Abs(motherPdg)==pdgToBeCompared) {
3321 motherLabel = motherPart->GetMother();
3339 Bool_t localFlag = kFALSE;
3341 AliAODMCParticle *searchLc;
3343 for (
Int_t iii=0; iii<arrayMC->GetEntries(); iii++) {
3344 searchLc = (AliAODMCParticle*)arrayMC->At(iii);
3345 Int_t searchLcpdg = searchLc->GetPdgCode();
3346 if (TMath::Abs(searchLcpdg) == 4122){
3363 TClonesArray *aodtracks=(TClonesArray *)aods->GetTracks();
3366 for(
Int_t ji=0;ji<aodtracks->GetEntriesFast();ji++)
3368 AliAODTrack*aodTrack=(AliAODTrack*)aodtracks->UncheckedAt(ji);
3369 if(aodTrack->IsPrimaryCandidate()) counter++;
3379 TClonesArray *arrMC,
3389 Int_t pdgDgLctopKpi[3]={2212,321,211};
3392 lab=part->MatchToMC(4122,arrMC,3,pdgDgLctopKpi);
3397 if(isSelected3ProngByLc>0 &&
fReadMC) {
3404 if (is3ProngFromJPsi) flag6=is3ProngFromJPsi;
3407 if (is3ProngFromC) flag4=is3ProngFromC;
3410 if (is3ProngFromB) flag5=is3ProngFromB;
3412 for (
Int_t ii=0; ii<3; ii++) {
3413 AliAODTrack *prongTest=(AliAODTrack*)part->GetDaughter(ii);
3414 if (!prongTest)
continue;
3415 Int_t labprongTest = prongTest->GetLabel();
3416 if(labprongTest<0)
continue;
3417 AliAODMCParticle *mcprongTest = (AliAODMCParticle*)arrMC->At(labprongTest);
3419 switch (TMath::Abs(mcprongTest->GetPdgCode())) {
3421 fillthis=
"hElIn3Prong";
3422 ((TH1F*)
fAPriori->FindObject(fillthis))->Fill(part->PtProng(ii));
3424 fillthis=
"hElIn3Prong6";
3425 ((TH1F*)
fAPriori->FindObject(fillthis))->Fill(part->PtProng(ii));
3429 fillthis=
"hMuIn3Prong";
3430 ((TH1F*)
fAPriori->FindObject(fillthis))->Fill(part->PtProng(ii));
3432 fillthis=
"hMuIn3Prong6";
3433 ((TH1F*)
fAPriori->FindObject(fillthis))->Fill(part->PtProng(ii));
3437 fillthis=
"hPiIn3Prong";
3438 ((TH1F*)
fAPriori->FindObject(fillthis))->Fill(part->PtProng(ii));
3440 fillthis=
"hPiIn3Prong6";
3441 ((TH1F*)
fAPriori->FindObject(fillthis))->Fill(part->PtProng(ii));
3445 fillthis=
"hKaIn3Prong";
3446 ((TH1F*)
fAPriori->FindObject(fillthis))->Fill(part->PtProng(ii));
3448 fillthis=
"hKaIn3Prong6";
3449 ((TH1F*)
fAPriori->FindObject(fillthis))->Fill(part->PtProng(ii));
3453 fillthis=
"hPrIn3Prong";
3454 ((TH1F*)
fAPriori->FindObject(fillthis))->Fill(part->PtProng(ii));
3456 fillthis=
"hPrIn3Prong6";
3457 ((TH1F*)
fAPriori->FindObject(fillthis))->Fill(part->PtProng(ii));
3465 switch (TMath::Abs(mcprongTest->GetPdgCode())) {
3467 fillthis=
"hElIn3Prong1";
3468 ((TH1F*)
fAPriori->FindObject(fillthis))->Fill(part->PtProng(ii));
3471 fillthis=
"hMuIn3Prong1";
3472 ((TH1F*)
fAPriori->FindObject(fillthis))->Fill(part->PtProng(ii));
3475 fillthis=
"hPiIn3Prong1";
3476 ((TH1F*)
fAPriori->FindObject(fillthis))->Fill(part->PtProng(ii));
3479 fillthis=
"hKaIn3Prong1";
3480 ((TH1F*)
fAPriori->FindObject(fillthis))->Fill(part->PtProng(ii));
3483 fillthis=
"hPrIn3Prong1";
3484 ((TH1F*)
fAPriori->FindObject(fillthis))->Fill(part->PtProng(ii));
3490 switch (TMath::Abs(mcprongTest->GetPdgCode())) {
3492 fillthis=
"hElIn3Prong2";
3493 ((TH1F*)
fAPriori->FindObject(fillthis))->Fill(part->PtProng(ii));
3495 fillthis=
"hElIn3Prong3";
3496 ((TH1F*)
fAPriori->FindObject(fillthis))->Fill(part->PtProng(ii));
3499 fillthis=
"hElIn3Prong4";
3500 ((TH1F*)
fAPriori->FindObject(fillthis))->Fill(part->PtProng(ii));
3503 fillthis=
"hElIn3Prong5";
3504 ((TH1F*)
fAPriori->FindObject(fillthis))->Fill(part->PtProng(ii));
3508 fillthis=
"hMuIn3Prong2";
3509 ((TH1F*)
fAPriori->FindObject(fillthis))->Fill(part->PtProng(ii));
3511 fillthis=
"hMuIn3Prong3";
3512 ((TH1F*)
fAPriori->FindObject(fillthis))->Fill(part->PtProng(ii));
3515 fillthis=
"hMuIn3Prong4";
3516 ((TH1F*)
fAPriori->FindObject(fillthis))->Fill(part->PtProng(ii));
3519 fillthis=
"hMuIn3Prong5";
3520 ((TH1F*)
fAPriori->FindObject(fillthis))->Fill(part->PtProng(ii));
3524 fillthis=
"hPiIn3Prong2";
3525 ((TH1F*)
fAPriori->FindObject(fillthis))->Fill(part->PtProng(ii));
3527 fillthis=
"hPiIn3Prong3";
3528 ((TH1F*)
fAPriori->FindObject(fillthis))->Fill(part->PtProng(ii));
3531 fillthis=
"hPiIn3Prong4";
3532 ((TH1F*)
fAPriori->FindObject(fillthis))->Fill(part->PtProng(ii));
3535 fillthis=
"hPiIn3Prong5";
3536 ((TH1F*)
fAPriori->FindObject(fillthis))->Fill(part->PtProng(ii));
3540 fillthis=
"hKaIn3Prong2";
3541 ((TH1F*)
fAPriori->FindObject(fillthis))->Fill(part->PtProng(ii));
3543 fillthis=
"hKaIn3Prong3";
3544 ((TH1F*)
fAPriori->FindObject(fillthis))->Fill(part->PtProng(ii));
3547 fillthis=
"hKaIn3Prong4";
3548 ((TH1F*)
fAPriori->FindObject(fillthis))->Fill(part->PtProng(ii));
3551 fillthis=
"hKaIn3Prong5";
3552 ((TH1F*)
fAPriori->FindObject(fillthis))->Fill(part->PtProng(ii));
3556 fillthis=
"hPrIn3Prong2";
3557 ((TH1F*)
fAPriori->FindObject(fillthis))->Fill(part->PtProng(ii));
3559 fillthis=
"hPrIn3Prong3";
3560 ((TH1F*)
fAPriori->FindObject(fillthis))->Fill(part->PtProng(ii));
3563 fillthis=
"hPrIn3Prong4";
3564 ((TH1F*)
fAPriori->FindObject(fillthis))->Fill(part->PtProng(ii));
3567 fillthis=
"hPrIn3Prong5";
3568 ((TH1F*)
fAPriori->FindObject(fillthis))->Fill(part->PtProng(ii));
3658 Double_t mPDG=TDatabasePDG::Instance()->GetParticle(4122)->Mass();
3666 if (isSelected3ProngByLcPID>0) {
3667 if (TMath::Abs(minvLcpKpi-mPDG)<invmasscut || TMath::Abs(minvLcpiKp-mPDG)<invmasscut) {
TH2F * fhPiond0ProngLcPt
!hist for var_LcPt
TH1F * fMassHistTC[6 *kMaxPtBins]
!hist. for inv mass (TC)
TH1F * fhMassPtGreater33Pr
!hist. for No. of events
TH1F * fMassHistDk[3 *kMaxPtBins]
!hist. for inv mass (LC)
AliAnalysisTaskSELambdac()
TH1F * fMassHist3Pr[3 *kMaxPtBins]
!hist. for inv mass (LC)
TH1F * fhMassPtGreater2TC
!hist. for No. of events
TH1F * fhMassPtGreater3DkTC
!hist. for No. of events
AliAnalysisVertexingHF * fVHF
apply analysis cuts
TH2F * fhEta3ProngAn
!hist. for 3-prong Eta fiducial An Cuts
Double_t GetPtBinLimit(Int_t ibin) const
void StoreCandidates(AliVEvent *, Int_t nCand=0, Bool_t flagFilter=kTRUE)
TH2F * fhPtMaxLcPt
!hist for var_LcPt
TH2F * fhCosPointingAngleLcPt
!hist for var_LcPt
TH2F * fhdcasLcPt
!hist for var_LcPt
TH1F * fMassHistDkTC[3 *kMaxPtBins]
!hist. for inv mass (TC)
Bool_t HasSelectionBit(Int_t i) const
Double_t fArrayBinLimits[kMaxPtBins+1]
list of cuts
TH1F * fhMassPtGreater2KpTC
!hist. for No. of events
TH2F * fhBdcasLcPt
!hist for var_LcPt
void UnsetOwnPrimaryVtx()
Double_t GetDist12toPrim() const
TH2F * fhRap3ProngAn
!hist. for 3-prong Eta fiducial An cuts
TH1F * fMassHist[6 *kMaxPtBins]
!hist. for inv mass (LC)
Bool_t Is3ProngFromPDG(AliAODRecoDecayHF3Prong *part, TClonesArray *arrMC, Int_t pdgToBeCompared=4)
TH2F * fhDecayLengthLcPt
!hist for var_LcPt
TH1F * fhMassPtGreater3Kp
!hist. for No. of events
Double_t ptlims[nPtBins+1]
AliPIDResponse * fPIDResponse
output3
Bool_t IsThereAGeneratedLc(TClonesArray *arrayMC)
TH2F * fhBSigmaVertLcPt
!hist for var_LcPt
TH1F * fMassHistKpTC[3 *kMaxPtBins]
!hist. for inv mass (TC)
TH1F * fhMassPtGreater23PrTC
!hist. for No. of events
TH1F * fMassHistKp[3 *kMaxPtBins]
!hist. for inv mass (LC)
Int_t GetSignalHistoIndex(Int_t iPtBin) const
Int_t GetWhyRejection() const
TH2F * fhBCosPointingAngleLcPt
!hist for var_LcPt
Bool_t FillRecoCand(AliVEvent *event, AliAODRecoDecayHF3Prong *rd3)
TH2F * fhSum2LcPt
!hist for var_LcPt
TH2F * fhBDecayLengthLcPt
!hist for var_LcPt
Int_t fNPtBins
cuts with KF vertexer
ULong_t GetSelectionMap() const
Bool_t fFillVarHists
Vertexer heavy flavour (used to pass the cuts)
TH1F * fMassHistLpi[3 *kMaxPtBins]
!hist. for inv mass (LC)
static Int_t CheckOrigin(TClonesArray *arrayMC, AliAODMCParticle *mcPart, Bool_t searchUpToQuark=kTRUE)
Functions to check the decay tree.
TH1F * fhMassPtGreater2LpiTC
!hist. for No. of events
void MultiplicityStudies(AliAODRecoDecayHF3Prong *part, AliRDHFCutsLctopKpi *cuts, AliAODEvent *aod, TClonesArray *arrMC, Bool_t &flag1, Bool_t &flag2, Bool_t &flag3, Bool_t &flag4, Bool_t &flag5, Bool_t &flag6)
TNtuple * fNtupleLambdac
! output ntuple
TH2F * fhBProtond0ProngLcPt
!hist for var_LcPt
AliAODPidHF * GetPidHF() const
virtual ~AliAnalysisTaskSELambdac()
TH1F * fhMassPtGreater33PrTC
!hist. for No. of events
Bool_t VertexingKF(AliAODRecoDecayHF3Prong *d, Int_t *pdgs, Double_t field) const
TH2F * fhEta3Prong
!hist. for 3-prong Eta
TList * fListCuts
Production Cuts.
TH1F * fhMassPtGreater3TC
!hist. for No. of events
TH2F * fhBSum2LcPt
!hist for var_LcPt
virtual void Terminate(Option_t *option)
TH1F * fhMassPtGreater2Lpi
!hist. for No. of events
TH2F * fhRap3Prong
!hist. for 3-prong y
TH1F * fNentries
flag for Lc filter bit PID
void FillAPrioriConcentrations(AliAODRecoDecayHF3Prong *part, AliRDHFCutsLctopKpi *cuts, AliAODEvent *aod, TClonesArray *arrMC)
TH1F * fhMassPtGreater2DkTC
!hist. for No. of events
Bool_t fAnalysis
flag to cut with KF vertexer
TH1F * fhMassPtGreater3Dk
!hist. for No. of events
virtual Bool_t IsInFiducialAcceptance(Double_t pt, Double_t y) const
TH2F * fhBKaonPtProngLcPt
!hist for var_LcPt
TH2F * fhMassLcPt
!hist Mass x pt
Bool_t fPriorsHists
flag for activation of multiplcity histos
Int_t MatchToMCLambdac(AliAODRecoDecayHF3Prong *d, TClonesArray *arrayMC) const
Bool_t CheckStatus(AliAODTrack *track, TString detectors) const
AliAODVertex * GetOwnPrimaryVtx() const
TH2F * fhBDist12PrimLcPt
!hist for var_LcPt
TH2F * fhBProtonPtProngLcPt
!hist for var_LcPt
Double_t GetSigmaVert(const AliAODEvent *aod=0x0)
virtual void UserExec(Option_t *option)
AliAODPidHF * GetPidprot() const
TH2F * fhKaonPtProngLcPt
!hist for var_LcPt
TH2F * fhEta3ProngAcc
!hist. for 3-prong Eta fiducial acc
TH2F * fhProtonPtProngLcPt
!hist for var_LcPt
Int_t GetHistoIndex(Int_t iPtBin) const
TH1F * fhMassPtGreater23Pr
!hist. for No. of events
Bool_t IsCandidateInjected(AliAODRecoDecayHF *cand, AliAODMCHeader *header, TClonesArray *arrayMC)
void GetDCAs(Double_t dca[3]) const
AliAODPidHF * GetPidpion() const
TH1F * fhMassPtGreater3KpTC
!hist. for No. of events
Bool_t fMultiplicityHists
flag for creation and fill of histograms with vars
Bool_t fRealPid
flag for access to MC
Bool_t fReadMC
flag for filling ntuple
Bool_t fMCPid
flag for access to MC
Double_t GetDist23toPrim() const
Int_t GetNoQuarkHistoIndex(Int_t iPtBin) const
void SetOwnPrimaryVtx(const AliAODVertex *vtx)
void SetMassLimits(Float_t range)
TList * fOutputMC
histo with number of entries
TH2F * fhEta3ProngProd
!hist. for 3-prong Eta fiducial Prod Cuts
TH1F * fMassHist3PrTC[3 *kMaxPtBins]
!hist. for inv mass (TC)
Float_t fLowmasslimit
upper inv mass limit for histos
void FillMassHists(AliAODEvent *aod, AliAODRecoDecayHF3Prong *part, TClonesArray *arrayMC, AliRDHFCutsLctopKpi *cuts, Int_t *nSelectedloose, Int_t *nSelectedtight)
void FillVarHists(AliAODRecoDecayHF3Prong *part, TClonesArray *arrMC, AliRDHFCutsLctopKpi *cuts, AliAODEvent *aod)
Bool_t GetLambdacDaugh(AliAODMCParticle *part, TClonesArray *arrayMC) const
Bool_t IsEventSelected(AliVEvent *event)
Int_t NumberPrimaries(const AliAODEvent *aods)
TH2F * fhBPtMaxLcPt
!hist for var_LcPt
virtual Int_t IsSelected(TObject *obj, Int_t selectionLevel)
void StoreEvent(AliVEvent *, AliRDHFCuts *, Bool_t mc=kFALSE, Int_t multiplicity=-9999, Double_t spherocity=-99.)
TH1F * fhMassPtGreater3Lpi
!hist. for No. of events
Bool_t fLcCut
flag for histos with priors
TH2F * fhProtond0ProngLcPt
!hist for var_LcPt
virtual void UserCreateOutputObjects()
Implementation of interface methods.
void SetPtBinLimit(Int_t n, Float_t *limitarray)
Bool_t fUseKF
flag for PID with resonant channels
TH1F * fMassHistLpiTC[3 *kMaxPtBins]
!hist. for inv mass (TC)
Float_t * GetPtBinLimits() const
void SetOldPid(Bool_t oldPid)
TH2F * fhKaond0ProngLcPt
!hist for var_LcPt
AliNormalizationCounter * fCounter
!AliNormalizationCounter on output slot 7
TH1F * fhMassPtGreater3
!hist. for No. of events
TH1F * fHistNEvents
!hist. for No. of events
Int_t GetcOnlyHistoIndex(Int_t iPtBin) const
TH1F * fhMassPtGreater3LpiTC
!hist. for No. of events
TH2F * fhPionPtProngLcPt
!hist for var_LcPt
TH2F * fhBPionPtProngLcPt
!hist for var_LcPt
TH2F * fhRap3ProngProd
!hist. for 3-prong Eta fiducial Prod cuts
TH2F * fhMassLcminusPt
!hist Mass x pt Lcminu
TH1F * fhMassPtGreater2Dk
!hist. for No. of events
TH2F * fhMassLcplusPt
!hist Mass x pt Lcplus
TH2F * fhSigmaVertLcPt
!hist for var_LcPt
Bool_t GetIsUsePID() const
TList * fOutput
! list send on output slot 0
Bool_t IspiKpMC(AliAODRecoDecayHF3Prong *d, TClonesArray *arrayMC) const
Bool_t fFillNtuple
limits for the Pt bins
AliKFParticle * ApplyVertexingKF(Int_t *iprongs, Int_t nprongs, Int_t *pdgs, Bool_t topoCostraint, Double_t bzkG, Double_t *mass) const
vertexing KF:
Bool_t IsTrackFromPDG(const AliAODTrack *daugh, TClonesArray *arrayMC, Int_t pdgToBeCompared)
TH1F * fhMassPtGreater2
!hist. for No. of events
Double_t CosPointingAngle() const
Double_t InvMassLcpKpi() const
TList * fMultiplicity
output2
Bool_t fResPid
flag for real PID
void IspKpiResonant(AliAODRecoDecayHF3Prong *d, Double_t field, Int_t *resNumber) const
TH2F * fhRap3ProngAcc
!hist. for 3-prong Eta fiducial acc
AliRDHFCutsLctopKpi * fRDCutsAnalysis
number of bins in Pt for histograms
Bool_t IspKpiMC(AliAODRecoDecayHF3Prong *d, TClonesArray *arrayMC) const
Int_t PtBin(Double_t pt) const
TH2F * fhBKaond0ProngLcPt
!hist for var_LcPt
Float_t fCutsKF[2]
lower inv mass limit for histos
Double_t DecayLength() const
Bool_t fLcPIDCut
flag for Lc filter bit cut
void IspiKpResonant(AliAODRecoDecayHF3Prong *d, Double_t field, Int_t *resNumber) const
TH1F * fhMassPtGreater2Kp
!hist. for No. of events
Int_t GetLbHistoIndex(Int_t iPtBin) const
TH2F * fhBPiond0ProngLcPt
!hist for var_LcPt
AliRDHFCutsLctopKpi * fRDCutsProduction
Cuts for Analysis.
Double_t InvMassLcpiKp() const
Int_t GetBackgroundHistoIndex(Int_t iPtBin) const
TH1F * fhChi2
!hist. for No. of events
void SetPidResponse(AliPIDResponse *pidResp)
TH1F * fhSelectBit
! hist for Filter Bit
TH2F * fhDist12PrimLcPt
!hist for var_LcPt
Class with functions useful for different D2H analyses //.