Skip to content
17 changes: 10 additions & 7 deletions PWGHF/HFC/DataModel/CorrelationTables.h
Original file line number Diff line number Diff line change
Expand Up @@ -232,14 +232,15 @@ namespace hf_correlation_ds_hadron
{
DECLARE_SOA_COLUMN(DeltaPhi, deltaPhi, float); //! DeltaPhi between Ds and Hadrons
DECLARE_SOA_COLUMN(DeltaEta, deltaEta, float); //! DeltaEta between Ds and Hadrons
DECLARE_SOA_COLUMN(PtD, ptD, float); //! Transverse momentum of Ds
DECLARE_SOA_COLUMN(PtHadron, ptHadron, float); //! Transverse momentum of Hadron
DECLARE_SOA_COLUMN(SignedPtD, signedPtD, float); //! Transverse momentum of Ds
DECLARE_SOA_COLUMN(SignedPtHadron, signedPtHadron, float); //! Transverse momentum of Hadron
DECLARE_SOA_COLUMN(MD, mD, float); //! Invariant mass of Ds
DECLARE_SOA_COLUMN(MlScoreBkg, mlScoreBkg, float); //! ML background score for Ds selection
DECLARE_SOA_COLUMN(MlScorePrompt, mlScorePrompt, float); //! ML prompt score for Ds selection
DECLARE_SOA_COLUMN(TrackDcaXY, trackDcaXY, float); //! DCA xy of the track
DECLARE_SOA_COLUMN(TrackDcaZ, trackDcaZ, float); //! DCA z of the track
DECLARE_SOA_COLUMN(PoolBin, poolBin, int); //! Pool Bin for the MixedEvent
DECLARE_SOA_COLUMN(NumPvContrib, numPvContrib, uint16_t); //! number PV contributors
DECLARE_SOA_COLUMN(TrackTPCNClsCrossedRows, trackTPCNClsCrossedRows, int); //! Number of crossed TPC Rows
DECLARE_SOA_COLUMN(TrackOrigin, trackOrigin, int); //! Number of crossed TPC Rows
DECLARE_SOA_COLUMN(IsSignal, isSignal, bool); //! Used in MC-Rec, Ds Signal
Expand All @@ -251,9 +252,10 @@ DECLARE_SOA_COLUMN(IsPhysicalPrimary, isPhysicalPrimary, bool); //! U
DECLARE_SOA_TABLE(DsHadronPair, "AOD", "DSHPAIR", //! Ds-Hadrons pairs Information
aod::hf_correlation_ds_hadron::DeltaPhi,
aod::hf_correlation_ds_hadron::DeltaEta,
aod::hf_correlation_ds_hadron::PtD,
aod::hf_correlation_ds_hadron::PtHadron,
aod::hf_correlation_ds_hadron::PoolBin);
aod::hf_correlation_ds_hadron::SignedPtD,
aod::hf_correlation_ds_hadron::SignedPtHadron,
aod::hf_correlation_ds_hadron::PoolBin,
aod::hf_correlation_ds_hadron::NumPvContrib);

