@@ -171,12 +171,20 @@ struct strangeness_in_jets {
171171 registryMC.add (" K0s_generated" , " K0s_generated" , HistType::kTH2F , {multBinning, {100 , 0.0 , 10.0 , " #it{p}_{T} (GeV/#it{c})" }});
172172 registryMC.add (" Lambda_generated" , " Lambda_generated" , HistType::kTH2F , {multBinning, {100 , 0.0 , 10.0 , " #it{p}_{T} (GeV/#it{c})" }});
173173 registryMC.add (" AntiLambda_generated" , " AntiLambda_generated" , HistType::kTH2F , {multBinning, {100 , 0.0 , 10.0 , " #it{p}_{T} (GeV/#it{c})" }});
174+ registryMC.add (" XiPos_generated" , " XiPos_generated" , HistType::kTH2F , {multBinning, {100 , 0.0 , 10.0 , " #it{p}_{T} (GeV/#it{c})" }});
175+ registryMC.add (" XiNeg_generated" , " XiNeg_generated" , HistType::kTH2F , {multBinning, {100 , 0.0 , 10.0 , " #it{p}_{T} (GeV/#it{c})" }});
176+ registryMC.add (" OmegaPos_generated" , " OmegaPos_generated" , HistType::kTH2F , {multBinning, {100 , 0.0 , 10.0 , " #it{p}_{T} (GeV/#it{c})" }});
177+ registryMC.add (" OmegaNeg_generated" , " OmegaNeg_generated" , HistType::kTH2F , {multBinning, {100 , 0.0 , 10.0 , " #it{p}_{T} (GeV/#it{c})" }});
174178 registryMC.add (" K0s_reconstructed" , " K0s_reconstructed" , HistType::kTH2F , {multBinning, {100 , 0.0 , 10.0 , " #it{p}_{T} (GeV/#it{c})" }});
175179 registryMC.add (" Lambda_reconstructed" , " Lambda_reconstructed" , HistType::kTH2F , {multBinning, {100 , 0.0 , 10.0 , " #it{p}_{T} (GeV/#it{c})" }});
176180 registryMC.add (" AntiLambda_reconstructed" , " AntiLambda_reconstructed" , HistType::kTH2F , {multBinning, {100 , 0.0 , 10.0 , " #it{p}_{T} (GeV/#it{c})" }});
177181 registryMC.add (" K0s_reconstructed_incl" , " K0s_reconstructed_incl" , HistType::kTH2F , {multBinning, {100 , 0.0 , 10.0 , " #it{p}_{T} (GeV/#it{c})" }});
178182 registryMC.add (" Lambda_reconstructed_incl" , " Lambda_reconstructed_incl" , HistType::kTH2F , {multBinning, {100 , 0.0 , 10.0 , " #it{p}_{T} (GeV/#it{c})" }});
179183 registryMC.add (" AntiLambda_reconstructed_incl" , " AntiLambda_reconstructed_incl" , HistType::kTH2F , {multBinning, {100 , 0.0 , 10.0 , " #it{p}_{T} (GeV/#it{c})" }});
184+ registryMC.add (" XiPos_reconstructed" , " XiPos_reconstructed" , HistType::kTH2F , {multBinning, {100 , 0.0 , 10.0 , " #it{p}_{T} (GeV/#it{c})" }});
185+ registryMC.add (" XiNeg_reconstructed" , " XiNeg_reconstructed" , HistType::kTH2F , {multBinning, {100 , 0.0 , 10.0 , " #it{p}_{T} (GeV/#it{c})" }});
186+ registryMC.add (" OmegaPos_reconstructed" , " OmegaPos_reconstructed" , HistType::kTH2F , {multBinning, {100 , 0.0 , 10.0 , " #it{p}_{T} (GeV/#it{c})" }});
187+ registryMC.add (" OmegaNeg_reconstructed" , " OmegaNeg_reconstructed" , HistType::kTH2F , {multBinning, {100 , 0.0 , 10.0 , " #it{p}_{T} (GeV/#it{c})" }});
180188
181189 // Histograms for reweighting
182190 registryMC.add (" K0s_eta_pt_jet" , " K0s_eta_pt_jet" , HistType::kTH2F , {{100 , 0.0 , 10.0 , " #it{p}_{T} (GeV/#it{c})" }, {18 , -0.9 , 0.9 , " #eta" }});
@@ -1068,10 +1076,11 @@ struct strangeness_in_jets {
10681076 }
10691077 PROCESS_SWITCH (strangeness_in_jets, processData, " Process data" , true );
10701078
1071- Preslice<aod::V0Datas> perCollision = o2::aod::v0data::collisionId;
1079+ Preslice<aod::V0Datas> perCollisionV0 = o2::aod::v0data::collisionId;
1080+ Preslice<aod::CascDataExt> perCollisionCasc = o2::aod::cascade::collisionId;
10721081 Preslice<aod::McParticles> perMCCollision = o2::aod::mcparticle::mcCollisionId;
10731082
1074- void processMCefficiency (SimCollisions const & collisions, MCTracks const & mcTracks, aod::V0Datas const & fullV0s, aod::McCollisions const & mcCollisions, const aod::McParticles& mcParticles)
1083+ void processMCefficiency (SimCollisions const & collisions, MCTracks const & mcTracks, aod::V0Datas const & fullV0s, aod::CascDataExt const & Cascades, aod:: McCollisions const & mcCollisions, const aod::McParticles& mcParticles)
10751084 {
10761085 for (const auto & collision : collisions) {
10771086 registryQC.fill (HIST (" number_of_events_mc" ), 0.5 );
@@ -1085,7 +1094,8 @@ struct strangeness_in_jets {
10851094 registryQC.fill (HIST (" number_of_events_mc" ), 2.5 );
10861095 float multiplicity = collision.centFT0M ();
10871096
1088- auto v0s_per_coll = fullV0s.sliceBy (perCollision, collision.globalIndex ());
1097+ auto v0s_per_coll = fullV0s.sliceBy (perCollisionV0, collision.globalIndex ());
1098+ auto casc_per_coll = Cascades.sliceBy (perCollisionCasc, collision.globalIndex ());
10891099 auto mcParticles_per_coll = mcParticles.sliceBy (perMCCollision, collision.globalIndex ());
10901100
10911101 for (auto & v0 : v0s_per_coll) {
@@ -1142,6 +1152,64 @@ struct strangeness_in_jets {
11421152 }
11431153 }
11441154
1155+ // Cascades
1156+ for (auto & casc : casc_per_coll) {
1157+ auto bach = casc.bachelor_as <FullTracks>();
1158+ auto pos = casc.posTrack_as <FullTracks>();
1159+ auto neg = casc.negTrack_as <FullTracks>();
1160+
1161+ if (!bach.has_mcParticle ())
1162+ continue ;
1163+ if (!pos.has_mcParticle ())
1164+ continue ;
1165+ if (!neg.has_mcParticle ())
1166+ continue ;
1167+
1168+ auto posParticle = pos.mcParticle_as <aod::McParticles>();
1169+ auto negParticle = neg.mcParticle_as <aod::McParticles>();
1170+ auto bachParticle = bach.mcParticle_as <aod::McParticles>();
1171+ if (!posParticle.has_mothers ())
1172+ continue ;
1173+ if (!negParticle.has_mothers ())
1174+ continue ;
1175+ if (!bachParticle.has_mothers ())
1176+ continue ;
1177+
1178+ int pdg_parent (0 );
1179+ for (auto & particleMotherOfNeg : negParticle.mothers_as <aod::McParticles>()) {
1180+ for (auto & particleMotherOfPos : posParticle.mothers_as <aod::McParticles>()) {
1181+ for (auto & particleMotherOfBach : bachParticle.mothers_as <aod::McParticles>()) {
1182+ if (particleMotherOfNeg.globalIndex () != particleMotherOfPos.globalIndex ())
1183+ continue ;
1184+ if (abs (particleMotherOfNeg.pdgCode ()) != 3122 )
1185+ continue ;
1186+ if (!particleMotherOfBach.isPhysicalPrimary ())
1187+ continue ;
1188+ pdg_parent = particleMotherOfBach.pdgCode ();
1189+ }
1190+ }
1191+ }
1192+ if (pdg_parent == 0 )
1193+ continue ;
1194+
1195+ // Xi+
1196+ if (passedXiSelection (casc, pos, neg, bach, collision) && bach.sign () > 0 && pdg_parent == -3312 ) {
1197+ registryMC.fill (HIST (" XiPos_reconstructed" ), multiplicity, casc.pt ());
1198+ }
1199+ // Xi-
1200+ if (passedXiSelection (casc, pos, neg, bach, collision) && bach.sign () < 0 && pdg_parent == 3312 ) {
1201+ registryMC.fill (HIST (" XiNeg_reconstructed" ), multiplicity, casc.pt ());
1202+ }
1203+ // Omega+
1204+ if (passedOmegaSelection (casc, pos, neg, bach, collision) && bach.sign () > 0 && pdg_parent == -3334 ) {
1205+ registryMC.fill (HIST (" OmegaPos_reconstructed" ), multiplicity, casc.pt ());
1206+ }
1207+ // Omega-
1208+ if (passedOmegaSelection (casc, pos, neg, bach, collision) && bach.sign () < 0 && pdg_parent == 3334 ) {
1209+ registryMC.fill (HIST (" OmegaNeg_reconstructed" ), multiplicity, casc.pt ());
1210+ }
1211+ }
1212+
11451213 for (auto & mcParticle : mcParticles_per_coll) {
11461214
11471215 if (mcParticle.y () < yMin || mcParticle.y () > yMax)
@@ -1164,6 +1232,22 @@ struct strangeness_in_jets {
11641232 registryMC.fill (HIST (" AntiLambda_generated" ), multiplicity, mcParticle.pt ());
11651233 registryMC.fill (HIST (" AntiLambda_eta_pt_pythia" ), mcParticle.pt (), mcParticle.eta ());
11661234 }
1235+ // Xi Pos
1236+ if (mcParticle.pdgCode () == -3312 ) {
1237+ registryMC.fill (HIST (" XiPos_generated" ), multiplicity, mcParticle.pt ());
1238+ }
1239+ // Xi Neg
1240+ if (mcParticle.pdgCode () == 3312 ) {
1241+ registryMC.fill (HIST (" XiNeg_generated" ), multiplicity, mcParticle.pt ());
1242+ }
1243+ // Omega Pos
1244+ if (mcParticle.pdgCode () == -3334 ) {
1245+ registryMC.fill (HIST (" OmegaPos_generated" ), multiplicity, mcParticle.pt ());
1246+ }
1247+ // Omega Neg
1248+ if (mcParticle.pdgCode () == 3334 ) {
1249+ registryMC.fill (HIST (" OmegaNeg_generated" ), multiplicity, mcParticle.pt ());
1250+ }
11671251 }
11681252 }
11691253 }
0 commit comments