![]() |
Analysis Software
Documentation for sPHENIX simulation software
|
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 = BoundSquareMatrix |
| 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 | |
| State | makeState (std::reference_wrapper< const GeometryContext > gctx, std::reference_wrapper< const MagneticFieldContext > mctx, const BoundTrackParameters &par, double ssize=std::numeric_limits< double >::max(), double stolerance=s_onSurfaceTolerance) 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< Vector3 > | getField (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 ParticleHypothesis & | particleHypothesis (const State &state) const |
| double | time (const State &state) const |
| double | overstepLimit (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 |
| Result< BoundState > | boundState (State &state, const Surface &surface, bool transportCov=true, const FreeToBoundCorrection &freeToBoundCorrection=FreeToBoundCorrection(false)) 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, bool transportCov=true) const |
| This 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 qop, 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< double > | step (propagator_state_t &state, const navigator_t &) const |
Private Attributes | |
| double | m_overstepLimit = s_onSurfaceTolerance |
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 45 of file StraightLineStepper.hpp.
View newest version in sPHENIX GitHub at line 45 of file StraightLineStepper.hpp
Definition at line 52 of file StraightLineStepper.hpp.
View newest version in sPHENIX GitHub at line 52 of file StraightLineStepper.hpp
| using Acts::StraightLineStepper::BoundState = std::tuple<BoundTrackParameters, Jacobian, double> |
Definition at line 49 of file StraightLineStepper.hpp.
View newest version in sPHENIX GitHub at line 49 of file StraightLineStepper.hpp
Definition at line 48 of file StraightLineStepper.hpp.
View newest version in sPHENIX GitHub at line 48 of file StraightLineStepper.hpp
| using Acts::StraightLineStepper::CurvilinearState = std::tuple<CurvilinearTrackParameters, Jacobian, double> |
Definition at line 51 of file StraightLineStepper.hpp.
View newest version in sPHENIX GitHub at line 51 of file StraightLineStepper.hpp
Definition at line 47 of file StraightLineStepper.hpp.
View newest version in sPHENIX GitHub at line 47 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 132 of file StraightLineStepper.hpp.
View newest version in sPHENIX GitHub at line 132 of file StraightLineStepper.hpp
|
default |
Absolute momentum accessor
| state | [in] The stepping state (thread-local cache) |
Definition at line 190 of file StraightLineStepper.hpp.
View newest version in sPHENIX GitHub at line 190 of file StraightLineStepper.hpp
References particleHypothesis(), and qOverP().
Referenced by Acts::Test::BOOST_AUTO_TEST_CASE(), momentum(), and step().
Here is the call graph for this function:
Here is the caller graph for this function:| Result< std::tuple< BoundTrackParameters, BoundMatrix, double > > Acts::StraightLineStepper::boundState | ( | State & | state, |
| const Surface & | surface, | ||
| bool | transportCov = true, |
||
| const FreeToBoundCorrection & | freeToBoundCorrection = FreeToBoundCorrection(false) |
||
| ) | 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 |
| [in] | transportCov | Flag steering covariance transport |
| [in] | freeToBoundCorrection | Correction for non-linearity effect during transform from free to bound |
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::geoContext, Acts::StraightLineStepper::State::jacobian, Acts::StraightLineStepper::State::jacToGlobal, Acts::StraightLineStepper::State::jacTransport, Acts::StraightLineStepper::State::pars, Acts::StraightLineStepper::State::particleHypothesis, and Acts::StraightLineStepper::State::pathAccumulated.
Referenced by Acts::Test::BOOST_AUTO_TEST_CASE().
Here is the call graph for this function:
Here is the caller graph for this function:Charge access
| state | [in] The stepping state (thread-local cache) |
Definition at line 204 of file StraightLineStepper.hpp.
View newest version in sPHENIX GitHub at line 204 of file StraightLineStepper.hpp
References particleHypothesis(), and 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:| std::tuple< CurvilinearTrackParameters, BoundMatrix, double > Acts::StraightLineStepper::curvilinearState | ( | State & | state, |
| bool | transportCov = true |
||
| ) | 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 |
| [in] | transportCov | Flag steering covariance transport |
Definition at line 28 of file StraightLineStepper.cpp.
View newest version in sPHENIX GitHub at line 28 of file StraightLineStepper.cpp
References Acts::StraightLineStepper::State::cov, Acts::StraightLineStepper::State::covTransport, Acts::detail::curvilinearState(), Acts::StraightLineStepper::State::derivative, Acts::StraightLineStepper::State::jacobian, Acts::StraightLineStepper::State::jacToGlobal, Acts::StraightLineStepper::State::jacTransport, Acts::StraightLineStepper::State::pars, Acts::StraightLineStepper::State::particleHypothesis, and Acts::StraightLineStepper::State::pathAccumulated.
Referenced by Acts::Test::BOOST_AUTO_TEST_CASE().
Here is the call graph for this function:
Here is the caller graph for this function:Momentum direction accessor
| state | [in] The stepping state (thread-local cache) |
Definition at line 178 of file StraightLineStepper.hpp.
View newest version in sPHENIX GitHub at line 178 of file StraightLineStepper.hpp
References Acts::eFreeDir0, and Acts::StraightLineStepper::State::pars.
Referenced by Acts::Test::BOOST_AUTO_TEST_CASE(), momentum(), and step().
Here is the caller graph for this function:
|
inline |
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 |
Get the step size
| state | [in] The stepping state (thread-local cache) |
| stype | [in] The step size type to be returned |
Definition at line 282 of file StraightLineStepper.hpp.
View newest version in sPHENIX GitHub at line 282 of file StraightLineStepper.hpp
References Acts::StraightLineStepper::State::stepSize, and Acts::ConstrainedStep::value().
Here is the call graph for this function:
|
inline |
Definition at line 136 of file StraightLineStepper.hpp.
View newest version in sPHENIX GitHub at line 136 of file StraightLineStepper.hpp
References gctx.
Momentum accessor
| state | [in] The stepping state (thread-local cache) |
Definition at line 197 of file StraightLineStepper.hpp.
View newest version in sPHENIX GitHub at line 197 of file StraightLineStepper.hpp
References absoluteMomentum(), and direction().
Here is the call graph for this function:
|
inline |
Output the Step Size - single component
| state | [in,out] The stepping state (thread-local cache) |
Definition at line 296 of file StraightLineStepper.hpp.
View newest version in sPHENIX GitHub at line 296 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:Overstep limit
| state | The stepping state (thread-local cache) |
Definition at line 223 of file StraightLineStepper.hpp.
View newest version in sPHENIX GitHub at line 223 of file StraightLineStepper.hpp
References m_overstepLimit.
|
inline |
Particle hypothesis
| state | [in] The stepping state (thread-local cache) |
Definition at line 211 of file StraightLineStepper.hpp.
View newest version in sPHENIX GitHub at line 211 of file StraightLineStepper.hpp
References Acts::StraightLineStepper::State::particleHypothesis.
Referenced by absoluteMomentum(), and charge().
Here is the caller graph for this function:Global particle position accessor
| state | [in] The stepping state (thread-local cache) |
Definition at line 171 of file StraightLineStepper.hpp.
View newest version in sPHENIX GitHub at line 171 of file StraightLineStepper.hpp
References Acts::eFreePos0, and Acts::StraightLineStepper::State::pars.
Referenced by Acts::Test::BOOST_AUTO_TEST_CASE().
Here is the caller graph for this function:QoP direction accessor
| state | [in] The stepping state (thread-local cache) |
Definition at line 185 of file StraightLineStepper.hpp.
View newest version in sPHENIX GitHub at line 185 of file StraightLineStepper.hpp
References Acts::eFreeQOverP, and Acts::StraightLineStepper::State::pars.
Referenced by absoluteMomentum(), and charge().
Here is the caller graph for this function:
|
inline |
Release the Step size
| state | [in,out] The stepping state (thread-local cache) |
Definition at line 289 of file StraightLineStepper.hpp.
View newest version in sPHENIX GitHub at line 289 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::resetState | ( | State & | state, |
| const BoundVector & | boundParams, | ||
| const BoundSquareMatrix & | cov, | ||
| const Surface & | surface, | ||
| 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] | cov | Covariance matrix |
| [in] | surface | The reset State will be on this surface |
| [in] | stepSize | Step size |
Definition at line 69 of file StraightLineStepper.cpp.
View newest version in sPHENIX GitHub at line 69 of file StraightLineStepper.cpp
References Acts::Surface::boundToFreeJacobian(), Acts::StraightLineStepper::State::derivative, Acts::StraightLineStepper::State::geoContext, Acts::StraightLineStepper::State::jacobian, Acts::StraightLineStepper::State::jacToGlobal, Acts::StraightLineStepper::State::jacTransport, Acts::StraightLineStepper::State::pathAccumulated, Acts::StraightLineStepper::State::stepSize, Acts::detail::transformBoundToFreeParameters(), and 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:
|
inline |
Set Step size - explicitly 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 |
| release | [in] Do we release the step size? |
Definition at line 271 of file StraightLineStepper.hpp.
View newest version in sPHENIX GitHub at line 271 of file StraightLineStepper.hpp
References Acts::StraightLineStepper::State::previousStepSize, Acts::StraightLineStepper::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:
|
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 389 of file StraightLineStepper.hpp.
View newest version in sPHENIX GitHub at line 389 of file StraightLineStepper.hpp
References absoluteMomentum(), direction(), Acts::eFreePos0, Acts::eFreeQOverP, Acts::eFreeTime, h, Acts::UnitConstants::m, and merge_hashes::p.
Referenced by Acts::Test::BOOST_AUTO_TEST_CASE().
Here is the call graph for this function:
Here is the caller graph for this function:Time access
| state | [in] The stepping state (thread-local cache) |
Definition at line 218 of file StraightLineStepper.hpp.
View newest version in sPHENIX GitHub at line 218 of file StraightLineStepper.hpp
References Acts::eFreeTime, and Acts::StraightLineStepper::State::pars.
Referenced by Acts::Test::BOOST_AUTO_TEST_CASE(), and update().
Here is the caller graph for this function:| void Acts::StraightLineStepper::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 - 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 |
| [in] | freeToBoundCorrection | Correction for non-linearity effect during transform from free to bound |
Definition at line 60 of file StraightLineStepper.cpp.
View newest version in sPHENIX GitHub at line 60 of file StraightLineStepper.cpp
References Acts::StraightLineStepper::State::cov, Acts::StraightLineStepper::State::derivative, Acts::StraightLineStepper::State::geoContext, Acts::StraightLineStepper::State::jacobian, Acts::StraightLineStepper::State::jacToGlobal, Acts::StraightLineStepper::State::jacTransport, Acts::StraightLineStepper::State::pars, 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:| void Acts::StraightLineStepper::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 - for the moment a dummy method
| [in,out] | state | State of the stepper |
Definition at line 54 of file StraightLineStepper.cpp.
View newest version in sPHENIX GitHub at line 54 of file StraightLineStepper.cpp
References Acts::StraightLineStepper::State::cov, Acts::StraightLineStepper::State::derivative, Acts::eFreeDir0, Acts::StraightLineStepper::State::jacobian, Acts::StraightLineStepper::State::jacToGlobal, Acts::StraightLineStepper::State::jacTransport, Acts::StraightLineStepper::State::pars, and Acts::detail::transportCovarianceToCurvilinear().
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 FreeVector & | freeParams, | ||
| const BoundVector & | boundParams, | ||
| const Covariance & | covariance, | ||
| const Surface & | surface | ||
| ) | const |
Method to update a stepper state to the some parameters
| [in,out] | state | State object that will be updated |
| [in] | freeParams | Free parameters that will be written into state |
| [in] | boundParams | Corresponding bound parameters used to update jacToGlobal in state |
| [in] | covariance | Covariance that will be written into state |
| [in] | surface | The surface used to update the jacToGlobal |
Definition at line 35 of file StraightLineStepper.cpp.
View newest version in sPHENIX GitHub at line 35 of file StraightLineStepper.cpp
References Acts::Surface::boundToFreeJacobian(), Acts::StraightLineStepper::State::cov, covariance(), Acts::StraightLineStepper::State::geoContext, Acts::StraightLineStepper::State::jacToGlobal, and Acts::StraightLineStepper::State::pars.
Referenced by Acts::Test::BOOST_AUTO_TEST_CASE(), and resetState().
Here is the call graph for this function:
Here is the caller graph for this function:| void Acts::StraightLineStepper::update | ( | State & | state, |
| const Vector3 & | uposition, | ||
| const Vector3 & | udirection, | ||
| double | qop, | ||
| double | time | ||
| ) | const |
Method to update the stepper state
| [in,out] | state | State object that will be updated |
| [in] | uposition | the updated position |
| [in] | udirection | the updated direction |
| [in] | qop | the updated qop value |
| [in] | time | the updated time value |
Definition at line 45 of file StraightLineStepper.cpp.
View newest version in sPHENIX GitHub at line 45 of file StraightLineStepper.cpp
References Acts::eFreeDir0, Acts::eFreePos0, Acts::eFreeQOverP, Acts::eFreeTime, Acts::StraightLineStepper::State::pars, and time().
Here is the call graph for this function:
|
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 259 of file StraightLineStepper.hpp.
View newest version in sPHENIX GitHub at line 259 of file StraightLineStepper.hpp
References filter::state.
Referenced by Acts::Test::BOOST_AUTO_TEST_CASE().
Here is the caller graph for this function:
|
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.
| [in,out] | state | The stepping state (thread-local cache) |
| [in] | surface | The surface provided |
| [in] | navDir | The navigation direction |
| [in] | bcheck | The boundary check for this status update |
| [in] | surfaceTolerance | Surface tolerance used for intersection |
| [in] | logger | A logger instance |
Definition at line 241 of file StraightLineStepper.hpp.
View newest version in sPHENIX GitHub at line 241 of file StraightLineStepper.hpp
References logger(), Acts::Test::navDir, filter::state, and writeMapConfig::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:
|
private |
Definition at line 423 of file StraightLineStepper.hpp.
View newest version in sPHENIX GitHub at line 423 of file StraightLineStepper.hpp
Referenced by overstepLimit().