ATLAS Offline Software
Loading...
Searching...
No Matches
Trk::IApproachDescriptor Class Referenceabstract

CVirtual class to decide and return which approaching surface to be taken. More...

#include <IApproachDescriptor.h>

Inheritance diagram for Trk::IApproachDescriptor:
Collaboration diagram for Trk::IApproachDescriptor:

Public Member Functions

 IApproachDescriptor (std::unique_ptr< ApproachSurfaces > aSurfaces, bool rebuild=true)
 IApproachDescriptor (std::unique_ptr< BinnedArray< const ApproachSurfaces > > aSurfaceArray, std::unique_ptr< Surface > aSurfaceArraySurface=nullptr)
virtual ~IApproachDescriptor ()=default
void registerLayer (const Layer &lay)
bool rebuild () const
virtual const ApproachSurfacesapproachSurfaces (const Amg::Vector3D &pos, const Amg::Vector3D &dir) const =0
 get the compatible surfaces

Protected Attributes

std::unique_ptr< ApproachSurfacesm_approachSurfaces
std::unique_ptr< Surfacem_approachSurfaceArraySurface
std::unique_ptr< BinnedArray< const ApproachSurfaces > > m_approachSurfaceArray
bool m_rebuild

Private Member Functions

void registerLayerToSurfaces (const Layer &lay, const ApproachSurfaces &aSurfaces)
 IApproachDescriptor (const IApproachDescriptor &)=delete
IApproachDescriptoroperator= (const IApproachDescriptor &)=delete

Detailed Description

CVirtual class to decide and return which approaching surface to be taken.

Author
Andre.nosp@m.as.S.nosp@m.alzbu.nosp@m.rger.nosp@m.@cern.nosp@m..ch, made virtual by Remi..nosp@m.Lafa.nosp@m.ye@ce.nosp@m.rn.c.nosp@m.h

Definition at line 45 of file IApproachDescriptor.h.

Constructor & Destructor Documentation

◆ IApproachDescriptor() [1/3]

Trk::IApproachDescriptor::IApproachDescriptor ( std::unique_ptr< ApproachSurfaces > aSurfaces,
bool rebuild = true )
inline

Definition at line 48 of file IApproachDescriptor.h.

50 : m_approachSurfaces(std::move(aSurfaces)),
std::unique_ptr< ApproachSurfaces > m_approachSurfaces
std::unique_ptr< BinnedArray< const ApproachSurfaces > > m_approachSurfaceArray
std::unique_ptr< Surface > m_approachSurfaceArraySurface

◆ IApproachDescriptor() [2/3]

Trk::IApproachDescriptor::IApproachDescriptor ( std::unique_ptr< BinnedArray< const ApproachSurfaces > > aSurfaceArray,
std::unique_ptr< Surface > aSurfaceArraySurface = nullptr )
inline

Definition at line 56 of file IApproachDescriptor.h.

59 : m_approachSurfaces(nullptr),
60 m_approachSurfaceArraySurface(std::move(aSurfaceArraySurface)),
61 m_approachSurfaceArray(std::move(aSurfaceArray)),
62 m_rebuild(false) {}

◆ ~IApproachDescriptor()

virtual Trk::IApproachDescriptor::~IApproachDescriptor ( )
virtualdefault

◆ IApproachDescriptor() [3/3]

Trk::IApproachDescriptor::IApproachDescriptor ( const IApproachDescriptor & )
privatedelete

Member Function Documentation

◆ approachSurfaces()

virtual const ApproachSurfaces * Trk::IApproachDescriptor::approachSurfaces ( const Amg::Vector3D & pos,
const Amg::Vector3D & dir ) const
pure virtual

get the compatible surfaces

  • return : a boolean indicating if an actual intersection had been tried
  • fill vector of intersections
  • primary bin surface : sf
  • position & direction : pos, dir

Implemented in Trk::ApproachDescriptor.

◆ operator=()

IApproachDescriptor & Trk::IApproachDescriptor::operator= ( const IApproachDescriptor & )
privatedelete

◆ rebuild()

bool Trk::IApproachDescriptor::rebuild ( ) const
inline

Definition at line 96 of file IApproachDescriptor.h.

96{ return m_rebuild; }

◆ registerLayer()

void Trk::IApproachDescriptor::registerLayer ( const Layer & lay)
inline

Definition at line 98 of file IApproachDescriptor.h.

98 {
101 m_approachSurfaceArraySurface->associateLayer(lay);
103 }
105 std::span<ApproachSurfaces const * const> aSurfaceObjects =
106 m_approachSurfaceArray->arrayObjects();
107 for (auto& aSurfaces : aSurfaceObjects) {
108 registerLayerToSurfaces(lay, *aSurfaces);
109 }
110 }
111}
void registerLayerToSurfaces(const Layer &lay, const ApproachSurfaces &aSurfaces)

◆ registerLayerToSurfaces()

void Trk::IApproachDescriptor::registerLayerToSurfaces ( const Layer & lay,
const ApproachSurfaces & aSurfaces )
inlineprivate

Definition at line 113 of file IApproachDescriptor.h.

114 {
115 for (Trk::Surface* aSurface : aSurfaces) {
116 aSurface->associateLayer(lay);
117 aSurface->setOwner(Trk::TGOwn);
118 }
119}

Member Data Documentation

◆ m_approachSurfaceArray

std::unique_ptr<BinnedArray<const ApproachSurfaces> > Trk::IApproachDescriptor::m_approachSurfaceArray
protected

Definition at line 92 of file IApproachDescriptor.h.

◆ m_approachSurfaceArraySurface

std::unique_ptr<Surface> Trk::IApproachDescriptor::m_approachSurfaceArraySurface
protected

Definition at line 91 of file IApproachDescriptor.h.

◆ m_approachSurfaces

std::unique_ptr<ApproachSurfaces> Trk::IApproachDescriptor::m_approachSurfaces
protected

Definition at line 90 of file IApproachDescriptor.h.

◆ m_rebuild

bool Trk::IApproachDescriptor::m_rebuild
protected

Definition at line 93 of file IApproachDescriptor.h.


The documentation for this class was generated from the following file: