Analysis Software
Documentation for sPHENIX simulation software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Acts::EigenStepper< extensionlist_t, auctioneer_t > Class Template Reference

Runge-Kutta-Nystroem stepper based on Eigen implementation for the following ODE: More...

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

+ Inheritance diagram for Acts::EigenStepper< extensionlist_t, auctioneer_t >:

Classes

struct  State
 State for track parameter propagation. More...
 

Public Types

using Jacobian = BoundMatrix
 Jacobian, Covariance and State definitions.
 
using Covariance = BoundSquareMatrix
 
using BoundState = std::tuple< BoundTrackParameters, Jacobian, double >
 
using CurvilinearState = std::tuple< CurvilinearTrackParameters, Jacobian, double >
 

Public Member Functions

 EigenStepper (std::shared_ptr< const MagneticFieldProvider > bField, double overstepLimit=100 *UnitConstants::um)
 Constructor requires knowledge of the detector's magnetic field.
 
State makeState (std::reference_wrapper< const GeometryContext > gctx, std::reference_wrapper< const MagneticFieldContext > mctx, const BoundTrackParameters &par, double ssize=std::numeric_limits< double >::max()) const
 
void resetState (State &state, const BoundVector &boundParams, const BoundSquareMatrix &cov, const Surface &surface, const double stepSize=std::numeric_limits< double >::max()) const
 Resets the state.
 
Result< Vector3getField (State &state, const Vector3 &pos) const
 
Vector3 position (const State &state) const
 
Vector3 direction (const State &state) const
 
double qOverP (const State &state) const
 
double absoluteMomentum (const State &state) const
 
Vector3 momentum (const State &state) const
 
double charge (const State &state) const
 
const ParticleHypothesisparticleHypothesis (const State &state) const
 
double time (const State &state) const
 
Intersection3D::Status updateSurfaceStatus (State &state, const Surface &surface, Direction navDir, const BoundaryCheck &bcheck, ActsScalar surfaceTolerance=s_onSurfaceTolerance, const Logger &logger=getDummyLogger()) const
 
template<typename object_intersection_t >
void updateStepSize (State &state, const object_intersection_t &oIntersection, Direction, bool release=true) const
 
void setStepSize (State &state, double stepSize, ConstrainedStep::Type stype=ConstrainedStep::actor, bool release=true) const
 
double getStepSize (const State &state, ConstrainedStep::Type stype) const
 
void releaseStepSize (State &state) const
 
std::string outputStepSize (const State &state) const
 
double overstepLimit (const State &state) const
 
Result< BoundStateboundState (State &state, const Surface &surface, bool transportCov=true, const FreeToBoundCorrection &freeToBoundCorrection=FreeToBoundCorrection(false)) const
 This transports (if necessary) the covariance to the surface and creates a bound state. It does not check if the transported state is at the surface, this needs to be guaranteed by the propagator.
 
CurvilinearState curvilinearState (State &state, bool transportCov=true) const
 This transports (if necessary) the covariance to the current position and creates a curvilinear state.
 
void update (State &state, const FreeVector &freeParams, const BoundVector &boundParams, const Covariance &covariance, const Surface &surface) const
 
void update (State &state, const Vector3 &uposition, const Vector3 &udirection, double qOverP, double time) const
 
void transportCovarianceToCurvilinear (State &state) const
 
void transportCovarianceToBound (State &state, const Surface &surface, const FreeToBoundCorrection &freeToBoundCorrection=FreeToBoundCorrection(false)) const
 
template<typename propagator_state_t , typename navigator_t >
Result< doublestep (propagator_state_t &state, const navigator_t &navigator) const
 
void setIdentityJacobian (State &state) const
 

Protected Attributes

std::shared_ptr< const
MagneticFieldProvider
m_bField
 Magnetic field inside of the detector.
 
double m_overstepLimit
 Overstep limit.
 

Detailed Description

template<typename extensionlist_t = StepperExtensionList<DefaultExtension>, typename auctioneer_t = detail::VoidAuctioneer>
class Acts::EigenStepper< extensionlist_t, auctioneer_t >

Runge-Kutta-Nystroem stepper based on Eigen implementation for the following ODE:

r = (x,y,z) ... global position T = (Ax,Ay,Az) ... momentum direction (normalized)

dr/ds = T dT/ds = q/p * (T x B)

with s being the arc length of the track, q the charge of the particle, p the momentum magnitude and B the magnetic field

Definition at line 49 of file EigenStepper.hpp.

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

Member Typedef Documentation

template<typename extensionlist_t = StepperExtensionList<DefaultExtension>, typename auctioneer_t = detail::VoidAuctioneer>
using Acts::EigenStepper< extensionlist_t, auctioneer_t >::BoundState = std::tuple<BoundTrackParameters, Jacobian, double>

Definition at line 54 of file EigenStepper.hpp.

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

template<typename extensionlist_t = StepperExtensionList<DefaultExtension>, typename auctioneer_t = detail::VoidAuctioneer>
using Acts::EigenStepper< extensionlist_t, auctioneer_t >::Covariance = BoundSquareMatrix

Definition at line 53 of file EigenStepper.hpp.

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

template<typename extensionlist_t = StepperExtensionList<DefaultExtension>, typename auctioneer_t = detail::VoidAuctioneer>
using Acts::EigenStepper< extensionlist_t, auctioneer_t >::CurvilinearState = std::tuple<CurvilinearTrackParameters, Jacobian, double>

Definition at line 56 of file EigenStepper.hpp.

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

template<typename extensionlist_t = StepperExtensionList<DefaultExtension>, typename auctioneer_t = detail::VoidAuctioneer>
using Acts::EigenStepper< extensionlist_t, auctioneer_t >::Jacobian = BoundMatrix

Jacobian, Covariance and State definitions.

Definition at line 52 of file EigenStepper.hpp.

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

Constructor & Destructor Documentation

template<typename E , typename A >
Acts::EigenStepper< E, A >::EigenStepper ( std::shared_ptr< const MagneticFieldProvider bField,
double  overstepLimit = 100 * UnitConstants::um 
)

Constructor requires knowledge of the detector's magnetic field.

Definition at line 14 of file EigenStepper.ipp.

View newest version in sPHENIX GitHub at line 14 of file EigenStepper.ipp

Member Function Documentation

template<typename extensionlist_t = StepperExtensionList<DefaultExtension>, typename auctioneer_t = detail::VoidAuctioneer>
double Acts::EigenStepper< extensionlist_t, auctioneer_t >::absoluteMomentum ( const State state) const
inline

Absolute momentum accessor

Parameters
state[in] The stepping state (thread-local cache)

Definition at line 208 of file EigenStepper.hpp.

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

References Acts::EigenStepper< extensionlist_t, auctioneer_t >::particleHypothesis(), and Acts::EigenStepper< extensionlist_t, auctioneer_t >::qOverP().

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

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

template<typename E , typename A >
auto Acts::EigenStepper< E, A >::boundState ( State state,
const Surface surface,
bool  transportCov = true,
const FreeToBoundCorrection freeToBoundCorrection = FreeToBoundCorrection(false) 
) const

This transports (if necessary) the covariance to the surface and creates a bound state. It does not check if the transported state is at the surface, this needs to be guaranteed by the propagator.

Create and return the bound state at the current position

Parameters
[in]stateState that will be presented as BoundState
[in]surfaceThe surface to which we bind the state
[in]transportCovFlag steering covariance transport
[in]freeToBoundCorrectionCorrection for non-linearity effect during transform from free to bound
Returns
A bound state:
  • the parameters at the surface
  • the stepwise jacobian towards it (from last bound)
  • and the path length (from start - for ordering)

Definition at line 49 of file EigenStepper.ipp.

View newest version in sPHENIX GitHub at line 49 of file EigenStepper.ipp

References Acts::detail::boundState(), filter::state, and writeMapConfig::surface.

Referenced by Acts::Test::BOOST_AUTO_TEST_CASE(), and test_component_bound_state().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

template<typename extensionlist_t = StepperExtensionList<DefaultExtension>, typename auctioneer_t = detail::VoidAuctioneer>
double Acts::EigenStepper< extensionlist_t, auctioneer_t >::charge ( const State state) const
inline

Charge access

Parameters
state[in] The stepping state (thread-local cache)

Definition at line 222 of file EigenStepper.hpp.

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

References Acts::EigenStepper< extensionlist_t, auctioneer_t >::particleHypothesis(), and Acts::EigenStepper< extensionlist_t, auctioneer_t >::qOverP().

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

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

template<typename E , typename A >
auto Acts::EigenStepper< E, A >::curvilinearState ( State state,
bool  transportCov = true 
) const

This transports (if necessary) the covariance to the current position and creates a curvilinear state.

Create and return a curvilinear state at the current position

Parameters
[in]stateState that will be presented as CurvilinearState
[in]transportCovFlag steering covariance transport
Returns
A curvilinear state:
  • the curvilinear parameters at given position
  • the stepweise jacobian towards it (from last bound)
  • and the path length (from start - for ordering)

Definition at line 61 of file EigenStepper.ipp.

View newest version in sPHENIX GitHub at line 61 of file EigenStepper.ipp

References Acts::detail::curvilinearState(), and filter::state.

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

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

template<typename extensionlist_t = StepperExtensionList<DefaultExtension>, typename auctioneer_t = detail::VoidAuctioneer>
Vector3 Acts::EigenStepper< extensionlist_t, auctioneer_t >::direction ( const State state) const
inline

Momentum direction accessor

Parameters
state[in] The stepping state (thread-local cache)

Definition at line 196 of file EigenStepper.hpp.

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

References Acts::eFreeDir0, and Acts::EigenStepper< extensionlist_t, auctioneer_t >::State::pars.

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

+ Here is the caller graph for this function:

template<typename extensionlist_t = StepperExtensionList<DefaultExtension>, typename auctioneer_t = detail::VoidAuctioneer>
Result<Vector3> Acts::EigenStepper< extensionlist_t, auctioneer_t >::getField ( State state,
const Vector3 pos 
) const
inline

Get the field for the stepping, it checks first if the access is still within the Cell, and updates the cell if necessary.

Parameters
[in,out]stateis the propagation state associated with the track the magnetic field cell is used (and potentially updated)
[in]posis the field position

Definition at line 181 of file EigenStepper.hpp.

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

References Acts::EigenStepper< extensionlist_t, auctioneer_t >::State::fieldCache, and Acts::EigenStepper< extensionlist_t, auctioneer_t >::m_bField.

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

+ Here is the caller graph for this function:

template<typename extensionlist_t = StepperExtensionList<DefaultExtension>, typename auctioneer_t = detail::VoidAuctioneer>
double Acts::EigenStepper< extensionlist_t, auctioneer_t >::getStepSize ( const State state,
ConstrainedStep::Type  stype 
) const
inline

Get the step size

Parameters
state[in] The stepping state (thread-local cache)
stype[in] The step size type to be returned

Definition at line 291 of file EigenStepper.hpp.

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

References Acts::EigenStepper< extensionlist_t, auctioneer_t >::State::stepSize, and Acts::ConstrainedStep::value().

+ Here is the call graph for this function:

template<typename E , typename A >
auto Acts::EigenStepper< E, A >::makeState ( std::reference_wrapper< const GeometryContext gctx,
std::reference_wrapper< const MagneticFieldContext mctx,
const BoundTrackParameters par,
double  ssize = std::numeric_limits<double>::max() 
) const

Definition at line 19 of file EigenStepper.ipp.

View newest version in sPHENIX GitHub at line 19 of file EigenStepper.ipp

References gctx.

template<typename extensionlist_t = StepperExtensionList<DefaultExtension>, typename auctioneer_t = detail::VoidAuctioneer>
Vector3 Acts::EigenStepper< extensionlist_t, auctioneer_t >::momentum ( const State state) const
inline

Momentum accessor

Parameters
state[in] The stepping state (thread-local cache)

Definition at line 215 of file EigenStepper.hpp.

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

References Acts::EigenStepper< extensionlist_t, auctioneer_t >::absoluteMomentum(), and Acts::EigenStepper< extensionlist_t, auctioneer_t >::direction().

+ Here is the call graph for this function:

template<typename extensionlist_t = StepperExtensionList<DefaultExtension>, typename auctioneer_t = detail::VoidAuctioneer>
std::string Acts::EigenStepper< extensionlist_t, auctioneer_t >::outputStepSize ( const State state) const
inline

Output the Step Size - single component

Parameters
state[in,out] The stepping state (thread-local cache)

Definition at line 305 of file EigenStepper.hpp.

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

References Acts::EigenStepper< extensionlist_t, auctioneer_t >::State::stepSize, and Acts::ConstrainedStep::toString().

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

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

template<typename extensionlist_t = StepperExtensionList<DefaultExtension>, typename auctioneer_t = detail::VoidAuctioneer>
double Acts::EigenStepper< extensionlist_t, auctioneer_t >::overstepLimit ( const State state) const
inline

Overstep limit

Parameters
stateThe stepping state (thread-local cache)

Definition at line 312 of file EigenStepper.hpp.

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

