ATLAS Offline Software
Public Member Functions | Protected Attributes | Private Member Functions | List of all members
Trk::IApproachDescriptor Class Referenceabstract

#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 More...
 

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)),
52  m_approachSurfaceArray(nullptr),
53  m_rebuild(rebuild) {}

◆ 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  BinnedArraySpan<ApproachSurfaces const * const> aSurfaceObjects =
106  m_approachSurfaceArray->arrayObjects();
107  for (auto& aSurfaces : aSurfaceObjects) {
108  registerLayerToSurfaces(lay, *aSurfaces);
109  }
110  }
111 }

◆ 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:
Trk::IApproachDescriptor::m_approachSurfaceArraySurface
std::unique_ptr< Surface > m_approachSurfaceArraySurface
Definition: IApproachDescriptor.h:91
Trk::IApproachDescriptor::m_approachSurfaces
std::unique_ptr< ApproachSurfaces > m_approachSurfaces
Definition: IApproachDescriptor.h:90
Trk::IApproachDescriptor::registerLayerToSurfaces
void registerLayerToSurfaces(const Layer &lay, const ApproachSurfaces &aSurfaces)
Definition: IApproachDescriptor.h:113
Trk::IApproachDescriptor::m_approachSurfaceArray
std::unique_ptr< BinnedArray< const ApproachSurfaces > > m_approachSurfaceArray
Definition: IApproachDescriptor.h:92
Trk::IApproachDescriptor::m_rebuild
bool m_rebuild
Definition: IApproachDescriptor.h:93
Trk::TGOwn
@ TGOwn
Definition: Tracking/TrkDetDescr/TrkSurfaces/TrkSurfaces/Surface.h:55
Trk::Surface
Definition: Tracking/TrkDetDescr/TrkSurfaces/TrkSurfaces/Surface.h:75
Trk::IApproachDescriptor::rebuild
bool rebuild() const
Definition: IApproachDescriptor.h:96