![]() |
ATLAS Offline Software
|
#include <SolenoidalIntersector.h>
Classes | |
| struct | Constants |
| Constants of motion and other cached values. More... | |
Public Member Functions | |
| SolenoidalIntersector (const std::string &type, const std::string &name, const IInterface *parent) | |
| virtual | ~SolenoidalIntersector ()=default |
| virtual StatusCode | initialize () override |
| virtual StatusCode | finalize () override |
| virtual std::optional< TrackSurfaceIntersection > | intersectSurface (const Surface &surface, const TrackSurfaceIntersection &trackTrackSurfaceIntersection, const double qOverP) const override |
| IIntersector interface method for general Surface type. | |
| virtual std::optional< TrackSurfaceIntersection > | approachPerigeeSurface (const PerigeeSurface &surface, const TrackSurfaceIntersection &trackTrackSurfaceIntersection, const double qOverP) const override |
| IIntersector interface method for specific Surface type : PerigeeSurface. | |
| virtual std::optional< TrackSurfaceIntersection > | approachStraightLineSurface (const StraightLineSurface &surface, const TrackSurfaceIntersection &trackTrackSurfaceIntersection, const double qOverP) const override |
| IIntersector interface method for specific Surface type : StraightLineSurface. | |
| virtual std::optional< TrackSurfaceIntersection > | intersectCylinderSurface (const CylinderSurface &surface, const TrackSurfaceIntersection &trackTrackSurfaceIntersection, const double qOverP) const override |
| IIntersector interface method for specific Surface type : CylinderSurface. | |
| virtual std::optional< TrackSurfaceIntersection > | intersectDiscSurface (const DiscSurface &surface, const TrackSurfaceIntersection &trackTrackSurfaceIntersection, const double qOverP) const override |
| IIntersector interface method for specific Surface type : DiscSurface. | |
| virtual std::optional< TrackSurfaceIntersection > | intersectPlaneSurface (const PlaneSurface &surface, const TrackSurfaceIntersection &trackTrackSurfaceIntersection, const double qOverP) const override |
| IIntersector interface method for specific Surface type : PlaneSurface. | |
| virtual bool | isValid (Amg::Vector3D startPosition, Amg::Vector3D endPosition) const override |
| IIntersector interface method to check validity of parametrization within extrapolation range. | |
Private Member Functions | |
| void | throwMissingCondData () const |
| const SolenoidParametrization * | getSolenoidParametrization () const |
| double | circularArcLength (double, double, double, double, double, double, double &, double &) const |
| double | linearArcLength (const TrackSurfaceIntersection &isect, const Constants &com, const double radius2, const double endRadius) const |
| bool | extrapolateToR (TrackSurfaceIntersection &isect, double &radius2, Constants &com, const double endRadius) const |
| std::optional< TrackSurfaceIntersection > | intersection (TrackSurfaceIntersection &&isect, Constants &com, const Surface &surface) const |
Static Private Member Functions | |
| static bool | extrapolateToZ (TrackSurfaceIntersection &isect, Constants &com, const double endZ) |
| static std::optional< TrackSurfaceIntersection > | newIntersection (const TrackSurfaceIntersection &oldIsect, const SolenoidParametrization &solpar, const double qOverP, Constants *&com) |
Private Attributes | |
| SG::ReadCondHandleKey< SolenoidParametrization > | m_solenoidParametrizationKey |
| ToolHandle< IIntersector > | m_rungeKuttaIntersector |
| DoubleProperty | m_surfaceTolerance |
| std::atomic< unsigned long long > | m_countExtrapolations = 0 |
| std::atomic< unsigned long long > | m_countRKSwitches = 0 |
Static Private Attributes | |
| static constexpr double | m_deltaPhiTolerance = 0.01 |
Definition at line 29 of file SolenoidalIntersector.h.
| Trk::SolenoidalIntersector::SolenoidalIntersector | ( | const std::string & | type, |
| const std::string & | name, | ||
| const IInterface * | parent ) |
Definition at line 38 of file SolenoidalIntersector.cxx.
|
virtualdefault |
|
overridevirtual |
IIntersector interface method for specific Surface type : PerigeeSurface.
Definition at line 99 of file SolenoidalIntersector.cxx.
|
overridevirtual |
IIntersector interface method for specific Surface type : StraightLineSurface.
Definition at line 106 of file SolenoidalIntersector.cxx.
|
inlineprivate |
Definition at line 163 of file SolenoidalIntersector.h.
|
private |
Definition at line 261 of file SolenoidalIntersector.cxx.
|
staticprivate |
Definition at line 333 of file SolenoidalIntersector.cxx.
|
overridevirtual |
Definition at line 52 of file SolenoidalIntersector.cxx.
|
inlineprivate |
Definition at line 118 of file SolenoidalIntersector.h.
|
overridevirtual |
Definition at line 44 of file SolenoidalIntersector.cxx.
|
overridevirtual |
IIntersector interface method for specific Surface type : CylinderSurface.
Definition at line 113 of file SolenoidalIntersector.cxx.
|
overridevirtual |
IIntersector interface method for specific Surface type : DiscSurface.
Definition at line 138 of file SolenoidalIntersector.cxx.
|
inlineprivate |
Definition at line 239 of file SolenoidalIntersector.h.
|
overridevirtual |
IIntersector interface method for specific Surface type : PlaneSurface.
Definition at line 169 of file SolenoidalIntersector.cxx.
|
overridevirtual |
IIntersector interface method for general Surface type.
Definition at line 63 of file SolenoidalIntersector.cxx.
|
overridevirtual |
IIntersector interface method to check validity of parametrization within extrapolation range.
Definition at line 241 of file SolenoidalIntersector.cxx.
|
inlineprivate |
Definition at line 219 of file SolenoidalIntersector.h.
|
staticprivate |
Definition at line 386 of file SolenoidalIntersector.cxx.
|
private |
Definition at line 414 of file SolenoidalIntersector.cxx.
|
mutableprivate |
Definition at line 157 of file SolenoidalIntersector.h.
|
mutableprivate |
Definition at line 158 of file SolenoidalIntersector.h.
|
staticconstexprprivate |
Definition at line 152 of file SolenoidalIntersector.h.
|
private |
Definition at line 149 of file SolenoidalIntersector.h.
|
private |
Definition at line 147 of file SolenoidalIntersector.h.
|
private |
Definition at line 153 of file SolenoidalIntersector.h.