References Acts::EigenStepper< extensionlist_t, auctioneer_t >::m_overstepLimit.

template<typename extensionlist_t = StepperExtensionList<DefaultExtension>, typename auctioneer_t = detail::VoidAuctioneer>
const ParticleHypothesis& Acts::EigenStepper< extensionlist_t, auctioneer_t >::particleHypothesis ( const State state) const
inline

Particle hypothesis

Parameters
state[in] The stepping state (thread-local cache)

Definition at line 229 of file EigenStepper.hpp.

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

References Acts::EigenStepper< extensionlist_t, auctioneer_t >::State::particleHypothesis.

Referenced by Acts::EigenStepper< extensionlist_t, auctioneer_t >::absoluteMomentum(), and Acts::EigenStepper< extensionlist_t, auctioneer_t >::charge().

+ Here is the caller graph for this function:

template<typename extensionlist_t = StepperExtensionList<DefaultExtension>, typename auctioneer_t = detail::VoidAuctioneer>
Vector3 Acts::EigenStepper< extensionlist_t, auctioneer_t >::position ( const State state) const
inline

Global particle position accessor

Parameters
state[in] The stepping state (thread-local cache)

Definition at line 189 of file EigenStepper.hpp.

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

References Acts::eFreePos0, and Acts::EigenStepper< extensionlist_t, auctioneer_t >::State::pars.

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

+ Here is the caller graph for this function:

template<typename extensionlist_t = StepperExtensionList<DefaultExtension>, typename auctioneer_t = detail::VoidAuctioneer>
double Acts::EigenStepper< extensionlist_t, auctioneer_t >::qOverP ( const State state) const
inline

QoP direction accessor

Parameters
state[in] The stepping state (thread-local cache)

Definition at line 203 of file EigenStepper.hpp.

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

References Acts::eFreeQOverP, and Acts::EigenStepper< extensionlist_t, auctioneer_t >::State::pars.

Referenced by Acts::EigenStepper< extensionlist_t, auctioneer_t >::absoluteMomentum(), and Acts::EigenStepper< extensionlist_t, auctioneer_t >::charge().

+ Here is the caller graph for this function:

template<typename extensionlist_t = StepperExtensionList<DefaultExtension>, typename auctioneer_t = detail::VoidAuctioneer>
void Acts::EigenStepper< extensionlist_t, auctioneer_t >::releaseStepSize ( State state) const
inline

Release the Step size

Parameters
state[in,out] The stepping state (thread-local cache)

Definition at line 298 of file EigenStepper.hpp.

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

References Acts::ConstrainedStep::actor, Acts::ConstrainedStep::release(), and Acts::EigenStepper< extensionlist_t, auctioneer_t >::State::stepSize.

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

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

template<typename E , typename A >
void Acts::EigenStepper< E, A >::resetState ( State state,
const BoundVector boundParams,
const BoundSquareMatrix cov,
const Surface surface,
const double  stepSize = std::numeric_limits<double>::max() 
) const

Resets the state.

Parameters
[in,out]stateState of the stepper
[in]boundParamsParameters in bound parametrisation
[in]covCovariance matrix
[in]surfaceThe reference surface of the bound parameters
[in]stepSizeStep size

Definition at line 27 of file EigenStepper.ipp.

View newest version in sPHENIX GitHub at line 27 of file EigenStepper.ipp

References Acts::Surface::boundToFreeJacobian(), Acts::EigenStepper< extensionlist_t, auctioneer_t >::State::derivative, Acts::EigenStepper< extensionlist_t, auctioneer_t >::State::geoContext, Acts::EigenStepper< extensionlist_t, auctioneer_t >::State::jacobian, Acts::EigenStepper< extensionlist_t, auctioneer_t >::State::jacToGlobal, Acts::EigenStepper< extensionlist_t, auctioneer_t >::State::jacTransport, Acts::EigenStepper< extensionlist_t, auctioneer_t >::State::pathAccumulated, Acts::EigenStepper< extensionlist_t, auctioneer_t >::State::stepSize, Acts::detail::transformBoundToFreeParameters(), and Acts::KalmanVertexTrackUpdater::update().

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

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

template<typename E , typename A >
void Acts::EigenStepper< E, A >::setIdentityJacobian ( State state) const

Method that reset the Jacobian to the Identity for when no bound state are available

Parameters
[in,out]stateState of the stepper

Definition at line 274 of file EigenStepper.ipp.

