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 |
double | m_deltaPhiTolerance |
double | m_surfaceTolerance |
std::atomic< unsigned long long > | m_countExtrapolations |
std::atomic< unsigned long long > | m_countRKSwitches |
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 108 of file SolenoidalIntersector.cxx.
|
overridevirtual |
IIntersector interface method for specific Surface type : StraightLineSurface.
Definition at line 115 of file SolenoidalIntersector.cxx.
|
inlineprivate |
Definition at line 161 of file SolenoidalIntersector.h.
|
private |
Definition at line 270 of file SolenoidalIntersector.cxx.
|
staticprivate |
Definition at line 342 of file SolenoidalIntersector.cxx.
|
overridevirtual |
Definition at line 61 of file SolenoidalIntersector.cxx.
|
inlineprivate |
Definition at line 118 of file SolenoidalIntersector.h.
|
overridevirtual |
Definition at line 53 of file SolenoidalIntersector.cxx.
|
overridevirtual |
IIntersector interface method for specific Surface type : CylinderSurface.
Definition at line 122 of file SolenoidalIntersector.cxx.
|
overridevirtual |
IIntersector interface method for specific Surface type : DiscSurface.
Definition at line 147 of file SolenoidalIntersector.cxx.
|
inlineprivate |
Definition at line 237 of file SolenoidalIntersector.h.
|
overridevirtual |
IIntersector interface method for specific Surface type : PlaneSurface.
Definition at line 178 of file SolenoidalIntersector.cxx.
|
overridevirtual |
IIntersector interface method for general Surface type.
Definition at line 72 of file SolenoidalIntersector.cxx.
|
overridevirtual |
IIntersector interface method to check validity of parametrization within extrapolation range.
Definition at line 250 of file SolenoidalIntersector.cxx.
|
inlineprivate |
Definition at line 217 of file SolenoidalIntersector.h.
|
staticprivate |
Definition at line 395 of file SolenoidalIntersector.cxx.
|
private |
Definition at line 422 of file SolenoidalIntersector.cxx.
|
mutableprivate |
Definition at line 155 of file SolenoidalIntersector.h.
|
mutableprivate |
Definition at line 156 of file SolenoidalIntersector.h.
|
private |
Definition at line 151 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 152 of file SolenoidalIntersector.h.