ATLAS Offline Software
NavigationLayer.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2022 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 
20 namespace Trk {
21 
22 class Surface;
23 class BinUtility;
24 
39 class NavigationLayer final : public Layer {
40  public:
44  Layer* next = nullptr, BinUtility* binUtil = nullptr);
45 
51 
53  NavigationLayer(const NavigationLayer& lay);
54 
56  virtual ~NavigationLayer() override;
57 
60 
63  virtual const Surface& surfaceRepresentation() const override final;
64  virtual Surface& surfaceRepresentation() override final;
65 
68  virtual bool isOnLayer(
69  const Amg::Vector3D& gp,
70  const BoundaryCheck& bcheck = BoundaryCheck(true)) const override final;
71 
74 
76  virtual double preUpdateMaterialFactor(
78  Trk::PropDirection dir) const override final;
79 
81  virtual double postUpdateMaterialFactor(
83  Trk::PropDirection dir) const override final;
84 
87  const Surface* sf = nullptr) const;
88 
90  virtual void moveLayer(Amg::Transform3D&) override final;
91 
93  virtual void resizeLayer(const VolumeBounds&, double) override final {}
94 
97  const Amg::Vector3D&,
98  double) override final {}
99 
100  protected:
102 
104  private:
107 };
108 
109 inline const Surface&
111 {
112  return (*m_surfaceRepresentation);
113 }
114 
115 inline Surface&
117 {
118  return (*m_surfaceRepresentation);
119 }
120 
122  const {
123  return nullptr;
124 }
125 
127  PropDirection) const {
128  return 0;
129 }
130 
132  PropDirection) const {
133  return 0;
134 }
135 
137  const Surface*) const {
138  return nullptr;
139 }
140 
142 
143 } // namespace Trk
144 
145 #endif // TRKGEOMETRY_NAVIGATIONLAYER_H
146 
Trk::NavigationLayer::fullUpdateMaterialProperties
const MaterialProperties * fullUpdateMaterialProperties() const
getting the MaterialProperties back - for full update
Definition: NavigationLayer.h:121
TrackParameters.h
Trk::NavigationLayer::~NavigationLayer
virtual ~NavigationLayer() override
Destructor.
Definition: NavigationLayer.cxx:41
Trk::NavigationLayer::NavigationLayer
NavigationLayer()
Default Constructor.
Definition: NavigationLayer.h:106
Trk::next
@ next
Definition: BinningData.h:33
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:93
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:131
Trk::NavigationLayer::operator=
NavigationLayer & operator=(const NavigationLayer &lay)
Assignment operator.
Definition: NavigationLayer.cxx:43
Trk::NavigationLayer
Definition: NavigationLayer.h:39
Surface
Definition: Trigger/TrigAccel/TrigCudaFitter/src/Surface.h:7
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:110
PropDirection.h
Layer.h
Trk::NavigationLayer::overlapSurface
const Surface * overlapSurface(const TrackParameters &tp, const Surface *sf=nullptr) const
getting the next/overlapping Surface
Definition: NavigationLayer.h:136
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:53
GeoPrimitives.h
Trk::VolumeBounds
Definition: VolumeBounds.h:45
Trk::PropDirection
PropDirection
Definition: PropDirection.h:19
Amg::Transform3D
Eigen::Affine3d Transform3D
Definition: GeoPrimitives.h:46
Trk::ParametersBase
Definition: ParametersBase.h:55
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:96
beamspotman.dir
string dir
Definition: beamspotman.py:623
Trk::BinUtility
Definition: BinUtility.h:39
Trk
Ensure that the ATLAS eigen extensions are properly loaded.
Definition: FakeTrackBuilder.h:9
createCoolChannelIdFile.par
par
Definition: createCoolChannelIdFile.py:29
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::NavigationLayer::m_surfaceRepresentation
Surface * m_surfaceRepresentation
for the navigation Volume the surface is a private member *‍/
Definition: NavigationLayer.h:101
Trk::MaterialProperties
Definition: MaterialProperties.h:40
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:141
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:126
Trk::Surface
Definition: Tracking/TrkDetDescr/TrkSurfaces/TrkSurfaces/Surface.h:75
Trk::previous
@ previous
Definition: BinningData.h:32
Trk::Layer
Definition: Layer.h:73