ECCE @ EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Acts::EigenStepper< bfield_t, extensionlist_t, auctioneer_t >::State Struct Reference

State for track parameter propagation. More...

#include <acts/blob/master/Core/include/Acts/Propagator/EigenStepper.hpp>

+ Collaboration diagram for Acts::EigenStepper< bfield_t, extensionlist_t, auctioneer_t >::State:

Public Member 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)
 

Public Attributes

Vector3D pos = Vector3D(0., 0., 0.)
 Global particle position.
 
Vector3D dir = Vector3D(1., 0., 0.)
 Momentum direction (normalized)
 
double p = 0.
 Momentum.
 
double q = 1.
 The charge.
 
double t = 0.
 Propagated time.
 
NavigationDirection navDir
 Navigation direction, this is needed for searching.
 
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.
 
FreeVector derivative = FreeVector::Zero()
 The propagation derivative.
 
bool covTransport = false
 Covariance matrix (and indicator) / associated with the initial error on track parameters.
 
Covariance cov = Covariance::Zero()
 
double pathAccumulated = 0.
 Accummulated path length state.
 
ConstrainedStep stepSize {std::numeric_limits<double>::max()}
 Adaptive step size of the runge-kutta integration.
 
double previousStepSize = 0.
 Last performed step (for overstep limit calculation)
 
double tolerance = s_onSurfaceTolerance
 The tolerance for the stepping.
 
BField::Cache fieldCache
 
std::reference_wrapper< const
GeometryContext
geoContext
 The geometry context.
 
extensionlist_t extension
 List of algorithmic extensions.
 
auctioneer_t auctioneer
 Auctioneer for choosing the extension.
 
struct {
   Vector3D   B_first
 Magnetic field evaulations.
 
   Vector3D   B_middle
 
   Vector3D   B_last
 
   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
 
stepData
 

Detailed Description

template<typename bfield_t, typename extensionlist_t = StepperExtensionList<DefaultExtension>, typename auctioneer_t = detail::VoidAuctioneer>
struct Acts::EigenStepper< bfield_t, extensionlist_t, auctioneer_t >::State

State for track parameter propagation.

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

Definition at line 58 of file EigenStepper.hpp.

View newest version in sPHENIX GitHub at line 58 of file EigenStepper.hpp

Constructor & Destructor Documentation

template<typename bfield_t, typename extensionlist_t = StepperExtensionList<DefaultExtension>, typename auctioneer_t = detail::VoidAuctioneer>
Acts::EigenStepper< bfield_t, extensionlist_t, auctioneer_t >::State::State ( )
delete

Default constructor - deleted.

template<typename bfield_t, typename extensionlist_t = StepperExtensionList<DefaultExtension>, typename auctioneer_t = detail::VoidAuctioneer>
template<typename parameters_t >
Acts::EigenStepper< bfield_t, extensionlist_t, auctioneer_t >::State::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 
)
inlineexplicit

Constructor from the initial track parameters

Parameters
[in]gctxis the context object for the geometry
[in]mctxis the context object for the magnetic field
[in]parThe track parameters at start
[in]ndirThe navigation direciton w.r.t momentum
[in]ssizeis the maximum step size
[in]stoleranceis the stepping tolerance
Note
the covariance matrix is copied when needed

Definition at line 73 of file EigenStepper.hpp.

View newest version in sPHENIX GitHub at line 73 of file EigenStepper.hpp

References dir, pos(), and surface().

+ Here is the call graph for this function:

Member Data Documentation

template<typename bfield_t, typename extensionlist_t = StepperExtensionList<DefaultExtension>, typename auctioneer_t = detail::VoidAuctioneer>
auctioneer_t Acts::EigenStepper< bfield_t, extensionlist_t, auctioneer_t >::State::auctioneer

Auctioneer for choosing the extension.

Definition at line 159 of file EigenStepper.hpp.

View newest version in sPHENIX GitHub at line 159 of file EigenStepper.hpp

template<typename bfield_t, typename extensionlist_t = StepperExtensionList<DefaultExtension>, typename auctioneer_t = detail::VoidAuctioneer>
Vector3D Acts::EigenStepper< bfield_t, extensionlist_t, auctioneer_t >::State::B_first

Magnetic field evaulations.

Definition at line 164 of file EigenStepper.hpp.

View newest version in sPHENIX GitHub at line 164 of file EigenStepper.hpp

template<typename bfield_t, typename extensionlist_t = StepperExtensionList<DefaultExtension>, typename auctioneer_t = detail::VoidAuctioneer>
Vector3D Acts::EigenStepper< bfield_t, extensionlist_t, auctioneer_t >::State::B_last

Definition at line 164 of file EigenStepper.hpp.

View newest version in sPHENIX GitHub at line 164 of file EigenStepper.hpp

template<typename bfield_t, typename extensionlist_t = StepperExtensionList<DefaultExtension>, typename auctioneer_t = detail::VoidAuctioneer>
Vector3D Acts::EigenStepper< bfield_t, extensionlist_t, auctioneer_t >::State::B_middle

Definition at line 164 of file EigenStepper.hpp.

View newest version in sPHENIX GitHub at line 164 of file EigenStepper.hpp

template<typename bfield_t, typename extensionlist_t = StepperExtensionList<DefaultExtension>, typename auctioneer_t = detail::VoidAuctioneer>
Covariance Acts::EigenStepper< bfield_t, extensionlist_t, auctioneer_t >::State::cov = Covariance::Zero()
template<typename bfield_t, typename extensionlist_t = StepperExtensionList<DefaultExtension>, typename auctioneer_t = detail::VoidAuctioneer>
bool Acts::EigenStepper< bfield_t, extensionlist_t, auctioneer_t >::State::covTransport = false

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

Definition at line 132 of file EigenStepper.hpp.

View newest version in sPHENIX GitHub at line 132 of file EigenStepper.hpp

template<typename bfield_t, typename extensionlist_t = StepperExtensionList<DefaultExtension>, typename auctioneer_t = detail::VoidAuctioneer>
FreeVector Acts::EigenStepper< bfield_t, extensionlist_t, auctioneer_t >::State::derivative = FreeVector::Zero()

The propagation derivative.

Definition at line 128 of file EigenStepper.hpp.

View newest version in sPHENIX GitHub at line 128 of file EigenStepper.hpp

Referenced by Acts::EigenStepper< bfield_t, extensionlist_t, auctioneer_t >::covarianceTransport().

template<typename bfield_t, typename extensionlist_t = StepperExtensionList<DefaultExtension>, typename auctioneer_t = detail::VoidAuctioneer>
Vector3D Acts::EigenStepper< bfield_t, extensionlist_t, auctioneer_t >::State::dir = Vector3D(1., 0., 0.)

Momentum direction (normalized)

Definition at line 104 of file EigenStepper.hpp.

View newest version in sPHENIX GitHub at line 104 of file EigenStepper.hpp

Referenced by Acts::EigenStepper< bfield_t, extensionlist_t, auctioneer_t >::covarianceTransport(), and Acts::EigenStepper< bfield_t, extensionlist_t, auctioneer_t >::update().

template<typename bfield_t, typename extensionlist_t = StepperExtensionList<DefaultExtension>, typename auctioneer_t = detail::VoidAuctioneer>
extensionlist_t Acts::EigenStepper< bfield_t, extensionlist_t, auctioneer_t >::State::extension

List of algorithmic extensions.

Definition at line 156 of file EigenStepper.hpp.

View newest version in sPHENIX GitHub at line 156 of file EigenStepper.hpp

template<typename bfield_t, typename extensionlist_t = StepperExtensionList<DefaultExtension>, typename auctioneer_t = detail::VoidAuctioneer>
BField::Cache Acts::EigenStepper< bfield_t, extensionlist_t, auctioneer_t >::State::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.

Definition at line 150 of file EigenStepper.hpp.

View newest version in sPHENIX GitHub at line 150 of file EigenStepper.hpp

template<typename bfield_t, typename extensionlist_t = StepperExtensionList<DefaultExtension>, typename auctioneer_t = detail::VoidAuctioneer>
std::reference_wrapper<const GeometryContext> Acts::EigenStepper< bfield_t, extensionlist_t, auctioneer_t >::State::geoContext

The geometry context.

Definition at line 153 of file EigenStepper.hpp.

