Skip to content

[PWGCF] Femto: add Lc support to the femto framework - #17424

Open
IgorPtak wants to merge 12 commits into
AliceO2Group:masterfrom
IgorPtak:femto-lc
Open

[PWGCF] Femto: add Lc support to the femto framework#17424
IgorPtak wants to merge 12 commits into
AliceO2Group:masterfrom
IgorPtak:femto-lc

Conversation

@IgorPtak

Copy link
Copy Markdown
Contributor

Adds Lc baryons as a new particle species to the unified femto framework, enabling
Lc-hadron femtoscopic correlations.

Data model - four new tables:

  • FLcs - kinematics, mass of the accepted hypothesis and the three daughter indices
  • FLcMasks - selection bitmask
  • FLcExtras - QA/debug: mass of the competing hypothesis, three-prong topological
    variables, BDT scores and the PWGHF selection flags
  • FLcLabels - MC labels

Core: charmHadronBuilder.h and charmHadronHistManager.h extended to the
three-prong topology, so both species share the same builder and histogram manager.
Lc candidates are taken from PWGHF (HfCand3Prong), with the acceptance applied as
a rapidity cut via HfHelper. Unlike D0, the sign of the stored signed pT is the
physical baryon charge, taken from the charge of the first prong - the PWGHF flags
only tell which mass assignment passed. Prongs are stored remapped onto the accepted
hypothesis, so Prong0Dau always points at the proton.

The naming of everything shared by the family was generalised from D0 to charm
hadron (ConfD0Filters -> ConfCharmHadronFilters, fillD0s -> fillCharmHadrons,
and so on). Species-level names (D0Bits, D0Selection1) are unchanged.

Tasks: the two D0 workflows now cover the whole family.

  • femto-charm-hadron-qa (was femto-d0-qa) - QA for D0 and Lc candidates
    and their daughters
  • femto-pair-track-charm-hadron (was femto-pair-track-d0) - D0-hadron and
    Lc-hadron correlations, same and mixed event

JSON prefixes changed accordingly: D0Filters -> CharmHadronFilters,
D0Tables -> CharmHadronTables.

Pairs: TrackLcPairCleaner and ClosePairRejectionTrackLc are new.

MC: Lc candidates have no direct MC label, so the three prongs are
matched to a generated Lc -> p K pi decay with RecoDecay::getMatchedMCRec.

Mass hypotheses: an Lc candidate can pass both the pKpi and the piKp hypothesis.
One row is stored per accepted hypothesis, so such a candidate appears twice, each
row with its own mass and prong assignment. CharmHadronFilters.rejectAmbiguousHypothesis allows dropping them entirely.

@github-actions

Copy link
Copy Markdown

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

Please consider the following formatting changes to AliceO2Group#17424
@alibuild

Copy link
Copy Markdown
Collaborator

Error while checking build/O2Physics/code-check for 08c0583 at 2026-08-13 00:13:

## sw/BUILD/O2Physics-code-check-latest/log
--
========== List of issues found ==========
++ echo 'Found 1 errors and 0 warnings.'
Found 1 errors and 0 warnings.
++ [[ 1 -gt 0 ]]
++ cat /sw/BUILD/70d6ebb76f93534074ea5190ca530d39b2a407a0/O2Physics-code-check/errors.txt
PWGCF/Femto/Core/charmHadronBuilder.h:26:1: error: included header CandidateReconstructionTables.h is not used directly [misc-include-cleaner,-warnings-as-errors]
++ [[ 0 -gt 0 ]]
++ [[ 1 -gt 0 ]]
++ exit 1
--

Full log here.

@alibuild

Copy link
Copy Markdown
Collaborator

Error while checking build/O2Physics/code-check for 9d8281e at 2026-08-17 08:07:

## sw/BUILD/O2Physics-latest/log
2026-08-17T08:04:03.381+0200 [8004:140645613812288] [buildboxcommon_grpcretrier.cpp:177] [ERROR] Retry limit (0) exceeded for "FindMissingBlobs()", last gRPC error was [14: Socket closed]
2026-08-17T08:04:03.382+0200 [8485:139710870567488] [buildboxcommon_grpcretrier.cpp:177] [ERROR] Retry limit (0) exceeded for "ByteStream.Read()", last gRPC error was [14: Socket closed]
2026-08-17T08:04:03.431+0200 [8485:139710870567488] [executioncontext.cpp:739] [ERROR] Failed to download output blob 936c7f3e3301bf5759dbbd05dcb32c4f09eb2d0d085e08402dc9f4c44f2f53ee: 14: Socket closed
2026-08-17T08:04:03.381+0200 [8446:140281502157376] [buildboxcommon_grpcretrier.cpp:177] [ERROR] Retry limit (0) exceeded for "BatchReadBlobs()", last gRPC error was [14: Socket closed]
2026-08-17T08:04:03.432+0200 [8446:140281502157376] [buildboxcommon_grpcretrier.cpp:177] [ERROR] Retry limit (0) exceeded for "ByteStream.Read()", last gRPC error was [14: failed to connect to all addresses; last error: UNKNOWN: ipv4:127.0.0.1:8980: Failed to connect to remote host: Connection refused]
2026-08-17T08:04:03.432+0200 [8446:140281502157376] [executioncontext.cpp:739] [ERROR] Failed to download output blob ed93b3c342a0ee6babf87b55e047f31bf22d7b423ee80e1ee5041c7f618148f0: 14: failed to connect to all addresses; last error: UNKNOWN: ipv4:127.0.0.1:8980: Failed to connect to remote host: Connection refused
2026-08-17T08:04:03.381+0200 [8418:140507849878080] [buildboxcommon_grpcretrier.cpp:177] [ERROR] Retry limit (0) exceeded for "ByteStream.Read()", last gRPC error was [14: Socket closed]
2026-08-17T08:04:03.431+0200 [8418:140507849878080] [executioncontext.cpp:739] [ERROR] Failed to download output blob 074c235c4548b1f0e0fe0140b4a83339a6db628116c67e63873b011d95d7d0a7: 14: Socket closed
2026-08-17T08:04:03.381+0200 [8666:139647920163392] [buildboxcommon_grpcretrier.cpp:177] [ERROR] Retry limit (0) exceeded for "BatchReadBlobs()", last gRPC error was [14: Socket closed]
2026-08-17T08:04:03.432+0200 [8666:139647920163392] [buildboxcommon_grpcretrier.cpp:177] [ERROR] Retry limit (0) exceeded for "ByteStream.Read()", last gRPC error was [14: failed to connect to all addresses; last error: UNKNOWN: ipv4:127.0.0.1:8980: Failed to connect to remote host: Connection refused]
2026-08-17T08:04:03.432+0200 [8666:139647920163392] [executioncontext.cpp:739] [ERROR] Failed to download output blob fcc0ea14b66971438c51a3b40132580801f9f2b5b5ebaf5642262a17887c0001: 14: failed to connect to all addresses; last error: UNKNOWN: ipv4:127.0.0.1:8980: Failed to connect to remote host: Connection refused
2026-08-17T08:04:03.381+0200 [7928:139633462377024] [buildboxcommon_grpcretrier.cpp:177] [ERROR] Retry limit (0) exceeded for "ByteStream.Read()", last gRPC error was [14: Socket closed]
2026-08-17T08:04:03.437+0200 [7928:139633462377024] [executioncontext.cpp:739] [ERROR] Failed to download output blob 7aca76c9df8c16a8934fcd93923a3e648db5f684dbe9ea28429470f648a29ee8: 14: Socket closed
2026-08-17T08:04:03.381+0200 [7906:140327594043968] [buildboxcommon_grpcretrier.cpp:177] [ERROR] Retry limit (0) exceeded for "ByteStream.Read()", last gRPC error was [14: Socket closed]
2026-08-17T08:04:03.443+0200 [7906:140327594043968] [executioncontext.cpp:739] [ERROR] Failed to download output blob d2f063868b02ad1eb8e846d34229ff1db4468024be4d2e36b064110ac8fbce86: 14: Socket closed
2026-08-17T08:04:09.594+0200 [8239:140629251492416] [buildboxcommon_grpcretrier.cpp:177] [ERROR] Retry limit (0) exceeded for "FindMissingBlobs()", last gRPC error was [14: failed to connect to all addresses; last error: UNKNOWN: ipv4:127.0.0.1:8980: Failed to connect to remote host: Connection refused]
2026-08-17T08:04:03.381+0200 [8691:139774289631808] [buildboxcommon_grpcretrier.cpp:177] [ERROR] Retry limit (0) exceeded for "ActionCache.GetActionResult()", last gRPC error was [14: Socket closed]
2026-08-17T08:04:03.431+0200 [8691:139774289631808] [executioncontext.cpp:544] [ERROR] Error while querying action cache at "http://localhost:8980": 14: Socket closed
2026-08-17T08:04:03.382+0200 [8760:139997592615488] [buildboxcommon_grpcretrier.cpp:177] [ERROR] Retry limit (0) exceeded for "ActionCache.GetActionResult()", last gRPC error was [14: failed to connect to all addresses; last error: UNAVAILABLE: ipv4:127.0.0.1:8980: recvmsg:Connection reset by peer]
2026-08-17T08:04:03.431+0200 [8760:139997592615488] [executioncontext.cpp:544] [ERROR] Error while querying action cache at "http://localhost:8980": 14: failed to connect to all addresses; last error: UNAVAILABLE: ipv4:127.0.0.1:8980: recvmsg:Connection reset by peer
2026-08-17T08:04:03.382+0200 [8844:140153684699712] [buildboxcommon_grpcretrier.cpp:177] [ERROR] Retry limit (0) exceeded for "ActionCache.GetActionResult()", last gRPC error was [14: failed to connect to all addresses; last error: UNAVAILABLE: ipv4:127.0.0.1:8980: recvmsg:Connection reset by peer]
2026-08-17T08:04:03.431+0200 [8844:140153684699712] [executioncontext.cpp:544] [ERROR] Error while querying action cache at "http://localhost:8980": 14: failed to connect to all addresses; last error: UNAVAILABLE: ipv4:127.0.0.1:8980: recvmsg:Connection reset by peer
2026-08-17T08:04:03.381+0200 [8821:140257534519872] [buildboxcommon_grpcretrier.cpp:177] [ERROR] Retry limit (0) exceeded for "ActionCache.GetActionResult()", last gRPC error was [14: recvmsg:Connection reset by peer]
2026-08-17T08:04:03.431+0200 [8821:140257534519872] [executioncontext.cpp:544] [ERROR] Error while querying action cache at "http://localhost:8980": 14: recvmsg:Connection reset by peer
2026-08-17T08:04:03.724+0200 [8866:140070737713728] [buildboxcommon_grpcretrier.cpp:177] [ERROR] Retry limit (0) exceeded for "ActionCache.GetActionResult()", last gRPC error was [14: failed to connect to all addresses; last error: UNKNOWN: ipv4:127.0.0.1:8980: Failed to connect to remote host: Connection refused]
2026-08-17T08:04:03.724+0200 [8866:140070737713728] [executioncontext.cpp:544] [ERROR] Error while querying action cache at "http://localhost:8980": 14: failed to connect to all addresses; last error: UNKNOWN: ipv4:127.0.0.1:8980: Failed to connect to remote host: Connection refused
2026-08-17T08:04:03.381+0200 [8712:139866397747776] [buildboxcommon_grpcretrier.cpp:177] [ERROR] Retry limit (0) exceeded for "ActionCache.GetActionResult()", last gRPC error was [14: Socket closed]
2026-08-17T08:04:03.431+0200 [8712:139866397747776] [executioncontext.cpp:544] [ERROR] Error while querying action cache at "http://localhost:8980": 14: Socket closed
2026-08-17T08:04:03.381+0200 [8759:139654063684160] [buildboxcommon_grpcretrier.cpp:177] [ERROR] Retry limit (0) exceeded for "ActionCache.GetActionResult()", last gRPC error was [14: recvmsg:Connection reset by peer]
2026-08-17T08:04:03.431+0200 [8759:139654063684160] [executioncontext.cpp:544] [ERROR] Error while querying action cache at "http://localhost:8980": 14: recvmsg:Connection reset by peer
2026-08-17T08:04:03.381+0200 [8326:140102671342144] [buildboxcommon_grpcretrier.cpp:177] [ERROR] Retry limit (0) exceeded for "ActionCache.GetActionResult()", last gRPC error was [14: Socket closed]
2026-08-17T08:04:03.431+0200 [8326:140102671342144] [executioncontext.cpp:544] [ERROR] Error while querying action cache at "http://localhost:8980": 14: Socket closed
2026-08-17T08:04:03.382+0200 [8374:140467423840832] [buildboxcommon_grpcretrier.cpp:177] [ERROR] Retry limit (0) exceeded for "ActionCache.GetActionResult()", last gRPC error was [14: Socket closed]
2026-08-17T08:04:03.431+0200 [8374:140467423840832] [executioncontext.cpp:544] [ERROR] Error while querying action cache at "http://localhost:8980": 14: Socket closed
2026-08-17T08:04:03.381+0200 [8738:140677719444032] [buildboxcommon_grpcretrier.cpp:177] [ERROR] Retry limit (0) exceeded for "ActionCache.GetActionResult()", last gRPC error was [14: Socket closed]
2026-08-17T08:04:03.431+0200 [8738:140677719444032] [executioncontext.cpp:544] [ERROR] Error while querying action cache at "http://localhost:8980": 14: Socket closed
2026-08-17T08:04:03.381+0200 [8292:139754738973248] [buildboxcommon_grpcretrier.cpp:177] [ERROR] Retry limit (0) exceeded for "ActionCache.GetActionResult()", last gRPC error was [14: Socket closed]
2026-08-17T08:04:03.431+0200 [8292:139754738973248] [executioncontext.cpp:544] [ERROR] Error while querying action cache at "http://localhost:8980": 14: Socket closed
2026-08-17T08:04:03.381+0200 [8761:140459444304448] [buildboxcommon_grpcretrier.cpp:177] [ERROR] Retry limit (0) exceeded for "ActionCache.GetActionResult()", last gRPC error was [14: Socket closed]
2026-08-17T08:04:03.431+0200 [8761:140459444304448] [executioncontext.cpp:544] [ERROR] Error while querying action cache at "http://localhost:8980": 14: Socket closed
2026-08-17T08:04:03.381+0200 [8291:140466142849600] [buildboxcommon_grpcretrier.cpp:177] [ERROR] Retry limit (0) exceeded for "ActionCache.GetActionResult()", last gRPC error was [14: Socket closed]
2026-08-17T08:04:03.431+0200 [8291:140466142849600] [executioncontext.cpp:544] [ERROR] Error while querying action cache at "http://localhost:8980": 14: Socket closed
ninja: build stopped: subcommand failed.

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.

2 participants