@@ -311,6 +311,8 @@ struct HfCorrelatorLcScHadronsSelection {
311311
312312// Lc-Hadron correlation pair builder - for real data and data-like analysis (i.e. reco-level w/o matching request via Mc truth)
313313struct HfCorrelatorLcScHadrons {
314+ Produces<aod::PtLcFromSc> entryPtLcFromSc;
315+ Produces<aod::PtLcFromScHPair> entryPtLcFromScPair;
314316 Produces<aod::LcHadronPair> entryCandHadronPair;
315317 Produces<aod::LcHadronPairY> entryCandHadronPairY;
316318 Produces<aod::LcHadronPairTrkPID> entryCandHadronPairTrkPID;
@@ -708,7 +710,7 @@ struct HfCorrelatorLcScHadrons {
708710 template <bool IsMcRec, typename TrackType, typename CandType, typename McPart>
709711 void fillCorrelationTable (bool trkPidFill, TrackType const & track, CandType const & candidate,
710712 const std::vector<float >& outMl, int binPool, int8_t correlStatus,
711- double yCand, int signCand, McPart const & mcParticles)
713+ double yCand, int signCand, float ptLcFromSc, McPart const & mcParticles)
712714 {
713715 bool isPhysicalPrimary = false ;
714716 int trackOrigin = -1 ;
@@ -723,6 +725,7 @@ struct HfCorrelatorLcScHadrons {
723725 cent);
724726 entryCandHadronPairY (track.rapidity (MassProton) - yCand);
725727 entryCandHadronMlInfo (outMl[0 ], outMl[1 ]);
728+ entryPtLcFromScPair (ptLcFromSc);
726729 entryTrackRecoInfo (track.dcaXY (), track.dcaZ (), track.tpcNClsCrossedRows ());
727730 entryPairCandCharge (signCand);
728731 if (trkPidFill) {
@@ -798,7 +801,7 @@ struct HfCorrelatorLcScHadrons {
798801 double efficiencyWeightCand = 1 .;
799802 double yCand = -999.0 ;
800803 double etaCand = -999.0 ;
801- double ptCandLc = -999.0 ;
804+ double ptScProng0 = -999.0 ;
802805 double ptCand = -999.0 ;
803806 double phiCand = -999.0 ;
804807 double massCandPKPi = -999.0 ;
@@ -833,7 +836,7 @@ struct HfCorrelatorLcScHadrons {
833836 if constexpr (IsCandSc) {
834837 chargeCand = candidate.charge ();
835838 const auto & candidateLc = candidate.template prongLc_as <CandsLcData>();
836- ptCandLc = candidateLc.pt ();
839+ ptScProng0 = candidateLc.pt ();
837840 selLcPKPi = (candidateLc.isSelLcToPKPi () >= selectionFlagLc) && (candidate.statusSpreadLcMinvPKPiFromPDG ());
838841 selLcPiKP = (candidateLc.isSelLcToPiKP () >= selectionFlagLc) && (candidate.statusSpreadLcMinvPiKPFromPDG ());
839842 if (selLcPKPi) {
@@ -865,7 +868,7 @@ struct HfCorrelatorLcScHadrons {
865868 signSoftPion = candidate.template prong1_as <aod::Tracks>().sign ();
866869 registry.fill (HIST (" hPtProng1" ), candidate.prong1 ().pt ());
867870 }
868- registry.fill (HIST (" hPtProng0" ), ptCandLc );
871+ registry.fill (HIST (" hPtProng0" ), ptScProng0 );
869872
870873 if (chargeCand == ChargeZero) {
871874 chargeCand = (signSoftPion < ChargeZero) ? AssignedChargeSc0 : -AssignedChargeSc0; // to distingush sc0 from anti-sc0, charge set to +1 and -1
@@ -923,6 +926,7 @@ struct HfCorrelatorLcScHadrons {
923926 if (!skipMixedEventTableFilling) {
924927 entryCand (candidate.phi (), etaCand, ptCand, massCandPKPi, poolBin, gCollisionId , timeStamp);
925928 entryCandCharge (chargeCand);
929+ entryPtLcFromSc (ptScProng0);
926930 }
927931 }
928932
@@ -943,6 +947,7 @@ struct HfCorrelatorLcScHadrons {
943947 if (!skipMixedEventTableFilling) {
944948 entryCand (candidate.phi (), etaCand, ptCand, massCandPiKP, poolBin, gCollisionId , timeStamp);
945949 entryCandCharge (chargeCand);
950+ entryPtLcFromSc (ptScProng0);
946951 }
947952 }
948953
@@ -999,11 +1004,11 @@ struct HfCorrelatorLcScHadrons {
9991004 }
10001005
10011006 if (selLcPKPi) {
1002- fillCorrelationTable<IsMcRec>(fillTrkPID, track, candidate, outputMlPKPi, poolBin, correlationStatus, yCand, chargeCand, *mcParticles);
1007+ fillCorrelationTable<IsMcRec>(fillTrkPID, track, candidate, outputMlPKPi, poolBin, correlationStatus, yCand, chargeCand, ptScProng0, *mcParticles);
10031008 entryCandHadronRecoInfo (massCandPKPi, false );
10041009 }
10051010 if (selLcPiKP) {
1006- fillCorrelationTable<IsMcRec>(fillTrkPID, track, candidate, outputMlPiKP, poolBin, correlationStatus, yCand, chargeCand, *mcParticles);
1011+ fillCorrelationTable<IsMcRec>(fillTrkPID, track, candidate, outputMlPiKP, poolBin, correlationStatus, yCand, chargeCand, ptScProng0, *mcParticles);
10071012 entryCandHadronRecoInfo (massCandPiKP, false );
10081013 }
10091014
@@ -1036,6 +1041,7 @@ struct HfCorrelatorLcScHadrons {
10361041
10371042 double yCand = -999 .;
10381043 double ptCand = -999 .;
1044+ double ptScProng0 = -999 .;
10391045 int8_t chargeCand = 3 ;
10401046 double massCandPKPi = -999.0 ;
10411047 double massCandPiKP = -999.0 ;
@@ -1064,6 +1070,7 @@ struct HfCorrelatorLcScHadrons {
10641070 if constexpr (IsCandSc) {
10651071 const auto & candidateLc = candidate.template prongLc_as <CandsLcData>();
10661072 chargeCand = candidate.charge ();
1073+ ptScProng0 = candidateLc.pt ();
10671074
10681075 selLcPKPi = (candidateLc.isSelLcToPKPi () >= selectionFlagLc) && (candidate.statusSpreadLcMinvPKPiFromPDG ());
10691076 selLcPiKP = (candidateLc.isSelLcToPiKP () >= selectionFlagLc) && (candidate.statusSpreadLcMinvPiKPFromPDG ());
@@ -1119,7 +1126,7 @@ struct HfCorrelatorLcScHadrons {
11191126 }
11201127
11211128 if (selLcPKPi) {
1122- fillCorrelationTable<IsMcRec>(fillTrkPID, assocParticle, candidate, outputMlPKPi, poolBin, correlationStatus, yCand, chargeCand, *mcParticles);
1129+ fillCorrelationTable<IsMcRec>(fillTrkPID, assocParticle, candidate, outputMlPKPi, poolBin, correlationStatus, yCand, chargeCand, ptScProng0, *mcParticles);
11231130 entryCandHadronRecoInfo (massCandPKPi, false );
11241131
11251132 if (isPrompt) {
@@ -1132,7 +1139,7 @@ struct HfCorrelatorLcScHadrons {
11321139 }
11331140
11341141 if (selLcPiKP) {
1135- fillCorrelationTable<IsMcRec>(fillTrkPID, assocParticle, candidate, outputMlPiKP, poolBin, correlationStatus, yCand, chargeCand, *mcParticles);
1142+ fillCorrelationTable<IsMcRec>(fillTrkPID, assocParticle, candidate, outputMlPiKP, poolBin, correlationStatus, yCand, chargeCand, ptScProng0, *mcParticles);
11361143 entryCandHadronRecoInfo (massCandPiKP, false );
11371144
11381145 if (isPrompt) {
0 commit comments