![]() |
ATLAS Offline Software
|
#include <RungeKuttaIntersector.h>
Public Member Functions | |
| RungeKuttaIntersector (const std::string &type, const std::string &name, const IInterface *parent) | |
| virtual | ~RungeKuttaIntersector ()=default |
| virtual StatusCode | initialize () override |
| virtual StatusCode | finalize () override |
| virtual std::optional< TrackSurfaceIntersection > | intersectSurface (const Surface &surface, const TrackSurfaceIntersection &trackIntersection, const double qOverP) const override |
| IIntersector interface method for general Surface type. | |
| virtual std::optional< TrackSurfaceIntersection > | approachPerigeeSurface (const PerigeeSurface &surface, const TrackSurfaceIntersection &trackIntersection, const double qOverP) const override |
| IIntersector interface method for specific Surface type : PerigeeSurface. | |
| virtual std::optional< TrackSurfaceIntersection > | approachStraightLineSurface (const StraightLineSurface &surface, const TrackSurfaceIntersection &trackIntersection, const double qOverP) const override |
| IIntersector interface method for specific Surface type : StraightLineSurface. | |
| virtual std::optional< TrackSurfaceIntersection > | intersectCylinderSurface (const CylinderSurface &surface, const TrackSurfaceIntersection &trackIntersection, const double qOverP) const override |
| IIntersector interface method for specific Surface type : CylinderSurface. | |
| virtual std::optional< TrackSurfaceIntersection > | intersectDiscSurface (const DiscSurface &surface, const TrackSurfaceIntersection &trackIntersection, const double qOverP) const override |
| IIntersector interface method for specific Surface type : DiscSurface. | |
| virtual std::optional< TrackSurfaceIntersection > | intersectPlaneSurface (const PlaneSurface &surface, const TrackSurfaceIntersection &trackIntersection, const double qOverP) const override |
| IIntersector interface method for specific Surface type : PlaneSurface. | |
| virtual bool | isValid (Amg::Vector3D, Amg::Vector3D) const override |
| IIntersector interface method for validity check over a particular extrapolation range. | |
Private Member Functions | |
| void | assignStepLength (const TrackSurfaceIntersection &isect, double &stepLength) const |
| void | debugFailure (TrackSurfaceIntersection &&isect, const Surface &surface, const double qOverP, const double rStart, const double zStart, const bool trapped) const |
| double | distanceToCylinder (const TrackSurfaceIntersection &isect, const double cylinderRadius, const double offsetRadius, const Amg::Vector3D &offset, double &stepLength) const |
| double | distanceToDisc (const TrackSurfaceIntersection &isect, const double discZ, double &stepLength) const |
| double | distanceToLine (const TrackSurfaceIntersection &isect, const Amg::Vector3D &linePosition, const Amg::Vector3D &lineDirection, double &stepLength) const |
| double | distanceToPlane (const TrackSurfaceIntersection &isect, const Amg::Vector3D &planePosition, const Amg::Vector3D &planeNormal, double &stepLength) const |
| Amg::Vector3D | field (const Amg::Vector3D &point, MagField::AtlasFieldCache &fieldCache) const |
| void | initializeFieldCache (MagField::AtlasFieldCache &fieldCache) const |
| std::optional< TrackSurfaceIntersection > | newIntersection (TrackSurfaceIntersection &&isect, const Surface &surface, const double qOverP, const double rStart, const double zStart) const |
| void | shortStep (TrackSurfaceIntersection &isect, const Amg::Vector3D &fieldValue, const double stepLength, const double qOverP) const |
| void | step (TrackSurfaceIntersection &isect, Amg::Vector3D &fieldValue, double &stepLength, const double qOverP, MagField::AtlasFieldCache &fieldCache) const |
Private Attributes | |
| SG::ReadCondHandleKey< AtlasFieldCacheCondObj > | m_fieldCacheCondObjInputKey |
| BooleanProperty | m_productionMode {this, "ProductionMode", true} |
| const double | m_caloR0 = 1900.*Gaudi::Units::mm |
| const double | m_caloR1 = 2500.*Gaudi::Units::mm |
| const double | m_caloR2 = 3500.*Gaudi::Units::mm |
| const double | m_caloR3 = 3700.*Gaudi::Units::mm |
| const double | m_caloR4 = 3800.*Gaudi::Units::mm |
| const double | m_caloZ0 = 2350.*Gaudi::Units::mm |
| const double | m_caloZ1 = 2600.*Gaudi::Units::mm |
| const double | m_caloZ2 = 3600.*Gaudi::Units::mm |
| const double | m_caloZ3 = 6000.*Gaudi::Units::mm |
| const double | m_inDetR0 = 400.*Gaudi::Units::mm |
| const double | m_inDetR1 = 350.*Gaudi::Units::mm |
| const double | m_inDetR2 = 800.*Gaudi::Units::mm |
| const double | m_inDetZ0 = 350.*Gaudi::Units::mm |
| const double | m_inDetZ1 = 420.*Gaudi::Units::mm |
| const double | m_inDetZ2 = 700.*Gaudi::Units::mm |
| const double | m_momentumThreshold = 1./20.*Gaudi::Units::MeV |
| const double | m_momentumWarnThreshold = 1./450.*Gaudi::Units::MeV |
| const double | m_muonR0 = 4300.*Gaudi::Units::mm |
| const double | m_muonZ0 = 6600.*Gaudi::Units::mm |
| double | m_shortStepMax = 3.0*Gaudi::Units::mm |
| const double | m_shortStepMin = 10.*Gaudi::Units::nanometer |
| const double | m_solenoidR = 1300.*Gaudi::Units::mm |
| const double | m_solenoidZ = 3500.*Gaudi::Units::mm |
| double | m_stepMax0 = 8.0*Gaudi::Units::mm |
| double | m_stepMax1 = 40.0*Gaudi::Units::mm |
| double | m_stepMax2 = 80.0*Gaudi::Units::mm |
| double | m_stepMax3 = 160.0*Gaudi::Units::mm |
| double | m_stepMax4 = 320.0*Gaudi::Units::mm |
| int | m_stepsUntilTrapped = 2000 |
| const double | m_third = 1./3. |
| const double | m_toroidR0 = 1850.0*Gaudi::Units::mm |
| const double | m_toroidR1 = 3500.0*Gaudi::Units::mm |
| const double | m_toroidR2 = 6000.0*Gaudi::Units::mm |
| const double | m_toroidR3 = 6500.0*Gaudi::Units::mm |
| const double | m_toroidZ0 = 7000.0*Gaudi::Units::mm |
| const double | m_toroidZ1 = 8000.0*Gaudi::Units::mm |
| const double | m_toroidZ2 = 8700.0*Gaudi::Units::mm |
| const double | m_toroidZ3 = 9100.0*Gaudi::Units::mm |
| const double | m_toroidZ4 = 9500.0*Gaudi::Units::mm |
| const double | m_toroidZ5 = 9800.0*Gaudi::Units::mm |
| const double | m_toroidZ6 = 11400.0*Gaudi::Units::mm |
| const double | m_toroidZ7 = 12900.0*Gaudi::Units::mm |
| const double | m_toroidZ8 = 14000.0*Gaudi::Units::mm |
| std::atomic< unsigned long long > | m_countExtrapolations = 0 |
| std::atomic< unsigned long long > | m_countShortStep = 0 |
| std::atomic< unsigned long long > | m_countStep = 0 |
| std::atomic< unsigned long long > | m_countStepReduction = 0 |
Definition at line 28 of file RungeKuttaIntersector.h.
| Trk::RungeKuttaIntersector::RungeKuttaIntersector | ( | const std::string & | type, |
| const std::string & | name, | ||
| const IInterface * | parent ) |
Definition at line 50 of file RungeKuttaIntersector.cxx.
|
virtualdefault |
|
overridevirtual |
IIntersector interface method for specific Surface type : PerigeeSurface.
Definition at line 142 of file RungeKuttaIntersector.cxx.
|
overridevirtual |
IIntersector interface method for specific Surface type : StraightLineSurface.
Definition at line 184 of file RungeKuttaIntersector.cxx.
|
private |
Definition at line 382 of file RungeKuttaIntersector.cxx.
|
private |
Definition at line 585 of file RungeKuttaIntersector.cxx.
|
inlineprivate |
Definition at line 220 of file RungeKuttaIntersector.h.
|
inlineprivate |
Definition at line 236 of file RungeKuttaIntersector.h.
|
inlineprivate |
Definition at line 247 of file RungeKuttaIntersector.h.
|
inlineprivate |
Definition at line 266 of file RungeKuttaIntersector.h.
|
inlineprivate |
Definition at line 291 of file RungeKuttaIntersector.h.
|
overridevirtual |
Definition at line 79 of file RungeKuttaIntersector.cxx.
|
overridevirtual |
Definition at line 56 of file RungeKuttaIntersector.cxx.
|
inlineprivate |
Definition at line 280 of file RungeKuttaIntersector.h.
|
overridevirtual |
IIntersector interface method for specific Surface type : CylinderSurface.
Definition at line 226 of file RungeKuttaIntersector.cxx.
|
overridevirtual |
IIntersector interface method for specific Surface type : DiscSurface.
Definition at line 298 of file RungeKuttaIntersector.cxx.
|
overridevirtual |
IIntersector interface method for specific Surface type : PlaneSurface.
Definition at line 339 of file RungeKuttaIntersector.cxx.
|
overridevirtual |
IIntersector interface method for general Surface type.
Definition at line 101 of file RungeKuttaIntersector.cxx.
|
inlineoverridevirtual |
IIntersector interface method for validity check over a particular extrapolation range.
Definition at line 77 of file RungeKuttaIntersector.h.
|
inlineprivate |
Definition at line 299 of file RungeKuttaIntersector.h.
|
private |
Definition at line 684 of file RungeKuttaIntersector.cxx.
|
private |
Definition at line 711 of file RungeKuttaIntersector.cxx.
|
private |
Definition at line 134 of file RungeKuttaIntersector.h.
|
private |
Definition at line 136 of file RungeKuttaIntersector.h.
|
private |
Definition at line 138 of file RungeKuttaIntersector.h.
|
private |
Definition at line 140 of file RungeKuttaIntersector.h.
|
private |
Definition at line 142 of file RungeKuttaIntersector.h.
|
private |
Definition at line 144 of file RungeKuttaIntersector.h.
|
private |
Definition at line 146 of file RungeKuttaIntersector.h.
|
private |
Definition at line 148 of file RungeKuttaIntersector.h.
|
private |
Definition at line 150 of file RungeKuttaIntersector.h.
|
mutableprivate |
Definition at line 212 of file RungeKuttaIntersector.h.
|
mutableprivate |
Definition at line 213 of file RungeKuttaIntersector.h.
|
mutableprivate |
Definition at line 214 of file RungeKuttaIntersector.h.
|
mutableprivate |
Definition at line 215 of file RungeKuttaIntersector.h.
|
private |
Definition at line 125 of file RungeKuttaIntersector.h.
|
private |
Definition at line 152 of file RungeKuttaIntersector.h.
|
private |
Definition at line 154 of file RungeKuttaIntersector.h.
|
private |
Definition at line 156 of file RungeKuttaIntersector.h.
|
private |
Definition at line 158 of file RungeKuttaIntersector.h.
|
private |
Definition at line 160 of file RungeKuttaIntersector.h.
|
private |
Definition at line 162 of file RungeKuttaIntersector.h.
|
private |
Definition at line 164 of file RungeKuttaIntersector.h.
|
private |
Definition at line 166 of file RungeKuttaIntersector.h.
|
private |
Definition at line 168 of file RungeKuttaIntersector.h.
|
private |
Definition at line 170 of file RungeKuttaIntersector.h.
|
private |
Definition at line 130 of file RungeKuttaIntersector.h.
|
private |
Definition at line 171 of file RungeKuttaIntersector.h.
|
private |
Definition at line 172 of file RungeKuttaIntersector.h.
|
private |
Definition at line 174 of file RungeKuttaIntersector.h.
|
private |
Definition at line 176 of file RungeKuttaIntersector.h.
|
private |
Definition at line 177 of file RungeKuttaIntersector.h.
|
private |
Definition at line 178 of file RungeKuttaIntersector.h.
|
private |
Definition at line 179 of file RungeKuttaIntersector.h.
|
private |
Definition at line 180 of file RungeKuttaIntersector.h.
|
private |
Definition at line 181 of file RungeKuttaIntersector.h.
|
private |
Definition at line 182 of file RungeKuttaIntersector.h.
|
private |
Definition at line 183 of file RungeKuttaIntersector.h.
|
private |
Definition at line 185 of file RungeKuttaIntersector.h.
|
private |
Definition at line 187 of file RungeKuttaIntersector.h.
|
private |
Definition at line 189 of file RungeKuttaIntersector.h.
|
private |
Definition at line 191 of file RungeKuttaIntersector.h.
|
private |
Definition at line 193 of file RungeKuttaIntersector.h.
|
private |
Definition at line 195 of file RungeKuttaIntersector.h.
|
private |
Definition at line 197 of file RungeKuttaIntersector.h.
|
private |
Definition at line 199 of file RungeKuttaIntersector.h.
|
private |
Definition at line 201 of file RungeKuttaIntersector.h.
|
private |
Definition at line 203 of file RungeKuttaIntersector.h.
|
private |
Definition at line 205 of file RungeKuttaIntersector.h.
|
private |
Definition at line 207 of file RungeKuttaIntersector.h.
|
private |
Definition at line 209 of file RungeKuttaIntersector.h.