WIP: Add common covariance transport
Adds a common covariance transport engine for EigenStepper
and StraightLineStepper
without introducing a shared StepperState
object. The transport engine functions take the relevant vectors and matrices explicitely instead.
Depends on !785 (merged). Includes changes from/ supersedes !705 and !726. Obsoletes !704.
Merge request reports
Activity
changed milestone to %0.19.00
added Component - Core Improvement Minor labels
changed milestone to %0.20.00
added 44 commits
-
af4d849e...2d0bef61 - 14 commits from branch
master
- 452aae80 - Utilities: add free parameters index enum
- 95b2a18e - Utilities: add space point index enum
- ed62e87b - Utilities: fix free params doc
- ab4ee5f8 - Utilities: update bound parameters index enum
- d8ec81bf - Utilities: add separate scalar types for all parameters
- f57c998a - Utilities: fix include for parameter definitions
- 28922e6f - Utilities: move dependent parameter matrix/vector types
- 70102f7c - Utilities: move parameter type traits
- 1d4b64d8 - Utilities: remove ..Dim values from enums
- 5706af2b - Utilities: remove explicit default parameter file
- e292d600 - EventData: fix parameter definition include
- 2302ecd2 - remove SpacePointDim
- 1fa65cc0 - remove FreeParsDim
- cd149d92 - remove BoundParsDim
- 90722c71 - Tests: fix measurement helpers
- 14d81cac - Propagator: add StepperState
- bc06227e - Propagator: add covariance enginge
- a3a7d34c - Propagator: remove reinitialize from Steppers
- 4fb9f591 - Propagator: remove reinitialize flag from calls
- c0dd6d0c - Propagator: remove reinitialize from tests
- 1b871709 - EigenStepper: add parameters vector accessor
- 33c6d21f - StraightLineStepper: add parameters vector accessor
- 7808b233 - StraightLineStepper: fix include
- ba866bd7 - CovarianceEngine: update includes and docs
- 47c1e4ab - CovarianceEngine: alway use explicit types
- b0c4d86f - CovarianceEngine: split internal Jacobian calculations
- 8164d1ff - CovarianceEngine: split derivative corrections
- 5fb0ca96 - CovarianceEngine: split transport function
- 69a92d05 - CovarianceEngine: state accessors do not transport
- a81c5341 - CovarianceEngine: state helpers only build parameters
Toggle commit list-
af4d849e...2d0bef61 - 14 commits from branch
mentioned in issue #439 (closed)
added 42 commits
-
a81c5341...b89df02d - 9 commits from branch
master
- 6f1fc035 - Utilities: add free parameters index enum
- ebbb4ee9 - Utilities: add space point index enum
- d02c6984 - Utilities: update bound parameters index enum
- 8a35ac5a - Utilities: add separate scalar types for all parameters
- f01536dc - Utilities: fix include for parameter definitions
- c1ddf380 - Utilities: move dependent parameter matrix/vector types
- 80e4b922 - Utilities: move parameter type traits
- 80d1d139 - Utilities: remove ..Dim values from enums
- ef3272a9 - Utilities: remove explicit default parameter file
- 46ba0c96 - EventData: fix parameter definition include
- 916e6148 - remove SpacePointDim
- daf15946 - remove FreeParsDim
- 6f391bae - remove BoundParsDim
- ac725485 - remove par_type{_t}
- 0cde85ce - Utilities: add note on naming ambiguity
- e37eaccf - Tests: fix measurement helpers
- d1e31f0f - Tests: update parameter set tests
- 596a64e8 - Propagator: add covariance enginge
- e19c6c8b - Propagator: remove reinitialize from Steppers
- f76aac8b - Propagator: remove reinitialize flag from calls
- 5e34aab1 - Propagator: remove reinitialize from tests
- be02ac6a - EigenStepper: add parameters vector accessor
- 5688dffa - StraightLineStepper: add parameters vector accessor
- 8d154ae7 - StraightLineStepper: fix include
- cd6b7981 - CovarianceEngine: update includes and docs
- e9018885 - CovarianceEngine: alway use explicit types
- 8ea9edcc - CovarianceEngine: split internal Jacobian calculations
- 29397d73 - CovarianceEngine: split derivative corrections
- 604f850e - CovarianceEngine: split transport function
- 3eab5887 - CovarianceEngine: state accessors do not transport
- 550a68fb - CovarianceEngine: state helpers only build parameters
- 34888b27 - CovarianceEngine: compute combined jacobians without state
- 205a2570 - CovarianceEngine: fix includes, copyright year, docs
Toggle commit list-
a81c5341...b89df02d - 9 commits from branch
@fklimpel This is now in a reviewable state. It contains all your covariance engine changes excluding the shared stepper state and then splits the covariance engine helpers to use the Jacobian matrices directly. To reduce the number of parameters,
EigenStepper
andStraightLineStepper
provide an accessor to a combined free parameter vector. In the future, we should consider storing the track state in the stepper directly as such a free parameter vector instead of the separate components in which they are stored now.There are a few issues that need to be clarified:
-
Previously, the
boundState
andcurvilinearState
would implicitly call the covariance transport. If you would call it twice, at the same position, this can give different results since the second implicit covariance transport would be different. I switched theboundState
andcurvilinearState
helpers to be pure observers that assume that the covariance transport has already been performed. It still needs to be verified how this is used in other code to ensure that this does not break anything. -
I do not understand the meaning of the stepper derivative and how it modifies the transport matrices. E.g. why does it modify the initial local-to-global Jacobian and not the transport Jacobian? I tried to derive the transport Jacobians but I get a different result. I am writing up my derivations so we can crosscheck.
Feel free to have a look already now (or better after !785 (merged) was merged) but I propose that we continue the discussion after the Github switch.
Edited by Moritz Kiehn-