ECCE @ EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Acts::StraightLineStepper Class Reference

straight line stepper based on Surface intersection More...

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

Classes

struct  State
 

Public Types

using Jacobian = BoundMatrix
 
using Covariance = BoundSymMatrix
 
using BoundState = std::tuple< BoundParameters, Jacobian, double >
 
using CurvilinearState = std::tuple< CurvilinearParameters, Jacobian, double >
 
using BField = NullBField
 
using state_type = State
 

Public Member Functions

 StraightLineStepper ()=default
 Constructor.
 
Vector3D getField (State &, const Vector3D &) const
 
Vector3D position (const State &state) const
 
Vector3D direction (const State &state) const
 
double momentum (const State &state) const
 
double charge (const State &state) const
 
double time (const State &state) const
 
double overstepLimit (const State &) const
 
Intersection::Status updateSurfaceStatus (State &state, const Surface &surface, const BoundaryCheck &bcheck) const
 
template<typename object_intersection_t >
void updateStepSize (State &state, const object_intersection_t &oIntersection, bool release=true) const
 
void setStepSize (State &state, double stepSize, ConstrainedStep::Type stype=ConstrainedStep::actor) const
 
void releaseStepSize (State &state) const
 
std::string outputStepSize (const State &state) const
 
BoundState boundState (State &state, const Surface &surface) const
 It does not check if the transported state is at the surface, this needs to be guaranteed by the propagator.
 
CurvilinearState curvilinearState (State &state) const
 This creates a curvilinear state.
 
void update (State &state, const BoundParameters &pars) const
 
void update (State &state, const Vector3D &uposition, const Vector3D &udirection, double up, double time) const
 
void covarianceTransport (State &state) const
 
void covarianceTransport (State &state, const Surface &surface) const
 
template<typename propagator_state_t >
Result< double > step (propagator_state_t &state) const
 

Detailed Description

straight line stepper based on Surface intersection

The straight line stepper is a simple navigation stepper to be used to navigate through the tracking geometry. It can be used for simple material mapping, navigation validation

Definition at line 32 of file StraightLineStepper.hpp.

View newest version in sPHENIX GitHub at line 32 of file StraightLineStepper.hpp

Member Typedef Documentation

Definition at line 38 of file StraightLineStepper.hpp.

View newest version in sPHENIX GitHub at line 38 of file StraightLineStepper.hpp

Definition at line 36 of file StraightLineStepper.hpp.

View newest version in sPHENIX GitHub at line 36 of file StraightLineStepper.hpp

Definition at line 35 of file StraightLineStepper.hpp.

View newest version in sPHENIX GitHub at line 35 of file StraightLineStepper.hpp

Definition at line 37 of file StraightLineStepper.hpp.

View newest version in sPHENIX GitHub at line 37 of file StraightLineStepper.hpp

Definition at line 34 of file StraightLineStepper.hpp.

View newest version in sPHENIX GitHub at line 34 of file StraightLineStepper.hpp

Always use the same propagation state type, independently of the initial track parameter type and of the target surface

Definition at line 134 of file StraightLineStepper.hpp.

View newest version in sPHENIX GitHub at line 134 of file StraightLineStepper.hpp

Constructor & Destructor Documentation

Acts::StraightLineStepper::StraightLineStepper ( )
default

Constructor.

Member Function Documentation

std::tuple< BoundParameters, BoundMatrix, double > Acts::StraightLineStepper::boundState ( State state,
const Surface surface 
) const

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
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 15 of file StraightLineStepper.cpp.

View newest version in sPHENIX GitHub at line 15 of file StraightLineStepper.cpp

References Acts::detail::boundState(), Acts::StraightLineStepper::State::cov, Acts::StraightLineStepper::State::covTransport, Acts::StraightLineStepper::State::derivative, Acts::StraightLineStepper::State::dir, Acts::StraightLineStepper::State::geoContext, Acts::StraightLineStepper::State::jacobian, Acts::StraightLineStepper::State::jacToGlobal, Acts::StraightLineStepper::State::jacTransport, Acts::StraightLineStepper::State::p, Dataset::parameters, Acts::StraightLineStepper::State::pathAccumulated, Acts::StraightLineStepper::State::pos, Acts::StraightLineStepper::State::q, and Acts::StraightLineStepper::State::t.

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

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

double Acts::StraightLineStepper::charge ( const State state) const
inline

Charge access

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

Definition at line 167 of file StraightLineStepper.hpp.

View newest version in sPHENIX GitHub at line 167 of file StraightLineStepper.hpp

References Acts::StraightLineStepper::State::q.

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

+ Here is the caller graph for this function:

void Acts::StraightLineStepper::covarianceTransport ( State state) const

Method for on-demand transport of the covariance to a new curvilinear frame at current position, or direction of the state - for the moment a dummy method

Parameters
[in,out]stateState of the stepper

Definition at line 57 of file StraightLineStepper.cpp.

View newest version in sPHENIX GitHub at line 57 of file StraightLineStepper.cpp

References Acts::StraightLineStepper::State::cov, Acts::detail::covarianceTransport(), Acts::StraightLineStepper::State::derivative, Acts::StraightLineStepper::State::dir, Acts::StraightLineStepper::State::jacobian, Acts::StraightLineStepper::State::jacToGlobal, and Acts::StraightLineStepper::State::jacTransport.

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

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void Acts::StraightLineStepper::covarianceTransport ( State state,
const Surface surface 
) const

Method for on-demand transport of the covariance to a new curvilinear frame at current position, or direction of the state - for the moment a dummy method

Template Parameters
surface_tthe surface type - ignored here
Parameters
[in,out]stateThe stepper state
[in]surfaceis the surface to which the covariance is forwarded to
Note
no check is done if the position is actually on the surface

Definition at line 62 of file StraightLineStepper.cpp.

View newest version in sPHENIX GitHub at line 62 of file StraightLineStepper.cpp

References Acts::StraightLineStepper::State::cov, Acts::detail::covarianceTransport(), Acts::StraightLineStepper::State::derivative, Acts::StraightLineStepper::State::dir, Acts::StraightLineStepper::State::geoContext, Acts::StraightLineStepper::State::jacobian, Acts::StraightLineStepper::State::jacToGlobal, Acts::StraightLineStepper::State::jacTransport, Acts::StraightLineStepper::State::p, Dataset::parameters, Acts::StraightLineStepper::State::pos, Acts::StraightLineStepper::State::q, and Acts::StraightLineStepper::State::t.

+ Here is the call graph for this function:

std::tuple< CurvilinearParameters, BoundMatrix, double > Acts::StraightLineStepper::curvilinearState ( State state) const

This creates a curvilinear state.

Create and return a curvilinear state at the current position

Parameters
[in]stateState that will be presented as CurvilinearState
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 26 of file StraightLineStepper.cpp.

View newest version in sPHENIX GitHub at line 26 of file StraightLineStepper.cpp

References Acts::StraightLineStepper::State::cov, Acts::StraightLineStepper::State::covTransport, Acts::detail::curvilinearState(), Acts::StraightLineStepper::State::derivative, Acts::StraightLineStepper::State::dir, Acts::StraightLineStepper::State::jacobian, Acts::StraightLineStepper::State::jacToGlobal, Acts::StraightLineStepper::State::jacTransport, Acts::StraightLineStepper::State::p, Dataset::parameters, Acts::StraightLineStepper::State::pathAccumulated, Acts::StraightLineStepper::State::pos, Acts::StraightLineStepper::State::q, and Acts::StraightLineStepper::State::t.

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

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

Vector3D Acts::StraightLineStepper::direction ( const State state) const
inline

Momentum direction accessor

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

Definition at line 157 of file StraightLineStepper.hpp.

View newest version in sPHENIX GitHub at line 157 of file StraightLineStepper.hpp

References Acts::StraightLineStepper::State::dir.

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

+ Here is the caller graph for this function:

Vector3D Acts::StraightLineStepper::getField ( State ,
const Vector3D  
) const
inline

Get the field for the stepping, this gives back a zero field

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 144 of file StraightLineStepper.hpp.

View newest version in sPHENIX GitHub at line 144 of file StraightLineStepper.hpp

double Acts::StraightLineStepper::momentum ( const State state) const
inline

Momentum accessor

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

Definition at line 162 of file StraightLineStepper.hpp.

View newest version in sPHENIX GitHub at line 162 of file StraightLineStepper.hpp

References Acts::StraightLineStepper::State::p.

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

+ Here is the caller graph for this function:

std::string Acts::StraightLineStepper::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 233 of file StraightLineStepper.hpp.

View newest version in sPHENIX GitHub at line 233 of file StraightLineStepper.hpp

References Acts::StraightLineStepper::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:

double Acts::StraightLineStepper::overstepLimit ( const State ) const
inline

Overstep limit

Parameters
stateThe stepping state (thread-local cache)

