feat: Compare track state parameters against their own measurement - #5975
feat: Compare track state parameters against their own measurement#5975andiwand wants to merge 4 commits into
Conversation
What to look atSign of the residual covariance ( This is also why
Only a subset of the histograms fill: Binning comes off the reconstructed side in this mode, since a measurement The truth path shares the loop through a nullable The phi wrap also changes the truth reference, so physmon may need a Not in scopeA per-module breakdown: residual mean/width by Validation
|
Public API surface diffNo change to the public API surface. ✅ |
Adds a `reference` option to the track parameter performance collector and writer, selecting whether track states are compared against the truth behind their measurement or against the measurement itself. The measurement reference needs no truth input at all and therefore also runs on data, which is what makes track-to-hit residual monitoring for alignment possible. A measurement only constrains the local parameters, so only those residual and pull histograms are filled and the binning is taken from the reconstructed side. The residual covariance is `V + HPH^T` for parameters that did not use the state's own measurement and `V - HPH^T` for those that did, so an explicit `parameterType` is required in this mode. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0185o8p9JBg4MSNFn8AxW3qp
…eters Takes the bound subspace helper rather than a raw index span, and builds the residual and its covariance directly at full bound size instead of going through dynamic temporaries and a second expand pass. Drops the charge fields from `ResPlotTool::Binning`, which only the truth fill reads. The `TrackState` source now names its histograms `loc0`/`loc1` rather than the perigee `d0`/`z0`, which is what the first two bound parameters are on a sensor surface. Names a caller picked itself are left alone. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016kxszHDNxUNersWUnrnJ8m
A track near the `+-pi` wrap has its truth and reconstructed phi on opposite sides of the range, so the plain difference is almost a full turn and lands in the residual underflow bin. This affects the existing truth reference as well, so the phi residual and pull histograms move slightly and physmon may need a reference update. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016kxszHDNxUNersWUnrnJ8m
6eb06ed to
97a6b90
Compare
Reducing the phi residual over the periodicity moves one track per sample
out of the flow bin the ROOT converter drops, so `res_phi` and `pull_phi`
gain one entry. The fitted mean/width profiles move further because
`TH1::Fit("gaus")` shares ROOT's global fit state across slices.
|



Adds a
referenceoption to the track parameter performance collector andwriter, selecting whether track states are compared against the truth behind
their measurement or against the measurement itself.
The measurement reference needs no truth input and therefore also runs on data.
A measurement only constrains the local parameters, so only those residual and
pull histograms are filled, and the binning is taken from the reconstructed
side. The residual covariance is
V + HPH^Tfor parameters that did not usethe state's own measurement and
V - HPH^Tfor those that did, so an explicitparameterTypeis required in this mode.The
TrackStatesource now names its histogramsloc0/loc1instead of theperigee
d0/z0, which is what the first two bound parameters are on a sensorsurface. Names a caller picked itself are left alone.
Residuals of
phiare reduced over the periodicity. A track near the+-piwrap previously got a residual of almost a full turn and landed in the
underflow bin. This also affects the existing truth reference, so the phi
residual and pull histograms move slightly.