ATLAS Offline Software
NavigationLayer.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3 */
4 
6 // NavigationLayer.h, (c) ATLAS Detector software
8 
9 #ifndef TRKGEOMETRY_NAVIGATIONLAYER_H
10 #define TRKGEOMETRY_NAVIGATIONLAYER_H
11 
12 class MsgStream;
13 
17 #include "TrkGeometry/Layer.h"
19 #include "TrkSurfaces/Surface.h"
20 
21 #include <memory>
22 
23 namespace Trk {
24 class BinUtility;
25 
41 class NavigationLayer final : public Layer {
42  public:
44  NavigationLayer(std::unique_ptr<Surface> surfaceRepresentation);
45  NavigationLayer(std::unique_ptr<Trk::Surface> surfaceRepresentation, double thickness);
46 
48  NavigationLayer(const NavigationLayer& lay);
49 
51  virtual ~NavigationLayer() override = default;
52 
55 
58  virtual const Surface& surfaceRepresentation() const override final;
59  virtual Surface& surfaceRepresentation() override final;
60 
63  virtual bool isOnLayer(
64  const Amg::Vector3D& gp,
65  const BoundaryCheck& bcheck = BoundaryCheck(true)) const override final;
66 
69 
71  virtual double preUpdateMaterialFactor(
73  Trk::PropDirection dir) const override final;
74 
76  virtual double postUpdateMaterialFactor(
78  Trk::PropDirection dir) const override final;
79 
82  const Surface* sf = nullptr) const;
83 
85  virtual void moveLayer(Amg::Transform3D&) override final;
86 
88  virtual void resizeLayer(const VolumeBounds&, double) override final {}
89 
92  const Amg::Vector3D&,
93  double) override final {}
94 
95  protected:
96  std::unique_ptr<Surface> m_surfaceRepresentation;
97 
98 };
99 
100 inline const Surface&
102 {
103  return (*m_surfaceRepresentation);
104 }
105 
106 inline Surface&
108 {
109  return (*m_surfaceRepresentation);
110 }
111 
113  return nullptr;
114 }
115 
117  PropDirection) const {
118  return 0;
119 }
120 
122  PropDirection) const {
123  return 0;
124 }
125 
127  const Surface*) const {
128  return nullptr;
129 }
130 
132 
133 } // namespace Trk
134 
135 #endif // TRKGEOMETRY_NAVIGATIONLAYER_H
136 
Trk::NavigationLayer::fullUpdateMaterialProperties
const MaterialProperties * fullUpdateMaterialProperties() const
getting the MaterialProperties back - for full update
Definition: NavigationLayer.h:112
TrackParameters.h
Surface.h
BinnedArray.h
Trk::NavigationLayer::resizeLayer
virtual void resizeLayer(const VolumeBounds &, double) override final
Resize the layer to the tracking volume - not implemented.
Definition: NavigationLayer.h:88
Trk::NavigationLayer::postUpdateMaterialFactor
virtual double postUpdateMaterialFactor(const Trk::TrackParameters &par, Trk::PropDirection dir) const override final
getting the MaterialProperties back - for post-update
Definition: NavigationLayer.h:121
Trk::NavigationLayer::operator=
NavigationLayer & operator=(const NavigationLayer &lay)
Assignment operator.
Definition: NavigationLayer.cxx:36
Trk::NavigationLayer
Definition: NavigationLayer.h:41
ParticleTest.tp
tp
Definition: ParticleTest.py:25
Trk::NavigationLayer::surfaceRepresentation
virtual const Surface & surfaceRepresentation() const override final
Transforms the layer into a Surface representation for extrapolation.
Definition: NavigationLayer.h:101
Trk::NavigationLayer::~NavigationLayer
virtual ~NavigationLayer() override=default
Destructor.
PropDirection.h
Layer.h
const
bool const RAWDATA *ch2 const
Definition: LArRodBlockPhysicsV0.cxx:560
Trk::NavigationLayer::overlapSurface
const Surface * overlapSurface(const TrackParameters &tp, const Surface *sf=nullptr) const
getting the next/overlapping Surface
Definition: NavigationLayer.h:126
Trk::NavigationLayer::isOnLayer
virtual bool isOnLayer(const Amg::Vector3D &gp, const BoundaryCheck &bcheck=BoundaryCheck(true)) const override final
isOnLayer() method, using isOnSurface() with Layer specific tolerance
Definition: NavigationLayer.cxx:45
GeoPrimitives.h
Trk::VolumeBounds
Definition: VolumeBounds.h:46
Trk::PropDirection
PropDirection
Definition: PropDirection.h:19
Amg::Transform3D
Eigen::Affine3d Transform3D
Definition: GeoPrimitives.h:46
Trk::ParametersBase
Definition: ParametersBase.h:55
columnar::final
CM final
Definition: ColumnAccessor.h:106
Trk::NavigationLayer::resizeAndRepositionLayer
virtual void resizeAndRepositionLayer(const VolumeBounds &, const Amg::Vector3D &, double) override final
Resize the layer to the tracking volume - not implemented.
Definition: NavigationLayer.h:91
beamspotman.dir
string dir
Definition: beamspotman.py:619
Trk
Ensure that the ATLAS eigen extensions are properly loaded.
Definition: FakeTrackBuilder.h:9
Amg
Definition of ATLAS Math & Geometry primitives (Amg)
Definition: AmgStringHelpers.h:19
createCoolChannelIdFile.par
par
Definition: createCoolChannelIdFile.py:28
Trk::Layer::thickness
double thickness() const
Return the Thickness of the Layer.
Amg::Vector3D
Eigen::Matrix< double, 3, 1 > Vector3D
Definition: GeoPrimitives.h:47
Trk::MaterialProperties
Definition: MaterialProperties.h:40
Trk::NavigationLayer::m_surfaceRepresentation
std::unique_ptr< Surface > m_surfaceRepresentation
Definition: NavigationLayer.h:96
mapkey::sf
@ sf
Definition: TElectronEfficiencyCorrectionTool.cxx:38
Trk::BoundaryCheck
Definition: BoundaryCheck.h:51
Trk::NavigationLayer::moveLayer
virtual void moveLayer(Amg::Transform3D &) override final
move the Layer
Definition: NavigationLayer.h:131
Trk::NavigationLayer::NavigationLayer
NavigationLayer(std::unique_ptr< Surface > surfaceRepresentation)
Constructor.
Definition: NavigationLayer.cxx:13
Trk::NavigationLayer::preUpdateMaterialFactor
virtual double preUpdateMaterialFactor(const Trk::TrackParameters &par, Trk::PropDirection dir) const override final
getting the MaterialProperties back - for pre-update
Definition: NavigationLayer.h:116
Trk::Surface
Definition: Tracking/TrkDetDescr/TrkSurfaces/TrkSurfaces/Surface.h:79
Trk::Layer
Definition: Layer.h:72