Repository navigation
Conversation
This fixes a problem in the TPC DigitContainer reset and adds a unit test. - With DigiParams.maxOrbitsToDigitize set, time bins beyond the timeframe end stay in the container after the final flush. - reset() cleared only their charges, so their MC labels were attached to digits of the next sector processed by the same lane. - reset() now deletes all remaining time bins, and the destructor frees them. - testTPCDigitContainerReset checks that no label of one sector reaches the next. https://its.cern.ch/jira/browse/O2-7310 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
sawenzel
requested review from
davidrohr,
shahor02 and
wiechula
as code owners
November 8, 2026 21:42
DigitContainer owns the time bins it deletes, so a copy would free them twice.
This branch has not been deployed
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.
When a TPC digitizer lane processes several sectors, digits of a later sector could carry MC labels of tracks from an earlier sector. With
DigiParams.maxOrbitsToDigitizeset, the final flush stops at the timeframe end and leaves the time bins beyond it in theDigitContainer.reset(), called for every new sector, cleared only their charges, so their label lists were reused by the next sector.reset()now deletes all remaining time bins. The new unit testtestTPCDigitContainerResetfails before and passes after the change.In a test with 200 pp events at 500 kHz and all 36 sectors in one lane, 2.9 % of the labels belonged to tracks without hits in the digit's sector. With one lane per sector there were none, and with this fix, still in one lane, there are none either; the digits are unchanged. The correct label was always present as well, so track-level MC labels are not expected to change.
https://its.cern.ch/jira/browse/O2-7310
Assisted by Claude Code.