Skip to content

fix(traccc): keep the seed covariance of the unmeasured coordinate of 1D measurements - #6110

Open
jburzy wants to merge 2 commits into
acts-project:mainfrom
jburzy:jburzyns-traccc-seed-covariance-1d
Open

jburzy wants to merge 2 commits into
acts-project:mainfrom
jburzy:jburzyns-traccc-seed-covariance-1d

Conversation

@jburzy

@jburzy jburzy commented Sep 17, 2026

Copy link
Copy Markdown
Contributor

When the CKF processes the measurement of the seed surface it skips the Kalman update and sets the position covariance of the track parameters from the measurement covariance:

const auto V = measurement_selector::calibrated_measurement_covariance<algebra_t, 2>(meas, ...);
cov(e_bound_loc0, e_bound_loc0) = V(0, 0);
cov(e_bound_loc1, e_bound_loc1) = V(1, 1);

For a 1-dimensional measurement calibrated_measurement_covariance fills the unmeasured element V(1, 1) with std::numeric_limits<scalar>::max(), and this value is then copied into the track covariance. The Kalman algebra then overflows in single precision on the next surface with the covariance becoming negative/infinite and every subsequent measurement gets χ² ≈ 0, so all candidates are accepted regardless of their residual.

This affects any track whose seed measurement is 1D, i.e. strip-seeded tracking. Pixel-seeded tracks (2D seed measurement) should be unchanged.

The fix adds measurement_selector::set_seed_measurement_covariance(), which assigns the measurement variance only to the coordinate(s) given by the measurement subspace and leaves the covariance of an unmeasured coordinate at the value it has from the seed parameter estimation.

@jburzy
jburzy requested a review from stephenswat as a code owner September 17, 2026 15:24
@jburzy jburzy changed the title traccc: keep the seed covariance of the unmeasured coordinate of 1D measurements fix(traccc): keep the seed covariance of the unmeasured coordinate of 1D measurements Sep 17, 2026
@github-actions github-actions Bot added this to the next milestone Sep 17, 2026
@github-actions

github-actions Bot commented Sep 17, 2026

Copy link
Copy Markdown
Contributor

📊: Physics performance monitoring for be803a2

Full contents

physmon summary

@github-actions

Copy link
Copy Markdown
Contributor

Public API surface diff

No change to the public API surface. ✅

@sonarqubecloud

Copy link
Copy Markdown

This branch has not been deployed

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

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant