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/sPHENIX/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 62 of file EigenStepper.hpp.

View newest version in sPHENIX GitHub at line 62 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 77 of file EigenStepper.hpp.

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

References Acts::Test::cov, 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 163 of file EigenStepper.hpp.

View newest version in sPHENIX GitHub at line 163 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 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>
Vector3D Acts::EigenStepper< bfield_t, extensionlist_t, auctioneer_t >::State::B_last

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>
Vector3D Acts::EigenStepper< bfield_t, extensionlist_t, auctioneer_t >::State::B_middle

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>
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 136 of file EigenStepper.hpp.

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

Referenced by Acts::Test::BOOST_AUTO_TEST_CASE().

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()
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.)
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 160 of file EigenStepper.hpp.

View newest version in sPHENIX GitHub at line 160 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 154 of file EigenStepper.hpp.

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

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

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
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 123 of file EigenStepper.hpp.

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

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

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()
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 129 of file EigenStepper.hpp.

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

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

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 170 of file EigenStepper.hpp.

View newest version in sPHENIX GitHub at line 170 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 170 of file EigenStepper.hpp.

View newest version in sPHENIX GitHub at line 170 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 170 of file EigenStepper.hpp.

View newest version in sPHENIX GitHub at line 170 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 170 of file EigenStepper.hpp.

View newest version in sPHENIX GitHub at line 170 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 172 of file EigenStepper.hpp.

View newest version in sPHENIX GitHub at line 172 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 120 of file EigenStepper.hpp.

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

Referenced by Acts::Test::BOOST_AUTO_TEST_CASE(), and Acts::EigenStepper< bfield_t, extensionlist_t, auctioneer_t >::resetState().

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 140 of file EigenStepper.hpp.

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

Referenced by Acts::Test::BOOST_AUTO_TEST_CASE(), and Acts::EigenStepper< bfield_t, extensionlist_t, auctioneer_t >::resetState().

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.)
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 146 of file EigenStepper.hpp.

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

Referenced by Acts::Test::BOOST_AUTO_TEST_CASE(), and Acts::EigenStepper< bfield_t, extensionlist_t, auctioneer_t >::setStepSize().

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.
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()}
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 149 of file EigenStepper.hpp.

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

Referenced by Acts::Test::BOOST_AUTO_TEST_CASE().


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