@@ -1811,6 +1811,48 @@ struct Derivedupcanalysis {
18111811 histos.fill (HIST (kParticlenames [2 ]) + HIST (" /mc/h6dGen" ), centrality, nTracksGlobal, mcCollision.multMCNParticlesEta10 (), pTmc, static_cast <int >(upcCuts.genGapSide ), ymc);
18121812 }
18131813 } // V0 end
1814+
1815+ // Cascade start
1816+ for (auto const & cascMC : CascMCCores) {
1817+ // Consider only primaries
1818+ if (!cascMC.has_straMCCollision () || !cascMC.isPhysicalPrimary ())
1819+ continue ;
1820+ // Kinematics (|y| < rapidityCut)
1821+ float pTmc = cascMC.ptMC ();
1822+ float ymc = 1e3 ;
1823+ if (std::abs (cascMC.pdgCode ()) == 3312 )
1824+ ymc = RecoDecay::y (std::array{cascMC.pxMC (), cascMC.pyMC (), cascMC.pzMC ()}, o2::constants::physics::MassXiMinus);
1825+ else if (std::abs (cascMC.pdgCode ()) == 3334 )
1826+ ymc = RecoDecay::y (std::array{cascMC.pxMC (), cascMC.pyMC (), cascMC.pzMC ()}, o2::constants::physics::MassOmegaMinus);
1827+ if (std::abs (ymc) > rapidityCut)
1828+ continue ;
1829+
1830+ auto mcCollision = cascMC.straMCCollision_as <StraMCCollisionsFull>(); // take gen. collision
1831+ if (std::abs (mcCollision.posZ ()) > 10 .f )
1832+ continue ;
1833+
1834+ float centrality = -1 .f ;
1835+ int nTracksGlobal = -1 ;
1836+ if (listBestCollisionIdx[mcCollision.globalIndex ()] > -1 ) {
1837+ auto collision = collisions.iteratorAt (listBestCollisionIdx[mcCollision.globalIndex ()]);
1838+ centrality = collision.centFT0C ();
1839+ nTracksGlobal = collision.multNTracksGlobal ();
1840+ }
1841+
1842+ // Fill histograms
1843+ if (cascMC.pdgCode () == 3312 ) {
1844+ histos.fill (HIST (kParticlenames [3 ]) + HIST (" /mc/h6dGen" ), centrality, nTracksGlobal, mcCollision.multMCNParticlesEta10 (), pTmc, static_cast <int >(upcCuts.genGapSide ), ymc);
1845+ }
1846+ if (cascMC.pdgCode () == -3312 ) {
1847+ histos.fill (HIST (kParticlenames [4 ]) + HIST (" /mc/h6dGen" ), centrality, nTracksGlobal, mcCollision.multMCNParticlesEta10 (), pTmc, static_cast <int >(upcCuts.genGapSide ), ymc);
1848+ }
1849+ if (cascMC.pdgCode () == 3334 ) {
1850+ histos.fill (HIST (kParticlenames [5 ]) + HIST (" /mc/h6dGen" ), centrality, nTracksGlobal, mcCollision.multMCNParticlesEta10 (), pTmc, static_cast <int >(upcCuts.genGapSide ), ymc);
1851+ }
1852+ if (cascMC.pdgCode () == -3334 ) {
1853+ histos.fill (HIST (kParticlenames [6 ]) + HIST (" /mc/h6dGen" ), centrality, nTracksGlobal, mcCollision.multMCNParticlesEta10 (), pTmc, static_cast <int >(upcCuts.genGapSide ), ymc);
1854+ }
1855+ } // Cascade end
18141856 }
18151857
18161858 PROCESS_SWITCH (Derivedupcanalysis, processV0s, " Process V0s" , true );
0 commit comments