ATLAS Offline Software
CompoundLayer.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 // CompoundLayer.h, (c) ATLAS Detector software
8 
9 #ifndef TRKGEOMETRY_COMPOUNDLAYER_H
10 #define TRKGEOMETRY_COMPOUNDLAYER_H
11 
12 class MsgStream;
13 
15 // Trk
19 #include "TrkGeometry/Layer.h"
23 
24 // STL
25 #include <vector>
26 
27 namespace Trk {
28 
61  public:
65  virtual ~CompoundLayer();
66 
67  virtual const Layer& layerRepresentation() const = 0;
68 
69  std::vector<const Surface*> constituentSurfaces() const;
70 
71  virtual std::vector<const Surface*> closestSurfaces(
72  const Amg::Vector3D& gp, const Amg::Vector3D& dir,
73  bool alsoBackward = false) const;
74 
77  bool isOnCompoundLayer(const Amg::Vector3D& gp, double thickness) const;
78 
79  protected:
82  void resize(const VolumeBounds&, double) const {};
83 
84  std::vector<const Surface*> m_surfaces;
85 };
86 
87 inline std::vector<const Surface*> CompoundLayer::constituentSurfaces() const {
88  return m_surfaces;
89 }
90 inline std::vector<const Surface*> CompoundLayer::closestSurfaces(
91  const Amg::Vector3D&, const Amg::Vector3D&, bool) const {
92  return m_surfaces;
93 }
94 
95 } // namespace Trk
96 
97 #endif // TRKGEOMETRY_COMPOUNDLAYER_H
Trk::CompoundLayer
A class to represent complex geometries requiring a description using multiple surfaces.
Definition: CompoundLayer.h:60
TrackParameters.h
Trk::CompoundLayer::m_surfaces
std::vector< const Surface * > m_surfaces
The constituent surfaces.
Definition: CompoundLayer.h:82
BinnedArray.h
OverlapDescriptor.h
Trk::CompoundLayer::isOnCompoundLayer
bool isOnCompoundLayer(const Amg::Vector3D &gp, double thickness) const
Searches through the surfaces with Layer specific tolerance to see if the gp is on one of the subsurf...
Definition: CompoundLayer.cxx:12
PropDirection.h
Layer.h
Trk::CompoundLayer::closestSurfaces
virtual std::vector< const Surface * > closestSurfaces(const Amg::Vector3D &gp, const Amg::Vector3D &dir, bool alsoBackward=false) const
Definition: CompoundLayer.h:90
GeoPrimitives.h
Trk::VolumeBounds
Definition: VolumeBounds.h:45
Trk::CompoundLayer::~CompoundLayer
virtual ~CompoundLayer()
Destructor, deletes the consituent surfaces.
Definition: CompoundLayer.cxx:22
LayerIndex.h
beamspotman.dir
string dir
Definition: beamspotman.py:623
Trk
Ensure that the ATLAS eigen extensions are properly loaded.
Definition: FakeTrackBuilder.h:9
Amg::Vector3D
Eigen::Matrix< double, 3, 1 > Vector3D
Definition: GeoPrimitives.h:47
Trk::CompoundLayer::constituentSurfaces
std::vector< const Surface * > constituentSurfaces() const
Definition: CompoundLayer.h:87
Trk::CompoundLayer::layerRepresentation
virtual const Layer & layerRepresentation() const =0
Trk::CompoundLayer::resize
void resize(const VolumeBounds &, double) const
Resize the layer to the tracking volume - not (yet) supported for Compound Layer.
Definition: CompoundLayer.h:82
Trk::CompoundLayer::CompoundLayer
CompoundLayer()
Default construactor.
Definition: CompoundLayer.h:63
LayerMaterialProperties.h
Trk::Layer
Definition: Layer.h:73