File AbstractVolume.hpp

namespace Acts


This file is foreseen for the Geometry module to replace Extent


using BoundarySurfacePtr = std::shared_ptr<const BoundarySurfaceT<AbstractVolume>>
typedef std::shared_ptr<const VolumeBounds> VolumeBoundsPtr
class AbstractVolume : public Acts::Volume
#include <Acts/Geometry/AbstractVolume.hpp>

AbstractVolume description inside the tracking realm.

This is the purely geometrical object volume.

The Acts::AbstractVolume is constructed by giving a pointer to a Transform3 and a pointer to Acts::VolumeBounds, this implies that the ownership of the objects pointed to is passed as well. For memory optimisation, the AbstractVolume can also be constructed with shared_ptr objects.

A Acts::AbstractVolume is at first a collection class of Acts::BoundarySurface, the vector of Acts::BoundarySurface is returned by the Acts::VolumeBounds that carry a decompose method.

Boundary surfaces can be shared between AbstractVolumes to enhance automatic navigation between AbstractVolumes, therefor they are reference counted by a std::shared_ptr holder class.

Public Functions

AbstractVolume(const Transform3 &transform, VolumeBoundsPtr volbounds)

Constructor with shared Transform3*, VolumeBounds*.

  • transform – is the gobal 3d transformation into the volume frame

  • volbounds – is the boundary definition

AbstractVolume(const AbstractVolume &vol) = default
AbstractVolume() = delete
~AbstractVolume() override = default
const std::vector<BoundarySurfacePtr> &boundarySurfaces() const

Method to return the BoundarySurfaces.


the vector of boundary surfaces

AbstractVolume &operator=(const AbstractVolume &vol) = delete

Private Functions

void createBoundarySurfaces()

Private method to create BoundarySurfaces.

Private Members

std::vector<BoundarySurfacePtr> m_boundarySurfaces

boundary Surfaces for this volume

template<class volume_t>
class BoundarySurfaceT
#include <Acts/Geometry/AbstractVolume.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.


along/oppose definitions are given with respect to the normal vector of the boundary surface.

Template Parameters

volume_t – the type of volume.