@@ -83,7 +83,7 @@ DECLARE_SOA_TABLE(HfStChBarGens, "AOD", "HFSTCHBARGEN",
8383 hf_st_charmed_baryon_gen::DecayLengthCasc,
8484 hf_st_charmed_baryon_gen::DecayLengthXYCasc);
8585
86- // CharmedBaryon -> Casc + Pion
86+ // CharmedBaryon -> Casc + Pion/Kaon
8787// -> Lambda + BachPi/BachKa
8888// -> Pr + Pi
8989namespace hf_st_charmed_baryon
@@ -93,6 +93,8 @@ DECLARE_SOA_COLUMN(MassXi, massXi, float);
9393DECLARE_SOA_COLUMN (MassLambda, massLambda, float );
9494DECLARE_SOA_COLUMN (NSigmaTpcPion, nSigmaTpcPion, float );
9595DECLARE_SOA_COLUMN (NSigmaTofPion, nSigmaTofPion, float );
96+ DECLARE_SOA_COLUMN (NSigmaTpcKaon, nSigmaTpcKaon, float );
97+ DECLARE_SOA_COLUMN (NSigmaTofKaon, nSigmaTofKaon, float );
9698DECLARE_SOA_COLUMN (NSigmaTpcV0Pr, nSigmaTpcV0Pr, float );
9799DECLARE_SOA_COLUMN (NSigmaTofV0Pr, nSigmaTofV0Pr, float );
98100DECLARE_SOA_COLUMN (NSigmaTpcV0Pi, nSigmaTpcV0Pi, float );
@@ -146,6 +148,8 @@ DECLARE_SOA_TABLE(HfStChBars, "AOD", "HFSTCHBAR",
146148 hf_st_charmed_baryon::MassLambda,
147149 hf_st_charmed_baryon::NSigmaTpcPion,
148150 hf_st_charmed_baryon::NSigmaTofPion,
151+ hf_st_charmed_baryon::NSigmaTpcKaon,
152+ hf_st_charmed_baryon::NSigmaTofKaon,
149153 hf_st_charmed_baryon::NSigmaTpcV0Pr,
150154 hf_st_charmed_baryon::NSigmaTofV0Pr,
151155 hf_st_charmed_baryon::NSigmaTpcV0Pi,
@@ -227,6 +231,7 @@ struct HfTreeCreatorOmegacSt {
227231 Configurable<float > maxNSigmaV0Pr{" maxNSigmaV0Pr" , 5 ., " Max Nsigma for proton from V0 from tracked cascade" };
228232 Configurable<float > maxNSigmaV0Pi{" maxNSigmaV0Pi" , 5 ., " Max Nsigma for pion from V0 from tracked cascade" };
229233 Configurable<float > maxNSigmaPion{" maxNSigmaPion" , 5 ., " Max Nsigma for pion to be paired with Omega" };
234+ Configurable<float > maxNSigmaKaon{" maxNSigmaKaon" , -1 ., " Max Nsigma for kaon to be paired with Omega" };
230235 Configurable<bool > bzOnly{" bzOnly" , true , " Use B_z instead of full field map" };
231236
232237 SliceCache cache;
@@ -318,6 +323,7 @@ struct HfTreeCreatorOmegacSt {
318323 const auto daughters = mcParticle.daughters_as <aod::McParticles>();
319324 if (daughters.size () == 2 ) {
320325 int idxPionDaughter = -1 ;
326+ int idxKaonDaughter = -1 ;
321327 int idxCascDaughter = -1 ;
322328 const auto daughters = mcParticle.daughters_as <aod::McParticles>();
323329 for (const auto & daughter : daughters) {
@@ -327,8 +333,11 @@ struct HfTreeCreatorOmegacSt {
327333 if (idxPionDaughter < 0 && (std::abs (daughter.pdgCode ()) == kPiPlus )) {
328334 idxPionDaughter = daughter.globalIndex ();
329335 }
336+ if (idxKaonDaughter < 0 && (std::abs (daughter.pdgCode ()) == kKPlus )) {
337+ idxKaonDaughter = daughter.globalIndex ();
338+ }
330339 }
331- if ((idxPionDaughter >= 0 ) && (idxCascDaughter >= 0 )) {
340+ if (((idxKaonDaughter >= 0 ) || ( idxPionDaughter >= 0 ) ) && (idxCascDaughter >= 0 )) {
332341 const auto & cascDaughter = mcParticles.iteratorAt (idxCascDaughter);
333342 const auto & mcColl = mcParticle.mcCollision ();
334343 std::array<double , 3 > primaryVertexPosGen = {mcColl.posX (), mcColl.posY (), mcColl.posZ ()};
@@ -509,6 +518,7 @@ struct HfTreeCreatorOmegacSt {
509518 (std::abs (v0TrackPr.tpcNSigmaPr ()) < maxNSigmaV0Pr) &&
510519 (std::abs (v0TrackPi.tpcNSigmaPi ()) < maxNSigmaV0Pi)) {
511520 std::array<double , 2 > massesOmegacDaughters{o2::constants::physics::MassOmegaMinus, o2::constants::physics::MassPiPlus};
521+ std::array<double , 2 > massesOmegacToOmegaKa{o2::constants::physics::MassOmegaMinus, o2::constants::physics::MassKPlus};
512522 std::array<double , 2 > massesXicDaughters{o2::constants::physics::MassXiMinus, o2::constants::physics::MassPiPlus};
513523 std::array<std::array<float , 3 >, 2 > momenta;
514524
@@ -541,8 +551,9 @@ struct HfTreeCreatorOmegacSt {
541551 (track.tpcNClsCrossedRows () >= 0.8 * track.tpcNClsFindable ()) &&
542552 (track.tpcChi2NCl () <= 4 .f ) &&
543553 (track.itsChi2NCl () <= 36 .f ) &&
544- (std::abs (track.tpcNSigmaPi ()) < maxNSigmaPion)) {
545- LOGF (debug, " .. combining with pion candidate %d" , track.globalIndex ());
554+ ((std::abs (track.tpcNSigmaPi ()) < maxNSigmaPion) ||
555+ (std::abs (track.tpcNSigmaKa ()) < maxNSigmaKaon))) {
556+ LOGF (debug, " .. combining with pion/kaon candidate %d" , track.globalIndex ());
546557 int trackMotherId = -1 ;
547558 if constexpr (std::is_same<TracksType, TracksExtMc>::value) {
548559 if (track.has_mcParticle () && track.mcParticle ().has_mothers ()) {
@@ -582,11 +593,13 @@ struct HfTreeCreatorOmegacSt {
582593 df2.getTrackParamAtPCA (0 ).getPxPyPzGlo (momenta[0 ]);
583594 df2.getTrackParamAtPCA (1 ).getPxPyPzGlo (momenta[1 ]);
584595 const auto massOmegaC = RecoDecay::m (momenta, massesOmegacDaughters);
596+ const auto massOmegaCToOmegaKa = RecoDecay::m (momenta, massesOmegacToOmegaKa);
585597 const auto massXiC = RecoDecay::m (momenta, massesXicDaughters);
586598 registry.fill (HIST (" hMassOmegac" ), massOmegaC);
587599 registry.fill (HIST (" hMassOmegacVsPt" ), massOmegaC, RecoDecay::pt (momenta[0 ], momenta[1 ]));
588600
589601 if ((std::abs (massOmegaC - o2::constants::physics::MassOmegaC0) < massWindowOmegaC) ||
602+ (std::abs (massOmegaCToOmegaKa - o2::constants::physics::MassOmegaC0) < massWindowOmegaC) ||
590603 (std::abs (massXiC - o2::constants::physics::MassXiC0) < massWindowXiC)) {
591604 registry.fill (HIST (" hDecayLength" ), decayLength * 1e4 );
592605 registry.fill (HIST (" hDecayLengthScaled" ), decayLength * o2::constants::physics::MassOmegaC0 / RecoDecay::p (momenta[0 ], momenta[1 ]) * 1e4 );
@@ -595,6 +608,8 @@ struct HfTreeCreatorOmegacSt {
595608 massV0,
596609 track.tpcNSigmaPi (),
597610 track.tofNSigmaPi (),
611+ track.tpcNSigmaKa (),
612+ track.tofNSigmaKa (),
598613 v0TrackPr.tpcNSigmaPr (),
599614 v0TrackPr.tofNSigmaPr (),
600615 v0TrackPi.tpcNSigmaPi (),
0 commit comments