View newest version in sPHENIX GitHub at line 153 of file EigenStepper.hpp

Referenced by Acts::EigenStepper< bfield_t, extensionlist_t, auctioneer_t >::covarianceTransport().

template<typename bfield_t, typename extensionlist_t = StepperExtensionList<DefaultExtension>, typename auctioneer_t = detail::VoidAuctioneer>
Jacobian Acts::EigenStepper< bfield_t, extensionlist_t, auctioneer_t >::State::jacobian = Jacobian::Identity()

The full jacobian of the transport entire transport.

Definition at line 119 of file EigenStepper.hpp.

View newest version in sPHENIX GitHub at line 119 of file EigenStepper.hpp

Referenced by Acts::EigenStepper< bfield_t, extensionlist_t, auctioneer_t >::covarianceTransport().

template<typename bfield_t, typename extensionlist_t = StepperExtensionList<DefaultExtension>, typename auctioneer_t = detail::VoidAuctioneer>
BoundToFreeMatrix Acts::EigenStepper< bfield_t, extensionlist_t, auctioneer_t >::State::jacToGlobal = BoundToFreeMatrix::Zero()

Jacobian from local to the global frame.

Definition at line 122 of file EigenStepper.hpp.

View newest version in sPHENIX GitHub at line 122 of file EigenStepper.hpp

Referenced by Acts::EigenStepper< bfield_t, extensionlist_t, auctioneer_t >::covarianceTransport().

template<typename bfield_t, typename extensionlist_t = StepperExtensionList<DefaultExtension>, typename auctioneer_t = detail::VoidAuctioneer>
FreeMatrix Acts::EigenStepper< bfield_t, extensionlist_t, auctioneer_t >::State::jacTransport = FreeMatrix::Identity()

Pure transport jacobian part from runge kutta integration.

Definition at line 125 of file EigenStepper.hpp.

View newest version in sPHENIX GitHub at line 125 of file EigenStepper.hpp

Referenced by Acts::EigenStepper< bfield_t, extensionlist_t, auctioneer_t >::covarianceTransport().

template<typename bfield_t, typename extensionlist_t = StepperExtensionList<DefaultExtension>, typename auctioneer_t = detail::VoidAuctioneer>
Vector3D Acts::EigenStepper< bfield_t, extensionlist_t, auctioneer_t >::State::k1

k_i of the RKN4 algorithm

Definition at line 166 of file EigenStepper.hpp.

View newest version in sPHENIX GitHub at line 166 of file EigenStepper.hpp

template<typename bfield_t, typename extensionlist_t = StepperExtensionList<DefaultExtension>, typename auctioneer_t = detail::VoidAuctioneer>
Vector3D Acts::EigenStepper< bfield_t, extensionlist_t, auctioneer_t >::State::k2

Definition at line 166 of file EigenStepper.hpp.

View newest version in sPHENIX GitHub at line 166 of file EigenStepper.hpp

template<typename bfield_t, typename extensionlist_t = StepperExtensionList<DefaultExtension>, typename auctioneer_t = detail::VoidAuctioneer>
Vector3D Acts::EigenStepper< bfield_t, extensionlist_t, auctioneer_t >::State::k3

Definition at line 166 of file EigenStepper.hpp.

View newest version in sPHENIX GitHub at line 166 of file EigenStepper.hpp

template<typename bfield_t, typename extensionlist_t = StepperExtensionList<DefaultExtension>, typename auctioneer_t = detail::VoidAuctioneer>
Vector3D Acts::EigenStepper< bfield_t, extensionlist_t, auctioneer_t >::State::k4

Definition at line 166 of file EigenStepper.hpp.

View newest version in sPHENIX GitHub at line 166 of file EigenStepper.hpp

template<typename bfield_t, typename extensionlist_t = StepperExtensionList<DefaultExtension>, typename auctioneer_t = detail::VoidAuctioneer>
std::array<double, 4> Acts::EigenStepper< bfield_t, extensionlist_t, auctioneer_t >::State::kQoP

k_i elements of the momenta

Definition at line 168 of file EigenStepper.hpp.

View newest version in sPHENIX GitHub at line 168 of file EigenStepper.hpp

