ATLAS Offline Software
ConeLayer.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 // ConeLayer.h, (c) ATLAS Detector software
8 
9 #ifndef TRKGEOMETRY_CONELAYER_H
10 #define TRKGEOMETRY_CONELAYER_H
11 
12 class MsgStream;
13 
14 // Amg
16 // Trk
19 #include "TrkGeometry/Layer.h"
21 // STL sorting
22 #include <algorithm>
23 
24 namespace Trk {
25 
26 class ConeBounds;
27 class LayerMaterialProperties;
28 class OverlapDescriptor;
29 
39 class ConeLayer final
40  : public ConeSurface
41  , public Layer
42 {
43 public:
45  ConeLayer() {}
46 
49  ConeBounds* cbounds,
50  const LayerMaterialProperties& laymatprop,
51  double thickness = 0.,
52  std::unique_ptr<OverlapDescriptor> od = nullptr,
53  int laytyp = int(Trk::active));
54 
57  const LayerMaterialProperties& laymatprop,
58  double thickness = 0.,
59  std::unique_ptr<OverlapDescriptor> od = nullptr,
60  int laytyp = int(Trk::active));
61 
65  ConeBounds* cbounds,
66  std::unique_ptr<SurfaceArray> surfaceArray,
67  double thickness = 0.,
68  std::unique_ptr<OverlapDescriptor> od = nullptr,
69  int laytyp = int(Trk::active));
70 
74  ConeBounds* cbounds,
75  std::unique_ptr<SurfaceArray> surfaceArray,
76  const LayerMaterialProperties& laymatprop,
77  double thickness = 0.,
78  std::unique_ptr<OverlapDescriptor> od = nullptr,
79  int laytyp = int(Trk::active));
80 
82  ConeLayer(const ConeLayer& cla);
83 
85  ConeLayer(const ConeLayer& cla, const Amg::Transform3D& tr);
86 
88  ConeLayer& operator=(const ConeLayer&);
89 
91  virtual ~ConeLayer() override {}
92 
94  virtual const ConeSurface& surfaceRepresentation() const override final;
95  virtual ConeSurface& surfaceRepresentation() override final;
96 
98  virtual double preUpdateMaterialFactor(
100  Trk::PropDirection dir) const override final;
101 
103  virtual double postUpdateMaterialFactor(
105  Trk::PropDirection dir) const override final;
106 
108  virtual void moveLayer(Amg::Transform3D& shift) override final;
109 
112  virtual void resizeLayer(const VolumeBounds&, double) override final{}
113 
117  const Amg::Vector3D&,
118  double) override final
119  {}
120 };
121 
122 } // namespace Trk
123 
124 #endif // TRKGEOMETY_CONELAYER_H
Trk::ConeLayer::preUpdateMaterialFactor
virtual double preUpdateMaterialFactor(const Trk::TrackParameters &par, Trk::PropDirection dir) const override final
getting the MaterialProperties back - for pre-update
Definition: ConeLayer.cxx:92
Trk::ConeLayer::ConeLayer
ConeLayer(const ConeLayer &cla)
Copy constructor of ConeLayer.
Trk::ConeLayer::postUpdateMaterialFactor
virtual double postUpdateMaterialFactor(const Trk::TrackParameters &par, Trk::PropDirection dir) const override final
getting the MaterialProperties back - for post-update
Definition: ConeLayer.cxx:106
BinnedArray.h
PropDirection.h
Layer.h
Trk::ConeBounds
Definition: ConeBounds.h:44
const
bool const RAWDATA *ch2 const
Definition: LArRodBlockPhysicsV0.cxx:562
Trk::ConeLayer::~ConeLayer
virtual ~ConeLayer() override
Destructor.
Definition: ConeLayer.h:91
Trk::Layer::surfaceArray
const SurfaceArray * surfaceArray() const
Return the entire SurfaceArray, returns nullptr if no SurfaceArray.
GeoPrimitives.h
Trk::VolumeBounds
Definition: VolumeBounds.h:45
Trk::PropDirection
PropDirection
Definition: PropDirection.h:19
Trk::ConeLayer::resizeAndRepositionLayer
virtual void resizeAndRepositionLayer(const VolumeBounds &, const Amg::Vector3D &, double) override final
Resize the layer to the tracking volume - not supported since this an entry layer method.
Definition: ConeLayer.h:116
ConeSurface.h
Trk::active
@ active
Definition: Layer.h:48
Trk::ConeLayer::moveLayer
virtual void moveLayer(Amg::Transform3D &shift) override final
move the Layer
Definition: ConeLayer.cxx:119
Trk::LayerMaterialProperties
Definition: LayerMaterialProperties.h:62
Amg::Transform3D
Eigen::Affine3d Transform3D
Definition: GeoPrimitives.h:46
Trk::ConeLayer::resizeLayer
virtual void resizeLayer(const VolumeBounds &, double) override final
Resize the layer to the tracking volume - not (yet) supported for ConeLayer.
Definition: ConeLayer.h:112
Trk::ParametersBase
Definition: ParametersBase.h:55
Trk::ConeLayer
Definition: ConeLayer.h:42
beamspotman.dir
string dir
Definition: beamspotman.py:623
Trk::ConeLayer::ConeLayer
ConeLayer()
Default Constructor.
Definition: ConeLayer.h:45
Trk::ConeLayer::operator=
ConeLayer & operator=(const ConeLayer &)
Assignment operator for ConeLayers.
Definition: ConeLayer.cxx:68
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: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::ConeSurface
Definition: ConeSurface.h:51
Trk::ConeLayer::surfaceRepresentation
virtual const ConeSurface & surfaceRepresentation() const override final
Transforms the layer into a Surface representation for extrapolation.
Definition: ConeLayer.cxx:79
Trk::Surface::transform
const Amg::Transform3D & transform() const
Returns HepGeom::Transform3D by reference.
Trk::Layer
Definition: Layer.h:73