File BoundarySurfaceT.hpp

namespace Acts

Note

This file is foreseen for the Geometry module to replace Extent

template<class volume_t>
class BoundarySurfaceT
#include <Acts/Geometry/BoundarySurfaceT.hpp>

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.

Template Parameters

volume_t – the type of volume.

Public Functions

inline BoundarySurfaceT()
inline BoundarySurfaceT(std::shared_ptr<const Surface> 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
  • surface – The unqiue surface the boundary represents

  • inside – The inside volume the bounday surface points to

  • outside – The outside volume the boundary surface points to

inline BoundarySurfaceT(std::shared_ptr<const Surface> surface, VolumePtr inside, VolumePtr outside)

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

  • usually used in a volume constructor

Parameters
  • surface – The unqiue surface the boundary represents

  • inside – The inside volume the bounday surface points to

  • outside – The outside volume the boundary surface points to

inline BoundarySurfaceT(std::shared_ptr<const Surface> 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
  • surface – The unqiue surface the boundary represents

  • insideArray – The inside volume array the bounday surface points to

  • outsideArray – The outside volume array the boundary surface points to

virtual ~BoundarySurfaceT() = default
virtual const volume_t *attachedVolume(const GeometryContext &gctx, const Vector3 &pos, const Vector3 &mom, NavigationDirection pdir) const

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

Parameters
  • gctx – The current geometry context object, e.g. alignment

  • pos – The global position on surface

  • mom – The direction on the surface

  • pdir – is an aditional direction corrective

Returns

The attached volume at that position

void attachVolume(const volume_t *volume, NavigationDirection navDir)

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

Parameters
  • volume – The volume to be attached

  • navDir – The navigation direction for attaching

void attachVolumeArray(std::shared_ptr<const VolumeArray> volumes, NavigationDirection navDir)

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

Parameters
  • volumes – The volume array to be attached

  • navDir – The navigation direction for attaching

template<class parameters_t>
inline bool onBoundary(const GeometryContext &gctx, const parameters_t &pars) const

templated onBoundary method

Template Parameters

parameters_t – are the parameters to be checked

Parameters
  • gctx – The current geometry context object, e.g. alignment

  • pars – The parameters used for this call

inline virtual const Surface &surfaceRepresentation() 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<const Surface> m_surface

the represented surface by this

Private Types

using VolumeArray = BinnedArray<VolumePtr>
using VolumePtr = std::shared_ptr<const volume_t>