EIC Software
Reference for
EIC
simulation and reconstruction software on GitHub
|
straight line stepper based on Surface intersection More...
#include <acts/blob/sPHENIX/Core/include/Acts/Propagator/StraightLineStepper.hpp>
Classes | |
struct | State |
Public Types | |
using | Jacobian = BoundMatrix |
using | Covariance = BoundSymMatrix |
using | BoundState = std::tuple< BoundTrackParameters, Jacobian, double > |
using | CurvilinearState = std::tuple< CurvilinearTrackParameters, Jacobian, double > |
using | BField = NullBField |
using | state_type = State |
Public Member Functions | |
StraightLineStepper ()=default | |
Constructor. | |
void | resetState (State &state, const BoundVector &boundParams, const BoundSymMatrix &cov, const Surface &surface, const NavigationDirection navDir=forward, const double stepSize=std::numeric_limits< double >::max()) const |
Resets the state. | |
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 |
Intersection3D::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 FreeVector ¶meters, const Covariance &covariance) 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 |
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 35 of file StraightLineStepper.hpp.
View newest version in sPHENIX GitHub at line 35 of file StraightLineStepper.hpp
Definition at line 42 of file StraightLineStepper.hpp.
View newest version in sPHENIX GitHub at line 42 of file StraightLineStepper.hpp
using Acts::StraightLineStepper::BoundState = std::tuple<BoundTrackParameters, Jacobian, double> |
Definition at line 39 of file StraightLineStepper.hpp.
View newest version in sPHENIX GitHub at line 39 of file StraightLineStepper.hpp
Definition at line 38 of file StraightLineStepper.hpp.
View newest version in sPHENIX GitHub at line 38 of file StraightLineStepper.hpp
using Acts::StraightLineStepper::CurvilinearState = std::tuple<CurvilinearTrackParameters, Jacobian, double> |
Definition at line 41 of file StraightLineStepper.hpp.
View newest version in sPHENIX GitHub at line 41 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
Always use the same propagation state type, independently of the initial track parameter type and of the target surface
Definition at line 138 of file StraightLineStepper.hpp.
View newest version in sPHENIX GitHub at line 138 of file StraightLineStepper.hpp
|
default |
Constructor.
std::tuple< BoundTrackParameters, 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
[in] | state | State that will be presented as BoundState |
[in] | surface | The surface to which we bind the state |
Definition at line 17 of file StraightLineStepper.cpp.
View newest version in sPHENIX GitHub at line 17 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::eFreeDir0, Acts::eFreeDir1, Acts::eFreeDir2, Acts::eFreePos0, Acts::eFreePos1, Acts::eFreePos2, Acts::eFreeQOverP, Acts::eFreeTime, Acts::eMom0, Acts::eMom1, Acts::eMom2, Acts::ePos0, Acts::ePos1, Acts::ePos2, 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().
|
inline |
Charge access
state | [in] The stepping state (thread-local cache) |
Definition at line 184 of file StraightLineStepper.hpp.
View newest version in sPHENIX GitHub at line 184 of file StraightLineStepper.hpp
References Acts::StraightLineStepper::State::q.
Referenced by Acts::Test::BOOST_AUTO_TEST_CASE().
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
[in,out] | state | State of the stepper |
Definition at line 67 of file StraightLineStepper.cpp.
View newest version in sPHENIX GitHub at line 67 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().
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
surface_t | the surface type - ignored here |
[in,out] | state | The stepper state |
[in] | surface | is the surface to which the covariance is forwarded to |
Definition at line 72 of file StraightLineStepper.cpp.
View newest version in sPHENIX GitHub at line 72 of file StraightLineStepper.cpp
References Acts::StraightLineStepper::State::cov, Acts::detail::covarianceTransport(), Acts::StraightLineStepper::State::derivative, Acts::StraightLineStepper::State::dir, Acts::eFreeDir0, Acts::eFreeDir1, Acts::eFreeDir2, Acts::eFreePos0, Acts::eFreePos1, Acts::eFreePos2, Acts::eFreeQOverP, Acts::eFreeTime, Acts::eMom0, Acts::eMom1, Acts::eMom2, Acts::ePos0, Acts::ePos1, Acts::ePos2, 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.
std::tuple< CurvilinearTrackParameters, BoundMatrix, double > Acts::StraightLineStepper::curvilinearState | ( | State & | state | ) | const |
This creates a curvilinear state.
Create and return a curvilinear state at the current position
[in] | state | State that will be presented as CurvilinearState |
Definition at line 34 of file StraightLineStepper.cpp.
View newest version in sPHENIX GitHub at line 34 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::eFreeDir0, Acts::eFreeDir1, Acts::eFreeDir2, Acts::eFreePos0, Acts::eFreePos1, Acts::eFreePos2, Acts::eFreeQOverP, Acts::eFreeTime, Acts::eMom0, Acts::eMom1, Acts::eMom2, Acts::ePos0, Acts::ePos1, Acts::ePos2, 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().
Momentum direction accessor
state | [in] The stepping state (thread-local cache) |
Definition at line 174 of file StraightLineStepper.hpp.
View newest version in sPHENIX GitHub at line 174 of file StraightLineStepper.hpp
References Acts::StraightLineStepper::State::dir.
Referenced by Acts::Test::BOOST_AUTO_TEST_CASE(), and resetState().
Get the field for the stepping, this gives back a zero field
[in,out] | state | is the propagation state associated with the track the magnetic field cell is used (and potentially updated) |
[in] | pos | is the field position |
Definition at line 161 of file StraightLineStepper.hpp.
View newest version in sPHENIX GitHub at line 161 of file StraightLineStepper.hpp
|
inline |
Momentum accessor
state | [in] The stepping state (thread-local cache) |
Definition at line 179 of file StraightLineStepper.hpp.
View newest version in sPHENIX GitHub at line 179 of file StraightLineStepper.hpp
References Acts::StraightLineStepper::State::p.
Referenced by Acts::Test::BOOST_AUTO_TEST_CASE().
|
inline |
Output the Step Size - single component
state | [in,out] The stepping state (thread-local cache) |
Definition at line 250 of file StraightLineStepper.hpp.
View newest version in sPHENIX GitHub at line 250 of file StraightLineStepper.hpp
References Acts::StraightLineStepper::State::stepSize, and Acts::ConstrainedStep::toString().
Referenced by Acts::Test::BOOST_AUTO_TEST_CASE().
|
inline |
Overstep limit
state | The stepping state (thread-local cache) |
Definition at line 194 of file StraightLineStepper.hpp.
View newest version in sPHENIX GitHub at line 194 of file StraightLineStepper.hpp
References Acts::s_onSurfaceTolerance.
Global particle position accessor
state | [in] The stepping state (thread-local cache) |
Definition at line 169 of file StraightLineStepper.hpp.
View newest version in sPHENIX GitHub at line 169 of file StraightLineStepper.hpp
References Acts::StraightLineStepper::State::pos.
Referenced by Acts::Test::BOOST_AUTO_TEST_CASE(), and resetState().
|
inline |
Release the Step size
state | [in,out] The stepping state (thread-local cache) |
Definition at line 243 of file StraightLineStepper.hpp.
View newest version in sPHENIX GitHub at line 243 of file StraightLineStepper.hpp
References Acts::ConstrainedStep::actor, Acts::ConstrainedStep::release(), and Acts::StraightLineStepper::State::stepSize.
Referenced by Acts::Test::BOOST_AUTO_TEST_CASE().
void Acts::StraightLineStepper::resetState | ( | State & | state, |
const BoundVector & | boundParams, | ||
const BoundSymMatrix & | cov, | ||
const Surface & | surface, | ||
const NavigationDirection | navDir = forward , |
||
const double | stepSize = std::numeric_limits<double>::max() |
||
) | const |
Resets the state.
[in,out] | state | State of the stepper |
[in] | boundParams | Parameters in bound parametrisation |
[in] | freeParams | Parameters in free parametrisation |
[in] | cov | Covariance matrix |
[in] | navDir | Navigation direction |
[in] | stepSize | Step size |
Definition at line 88 of file StraightLineStepper.cpp.
View newest version in sPHENIX GitHub at line 88 of file StraightLineStepper.cpp
References Acts::StraightLineStepper::State::derivative, direction(), Acts::StraightLineStepper::State::geoContext, Acts::Surface::initJacobianToGlobal(), Acts::StraightLineStepper::State::jacobian, Acts::StraightLineStepper::State::jacToGlobal, Acts::StraightLineStepper::State::jacTransport, Acts::Test::navDir, Acts::StraightLineStepper::State::navDir, Acts::StraightLineStepper::State::pathAccumulated, position(), Acts::StraightLineStepper::State::stepSize, Acts::detail::transformBoundToFreeParameters(), and update().
Referenced by Acts::Test::BOOST_AUTO_TEST_CASE().
|
inline |
Set Step size - explicitely with a double
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 234 of file StraightLineStepper.hpp.
View newest version in sPHENIX GitHub at line 234 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().
|
inline |
Perform a straight line propagation step
[in,out] | state | is 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. |
Definition at line 328 of file StraightLineStepper.hpp.
View newest version in sPHENIX GitHub at line 328 of file StraightLineStepper.hpp
References Acts::UnitConstants::h.
Referenced by Acts::Test::BOOST_AUTO_TEST_CASE().
|
inline |
Time access
state | [in] The stepping state (thread-local cache) |
Definition at line 189 of file StraightLineStepper.hpp.
View newest version in sPHENIX GitHub at line 189 of file StraightLineStepper.hpp
References Acts::StraightLineStepper::State::t.
Referenced by Acts::Test::BOOST_AUTO_TEST_CASE(), and update().
void Acts::StraightLineStepper::update | ( | State & | state, |
const FreeVector & | parameters, | ||
const Covariance & | covariance | ||
) | const |
Method to update a stepper state to the some parameters
[in,out] | state | State object that will be updated |
[in] | pars | Parameters that will be written into state |
Definition at line 49 of file StraightLineStepper.cpp.
View newest version in sPHENIX GitHub at line 49 of file StraightLineStepper.cpp
References kdfinder::abs(), Acts::StraightLineStepper::State::cov, Acts::StraightLineStepper::State::dir, Acts::eFreeDir0, Acts::eFreePos0, Acts::eFreeQOverP, Acts::eFreeTime, Acts::StraightLineStepper::State::p, Acts::StraightLineStepper::State::pos, and Acts::StraightLineStepper::State::t.
Referenced by Acts::Test::BOOST_AUTO_TEST_CASE(), and resetState().
void Acts::StraightLineStepper::update | ( | State & | state, |
const Vector3D & | uposition, | ||
const Vector3D & | udirection, | ||
double | up, | ||
double | time | ||
) | const |
Method to update momentum, direction and p
[in,out] | state | State object that will be updated |
[in] | uposition | the updated position |
[in] | udirection | the updated direction |
[in] | up | the updated momentum value |
[in] | time | the updated time value |
Definition at line 58 of file StraightLineStepper.cpp.
View newest version in sPHENIX GitHub at line 58 of file StraightLineStepper.cpp
References Acts::StraightLineStepper::State::dir, Acts::StraightLineStepper::State::p, Acts::StraightLineStepper::State::pos, Acts::StraightLineStepper::State::t, and time().
|
inline |
Update step size
It checks the status to the reference surface & updates the step size accordingly
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 223 of file StraightLineStepper.hpp.
View newest version in sPHENIX GitHub at line 223 of file StraightLineStepper.hpp
References conf::release.
Referenced by Acts::Test::BOOST_AUTO_TEST_CASE().
|
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.
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 208 of file StraightLineStepper.hpp.
View newest version in sPHENIX GitHub at line 208 of file StraightLineStepper.hpp
References surface().
Referenced by Acts::Test::BOOST_AUTO_TEST_CASE().