ACTS
Experiment-independent tracking
Loading...
Searching...
No Matches
Acts::BoundarySurfaceT< volume_t > Class Template Reference

#include <Acts/Geometry/BoundarySurfaceT.hpp>

Inheritance diagram for Acts::BoundarySurfaceT< volume_t >:
[legend]
Collaboration diagram for Acts::BoundarySurfaceT< volume_t >:
[legend]

Public Member Functions

 BoundarySurfaceT ()=default
 Default constructor.
 BoundarySurfaceT (std::shared_ptr< RegularSurface > surface, const volume_t *inside, const volume_t *outside)
 Constructor for a Boundary with exact two Volumes attached to it.
 BoundarySurfaceT (std::shared_ptr< RegularSurface > surface, std::shared_ptr< const VolumeArray > insideArray, std::shared_ptr< const VolumeArray > outsideArray)
 Constructor for a Boundary with exact multiple Volumes attached to it.
 BoundarySurfaceT (std::shared_ptr< RegularSurface > surface, VolumePtr inside, VolumePtr outside)
 Constructor for a Boundary with exact two Volumes attached to it.
virtual ~BoundarySurfaceT ()=default
virtual const volume_t * attachedVolume (const GeometryContext &gctx, const Vector3 &pos, const Vector3 &dir) const
 Get the next Volume depending on GlobalPosition, GlobalMomentum, dir on the TrackParameters and the requested direction.
void attachVolume (const volume_t *volume, Direction dir)
 Helper method: attach a Volume to this BoundarySurfaceT this is done during the geometry construction.
void attachVolumeArray (std::shared_ptr< const VolumeArray > volumes, Direction dir)
 Helper method: attach a Volume to this BoundarySurfaceT this is done during the geometry construction.
template<class parameters_t>
bool onBoundary (const GeometryContext &gctx, const parameters_t &pars) const
 templated onBoundary method
RegularSurfacesurfaceRepresentation ()
 The Surface Representation of this.
virtual const RegularSurfacesurfaceRepresentation () const
 The Surface Representation of this.

Protected Attributes

const volume_t * m_alongVolume {}
 the outside (w.r.t. normal vector) volume to point to if only one exists
std::shared_ptr< const VolumeArray > m_alongVolumeArray {}
 the outside (w.r.t. normal vector) volume array to point to
const volume_t * m_oppositeVolume {}
 the inside (w.r.t. normal vector) volume to point to if only one exists
std::shared_ptr< const VolumeArray > m_oppositeVolumeArray {}
 the inside (w.r.t. normal vector) volume array to point to
std::shared_ptr< RegularSurfacem_surface {}
 the represented surface by this

Detailed Description

template<class volume_t>
class Acts::BoundarySurfaceT< volume_t >
Template Parameters
volume_tthe type of volume.

The boundary surface class combines a Surface with the information of a volume. It's templated in the type of volume in order to allow for a return type tat is usable in the navigation stream.

Note
along/oppose definitions are given with respect to the normal vector of the boundary surface.
Todo
change to one schema with BinnedArray0D

Constructor & Destructor Documentation

◆ BoundarySurfaceT() [1/4]

template<class volume_t>
Acts::BoundarySurfaceT< volume_t >::BoundarySurfaceT ( )
default

Default constructor.

◆ BoundarySurfaceT() [2/4]

template<class volume_t>
Acts::BoundarySurfaceT< volume_t >::BoundarySurfaceT ( std::shared_ptr< RegularSurface > surface,
const volume_t * inside,
const volume_t * outside )

Constructor for a Boundary with exact two Volumes attached to it.

  • usually used in a volume constructor
Parameters
surfaceThe unique surface the boundary represents
insideThe inside volume the boundary surface points to
outsideThe outside volume the boundary surface points to

◆ BoundarySurfaceT() [3/4]

template<class volume_t>
Acts::BoundarySurfaceT< volume_t >::BoundarySurfaceT ( std::shared_ptr< RegularSurface > surface,
VolumePtr inside,
VolumePtr outside )

Constructor for a Boundary with exact two Volumes attached to it.

  • usually used in a volume constructor
