ECCE @ EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Acts::AtlasStepper< bfield_t > Class Template Reference

the AtlasStepper implementation for the More...

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

Classes

struct  State
 Nested State struct for the local caching. More...
 

Public Types

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

Public Member Functions

 AtlasStepper (bfield_t bField=bfield_t())
 
Vector3D getField (State &state, const Vector3D &pos) 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
 Charge access.
 
double overstepLimit (const State &) const
 
double time (const State &state) const
 Time access.
 
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
 
CurvilinearState curvilinearState (State &state) const
 
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
 

Private Attributes

bfield_t m_bField
 
double m_overstepLimit = -50_um
 Overstep limit: could/should be dynamic.
 

Detailed Description

template<typename bfield_t>
class Acts::AtlasStepper< bfield_t >

the AtlasStepper implementation for the

Definition at line 31 of file AtlasStepper.hpp.

View newest version in sPHENIX GitHub at line 31 of file AtlasStepper.hpp

Member Typedef Documentation

template<typename bfield_t>
using Acts::AtlasStepper< bfield_t >::BField = bfield_t

Definition at line 38 of file AtlasStepper.hpp.

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

template<typename bfield_t>
using Acts::AtlasStepper< bfield_t >::BoundState = std::tuple<BoundParameters, Jacobian, double>

Definition at line 35 of file AtlasStepper.hpp.

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

template<typename bfield_t>
using Acts::AtlasStepper< bfield_t >::Covariance = BoundSymMatrix

Definition at line 34 of file AtlasStepper.hpp.

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

template<typename bfield_t>
using Acts::AtlasStepper< bfield_t >::CurvilinearState = std::tuple<CurvilinearParameters, Jacobian, double>

Definition at line 36 of file AtlasStepper.hpp.

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

template<typename bfield_t>
using Acts::AtlasStepper< bfield_t >::Jacobian = BoundMatrix

Definition at line 33 of file AtlasStepper.hpp.

View newest version in sPHENIX GitHub at line 33 of file AtlasStepper.hpp

Constructor & Destructor Documentation

template<typename bfield_t>
Acts::AtlasStepper< bfield_t >::AtlasStepper ( bfield_t  bField = bfield_t())
inline

Definition at line 300 of file AtlasStepper.hpp.

View newest version in sPHENIX GitHub at line 300 of file AtlasStepper.hpp

Member Function Documentation

template<typename bfield_t>
BoundState Acts::AtlasStepper< bfield_t >::boundState ( State state,
const Surface surface 
) const
inline

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
  • and the path length (from start - for ordering)

The transport of the position

Definition at line 405 of file AtlasStepper.hpp.

View newest version in sPHENIX GitHub at line 405 of file AtlasStepper.hpp

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

+ Here is the caller graph for this function:

template<typename bfield_t>
double Acts::AtlasStepper< bfield_t >::charge ( const State state) const
inline

Charge access.

Definition at line 328 of file AtlasStepper.hpp.

View newest version in sPHENIX GitHub at line 328 of file AtlasStepper.hpp

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

+ Here is the caller graph for this function:

template<typename bfield_t>
void Acts::AtlasStepper< bfield_t >::covarianceTransport ( State state) const
inline

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
Returns
the full transport jacobian

Definition at line 657 of file AtlasStepper.hpp.

View newest version in sPHENIX GitHub at line 657 of file AtlasStepper.hpp

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

+ Here is the caller graph for this function:

template<typename bfield_t>
void Acts::AtlasStepper< bfield_t >::covarianceTransport ( State state,
const Surface surface 
) const
inline

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
[in]surfaceis the surface to which the covariance is forwarded to

Definition at line 808 of file AtlasStepper.hpp.

View newest version in sPHENIX GitHub at line 808 of file AtlasStepper.hpp

template<typename bfield_t>
CurvilinearState Acts::AtlasStepper< bfield_t >::curvilinearState ( State state) const
inline

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
  • and the path length (from start - for ordering)

Definition at line 440 of file AtlasStepper.hpp.

View newest version in sPHENIX GitHub at line 440 of file AtlasStepper.hpp

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

+ Here is the caller graph for this function:

template<typename bfield_t>
Vector3D Acts::AtlasStepper< bfield_t >::direction ( const State state) const
inline

Definition at line 319 of file AtlasStepper.hpp.

View newest version in sPHENIX GitHub at line 319 of file AtlasStepper.hpp

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

+ Here is the caller graph for this function:

template<typename bfield_t>
Vector3D Acts::AtlasStepper< bfield_t >::getField ( State state,
const Vector3D 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, then it takes the field from the cell

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

Definition at line 309 of file AtlasStepper.hpp.

View newest version in sPHENIX GitHub at line 309 of file AtlasStepper.hpp

template<typename bfield_t>
double Acts::AtlasStepper< bfield_t >::momentum ( const State state) const
inline

Definition at line 323 of file AtlasStepper.hpp.

View newest version in sPHENIX GitHub at line 323 of file AtlasStepper.hpp

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

+ Here is the caller graph for this function:

template<typename bfield_t>
std::string Acts::AtlasStepper< bfield_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 391 of file AtlasStepper.hpp.

View newest version in sPHENIX GitHub at line 391 of file AtlasStepper.hpp

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

+ Here is the caller graph for this function:

template<typename bfield_t>
double Acts::AtlasStepper< bfield_t >::overstepLimit ( const State ) const
inline

Overstep limit

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

Definition at line 335 of file AtlasStepper.hpp.

View newest version in sPHENIX GitHub at line 335 of file AtlasStepper.hpp

template<typename bfield_t>
Vector3D Acts::AtlasStepper< bfield_t >::position ( const State state) const
inline

Definition at line 315 of file AtlasStepper.hpp.

View newest version in sPHENIX GitHub at line 315 of file AtlasStepper.hpp

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

+ Here is the caller graph for this function:

template<typename bfield_t>
void Acts::AtlasStepper< bfield_t >::releaseStepSize ( State state) const
inline

Release the Step size

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

Definition at line 384 of file AtlasStepper.hpp.

View newest version in sPHENIX GitHub at line 384 of file AtlasStepper.hpp

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

+ Here is the caller graph for this function:

template<typename bfield_t>
void Acts::AtlasStepper< bfield_t >::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 375 of file AtlasStepper.hpp.

View newest version in sPHENIX GitHub at line 375 of file AtlasStepper.hpp

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

+ Here is the caller graph for this function:

template<typename bfield_t>
template<typename propagator_state_t >
Result<double> Acts::AtlasStepper< bfield_t >::step ( propagator_state_t &  state) const
inline

Perform the actual step on the state

Parameters
stateis the provided stepper state (caller keeps thread locality)

Definition at line 1064 of file AtlasStepper.hpp.

View newest version in sPHENIX GitHub at line 1064 of file AtlasStepper.hpp

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

+ Here is the caller graph for this function:

template<typename bfield_t>
double Acts::AtlasStepper< bfield_t >::time ( const State state) const
inline

Time access.

Definition at line 338 of file AtlasStepper.hpp.

View newest version in sPHENIX GitHub at line 338 of file AtlasStepper.hpp

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

+ Here is the caller graph for this function:

template<typename bfield_t>
void Acts::AtlasStepper< bfield_t >::update ( State state,
const BoundParameters pars 
) const
inline

The state update method

Parameters
[in,out]stateThe stepper state for
[in]parsThe new track parameters at start

Definition at line 465 of file AtlasStepper.hpp.

View newest version in sPHENIX GitHub at line 465 of file AtlasStepper.hpp

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

+ Here is the caller graph for this function:

template<typename bfield_t>
void Acts::AtlasStepper< bfield_t >::update ( State state,
const Vector3D uposition,
const Vector3D udirection,
double  up,
double  time 
) const
inline

Method to update momentum, direction and p

Parameters
upositionthe updated position
udirectionthe updated direction
pthe updated momentum value

Definition at line 637 of file AtlasStepper.hpp.

View newest version in sPHENIX GitHub at line 637 of file AtlasStepper.hpp

template<typename bfield_t>
template<typename object_intersection_t >
void Acts::AtlasStepper< bfield_t >::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 365 of file AtlasStepper.hpp.

View newest version in sPHENIX GitHub at line 365 of file AtlasStepper.hpp

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

+ Here is the caller graph for this function:

template<typename bfield_t>
Intersection::Status Acts::AtlasStepper< bfield_t >::updateSurfaceStatus ( State state,
const Surface surface,
const BoundaryCheck bcheck 
) const
inline

Update surface status

This method intersect 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 350 of file AtlasStepper.hpp.

View newest version in sPHENIX GitHub at line 350 of file AtlasStepper.hpp

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

+ Here is the caller graph for this function:

Member Data Documentation

template<typename bfield_t>
bfield_t Acts::AtlasStepper< bfield_t >::m_bField
private

Definition at line 1306 of file AtlasStepper.hpp.

View newest version in sPHENIX GitHub at line 1306 of file AtlasStepper.hpp

template<typename bfield_t>
double Acts::AtlasStepper< bfield_t >::m_overstepLimit = -50_um
private

Overstep limit: could/should be dynamic.

Definition at line 1309 of file AtlasStepper.hpp.

View newest version in sPHENIX GitHub at line 1309 of file AtlasStepper.hpp


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