Skip to content
Snippets Groups Projects

WIP: Add common covariance transport

Open Moritz Kiehn requested to merge common_covariance_computation into master

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

Loading
Loading

Activity

Filter activity
  • Approvals
  • Assignees & reviewers
  • Comments (from bots)
  • Comments (from users)
  • Commits & branches
  • Edits
  • Labels
  • Lock status
  • Mentions
  • Merge request status
  • Tracking
  • Moritz Kiehn changed milestone to %0.19.00

    changed milestone to %0.19.00

  • Paul Gessinger changed milestone to %0.20.00

    changed milestone to %0.20.00

  • Moritz Kiehn added 44 commits

    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

    Compare with previous version

  • mentioned in issue #439 (closed)

  • Moritz Kiehn added 42 commits

    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

    Compare with previous version

  • Author Contributor

    @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 and StraightLineStepper 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 and curvilinearState 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 the boundState and curvilinearState 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
Please register or sign in to reply
Loading