ECCE @ EIC Software
Reference for
ECCE @ EIC
simulation and reconstruction software on GitHub
|
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 |
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
Definition at line 38 of file StraightLineStepper.hpp.
View newest version in sPHENIX GitHub at line 38 of file StraightLineStepper.hpp
using Acts::StraightLineStepper::BoundState = std::tuple<BoundParameters, Jacobian, double> |
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
using Acts::StraightLineStepper::CurvilinearState = std::tuple<CurvilinearParameters, Jacobian, double> |
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
|
default |
Constructor.
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
[in] | state | State that will be presented as BoundState |
[in] | surface | The surface to which we bind the state |
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().
|
inline |
Charge access
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().
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 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().
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 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.
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
[in] | state | State that will be presented as CurvilinearState |
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().
Momentum direction accessor
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().
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 144 of file StraightLineStepper.hpp.
View newest version in sPHENIX GitHub at line 144 of file StraightLineStepper.hpp
|
inline |
Momentum accessor
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().
|
inline |
Output the Step Size - single component
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().
|
inline |
Overstep limit
state | The 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.
Global particle position accessor
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().
Release the Step size
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().
|
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 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().
|
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 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().
|
inline |
Time access
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().
void Acts::StraightLineStepper::update | ( | State & | state, |
const BoundParameters & | pars | ||
) | 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 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().
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 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().
|
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 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().
|
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 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().