Struct EigenStepper::State

Nested Relationships

This struct is a nested type of Template Class EigenStepper.

Struct Documentation

struct Acts::EigenStepper::State

State for track parameter propagation.

It contains the stepping information and is provided thread local by the propagator

Public Functions

State() = delete

Default constructor - deleted.

template<typename parameters_t>
State(std::reference_wrapper<const GeometryContext> gctx, std::reference_wrapper<const MagneticFieldContext> mctx, const parameters_t &par, NavigationDirection ndir = forward, double ssize = std::numeric_limits<double>::max(), double stolerance = s_onSurfaceTolerance)

Constructor from the initial track parameters.

Note

the covariance matrix is copied when needed

Parameters
  • [in] gctx: is the context object for the geometry

  • [in] mctx: is the context object for the magnetic field

  • [in] par: The track parameters at start

  • [in] ndir: The navigation direciton w.r.t momentum

  • [in] ssize: is the maximum step size

  • [in] stolerance: is the stepping tolerance

Public Members

auctioneer_t auctioneer

Auctioneer for choosing the extension.

Vector3D B_first

Magnetic field evaulations.

Vector3D B_last
Vector3D B_middle
Covariance cov = Covariance::Zero()
bool covTransport = false

Covariance matrix (and indicator) / associated with the initial error on track parameters.

FreeVector derivative = FreeVector::Zero()

The propagation derivative.

Vector3D dir = Vector3D(1., 0., 0.)

Momentum direction (normalized)

extensionlist_t extension

List of algorithmic extensions.

BField::Cache fieldCache

This caches the current magnetic field cell and stays (and interpolates) within it as long as this is valid.

See step() code for details.

std::reference_wrapper<const GeometryContext> geoContext

The geometry context.

Jacobian jacobian = Jacobian::Identity()

The full jacobian of the transport entire transport.

BoundToFreeMatrix jacToGlobal = BoundToFreeMatrix::Zero()

Jacobian from local to the global frame.

FreeMatrix jacTransport = FreeMatrix::Identity()

Pure transport jacobian part from runge kutta integration.

Vector3D k1

k_i of the RKN4 algorithm

Vector3D k2
Vector3D k3
Vector3D k4
std::array<double, 4> kQoP

k_i elements of the momenta

NavigationDirection navDir

Navigation direction, this is needed for searching.

double p = 0.

Momentum.

double pathAccumulated = 0.

Accummulated path length state.

Vector3D pos = Vector3D(0., 0., 0.)

Global particle position.

double previousStepSize = 0.

Last performed step (for overstep limit calculation)

double q = 1.

The charge.

struct Acts::EigenStepper::State::[anonymous] stepData

Storage of magnetic field and the sub steps during a RKN4 step.

ConstrainedStep stepSize = {std::numeric_limits<double>::max()}

Adaptive step size of the runge-kutta integration.

double t = 0.

Propagated time.

double tolerance = s_onSurfaceTolerance

The tolerance for the stepping.