template<typename bfield_t, typename extensionlist_t = StepperExtensionList<DefaultExtension>, typename auctioneer_t = detail::VoidAuctioneer>
NavigationDirection Acts::EigenStepper< bfield_t, extensionlist_t, auctioneer_t >::State::navDir

Navigation direction, this is needed for searching.

Definition at line 116 of file EigenStepper.hpp.

View newest version in sPHENIX GitHub at line 116 of file EigenStepper.hpp

template<typename bfield_t, typename extensionlist_t = StepperExtensionList<DefaultExtension>, typename auctioneer_t = detail::VoidAuctioneer>
double Acts::EigenStepper< bfield_t, extensionlist_t, auctioneer_t >::State::p = 0.
template<typename bfield_t, typename extensionlist_t = StepperExtensionList<DefaultExtension>, typename auctioneer_t = detail::VoidAuctioneer>
double Acts::EigenStepper< bfield_t, extensionlist_t, auctioneer_t >::State::pathAccumulated = 0.

Accummulated path length state.

Definition at line 136 of file EigenStepper.hpp.

View newest version in sPHENIX GitHub at line 136 of file EigenStepper.hpp

template<typename bfield_t, typename extensionlist_t = StepperExtensionList<DefaultExtension>, typename auctioneer_t = detail::VoidAuctioneer>
Vector3D Acts::EigenStepper< bfield_t, extensionlist_t, auctioneer_t >::State::pos = Vector3D(0., 0., 0.)

Global particle position.

Definition at line 101 of file EigenStepper.hpp.

View newest version in sPHENIX GitHub at line 101 of file EigenStepper.hpp

Referenced by Acts::EigenStepper< bfield_t, extensionlist_t, auctioneer_t >::covarianceTransport(), and Acts::EigenStepper< bfield_t, extensionlist_t, auctioneer_t >::update().

template<typename bfield_t, typename extensionlist_t = StepperExtensionList<DefaultExtension>, typename auctioneer_t = detail::VoidAuctioneer>
double Acts::EigenStepper< bfield_t, extensionlist_t, auctioneer_t >::State::previousStepSize = 0.

Last performed step (for overstep limit calculation)

Definition at line 142 of file EigenStepper.hpp.

View newest version in sPHENIX GitHub at line 142 of file EigenStepper.hpp

template<typename bfield_t, typename extensionlist_t = StepperExtensionList<DefaultExtension>, typename auctioneer_t = detail::VoidAuctioneer>
double Acts::EigenStepper< bfield_t, extensionlist_t, auctioneer_t >::State::q = 1.

The charge.

Definition at line 110 of file EigenStepper.hpp.

View newest version in sPHENIX GitHub at line 110 of file EigenStepper.hpp

Referenced by Acts::EigenStepper< bfield_t, extensionlist_t, auctioneer_t >::covarianceTransport().

struct { ... } Acts::EigenStepper< bfield_t, extensionlist_t, auctioneer_t >::State::stepData
template<typename bfield_t, typename extensionlist_t = StepperExtensionList<DefaultExtension>, typename auctioneer_t = detail::VoidAuctioneer>
ConstrainedStep Acts::EigenStepper< bfield_t, extensionlist_t, auctioneer_t >::State::stepSize {std::numeric_limits<double>::max()}

Adaptive step size of the runge-kutta integration.

Definition at line 139 of file EigenStepper.hpp.

View newest version in sPHENIX GitHub at line 139 of file EigenStepper.hpp

template<typename bfield_t, typename extensionlist_t = StepperExtensionList<DefaultExtension>, typename auctioneer_t = detail::VoidAuctioneer>
double Acts::EigenStepper< bfield_t, extensionlist_t, auctioneer_t >::State::t = 0.
template<typename bfield_t, typename extensionlist_t = StepperExtensionList<DefaultExtension>, typename auctioneer_t = detail::VoidAuctioneer>
double Acts::EigenStepper< bfield_t, extensionlist_t, auctioneer_t >::State::tolerance = s_onSurfaceTolerance

The tolerance for the stepping.

Definition at line 145 of file EigenStepper.hpp.

View newest version in sPHENIX GitHub at line 145 of file EigenStepper.hpp


The documentation for this struct was generated from the following file: