2 Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
6 inline const TrackingVolume*
7 TrackingGeometry::highestTrackingVolume() const
12 inline TrackingVolume*
13 TrackingGeometry::highestTrackingVolume()
18 inline NavigationLevel
19 TrackingGeometry::navigationLevel() const
21 return m_navigationLevel;
25 TrackingGeometry::registerNavigationLevel(NavigationLevel navLevel)
27 m_navigationLevel = navLevel;
31 TrackingGeometry::sign(GeometrySignature geosit, GeometryType geotype)
33 m_world->sign(geosit, geotype);
36 inline const TrackingVolume*
37 TrackingGeometry::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);
48 inline const Trk::Layer*
49 TrackingGeometry::associatedLayer(const Amg::Vector3D& gp) const
51 const TrackingVolume* lowestVol = (lowestTrackingVolume(gp));
52 return lowestVol->associatedLayer(gp);
55 inline const Trk::Layer*
56 TrackingGeometry::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);
64 inline const std::map<Layer*, int>&
65 TrackingGeometry::boundaryLayers()
67 return m_boundaryLayers;
70 inline TrackingGeometry::constMapRange_t
71 TrackingGeometry::boundaryLayers() const
73 iterator_convert_const_t begin = boost::make_transform_iterator(
74 m_boundaryLayers.begin(), constTransformLayerMap());
76 iterator_convert_const_t end = boost::make_transform_iterator(
77 m_boundaryLayers.end(), constTransformLayerMap());
79 return TrackingGeometry::constMapRange_t(begin, end);
83 TrackingGeometry::numBoundaryLayers() const
85 return m_boundaryLayers.size();
89 LayerIntersection<Amg::Vector3D>
90 TrackingGeometry::closestMaterialLayer(const T& pars,
92 const BoundaryCheck& bchk) const
94 const TrackingVolume* lowestVol = (lowestTrackingVolume(pars.position()));
95 return (lowestVol) ? (lowestVol->closestMaterialLayer(
96 pars.position(), pars.momentum().unit(), pDir, bchk))
97 : Trk::LayerIntersection<Amg::Vector3D>(
98 Trk::Intersection(pars.position(), 10e10, false),