fix: expand track seeding default cfg into non-sqrt values - #2906
fix: expand track seeding default cfg into non-sqrt values#2906wdconinc wants to merge 3 commits into
Conversation
There was a problem hiding this comment.
Pull request overview
This PR updates the default track-parameter estimation covariance values in TrackSeedingConfig by replacing std::sqrt(...)-based expressions and unit conversions with precomputed numeric constants, aiming to make the defaults easier to interpret.
Changes:
- Replaced
locaError,locbError,phiError,thetaError,qOverPError, andtimeErrordefault initializers with precomputed numeric values. - Simplified the time error default from a derived expression to a direct
ns-scaled constant.
Suppressed comments (1)
src/algorithms/tracking/TrackSeedingConfig.h:205
- timeError is now a magic number, and it's also rounded relative to the previous expression (sqrt(0.1 * mm / ns) * ns). To keep the change purely cosmetic/clarifying, consider using a more precise evaluated value and keep a brief derivation note inline.
float timeError = 5.475 * Acts::UnitConstants::ns;
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
|
FYI @ShujieL @bschmookler This doesn't apply any real changes (by design) but should make it clearer what values are actually used now. |
a554d0f to
8e4aa4c
Compare
There was a problem hiding this comment.
🔵 Needs a closer look
The new constants are rounded/re-expressed enough to slightly change the configured default covariances, conflicting with the stated intent of being essentially identical to the prior expressions.
Review details
Suppressed comments (2)
src/algorithms/tracking/TrackSeedingConfig.h:204
- The new numeric defaults are rounded enough to slightly change the effective covariance (e.g., sqrt(1.5)=1.224744… vs 1.225). If the intent is to be numerically equivalent to the previous expressions, consider using the full evaluated constants (enough digits to round to the same float) rather than 3-decimal approximations.
float locaError = 1.225 * Acts::UnitConstants::mm;
float locbError = 1.225 * Acts::UnitConstants::mm;
src/algorithms/tracking/TrackSeedingConfig.h:208
- qOverPError/timeError were previously defined via sqrt-based expressions; rewriting them as low-precision decimals (and qOverPError as an inverted number) reduces traceability and can change the value slightly. Using a higher-precision evaluated coefficient (and a direct "/ GeV" form) keeps the intent clear while still removing runtime sqrt.
float phiError = 0.1414 * Acts::UnitConstants::rad;
float thetaError = 0.0447 * Acts::UnitConstants::rad;
float qOverPError = 1. / (6.325 * Acts::UnitConstants::GeV);
float timeError = 0.0183 * Acts::UnitConstants::ns;
- Files reviewed: 1/1 changed files
- Comments generated: 0 new
- Review effort level: Lite
Capybara summary for PR 2906
Last updated 2026-09-04T21:31-04:00 007f312 |
Briefly, what does this PR introduce? Please link to any relevant presentations or discussions.
This PR updates the default error values used for track parameter estimation in the
TrackSeedingConfigstruct. The changes replace expressions involving square roots and unit conversions with their precomputed numerical values, making the code clearer. The numerical values are essentially identical (up to 4th digit rounding) to what was there before, just more easily interpretable. No major changes are expected by this PR.Track parameter estimation error updates:
locaError,locbError,phiError,thetaError,qOverPError, andtimeErrorwith their evaluated numerical values in theTrackSeedingConfigstruct. This change clarifies the default error settings and removes the need for runtime computation.What is the urgency of this PR?
What kind of change does this PR introduce?
Please check if any of the following apply