Skip to content

Fix CVT projectors for aligned SVT and BMT geometry - #1460

Open
yugotra wants to merge 2 commits into
developmentfrom
cvt-full3d-projectors
Open

yugotra wants to merge 2 commits into
developmentfrom
cvt-full3d-projectors

Conversation

@yugotra

@yugotra yugotra commented Sep 28, 2026

Copy link
Copy Markdown
Collaborator

Problem

At 5 T, the numerical CVT Kalman projector returned perturbed helix states to simplified detector surfaces. For aligned SVT sensors it intersected only the plane trace in x-y and discarded the plane normal's z component. For aligned BMT layers it intersected a cylinder centered on the beam axis instead of the displaced and tilted geometry axis. The projector therefore differentiated a different measurement geometry from the geometry used by normal state transport.

This explains why the main SVT failure was absent for ideal-geometry MC and 0 T data: ideal SVT planes have no omitted longitudinal tilt, while the 0 T straight-track path already uses the full plane intersection.

Change

  • Intersect analytic helices with the complete SVT plane, including its longitudinal tilt.
  • Intersect analytic helices with the true BMT cylinder axis.
  • Preserve the exact closed-form cylinder result for ideal beam-axis geometry.
  • Use an analytic Newton derivative with a bounded bracket-and-bisection fallback for the cylinder solve.
  • If either finite-difference perturbation cannot reach its aligned cylinder, mark that measurement unusable instead of substituting the nominal beam-axis crossing.
  • Add eight unit tests covering tilted planes, displaced and tilted cylinders, both helix signs, ideal-geometry identity, the bracket fallback, and a degenerate axis.

The state still swims through the field map while the projector uses an analytic uniform-field helix. This change corrects the detector-surface geometry used by that analytic projector; it does not make the projector field-map exact. The swimmer-based projector was tested and performed worse because finite differences amplify swimmer noise.

Validation

  • HelixTest: 8 tests passed.
  • Full 49-module Maven package build passed.
  • SVT-only 5 T A/B: valid filtered covariance 31.00% -> 99.73%; residual robust width 52.83 -> 14.89 um.
  • Full production CVT, run 19060, all 556,309 events, beamSpotConst=2: valid covariance 87.39% -> 94.93%; SVT residual width 109.76 -> 54.89 um; layerwise width cos(2phi) amplitude 29.8-66.5 -> 0.14-1.91 um.
  • SVT controls: ideal MC and 0 T outputs were byte-identical; 4.07 million plane solves had no non-convergence.
  • BMT 20k A/B: residual width 287.95 -> 245.10 um and median chi2/NDF 1.85 -> 1.74. The valid-covariance fraction was unchanged, so this is an independent BMT residual improvement.
  • BMT controls: ideal MC and 0 T outputs were byte-identical. A 100,000-case BMT-like solver audit found no failures, wrong residuals, or root jumps.

The unrelated covariance-reporting correction and the broader swimmer-recovery policy change are intentionally excluded from this branch.

@raffaelladevita

Copy link
Copy Markdown
Collaborator

Currently, the track propagation in the magnetic field is done with the swimmer. Therefore the changes to the helix-based propagation would have no effect. The change that may be critical is the check on the matrix H.

What problem was found with the swimmer?

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants