Skip to content

small changes in handling empty TF - #15778

Open
pillot wants to merge 3 commits into
AliceO2Group:devfrom
pillot:handle-empty-tf
Open

small changes in handling empty TF#15778
pillot wants to merge 3 commits into
AliceO2Group:devfrom
pillot:handle-empty-tf

Conversation

@pillot

@pillot pillot commented Sep 8, 2026

Copy link
Copy Markdown
Collaborator

Hi @sawenzel ,
This is a follow up on #15705 and #15714.

  • If there is no collision, we can as well skip entirely the noise-only digit generation to save time and send empty containers.
  • I think a protection was missing in the MCH and MID digit readers when using IR frames.
    Cheers,
    Philippe

lmassacr
lmassacr previously approved these changes Sep 8, 2026
@alibuild

alibuild commented Sep 8, 2026

Copy link
Copy Markdown
Collaborator

Error while checking build/O2/fullCI_slc9 for 438a57a at 2026-09-08 17:07:

## sw/BUILD/O2-sim-challenge-test-latest/log
./sim-challenge.log[ERROR] SHUTTING DOWN DUE TO SIGNALED EXIT IN COMPONENT 209
./sim.log[ERROR] SHUTTING DOWN DUE TO SIGNALED EXIT IN COMPONENT 209


## sw/BUILD/o2checkcode-latest/log
--
========== List of errors found ==========
++ GRERR=0
++ grep -v clang-diagnostic-error error-log.txt
++ grep ' error:'
++ GRERR=1
++ [[ 1 == 0 ]]
++ mkdir -p /sw/INSTALLROOT/4f394abf75c9c023ec33dd9707526410d50fdbe7/slc9_x86-64/o2checkcode/1.0-local4/etc/modulefiles
++ alibuild-generate-module
+ HAS_BIN=
+ HAS_LIB=
+ HAS_CMAKE=
+ HAS_ROOT=
+ '[' 0 '!=' 0 ']'
+ cat
+ printf 'if ![ is-loaded '\''BASE/1.0'\'' ] {\n module load BASE/1.0\n}'
+ echo 'BUILD_REQUIRES=CMake alibuild-recipe-tools defaults-release'
BUILD_REQUIRES=CMake alibuild-recipe-tools defaults-release
+ FULL_BUILD_REQUIRES='bz2 FairCMakeModules defaults-release ninja safe_int date O2-customization CMake alibuild-recipe-tools double-conversion googlebenchmark UUID Alice-GRID-Utils MPFR json-c ninja-fortran pytorch_cpuinfo Python-modules-list'
+ echo 'FULL_BUILD_REQUIRES=bz2 FairCMakeModules defaults-release ninja safe_int date O2-customization CMake alibuild-recipe-tools double-conversion googlebenchmark UUID Alice-GRID-Utils MPFR json-c ninja-fortran pytorch_cpuinfo Python-modules-list'
FULL_BUILD_REQUIRES=bz2 FairCMakeModules defaults-release ninja safe_int date O2-customization CMake alibuild-recipe-tools double-conversion googlebenchmark UUID Alice-GRID-Utils MPFR json-c ninja-fortran pytorch_cpuinfo Python-modules-list
++ env
++ cut -f1 -d=
++ grep -v '^DEFAULT_'
++ grep -v PKGREVISION
++ grep -v ALIBUILD_RECIPE_TOOLS
++ grep REVISION
++ sed -e s/_REVISION//
+ for x in $(env | cut -f1 -d= | grep -v "^DEFAULT_" | grep -v PKGREVISION | grep -v ALIBUILD_RECIPE_TOOLS | grep REVISION | sed -e 's/_REVISION//')
++ eval 'echo $LIBFFI_REVISION'
+++ echo 14
+ REVISION_VALUE=14
++ eval 'echo $LIBFFI_VERSION'
+++ echo v3.2.1-alice1
+ VERSION_VALUE=v3.2.1-alice1
++ eval 'echo $LIBFFI_ROOT'
+++ echo /sw/slc9_x86-64/libffi/v3.2.1-alice1-14
+ ROOT_PATH_VALUE=/sw/slc9_x86-64/libffi/v3.2.1-alice1-14
+ '[' -z 14 ']'
+ echo 'bz2 FairCMakeModules defaults-release ninja safe_int date O2-customization CMake alibuild-recipe-tools double-conversion googlebenchmark UUID Alice-GRID-Utils MPFR json-c ninja-fortran pytorch_cpuinfo Python-modules-list'
+ tr '[:lower:]' '[:upper:]'
+ tr - _
+ tr ' ' '\n'
[0 more errors; see full log]

Full log here.

@pillot

pillot commented Sep 9, 2026

Copy link
Copy Markdown
Collaborator Author

I don't find the exact reason for the test failure in the log but I don't think it is related to this PR.

I tried the simulation workflow from #15714, restricted to MCH and MID (--readoutDets MCH,MID) and it ran successfully until MCH-MID matching (-tt mchmidMatch). In particular the MCH digit tree now has 1 entry with empty containers for TF with no collision, as expected.

(For some reason that I could not figure out, if I try to run the full workflow until the aod, it fails on my computer at some point, even with a clean dev without this PR.)

sawenzel
sawenzel previously approved these changes Sep 9, 2026

@sawenzel sawenzel 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.

Hi @pillot,

Looks good to me — thanks. Consider adding the same protection in Detectors/ITSMFT/common/workflow/src/DigitReaderSpec.cxx in addition: in the IR-frame branch mDigROFRec[0]->front() (line 192) and ->back() (line 211) are dereferenced without an emptiness check, and line 211 is reached even when the overlap test at 192 fails. MCH and MID guard the equivalent code with !mRofs->empty().

Cheers,
Sandro

@pillot
pillot dismissed stale reviews from sawenzel and lmassacr via a8a3e38 September 9, 2026 12:28
@pillot

pillot commented Sep 9, 2026

Copy link
Copy Markdown
Collaborator Author

Hi @sawenzel ,

I added the protections against empty ROF containers for the ITSMFT digit reader as well.

Cheers,
Philippe

@pillot pillot changed the title [MCH, MID] small changes in handling empty TF small changes in handling empty TF Sep 9, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

5 participants