EIC Software
Reference for
EIC
simulation and reconstruction software on GitHub
|
the AtlasStepper implementation for the More...
#include <acts/blob/sPHENIX/Core/include/Acts/Propagator/AtlasStepper.hpp>
Classes | |
struct | State |
Nested State struct for the local caching. More... | |
Public Types | |
using | Jacobian = BoundMatrix |
using | Covariance = BoundSymMatrix |
using | BoundState = std::tuple< BoundTrackParameters, Jacobian, double > |
using | CurvilinearState = std::tuple< CurvilinearTrackParameters, Jacobian, double > |
using | BField = bfield_t |
Public Member Functions | |
AtlasStepper (bfield_t bField) | |
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 &state, const Vector3D &pos) 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 |
Charge access. | |
double | overstepLimit (const State &) const |
double | time (const State &state) const |
Time access. | |
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 |
CurvilinearState | curvilinearState (State &state) const |
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 |
Private Attributes | |
bfield_t | m_bField |
double | m_overstepLimit = -50_um |
Overstep limit: could/should be dynamic. | |
the AtlasStepper implementation for the
Definition at line 36 of file AtlasStepper.hpp.
View newest version in sPHENIX GitHub at line 36 of file AtlasStepper.hpp
using Acts::AtlasStepper< bfield_t >::BField = bfield_t |
Definition at line 44 of file AtlasStepper.hpp.
View newest version in sPHENIX GitHub at line 44 of file AtlasStepper.hpp
using Acts::AtlasStepper< bfield_t >::BoundState = std::tuple<BoundTrackParameters, Jacobian, double> |
Definition at line 40 of file AtlasStepper.hpp.
View newest version in sPHENIX GitHub at line 40 of file AtlasStepper.hpp
using Acts::AtlasStepper< bfield_t >::Covariance = BoundSymMatrix |
Definition at line 39 of file AtlasStepper.hpp.
View newest version in sPHENIX GitHub at line 39 of file AtlasStepper.hpp
using Acts::AtlasStepper< bfield_t >::CurvilinearState = std::tuple<CurvilinearTrackParameters, Jacobian, double> |
Definition at line 42 of file AtlasStepper.hpp.
View newest version in sPHENIX GitHub at line 42 of file AtlasStepper.hpp
using Acts::AtlasStepper< bfield_t >::Jacobian = BoundMatrix |
Definition at line 38 of file AtlasStepper.hpp.
View newest version in sPHENIX GitHub at line 38 of file AtlasStepper.hpp
|
inline |
Definition at line 305 of file AtlasStepper.hpp.
View newest version in sPHENIX GitHub at line 305 of file AtlasStepper.hpp
|
inline |
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 566 of file AtlasStepper.hpp.
View newest version in sPHENIX GitHub at line 566 of file AtlasStepper.hpp
References Acts::AtlasStepper< bfield_t >::State::cov, Acts::detail::covarianceTransport(), Acts::AtlasStepper< bfield_t >::State::covTransport, Acts::eMom0, Acts::eMom1, Acts::eMom2, Acts::ePos0, Acts::ePos1, Acts::ePos2, Acts::eTime, Acts::AtlasStepper< bfield_t >::State::geoContext, Acts::Surface::getSharedPtr(), Acts::AtlasStepper< bfield_t >::State::jacobian, Dataset::parameters, Acts::AtlasStepper< bfield_t >::State::pathAccumulated, Acts::Test::pos4(), Acts::AtlasStepper< bfield_t >::State::pVector, and Acts::AtlasStepper< bfield_t >::State::state_ready.
|
inline |
Charge access.
Definition at line 489 of file AtlasStepper.hpp.
View newest version in sPHENIX GitHub at line 489 of file AtlasStepper.hpp
References Acts::AtlasStepper< bfield_t >::State::pVector.
|
inline |
Method for on-demand transport of the covariance to a new curvilinear frame at current position, or direction of the state
[in,out] | state | State of the stepper |
Definition at line 689 of file AtlasStepper.hpp.
View newest version in sPHENIX GitHub at line 689 of file AtlasStepper.hpp
References Acts::UnitConstants::C, Acts::AtlasStepper< bfield_t >::State::cov, Acts::AtlasStepper< bfield_t >::State::covariance, Acts::UnitConstants::e, Acts::AtlasStepper< bfield_t >::State::jacobian, p, Acts::AtlasStepper< bfield_t >::State::pVector, s1, s2, s3, and s4.
|
inline |
Method for on-demand transport of the covariance to a new curvilinear frame at current position, or direction of the state
[in,out] | state | State of the stepper |
[in] | surface | is the surface to which the covariance is forwarded to |
Definition at line 839 of file AtlasStepper.hpp.
View newest version in sPHENIX GitHub at line 839 of file AtlasStepper.hpp
References kdfinder::abs(), Acts::UnitConstants::C, Acts::Surface::center(), Acts::AtlasStepper< bfield_t >::State::cov, Acts::AtlasStepper< bfield_t >::State::covariance, d, Acts::Surface::Disc, Acts::UnitConstants::e, Acts::AtlasStepper< bfield_t >::State::geoContext, Acts::AtlasStepper< bfield_t >::State::jacobian, charm_jet_coverage::mom, p, Acts::Surface::Perigee, Acts::AtlasStepper< bfield_t >::State::pVector, Acts::Surface::referenceFrame(), s1, s2, s3, s4, Acts::Surface::Straw, Acts::Surface::type(), x, y, and z.
|
inline |
Create and return a curvilinear state at the current position
[in] | state | State that will be presented as CurvilinearState |
Definition at line 605 of file AtlasStepper.hpp.
View newest version in sPHENIX GitHub at line 605 of file AtlasStepper.hpp
References Acts::AtlasStepper< bfield_t >::State::cov, Acts::detail::covarianceTransport(), Acts::AtlasStepper< bfield_t >::State::covTransport, Acts::eMom0, Acts::eMom1, Acts::eMom2, Acts::ePos0, Acts::ePos1, Acts::ePos2, Acts::eTime, Acts::AtlasStepper< bfield_t >::State::jacobian, Dataset::parameters, Acts::AtlasStepper< bfield_t >::State::pathAccumulated, Acts::Test::pos4(), Acts::AtlasStepper< bfield_t >::State::pVector, and Acts::AtlasStepper< bfield_t >::State::state_ready.
|
inline |
Definition at line 480 of file AtlasStepper.hpp.
View newest version in sPHENIX GitHub at line 480 of file AtlasStepper.hpp
References Acts::AtlasStepper< bfield_t >::State::pVector.
Referenced by pepsimainerhic().
|
inline |
Get the field for the stepping It checks first if the access is still within the Cell, and updates the cell if necessary, then it takes the field from the cell
[in,out] | state | is the stepper state associated with the track the magnetic field cell is used (and potentially updated) |
[in] | pos | is the field position |
Definition at line 470 of file AtlasStepper.hpp.
View newest version in sPHENIX GitHub at line 470 of file AtlasStepper.hpp
References Acts::AtlasStepper< bfield_t >::State::field, and Acts::AtlasStepper< bfield_t >::State::fieldCache.
|
inline |
Definition at line 484 of file AtlasStepper.hpp.
View newest version in sPHENIX GitHub at line 484 of file AtlasStepper.hpp
References kdfinder::abs(), and Acts::AtlasStepper< bfield_t >::State::pVector.
|
inline |
Output the Step Size - single component
state | [in,out] The stepping state (thread-local cache) |
Definition at line 552 of file AtlasStepper.hpp.
View newest version in sPHENIX GitHub at line 552 of file AtlasStepper.hpp
References Acts::AtlasStepper< bfield_t >::State::stepSize, and Acts::ConstrainedStep::toString().
|
inline |
Overstep limit
state | [in] The stepping state (thread-local cache) |
Definition at line 496 of file AtlasStepper.hpp.
View newest version in sPHENIX GitHub at line 496 of file AtlasStepper.hpp
|
inline |
Definition at line 476 of file AtlasStepper.hpp.
View newest version in sPHENIX GitHub at line 476 of file AtlasStepper.hpp
References Acts::AtlasStepper< bfield_t >::State::pVector.
|
inline |
Release the Step size
state | [in,out] The stepping state (thread-local cache) |
Definition at line 545 of file AtlasStepper.hpp.
View newest version in sPHENIX GitHub at line 545 of file AtlasStepper.hpp
References Acts::ConstrainedStep::actor, Acts::ConstrainedStep::release(), and Acts::AtlasStepper< bfield_t >::State::stepSize.
|
inline |
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 315 of file AtlasStepper.hpp.
View newest version in sPHENIX GitHub at line 315 of file AtlasStepper.hpp
References Acts::UnitConstants::C, cos(), Acts::Surface::Disc, Acts::eBoundLoc0, Acts::eBoundLoc1, Acts::eBoundPhi, Acts::eBoundTheta, Acts::AtlasStepper< bfield_t >::State::geoContext, momentum, Acts::Test::navDir, Acts::AtlasStepper< bfield_t >::State::navDir, Acts::AtlasStepper< bfield_t >::State::pathAccumulated, Acts::Surface::Perigee, Acts::VectorHelpers::position(), Acts::AtlasStepper< bfield_t >::State::pVector, Acts::Surface::referenceFrame(), Acts::Test::stepSize, Acts::AtlasStepper< bfield_t >::State::stepSize, Acts::Surface::Straw, Acts::Test::transform, Acts::detail::transformBoundToFreeParameters(), Acts::Surface::type(), and Acts::KalmanVertexTrackUpdater::update().
|
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 536 of file AtlasStepper.hpp.
View newest version in sPHENIX GitHub at line 536 of file AtlasStepper.hpp
References Acts::AtlasStepper< bfield_t >::State::previousStepSize, Acts::AtlasStepper< bfield_t >::State::stepSize, and Acts::ConstrainedStep::update().
|
inline |
Perform the actual step on the state
state | is the provided stepper state (caller keeps thread locality) |
Definition at line 1094 of file AtlasStepper.hpp.
View newest version in sPHENIX GitHub at line 1094 of file AtlasStepper.hpp
References starlightConstants::A2, kdfinder::abs(), charge, Acts::UnitConstants::h, momentum, pos(), and Acts::IntegrationTest::R.
|
inline |
Time access.
Definition at line 499 of file AtlasStepper.hpp.
View newest version in sPHENIX GitHub at line 499 of file AtlasStepper.hpp
References Acts::AtlasStepper< bfield_t >::State::pVector.
|
inline |
The state update method
[in,out] | state | The stepper state for |
[in] | pars | The new track parameters at start |
Definition at line 636 of file AtlasStepper.hpp.
View newest version in sPHENIX GitHub at line 636 of file AtlasStepper.hpp
References kdfinder::abs(), Acts::AtlasStepper< bfield_t >::State::covariance, Acts::AtlasStepper< bfield_t >::State::covTransport, Acts::eFreeDir0, Acts::eFreePos0, Acts::eFreePos1, Acts::eFreePos2, Acts::eFreeQOverP, Acts::eFreeTime, Acts::AtlasStepper< bfield_t >::State::pVector, Acts::AtlasStepper< bfield_t >::State::state_ready, and Acts::AtlasStepper< bfield_t >::State::useJacobian.
|
inline |
Method to update momentum, direction and p
uposition | the updated position |
udirection | the updated direction |
p | the updated momentum value |
Definition at line 669 of file AtlasStepper.hpp.
View newest version in sPHENIX GitHub at line 669 of file AtlasStepper.hpp
References charge, Acts::AtlasStepper< bfield_t >::State::pVector, and Acts::Test::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 526 of file AtlasStepper.hpp.
View newest version in sPHENIX GitHub at line 526 of file AtlasStepper.hpp
References conf::release.
|
inline |
Update surface status
This method intersect 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 511 of file AtlasStepper.hpp.
View newest version in sPHENIX GitHub at line 511 of file AtlasStepper.hpp
References surface().
|
private |
Definition at line 1336 of file AtlasStepper.hpp.
View newest version in sPHENIX GitHub at line 1336 of file AtlasStepper.hpp
|
private |
Overstep limit: could/should be dynamic.
Definition at line 1339 of file AtlasStepper.hpp.
View newest version in sPHENIX GitHub at line 1339 of file AtlasStepper.hpp