ITS: Implement early return for missing cluster data#15300
Open
ITS: Implement early return for missing cluster data#15300
Conversation
@ehellbar this fixes the crash you observe running: ``` o2-ctf-reader-workflow --max-tf 10 $GLOSET --ans-version 1.0 --ctf-dict none --delay 0 --loop 0 --ctf-input o2_ctf_run00554701_orbit0029026560_tf0000000001_epn315.root --onlyDet ITS,TPC --pipeline tpc-entropy-decoder:1 --configKeyValues "keyval.input_dir=$PWD;keyval.output_dir=/dev/null;;" | \ o2-gpu-reco-workflow $GLOSET --gpu-reconstruction "--severity info" --input-type=compressed-clusters-flat --disable-mc --output-type tracks,clusters,send-clusters-per-sector --disable-ctp-lumi-request --pipeline gpu-reconstruction:${TPC_PIPELINES:-1} --configKeyValues "keyval.input_dir=$PWD;keyval.output_dir=/dev/null;;GPU_global.deviceType=CPU;GPU_proc.debugLevel=0;GPU_proc.tpcInputWithClusterRejection=1;GPU_proc.ompThreads=-1;GPU_proc.deviceNum=-2;" | \ o2-its-reco-workflow $GLOSET --trackerCA --tracking-mode async --disable-mc --clusters-from-upstream --pipeline its-tracker:${ITS_PIPELINES:-1},its-clusterer:${ITS_PIPELINES:-1} --configKeyValues "keyval.input_dir=$PWD;keyval.output_dir=/dev/null;;ITSVertexerParam.phiCut=0.5;ITSVertexerParam.phiCut=0.2;ITSVertexerParam.clusterContributorsCut=3;ITSVertexerParam.tanLambdaCut=0.2;;;;ITSClustererParam.maxBCDiffToMaskBias=-1;MFTClustererParam.maxBCDiffToMaskBias=-1" | \ o2-dpl-run $GLOSET --run -b | tee out_ITS-pipes${ITS_PIPELINES:-1}_ccdb-fetchers${NCCDB}_TPC${TPC_PIPELINES:-1}.log ``` The underlying reason why it crashes is that since the staggering PR the ITS tracking code requires that upstream producers at least provide the correct assumed time-structure, e.g., ROFs. In the this specific case we take the clusters directly from the CTFs, e.g., skipping re-clusterization where we make sure that ROFs are correct. If there is no ITS data recorded in the TF then the ROF vector is empty hand you trigger this exception: ``` [40876:its-tracker]: [13:00:24][FATAL] Received inconsistent number of rofs on layer:-1 expected:576 received:0 ``` Now if there is no data to consume be-it no clusters / no rofs the processing is entirely skipped. One could also have made the ctf-reader ensure 'correct' ROF output but I think it is better this way, maybe...
Collaborator
|
Error while checking build/O2/fullCI_slc9 for 092403a at 2026-04-21 19:39: Full log here. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
@ehellbar this fixes the crash you observe running:
The underlying reason why it crashes is that since the staggering PR the ITS tracking code requires that upstream producers at least provide the correct assumed time-structure, e.g., ROFs. In the this specific case we take the clusters directly from the CTFs, e.g., skipping re-clusterization where we make sure that ROFs are correct. If there is no ITS data recorded in the TF then the ROF vector is empty and you trigger this exception:
Now if there is no data to consume be-it no clusters / no rofs the processing is entirely skipped. One could also have made the ctf-reader ensure 'correct' ROF output but I think it is better this way, maybe...