ATLAS Offline Software
PlaneLayer.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
3 */
4 
6 // PlaneLayer.h, (c) ATLAS Detector software
8 
9 #ifndef TRKGEOMETRY_PLANELAYER_H
10 #define TRKGEOMETRY_PLANELAYER_H
11 
12 class MsgStream;
13 
15 #include "TrkGeometry/Layer.h"
17 // STL sorting
18 #include <algorithm>
19 
20 namespace Trk {
21 
22 class RectangleBounds;
23 class TrapezoidBounds;
24 class DiamondBounds;
25 class EllipseBounds;
26 class LayerMaterialProperties;
27 
37 class PlaneLayer final
38  : public PlaneSurface
39  , public Layer
40 {
41 public:
44 
48  PlaneLayer(const Amg::Transform3D & transform, const SurfaceBounds* rbounds,
49  const LayerMaterialProperties& laymatprop, double thickness = 0.,
50  std::unique_ptr<OverlapDescriptor> od = nullptr, int laytyp = int(Trk::active));
51 
53  const LayerMaterialProperties& laymatprop, double thickness = 0.,
54  std::unique_ptr<OverlapDescriptor> od = nullptr, int laytyp = int(Trk::active));
55 
61  const Trk::LayerMaterialProperties& laymatprop,
62  double thickness = 0., std::unique_ptr<Trk::OverlapDescriptor> olap = nullptr,
63  int laytyp = int(Trk::active));
64 
69  std::unique_ptr<SurfaceArray> surfaceArray, double thickness = 0.,
70  std::unique_ptr<OverlapDescriptor> od = nullptr, int laytyp = int(Trk::active));
71 
73  PlaneLayer(const PlaneLayer& pla);
74 
76  PlaneLayer(const PlaneLayer& pla, const Amg::Transform3D& tr);
77 
80 
82  virtual ~PlaneLayer() override {}
83 
85  virtual const PlaneSurface& surfaceRepresentation() const override final;
86  virtual PlaneSurface& surfaceRepresentation() override final;
87 
88 
91  virtual double preUpdateMaterialFactor(
93  Trk::PropDirection dir) const override final;
94 
97  virtual double postUpdateMaterialFactor(
99  Trk::PropDirection dir) const override final;
100 
102  virtual void moveLayer(Amg::Transform3D& shift) override final;
103 
105  virtual void resizeLayer(const VolumeBounds&, double) override final {}
106 
109  const Amg::Vector3D&,
110  double) override final {}
111 };
112 
117  public:
120 
121  bool operator()(const PlaneLayer* one, const PlaneLayer* two) const {
122  return (one->center().x() < two->center().x());
123  }
124 };
125 
130  public:
133 
134  bool operator()(const PlaneLayer* one, const PlaneLayer* two) const {
135  return (one->center().y() < two->center().y());
136  }
137 };
138 
143  public:
146 
147  bool operator()(const PlaneLayer* one, const PlaneLayer* two) const {
148  return (one->center().z() < two->center().z());
149  }
150 };
151 
152 } // namespace Trk
153 
154 #endif // TRKGEOMETY_PLANELAYER_H
155 
Trk::PlaneLayerSorterX
Definition: PlaneLayer.h:116
Trk::PlaneLayer::surfaceRepresentation
virtual const PlaneSurface & surfaceRepresentation() const override final
Transforms the layer into a Surface representation for extrapolation.
Definition: PlaneLayer.cxx:57
Trk::SurfaceBounds
Definition: SurfaceBounds.h:47
Trk::PlaneLayerSorterY::operator()
bool operator()(const PlaneLayer *one, const PlaneLayer *two) const
Definition: PlaneLayer.h:134
Trk::one
@ one
Definition: TrkDetDescr/TrkSurfaces/TrkSurfaces/RealQuadraticEquation.h:22
Trk::PlaneLayer::PlaneLayer
PlaneLayer(const Amg::Transform3D &transform, const Trk::SurfaceBounds *tbounds, std::unique_ptr< SurfaceArray > surfaceArray, double thickness=0., std::unique_ptr< OverlapDescriptor > od=nullptr, int laytyp=int(Trk::active))
Constructor with PlaneSurface components and pointer to SurfaceArray (passing ownership),...
PropDirection.h
Layer.h
Trk::PlaneLayer::preUpdateMaterialFactor
virtual double preUpdateMaterialFactor(const Trk::TrackParameters &par, Trk::PropDirection dir) const override final
getting the MaterialProperties back - for pre-update
Definition: PlaneLayer.cxx:67
Trk::PlaneLayer::resizeLayer
virtual void resizeLayer(const VolumeBounds &, double) override final
Resize the layer to the tracking volume - not implemented.
Definition: PlaneLayer.h:105
const
bool const RAWDATA *ch2 const
Definition: LArRodBlockPhysicsV0.cxx:562
Trk::Layer::surfaceArray
const SurfaceArray * surfaceArray() const
Return the entire SurfaceArray, returns nullptr if no SurfaceArray.
Trk::PlaneLayerSorterX::PlaneLayerSorterX
PlaneLayerSorterX()
Default Constructor.
Definition: PlaneLayer.h:119
Trk::VolumeBounds
Definition: VolumeBounds.h:45
Trk::PropDirection
PropDirection
Definition: PropDirection.h:19
Trk::PlaneLayer::~PlaneLayer
virtual ~PlaneLayer() override
Destructor.
Definition: PlaneLayer.h:82
Trk::active
@ active
Definition: Layer.h:48
Trk::two
@ two
Definition: TrkDetDescr/TrkSurfaces/TrkSurfaces/RealQuadraticEquation.h:23
Trk::PlaneLayerSorterX::operator()
bool operator()(const PlaneLayer *one, const PlaneLayer *two) const
Definition: PlaneLayer.h:121
Trk::LayerMaterialProperties
Definition: LayerMaterialProperties.h:62
Amg::Transform3D
Eigen::Affine3d Transform3D
Definition: GeoPrimitives.h:46
Trk::PlaneLayer
Definition: PlaneLayer.h:40
Trk::PlaneLayer::postUpdateMaterialFactor
virtual double postUpdateMaterialFactor(const Trk::TrackParameters &par, Trk::PropDirection dir) const override final
getting the MaterialProperties back - for post-update
Definition: PlaneLayer.cxx:75
Trk::PlaneLayer::resizeAndRepositionLayer
virtual void resizeAndRepositionLayer(const VolumeBounds &, const Amg::Vector3D &, double) override final
Resize the layer to the tracking volume - not implemented.
Definition: PlaneLayer.h:108
Trk::ParametersBase
Definition: ParametersBase.h:55
Trk::PlaneLayer::moveLayer
virtual void moveLayer(Amg::Transform3D &shift) override final
move the Layer
Definition: PlaneLayer.cxx:83
beamspotman.dir
string dir
Definition: beamspotman.py:623
Trk::PlaneLayerSorterZ::operator()
bool operator()(const PlaneLayer *one, const PlaneLayer *two) const
Definition: PlaneLayer.h:147
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
Trk::PlaneLayerSorterZ
Definition: PlaneLayer.h:142
createCoolChannelIdFile.par
par
Definition: createCoolChannelIdFile.py:29
Trk::PlaneLayer::PlaneLayer
PlaneLayer()
Default Constructor.
Definition: PlaneLayer.h:43
Trk::PlaneLayer::PlaneLayer
PlaneLayer(const PlaneLayer &pla)
Copy constructor of PlaneLayer.
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::PlaneLayerSorterY::PlaneLayerSorterY
PlaneLayerSorterY()
Default Constructor.
Definition: PlaneLayer.h:132
Trk::SharedObject
std::shared_ptr< T > SharedObject
Definition: SharedObject.h:24
Trk::PlaneSurface
Definition: PlaneSurface.h:64
PlaneSurface.h
Trk::PlaneLayerSorterY
Definition: PlaneLayer.h:129
Trk::Surface::transform
const Amg::Transform3D & transform() const
Returns HepGeom::Transform3D by reference.
Trk::PlaneLayerSorterZ::PlaneLayerSorterZ
PlaneLayerSorterZ()
Default Constructor.
Definition: PlaneLayer.h:145
Trk::PlaneLayer::operator=
PlaneLayer & operator=(const PlaneLayer &)
Assignment operator for PlaneLayers.
Definition: PlaneLayer.cxx:46
Trk::Layer
Definition: Layer.h:73