Parameters
surfaceThe unique surface the boundary represents
insideThe inside volume the boundary surface points to
outsideThe outside volume the boundary surface points to

◆ BoundarySurfaceT() [4/4]

template<class volume_t>
Acts::BoundarySurfaceT< volume_t >::BoundarySurfaceT ( std::shared_ptr< RegularSurface > surface,
std::shared_ptr< const VolumeArray > insideArray,
std::shared_ptr< const VolumeArray > outsideArray )

Constructor for a Boundary with exact multiple Volumes attached to it.

  • usually used in a volume constructor
Parameters
surfaceThe unique surface the boundary represents
insideArrayThe inside volume array the boundary surface points to
outsideArrayThe outside volume array the boundary surface points to

◆ ~BoundarySurfaceT()

template<class volume_t>
virtual Acts::BoundarySurfaceT< volume_t >::~BoundarySurfaceT ( )
virtualdefault

Member Function Documentation

◆ attachedVolume()

template<class volume_t>
virtual const volume_t * Acts::BoundarySurfaceT< volume_t >::attachedVolume ( const GeometryContext & gctx,
const Vector3 & pos,
const Vector3 & dir ) const
virtual

Get the next Volume depending on GlobalPosition, GlobalMomentum, dir on the TrackParameters and the requested direction.

Parameters
gctxThe current geometry context object, e.g. alignment
posThe global position on surface
dirThe direction on the surface
Returns
The attached volume at that position

◆ attachVolume()

template<class volume_t>
void Acts::BoundarySurfaceT< volume_t >::attachVolume ( const volume_t * volume,
Direction dir )

Helper method: attach a Volume to this BoundarySurfaceT this is done during the geometry construction.

Parameters
volumeThe volume to be attached
dirThe direction for attaching

◆ attachVolumeArray()

template<class volume_t>
void Acts::BoundarySurfaceT< volume_t >::attachVolumeArray ( std::shared_ptr< const VolumeArray > volumes,
Direction dir )

Helper method: attach a Volume to this BoundarySurfaceT this is done during the geometry construction.

Parameters
volumesThe volume array to be attached
dirThe direction for attaching

◆ onBoundary()

template<class volume_t>
template<class parameters_t>
bool Acts::BoundarySurfaceT< volume_t >::onBoundary ( const GeometryContext & gctx,
const parameters_t & pars ) const

templated onBoundary method

Template Parameters
parameters_tare the parameters to be checked
Parameters
gctxThe current geometry context object, e.g. alignment
parsThe parameters used for this call
Returns
True if the parameters are on the boundary surface

◆ surfaceRepresentation() [1/2]

template<class volume_t>
RegularSurface & Acts::BoundarySurfaceT< volume_t >::surfaceRepresentation ( )

The Surface Representation of this.

Returns
Reference to the surface representation of this boundary

◆ surfaceRepresentation() [2/2]

template<class volume_t>
virtual const RegularSurface & Acts::BoundarySurfaceT< volume_t >::surfaceRepresentation ( ) const
virtual

The Surface Representation of this.

Returns
Reference to the surface representation of this boundary

Member Data Documentation

◆ m_alongVolume

template<class volume_t>
const volume_t* Acts::BoundarySurfaceT< volume_t >::m_alongVolume {}
protected

the outside (w.r.t. normal vector) volume to point to if only one exists

◆ m_alongVolumeArray

template<class volume_t>
std::shared_ptr<const VolumeArray> Acts::BoundarySurfaceT< volume_t >::m_alongVolumeArray {}
protected

the outside (w.r.t. normal vector) volume array to point to

◆ m_oppositeVolume

template<class volume_t>
const volume_t* Acts::BoundarySurfaceT< volume_t >::m_oppositeVolume {}
protected

the inside (w.r.t. normal vector) volume to point to if only one exists

◆ m_oppositeVolumeArray

template<class volume_t>
std::shared_ptr<const VolumeArray> Acts::BoundarySurfaceT< volume_t >::m_oppositeVolumeArray {}
protected

the inside (w.r.t. normal vector) volume array to point to

◆ m_surface

template<class volume_t>
std::shared_ptr<RegularSurface> Acts::BoundarySurfaceT< volume_t >::m_surface {}
protected

the represented surface by this