From 26651eb4bd538e1a679b2498acbaedfc1a4e9ba6 Mon Sep 17 00:00:00 2001 From: jinhyunni Date: Thu, 5 Feb 2026 16:42:04 +0900 Subject: [PATCH] [xic0omegac0] Minor fixes --- PWGHF/D2H/Tasks/taskXic0ToXiPi.cxx | 5 ++++ .../candidateCreatorXic0Omegac0Qa.cxx | 2 -- .../candidateSelectorToXiPiQa.cxx | 23 ++++++++++++++----- 3 files changed, 22 insertions(+), 8 deletions(-) diff --git a/PWGHF/D2H/Tasks/taskXic0ToXiPi.cxx b/PWGHF/D2H/Tasks/taskXic0ToXiPi.cxx index 510a5045916..757892834e3 100644 --- a/PWGHF/D2H/Tasks/taskXic0ToXiPi.cxx +++ b/PWGHF/D2H/Tasks/taskXic0ToXiPi.cxx @@ -175,6 +175,10 @@ struct HfTaskXic0ToXiPi { registry.get(HIST("hBdtScoreVsMassVsPtVsYVsPtPion"))->Sumw2(); registry.get(HIST("hMassVsPtVsYVsPtPion"))->Sumw2(); } + + if (yCandRecMax >= 0) { + registry.add("hNumRejCandidate_RapidityCut", "# of rejected candidate using rap cut;Rej;entries", {HistType::kTH1F, {thnAxisY}}); + } } template @@ -190,6 +194,7 @@ struct HfTaskXic0ToXiPi { yCharmBaryon = candidate.y(o2::constants::physics::MassXiC0); } if (yCandRecMax >= 0. && std::abs(yCharmBaryon) > yCandRecMax) { + registry.fill(HIST("hNumRejCandidate_RapidityCut"), yCharmBaryon); return; } diff --git a/PWGHF/TableProducer/candidateCreatorXic0Omegac0Qa.cxx b/PWGHF/TableProducer/candidateCreatorXic0Omegac0Qa.cxx index 78eb469c92c..a9d0aeb6600 100644 --- a/PWGHF/TableProducer/candidateCreatorXic0Omegac0Qa.cxx +++ b/PWGHF/TableProducer/candidateCreatorXic0Omegac0Qa.cxx @@ -540,7 +540,6 @@ struct HfCandidateCreatorXic0Omegac0Qa { false, // calculateBachelorBaryonVariable false, // useCascadeMomentumAtPV true)) { - // LOG(info) << "!This cascade cannot be rebuilt(cascade ID : " << cand.cascadeId() << "/ collision ID : " << collision.globalIndex(); continue; } else { float storeMass = (decayChannel == 0) ? straHelper.cascade.massXi : straHelper.cascade.massOmega; @@ -879,7 +878,6 @@ struct HfCandidateCreatorXic0Omegac0Qa { LFConfigs.kfUseCascadeMassConstraintFromLF, LFConfigs.kfDoDCAFitterPreMinimV0FromLF, LFConfigs.kfDoDCAFitterPreMinimCascFromLF)) { - LOG(info) << "This cascade cannot be rebuilt"; continue; } else { float storeMass = (decayChannel == 0) ? straHelper.cascade.massXi : straHelper.cascade.massOmega; diff --git a/PWGHF/TableProducer/candidateSelectorToXiPiQa.cxx b/PWGHF/TableProducer/candidateSelectorToXiPiQa.cxx index 1fadcabb6ae..4af71818b1b 100644 --- a/PWGHF/TableProducer/candidateSelectorToXiPiQa.cxx +++ b/PWGHF/TableProducer/candidateSelectorToXiPiQa.cxx @@ -150,7 +150,7 @@ struct HfCandidateSelectorToXiPiQa { TrackSelectorPr selectorProton; using TracksSel = soa::Join; - // using TracksSelLf = soa::Join; + using TracksSelLf = soa::Join; HistogramRegistry registry{"registry"}; // for QA of selections @@ -259,6 +259,7 @@ struct HfCandidateSelectorToXiPiQa { } // invarinat mass histograms + registry.add("hInvMassCharmBaryonWoPidInvMassCut", "Charm baryon invariant mass; int mass; entries", {HistType::kTH1F, {{1500, 1.5, 4.5}}}); registry.add("hInvMassCharmBaryon", "Charm baryon invariant mass; int mass; entries", {HistType::kTH1F, {{1500, 1.5, 4.5}}}); registry.add("hInvMassCharmBaryonBkg", "Charm baryon invariant mass, rejected; int mass; entries", {HistType::kTH1F, {{1500, 1.5, 4.5}}}); @@ -519,7 +520,8 @@ struct HfCandidateSelectorToXiPiQa { template void runSelection(TCandTable const& candidates, - TracksSel const&) + TracksSel const& tracks, + TracksSelLf const& lfTracks) { // looping over charm baryon candidates for (const auto& candidate : candidates) { @@ -527,10 +529,16 @@ struct HfCandidateSelectorToXiPiQa { bool resultSelections = true; // True if the candidate passes all the selections, False otherwise outputMlXic0ToXiPi.clear(); +#if 0 auto trackV0PosDau = candidate.template posTrack_as(); auto trackV0NegDau = candidate.template negTrack_as(); auto trackPiFromCasc = candidate.template bachelor_as(); auto trackPiFromCharm = candidate.template bachelorFromCharmBaryon_as(); +#endif + auto trackV0PosDau = lfTracks.rawIteratorAt(candidate.posTrackId()); + auto trackV0NegDau = lfTracks.rawIteratorAt(candidate.negTrackId()); + auto trackPiFromCasc = lfTracks.rawIteratorAt(candidate.bachelorId()); + auto trackPiFromCharm = tracks.rawIteratorAt(candidate.bachelorFromCharmBaryonId()); auto trackPiFromLam = trackV0NegDau; auto trackPrFromLam = trackV0PosDau; @@ -724,6 +732,9 @@ struct HfCandidateSelectorToXiPiQa { } // Fill in invariant mass histogram + if (resultSelections) { + registry.fill(HIST("hInvMassCharmBaryonWoPidInvMassCut"), invMassCharmBaryon); + } if (statusPidLambda && statusPidCascade && statusPidCharmBaryon && statusInvMassLambda && statusInvMassCascade && statusInvMassCharmBaryon && resultSelections) { registry.fill(HIST("hInvMassCharmBaryon"), invMassCharmBaryon); } else { @@ -736,18 +747,18 @@ struct HfCandidateSelectorToXiPiQa { /////////////////////////////////// /// Process with DCAFitter // /////////////////////////////////// - void processSelectionDCAFitter(aod::HfCandToXiPi const& candidates, TracksSel const& tracks) + void processSelectionDCAFitter(aod::HfCandToXiPi const& candidates, TracksSel const& tracks, TracksSelLf const& lfTracks) { - runSelection(candidates, tracks); + runSelection(candidates, tracks, lfTracks); } PROCESS_SWITCH(HfCandidateSelectorToXiPiQa, processSelectionDCAFitter, "Xic0 candidate selection with DCAFitter output", true); //////////////////////////////////// /// Process with KFParticle // //////////////////////////////////// - void processSelectionKFParticle(aod::HfCandToXiPiKf const& candidates, TracksSel const& tracks) + void processSelectionKFParticle(aod::HfCandToXiPiKf const& candidates, TracksSel const& tracks, TracksSelLf const& lfTracks) { - runSelection(candidates, tracks); + runSelection(candidates, tracks, lfTracks); } PROCESS_SWITCH(HfCandidateSelectorToXiPiQa, processSelectionKFParticle, "Xic0 candidate selection with KFParticle output", false);