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),
182 fhMassPtGreater3TC(0),
183 fhMassPtGreater3Kp(0),
184 fhMassPtGreater3KpTC(0),
185 fhMassPtGreater3Lpi(0),
186 fhMassPtGreater3LpiTC(0),
187 fhMassPtGreater3Dk(0),
188 fhMassPtGreater3DkTC(0),
189 fhMassPtGreater33Pr(0),
190 fhMassPtGreater33PrTC(0),
192 fhMassPtGreater2TC(0),
193 fhMassPtGreater2Kp(0),
194 fhMassPtGreater2KpTC(0),
195 fhMassPtGreater2Lpi(0),
196 fhMassPtGreater2LpiTC(0),
197 fhMassPtGreater2Dk(0),
198 fhMassPtGreater2DkTC(0),
199 fhMassPtGreater23Pr(0),
200 fhMassPtGreater23PrTC(0),
213 fhProtonPtProngLcPt(0),
214 fhBProtonPtProngLcPt(0),
215 fhProtond0ProngLcPt(0),
216 fhBProtond0ProngLcPt(0),
217 fhKaonPtProngLcPt(0),
218 fhBKaonPtProngLcPt(0),
219 fhKaond0ProngLcPt(0),
220 fhBKaond0ProngLcPt(0),
221 fhPionPtProngLcPt(0),
222 fhBPionPtProngLcPt(0),
223 fhPiond0ProngLcPt(0),
224 fhBPiond0ProngLcPt(0),
226 fhBDist12PrimLcPt(0),
231 fhCosPointingAngleLcPt(0),
232 fhBCosPointingAngleLcPt(0),
233 fhDecayLengthLcPt(0),
234 fhBDecayLengthLcPt(0),
241 fLowmasslimit(2.086),
243 fRDCutsAnalysis(lccutsana),
244 fRDCutsProduction(lccutsprod),
246 fFillNtuple(fillNtuple),
254 fFillVarHists(kFALSE),
255 fMultiplicityHists(kFALSE),
256 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;
1904 AliAODMCParticle *partDp = (AliAODMCParticle*)arrayMC->At(labDp);
1905 AliAODMCParticle *dg0 = (AliAODMCParticle*)arrayMC->At(partDp->GetDaughter(0));
1906 AliAODMCParticle *dg1 = (AliAODMCParticle*)arrayMC->At(partDp->GetDaughter(1));
1907 deltaPx=partDp->Px()-part->Px();
1908 deltaPy=partDp->Py()-part->Py();
1909 deltaPz=partDp->Pz()-part->Pz();
1910 truePt=partDp->Pt();
1914 pdgCode=TMath::Abs(partDp->GetPdgCode());
1915 pdgCode1=TMath::Abs(dg0->GetPdgCode());
1916 pdgCode2=TMath::Abs(dg1->GetPdgCode());
1918 if(pdgMom == 5) IsLcfromLb =1;
1919 if(pdgMom == 4) IsLcfromc =1;
1921 if(isThereaQuark>0) IsLcFromq = 1;
1940 Double_t field=aod->GetMagneticField();
1949 if(selection==1 || selection==3) invMasspKpi=part->
InvMassLcpKpi();
1954 Int_t ispKpi[3]={0,0,0};
1956 Int_t ispiKp[3]={0,0,0};
1958 if (selection==3 || selection==1) {
1968 if(ispKpi[2]==0 && ispKpi[1]==0 && ispKpi[0]==0){
1982 if(ispiKp[2]==0 && ispiKp[1]==0 && ispiKp[0]==0){
1990 if(invMasspiKp<0. && invMasspKpi<0.)
return;
1992 Int_t passTightCuts=0;
1996 Int_t pdgs[3]={0,0,0};
1998 pdgs[0]=2212;pdgs[1]=321;pdgs[2]=211;
2008 pdgs[0]=211;pdgs[1]=321;pdgs[2]=2212;
2018 if(passTightCuts>0) nSelectedtight[0]=nSelectedtight[0]+1;
2023 if(passTightCuts>0){
2026 if(invMasspiKp>0. && invMasspKpi>0.){
2027 fhMassLcPt->Fill(part->Pt(),invMasspKpi,0.5);
2028 fhMassLcPt->Fill(part->Pt(),invMasspiKp,0.5);
2029 if(part->Charge()==1){
2033 else if(part->Charge()==-1){
2038 else if(invMasspiKp>0.){
2040 if(part->Charge()==1)
fhMassLcplusPt->Fill(part->Pt(),invMasspiKp);
2041 else if(part->Charge()==-1)
fhMassLcminusPt->Fill(part->Pt(),invMasspiKp);
2043 else if(invMasspKpi>0.){
2045 if(part->Charge()==1)
fhMassLcplusPt->Fill(part->Pt(),invMasspKpi);
2046 else if(part->Charge()==-1)
fhMassLcminusPt->Fill(part->Pt(),invMasspKpi);
2060 if(pdgCode1==2212) {tmp[8]=part->PtProng(0);}
else{tmp[8]=0.;}
2061 if(pdgCode1==211) {tmp[10]=part->PtProng(0);}
else{tmp[10]=0.;}
2062 tmp[9]=part->PtProng(1);
2063 if(pdgCode2==211) {tmp[10]=part->PtProng(2);}
else{tmp[10]=0.;}
2070 if(invMasspiKp>0.) tmp[17]=invMasspiKp;
2071 if(invMasspKpi>0.) tmp[17]=invMasspKpi;
2073 tmp[19]=part->Getd0Prong(0);
2074 tmp[20]=part->Getd0Prong(1);
2075 tmp[21]=part->Getd0Prong(2);
2076 tmp[22]=part->GetDCA();
2077 tmp[23]=part->Prodd0d0();
2084 if(part->Pt()>3.&& part->Pt()<=6.){
2085 if(invMasspiKp>0. && invMasspKpi>0.){
2092 if(invMasspiKpLpi>0. && invMasspKpiLpi>0.){
2099 if(invMasspiKpKp>0. && invMasspKpiKp>0.){
2106 if(invMasspiKpDk>0. && invMasspKpiDk>0.){
2113 if(invMasspiKp3Pr>0. && invMasspKpi3Pr>0.){
2121 if(passTightCuts>0){
2122 if(invMasspiKp>0. && invMasspKpi>0.){
2129 if(invMasspiKpLpi>0. && invMasspKpiLpi>0.){
2136 if(invMasspiKpKp>0. && invMasspKpiKp>0.){
2144 if(invMasspiKpDk>0. && invMasspKpiDk>0.){
2151 if(invMasspiKp3Pr>0. && invMasspKpi3Pr>0.){
2161 if(part->Pt()>2.&& part->Pt()<=6.){
2162 if(invMasspiKp>0. && invMasspKpi>0.){
2169 if(invMasspiKpLpi>0. && invMasspKpiLpi>0.){
2176 if(invMasspiKpKp>0. && invMasspKpiKp>0.){
2183 if(invMasspiKpDk>0. && invMasspKpiDk>0.){
2190 if(invMasspiKp3Pr>0. && invMasspKpi3Pr>0.){
2198 if(passTightCuts>0){
2199 if(invMasspiKp>0. && invMasspKpi>0.){
2206 if(invMasspiKpLpi>0. && invMasspKpiLpi>0.){
2213 if(invMasspiKpKp>0. && invMasspKpiKp>0.){
2220 if(invMasspiKpDk>0. && invMasspKpiDk>0.){
2227 if(invMasspiKp3Pr>0. && invMasspKpi3Pr>0.){
2240 if(invMasspiKp>0. && invMasspKpi>0.){
2241 if(invMasspiKp>0.)
fMassHist[index]->Fill(invMasspiKp,0.5);
2242 if(invMasspKpi>0.)
fMassHist[index]->Fill(invMasspKpi,0.5);
2244 if(invMasspiKp>0.)
fMassHist[index]->Fill(invMasspiKp);
2245 if(invMasspKpi>0.)
fMassHist[index]->Fill(invMasspKpi);
2247 if(invMasspiKpLpi>0. && invMasspKpiLpi>0.){
2248 if(invMasspiKpLpi>0.)
fMassHistLpi[index]->Fill(invMasspiKpLpi,0.5);
2249 if(invMasspKpiLpi>0.)
fMassHistLpi[index]->Fill(invMasspKpiLpi,0.5);
2251 if(invMasspiKpLpi>0.)
fMassHistLpi[index]->Fill(invMasspiKpLpi);
2252 if(invMasspKpiLpi>0.)
fMassHistLpi[index]->Fill(invMasspKpiLpi);
2254 if(invMasspiKpKp>0. && invMasspKpiKp>0.){
2255 if(invMasspiKpKp>0.)
fMassHistKp[index]->Fill(invMasspiKpKp,0.5);
2256 if(invMasspKpiKp>0.)
fMassHistKp[index]->Fill(invMasspKpiKp,0.5);
2258 if(invMasspiKpKp>0.)
fMassHistKp[index]->Fill(invMasspiKpKp);
2259 if(invMasspKpiKp>0.)
fMassHistKp[index]->Fill(invMasspKpiKp);
2261 if(invMasspiKpDk>0. && invMasspKpiDk>0.){
2262 if(invMasspiKpDk>0.)
fMassHistDk[index]->Fill(invMasspiKpDk,0.5);
2263 if(invMasspKpiDk>0.)
fMassHistDk[index]->Fill(invMasspKpiDk,0.5);
2265 if(invMasspiKpDk>0.)
fMassHistDk[index]->Fill(invMasspiKpDk);
2266 if(invMasspKpiDk>0.)
fMassHistDk[index]->Fill(invMasspKpiDk);
2268 if(invMasspiKp3Pr>0. && invMasspKpi3Pr>0.){
2269 if(invMasspiKp3Pr>0.)
fMassHist3Pr[index]->Fill(invMasspiKp3Pr,0.5);
2270 if(invMasspKpi3Pr>0.)
fMassHist3Pr[index]->Fill(invMasspKpi3Pr,0.5);
2272 if(invMasspiKp3Pr>0.)
fMassHist3Pr[index]->Fill(invMasspiKp3Pr);
2273 if(invMasspKpi3Pr>0.)
fMassHist3Pr[index]->Fill(invMasspKpi3Pr);
2276 if(passTightCuts>0){
2277 if(invMasspiKp>0. && invMasspKpi>0. && passTightCuts==3){
2278 if(invMasspiKp>0.)
fMassHistTC[index]->Fill(invMasspiKp,0.5);
2279 if(invMasspKpi>0.)
fMassHistTC[index]->Fill(invMasspKpi,0.5);
2281 if(invMasspiKp>0. && passTightCuts==2)
fMassHistTC[index]->Fill(invMasspiKp);
2282 if(invMasspKpi>0. && passTightCuts==1)
fMassHistTC[index]->Fill(invMasspKpi);
2284 if(invMasspiKpLpi>0. && invMasspKpiLpi>0. && passTightCuts==3){
2285 if(invMasspiKpLpi>0.)
fMassHistLpiTC[index]->Fill(invMasspiKpLpi,0.5);
2286 if(invMasspKpiLpi>0.)
fMassHistLpiTC[index]->Fill(invMasspKpiLpi,0.5);
2288 if(invMasspiKpLpi>0. && passTightCuts==2)
fMassHistLpiTC[index]->Fill(invMasspiKpLpi);
2289 if(invMasspKpiLpi>0.&& passTightCuts==1)
fMassHistLpiTC[index]->Fill(invMasspKpiLpi);
2291 if(invMasspiKpKp>0. && invMasspKpiKp>0. && passTightCuts==3){
2292 if(invMasspiKpKp>0.)
fMassHistKpTC[index]->Fill(invMasspiKpKp,0.5);
2293 if(invMasspKpiKp>0.)
fMassHistKpTC[index]->Fill(invMasspKpiKp,0.5);
2295 if(invMasspiKpKp>0. && passTightCuts==2)
fMassHistKpTC[index]->Fill(invMasspiKpKp);
2296 if(invMasspKpiKp>0.&& passTightCuts==1)
fMassHistKpTC[index]->Fill(invMasspKpiKp);
2298 if(invMasspiKpDk>0. && invMasspKpiDk>0. && passTightCuts==3){
2299 if(invMasspiKpDk>0.)
fMassHistDkTC[index]->Fill(invMasspiKpDk,0.5);
2300 if(invMasspKpiDk>0.)
fMassHistDkTC[index]->Fill(invMasspKpiDk,0.5);
2302 if(invMasspiKpDk>0. && passTightCuts==2)
fMassHistDkTC[index]->Fill(invMasspiKpDk);
2303 if(invMasspKpiDk>0.&& passTightCuts==1)
fMassHistDkTC[index]->Fill(invMasspKpiDk);
2305 if(invMasspiKp3Pr>0. && invMasspKpi3Pr>0. && passTightCuts==3){
2306 if(invMasspiKp3Pr>0.)
fMassHist3PrTC[index]->Fill(invMasspiKp3Pr,0.5);
2307 if(invMasspKpi3Pr>0.)
fMassHist3PrTC[index]->Fill(invMasspKpi3Pr,0.5);
2309 if(invMasspiKp3Pr>0. && passTightCuts==2)
fMassHist3PrTC[index]->Fill(invMasspiKp3Pr);
2310 if(invMasspKpi3Pr>0.&& passTightCuts==1)
fMassHist3PrTC[index]->Fill(invMasspKpi3Pr);
2318 if(invMasspiKp>0. && invMasspKpi>0.){
2319 if(invMasspiKp>0.)
fMassHist[index]->Fill(invMasspiKp,0.5);
2320 if(invMasspKpi>0.)
fMassHist[index]->Fill(invMasspKpi,0.5);
2322 if(invMasspiKp>0.)
fMassHist[index]->Fill(invMasspiKp);
2323 if(invMasspKpi>0.)
fMassHist[index]->Fill(invMasspKpi);
2325 if(invMasspiKpLpi>0. && invMasspKpiLpi>0.){
2326 if(invMasspiKpLpi>0.)
fMassHistLpi[index]->Fill(invMasspiKpLpi,0.5);
2327 if(invMasspKpiLpi>0.)
fMassHistLpi[index]->Fill(invMasspKpiLpi,0.5);
2329 if(invMasspiKpLpi>0.)
fMassHistLpi[index]->Fill(invMasspiKpLpi);
2330 if(invMasspKpiLpi>0.)
fMassHistLpi[index]->Fill(invMasspKpiLpi);
2332 if(invMasspiKpKp>0. && invMasspKpiKp>0.){
2333 if(invMasspiKpKp>0.)
fMassHistKp[index]->Fill(invMasspiKpKp,0.5);
2334 if(invMasspKpiKp>0.)
fMassHistKp[index]->Fill(invMasspKpiKp,0.5);
2336 if(invMasspiKpKp>0.)
fMassHistKp[index]->Fill(invMasspiKpKp);
2337 if(invMasspKpiKp>0.)
fMassHistKp[index]->Fill(invMasspKpiKp);
2339 if(invMasspiKpDk>0. && invMasspKpiDk>0.){
2340 if(invMasspiKpDk>0.)
fMassHistDk[index]->Fill(invMasspiKpDk,0.5);
2341 if(invMasspKpiDk>0.)
fMassHistDk[index]->Fill(invMasspKpiDk,0.5);
2343 if(invMasspiKpDk>0.)
fMassHistDk[index]->Fill(invMasspiKpDk);
2344 if(invMasspKpiDk>0.)
fMassHistDk[index]->Fill(invMasspKpiDk);
2346 if(invMasspiKp3Pr>0. && invMasspKpi3Pr>0.){
2347 if(invMasspiKp3Pr>0.)
fMassHist3Pr[index]->Fill(invMasspiKp3Pr,0.5);
2348 if(invMasspKpi3Pr>0.)
fMassHist3Pr[index]->Fill(invMasspKpi3Pr,0.5);
2350 if(invMasspiKp3Pr>0.)
fMassHist3Pr[index]->Fill(invMasspiKp3Pr);
2351 if(invMasspKpi3Pr>0.)
fMassHistDk[index]->Fill(invMasspKpi3Pr);
2354 if(passTightCuts>0){
2355 if(invMasspiKp>0. && invMasspKpi>0. && passTightCuts==3){
2356 if(invMasspiKp>0.)
fMassHistTC[index]->Fill(invMasspiKp,0.5);
2357 if(invMasspKpi>0.)
fMassHistTC[index]->Fill(invMasspKpi,0.5);
2359 if(invMasspiKp>0. && passTightCuts==2)
fMassHistTC[index]->Fill(invMasspiKp);
2360 if(invMasspKpi>0.&& passTightCuts==1)
fMassHistTC[index]->Fill(invMasspKpi);
2362 if(invMasspiKpLpi>0. && invMasspKpiLpi>0. && passTightCuts==3){
2363 if(invMasspiKpLpi>0.)
fMassHistLpiTC[index]->Fill(invMasspiKpLpi,0.5);
2364 if(invMasspKpiLpi>0.)
fMassHistLpiTC[index]->Fill(invMasspKpiLpi,0.5);
2366 if(invMasspiKpLpi>0. && passTightCuts==2)
fMassHistLpiTC[index]->Fill(invMasspiKpLpi);
2367 if(invMasspKpiLpi>0.&& passTightCuts==1)
fMassHistLpiTC[index]->Fill(invMasspKpiLpi);
2369 if(invMasspiKpKp>0. && invMasspKpiKp>0. && passTightCuts==3){
2370 if(invMasspiKpKp>0.)
fMassHistKpTC[index]->Fill(invMasspiKpKp,0.5);
2371 if(invMasspKpiKp>0.)
fMassHistKpTC[index]->Fill(invMasspKpiKp,0.5);
2373 if(invMasspiKpKp>0. && passTightCuts==2)
fMassHistKpTC[index]->Fill(invMasspiKpKp);
2374 if(invMasspKpiKp>0.&& passTightCuts==1)
fMassHistKpTC[index]->Fill(invMasspKpiKp);
2376 if(invMasspiKpDk>0. && invMasspKpiDk>0. && passTightCuts==3){
2377 if(invMasspiKpDk>0.)
fMassHistDkTC[index]->Fill(invMasspiKpDk,0.5);
2378 if(invMasspKpiDk>0.)
fMassHistDkTC[index]->Fill(invMasspKpiDk,0.5);
2380 if(invMasspiKpDk>0. && passTightCuts==2)
fMassHistDkTC[index]->Fill(invMasspiKpDk);
2381 if(invMasspKpiDk>0.&& passTightCuts==1)
fMassHistDkTC[index]->Fill(invMasspKpiDk);
2383 if(invMasspiKp3Pr>0. && invMasspKpi3Pr>0. && passTightCuts==3){
2384 if(invMasspiKp3Pr>0.)
fMassHist3PrTC[index]->Fill(invMasspiKp3Pr,0.5);
2385 if(invMasspKpi3Pr>0.)
fMassHist3PrTC[index]->Fill(invMasspKpi3Pr,0.5);
2387 if(invMasspiKp3Pr>0. && passTightCuts==2)
fMassHist3PrTC[index]->Fill(invMasspiKp3Pr);
2388 if(invMasspKpi3Pr>0.&& passTightCuts==1)
fMassHist3PrTC[index]->Fill(invMasspKpi3Pr);
2392 if(IsLc && IsLcfromLb){
2394 if(invMasspiKp>0. && invMasspKpi>0.){
2395 if(invMasspiKp>0.)
fMassHist[index]->Fill(invMasspiKp,0.5);
2396 if(invMasspKpi>0.)
fMassHist[index]->Fill(invMasspKpi,0.5);
2398 if(invMasspiKp>0.)
fMassHist[index]->Fill(invMasspiKp);
2399 if(invMasspKpi>0.)
fMassHist[index]->Fill(invMasspKpi);
2401 if(passTightCuts>0){
2402 if(invMasspiKp>0. && invMasspKpi>0. && passTightCuts==3){
2403 if(invMasspiKp>0.)
fMassHistTC[index]->Fill(invMasspiKp,0.5);
2404 if(invMasspKpi>0.)
fMassHistTC[index]->Fill(invMasspKpi,0.5);
2406 if(invMasspiKp>0. && passTightCuts==2)
fMassHistTC[index]->Fill(invMasspiKp);
2407 if(invMasspKpi>0.&& passTightCuts==1)
fMassHistTC[index]->Fill(invMasspKpi);
2411 if(IsLc && !IsLcfromLb && IsLcfromc) {
2413 if(invMasspiKp>0. && invMasspKpi>0.){
2414 if(invMasspiKp>0.)
fMassHist[index]->Fill(invMasspiKp,0.5);
2415 if(invMasspKpi>0.)
fMassHist[index]->Fill(invMasspKpi,0.5);
2417 if(invMasspiKp>0.)
fMassHist[index]->Fill(invMasspiKp);
2418 if(invMasspKpi>0.)
fMassHist[index]->Fill(invMasspKpi);
2420 if(passTightCuts>0){
2421 if(invMasspiKp>0. && invMasspKpi>0. && passTightCuts==3){
2422 if(invMasspiKp>0.)
fMassHistTC[index]->Fill(invMasspiKp,0.5);
2423 if(invMasspKpi>0.)
fMassHistTC[index]->Fill(invMasspKpi,0.5);
2425 if(invMasspiKp>0. && passTightCuts==2)
fMassHistTC[index]->Fill(invMasspiKp);
2426 if(invMasspKpi>0.&& passTightCuts==1)
fMassHistTC[index]->Fill(invMasspKpi);
2432 if(IsLc && !IsLcFromq) {
2434 if(invMasspiKp>0. && invMasspKpi>0.){
2435 if(invMasspiKp>0.)
fMassHist[index]->Fill(invMasspiKp,0.5);
2436 if(invMasspKpi>0.)
fMassHist[index]->Fill(invMasspKpi,0.5);
2438 if(invMasspiKp>0.)
fMassHist[index]->Fill(invMasspiKp);
2439 if(invMasspKpi>0.)
fMassHist[index]->Fill(invMasspKpi);
2441 if(passTightCuts>0){
2442 if(invMasspiKp>0. && invMasspKpi>0. && passTightCuts==3){
2443 if(invMasspiKp>0.)
fMassHistTC[index]->Fill(invMasspiKp,0.5);
2444 if(invMasspKpi>0.)
fMassHistTC[index]->Fill(invMasspKpi,0.5);
2446 if(invMasspiKp>0. && passTightCuts==2)
fMassHistTC[index]->Fill(invMasspiKp);
2447 if(invMasspKpi>0.&& passTightCuts==1)
fMassHistTC[index]->Fill(invMasspKpi);
2455 if(invMasspiKp>0. && invMasspKpi>0.){
2456 fMassHist[index]->Fill(invMasspiKp,0.5);
2457 fMassHist[index]->Fill(invMasspKpi,0.5);
2459 if(invMasspiKp>0.)
fMassHist[index]->Fill(invMasspiKp);
2460 if(invMasspKpi>0.)
fMassHist[index]->Fill(invMasspKpi);
2462 if(invMasspiKpLpi>0. && invMasspKpiLpi>0.){
2463 if(invMasspiKpLpi>0.)
fMassHistLpi[index]->Fill(invMasspiKpLpi,0.5);
2464 if(invMasspKpiLpi>0.)
fMassHistLpi[index]->Fill(invMasspKpiLpi,0.5);
2466 if(invMasspiKpLpi>0.)
fMassHistLpi[index]->Fill(invMasspiKpLpi);
2467 if(invMasspKpiLpi>0.)
fMassHistLpi[index]->Fill(invMasspKpiLpi);
2469 if(invMasspiKpKp>0. && invMasspKpiKp>0.){
2470 if(invMasspiKpKp>0.)
fMassHistKp[index]->Fill(invMasspiKpKp,0.5);
2471 if(invMasspKpiKp>0.)
fMassHistKp[index]->Fill(invMasspKpiKp,0.5);
2473 if(invMasspiKpKp>0.)
fMassHistKp[index]->Fill(invMasspiKpKp);
2474 if(invMasspKpiKp>0.)
fMassHistKp[index]->Fill(invMasspKpiKp);
2476 if(invMasspiKpDk>0. && invMasspKpiDk>0.){
2477 if(invMasspiKpDk>0.)
fMassHistDk[index]->Fill(invMasspiKpDk,0.5);
2478 if(invMasspKpiDk>0.)
fMassHistDk[index]->Fill(invMasspKpiDk,0.5);
2480 if(invMasspiKpDk>0.)
fMassHistDk[index]->Fill(invMasspiKpDk);
2481 if(invMasspKpiDk>0.)
fMassHistDk[index]->Fill(invMasspKpiDk);
2483 if(invMasspiKp3Pr>0. && invMasspKpi3Pr>0.){
2484 if(invMasspiKp3Pr>0.)
fMassHist3Pr[index]->Fill(invMasspiKp3Pr,0.5);
2485 if(invMasspKpi3Pr>0.)
fMassHist3Pr[index]->Fill(invMasspKpi3Pr,0.5);
2487 if(invMasspiKp3Pr>0.)
fMassHist3Pr[index]->Fill(invMasspiKp3Pr);
2488 if(invMasspKpi3Pr>0.)
fMassHistDk[index]->Fill(invMasspKpi3Pr);
2490 if(invMasspiKp>0. && invMasspKpi>0. && passTightCuts==3){
2494 if(invMasspiKp>0. && passTightCuts==2)
fMassHistTC[index]->Fill(invMasspiKp);
2495 if(invMasspKpi>0. && passTightCuts==1)
fMassHistTC[index]->Fill(invMasspKpi);
2497 if(invMasspiKpLpi>0. && invMasspKpiLpi>0. && passTightCuts==3){
2498 if(invMasspiKpLpi>0.)
fMassHistLpiTC[index]->Fill(invMasspiKpLpi,0.5);
2499 if(invMasspKpiLpi>0.)
fMassHistLpiTC[index]->Fill(invMasspKpiLpi,0.5);
2501 if(invMasspiKpLpi>0. && passTightCuts==2)
fMassHistLpiTC[index]->Fill(invMasspiKpLpi);
2502 if(invMasspKpiLpi>0.&& passTightCuts==1)
fMassHistLpiTC[index]->Fill(invMasspKpiLpi);
2504 if(invMasspiKpKp>0. && invMasspKpiKp>0. && passTightCuts==3){
2505 if(invMasspiKpKp>0.)
fMassHistKpTC[index]->Fill(invMasspiKpKp,0.5);
2506 if(invMasspKpiKp>0.)
fMassHistKpTC[index]->Fill(invMasspKpiKp,0.5);
2508 if(invMasspiKpKp>0. && passTightCuts==2)
fMassHistKpTC[index]->Fill(invMasspiKpKp);
2509 if(invMasspKpiKp>0.&& passTightCuts==1)
fMassHistKpTC[index]->Fill(invMasspKpiKp);
2511 if(invMasspiKpDk>0. && invMasspKpiDk>0. && passTightCuts==3){
2512 if(invMasspiKpDk>0.)
fMassHistDkTC[index]->Fill(invMasspiKpDk,0.5);
2513 if(invMasspKpiDk>0.)
fMassHistDkTC[index]->Fill(invMasspKpiDk,0.5);
2515 if(invMasspiKpDk>0. && passTightCuts==2)
fMassHistDkTC[index]->Fill(invMasspiKpDk);
2516 if(invMasspKpiDk>0.&& passTightCuts==1)
fMassHistDkTC[index]->Fill(invMasspKpiDk);
2518 if(invMasspiKp3Pr>0. && invMasspKpi3Pr>0. && passTightCuts==3){
2519 if(invMasspiKp3Pr>0.)
fMassHist3PrTC[index]->Fill(invMasspiKp3Pr,0.5);
2520 if(invMasspKpi3Pr>0.)
fMassHist3PrTC[index]->Fill(invMasspKpi3Pr,0.5);
2522 if(invMasspiKp3Pr>0. && passTightCuts==2)
fMassHist3PrTC[index]->Fill(invMasspiKp3Pr);
2523 if(invMasspKpi3Pr>0.&& passTightCuts==1)
fMassHist3PrTC[index]->Fill(invMasspKpi3Pr);
2534 TClonesArray *arrMC,
2544 Double_t mPDG=TDatabasePDG::Instance()->GetParticle(4122)->Mass();
2547 Int_t pdgDgLctopKpi[3]={2212,321,211};
2552 lab=part->MatchToMC(4122,arrMC,3,pdgDgLctopKpi);
2554 AliAODMCParticle *partDp = (AliAODMCParticle*)arrMC->At(lab);
2558 if(pdgMom == 4) IsLcfromc =1;
2569 if (isSelectedPID==0)
fNentries->Fill(7);
2570 if (isSelectedPID==1)
fNentries->Fill(8);
2571 if (isSelectedPID==2)
fNentries->Fill(9);
2572 if (isSelectedPID==3)
fNentries->Fill(10);
2574 AliAODTrack *prong0=(AliAODTrack*)part->GetDaughter(0);
2575 AliAODTrack *prong1=(AliAODTrack*)part->GetDaughter(1);
2576 AliAODTrack *prong2=(AliAODTrack*)part->GetDaughter(2);
2577 if (!prong0 || !prong1 || !prong2) {
2587 Int_t labprong[3]={-1,-1,-1};
2589 labprong[0]=prong0->GetLabel();
2590 labprong[1]=prong1->GetLabel();
2591 labprong[2]=prong2->GetLabel();
2594 AliAODMCParticle *mcprong=0;
2595 Int_t pdgProngMC[3]={-1,-1,-1};
2597 for (
Int_t iprong=0;iprong<3;iprong++){
2598 if(labprong[iprong]<0)
continue;
2599 mcprong = (AliAODMCParticle*)arrMC->At(labprong[iprong]);
2600 pdgProngMC[iprong]=TMath::Abs(mcprong->GetPdgCode());
2604 Int_t pdgProngPID[3]={-1,-1,-1};
2605 if(isSelectedPID>0){
2607 if(isSelectedPID==1) {pdgProngPID[0]=2212;pdgProngPID[2]=211;}
2608 if(isSelectedPID==2) {pdgProngPID[0]=211;pdgProngPID[2]=2212;}
2618 AliAODMCHeader *mcHeader2 = (AliAODMCHeader*)aod->GetList()->FindObject(AliAODMCHeader::StdBranchName());
2623 if(
fReadMC && selectionTrack>0) {
2625 if(lab>0 && IsLcfromc){
2626 for (
Int_t iprong=0; iprong<3; iprong++) {
2627 switch (pdgProngMC[iprong]) {
2629 fillthis=
"hpRealTot";
2630 ((TH1F*)
fOutputMC->FindObject(fillthis))->Fill(part->PtProng(iprong));
2634 fillthis=
"hKRealTot";
2635 ((TH1F*)
fOutputMC->FindObject(fillthis))->Fill(part->PtProng(iprong));
2639 fillthis=
"hpiRealTot";
2640 ((TH1F*)
fOutputMC->FindObject(fillthis))->Fill(part->PtProng(iprong));
2647 fillthis=
"hLcRealTot";
2648 if(isReal==3) ((TH1F*)
fOutputMC->FindObject(fillthis))->Fill(part->Pt());
2650 }
else if(!IsInjected) {
2651 for (
Int_t iprong=0; iprong<3; iprong++) {
2652 switch (pdgProngMC[iprong]) {
2654 fillthis=
"hbpRealTot";
2655 ((TH1F*)
fOutputMC->FindObject(fillthis))->Fill(part->PtProng(iprong));
2659 fillthis=
"hbKRealTot";
2660 ((TH1F*)
fOutputMC->FindObject(fillthis))->Fill(part->PtProng(iprong));
2664 fillthis=
"hbpiRealTot";
2665 ((TH1F*)
fOutputMC->FindObject(fillthis))->Fill(part->PtProng(iprong));
2672 fillthis=
"hbLcRealTot";
2673 if(isReal==3) ((TH1F*)
fOutputMC->FindObject(fillthis))->Fill(part->Pt());
2681 if ( (lab>0 &&
fReadMC && IsLcfromc) ||
2682 (isSelectedPID>0 && !
fReadMC) ) {
2685 if ( (
fReadMC && ((AliAODMCParticle*)arrMC->At(lab))->GetPdgCode() == 4122) ||
2686 (!
fReadMC && (isSelectedPID>0 && part->Charge()>0)) ) {
2687 if ( (pdgProngPID[0]==2212) && (pdgProngPID[1]==321) && (pdgProngPID[2]==211) )
2688 ((TH1F*)
fOutputMC->FindObject(fillthis))->Fill(minvLcpKpi);
2689 else if ( (pdgProngPID[0]==211) && (pdgProngPID[1]==321) && (pdgProngPID[2]==2212) )
2690 ((TH1F*)
fOutputMC->FindObject(fillthis))->Fill(minvLcpiKp);
2692 else if ( (
fReadMC && ((AliAODMCParticle*)arrMC->At(lab))->GetPdgCode() == -4122) ||
2693 (!
fReadMC && (isSelectedPID>0 && part->Charge()<0)) ) {
2694 if ( (pdgProngPID[0]==2212) && (pdgProngPID[1]==321) && (pdgProngPID[2]==211) )
2695 ((TH1F*)
fOutputMC->FindObject(fillthis))->Fill(minvLcpKpi);
2696 else if ( (pdgProngPID[0]==211) && (pdgProngPID[1]==321) && (pdgProngPID[2]==2212) )
2697 ((TH1F*)
fOutputMC->FindObject(fillthis))->Fill(minvLcpiKp);
2705 for (
Int_t iprong=0; iprong<3; iprong++) {
2706 if (part->PtProng(iprong)>
ptmax) ptmax=part->PtProng(iprong);
2708 AliAODTrack *prong = (AliAODTrack*)part->GetDaughter(iprong);
2709 AliAODPid *pidObjtrk = (AliAODPid*)prong->GetDetPid();
2718 momTOF = prong->P();
2719 tofSignal=pidObjtrk->GetTOFsignal();
2722 momTPC = pidObjtrk->GetTPCmomentum();
2723 dedxTPC=pidObjtrk->GetTPCsignal();
2725 switch (pdgProngPID[iprong]) {
2727 fillthis=
"hpTOFSignal";
2728 ((TH1F*)
fOutputMC->FindObject(fillthis))->Fill(tofSignal);
2729 fillthis=
"hpTPCSignal";
2730 ((TH1F*)
fOutputMC->FindObject(fillthis))->Fill(dedxTPC);
2731 fillthis=
"hpptProng";
2732 ((TH1F*)
fOutputMC->FindObject(fillthis))->Fill(part->PtProng(iprong));
2733 fillthis=
"hpptProngLcPt";
2734 ((TH1F*)
fOutputMC->FindObject(fillthis))->Fill(part->Pt(),part->PtProng(iprong));
2735 fillthis=
"hpd0Prong";
2736 ((TH1F*)
fOutputMC->FindObject(fillthis))->Fill(part->Getd0Prong(iprong));
2737 fillthis=
"hpd0ProngLcPt";
2738 ((TH1F*)
fOutputMC->FindObject(fillthis))->Fill(part->Pt(),part->Getd0Prong(iprong));
2739 fillthis=
"hpSignalVspTPC";
2740 ((
TH2F*)
fOutputMC->FindObject(fillthis))->Fill(momTPC,dedxTPC);
2741 fillthis=
"hpSignalVspTOF";
2742 ((
TH2F*)
fOutputMC->FindObject(fillthis))->Fill(momTOF,tofSignal);
2743 AliPID::EParticleType typep;
2744 typep=AliPID::EParticleType(4);
2748 fillthis=
"hpSigmaVspTPC";
2749 ((
TH2F*)
fOutputMC->FindObject(fillthis))->Fill(momTPC,nsigmap);
2754 fillthis=
"hpSigmaVspTOF";
2755 ((
TH2F*)
fOutputMC->FindObject(fillthis))->Fill(momTOF,nsigma);
2761 ((TH1F*)
fOutputMC->FindObject(fillthis))->Fill(part->PtProng(iprong));
2763 if(pdgProngMC[iprong]==2212) {
2764 fillthis=
"hpIDGood";
2765 ((TH1F*)
fOutputMC->FindObject(fillthis))->Fill(part->PtProng(iprong));
2770 ((TH1F*)
fOutputMC->FindObject(fillthis))->Fill(part->PtProng(iprong));
2776 fillthis=
"hKTOFSignal";
2777 ((TH1F*)
fOutputMC->FindObject(fillthis))->Fill(tofSignal);
2778 fillthis=
"hKTPCSignal";
2779 ((TH1F*)
fOutputMC->FindObject(fillthis))->Fill(dedxTPC);
2780 fillthis=
"hKptProng";
2781 ((TH1F*)
fOutputMC->FindObject(fillthis))->Fill(part->PtProng(iprong));
2782 fillthis=
"hKptProngLcPt";
2783 ((TH1F*)
fOutputMC->FindObject(fillthis))->Fill(part->Pt(),part->PtProng(iprong));
2784 fillthis=
"hKd0Prong";
2785 ((TH1F*)
fOutputMC->FindObject(fillthis))->Fill(part->Getd0Prong(iprong));
2786 fillthis=
"hKd0ProngLcPt";
2787 ((TH1F*)
fOutputMC->FindObject(fillthis))->Fill(part->Pt(),part->Getd0Prong(iprong));
2788 fillthis=
"hKSignalVspTPC";
2789 ((
TH2F*)
fOutputMC->FindObject(fillthis))->Fill(momTPC,dedxTPC);
2790 fillthis=
"hKSignalVspTOF";
2791 ((
TH2F*)
fOutputMC->FindObject(fillthis))->Fill(momTOF,tofSignal);
2792 AliPID::EParticleType typek;
2793 typek=AliPID::EParticleType(3);
2797 fillthis=
"hKSigmaVspTPC";
2798 ((
TH2F*)
fOutputMC->FindObject(fillthis))->Fill(momTPC,nsigmap);
2803 fillthis=
"hKSigmaVspTOF";
2804 ((
TH2F*)
fOutputMC->FindObject(fillthis))->Fill(momTOF,nsigma);
2810 ((TH1F*)
fOutputMC->FindObject(fillthis))->Fill(part->PtProng(iprong));
2812 if(pdgProngMC[iprong]==321) {
2813 fillthis=
"hKIDGood";
2814 ((TH1F*)
fOutputMC->FindObject(fillthis))->Fill(part->PtProng(iprong));
2819 ((TH1F*)
fOutputMC->FindObject(fillthis))->Fill(part->PtProng(iprong));
2825 fillthis=
"hpiTOFSignal";
2826 ((TH1F*)
fOutputMC->FindObject(fillthis))->Fill(tofSignal);
2827 fillthis=
"hpiTPCSignal";
2828 ((TH1F*)
fOutputMC->FindObject(fillthis))->Fill(dedxTPC);
2829 fillthis=
"hpiptProng";
2830 ((TH1F*)
fOutputMC->FindObject(fillthis))->Fill(part->PtProng(iprong));
2831 fillthis=
"hpiptProngLcPt";
2832 ((TH1F*)
fOutputMC->FindObject(fillthis))->Fill(part->Pt(),part->PtProng(iprong));
2833 fillthis=
"hpid0Prong";
2834 ((TH1F*)
fOutputMC->FindObject(fillthis))->Fill(part->Getd0Prong(iprong));
2835 fillthis=
"hpid0ProngLcPt";
2836 ((TH1F*)
fOutputMC->FindObject(fillthis))->Fill(part->Pt(),part->Getd0Prong(iprong));
2838 fillthis=
"hpiSignalVspTPC";
2839 ((
TH2F*)
fOutputMC->FindObject(fillthis))->Fill(momTPC,dedxTPC);
2840 fillthis=
"hpiSignalVspTOF";
2841 ((
TH2F*)
fOutputMC->FindObject(fillthis))->Fill(momTOF,tofSignal);
2842 AliPID::EParticleType typepi;
2843 typepi=AliPID::EParticleType(2);
2847 fillthis=
"hpiSigmaVspTPC";
2848 ((
TH2F*)
fOutputMC->FindObject(fillthis))->Fill(momTPC,nsigmap);
2853 fillthis=
"hpiSigmaVspTOF";
2854 ((
TH2F*)
fOutputMC->FindObject(fillthis))->Fill(momTOF,nsigma);
2859 fillthis=
"hpiIDTot";
2860 ((TH1F*)
fOutputMC->FindObject(fillthis))->Fill(part->PtProng(iprong));
2862 if(pdgProngMC[iprong]==211) {
2863 fillthis=
"hpiIDGood";
2864 ((TH1F*)
fOutputMC->FindObject(fillthis))->Fill(part->PtProng(iprong));
2868 fillthis=
"hnopiIDpi";
2869 ((TH1F*)
fOutputMC->FindObject(fillthis))->Fill(part->PtProng(iprong));
2881 fillthis=
"hLcIDTot";
2882 if(isID==3) ((TH1F*)
fOutputMC->FindObject(fillthis))->Fill(part->Pt());
2883 fillthis=
"hLcIDGood";
2884 if(isCorrect==3) ((TH1F*)
fOutputMC->FindObject(fillthis))->Fill(part->Pt());
2886 if(isCorrect<3) ((TH1F*)
fOutputMC->FindObject(fillthis))->Fill(part->Pt());
2890 ((TH1F*)
fOutputMC->FindObject(fillthis))->Fill(part->Pt());
2891 fillthis =
"hDist12toPrim";
2894 fillthis =
"hDist12toPrimLcPt";
2897 fillthis =
"hSigmaVert";
2899 fillthis =
"hSigmaVertLcPt";
2904 for (
Int_t idca=0;idca<3;idca++) ((TH1F*)
fOutputMC->FindObject(fillthis))->Fill(dcas[idca]);
2905 fillthis =
"hDCAsLcPt";
2906 for (
Int_t idca=0;idca<3;idca++) ((TH1F*)
fOutputMC->FindObject(fillthis))->Fill(part->Pt(),dcas[idca]);
2907 fillthis =
"hCosPointingAngle";
2909 fillthis =
"hCosPointingAngleLcPt";
2911 fillthis =
"hDecayLength";
2913 fillthis =
"hDecayLengthLcPt";
2915 Double_t sum2=part->Getd0Prong(0)*part->Getd0Prong(0)+
2916 part->Getd0Prong(1)*part->Getd0Prong(1)+
2917 part->Getd0Prong(2)*part->Getd0Prong(2);
2919 ((TH1F*)
fOutputMC->FindObject(fillthis))->Fill(sum2);
2920 fillthis =
"hSum2LcPt";
2921 ((TH1F*)
fOutputMC->FindObject(fillthis))->Fill(part->Pt(),sum2);
2922 fillthis =
"hptmax";
2923 ((TH1F*)
fOutputMC->FindObject(fillthis))->Fill(ptmax);
2924 fillthis =
"hptmaxLcPt";
2925 ((TH1F*)
fOutputMC->FindObject(fillthis))->Fill(part->Pt(),
ptmax);
2930 }
else if( lab<=0 &&
fReadMC && !IsInjected ) {
2934 if (part->Charge()>0) {
2935 if ( (pdgProngPID[0]==2212) && (pdgProngPID[1]==321) && (pdgProngPID[2]==211) )
2936 ((TH1F*)
fOutputMC->FindObject(fillthis))->Fill(minvLcpKpi);
2937 else if ( (pdgProngPID[0]==211) && (pdgProngPID[1]==321) && (pdgProngPID[2]==2212) )
2938 ((TH1F*)
fOutputMC->FindObject(fillthis))->Fill(minvLcpiKp);
2940 else 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);
2949 if (TMath::Abs(minvLcpKpi-mPDG)<invmasscut || TMath::Abs(minvLcpiKp-mPDG)<invmasscut) {
2956 for (
Int_t iprong=0; iprong<3; iprong++) {
2957 if(part->PtProng(iprong)>
ptmax)ptmax=part->PtProng(iprong);
2959 AliAODTrack *prong = (AliAODTrack*)part->GetDaughter(iprong);
2960 AliAODPid *pidObjtrk = (AliAODPid*)prong->GetDetPid();
2969 momTOF = prong->P();
2970 tofSignal=pidObjtrk->GetTOFsignal();
2973 momTPC = pidObjtrk->GetTPCmomentum();
2974 dedxTPC=pidObjtrk->GetTPCsignal();
2977 switch (pdgProngPID[iprong]) {
2979 fillthis=
"hbpTOFSignal";
2980 ((TH1F*)
fOutputMC->FindObject(fillthis))->Fill(tofSignal);
2981 fillthis=
"hbpTPCSignal";
2982 ((TH1F*)
fOutputMC->FindObject(fillthis))->Fill(dedxTPC);
2983 fillthis=
"hbpptProng";
2984 ((TH1F*)
fOutputMC->FindObject(fillthis))->Fill(part->PtProng(iprong));
2985 fillthis=
"hbpptProngLcPt";
2986 ((TH1F*)
fOutputMC->FindObject(fillthis))->Fill(part->Pt(),part->PtProng(iprong));
2987 fillthis=
"hbpd0Prong";
2988 ((TH1F*)
fOutputMC->FindObject(fillthis))->Fill(part->Getd0Prong(iprong));
2989 fillthis=
"hbpd0ProngLcPt";
2990 ((TH1F*)
fOutputMC->FindObject(fillthis))->Fill(part->Pt(),part->Getd0Prong(iprong));
2991 fillthis=
"hbpSignalVspTPC";
2992 ((
TH2F*)
fOutputMC->FindObject(fillthis))->Fill(momTPC,dedxTPC);
2993 fillthis=
"hbpSignalVspTOF";
2994 ((
TH2F*)
fOutputMC->FindObject(fillthis))->Fill(momTOF,tofSignal);
2995 AliPID::EParticleType typep;
2996 typep=AliPID::EParticleType(4);
3000 fillthis=
"hbpSigmaVspTPC";
3001 ((
TH2F*)
fOutputMC->FindObject(fillthis))->Fill(momTPC,nsigmap);
3006 fillthis=
"hbpSigmaVspTOF";
3007 ((
TH2F*)
fOutputMC->FindObject(fillthis))->Fill(momTOF,nsigma);
3011 fillthis=
"hbpIDTot";
3012 ((TH1F*)
fOutputMC->FindObject(fillthis))->Fill(part->PtProng(iprong));
3014 if(pdgProngMC[iprong]==2212) {
3015 fillthis=
"hbpIDGood";
3016 ((TH1F*)
fOutputMC->FindObject(fillthis))->Fill(part->PtProng(iprong));
3020 fillthis=
"hbnopIDp";
3021 ((TH1F*)
fOutputMC->FindObject(fillthis))->Fill(part->PtProng(iprong));
3027 fillthis=
"hbKTOFSignal";
3028 ((TH1F*)
fOutputMC->FindObject(fillthis))->Fill(tofSignal);
3029 fillthis=
"hbKTPCSignal";
3030 ((TH1F*)
fOutputMC->FindObject(fillthis))->Fill(dedxTPC);
3031 fillthis=
"hbKptProng";
3032 ((TH1F*)
fOutputMC->FindObject(fillthis))->Fill(part->PtProng(iprong));
3033 fillthis=
"hbKptProngLcPt";
3034 ((TH1F*)
fOutputMC->FindObject(fillthis))->Fill(part->Pt(),part->PtProng(iprong));
3035 fillthis=
"hbKd0Prong";
3036 ((TH1F*)
fOutputMC->FindObject(fillthis))->Fill(part->Getd0Prong(iprong));
3037 fillthis=
"hbKd0ProngLcPt";
3038 ((TH1F*)
fOutputMC->FindObject(fillthis))->Fill(part->Pt(),part->Getd0Prong(iprong));
3039 fillthis=
"hbKSignalVspTPC";
3040 ((
TH2F*)
fOutputMC->FindObject(fillthis))->Fill(momTPC,dedxTPC);
3041 fillthis=
"hbKSignalVspTOF";
3042 ((
TH2F*)
fOutputMC->FindObject(fillthis))->Fill(momTOF,tofSignal);
3043 AliPID::EParticleType typek;
3044 typek=AliPID::EParticleType(3);
3048 fillthis=
"hbKSigmaVspTPC";
3049 ((
TH2F*)
fOutputMC->FindObject(fillthis))->Fill(momTPC,nsigmap);
3054 fillthis=
"hbKSigmaVspTOF";
3055 ((
TH2F*)
fOutputMC->FindObject(fillthis))->Fill(momTOF,nsigma);
3059 fillthis=
"hbKIDTot";
3060 ((TH1F*)
fOutputMC->FindObject(fillthis))->Fill(part->PtProng(iprong));
3062 if(pdgProngMC[iprong]==321) {
3063 fillthis=
"hbKIDGood";
3064 ((TH1F*)
fOutputMC->FindObject(fillthis))->Fill(part->PtProng(iprong));
3068 fillthis=
"hbnokIDk";
3069 ((TH1F*)
fOutputMC->FindObject(fillthis))->Fill(part->PtProng(iprong));
3075 fillthis=
"hbpiTOFSignal";
3076 ((TH1F*)
fOutputMC->FindObject(fillthis))->Fill(tofSignal);
3077 fillthis=
"hbpiTPCSignal";
3078 ((TH1F*)
fOutputMC->FindObject(fillthis))->Fill(dedxTPC);
3079 fillthis=
"hbpiptProng";
3080 ((TH1F*)
fOutputMC->FindObject(fillthis))->Fill(part->PtProng(iprong));
3081 fillthis=
"hbpiptProngLcPt";
3082 ((TH1F*)
fOutputMC->FindObject(fillthis))->Fill(part->PtProng(iprong));
3083 fillthis=
"hbpid0Prong";
3084 ((TH1F*)
fOutputMC->FindObject(fillthis))->Fill(part->Getd0Prong(iprong));
3085 fillthis=
"hbpid0ProngLcPt";
3086 ((TH1F*)
fOutputMC->FindObject(fillthis))->Fill(part->Pt(),part->Getd0Prong(iprong));
3087 fillthis=
"hbpiSignalVspTPC";
3088 ((
TH2F*)
fOutputMC->FindObject(fillthis))->Fill(momTPC,dedxTPC);
3089 fillthis=
"hbpiSignalVspTOF";
3090 ((
TH2F*)
fOutputMC->FindObject(fillthis))->Fill(momTOF,tofSignal);
3091 AliPID::EParticleType typepi;
3092 typepi=AliPID::EParticleType(2);
3096 fillthis=
"hbpiSigmaVspTPC";
3097 ((
TH2F*)
fOutputMC->FindObject(fillthis))->Fill(momTPC,nsigmap);
3102 fillthis=
"hbpiSigmaVspTOF";
3103 ((
TH2F*)
fOutputMC->FindObject(fillthis))->Fill(momTOF,nsigma);
3107 fillthis=
"hbpiIDTot";
3108 ((TH1F*)
fOutputMC->FindObject(fillthis))->Fill(part->PtProng(iprong));
3110 if(pdgProngMC[iprong]==211) {
3111 fillthis=
"hbpiIDGood";
3112 ((TH1F*)
fOutputMC->FindObject(fillthis))->Fill(part->PtProng(iprong));
3116 fillthis=
"hbnopiIDpi";
3117 ((TH1F*)
fOutputMC->FindObject(fillthis))->Fill(part->PtProng(iprong));
3128 fillthis=
"hbLcIDTot";
3129 if(isID==3) ((TH1F*)
fOutputMC->FindObject(fillthis))->Fill(part->Pt());
3130 fillthis=
"hbLcIDGood";
3131 if(isCorrect==3) ((TH1F*)
fOutputMC->FindObject(fillthis))->Fill(part->Pt());
3132 fillthis=
"hbLcnoID";
3133 if(isCorrect<3) ((TH1F*)
fOutputMC->FindObject(fillthis))->Fill(part->Pt());
3137 ((TH1F*)
fOutputMC->FindObject(fillthis))->Fill(part->Pt());
3139 fillthis =
"hbDist12toPrim";
3142 fillthis =
"hbDist12toPrimLcPt";
3145 fillthis =
"hbSigmaVert";
3147 fillthis =
"hbSigmaVertLcPt";
3149 fillthis =
"hbDCAs";
3152 for (
Int_t idca=0;idca<3;idca++) ((TH1F*)
fOutputMC->FindObject(fillthis))->Fill(dcas[idca]);
3153 fillthis =
"hbDCAsLcPt";
3154 for (
Int_t idca=0;idca<3;idca++) ((TH1F*)
fOutputMC->FindObject(fillthis))->Fill(part->Pt(),dcas[idca]);
3155 fillthis =
"hbCosPointingAngle";
3157 fillthis =
"hbCosPointingAngleLcPt";
3159 fillthis =
"hbDecayLength";
3161 fillthis =
"hbDecayLengthLcPt";
3163 Double_t sum2=part->Getd0Prong(0)*part->Getd0Prong(0)+
3164 part->Getd0Prong(1)*part->Getd0Prong(1)+
3165 part->Getd0Prong(2)*part->Getd0Prong(2);
3166 fillthis =
"hbSum2";
3167 ((TH1F*)
fOutputMC->FindObject(fillthis))->Fill(sum2);
3168 fillthis =
"hbSum2LcPt";
3169 ((TH1F*)
fOutputMC->FindObject(fillthis))->Fill(part->Pt(),sum2);
3170 fillthis =
"hbptmax";
3171 ((TH1F*)
fOutputMC->FindObject(fillthis))->Fill(ptmax);
3172 fillthis =
"hbptmaxLcPt";
3173 ((TH1F*)
fOutputMC->FindObject(fillthis))->Fill(part->Pt(),
ptmax);
3189 TClonesArray *arrMC)
3198 if(isSelected3ProngByLc>0 &&
fReadMC) {
3200 for (
Int_t ii=0; ii<3; ii++) {
3201 AliAODTrack *prongTest=(AliAODTrack*)part->GetDaughter(ii);
3202 if (!prongTest)
continue;
3203 Int_t labprongTest = prongTest->GetLabel();
3204 if(labprongTest<0)
continue;
3205 AliAODMCParticle *mcprongTest = (AliAODMCParticle*)arrMC->At(labprongTest);
3207 switch (TMath::Abs(mcprongTest->GetPdgCode())) {
3209 fillthis=
"hElIn3Prong";
3210 ((TH1F*)
fAPriori->FindObject(fillthis))->Fill(part->PtProng(ii));
3213 fillthis=
"hMuIn3Prong";
3214 ((TH1F*)
fAPriori->FindObject(fillthis))->Fill(part->PtProng(ii));
3217 fillthis=
"hPiIn3Prong";
3218 ((TH1F*)
fAPriori->FindObject(fillthis))->Fill(part->PtProng(ii));
3221 fillthis=
"hKaIn3Prong";
3222 ((TH1F*)
fAPriori->FindObject(fillthis))->Fill(part->PtProng(ii));
3225 fillthis=
"hPrIn3Prong";
3226 ((TH1F*)
fAPriori->FindObject(fillthis))->Fill(part->PtProng(ii));
3240 TClonesArray *arrayMC,
3241 Int_t pdgToBeCompared)
3248 Bool_t localFlag = kFALSE;
3250 for (
Int_t ii=0;ii<3;ii++) {
3251 AliAODTrack *daugh = (AliAODTrack*)d->GetDaughter(ii);
3253 Int_t lab = daugh->GetLabel();
3255 AliAODMCParticle *part= (AliAODMCParticle*)arrayMC->At(lab);
3259 Int_t motherLabel = part->GetMother();
3260 if(motherLabel<0)
continue;
3262 AliAODMCParticle *motherPart = 0;
3263 Int_t motherPdg = 0;
3264 while (!localFlag && motherLabel>=0) {
3265 motherPart = (AliAODMCParticle*)arrayMC->At(motherLabel);
3266 motherPdg = motherPart->GetPdgCode();
3268 if (TMath::Abs(motherPdg)==pdgToBeCompared) {
3273 motherLabel = motherPart->GetMother();
3285 TClonesArray *arrayMC,
3286 Int_t pdgToBeCompared)
3293 Bool_t localFlag = kFALSE;
3295 Int_t lab = daugh->GetLabel();
3296 if(lab<0)
return localFlag;
3297 AliAODMCParticle *part= (AliAODMCParticle*)arrayMC->At(lab);
3301 Int_t motherLabel = part->GetMother();
3302 if(motherLabel<0)
return localFlag;
3304 AliAODMCParticle *motherPart = 0;
3305 Int_t motherPdg = 0;
3306 while (!localFlag && motherLabel>=0) {
3307 motherPart = (AliAODMCParticle*)arrayMC->At(motherLabel);
3308 motherPdg = motherPart->GetPdgCode();
3310 if (TMath::Abs(motherPdg)==pdgToBeCompared) {
3315 motherLabel = motherPart->GetMother();
3333 Bool_t localFlag = kFALSE;
3335 AliAODMCParticle *searchLc;
3337 for (
Int_t iii=0; iii<arrayMC->GetEntries(); iii++) {
3338 searchLc = (AliAODMCParticle*)arrayMC->At(iii);
3339 Int_t searchLcpdg = searchLc->GetPdgCode();
3340 if (TMath::Abs(searchLcpdg) == 4122){
3357 TClonesArray *aodtracks=(TClonesArray *)aods->GetTracks();
3360 for(
Int_t ji=0;ji<aodtracks->GetEntriesFast();ji++)
3362 AliAODTrack*aodTrack=(AliAODTrack*)aodtracks->UncheckedAt(ji);
3363 if(aodTrack->IsPrimaryCandidate()) counter++;
3373 TClonesArray *arrMC,
3383 Int_t pdgDgLctopKpi[3]={2212,321,211};
3386 lab=part->MatchToMC(4122,arrMC,3,pdgDgLctopKpi);
3391 if(isSelected3ProngByLc>0 &&
fReadMC) {
3398 if (is3ProngFromJPsi) flag6=is3ProngFromJPsi;
3401 if (is3ProngFromC) flag4=is3ProngFromC;
3404 if (is3ProngFromB) flag5=is3ProngFromB;
3406 for (
Int_t ii=0; ii<3; ii++) {
3407 AliAODTrack *prongTest=(AliAODTrack*)part->GetDaughter(ii);
3408 if (!prongTest)
continue;
3409 Int_t labprongTest = prongTest->GetLabel();
3410 if(labprongTest<0)
continue;
3411 AliAODMCParticle *mcprongTest = (AliAODMCParticle*)arrMC->At(labprongTest);
3413 switch (TMath::Abs(mcprongTest->GetPdgCode())) {
3415 fillthis=
"hElIn3Prong";
3416 ((TH1F*)
fAPriori->FindObject(fillthis))->Fill(part->PtProng(ii));
3418 fillthis=
"hElIn3Prong6";
3419 ((TH1F*)
fAPriori->FindObject(fillthis))->Fill(part->PtProng(ii));
3423 fillthis=
"hMuIn3Prong";
3424 ((TH1F*)
fAPriori->FindObject(fillthis))->Fill(part->PtProng(ii));
3426 fillthis=
"hMuIn3Prong6";
3427 ((TH1F*)
fAPriori->FindObject(fillthis))->Fill(part->PtProng(ii));
3431 fillthis=
"hPiIn3Prong";
3432 ((TH1F*)
fAPriori->FindObject(fillthis))->Fill(part->PtProng(ii));
3434 fillthis=
"hPiIn3Prong6";
3435 ((TH1F*)
fAPriori->FindObject(fillthis))->Fill(part->PtProng(ii));
3439 fillthis=
"hKaIn3Prong";
3440 ((TH1F*)
fAPriori->FindObject(fillthis))->Fill(part->PtProng(ii));
3442 fillthis=
"hKaIn3Prong6";
3443 ((TH1F*)
fAPriori->FindObject(fillthis))->Fill(part->PtProng(ii));
3447 fillthis=
"hPrIn3Prong";
3448 ((TH1F*)
fAPriori->FindObject(fillthis))->Fill(part->PtProng(ii));
3450 fillthis=
"hPrIn3Prong6";
3451 ((TH1F*)
fAPriori->FindObject(fillthis))->Fill(part->PtProng(ii));
3459 switch (TMath::Abs(mcprongTest->GetPdgCode())) {
3461 fillthis=
"hElIn3Prong1";
3462 ((TH1F*)
fAPriori->FindObject(fillthis))->Fill(part->PtProng(ii));
3465 fillthis=
"hMuIn3Prong1";
3466 ((TH1F*)
fAPriori->FindObject(fillthis))->Fill(part->PtProng(ii));
3469 fillthis=
"hPiIn3Prong1";
3470 ((TH1F*)
fAPriori->FindObject(fillthis))->Fill(part->PtProng(ii));
3473 fillthis=
"hKaIn3Prong1";
3474 ((TH1F*)
fAPriori->FindObject(fillthis))->Fill(part->PtProng(ii));
3477 fillthis=
"hPrIn3Prong1";
3478 ((TH1F*)
fAPriori->FindObject(fillthis))->Fill(part->PtProng(ii));
3484 switch (TMath::Abs(mcprongTest->GetPdgCode())) {
3486 fillthis=
"hElIn3Prong2";
3487 ((TH1F*)
fAPriori->FindObject(fillthis))->Fill(part->PtProng(ii));
3489 fillthis=
"hElIn3Prong3";
3490 ((TH1F*)
fAPriori->FindObject(fillthis))->Fill(part->PtProng(ii));
3493 fillthis=
"hElIn3Prong4";
3494 ((TH1F*)
fAPriori->FindObject(fillthis))->Fill(part->PtProng(ii));
3497 fillthis=
"hElIn3Prong5";
3498 ((TH1F*)
fAPriori->FindObject(fillthis))->Fill(part->PtProng(ii));
3502 fillthis=
"hMuIn3Prong2";
3503 ((TH1F*)
fAPriori->FindObject(fillthis))->Fill(part->PtProng(ii));
3505 fillthis=
"hMuIn3Prong3";
3506 ((TH1F*)
fAPriori->FindObject(fillthis))->Fill(part->PtProng(ii));
3509 fillthis=
"hMuIn3Prong4";
3510 ((TH1F*)
fAPriori->FindObject(fillthis))->Fill(part->PtProng(ii));
3513 fillthis=
"hMuIn3Prong5";
3514 ((TH1F*)
fAPriori->FindObject(fillthis))->Fill(part->PtProng(ii));
3518 fillthis=
"hPiIn3Prong2";
3519 ((TH1F*)
fAPriori->FindObject(fillthis))->Fill(part->PtProng(ii));
3521 fillthis=
"hPiIn3Prong3";
3522 ((TH1F*)
fAPriori->FindObject(fillthis))->Fill(part->PtProng(ii));
3525 fillthis=
"hPiIn3Prong4";
3526 ((TH1F*)
fAPriori->FindObject(fillthis))->Fill(part->PtProng(ii));
3529 fillthis=
"hPiIn3Prong5";
3530 ((TH1F*)
fAPriori->FindObject(fillthis))->Fill(part->PtProng(ii));
3534 fillthis=
"hKaIn3Prong2";
3535 ((TH1F*)
fAPriori->FindObject(fillthis))->Fill(part->PtProng(ii));
3537 fillthis=
"hKaIn3Prong3";
3538 ((TH1F*)
fAPriori->FindObject(fillthis))->Fill(part->PtProng(ii));
3541 fillthis=
"hKaIn3Prong4";
3542 ((TH1F*)
fAPriori->FindObject(fillthis))->Fill(part->PtProng(ii));
3545 fillthis=
"hKaIn3Prong5";
3546 ((TH1F*)
fAPriori->FindObject(fillthis))->Fill(part->PtProng(ii));
3550 fillthis=
"hPrIn3Prong2";
3551 ((TH1F*)
fAPriori->FindObject(fillthis))->Fill(part->PtProng(ii));
3553 fillthis=
"hPrIn3Prong3";
3554 ((TH1F*)
fAPriori->FindObject(fillthis))->Fill(part->PtProng(ii));
3557 fillthis=
"hPrIn3Prong4";
3558 ((TH1F*)
fAPriori->FindObject(fillthis))->Fill(part->PtProng(ii));
3561 fillthis=
"hPrIn3Prong5";
3562 ((TH1F*)
fAPriori->FindObject(fillthis))->Fill(part->PtProng(ii));
3652 Double_t mPDG=TDatabasePDG::Instance()->GetParticle(4122)->Mass();
3660 if (isSelected3ProngByLcPID>0) {
3661 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 //.