|
ACTS
Experiment-independent tracking
|
straight line stepper based on Surface intersection More...
#include <Acts/Propagator/StraightLineStepper.hpp>
Classes | |
| struct | Config |
| struct | Options |
| struct | State |
| State for track parameter propagation. More... | |
Public Types | |
| using | BField = NullBField |
| Type alias for magnetic field (null field for straight line propagation). | |
| using | BoundState = std::tuple<BoundTrackParameters, Jacobian, double> |
| Type alias for bound state containing parameters, jacobian, and path length. | |
| using | Covariance = BoundSquareMatrix |
| Type alias for covariance matrix. | |
| using | Jacobian = BoundMatrix |
| Type alias for transport jacobian matrix. | |
Public Member Functions | |
| double | absoluteMomentum (const State &state) const |
| Absolute momentum accessor. | |
| Result< BoundState > | boundState (State &state, const Surface &surface, bool transportCov=true, const FreeToBoundCorrection &freeToBoundCorrection=FreeToBoundCorrection(false)) const |
| Create and return the bound state at the current position. | |
| double | charge (const State &state) const |
| Charge access. | |
| BoundState | curvilinearState (State &state, bool transportCov=true) const |
| Create and return a curvilinear state at the current position. | |
| Vector3 | direction (const State &state) const |
| Momentum direction accessor. | |
| Result< Vector3 > | getField (State &, const Vector3 &) const |
| Get the field for the stepping, this gives back a zero field. | |
| double | getStepSize (const State &state, ConstrainedStep::Type stype) const |
| Get the step size. | |
| void | initialize (State &state, const BoundTrackParameters &par) const |
| Initialize the stepper state from bound track parameters. | |
| void | initialize (State &state, const BoundVector &boundParams, const std::optional< BoundMatrix > &cov, ParticleHypothesis particleHypothesis, const Surface &surface) const |
| Initialize the stepper state from bound parameters and components. | |
| State | makeState (const Options &options) const |
| Create a stepper state from propagation options. | |
| Vector3 | momentum (const State &state) const |
| Momentum accessor. | |
| std::string | outputStepSize (const State &state) const |
| Output the Step Size - single component. | |
| const ParticleHypothesis & | particleHypothesis (const State &state) const |
| Particle hypothesis. | |
| Vector3 | position (const State &state) const |
| Global particle position accessor. | |
| bool | prepareCurvilinearState (State &state) const |
| If necessary fill additional members needed for curvilinearState. | |
| double | qOverP (const State &state) const |
| QoP direction accessor. | |
| void | releaseStepSize (State &state, ConstrainedStep::Type stype) const |
| Release the Step size. | |
| Result< double > | step (State &state, Direction propDir, const IVolumeMaterial *material) const |
| Perform a straight line propagation step. | |
| double | time (const State &state) const |
| Time access. | |
| void | transportCovarianceToBound (State &state, const Surface &surface, const FreeToBoundCorrection &freeToBoundCorrection=FreeToBoundCorrection(false)) const |
| Method for on-demand transport of the covariance to a new curvilinear frame at current position, or direction of the state - for the moment a dummy method. | |
| void | transportCovarianceToCurvilinear (State &state) const |
| Method for on-demand transport of the covariance to a new curvilinear frame at current position, or direction of the state - for the moment a dummy method. | |
| void | update (State &state, const FreeVector &freeParams, const BoundVector &boundParams, const Covariance &covariance, const Surface &surface) const |
| Method to update a stepper state to the some parameters. | |
| void | update (State &state, const Vector3 &uposition, const Vector3 &udirection, double qop, double time) const |
| Method to update the stepper state. | |
| void | updateStepSize (State &state, const NavigationTarget &target, Direction direction, ConstrainedStep::Type stype) const |
| Update step size. | |
| void | updateStepSize (State &state, double stepSize, ConstrainedStep::Type stype) const |
| Update step size - explicitly with a double. | |
| 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 surface status. | |
straight line stepper based on Surface intersection
The straight line stepper is a simple navigation stepper to be used to navigate through the tracking geometry. It can be used for simple material mapping, navigation validation
Type alias for magnetic field (null field for straight line propagation).
| using Acts::StraightLineStepper::BoundState = std::tuple<BoundTrackParameters, Jacobian, double> |
Type alias for bound state containing parameters, jacobian, and path length.
Type alias for covariance matrix.
Type alias for transport jacobian matrix.
| double Acts::StraightLineStepper::absoluteMomentum | ( | const State & | state | ) | const |
Absolute momentum accessor.
| state | [in] The stepping state (thread-local cache) |
| Result< BoundState > Acts::StraightLineStepper::boundState | ( | State & | state, |
| const Surface & | surface, | ||
| bool | transportCov = true, | ||
| const FreeToBoundCorrection & | freeToBoundCorrection = FreeToBoundCorrection(false) ) const |
Create and return the bound state at the current position.
It does not check if the transported state is at the surface, this needs to be guaranteed by the propagator
| [in] | state | State that will be presented as BoundState |
| [in] | surface | The surface to which we bind the state |
| [in] | transportCov | Flag steering covariance transport |
| [in] | freeToBoundCorrection | Correction for non-linearity effect during transform from free to bound |
| double Acts::StraightLineStepper::charge | ( | const State & | state | ) | const |
Charge access.
| state | [in] The stepping state (thread-local cache) |
| BoundState Acts::StraightLineStepper::curvilinearState | ( | State & | state, |
| bool | transportCov = true ) const |
Create and return a curvilinear state at the current position.
This creates a curvilinear state.
| [in] | state | State that will be presented as CurvilinearState |
| [in] | transportCov | Flag steering covariance transport |
Momentum direction accessor.
| state | [in] The stepping state (thread-local cache) |
Get the field for the stepping, this gives back a zero field.
| double Acts::StraightLineStepper::getStepSize | ( | const State & | state, |
| ConstrainedStep::Type | stype ) const |
Get the step size.
| state | [in] The stepping state (thread-local cache) |
| stype | [in] The step size type to be returned |
| void Acts::StraightLineStepper::initialize | ( | State & | state, |
| const BoundTrackParameters & | par ) const |
Initialize the stepper state from bound track parameters.
| state | The stepper state to initialize |
| par | The bound track parameters to initialize from |
| void Acts::StraightLineStepper::initialize | ( | State & | state, |
| const BoundVector & | boundParams, | ||
| const std::optional< BoundMatrix > & | cov, | ||
| ParticleHypothesis | particleHypothesis, | ||
| const Surface & | surface ) const |
Initialize the stepper state from bound parameters and components.
| state | The stepper state to initialize |
| boundParams | The bound parameter vector |
| cov | Optional covariance matrix |
| particleHypothesis | The particle hypothesis (mass, charge, etc.) |
| surface | The reference surface |
Create a stepper state from propagation options.
| options | The propagation options |
Momentum accessor.
| state | [in] The stepping state (thread-local cache) |
| std::string Acts::StraightLineStepper::outputStepSize | ( | const State & | state | ) | const |
Output the Step Size - single component.
| state | [in,out] The stepping state (thread-local cache) |
| const ParticleHypothesis & Acts::StraightLineStepper::particleHypothesis | ( | const State & | state | ) | const |
Particle hypothesis.
| state | [in] The stepping state (thread-local cache) |
Global particle position accessor.
| state | [in] The stepping state (thread-local cache) |
| bool Acts::StraightLineStepper::prepareCurvilinearState | ( | State & | state | ) | const |
If necessary fill additional members needed for curvilinearState.
Compute path length derivatives in case they have not been computed yet, which is the case if no step has been executed yet.
| [in,out] | state | The stepping state (thread-local cache) |
| double Acts::StraightLineStepper::qOverP | ( | const State & | state | ) | const |
QoP direction accessor.
| state | [in] The stepping state (thread-local cache) |
| void Acts::StraightLineStepper::releaseStepSize | ( | State & | state, |
| ConstrainedStep::Type | stype ) const |
Release the Step size.
| [in,out] | state | The stepping state (thread-local cache) |
| [in] | stype | The step size type to be released |
| Result< double > Acts::StraightLineStepper::step | ( | State & | state, |
| Direction | propDir, | ||
| const IVolumeMaterial * | material ) const |
Perform a straight line propagation step.
| [in,out] | state | State of the stepper |
| propDir | is the direction of propagation | |
| material | is the optional volume material we are stepping through. |
| double Acts::StraightLineStepper::time | ( | const State & | state | ) | const |
Time access.
| state | [in] The stepping state (thread-local cache) |
| void Acts::StraightLineStepper::transportCovarianceToBound | ( | State & | state, |
| const Surface & | surface, | ||
| const FreeToBoundCorrection & | freeToBoundCorrection = FreeToBoundCorrection(false) ) const |
Method for on-demand transport of the covariance to a new curvilinear frame at current position, or direction of the state - for the moment a dummy method.
| surface_t | the surface type - ignored here |
| [in,out] | state | The stepper state |
| [in] | surface | is the surface to which the covariance is forwarded to |
| [in] | freeToBoundCorrection | Correction for non-linearity effect during transform from free to bound |
| void Acts::StraightLineStepper::transportCovarianceToCurvilinear | ( | State & | state | ) | const |
Method for on-demand transport of the covariance to a new curvilinear frame at current position, or direction of the state - for the moment a dummy method.
| [in,out] | state | State of the stepper |
| void Acts::StraightLineStepper::update | ( | State & | state, |
| const FreeVector & | freeParams, | ||
| const BoundVector & | boundParams, | ||
| const Covariance & | covariance, | ||
| const Surface & | surface ) const |
Method to update a stepper state to the some parameters.
| [in,out] | state | State object that will be updated |
| [in] | freeParams | Free parameters that will be written into state |
| [in] | boundParams | Corresponding bound parameters used to update jacToGlobal in state |
| [in] | covariance | Covariance that will be written into state |
| [in] | surface | The surface used to update the jacToGlobal |
| void Acts::StraightLineStepper::update | ( | State & | state, |
| const Vector3 & | uposition, | ||
| const Vector3 & | udirection, | ||
| double | qop, | ||
| double | time ) const |
Method to update the stepper state.
| [in,out] | state | State object that will be updated |
| [in] | uposition | the updated position |
| [in] | udirection | the updated direction |
| [in] | qop | the updated qop value |
| [in] | time | the updated time value |
| void Acts::StraightLineStepper::updateStepSize | ( | State & | state, |
| const NavigationTarget & | target, | ||
| Direction | direction, | ||
| ConstrainedStep::Type | stype ) const |
Update step size.
It checks the status to the reference surface & updates the step size accordingly
| state | [in,out] The stepping state (thread-local cache) |
| target | [in] The NavigationTarget |
| direction | [in] The propagation direction |
| stype | [in] The step size type to be set |
| void Acts::StraightLineStepper::updateStepSize | ( | State & | state, |
| double | stepSize, | ||
| ConstrainedStep::Type | stype ) const |
Update step size - explicitly with a double.
| state | [in,out] The stepping state (thread-local cache) |
| stepSize | [in] The step size value |
| stype | [in] The step size type to be set |
| IntersectionStatus Acts::StraightLineStepper::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 surface status.
This method intersects the provided surface and update the navigation step estimation accordingly (hence it changes the state). It also returns the status of the intersection to trigger onSurface in case the surface is reached.
| [in,out] | state | The stepping state (thread-local cache) |
| [in] | surface | The surface provided |
| [in] | index | The surface intersection index |
| [in] | navDir | The navigation direction |
| [in] | boundaryTolerance | The boundary check for this status update |
| [in] | surfaceTolerance | Surface tolerance used for intersection |
| [in] | stype | The step size type to be set |
| [in] | logger | A logger instance |