![]() |
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. More... | |
virtual std::optional< TrackSurfaceIntersection > | approachPerigeeSurface (const PerigeeSurface &surface, const TrackSurfaceIntersection &trackTrackSurfaceIntersection, const double qOverP) const override |
IIntersector interface method for specific Surface type : PerigeeSurface. More... | |
virtual std::optional< TrackSurfaceIntersection > | approachStraightLineSurface (const StraightLineSurface &surface, const TrackSurfaceIntersection &trackTrackSurfaceIntersection, const double qOverP) const override |
IIntersector interface method for specific Surface type : StraightLineSurface. More... | |
virtual std::optional< TrackSurfaceIntersection > | intersectCylinderSurface (const CylinderSurface &surface, const TrackSurfaceIntersection &trackTrackSurfaceIntersection, const double qOverP) const override |
IIntersector interface method for specific Surface type : CylinderSurface. More... | |
virtual std::optional< TrackSurfaceIntersection > | intersectDiscSurface (const DiscSurface &surface, const TrackSurfaceIntersection &trackTrackSurfaceIntersection, const double qOverP) const override |
IIntersector interface method for specific Surface type : DiscSurface. More... | |
virtual std::optional< TrackSurfaceIntersection > | intersectPlaneSurface (const PlaneSurface &surface, const TrackSurfaceIntersection &trackTrackSurfaceIntersection, const double qOverP) const override |
IIntersector interface method for specific Surface type : PlaneSurface. More... | |
virtual bool | isValid (Amg::Vector3D startPosition, Amg::Vector3D endPosition) const override |
IIntersector interface method to check validity of parametrization within extrapolation range. More... | |
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.