Struct Acts::EigenStepper::State

struct State

State for track parameter propagation.

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

Public Functions

State() = delete
template<typename charge_t>
inline explicit State(const GeometryContext &gctx, MagneticFieldProvider::Cache fieldCacheIn, const SingleBoundTrackParameters<charge_t> &par, NavigationDirection ndir = NavigationDirection::Forward, double ssize = std::numeric_limits<double>::max(), double stolerance = s_onSurfaceTolerance)

Constructor from the initial bound track parameters.

Note

the covariance matrix is copied when needed

Template Parameters

charge_t – Type of the bound parameter charge

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

  • fieldCacheIn[in] is the cache object for the magnetic field

  • par[in] The track parameters at start

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

  • ssize[in] is the maximum step size

  • stolerance[in] is the stepping tolerance

Public Members

auctioneer_t auctioneer

Auctioneer for choosing the extension.

Vector3 B_first

Magnetic field evaulations.

Vector3 B_last
Vector3 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.

extensionlist_t extension

List of algorithmic extensions.

MagneticFieldProvider::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.

Vector3 k1

k_i of the RKN4 algorithm

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

k_i elements of the momenta

NavigationDirection navDir

Navigation direction, this is needed for searching.

FreeVector pars = FreeVector::Zero()

Internal free vector parameters.

double pathAccumulated = 0.

Accummulated path length state.

double previousStepSize = 0.

Last performed step (for overstep limit calculation)

double q = 1.

The charge as the free vector can be 1/p or q/p.

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

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

ConstrainedStep stepSize

Adaptive step size of the runge-kutta integration.

double tolerance = s_onSurfaceTolerance

The tolerance for the stepping.