Analysis Software
Documentation for sPHENIX simulation software
|
#include <acts/blob/sPHENIX/Core/include/Acts/Propagator/ConstrainedStep.hpp>
Public Types | |
enum | Type : int { actor = 0, aborter = 1, user = 2 } |
using | Scalar = ActsScalar |
Public Member Functions | |
constexpr | ConstrainedStep ()=default |
constexpr | ConstrainedStep (Scalar value) |
constexpr void | setAccuracy (Scalar value) |
constexpr void | setUser (Scalar value) |
constexpr Scalar | value () const |
returns the min step size | |
constexpr Scalar | value (Type type) const |
constexpr Scalar | accuracy () const |
constexpr void | release (Type type) |
constexpr void | releaseAccuracy () |
constexpr void | update (Scalar value, Type type, bool releaseStep=false) |
std::ostream & | toStream (std::ostream &os) const |
std::string | toString () const |
Public Attributes | |
size_t | nStepTrials = std::numeric_limits<size_t>::max() |
Private Attributes | |
std::array< Scalar, 3 > | m_values = {kNotSet, kNotSet, kNotSet} |
the step size tuple | |
Scalar | m_accuracy = kNotSet |
the accuracy value - this can vary up and down given a good step estimator | |
Static Private Attributes | |
static constexpr auto | kNotSet = std::numeric_limits<Scalar>::max() |
A constrained step class for the steppers.
This class is symmetrical for forward and backward propagation. The sign of the propagation direction should not enter here but rather be applied the step is actually taken.
As simple as this class looks it hides a few very important details:
Because of the points mentioned above, the update function will always prefer negative step sizes. A side effect of this is that we will propagate in the opposite direction if the target is "behind us".
The hierarchy is:
std::numeric_limits<Scalar>::max()
Definition at line 44 of file ConstrainedStep.hpp.
View newest version in sPHENIX GitHub at line 44 of file ConstrainedStep.hpp
Definition at line 46 of file ConstrainedStep.hpp.
View newest version in sPHENIX GitHub at line 46 of file ConstrainedStep.hpp
enum Acts::ConstrainedStep::Type : int |
the types of constraints from actor - this would be a typical navigation step from aborter - this would be a target condition from user - this is user given for what reason ever
Definition at line 52 of file ConstrainedStep.hpp.
View newest version in sPHENIX GitHub at line 52 of file ConstrainedStep.hpp
|
default |
|
inlineexplicit |
constructor from Scalar
value | is the user given initial value |
Definition at line 62 of file ConstrainedStep.hpp.
View newest version in sPHENIX GitHub at line 62 of file ConstrainedStep.hpp
References setUser().
|
inline |
Access the accuracy value
type | is the requested parameter type |
Definition at line 102 of file ConstrainedStep.hpp.
View newest version in sPHENIX GitHub at line 102 of file ConstrainedStep.hpp
References m_accuracy.
Referenced by Acts::Test::BOOST_AUTO_TEST_CASE().
|
inline |
release a certain constraint value
type | is the constraint type to be released |
Definition at line 107 of file ConstrainedStep.hpp.
View newest version in sPHENIX GitHub at line 107 of file ConstrainedStep.hpp
References kNotSet, m_values, and Acts::type.
Referenced by Acts::Test::PropagatorState::Stepper::releaseStepSize(), Acts::StraightLineStepper::releaseStepSize(), Acts::EigenStepper< extensionlist_t, auctioneer_t >::releaseStepSize(), Acts::AtlasStepper::releaseStepSize(), and update().
|
inline |
release accuracy
type | is the constraint type to be released |
Definition at line 112 of file ConstrainedStep.hpp.
View newest version in sPHENIX GitHub at line 112 of file ConstrainedStep.hpp
References kNotSet, and m_accuracy.
Referenced by Acts::Test::BOOST_AUTO_TEST_CASE().
|
inline |
set accuracy by one Scalar
this will set only the accuracy, as this is the most exposed to the Propagator
value | is the new accuracy value |
Definition at line 70 of file ConstrainedStep.hpp.
View newest version in sPHENIX GitHub at line 70 of file ConstrainedStep.hpp
References assert, m_accuracy, and value().
Referenced by Acts::Test::BOOST_AUTO_TEST_CASE().
|
inline |
set user by one Scalar
value | is the new user value |
Definition at line 79 of file ConstrainedStep.hpp.
View newest version in sPHENIX GitHub at line 79 of file ConstrainedStep.hpp
References m_values, user, and value().
Referenced by Acts::Test::BOOST_AUTO_TEST_CASE(), and ConstrainedStep().
|
inline |
Definition at line 136 of file ConstrainedStep.hpp.
View newest version in sPHENIX GitHub at line 136 of file ConstrainedStep.hpp
References aborter, actor, kNotSet, m_accuracy, os, user, and value().
Referenced by Acts::operator<<(), and toString().
|
inline |
Definition at line 160 of file ConstrainedStep.hpp.
View newest version in sPHENIX GitHub at line 160 of file ConstrainedStep.hpp
References toStream().
Referenced by Acts::Test::BOOST_AUTO_TEST_CASE(), Acts::Test::PropagatorState::Stepper::outputStepSize(), Acts::StraightLineStepper::outputStepSize(), Acts::EigenStepper< extensionlist_t, auctioneer_t >::outputStepSize(), and Acts::AtlasStepper::outputStepSize().
|
inline |
Update the step size of a certain type
Only navigation and target abortion step size updates may change the sign due to overstepping
value | is the new value to be updated |
type | is the constraint type |
releaseStep | Allow step size to increase again |
Definition at line 122 of file ConstrainedStep.hpp.
View newest version in sPHENIX GitHub at line 122 of file ConstrainedStep.hpp
References m_values, release(), Acts::type, and value().
Referenced by Acts::Test::BOOST_AUTO_TEST_CASE(), Acts::Test::PropagatorState::Stepper::setStepSize(), Acts::StraightLineStepper::setStepSize(), Acts::EigenStepper< extensionlist_t, auctioneer_t >::setStepSize(), and Acts::AtlasStepper::setStepSize().
|
inline |
returns the min step size
Definition at line 87 of file ConstrainedStep.hpp.
View newest version in sPHENIX GitHub at line 87 of file ConstrainedStep.hpp
References m_accuracy, m_values, and Acts::UnitConstants::min.
Referenced by Acts::Test::BOOST_AUTO_TEST_CASE(), Acts::Test::PropagatorState::Stepper::getStepSize(), Acts::StraightLineStepper::getStepSize(), Acts::EigenStepper< extensionlist_t, auctioneer_t >::getStepSize(), Acts::AtlasStepper::getStepSize(), Acts::MultiEigenStepperLoop< extensionlist_t, component_reducer_t, auctioneer_t >::getStepSize(), setAccuracy(), Acts::Test::PropagatorState::Stepper::setStepSize(), Acts::StraightLineStepper::setStepSize(), Acts::EigenStepper< extensionlist_t, auctioneer_t >::setStepSize(), Acts::AtlasStepper::setStepSize(), setUser(), toStream(), and update().
Access a specific value
type | is the requested parameter type |
Definition at line 97 of file ConstrainedStep.hpp.
View newest version in sPHENIX GitHub at line 97 of file ConstrainedStep.hpp
References m_values, and Acts::type.
|
inlinestaticprivate |
Definition at line 167 of file ConstrainedStep.hpp.
View newest version in sPHENIX GitHub at line 167 of file ConstrainedStep.hpp
Referenced by release(), releaseAccuracy(), and toStream().
the accuracy value - this can vary up and down given a good step estimator
Definition at line 172 of file ConstrainedStep.hpp.
View newest version in sPHENIX GitHub at line 172 of file ConstrainedStep.hpp
Referenced by accuracy(), releaseAccuracy(), setAccuracy(), toStream(), and value().
the step size tuple
Definition at line 170 of file ConstrainedStep.hpp.
View newest version in sPHENIX GitHub at line 170 of file ConstrainedStep.hpp
size_t Acts::ConstrainedStep::nStepTrials = std::numeric_limits<size_t>::max() |
Number of iterations needed by the stepsize finder (e.g. Runge-Kutta) of the stepper.
Definition at line 56 of file ConstrainedStep.hpp.
View newest version in sPHENIX GitHub at line 56 of file ConstrainedStep.hpp