DECLARE_SOA_TABLE(DsHadronRecoInfo, "AOD", "DSHRECOINFO", //! Ds-Hadrons pairs Reconstructed Information
aod::hf_correlation_ds_hadron::MD,
Expand All @@ -271,9 +273,10 @@ DECLARE_SOA_TABLE(DsHadronMlInfo, "AOD", "DSHMLINFO", //! Ds-Hadrons pairs Machi

DECLARE_SOA_TABLE(DsCandRecoInfo, "AOD", "DSCANDRECOINFO", //! Ds candidates Reconstructed Information
aod::hf_correlation_ds_hadron::MD,
aod::hf_correlation_ds_hadron::PtD,
aod::hf_correlation_ds_hadron::SignedPtD,
aod::hf_correlation_ds_hadron::MlScorePrompt,
aod::hf_correlation_ds_hadron::MlScoreBkg);
aod::hf_correlation_ds_hadron::MlScoreBkg,
aod::hf_correlation_ds_hadron::NumPvContrib);

DECLARE_SOA_TABLE(DsCandGenInfo, "AOD", "DSCANDGENOINFO", //! Ds candidates Generated Information
aod::hf_correlation_ds_hadron::IsPrompt);
Expand Down
48 changes: 29 additions & 19 deletions PWGHF/HFC/TableProducer/correlatorDsHadrons.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -216,11 +216,11 @@ struct HfCorrelatorDsHadrons {
using SelCollisionsWithDs = soa::Filtered<soa::Join<aod::Collisions, aod::Mults, aod::EvSels, aod::DmesonSelection>>; // collisionFilter applied
// using SelCollisionsWithDsWithMc = soa::Filtered<soa::Join<aod::Collisions, aod::Mults, aod::EvSels, aod::DmesonSelection, aod::McCollisionLabels>>; // collisionFilter applied
using SelCollisionsMc = soa::Join<aod::McCollisions, aod::MultsExtraMC>;
using CandDsData = soa::Filtered<soa::Join<aod::HfCand3Prong, aod::HfSelDsToKKPi, aod::HfMlDsToKKPi>>; // flagDsFilter applied
using CandDsMcReco = soa::Filtered<soa::Join<aod::HfCand3Prong, aod::HfSelDsToKKPi, aod::HfMlDsToKKPi, aod::HfCand3ProngMcRec>>; // flagDsFilter applied
using CandDsMcGen = soa::Join<aod::McParticles, aod::HfCand3ProngMcGen>; // flagDsFilter applied
using MyTracksData = soa::Filtered<soa::Join<aod::TracksWDca, aod::TrackSelection, aod::TracksExtra>>; // trackFilter applied
using TracksWithMc = soa::Filtered<soa::Join<aod::TracksWDca, aod::TrackSelection, aod::TracksExtra, o2::aod::McTrackLabels>>; // trackFilter applied
using CandDsData = soa::Filtered<soa::Join<aod::HfCand3Prong, aod::HfSelDsToKKPi, aod::HfMlDsToKKPi>>; // flagDsFilter applied
using CandDsMcReco = soa::Filtered<soa::Join<aod::HfCand3Prong, aod::HfSelDsToKKPi, aod::HfMlDsToKKPi, aod::HfCand3ProngMcRec>>; // flagDsFilter applied
using CandDsMcGen = soa::Join<aod::McParticles, aod::HfCand3ProngMcGen>; // flagDsFilter applied
using MyTracksData = soa::Filtered<soa::Join<aod::TracksWDca, aod::TrackSelection, aod::TracksExtra, aod::pidTPCFullPi, aod::pidTPCFullKa, aod::pidTPCFullPr, aod::pidTOFFullPi, aod::pidTOFFullKa, aod::pidTOFFullPr>>; // trackFilter applied
using TracksWithMc = soa::Filtered<soa::Join<aod::TracksWDca, aod::TrackSelection, aod::TracksExtra, o2::aod::McTrackLabels, aod::pidTPCFullPi, aod::pidTPCFullKa, aod::pidTPCFullPr, aod::pidTOFFullPi, aod::pidTOFFullKa, aod::pidTOFFullPr>>; // trackFilter applied

Filter collisionFilter = aod::hf_selection_dmeson_collision::dmesonSel == true;
Filter flagDsFilter = ((o2::aod::hf_track_index::hfflag & static_cast<uint8_t>(1 << aod::hf_cand_3prong::DecayType::DsToKKPi)) != static_cast<uint8_t>(0)) && (aod::hf_sel_candidate_ds::isSelDsToKKPi >= selectionFlagDs || aod::hf_sel_candidate_ds::isSelDsToPiKK >= selectionFlagDs);
Expand Down Expand Up @@ -430,13 +430,13 @@ struct HfCorrelatorDsHadrons {
for (unsigned int iclass = 0; iclass < classMl->size(); iclass++) {
outputMl[iclass] = candidate.mlProbDsToKKPi()[classMl->at(iclass)];
}
entryDsCandRecoInfo(hfHelper.invMassDsToKKPi(candidate), candidate.pt(), outputMl[0], outputMl[2]);
entryDsCandRecoInfo(hfHelper.invMassDsToKKPi(candidate), candidate.pt(), outputMl[0], outputMl[2], collision.numContrib());
} else if (candidate.isSelDsToPiKK() >= selectionFlagDs) {
fillHistoPiKK(candidate, efficiencyWeightD);
for (unsigned int iclass = 0; iclass < classMl->size(); iclass++) {
outputMl[iclass] = candidate.mlProbDsToPiKK()[classMl->at(iclass)];
}
entryDsCandRecoInfo(hfHelper.invMassDsToPiKK(candidate), candidate.pt(), outputMl[0], outputMl[2]);
entryDsCandRecoInfo(hfHelper.invMassDsToPiKK(candidate), candidate.pt(), outputMl[0], outputMl[2], collision.numContrib());
}
if (candidate.isSelDsToKKPi() >= selectionFlagDs && candidate.isSelDsToPiKK() >= selectionFlagDs) {
registry.fill(HIST("hCountSelectionStatusDsToKKPiAndToPiKK"), 0.);
Expand All @@ -459,7 +459,8 @@ struct HfCorrelatorDsHadrons {
track.eta() - candidate.eta(),
candidate.pt(),
track.pt(),
poolBin);
poolBin,
collision.numContrib());
entryDsHadronRecoInfo(hfHelper.invMassDsToKKPi(candidate), false, false);
// entryDsHadronGenInfo(false, false, 0);
entryDsHadronMlInfo(outputMl[0], outputMl[2]);
Expand All @@ -469,7 +470,8 @@ struct HfCorrelatorDsHadrons {
track.eta() - candidate.eta(),
candidate.pt(),
track.pt(),
poolBin);
poolBin,
collision.numContrib());
entryDsHadronRecoInfo(hfHelper.invMassDsToPiKK(candidate), false, false);
// entryDsHadronGenInfo(false, false, 0);
entryDsHadronMlInfo(outputMl[0], outputMl[2]);
Expand Down Expand Up @@ -530,7 +532,7 @@ struct HfCorrelatorDsHadrons {
registry.fill(HIST("hMassDsMcRecSig"), hfHelper.invMassDsToKKPi(candidate), candidate.pt(), efficiencyWeightD);
registry.fill(HIST("hMassDsVsPtMcRec"), hfHelper.invMassDsToKKPi(candidate), candidate.pt(), efficiencyWeightD);
registry.fill(HIST("hSelectionStatusDsToKKPiMcRec"), candidate.isSelDsToKKPi());
entryDsCandRecoInfo(hfHelper.invMassDsToKKPi(candidate), candidate.pt(), outputMl[0], outputMl[2]);
entryDsCandRecoInfo(hfHelper.invMassDsToKKPi(candidate), candidate.pt(), outputMl[0], outputMl[2], collision.numContrib());
entryDsCandGenInfo(isDsPrompt);
} else if (candidate.isSelDsToPiKK() >= selectionFlagDs) {
for (unsigned int iclass = 0; iclass < classMl->size(); iclass++) {
Expand All @@ -540,7 +542,7 @@ struct HfCorrelatorDsHadrons {
registry.fill(HIST("hMassDsMcRecSig"), hfHelper.invMassDsToPiKK(candidate), candidate.pt(), efficiencyWeightD);
registry.fill(HIST("hMassDsVsPtMcRec"), hfHelper.invMassDsToPiKK(candidate), candidate.pt(), efficiencyWeightD);
registry.fill(HIST("hSelectionStatusDsToPiKKMcRec"), candidate.isSelDsToPiKK());
entryDsCandRecoInfo(hfHelper.invMassDsToPiKK(candidate), candidate.pt(), outputMl[0], outputMl[2]);
entryDsCandRecoInfo(hfHelper.invMassDsToPiKK(candidate), candidate.pt(), outputMl[0], outputMl[2], collision.numContrib());
entryDsCandGenInfo(isDsPrompt);
}
} else {
Expand Down Expand Up @@ -582,7 +584,8 @@ struct HfCorrelatorDsHadrons {
track.eta() - candidate.eta(),
candidate.pt(),
track.pt(),
poolBin);
poolBin,
collision.numContrib());
entryDsHadronRecoInfo(hfHelper.invMassDsToKKPi(candidate), isDsSignal, isDecayChan);
entryDsHadronMlInfo(outputMl[0], outputMl[2]);
if (track.has_mcParticle()) {
Expand All @@ -607,7 +610,8 @@ struct HfCorrelatorDsHadrons {
track.eta() - candidate.eta(),
candidate.pt(),
track.pt(),
poolBin);
poolBin,
collision.numContrib());
entryDsHadronRecoInfo(hfHelper.invMassDsToPiKK(candidate), isDsSignal, isDecayChan);
entryDsHadronMlInfo(outputMl[0], outputMl[2]);
if (track.has_mcParticle()) {
Expand Down Expand Up @@ -743,7 +747,8 @@ struct HfCorrelatorDsHadrons {
particleAssoc.eta() - particle.eta(),
particle.pt(),
particleAssoc.pt(),
poolBin);
poolBin,
0);
entryDsHadronRecoInfo(MassDS, true, isDecayChan);
entryDsHadronGenInfo(isDsPrompt, particleAssoc.isPhysicalPrimary(), trackOrigin);
}
Expand Down Expand Up @@ -847,7 +852,8 @@ struct HfCorrelatorDsHadrons {
pAssoc.eta() - cand.eta(),
cand.pt(),
pAssoc.pt(),
poolBin);
poolBin,
c1.numContrib());
entryDsHadronRecoInfo(hfHelper.invMassDsToKKPi(cand), false, false);
// entryDsHadronGenInfo(false, false, 0);
for (unsigned int iclass = 0; iclass < classMl->size(); iclass++) {
Expand All @@ -861,7 +867,8 @@ struct HfCorrelatorDsHadrons {
pAssoc.eta() - cand.eta(),
cand.pt(),
pAssoc.pt(),
poolBin);
poolBin,
c1.numContrib());
entryDsHadronRecoInfo(hfHelper.invMassDsToPiKK(cand), false, false);
// entryDsHadronGenInfo(false, false, 0);
for (unsigned int iclass = 0; iclass < classMl->size(); iclass++) {
Expand Down Expand Up @@ -937,7 +944,8 @@ struct HfCorrelatorDsHadrons {
pAssoc.eta() - candidate.eta(),
candidate.pt(),
pAssoc.pt(),
poolBin);
poolBin,
c1.numContrib());
entryDsHadronRecoInfo(hfHelper.invMassDsToKKPi(candidate), isDsSignal, isDecayChan);
entryDsHadronGenInfo(isDsPrompt, isPhysicalPrimary, trackOrigin);
for (unsigned int iclass = 0; iclass < classMl->size(); iclass++) {
Expand All @@ -950,7 +958,8 @@ struct HfCorrelatorDsHadrons {
pAssoc.eta() - candidate.eta(),
candidate.pt(),
pAssoc.pt(),
poolBin);
poolBin,
c1.numContrib());
entryDsHadronRecoInfo(hfHelper.invMassDsToPiKK(candidate), isDsSignal, isDecayChan);
entryDsHadronGenInfo(isDsPrompt, isPhysicalPrimary, trackOrigin);
for (unsigned int iclass = 0; iclass < classMl->size(); iclass++) {
Expand Down Expand Up @@ -993,7 +1002,8 @@ struct HfCorrelatorDsHadrons {
particleAssoc.eta() - candidate.eta(),
candidate.pt(),
particleAssoc.pt(),
poolBin);
poolBin,
0);
entryDsHadronRecoInfo(MassDS, true, true);
entryDsHadronGenInfo(isDsPrompt, particleAssoc.isPhysicalPrimary(), trackOrigin);
}
Expand Down
8 changes: 5 additions & 3 deletions PWGHF/HFC/TableProducer/correlatorDsHadronsReduced.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -126,7 +126,7 @@ struct HfCorrelatorDsHadronsReduced {
registry.fill(HIST("hDsPoolBin"), poolBin);
registry.fill(HIST("hPhiVsPtCand"), RecoDecay::constrainAngle(candidate.phiCand(), -PIHalf), candidate.ptCand());
registry.fill(HIST("hEtaVsPtCand"), candidate.etaCand(), candidate.ptCand());
entryDsCandRecoInfo(candidate.invMassDs(), candidate.ptCand(), candidate.bdtScorePrompt(), candidate.bdtScoreBkg());
entryDsCandRecoInfo(candidate.invMassDs(), candidate.ptCand(), candidate.bdtScorePrompt(), candidate.bdtScoreBkg(), collision.numPvContrib());
for (const auto& track : tracksThisColl) {
// Removing Ds daughters by checking track indices
if ((candidate.prong0Id() == track.originTrackId()) || (candidate.prong1Id() == track.originTrackId()) || (candidate.prong2Id() == track.originTrackId())) {
Expand All @@ -140,7 +140,8 @@ struct HfCorrelatorDsHadronsReduced {
track.etaAssocTrack() - candidate.etaCand(),
candidate.ptCand(),
track.ptAssocTrack(),
poolBin);
poolBin,
collision.numPvContrib());
entryDsHadronRecoInfo(candidate.invMassDs(), false, false);
entryDsHadronMlInfo(candidate.bdtScorePrompt(), candidate.bdtScoreBkg());
entryTrackRecoInfo(track.dcaXY(), track.dcaZ(), track.nTpcCrossedRows());
Expand Down Expand Up @@ -202,7 +203,8 @@ struct HfCorrelatorDsHadronsReduced {
pAssoc.etaAssocTrack() - cand.etaCand(),
cand.ptCand(),
pAssoc.ptAssocTrack(),
poolBin);
poolBin,
c1.numPvContrib());
entryDsHadronRecoInfo(cand.invMassDs(), false, false);
// entryDsHadronGenInfo(false, false, 0);
}
Expand Down
Loading
Loading