View newest version in sPHENIX GitHub at line 274 of file EigenStepper.ipp

References Acts::EigenStepper< extensionlist_t, auctioneer_t >::State::jacobian.

template<typename extensionlist_t = StepperExtensionList<DefaultExtension>, typename auctioneer_t = detail::VoidAuctioneer>
void Acts::EigenStepper< extensionlist_t, auctioneer_t >::setStepSize ( State state,
double  stepSize,
ConstrainedStep::Type  stype = ConstrainedStep::actor,
bool  release = true 
) const
inline

Set Step size - explicitly with a double

Parameters
state[in,out] The stepping state (thread-local cache)
stepSize[in] The step size value
stype[in] The step size type to be set
release[in] Do we release the step size?

Definition at line 280 of file EigenStepper.hpp.

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

References Acts::EigenStepper< extensionlist_t, auctioneer_t >::State::previousStepSize, Acts::EigenStepper< extensionlist_t, auctioneer_t >::State::stepSize, Acts::ConstrainedStep::update(), and Acts::ConstrainedStep::value().

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

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

template<typename E , typename A >
template<typename propagator_state_t , typename navigator_t >
Acts::Result< double > Acts::EigenStepper< E, A >::step ( propagator_state_t &  state,
const navigator_t &  navigator 
) const

Perform a Runge-Kutta track parameter propagation step

Parameters
[in,out]statethe propagation state
[in]navigatorthe navigator of the propagation
Note
The state contains the desired step size. It can be negative during backwards track propagation, and since we're using an adaptive algorithm, it can be modified by the stepper class during propagation.

Definition at line 112 of file EigenStepper.ipp.

View newest version in sPHENIX GitHub at line 112 of file EigenStepper.ipp

References Acts::UnitConstants::e, Acts::eFreeDir0, Acts::eFreePos0, f, ckf::field, h, h2, Acts::UnitConstants::min, Acts::Test::pos, and position.

Referenced by Acts::Test::BOOST_AUTO_TEST_CASE(), test_component_bound_state(), test_multi_stepper_surface_status_update(), and test_multi_stepper_vs_eigen_stepper().

+ Here is the caller graph for this function:

template<typename extensionlist_t = StepperExtensionList<DefaultExtension>, typename auctioneer_t = detail::VoidAuctioneer>
double Acts::EigenStepper< extensionlist_t, auctioneer_t >::time ( const State state) const
inline

Time access

Parameters
state[in] The stepping state (thread-local cache)

Definition at line 236 of file EigenStepper.hpp.

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

References Acts::eFreeTime, and Acts::EigenStepper< extensionlist_t, auctioneer_t >::State::pars.

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

+ Here is the caller graph for this function:

template<typename E , typename A >
void Acts::EigenStepper< E, A >::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

Template Parameters
surface_tthe Surface type
Parameters
[in,out]stateState of the stepper
[in]surfaceis the surface to which the covariance is forwarded to
[in]freeToBoundCorrectionCorrection for non-linearity effect during transform from free to bound
Note
no check is done if the position is actually on the surface

Definition at line 101 of file EigenStepper.ipp.

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

References Acts::EigenStepper< extensionlist_t, auctioneer_t >::State::cov, Acts::EigenStepper< extensionlist_t, auctioneer_t >::State::derivative, Acts::EigenStepper< extensionlist_t, auctioneer_t >::State::geoContext, Acts::EigenStepper< extensionlist_t, auctioneer_t >::State::jacobian, Acts::EigenStepper< extensionlist_t, auctioneer_t >::State::jacToGlobal, Acts::EigenStepper< extensionlist_t, auctioneer_t >::State::jacTransport, Acts::EigenStepper< extensionlist_t, auctioneer_t >::State::pars, writeMapConfig::surface, and Acts::detail::transportCovarianceToBound().

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

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

template<typename E , typename A >
void Acts::EigenStepper< E, A >::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

Parameters
[in,out]stateState of the stepper

Definition at line 93 of file EigenStepper.ipp.

View newest version in sPHENIX GitHub at line 93 of file EigenStepper.ipp

References Acts::EigenStepper< extensionlist_t, auctioneer_t >::State::cov, Acts::EigenStepper< extensionlist_t, auctioneer_t >::State::derivative, Acts::EigenStepper< extensionlist_t, auctioneer_t >::State::jacobian, Acts::EigenStepper< extensionlist_t, auctioneer_t >::State::jacToGlobal, Acts::EigenStepper< extensionlist_t, auctioneer_t >::State::jacTransport, and Acts::detail::transportCovarianceToCurvilinear().

Referenced by Acts::Test::BOOST_AUTO_TEST_CASE(), and test_multi_stepper_vs_eigen_stepper().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

template<typename E , typename A >
void Acts::EigenStepper< E, A >::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

Parameters
[in,out]stateState object that will be updated
[in]freeParamsFree parameters that will be written into state
[in]boundParamsCorresponding bound parameters used to update jacToGlobal in state
[in]covarianceThe covariance that will be written into state
[in]surfaceThe surface used to update the jacToGlobal

Definition at line 71 of file EigenStepper.ipp.

View newest version in sPHENIX GitHub at line 71 of file EigenStepper.ipp

References Acts::Surface::boundToFreeJacobian(), Acts::EigenStepper< extensionlist_t, auctioneer_t >::State::cov, covariance(), Acts::EigenStepper< extensionlist_t, auctioneer_t >::State::geoContext, Acts::EigenStepper< extensionlist_t, auctioneer_t >::State::jacToGlobal, and Acts::EigenStepper< extensionlist_t, auctioneer_t >::State::pars.

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

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

template<typename E , typename A >
void Acts::EigenStepper< E, A >::update ( State state,
const Vector3 uposition,
const Vector3 udirection,
double  qOverP,
double  time 
) const

Method to update the stepper state

Parameters
[in,out]stateState object that will be updated
[in]upositionthe updated position
[in]udirectionthe updated direction
[in]qOverPthe updated qOverP value
[in]timethe updated time value

Definition at line 83 of file EigenStepper.ipp.

View newest version in sPHENIX GitHub at line 83 of file EigenStepper.ipp

References Acts::eFreeDir0, Acts::eFreePos0, Acts::eFreeQOverP, Acts::eFreeTime, Acts::EigenStepper< extensionlist_t, auctioneer_t >::State::pars, and Acts::Test::time.

template<typename extensionlist_t = StepperExtensionList<DefaultExtension>, typename auctioneer_t = detail::VoidAuctioneer>
template<typename object_intersection_t >
void Acts::EigenStepper< extensionlist_t, auctioneer_t >::updateStepSize ( State state,
const object_intersection_t &  oIntersection,
Direction  ,
bool  release = true 
) const
inline

Update step size

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.

Parameters
state[in,out] The stepping state (thread-local cache)
oIntersection[in] The ObjectIntersection to layer, boundary, etc
release[in] boolean to trigger step size release

Definition at line 269 of file EigenStepper.hpp.

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

References filter::state.

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

+ Here is the caller graph for this function:

template<typename extensionlist_t = StepperExtensionList<DefaultExtension>, typename auctioneer_t = detail::VoidAuctioneer>
Intersection3D::Status Acts::EigenStepper< extensionlist_t, auctioneer_t >::updateSurfaceStatus ( State state,
const Surface surface,
Direction  navDir,
const BoundaryCheck bcheck,
ActsScalar  surfaceTolerance = s_onSurfaceTolerance,
const Logger logger = getDummyLogger() 
) const
inline

Update surface status

It checks the status to the reference surface & updates the step size accordingly

Parameters
[in,out]stateThe stepping state (thread-local cache)
[in]surfaceThe surface provided
[in]navDirThe navigation direction
[in]bcheckThe boundary check for this status update
[in]surfaceToleranceSurface tolerance used for intersection
[in]loggerA Logger instance

Definition at line 249 of file EigenStepper.hpp.

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

References logger(), Acts::Test::navDir, filter::state, and writeMapConfig::surface.

Referenced by Acts::Test::BOOST_AUTO_TEST_CASE(), and test_component_bound_state().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

Member Data Documentation

template<typename extensionlist_t = StepperExtensionList<DefaultExtension>, typename auctioneer_t = detail::VoidAuctioneer>
std::shared_ptr<const MagneticFieldProvider> Acts::EigenStepper< extensionlist_t, auctioneer_t >::m_bField
protected

Magnetic field inside of the detector.

Definition at line 417 of file EigenStepper.hpp.

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

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

template<typename extensionlist_t = StepperExtensionList<DefaultExtension>, typename auctioneer_t = detail::VoidAuctioneer>
double Acts::EigenStepper< extensionlist_t, auctioneer_t >::m_overstepLimit
protected

Overstep limit.

Definition at line 420 of file EigenStepper.hpp.

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

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


The documentation for this class was generated from the following files: