Skip to content

[PWGCF,PWGLF] Add Sigma+ via PCM reco to Femto framework - #18510

Merged
romainschotter merged 3 commits into
AliceO2Group:masterfrom
hfribert:sigma-plus-pcm-femto
Oct 30, 2026
Merged

romainschotter merged 3 commits into
AliceO2Group:masterfrom
hfribert:sigma-plus-pcm-femto

Conversation

@hfribert

@hfribert hfribert commented Oct 29, 2026 •

Copy link
Copy Markdown
Contributor

This PR includes:

  • sigmaplusbuilder: BDT score computed with the O2Physics ML tools (MlResponse, ONNX model from CCDB) and stored
    as MlScore in LFKinkDecayTables, together with index columns (collision, proton, photon legs, McParticle in MC)
    needed by the Femto framework. New proton/photon DCAz-to-PV cuts photon DCAz cut applied before pairing and
    tighter default tilt to reduce CPU
  • Femto: SigmaPlusPcm added as a new kink particle (tables, masks, extras, MC labels, Lite tables + converter)
  • The BDT score is stored in a separate table (FSigmaPlusPcmMlScores), not in the mask or the extras. Producer does BDT preselection via KinkFilters.mlScoreMinSigmaPlusPcm. Derived-to-derived and pair task select on mask + score (SigmaPlusPcmSelection1.mlScoreMin, −1 = no cut). The extended d2d processes additionally keep the extras (BDT inputs)
  • Derived-to-derived and pair tasks support SigmaPlusPcm for data and MC

@github-actions

github-actions Bot commented Oct 29, 2026 •

Copy link
Copy Markdown

O2 linter results: ❌ 0 errors, ⚠️ 0 warnings, 🔕 9 disabled

@github-actions github-actions Bot changed the title [PWGCF, PWGLF] Add Sigma+ via PCM reco to Femto framework [PWGCF,PWGLF] Add Sigma+ via PCM reco to Femto framework Oct 29, 2026
@hfribert
hfribert marked this pull request as ready for review October 29, 2026 20:47
romainschotter
romainschotter previously approved these changes Oct 29, 2026
@alibuild

alibuild commented Oct 29, 2026 •

Copy link
Copy Markdown
Collaborator

Error while checking build/O2Physics/code-check for dee81e9 at 2026-10-30 03:19:

## sw/BUILD/O2Physics-latest/log
/sw/slc9_x86-64/O2/daily-20261029-0000-local1/include/Framework/StructToTuple.h:383:48: error: no matching function for call to 'homogeneous_apply_refs<false, FemtoProducerDerivedToDerived&, 10, o2::framework::adaptAnalysisTask<FemtoProducerDerivedToDerived>(const ConfigContext&)::<lambda(auto:196&)> >(o2::framework::adaptAnalysisTask<FemtoProducerDerivedToDerived>(const ConfigContext&)::<lambda(auto:196&)>&, FemtoProducerDerivedToDerived&)'
/sw/slc9_x86-64/O2/daily-20261029-0000-local1/include/Framework/StructToTuple.h:383:48: error: no matching function for call to 'homogeneous_apply_refs<false, FemtoProducerDerivedToDerived&, 10, o2::framework::adaptAnalysisTask<FemtoProducerDerivedToDerived>(const ConfigContext&)::<lambda(auto:197&)> >(o2::framework::adaptAnalysisTask<FemtoProducerDerivedToDerived>(const ConfigContext&)::<lambda(auto:197&)>&, FemtoProducerDerivedToDerived&)'
/sw/slc9_x86-64/O2/daily-20261029-0000-local1/include/Framework/StructToTuple.h:383:48: error: no matching function for call to 'homogeneous_apply_refs<false, FemtoProducerDerivedToDerived&, 10, o2::framework::adaptAnalysisTask<FemtoProducerDerivedToDerived>(const ConfigContext&)::<lambda(auto:198&)> >(o2::framework::adaptAnalysisTask<FemtoProducerDerivedToDerived>(const ConfigContext&)::<lambda(auto:198&)>&, FemtoProducerDerivedToDerived&)'
/sw/slc9_x86-64/O2/daily-20261029-0000-local1/include/Framework/StructToTuple.h:383:48: error: no matching function for call to 'homogeneous_apply_refs<false, FemtoProducerDerivedToDerived&, 10, o2::framework::adaptAnalysisTask<FemtoProducerDerivedToDerived>(const ConfigContext&)::<lambda(auto:199&)> >(o2::framework::adaptAnalysisTask<FemtoProducerDerivedToDerived>(const ConfigContext&)::<lambda(auto:199&)>&, FemtoProducerDerivedToDerived&)'
/sw/slc9_x86-64/O2/daily-20261029-0000-local1/include/Framework/StructToTuple.h:383:48: error: no matching function for call to 'homogeneous_apply_refs<false, FemtoProducerDerivedToDerived&, 10, o2::framework::adaptAnalysisTask<FemtoProducerDerivedToDerived>(const ConfigContext&)::<lambda(auto:200&)> >(o2::framework::adaptAnalysisTask<FemtoProducerDerivedToDerived>(const ConfigContext&)::<lambda(auto:200&)>&, FemtoProducerDerivedToDerived&)'
/sw/slc9_x86-64/O2/daily-20261029-0000-local1/include/Framework/StructToTuple.h:383:48: error: no matching function for call to 'homogeneous_apply_refs<false, FemtoProducerDerivedToDerived&, 10, o2::framework::adaptAnalysisTask<FemtoProducerDerivedToDerived>(const ConfigContext&)::<lambda(auto:201&)> >(o2::framework::adaptAnalysisTask<FemtoProducerDerivedToDerived>(const ConfigContext&)::<lambda(auto:201&)>&, FemtoProducerDerivedToDerived&)'
/sw/slc9_x86-64/O2/daily-20261029-0000-local1/include/Framework/StructToTuple.h:383:48: error: no matching function for call to 'homogeneous_apply_refs<false, FemtoProducerDerivedToDerived&, 10, o2::framework::adaptAnalysisTask<FemtoProducerDerivedToDerived>(const ConfigContext&)::<lambda(auto:202&)> >(o2::framework::adaptAnalysisTask<FemtoProducerDerivedToDerived>(const ConfigContext&)::<lambda(auto:202&)>&, FemtoProducerDerivedToDerived&)'
/sw/slc9_x86-64/O2/daily-20261029-0000-local1/include/Framework/StructToTuple.h:383:48: error: no matching function for call to 'homogeneous_apply_refs<false, FemtoProducerDerivedToDerived&, 10, o2::framework::adaptAnalysisTask<FemtoProducerDerivedToDerived>(const ConfigContext&)::<lambda(auto:203&)> >(o2::framework::adaptAnalysisTask<FemtoProducerDerivedToDerived>(const ConfigContext&)::<lambda(auto:203&)>&, FemtoProducerDerivedToDerived&)'
/sw/slc9_x86-64/O2/daily-20261029-0000-local1/include/Framework/StructToTuple.h:383:48: error: no matching function for call to 'homogeneous_apply_refs<false, FemtoProducerDerivedToDerived&, 10, o2::framework::adaptAnalysisTask<FemtoProducerDerivedToDerived>(const ConfigContext&)::<lambda(o2::framework::InitContext&)> mutable::<lambda(auto:204&)> >(o2::framework::adaptAnalysisTask<FemtoProducerDerivedToDerived>(const ConfigContext&)::<lambda(o2::framework::InitContext&)> mutable::<lambda(auto:204&)>&, FemtoProducerDerivedToDerived&)'
/sw/slc9_x86-64/O2/daily-20261029-0000-local1/include/Framework/StructToTuple.h:383:48: error: no matching function for call to 'homogeneous_apply_refs<false, FemtoProducerDerivedToDerived&, 10, o2::framework::adaptAnalysisTask<FemtoProducerDerivedToDerived>(const ConfigContext&)::<lambda(o2::framework::InitContext&)> mutable::<lambda(auto:205&&)> >(o2::framework::adaptAnalysisTask<FemtoProducerDerivedToDerived>(const ConfigContext&)::<lambda(o2::framework::InitContext&)> mutable::<lambda(auto:205&&)>&, FemtoProducerDerivedToDerived&)'
/sw/slc9_x86-64/O2/daily-20261029-0000-local1/include/Framework/StructToTuple.h:383:48: error: no matching function for call to 'homogeneous_apply_refs<false, FemtoProducerDerivedToDerived&, 10, o2::framework::adaptAnalysisTask<FemtoProducerDerivedToDerived>(const ConfigContext&)::<lambda(o2::framework::InitContext&)> mutable::<lambda(auto:206&&)> >(o2::framework::adaptAnalysisTask<FemtoProducerDerivedToDerived>(const ConfigContext&)::<lambda(o2::framework::InitContext&)> mutable::<lambda(auto:206&&)>&, FemtoProducerDerivedToDerived&)'
/sw/slc9_x86-64/O2/daily-20261029-0000-local1/include/Framework/StructToTuple.h:383:48: error: no matching function for call to 'homogeneous_apply_refs<false, FemtoProducerDerivedToDerived&, 10, o2::framework::adaptAnalysisTask<FemtoProducerDerivedToDerived>(const ConfigContext&)::<lambda(o2::framework::InitContext&)> mutable::<lambda(o2::framework::EndOfStreamContext&)>::<lambda(auto:207&)> >(o2::framework::adaptAnalysisTask<FemtoProducerDerivedToDerived>(const ConfigContext&)::<lambda(o2::framework::InitContext&)> mutable::<lambda(o2::framework::EndOfStreamContext&)>::<lambda(auto:207&)>&, FemtoProducerDerivedToDerived&)'
/sw/slc9_x86-64/O2/daily-20261029-0000-local1/include/Framework/StructToTuple.h:383:48: error: no matching function for call to 'homogeneous_apply_refs<false, FemtoProducerDerivedToDerived&, 10, o2::framework::adaptAnalysisTask<FemtoProducerDerivedToDerived>(const ConfigContext&)::<lambda(o2::framework::InitContext&)> mutable::<lambda(auto:208&)> >(o2::framework::adaptAnalysisTask<FemtoProducerDerivedToDerived>(const ConfigContext&)::<lambda(o2::framework::InitContext&)> mutable::<lambda(auto:208&)>&, FemtoProducerDerivedToDerived&)'
/sw/slc9_x86-64/O2/daily-20261029-0000-local1/include/Framework/StructToTuple.h:383:48: error: no matching function for call to 'homogeneous_apply_refs<false, FemtoProducerDerivedToDerived&, 10, o2::framework::adaptAnalysisTask<FemtoProducerDerivedToDerived>(const ConfigContext&)::<lambda(o2::framework::InitContext&)> mutable::<lambda(auto:209&)> >(o2::framework::adaptAnalysisTask<FemtoProducerDerivedToDerived>(const ConfigContext&)::<lambda(o2::framework::InitContext&)> mutable::<lambda(auto:209&)>&, FemtoProducerDerivedToDerived&)'
/sw/slc9_x86-64/O2/daily-20261029-0000-local1/include/Framework/StructToTuple.h:383:48: error: no matching function for call to 'homogeneous_apply_refs<false, FemtoProducerDerivedToDerived&, 10, o2::framework::adaptAnalysisTask<FemtoProducerDerivedToDerived>(const ConfigContext&)::<lambda(o2::framework::InitContext&)> mutable::<lambda(auto:210&)> >(o2::framework::adaptAnalysisTask<FemtoProducerDerivedToDerived>(const ConfigContext&)::<lambda(o2::framework::InitContext&)> mutable::<lambda(auto:210&)>&, FemtoProducerDerivedToDerived&)'
/sw/slc9_x86-64/O2/daily-20261029-0000-local1/include/Framework/StructToTuple.h:383:48: error: no matching function for call to 'homogeneous_apply_refs<false, FemtoProducerDerivedToDerived&, 10, o2::framework::adaptAnalysisTask<FemtoProducerDerivedToDerived>(const ConfigContext&)::<lambda(o2::framework::InitContext&)> mutable::<lambda(o2::framework::ProcessingContext&)> mutable::<lambda(auto:211&)> >(o2::framework::adaptAnalysisTask<FemtoProducerDerivedToDerived>(const ConfigContext&)::<lambda(o2::framework::InitContext&)> mutable::<lambda(o2::framework::ProcessingContext&)> mutable::<lambda(auto:211&)>&, FemtoProducerDerivedToDerived&)'
/sw/slc9_x86-64/O2/daily-20261029-0000-local1/include/Framework/StructToTuple.h:383:48: error: no matching function for call to 'homogeneous_apply_refs<false, FemtoProducerDerivedToDerived&, 10, o2::framework::adaptAnalysisTask<FemtoProducerDerivedToDerived>(const ConfigContext&)::<lambda(o2::framework::InitContext&)> mutable::<lambda(o2::framework::ProcessingContext&)> mutable::<lambda(auto:212&)> >(o2::framework::adaptAnalysisTask<FemtoProducerDerivedToDerived>(const ConfigContext&)::<lambda(o2::framework::InitContext&)> mutable::<lambda(o2::framework::ProcessingContext&)> mutable::<lambda(auto:212&)>&, FemtoProducerDerivedToDerived&)'
/sw/slc9_x86-64/O2/daily-20261029-0000-local1/include/Framework/StructToTuple.h:383:48: error: no matching function for call to 'homogeneous_apply_refs<false, FemtoProducerDerivedToDerived&, 10, o2::framework::adaptAnalysisTask<FemtoProducerDerivedToDerived>(const ConfigContext&)::<lambda(o2::framework::InitContext&)> mutable::<lambda(o2::framework::ProcessingContext&)> mutable::<lambda(auto:214&)> >(o2::framework::adaptAnalysisTask<FemtoProducerDerivedToDerived>(const ConfigContext&)::<lambda(o2::framework::InitContext&)> mutable::<lambda(o2::framework::ProcessingContext&)> mutable::<lambda(auto:214&)>&, FemtoProducerDerivedToDerived&)'
/sw/slc9_x86-64/O2/daily-20261029-0000-local1/include/Framework/StructToTuple.h:383:48: error: no matching function for call to 'homogeneous_apply_refs<false, FemtoProducerDerivedToDerived&, 10, o2::framework::adaptAnalysisTask<FemtoProducerDerivedToDerived>(const ConfigContext&)::<lambda(o2::framework::InitContext&)> mutable::<lambda(o2::framework::ProcessingContext&)> mutable::<lambda(auto:215&)> >(o2::framework::adaptAnalysisTask<FemtoProducerDerivedToDerived>(const ConfigContext&)::<lambda(o2::framework::InitContext&)> mutable::<lambda(o2::framework::ProcessingContext&)> mutable::<lambda(auto:215&)>&, FemtoProducerDerivedToDerived&)'
/sw/slc9_x86-64/O2/daily-20261029-0000-local1/include/Framework/StructToTuple.h:383:48: error: no matching function for call to 'homogeneous_apply_refs<false, FemtoProducerDerivedToDerived&, 10, o2::framework::adaptAnalysisTask<FemtoProducerDerivedToDerived>(const ConfigContext&)::<lambda(o2::framework::InitContext&)> mutable::<lambda(o2::framework::ProcessingContext&)> mutable::<lambda(auto:216&)> >(o2::framework::adaptAnalysisTask<FemtoProducerDerivedToDerived>(const ConfigContext&)::<lambda(o2::framework::InitContext&)> mutable::<lambda(o2::framework::ProcessingContext&)> mutable::<lambda(auto:216&)>&, FemtoProducerDerivedToDerived&)'
/sw/slc9_x86-64/O2/daily-20261029-0000-local1/include/Framework/StructToTuple.h:383:48: error: no matching function for call to 'homogeneous_apply_refs<false, FemtoProducerDerivedToDerived&, 10, o2::framework::adaptAnalysisTask<FemtoProducerDerivedToDerived>(const ConfigContext&)::<lambda(o2::framework::InitContext&)> mutable::<lambda(o2::framework::ProcessingContext&)> mutable::<lambda(auto:218&)> >(o2::framework::adaptAnalysisTask<FemtoProducerDerivedToDerived>(const ConfigContext&)::<lambda(o2::framework::InitContext&)> mutable::<lambda(o2::framework::ProcessingContext&)> mutable::<lambda(auto:218&)>&, FemtoProducerDerivedToDerived&)'
/sw/slc9_x86-64/O2/daily-20261029-0000-local1/include/Framework/StructToTuple.h:383:48: error: no matching function for call to 'homogeneous_apply_refs<false, FemtoProducerDerivedToDerived&, 10, o2::framework::adaptAnalysisTask<FemtoProducerDerivedToDerived>(const ConfigContext&)::<lambda(o2::framework::InitContext&)> mutable::<lambda(o2::framework::ProcessingContext&)> mutable::<lambda(auto:220&)> >(o2::framework::adaptAnalysisTask<FemtoProducerDerivedToDerived>(const ConfigContext&)::<lambda(o2::framework::InitContext&)> mutable::<lambda(o2::framework::ProcessingContext&)> mutable::<lambda(auto:220&)>&, FemtoProducerDerivedToDerived&)'
/sw/slc9_x86-64/O2/daily-20261029-0000-local1/include/Framework/StructToTuple.h:383:48: error: no matching function for call to 'homogeneous_apply_refs<false, FemtoProducerDerivedToDerived&, 10, o2::framework::adaptAnalysisTask<FemtoProducerDerivedToDerived>(const ConfigContext&)::<lambda(o2::framework::InitContext&)> mutable::<lambda(o2::framework::ProcessingContext&)> mutable::<lambda(auto:221&)> >(o2::framework::adaptAnalysisTask<FemtoProducerDerivedToDerived>(const ConfigContext&)::<lambda(o2::framework::InitContext&)> mutable::<lambda(o2::framework::ProcessingContext&)> mutable::<lambda(auto:221&)>&, FemtoProducerDerivedToDerived&)'
ninja: build stopped: subcommand failed.

