EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Acts::GenericApproachDescriptor Class Reference

#include <acts/blob/sPHENIX/Core/include/Acts/Geometry/GenericApproachDescriptor.hpp>

+ Inheritance diagram for Acts::GenericApproachDescriptor:
+ Collaboration diagram for Acts::GenericApproachDescriptor:

Public Member Functions

 GenericApproachDescriptor (std::vector< std::shared_ptr< const Surface >> aSurfaces)
 
 ~GenericApproachDescriptor () override=default
 A generic approach descriptor with n surfaces to test.
 
void registerLayer (const Layer &lay) override
 Register the Layer to the surfaces.
 
ObjectIntersection< SurfaceapproachSurface (const GeometryContext &gctx, const Vector3D &position, const Vector3D &direction, const BoundaryCheck &bcheck) const override
 
const std::vector< const
Surface * > & 
containedSurfaces () const override
 return all contained surfaces of this approach descriptor
 
std::vector< const Surface * > & containedSurfaces () override
 Non-const version.
 
- Public Member Functions inherited from Acts::ApproachDescriptor
 ApproachDescriptor ()=default
 
virtual ~ApproachDescriptor ()=default
 

Private Attributes

std::vector< std::shared_ptr
< const Surface > > 
m_surfaces
 approach surfaces with ownership control
 
std::vector< const Surface * > m_surfaceCache
 

Detailed Description

Class to decide and return which approaching surface to be taken, it's a generic descriptor for n surfaces

It is templated in order to allow for BoundarySurfaces from representing volumes of layers to be re-used

Definition at line 29 of file GenericApproachDescriptor.hpp.

View newest version in sPHENIX GitHub at line 29 of file GenericApproachDescriptor.hpp

Constructor & Destructor Documentation

Acts::GenericApproachDescriptor::GenericApproachDescriptor ( std::vector< std::shared_ptr< const Surface >>  aSurfaces)
inline

A generic approach descriptor for new Acts::Surface objects passing ownership

Parameters
aSurfacesare the approach surfaces

Definition at line 35 of file GenericApproachDescriptor.hpp.

View newest version in sPHENIX GitHub at line 35 of file GenericApproachDescriptor.hpp

References m_surfaceCache, m_surfaces, and Acts::unpack_shared_vector().

+ Here is the call graph for this function:

Acts::GenericApproachDescriptor::~GenericApproachDescriptor ( )
overridedefault

A generic approach descriptor with n surfaces to test.

Member Function Documentation

Acts::ObjectIntersection< Acts::Surface > Acts::GenericApproachDescriptor::approachSurface ( const GeometryContext gctx,
const Vector3D position,
const Vector3D direction,
const BoundaryCheck bcheck 
) const
overridevirtual

Get the aproach surface to the layer

Parameters
gctxThe current geometry context object, e.g. alignment
positionThe global position to start the approach from
directionThe momentum vector
bcheckThe boundary check prescription
Returns
: a SurfaceIntersection

Implements Acts::ApproachDescriptor.

Definition at line 23 of file GenericApproachDescriptor.cpp.

View newest version in sPHENIX GitHub at line 23 of file GenericApproachDescriptor.cpp

References boost::swap().

Referenced by Acts::Test::Layers::BOOST_AUTO_TEST_CASE().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

const std::vector< const Acts::Surface * > & Acts::GenericApproachDescriptor::containedSurfaces ( ) const
overridevirtual

return all contained surfaces of this approach descriptor

Implements Acts::ApproachDescriptor.

Definition at line 43 of file GenericApproachDescriptor.cpp.

View newest version in sPHENIX GitHub at line 43 of file GenericApproachDescriptor.cpp

Referenced by Acts::Test::Layers::BOOST_AUTO_TEST_CASE().

+ Here is the caller graph for this function:

std::vector< const Acts::Surface * > & Acts::GenericApproachDescriptor::containedSurfaces ( )
overridevirtual

Non-const version.

Implements Acts::ApproachDescriptor.

Definition at line 48 of file GenericApproachDescriptor.cpp.

View newest version in sPHENIX GitHub at line 48 of file GenericApproachDescriptor.cpp

void Acts::GenericApproachDescriptor::registerLayer ( const Layer lay)
overridevirtual

Register the Layer to the surfaces.

Parameters
layis the layer to be registerd

Implements Acts::ApproachDescriptor.

Definition at line 14 of file GenericApproachDescriptor.cpp.

View newest version in sPHENIX GitHub at line 14 of file GenericApproachDescriptor.cpp

References Acts::Surface::associateLayer(), and m_surfaceCache.

Referenced by Acts::Test::Layers::BOOST_AUTO_TEST_CASE().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

Member Data Documentation

std::vector<const Surface*> Acts::GenericApproachDescriptor::m_surfaceCache
private

the surface container cache

We will need to mutate those surfaces in registerLayer, but the C++ type system has no const-correct way of expressing this constraint.

Definition at line 78 of file GenericApproachDescriptor.hpp.

View newest version in sPHENIX GitHub at line 78 of file GenericApproachDescriptor.hpp

Referenced by GenericApproachDescriptor(), and registerLayer().

std::vector<std::shared_ptr<const Surface> > Acts::GenericApproachDescriptor::m_surfaces
private

approach surfaces with ownership control

Definition at line 71 of file GenericApproachDescriptor.hpp.

View newest version in sPHENIX GitHub at line 71 of file GenericApproachDescriptor.hpp

Referenced by GenericApproachDescriptor().


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