From d3d358db2e8d00270c25c2c6c37d0dfa1357f497 Mon Sep 17 00:00:00 2001 From: Ravindra Singh <56298081+singhra1994@users.noreply.github.com> Date: Sat, 20 Dec 2025 01:22:31 +0100 Subject: [PATCH 1/6] Add ptLcFromSc parameter to correlation table filling --- PWGHF/HFC/TableProducer/correlatorLcScHadrons.cxx | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/PWGHF/HFC/TableProducer/correlatorLcScHadrons.cxx b/PWGHF/HFC/TableProducer/correlatorLcScHadrons.cxx index 5b53c48e75a..47f4dd93db3 100644 --- a/PWGHF/HFC/TableProducer/correlatorLcScHadrons.cxx +++ b/PWGHF/HFC/TableProducer/correlatorLcScHadrons.cxx @@ -311,6 +311,8 @@ struct HfCorrelatorLcScHadronsSelection { // Lc-Hadron correlation pair builder - for real data and data-like analysis (i.e. reco-level w/o matching request via Mc truth) struct HfCorrelatorLcScHadrons { + Produces entryPtLcFromSc; + Produces entryPtLcFromScPair; Produces entryCandHadronPair; Produces entryCandHadronPairY; Produces entryCandHadronPairTrkPID; @@ -708,7 +710,7 @@ struct HfCorrelatorLcScHadrons { template void fillCorrelationTable(bool trkPidFill, TrackType const& track, CandType const& candidate, const std::vector& outMl, int binPool, int8_t correlStatus, - double yCand, int signCand, McPart const& mcParticles) + double yCand, int signCand, float ptLcFromSc, McPart const& mcParticles) { bool isPhysicalPrimary = false; int trackOrigin = -1; @@ -723,6 +725,7 @@ struct HfCorrelatorLcScHadrons { cent); entryCandHadronPairY(track.rapidity(MassProton) - yCand); entryCandHadronMlInfo(outMl[0], outMl[1]); + entryPtLcFromScPair(ptLcFromSc); entryTrackRecoInfo(track.dcaXY(), track.dcaZ(), track.tpcNClsCrossedRows()); entryPairCandCharge(signCand); if (trkPidFill) { @@ -923,6 +926,7 @@ struct HfCorrelatorLcScHadrons { if (!skipMixedEventTableFilling) { entryCand(candidate.phi(), etaCand, ptCand, massCandPKPi, poolBin, gCollisionId, timeStamp); entryCandCharge(chargeCand); + entryPtLcFromSc(ptCandLc); } } @@ -943,6 +947,7 @@ struct HfCorrelatorLcScHadrons { if (!skipMixedEventTableFilling) { entryCand(candidate.phi(), etaCand, ptCand, massCandPiKP, poolBin, gCollisionId, timeStamp); entryCandCharge(chargeCand); + entryPtLcFromSc(ptCandLc); } } @@ -999,11 +1004,11 @@ struct HfCorrelatorLcScHadrons { } if (selLcPKPi) { - fillCorrelationTable(fillTrkPID, track, candidate, outputMlPKPi, poolBin, correlationStatus, yCand, chargeCand, *mcParticles); + fillCorrelationTable(fillTrkPID, track, candidate, outputMlPKPi, poolBin, correlationStatus, yCand, chargeCand, ptCandLc, *mcParticles); entryCandHadronRecoInfo(massCandPKPi, false); } if (selLcPiKP) { - fillCorrelationTable(fillTrkPID, track, candidate, outputMlPiKP, poolBin, correlationStatus, yCand, chargeCand, *mcParticles); + fillCorrelationTable(fillTrkPID, track, candidate, outputMlPiKP, poolBin, correlationStatus, yCand, chargeCand, ptCandLc, *mcParticles); entryCandHadronRecoInfo(massCandPiKP, false); } @@ -1119,7 +1124,7 @@ struct HfCorrelatorLcScHadrons { } if (selLcPKPi) { - fillCorrelationTable(fillTrkPID, assocParticle, candidate, outputMlPKPi, poolBin, correlationStatus, yCand, chargeCand, *mcParticles); + fillCorrelationTable(fillTrkPID, assocParticle, candidate, outputMlPKPi, poolBin, correlationStatus, yCand, chargeCand, ptCandLc, *mcParticles); entryCandHadronRecoInfo(massCandPKPi, false); if (isPrompt) { @@ -1132,7 +1137,7 @@ struct HfCorrelatorLcScHadrons { } if (selLcPiKP) { - fillCorrelationTable(fillTrkPID, assocParticle, candidate, outputMlPiKP, poolBin, correlationStatus, yCand, chargeCand, *mcParticles); + fillCorrelationTable(fillTrkPID, assocParticle, candidate, outputMlPiKP, poolBin, correlationStatus, yCand, chargeCand, ptCandLc, *mcParticles); entryCandHadronRecoInfo(massCandPiKP, false); if (isPrompt) { From e2997b697e313736ff8bd688dd0f39abc1d44e0b Mon Sep 17 00:00:00 2001 From: Ravindra Singh <56298081+singhra1994@users.noreply.github.com> Date: Sat, 20 Dec 2025 01:23:16 +0100 Subject: [PATCH 2/6] Add new SOA tables for Sc to Lc correlations --- PWGHF/HFC/DataModel/CorrelationTables.h | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/PWGHF/HFC/DataModel/CorrelationTables.h b/PWGHF/HFC/DataModel/CorrelationTables.h index 69860d9d178..df0896642e4 100644 --- a/PWGHF/HFC/DataModel/CorrelationTables.h +++ b/PWGHF/HFC/DataModel/CorrelationTables.h @@ -172,6 +172,12 @@ DECLARE_SOA_COLUMN(KaNsigmTOF, kaNsigmTOF, float); //! A DECLARE_SOA_COLUMN(PiNsigmTOF, piNsigmTOF, float); //! Associated Particle TOF nSigma Pion } // namespace hf_correlation_lc_hadron +DECLARE_SOA_TABLE(PtLcFromScHPair, "AOD", "PTLCSCHPAIR", //! Sc-->Lc pT for paired Sc-proton + aod::hf_correlation_lc_hadron::PtLc); + +DECLARE_SOA_TABLE(PtLcFromSc, "AOD", "PTLCSC", //! Sc-->Lc pT + aod::hf_correlation_lc_hadron::PtLc); + DECLARE_SOA_TABLE(LcHadronPair, "AOD", "LCHPAIR", //! Lc-Hadrons pairs Informations aod::hf_correlation_lc_hadron::DeltaPhi, aod::hf_correlation_lc_hadron::DeltaEta, From 32b4f92f7d7b8768ebd50ebbcf409bdddf31720b Mon Sep 17 00:00:00 2001 From: ALICE Action Bot Date: Sat, 20 Dec 2025 00:26:07 +0000 Subject: [PATCH 3/6] Please consider the following formatting changes --- PWGHF/HFC/DataModel/CorrelationTables.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/PWGHF/HFC/DataModel/CorrelationTables.h b/PWGHF/HFC/DataModel/CorrelationTables.h index df0896642e4..c39a16ea784 100644 --- a/PWGHF/HFC/DataModel/CorrelationTables.h +++ b/PWGHF/HFC/DataModel/CorrelationTables.h @@ -175,7 +175,7 @@ DECLARE_SOA_COLUMN(PiNsigmTOF, piNsigmTOF, float); //! A DECLARE_SOA_TABLE(PtLcFromScHPair, "AOD", "PTLCSCHPAIR", //! Sc-->Lc pT for paired Sc-proton aod::hf_correlation_lc_hadron::PtLc); -DECLARE_SOA_TABLE(PtLcFromSc, "AOD", "PTLCSC", //! Sc-->Lc pT +DECLARE_SOA_TABLE(PtLcFromSc, "AOD", "PTLCSC", //! Sc-->Lc pT aod::hf_correlation_lc_hadron::PtLc); DECLARE_SOA_TABLE(LcHadronPair, "AOD", "LCHPAIR", //! Lc-Hadrons pairs Informations From d98d9d9aed2cd87f4c4d78e4fbaddf3b835d8148 Mon Sep 17 00:00:00 2001 From: Ravindra Singh <56298081+singhra1994@users.noreply.github.com> Date: Sat, 20 Dec 2025 02:17:35 +0100 Subject: [PATCH 4/6] Add ptCandLc variable in mixed-event --- PWGHF/HFC/TableProducer/correlatorLcScHadrons.cxx | 2 ++ 1 file changed, 2 insertions(+) diff --git a/PWGHF/HFC/TableProducer/correlatorLcScHadrons.cxx b/PWGHF/HFC/TableProducer/correlatorLcScHadrons.cxx index 47f4dd93db3..a23f84d47a4 100644 --- a/PWGHF/HFC/TableProducer/correlatorLcScHadrons.cxx +++ b/PWGHF/HFC/TableProducer/correlatorLcScHadrons.cxx @@ -1041,6 +1041,7 @@ struct HfCorrelatorLcScHadrons { double yCand = -999.; double ptCand = -999.; + double ptCandLc = -999.; int8_t chargeCand = 3; double massCandPKPi = -999.0; double massCandPiKP = -999.0; @@ -1069,6 +1070,7 @@ struct HfCorrelatorLcScHadrons { if constexpr (IsCandSc) { const auto& candidateLc = candidate.template prongLc_as(); chargeCand = candidate.charge(); + ptCandLc = candidateLc.pt(); selLcPKPi = (candidateLc.isSelLcToPKPi() >= selectionFlagLc) && (candidate.statusSpreadLcMinvPKPiFromPDG()); selLcPiKP = (candidateLc.isSelLcToPiKP() >= selectionFlagLc) && (candidate.statusSpreadLcMinvPiKPFromPDG()); From 4f01e7d6b59dd5f269e8224eb01e55937e366bef Mon Sep 17 00:00:00 2001 From: Ravindra Singh <56298081+singhra1994@users.noreply.github.com> Date: Mon, 22 Dec 2025 11:03:54 +0100 Subject: [PATCH 5/6] Replace ptCandLc with ptScProng0 in correlator --- .../TableProducer/correlatorLcScHadrons.cxx | 22 +++++++++---------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/PWGHF/HFC/TableProducer/correlatorLcScHadrons.cxx b/PWGHF/HFC/TableProducer/correlatorLcScHadrons.cxx index a23f84d47a4..c23a0fab5af 100644 --- a/PWGHF/HFC/TableProducer/correlatorLcScHadrons.cxx +++ b/PWGHF/HFC/TableProducer/correlatorLcScHadrons.cxx @@ -801,7 +801,7 @@ struct HfCorrelatorLcScHadrons { double efficiencyWeightCand = 1.; double yCand = -999.0; double etaCand = -999.0; - double ptCandLc = -999.0; + double ptScProng0 = -999.0; double ptCand = -999.0; double phiCand = -999.0; double massCandPKPi = -999.0; @@ -836,7 +836,7 @@ struct HfCorrelatorLcScHadrons { if constexpr (IsCandSc) { chargeCand = candidate.charge(); const auto& candidateLc = candidate.template prongLc_as(); - ptCandLc = candidateLc.pt(); + ptScProng0 = candidateLc.pt(); selLcPKPi = (candidateLc.isSelLcToPKPi() >= selectionFlagLc) && (candidate.statusSpreadLcMinvPKPiFromPDG()); selLcPiKP = (candidateLc.isSelLcToPiKP() >= selectionFlagLc) && (candidate.statusSpreadLcMinvPiKPFromPDG()); if (selLcPKPi) { @@ -868,7 +868,7 @@ struct HfCorrelatorLcScHadrons { signSoftPion = candidate.template prong1_as().sign(); registry.fill(HIST("hPtProng1"), candidate.prong1().pt()); } - registry.fill(HIST("hPtProng0"), ptCandLc); + registry.fill(HIST("hPtProng0"), ptScProng0); if (chargeCand == ChargeZero) { chargeCand = (signSoftPion < ChargeZero) ? AssignedChargeSc0 : -AssignedChargeSc0; // to distingush sc0 from anti-sc0, charge set to +1 and -1 @@ -926,7 +926,7 @@ struct HfCorrelatorLcScHadrons { if (!skipMixedEventTableFilling) { entryCand(candidate.phi(), etaCand, ptCand, massCandPKPi, poolBin, gCollisionId, timeStamp); entryCandCharge(chargeCand); - entryPtLcFromSc(ptCandLc); + entryPtLcFromSc( ptScProng0); } } @@ -947,7 +947,7 @@ struct HfCorrelatorLcScHadrons { if (!skipMixedEventTableFilling) { entryCand(candidate.phi(), etaCand, ptCand, massCandPiKP, poolBin, gCollisionId, timeStamp); entryCandCharge(chargeCand); - entryPtLcFromSc(ptCandLc); + entryPtLcFromSc( ptScProng0); } } @@ -1004,11 +1004,11 @@ struct HfCorrelatorLcScHadrons { } if (selLcPKPi) { - fillCorrelationTable(fillTrkPID, track, candidate, outputMlPKPi, poolBin, correlationStatus, yCand, chargeCand, ptCandLc, *mcParticles); + fillCorrelationTable(fillTrkPID, track, candidate, outputMlPKPi, poolBin, correlationStatus, yCand, chargeCand, ptScProng0, *mcParticles); entryCandHadronRecoInfo(massCandPKPi, false); } if (selLcPiKP) { - fillCorrelationTable(fillTrkPID, track, candidate, outputMlPiKP, poolBin, correlationStatus, yCand, chargeCand, ptCandLc, *mcParticles); + fillCorrelationTable(fillTrkPID, track, candidate, outputMlPiKP, poolBin, correlationStatus, yCand, chargeCand, ptScProng0, *mcParticles); entryCandHadronRecoInfo(massCandPiKP, false); } @@ -1041,7 +1041,7 @@ struct HfCorrelatorLcScHadrons { double yCand = -999.; double ptCand = -999.; - double ptCandLc = -999.; + double ptScProng0 = -999.; int8_t chargeCand = 3; double massCandPKPi = -999.0; double massCandPiKP = -999.0; @@ -1070,7 +1070,7 @@ struct HfCorrelatorLcScHadrons { if constexpr (IsCandSc) { const auto& candidateLc = candidate.template prongLc_as(); chargeCand = candidate.charge(); - ptCandLc = candidateLc.pt(); + ptScProng0 = candidateLc.pt(); selLcPKPi = (candidateLc.isSelLcToPKPi() >= selectionFlagLc) && (candidate.statusSpreadLcMinvPKPiFromPDG()); selLcPiKP = (candidateLc.isSelLcToPiKP() >= selectionFlagLc) && (candidate.statusSpreadLcMinvPiKPFromPDG()); @@ -1126,7 +1126,7 @@ struct HfCorrelatorLcScHadrons { } if (selLcPKPi) { - fillCorrelationTable(fillTrkPID, assocParticle, candidate, outputMlPKPi, poolBin, correlationStatus, yCand, chargeCand, ptCandLc, *mcParticles); + fillCorrelationTable(fillTrkPID, assocParticle, candidate, outputMlPKPi, poolBin, correlationStatus, yCand, chargeCand, ptScProng0, *mcParticles); entryCandHadronRecoInfo(massCandPKPi, false); if (isPrompt) { @@ -1139,7 +1139,7 @@ struct HfCorrelatorLcScHadrons { } if (selLcPiKP) { - fillCorrelationTable(fillTrkPID, assocParticle, candidate, outputMlPiKP, poolBin, correlationStatus, yCand, chargeCand, ptCandLc, *mcParticles); + fillCorrelationTable(fillTrkPID, assocParticle, candidate, outputMlPiKP, poolBin, correlationStatus, yCand, chargeCand, ptScProng0, *mcParticles); entryCandHadronRecoInfo(massCandPiKP, false); if (isPrompt) { From d9c737da5c6fe4adda417f0ff4f02ea1d3edc202 Mon Sep 17 00:00:00 2001 From: ALICE Action Bot Date: Mon, 22 Dec 2025 10:04:25 +0000 Subject: [PATCH 6/6] Please consider the following formatting changes --- .../TableProducer/correlatorLcScHadrons.cxx | 22 +++++++++---------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/PWGHF/HFC/TableProducer/correlatorLcScHadrons.cxx b/PWGHF/HFC/TableProducer/correlatorLcScHadrons.cxx index c23a0fab5af..a0dcfbd9f90 100644 --- a/PWGHF/HFC/TableProducer/correlatorLcScHadrons.cxx +++ b/PWGHF/HFC/TableProducer/correlatorLcScHadrons.cxx @@ -801,7 +801,7 @@ struct HfCorrelatorLcScHadrons { double efficiencyWeightCand = 1.; double yCand = -999.0; double etaCand = -999.0; - double ptScProng0 = -999.0; + double ptScProng0 = -999.0; double ptCand = -999.0; double phiCand = -999.0; double massCandPKPi = -999.0; @@ -836,7 +836,7 @@ struct HfCorrelatorLcScHadrons { if constexpr (IsCandSc) { chargeCand = candidate.charge(); const auto& candidateLc = candidate.template prongLc_as(); - ptScProng0 = candidateLc.pt(); + ptScProng0 = candidateLc.pt(); selLcPKPi = (candidateLc.isSelLcToPKPi() >= selectionFlagLc) && (candidate.statusSpreadLcMinvPKPiFromPDG()); selLcPiKP = (candidateLc.isSelLcToPiKP() >= selectionFlagLc) && (candidate.statusSpreadLcMinvPiKPFromPDG()); if (selLcPKPi) { @@ -868,7 +868,7 @@ struct HfCorrelatorLcScHadrons { signSoftPion = candidate.template prong1_as().sign(); registry.fill(HIST("hPtProng1"), candidate.prong1().pt()); } - registry.fill(HIST("hPtProng0"), ptScProng0); + registry.fill(HIST("hPtProng0"), ptScProng0); if (chargeCand == ChargeZero) { chargeCand = (signSoftPion < ChargeZero) ? AssignedChargeSc0 : -AssignedChargeSc0; // to distingush sc0 from anti-sc0, charge set to +1 and -1 @@ -926,7 +926,7 @@ struct HfCorrelatorLcScHadrons { if (!skipMixedEventTableFilling) { entryCand(candidate.phi(), etaCand, ptCand, massCandPKPi, poolBin, gCollisionId, timeStamp); entryCandCharge(chargeCand); - entryPtLcFromSc( ptScProng0); + entryPtLcFromSc(ptScProng0); } } @@ -947,7 +947,7 @@ struct HfCorrelatorLcScHadrons { if (!skipMixedEventTableFilling) { entryCand(candidate.phi(), etaCand, ptCand, massCandPiKP, poolBin, gCollisionId, timeStamp); entryCandCharge(chargeCand); - entryPtLcFromSc( ptScProng0); + entryPtLcFromSc(ptScProng0); } } @@ -1004,11 +1004,11 @@ struct HfCorrelatorLcScHadrons { } if (selLcPKPi) { - fillCorrelationTable(fillTrkPID, track, candidate, outputMlPKPi, poolBin, correlationStatus, yCand, chargeCand, ptScProng0, *mcParticles); + fillCorrelationTable(fillTrkPID, track, candidate, outputMlPKPi, poolBin, correlationStatus, yCand, chargeCand, ptScProng0, *mcParticles); entryCandHadronRecoInfo(massCandPKPi, false); } if (selLcPiKP) { - fillCorrelationTable(fillTrkPID, track, candidate, outputMlPiKP, poolBin, correlationStatus, yCand, chargeCand, ptScProng0, *mcParticles); + fillCorrelationTable(fillTrkPID, track, candidate, outputMlPiKP, poolBin, correlationStatus, yCand, chargeCand, ptScProng0, *mcParticles); entryCandHadronRecoInfo(massCandPiKP, false); } @@ -1041,7 +1041,7 @@ struct HfCorrelatorLcScHadrons { double yCand = -999.; double ptCand = -999.; - double ptScProng0 = -999.; + double ptScProng0 = -999.; int8_t chargeCand = 3; double massCandPKPi = -999.0; double massCandPiKP = -999.0; @@ -1070,7 +1070,7 @@ struct HfCorrelatorLcScHadrons { if constexpr (IsCandSc) { const auto& candidateLc = candidate.template prongLc_as(); chargeCand = candidate.charge(); - ptScProng0 = candidateLc.pt(); + ptScProng0 = candidateLc.pt(); selLcPKPi = (candidateLc.isSelLcToPKPi() >= selectionFlagLc) && (candidate.statusSpreadLcMinvPKPiFromPDG()); selLcPiKP = (candidateLc.isSelLcToPiKP() >= selectionFlagLc) && (candidate.statusSpreadLcMinvPiKPFromPDG()); @@ -1126,7 +1126,7 @@ struct HfCorrelatorLcScHadrons { } if (selLcPKPi) { - fillCorrelationTable(fillTrkPID, assocParticle, candidate, outputMlPKPi, poolBin, correlationStatus, yCand, chargeCand, ptScProng0, *mcParticles); + fillCorrelationTable(fillTrkPID, assocParticle, candidate, outputMlPKPi, poolBin, correlationStatus, yCand, chargeCand, ptScProng0, *mcParticles); entryCandHadronRecoInfo(massCandPKPi, false); if (isPrompt) { @@ -1139,7 +1139,7 @@ struct HfCorrelatorLcScHadrons { } if (selLcPiKP) { - fillCorrelationTable(fillTrkPID, assocParticle, candidate, outputMlPiKP, poolBin, correlationStatus, yCand, chargeCand, ptScProng0, *mcParticles); + fillCorrelationTable(fillTrkPID, assocParticle, candidate, outputMlPiKP, poolBin, correlationStatus, yCand, chargeCand, ptScProng0, *mcParticles); entryCandHadronRecoInfo(massCandPiKP, false); if (isPrompt) {