|
ACTS
Experiment-independent tracking
|
RiddersStepper implements the Ridders method for numerical differentiation to compute the Jacobian of the bound to bound transformation. More...
#include <Acts/Propagator/RiddersStepper.hpp>
Classes | |
| struct | Config |
| Configuration struct for the RiddersStepper. More... | |
| struct | State |
| The state struct for the RiddersStepper. More... | |
Public Types | |
| using | BoundParameters = BoundTrackParameters |
| The bound parameters type used by this stepper. | |
| using | BoundState = std::tuple<BoundParameters, Jacobian, double> |
| The type of the bound state returned by the boundState method. | |
| using | Covariance = BoundMatrix |
| The covariance type for the bound parameters. | |
| using | Jacobian = BoundMatrix |
| The Jacobian type for the bound to bound transformation. | |
| using | Options = typename StepperImpl::Options |
| The options type for the RiddersStepper. | |
| using | StepperImpl = stepper_impl_t |
| The type of the underlying stepper implementation. | |
Public Member Functions | |
| RiddersStepper (const Config &config) | |
| Construct a RiddersStepper with the given configuration. | |
| RiddersStepper (std::shared_ptr< const MagneticFieldProvider > bField) | |
| Construct a RiddersStepper with the given magnetic field provider. | |
| RiddersStepper (StepperImpl stepperImpl) | |
| Construct a RiddersStepper with the given stepper implementation. | |
| double | absoluteMomentum (const State &state) const |
| Get the absolute momentum of the primary stepper state. | |
| Result< BoundState > | boundState (State &state, const Surface &surface, bool transportCovariance=true, const FreeToBoundCorrection &freeToBoundCorrection=FreeToBoundCorrection(false)) const |
| Compute the bound state. | |
| double | charge (const State &state) const |
| Get the charge of the primary stepper state. | |
| BoundState | curvilinearState (State &state, bool transportCovariance=true) const |
| Compute the curvilinear state. | |
| Vector3 | direction (const State &state) const |
| Get the direction of the primary stepper state. | |
| Result< Vector3 > | getField (State &state, const Vector3 &position) const |
| Get the magnetic field at the given position for the primary stepper state. | |
| double | getStepSize (const State &state, ConstrainedStep::Type stype) const |
| Get the step size for the given constrained step type. | |
| void | initialize (State &state, const BoundParameters &boundParameters) const |
| Initialize the state of the RiddersStepper based on the given bound parameters. | |
| void | initialize (State &state, const BoundVector &boundVector, const std::optional< BoundMatrix > &covariance, ParticleHypothesis particleHypothesis, const Surface &surface) const |
| Initialize the state of the RiddersStepper based on the given bound vector and covariance. | |
| State | makeState (const Options &options) const |
| Create a new state for the RiddersStepper based on the given options. | |
| Vector3 | momentum (const State &state) const |
| Get the momentum vector of the primary stepper state. | |
| std::string | outputStepSize (const State &state) const |
| Get a string representation of the step size constraints. | |
| const ParticleHypothesis & | particleHypothesis (const State &state) const |
| Get the particle hypothesis of the primary stepper state. | |
| Vector3 | position (const State &state) const |
| Get the position of the primary stepper state. | |
| bool | prepareCurvilinearState (State &state) const |
| Prepare the stepper for the curvilinear transformation. | |
| double | qOverP (const State &state) const |
| Get the charge over momentum of the primary stepper state. | |
| void | releaseStepSize (State &state, ConstrainedStep::Type stype) const |
| Release the step size for the given constrained step type. | |
| Result< double > | step (State &state, Direction propagationDirection, const IVolumeMaterial *material) const |
| Perform a step. | |
| double | time (const State &state) const |
| Get the time of the primary stepper state. | |
| void | transportCovarianceToBound (State &state, const Surface &surface, const FreeToBoundCorrection &freeToBoundCorrection=FreeToBoundCorrection(false)) const |
| Transport the covariance to bound parameters. | |
| void | transportCovarianceToCurvilinear (State &state) const |
| Transport the covariance to curvilinear parameters. | |
| void | update (State &state, const FreeVector &, const BoundVector &boundParams, const BoundMatrix &covariance, const Surface &surface) const |
| Update the state of the RiddersStepper. | |
| void | update (State &state, const Vector3 &position, const Vector3 &direction, double qOverP, double time) const |
| Update the state of the RiddersStepper. | |
| void | updateStepSize (State &state, const NavigationTarget &target, Direction direction, ConstrainedStep::Type stype) const |
| Update the step size based on the given navigation target, direction, and constrained step type. | |
| void | updateStepSize (State &state, double stepSize, ConstrainedStep::Type stype) const |
| Update the step size based on the given step size and constrained step type. | |
| IntersectionStatus | updateSurfaceStatus (State &state, const Surface &surface, std::uint8_t index, Direction navDir, const BoundaryTolerance &boundaryTolerance, double surfaceTolerance, ConstrainedStep::Type stype, const Logger &logger=getDummyLogger()) const |
| Update the surface status of the primary and secondary stepper states based on the given surface and navigation direction. | |
RiddersStepper implements the Ridders method for numerical differentiation to compute the Jacobian of the bound to bound transformation.
It uses a primary stepper to perform the nominal step and multiple secondary steppers with varied initial conditions to compute the Jacobian columns. The variations are generated based on the input covariance and a configurable variation generator.
| stepper_impl_t | the type of the underlying stepper implementation |
|
explicit |
Construct a RiddersStepper with the given stepper implementation.
| stepperImpl | the underlying stepper implementation |
|
explicit |
Construct a RiddersStepper with the given magnetic field provider.
| bField | the magnetic field provider |
|
explicit |
Construct a RiddersStepper with the given configuration.
| config | the configuration for the RiddersStepper |
| double Acts::Experimental::RiddersStepper< stepper_impl_t >::absoluteMomentum | ( | const State & | state | ) | const |
Get the absolute momentum of the primary stepper state.
| state | the state of the RiddersStepper |
| Result< BoundState > Acts::Experimental::RiddersStepper< stepper_impl_t >::boundState | ( | State & | state, |
| const Surface & | surface, | ||
| bool | transportCovariance = true, | ||
| const FreeToBoundCorrection & | freeToBoundCorrection = FreeToBoundCorrection(false) ) const |
Compute the bound state.
| state | the state of the RiddersStepper |
| surface | the surface |
| transportCovariance | flag indicating whether to transport the covariance to the bound parameters |
| freeToBoundCorrection | the correction |
| double Acts::Experimental::RiddersStepper< stepper_impl_t >::charge | ( | const State & | state | ) | const |
Get the charge of the primary stepper state.
| state | the state of the RiddersStepper |
| BoundState Acts::Experimental::RiddersStepper< stepper_impl_t >::curvilinearState | ( | State & | state, |
| bool | transportCovariance = true ) const |
Compute the curvilinear state.
| state | the state of the RiddersStepper |
| transportCovariance | flag indicating whether to transport the covariance to the curvilinear parameters |
| Vector3 Acts::Experimental::RiddersStepper< stepper_impl_t >::direction | ( | const State & | state | ) | const |
Get the direction of the primary stepper state.
| state | the state of the RiddersStepper |
| Result< Vector3 > Acts::Experimental::RiddersStepper< stepper_impl_t >::getField | ( | State & | state, |
| const Vector3 & | position ) const |
Get the magnetic field at the given position for the primary stepper state.
| state | the state of the RiddersStepper |
| position | the position at which to get the magnetic field |
| double Acts::Experimental::RiddersStepper< stepper_impl_t >::getStepSize | ( | const State & | state, |
| ConstrainedStep::Type | stype ) const |
Get the step size for the given constrained step type.
| state | the state of the RiddersStepper |
| stype | the type of the constrained step for which to get the step size |
| void Acts::Experimental::RiddersStepper< stepper_impl_t >::initialize | ( | State & | state, |
| const BoundParameters & | boundParameters ) const |
Initialize the state of the RiddersStepper based on the given bound parameters.
| state | the state |
| boundParameters | the bound parameters to initialize the state with |
| void Acts::Experimental::RiddersStepper< stepper_impl_t >::initialize | ( | State & | state, |
| const BoundVector & | boundVector, | ||
| const std::optional< BoundMatrix > & | covariance, | ||
| ParticleHypothesis | particleHypothesis, | ||
| const Surface & | surface ) const |
Initialize the state of the RiddersStepper based on the given bound vector and covariance.
| state | the state |
| boundVector | the bound vector to initialize the state with |
| covariance | the covariance of the bound parameters, used to generate the variations for the secondary steppers |
| particleHypothesis | the particle hypothesis |
| surface | the surface on which the bound parameters are defined |
| State Acts::Experimental::RiddersStepper< stepper_impl_t >::makeState | ( | const Options & | options | ) | const |
Create a new state for the RiddersStepper based on the given options.
| options | the options |
| Vector3 Acts::Experimental::RiddersStepper< stepper_impl_t >::momentum | ( | const State & | state | ) | const |
Get the momentum vector of the primary stepper state.
| state | the state of the RiddersStepper |
| std::string Acts::Experimental::RiddersStepper< stepper_impl_t >::outputStepSize | ( | const State & | state | ) | const |
Get a string representation of the step size constraints.
| state | the state of the RiddersStepper |
| const ParticleHypothesis & Acts::Experimental::RiddersStepper< stepper_impl_t >::particleHypothesis | ( | const State & | state | ) | const |
Get the particle hypothesis of the primary stepper state.
| state | the state of the RiddersStepper |
| Vector3 Acts::Experimental::RiddersStepper< stepper_impl_t >::position | ( | const State & | state | ) | const |
Get the position of the primary stepper state.
| state | the state of the RiddersStepper |
| bool Acts::Experimental::RiddersStepper< stepper_impl_t >::prepareCurvilinearState | ( | State & | state | ) | const |
Prepare the stepper for the curvilinear transformation.
| state | the state of the RiddersStepper |
| double Acts::Experimental::RiddersStepper< stepper_impl_t >::qOverP | ( | const State & | state | ) | const |
Get the charge over momentum of the primary stepper state.
| state | the state of the RiddersStepper |
| void Acts::Experimental::RiddersStepper< stepper_impl_t >::releaseStepSize | ( | State & | state, |
| ConstrainedStep::Type | stype ) const |
Release the step size for the given constrained step type.
| state | the state of the RiddersStepper |
| stype | the type of the constrained step for which to release the step size |
| Result< double > Acts::Experimental::RiddersStepper< stepper_impl_t >::step | ( | State & | state, |
| Direction | propagationDirection, | ||
| const IVolumeMaterial * | material ) const |
Perform a step.
| state | the state of the RiddersStepper |
| propagationDirection | the direction |
| material | the material |
| double Acts::Experimental::RiddersStepper< stepper_impl_t >::time | ( | const State & | state | ) | const |
Get the time of the primary stepper state.
| state | the state of the RiddersStepper |
| void Acts::Experimental::RiddersStepper< stepper_impl_t >::transportCovarianceToBound | ( | State & | state, |
| const Surface & | surface, | ||
| const FreeToBoundCorrection & | freeToBoundCorrection = FreeToBoundCorrection(false) ) const |
Transport the covariance to bound parameters.
| state | the state of the RiddersStepper |
| surface | the surface |
| freeToBoundCorrection | the correction |
| void Acts::Experimental::RiddersStepper< stepper_impl_t >::transportCovarianceToCurvilinear | ( | State & | state | ) | const |
Transport the covariance to curvilinear parameters.
| state | the state of the RiddersStepper |
| void Acts::Experimental::RiddersStepper< stepper_impl_t >::update | ( | State & | state, |
| const FreeVector & | , | ||
| const BoundVector & | boundParams, | ||
| const BoundMatrix & | covariance, | ||
| const Surface & | surface ) const |
Update the state of the RiddersStepper.
| state | the state of the RiddersStepper |
| boundParams | the bound vector |
| covariance | the covariance of the bound parameters |
| surface | the surface on which the bound parameters are defined |
| void Acts::Experimental::RiddersStepper< stepper_impl_t >::update | ( | State & | state, |
| const Vector3 & | position, | ||
| const Vector3 & | direction, | ||
| double | qOverP, | ||
| double | time ) const |
Update the state of the RiddersStepper.
| state | the state of the RiddersStepper |
| position | the position |
| direction | the direction |
| qOverP | the charge over momentum |
| time | the time |
| void Acts::Experimental::RiddersStepper< stepper_impl_t >::updateStepSize | ( | State & | state, |
| const NavigationTarget & | target, | ||
| Direction | direction, | ||
| ConstrainedStep::Type | stype ) const |
Update the step size based on the given navigation target, direction, and constrained step type.
| state | the state of the RiddersStepper |
| target | the navigation target |
| direction | the direction |
| stype | the type of the constrained step |
| void Acts::Experimental::RiddersStepper< stepper_impl_t >::updateStepSize | ( | State & | state, |
| double | stepSize, | ||
| ConstrainedStep::Type | stype ) const |
Update the step size based on the given step size and constrained step type.
| state | the state of the RiddersStepper |
| stepSize | the step size |
| stype | the type of the constrained step |
| IntersectionStatus Acts::Experimental::RiddersStepper< stepper_impl_t >::updateSurfaceStatus | ( | State & | state, |
| const Surface & | surface, | ||
| std::uint8_t | index, | ||
| Direction | navDir, | ||
| const BoundaryTolerance & | boundaryTolerance, | ||
| double | surfaceTolerance, | ||
| ConstrainedStep::Type | stype, | ||
| const Logger & | logger = getDummyLogger() ) const |
Update the surface status of the primary and secondary stepper states based on the given surface and navigation direction.
| state | the state of the RiddersStepper |
| surface | the surface |
| index | the index of the surface |
| navDir | the navigation direction |
| boundaryTolerance | the boundary tolerance |
| surfaceTolerance | the surface tolerance |
| stype | the type of the constrained step |
| logger | the logger |