Definition at line 177 of file StraightLineStepper.hpp.

View newest version in sPHENIX GitHub at line 177 of file StraightLineStepper.hpp

References Acts::s_onSurfaceTolerance.

Vector3D Acts::StraightLineStepper::position ( const State state) const
inline

Global particle position accessor

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

Definition at line 152 of file StraightLineStepper.hpp.

View newest version in sPHENIX GitHub at line 152 of file StraightLineStepper.hpp

References Acts::StraightLineStepper::State::pos.

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

+ Here is the caller graph for this function:

void Acts::StraightLineStepper::releaseStepSize ( State state) const
inline

Release the Step size

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

Definition at line 226 of file StraightLineStepper.hpp.

View newest version in sPHENIX GitHub at line 226 of file StraightLineStepper.hpp

References Acts::ConstrainedStep::actor, Acts::ConstrainedStep::release(), and Acts::StraightLineStepper::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:

void Acts::StraightLineStepper::setStepSize ( State state,
double  stepSize,
ConstrainedStep::Type  stype = ConstrainedStep::actor 
) const
inline

Set Step size - explicitely 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

Definition at line 217 of file StraightLineStepper.hpp.

View newest version in sPHENIX GitHub at line 217 of file StraightLineStepper.hpp

References Acts::StraightLineStepper::State::previousStepSize, Acts::StraightLineStepper::State::stepSize, and Acts::ConstrainedStep::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 propagator_state_t >
Result<double> Acts::StraightLineStepper::step ( propagator_state_t &  state) const
inline

Perform a straight line propagation step

Parameters
[in,out]stateis the propagation state associated with the track parameters that are being propagated. 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.
Returns
the step size taken

Definition at line 310 of file StraightLineStepper.hpp.

View newest version in sPHENIX GitHub at line 310 of file StraightLineStepper.hpp

References D(), and Acts::UnitConstants::h.

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

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

double Acts::StraightLineStepper::time ( const State state) const
inline

Time access

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

Definition at line 172 of file StraightLineStepper.hpp.

View newest version in sPHENIX GitHub at line 172 of file StraightLineStepper.hpp

References Acts::StraightLineStepper::State::t.

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

+ Here is the caller graph for this function:

void Acts::StraightLineStepper::update ( State state,
const BoundParameters pars 
) const

Method to update a stepper state to the some parameters

Parameters
[in,out]stateState object that will be updated
[in]parsParameters that will be written into state

Definition at line 35 of file StraightLineStepper.cpp.

View newest version in sPHENIX GitHub at line 35 of file StraightLineStepper.cpp

References Acts::StraightLineStepper::State::cov, Acts::SingleTrackParameters< ChargePolicy >::covariance(), Acts::StraightLineStepper::State::dir, mom, Acts::SingleTrackParameters< ChargePolicy >::momentum(), Acts::StraightLineStepper::State::p, Acts::StraightLineStepper::State::pos, Acts::SingleTrackParameters< ChargePolicy >::position(), Acts::StraightLineStepper::State::t, and Acts::SingleTrackParameters< ChargePolicy >::time().

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

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void Acts::StraightLineStepper::update ( State state,
const Vector3D uposition,
const Vector3D udirection,
double  up,
double  time 
) const

Method to update momentum, direction and p

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

Definition at line 48 of file StraightLineStepper.cpp.

View newest version in sPHENIX GitHub at line 48 of file StraightLineStepper.cpp

References Acts::StraightLineStepper::State::dir, Acts::StraightLineStepper::State::p, Acts::StraightLineStepper::State::pos, Acts::StraightLineStepper::State::t, and time().

+ Here is the call graph for this function:

template<typename object_intersection_t >
void Acts::StraightLineStepper::updateStepSize ( State state,
const object_intersection_t &  oIntersection,
bool  release = true 
) const
inline

Update step size

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

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 206 of file StraightLineStepper.hpp.

View newest version in sPHENIX GitHub at line 206 of file StraightLineStepper.hpp

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

+ Here is the caller graph for this function:

Intersection::Status Acts::StraightLineStepper::updateSurfaceStatus ( State state,
const Surface surface,
const BoundaryCheck bcheck 
) const
inline

Update surface status

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)
surface[in] The surface provided
bcheck[in] The boundary check for this status update

Definition at line 191 of file StraightLineStepper.hpp.

View newest version in sPHENIX GitHub at line 191 of file StraightLineStepper.hpp

References surface().

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

+ Here is the call graph for this function:

+ Here is the caller graph for this function:


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