@@ -54,6 +54,7 @@ struct Candidate3body {
5454 // 0 - proton, 1 - pion, 2 - bachelor
5555 uint8_t dautpcNclusters[3 ];
5656 uint8_t dauitsclussize[3 ];
57+ uint8_t daudcaxytopv[3 ];
5758 uint8_t daudcatopv[3 ];
5859 float dautpcNsigma[3 ];
5960 bool isMatter;
@@ -65,6 +66,7 @@ struct Candidate3body {
6566 float bachelortofNsigma;
6667 TLorentzVector lgencand = {0 , 0 , 0 , 0 };
6768 float genct = -1 ;
69+ float genrapidity = -999 ;
6870 bool isSignal = false ;
6971 bool isReco = false ;
7072 int pdgCode = -1 ;
@@ -112,6 +114,7 @@ struct threebodyRecoTask {
112114 " registry" ,
113115 {
114116 {" hEventCounter" , " hEventCounter" , {HistType::kTH1F , {{4 , 0 .0f , 4 .0f }}}},
117+ {" hCentFT0C" , " hCentFT0C" , {HistType::kTH1F , {{100 , 0 .0f , 100 .0f , " FT0C Centrality" }}}},
115118 {" hCandidatesCounter" , " hCandidatesCounter" , {HistType::kTH1F , {{12 , 0 .0f , 12 .0f }}}},
116119 {" hMassHypertriton" , " hMassHypertriton" , {HistType::kTH1F , {{80 , 2 .96f , 3 .04f }}}},
117120 {" hMassAntiHypertriton" , " hMassAntiHypertriton" , {HistType::kTH1F , {{80 , 2 .96f , 3 .04f }}}},
@@ -122,6 +125,9 @@ struct threebodyRecoTask {
122125 {" hPtAntiProton" , " hPtAntiProton" , {HistType::kTH1F , {{200 , 0 .0f , 10 .0f }}}},
123126 {" hPtPionPlus" , " hPtPionPlus" , {HistType::kTH1F , {{200 , 0 .0f , 10 .0f }}}},
124127 {" hPtAntiDeuteron" , " hPtAntiDeuteron" , {HistType::kTH1F , {{200 , 0 .0f , 10 .0f }}}},
128+ {" hDCAXYProtonToPV" , " hDCAXYProtonToPV" , {HistType::kTH1F , {{1000 , -10 .0f , 10 .0f , " cm" }}}},
129+ {" hDCAXYPionToPV" , " hDCAXYPionToPV" , {HistType::kTH1F , {{1000 , -10 .0f , 10 .0f , " cm" }}}},
130+ {" hDCAXYDeuteronToPV" , " hDCAXYDeuteronToPV" , {HistType::kTH1F , {{1000 , -10 .0f , 10 .0f , " cm" }}}},
125131 {" hDCAProtonToPV" , " hDCAProtonToPV" , {HistType::kTH1F , {{1000 , -10 .0f , 10 .0f , " cm" }}}},
126132 {" hDCAPionToPV" , " hDCAPionToPV" , {HistType::kTH1F , {{1000 , -10 .0f , 10 .0f , " cm" }}}},
127133 {" hDCADeuteronToPV" , " hDCADeuteronToPV" , {HistType::kTH1F , {{1000 , -10 .0f , 10 .0f , " cm" }}}},
@@ -351,6 +357,8 @@ struct threebodyRecoTask {
351357 registry.fill (HIST (" hPtProton" ), trackProton.pt ());
352358 registry.fill (HIST (" hPtPionMinus" ), trackPion.pt ());
353359 registry.fill (HIST (" hPtDeuteron" ), trackDeuteron.pt ());
360+ registry.fill (HIST (" hDCAXYProtonToPV" ), candData.dcaXYtrack0topv ());
361+ registry.fill (HIST (" hDCAXYPionToPV" ), candData.dcaXYtrack1topv ());
354362 registry.fill (HIST (" hDCAProtonToPV" ), candData.dcatrack0topv ());
355363 registry.fill (HIST (" hDCAPionToPV" ), candData.dcatrack1topv ());
356364
@@ -379,6 +387,8 @@ struct threebodyRecoTask {
379387 registry.fill (HIST (" hPtAntiProton" ), trackProton.pt ());
380388 registry.fill (HIST (" hPtPionPlus" ), trackPion.pt ());
381389 registry.fill (HIST (" hPtAntiDeuteron" ), trackDeuteron.pt ());
390+ registry.fill (HIST (" hDCAXYProtonToPV" ), candData.dcaXYtrack1topv ());
391+ registry.fill (HIST (" hDCAXYPionToPV" ), candData.dcaXYtrack0topv ());
382392 registry.fill (HIST (" hDCAProtonToPV" ), candData.dcatrack1topv ());
383393 registry.fill (HIST (" hDCAPionToPV" ), candData.dcatrack0topv ());
384394
@@ -409,10 +419,15 @@ struct threebodyRecoTask {
409419 cand3body.dautpcNclusters [0 ] = trackProton.tpcNClsFound ();
410420 cand3body.dautpcNclusters [1 ] = trackPion.tpcNClsFound ();
411421 cand3body.dautpcNclusters [2 ] = trackDeuteron.tpcNClsFound ();
412- cand3body.dauitsclussize [0 ] = trackPion.itsClusterSizes ();
422+ cand3body.dauitsclussize [0 ] = trackProton.itsClusterSizes ();
423+ cand3body.dauitsclussize [1 ] = trackPion.itsClusterSizes ();
424+ cand3body.dauitsclussize [2 ] = trackDeuteron.itsClusterSizes ();
413425 cand3body.dautpcNsigma [0 ] = trackProton.tpcNSigmaPr ();
414426 cand3body.dautpcNsigma [1 ] = trackPion.tpcNSigmaPi ();
415427 cand3body.dautpcNsigma [2 ] = trackDeuteron.tpcNSigmaDe ();
428+ cand3body.daudcaxytopv [0 ] = cand3body.isMatter ? candData.dcaXYtrack0topv () : candData.dcaXYtrack1topv ();
429+ cand3body.daudcaxytopv [1 ] = cand3body.isMatter ? candData.dcaXYtrack1topv () : candData.dcaXYtrack0topv ();
430+ cand3body.daudcaxytopv [2 ] = candData.dcaXYtrack2topv ();
416431 cand3body.daudcatopv [0 ] = cand3body.isMatter ? candData.dcatrack0topv () : candData.dcatrack1topv ();
417432 cand3body.daudcatopv [1 ] = cand3body.isMatter ? candData.dcatrack1topv () : candData.dcatrack0topv ();
418433 cand3body.daudcatopv [2 ] = candData.dcatrack2topv ();
@@ -426,6 +441,7 @@ struct threebodyRecoTask {
426441 cand3body.mcmotherId = lLabel;
427442 cand3body.lgencand = lmother;
428443 cand3body.genct = MClifetime;
444+ cand3body.genrapidity = lmother.Rapidity ();
429445 cand3body.isSignal = true ;
430446 cand3body.isReco = true ;
431447 cand3body.pdgCode = cand3body.isMatter ? motherPdgCode : -motherPdgCode;
@@ -514,6 +530,7 @@ struct threebodyRecoTask {
514530 return ;
515531 }
516532 registry.fill (HIST (" hEventCounter" ), 2.5 );
533+ registry.fill (HIST (" hCentFT0C" ), collision.centFT0C ());
517534
518535 bool if_hasvtx = false ;
519536
@@ -537,6 +554,7 @@ struct threebodyRecoTask {
537554 cand3body.dautpcNclusters [0 ], cand3body.dautpcNclusters [1 ], cand3body.dautpcNclusters [2 ],
538555 cand3body.dauitsclussize [0 ], cand3body.dauitsclussize [1 ], cand3body.dauitsclussize [2 ],
539556 cand3body.dautpcNsigma [0 ], cand3body.dautpcNsigma [1 ], cand3body.dautpcNsigma [2 ], cand3body.bachelortofNsigma ,
557+ cand3body.daudcaxytopv [0 ], cand3body.daudcaxytopv [1 ], cand3body.daudcaxytopv [2 ],
540558 cand3body.daudcatopv [0 ], cand3body.daudcatopv [1 ], cand3body.daudcatopv [2 ]);
541559 }
542560 }
@@ -587,7 +605,7 @@ struct threebodyRecoTask {
587605 for (auto & lMother2 : lMCTrack2.mothers_as <aod::McParticles>()) {
588606 if (lMother0.globalIndex () == lMother1.globalIndex () && lMother0.globalIndex () == lMother2.globalIndex ()) {
589607 lLabel = lMother0.globalIndex ();
590- lPDG = lMother1 .pdgCode ();
608+ lPDG = lMother0 .pdgCode ();
591609 if ((lPDG == motherPdgCode && lMCTrack0.pdgCode () == 2212 && lMCTrack1.pdgCode () == -211 && lMCTrack2.pdgCode () == bachelorPdgCode) ||
592610 (lPDG == -motherPdgCode && lMCTrack0.pdgCode () == 211 && lMCTrack1.pdgCode () == -2212 && lMCTrack2.pdgCode () == -bachelorPdgCode)) {
593611 isTrueCand = true ;
@@ -620,8 +638,9 @@ struct threebodyRecoTask {
620638 cand3body.dautpcNclusters [0 ], cand3body.dautpcNclusters [1 ], cand3body.dautpcNclusters [2 ],
621639 cand3body.dauitsclussize [0 ], cand3body.dauitsclussize [1 ], cand3body.dauitsclussize [2 ],
622640 cand3body.dautpcNsigma [0 ], cand3body.dautpcNsigma [1 ], cand3body.dautpcNsigma [2 ], cand3body.bachelortofNsigma ,
641+ cand3body.daudcaxytopv [0 ], cand3body.daudcaxytopv [1 ], cand3body.daudcaxytopv [2 ],
623642 cand3body.daudcatopv [0 ], cand3body.daudcatopv [1 ], cand3body.daudcatopv [2 ],
624- cand3body.lgencand .P (), cand3body.lgencand .Pt (), cand3body.genct , cand3body.lgencand .Phi (), cand3body.lgencand .Eta (),
643+ cand3body.lgencand .P (), cand3body.lgencand .Pt (), cand3body.genct , cand3body.lgencand .Phi (), cand3body.lgencand .Eta (), cand3body. lgencand . Rapidity (),
625644 cand3body.isSignal , cand3body.isReco , cand3body.pdgCode , cand3body.SurvivedEventSelection );
626645 }
627646 }
@@ -653,7 +672,8 @@ struct threebodyRecoTask {
653672 -1 , -1 , -1 ,
654673 -1 , -1 , -1 , -1 ,
655674 -1 , -1 , -1 ,
656- mcparticle.p (), mcparticle.pt (), MClifetime, mcparticle.phi (), mcparticle.eta (),
675+ -1 , -1 , -1 ,
676+ mcparticle.p (), mcparticle.pt (), MClifetime, mcparticle.phi (), mcparticle.eta (), mcparticle.y (),
657677 true , false , mcparticle.pdgCode (), isSurEvSelection);
658678 }
659679 }
0 commit comments