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().
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().
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().
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().
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().
|
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().
|
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().
|
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().
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().
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().
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().
|
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().
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().
|
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().
|
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().
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().
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().
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().
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().
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().
|
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().
|
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().
|
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().