Full log here.

@ariedel-cern ariedel-cern left a comment •

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Many thanks for the PR, Henrik. I just left a few small comments. Can you also check the linter warnings.
I also merged a larger PR yesterday, so maybe rebase against the latest master once before you update the PR.

Comment thread PWGCF/Femto/Core/kinkBuilder.h Resolved
Comment thread PWGCF/Femto/Core/kinkBuilder.h Outdated
}
if (mProduceSigmaPlusPcmExtras) {
kinkProducts.producedSigmaPlusPcmExtras(
sigmaPlusPcm.mlScore(),

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The ML score should be stored in a seperate table. Like this it can be easily used for selections in a pair task or similiar

Comment thread PWGCF/Femto/Core/partitions.h Resolved
o2::framework::Preslice<FemtoSigmaPlusExtended> perColSigmaPlusExtended = o2::aod::femtobase::stored::fColId;

kinkbuilder::ConfSigmaPlusPcmSelection1 sigmaPlusPcmSelection1;
o2::framework::Partition<FemtoSigmaPlusPcm> sigmaPlusPcmPartition = MAKE_SIGMAPLUSPCM_PARTITION(sigmaPlusPcmSelection1);

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Paritions cut on the ML score will come in a later update, I assume?

@hfribert
hfribert marked this pull request as draft October 30, 2026 09:25
@hfribert
hfribert force-pushed the sigma-plus-pcm-femto branch from dee81e9 to 27e64a4 Compare October 30, 2026 14:33
@hfribert
hfribert marked this pull request as ready for review October 30, 2026 14:50
@romainschotter
romainschotter merged commit 05c04d0 into AliceO2Group:master Oct 30, 2026
13 of 15 checks passed
@alibuild

Copy link
Copy Markdown
Collaborator

Error while checking build/O2Physics/code-check for 27e64a4 at 2026-10-30 17:34:

## sw/BUILD/O2Physics-code-check-latest/log
--
========== List of issues found ==========
++ echo 'To reproduce the results below locally, run: '\''aliBuild build O2Physics-code-check -e ALIBUILD_BASE_HASH=upstream/master'\''.'
To reproduce the results below locally, run: 'aliBuild build O2Physics-code-check -e ALIBUILD_BASE_HASH=upstream/master'.
++ echo 'To apply all automatic fixes, add the '\''-e O2PHYSICS_CHECKER_FIX=1'\'' option.'
To apply all automatic fixes, add the '-e O2PHYSICS_CHECKER_FIX=1' option.
++ echo 'See the documentation for more details at: <https://aliceo2group.github.io/analysis-framework/docs/tools/#running-with-o2physics-code-check>.'
See the documentation for more details at: <https://aliceo2group.github.io/analysis-framework/docs/tools/#running-with-o2physics-code-check>.
++ echo 'Found 1 errors and 1 warnings.'
Found 1 errors and 1 warnings.
++ [[ 1 -gt 0 ]]
++ cat /sw/BUILD/b19ff1e34ee2059b748fc3c7b95a178a34a9f0d3/O2Physics-code-check/errors.txt
PWGLF/TableProducer/Strangeness/sigmaplusbuilder.cxx:280:40: error: no header providing "o2::framework::LabeledArray" is directly included [misc-include-cleaner,-warnings-as-errors]
++ [[ 1 -gt 0 ]]
++ cat /sw/BUILD/b19ff1e34ee2059b748fc3c7b95a178a34a9f0d3/O2Physics-code-check/warnings.txt
PWGLF/TableProducer/Strangeness/sigmaplusbuilder.cxx:688:27: warning: do not access members of unions; consider using (boost::)variant instead [cppcoreguidelines-pro-type-union-access]
++ [[ 1 -gt 0 ]]
++ exit 1
--

Full log here.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Development

Successfully merging this pull request may close these issues.

4 participants