2 Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
6inline const TrackingVolume*
7TrackingGeometry::highestTrackingVolume() const
13TrackingGeometry::highestTrackingVolume()
19TrackingGeometry::navigationLevel() const
21 return m_navigationLevel;
25TrackingGeometry::registerNavigationLevel(NavigationLevel navLevel)
27 m_navigationLevel = navLevel;
31TrackingGeometry::sign(GeometrySignature geosit, GeometryType geotype)
33 m_world->sign(geosit, geotype);
36inline const TrackingVolume*
37TrackingGeometry::trackingVolume(const std::string& name) const
39 std::map<const std::string, const TrackingVolume*>::const_iterator sVol =
40 m_trackingVolumes.begin();
41 sVol = m_trackingVolumes.find(name);
42 if (sVol != m_trackingVolumes.end()) {
43 return (sVol->second);
48inline const Trk::Layer*
49TrackingGeometry::associatedLayer(const Amg::Vector3D& gp) const
51 const TrackingVolume* lowestVol = (lowestTrackingVolume(gp));
52 return lowestVol->associatedLayer(gp);
55inline const Trk::Layer*
56TrackingGeometry::nextLayer(const Amg::Vector3D& gp,
57 const Amg::Vector3D& mom,
58 bool skipNavLayer) const
60 const TrackingVolume* lowestVol = (lowestTrackingVolume(gp));
61 return lowestVol->nextLayer(gp, mom, true, skipNavLayer);
64inline const std::map<Layer*, int>&
65TrackingGeometry::boundaryLayers()
67 return m_boundaryLayers;
70inline auto TrackingGeometry::boundaryLayers() const {
71 return std::views::transform(m_boundaryLayers, [](const auto& in) {
72 return std::pair<const Layer*, int>{in.first, in.second};
77TrackingGeometry::numBoundaryLayers() const
79 return m_boundaryLayers.size();
83LayerIntersection<Amg::Vector3D>
84TrackingGeometry::closestMaterialLayer(const T& pars,
86 const BoundaryCheck& bchk) const
88 const TrackingVolume* lowestVol = (lowestTrackingVolume(pars.position()));
89 return (lowestVol) ? (lowestVol->closestMaterialLayer(
90 pars.position(), pars.momentum().unit(), pDir, bchk))
91 : Trk::LayerIntersection<Amg::Vector3D>(
92 Trk::Intersection(pars.position(), 10e10, false),