9#ifndef TRKGEOMETRY_IAPPROACHDESCRIPTOR_H
10#define TRKGEOMETRY_IAPPROACHDESCRIPTOR_H
32 for (
auto& sf : (*
this)) {
58 std::unique_ptr<Surface> aSurfaceArraySurface =
nullptr)
105 std::span<ApproachSurfaces const * const> aSurfaceObjects =
107 for (
auto& aSurfaces : aSurfaceObjects) {
116 aSurface->associateLayer(lay);
just implement the delete on the objects
Binned Array for avoiding map searches/.
std::unique_ptr< ApproachSurfaces > m_approachSurfaces
void registerLayerToSurfaces(const Layer &lay, const ApproachSurfaces &aSurfaces)
IApproachDescriptor(std::unique_ptr< BinnedArray< const ApproachSurfaces > > aSurfaceArray, std::unique_ptr< Surface > aSurfaceArraySurface=nullptr)
IApproachDescriptor(const IApproachDescriptor &)=delete
IApproachDescriptor & operator=(const IApproachDescriptor &)=delete
IApproachDescriptor(std::unique_ptr< ApproachSurfaces > aSurfaces, bool rebuild=true)
void registerLayer(const Layer &lay)
virtual ~IApproachDescriptor()=default
std::unique_ptr< BinnedArray< const ApproachSurfaces > > m_approachSurfaceArray
std::unique_ptr< Surface > m_approachSurfaceArraySurface
virtual const ApproachSurfaces * approachSurfaces(const Amg::Vector3D &pos, const Amg::Vector3D &dir) const =0
get the compatible surfaces
Base Class for a Detector Layer in the Tracking realm.
Abstract Base Class for tracking surfaces.
Eigen::Matrix< double, 3, 1 > Vector3D
Ensure that the ATLAS eigen extensions are properly loaded.