File Volume.hpp

namespace Acts

Note

This file is foreseen for the Geometry module to replace Extent

Functions

std::ostream &operator<<(std::ostream &sl, const Volume &vol)

Overload of << operator for std::ostream for debug output.

class Volume : public virtual Acts::GeometryObject
#include <Acts/Geometry/Volume.hpp>

It inhertis of GeometryObject for TDD identification.

Base class for all volumes inside the tracking realm, it defines the interface for inherited Volume classes regarding the geometrical information.

Subclassed by Acts::AbstractVolume, Acts::TrackingVolume

Public Types

using BoundingBox = AxisAlignedBoundingBox<Volume, ActsScalar, 3>

Public Functions

Volume(const Transform3 &transform, VolumeBoundsPtr volbounds)

Explicit constructor with shared arguments.

Note

This will automatically build an oriented bounding box with an envelope value of (0.05, 0.05, 0.05)mm

Parameters
  • transform – is the transform to position the volume in 3D space

  • volbounds – is the volume boundary definitions

Volume(const Volume &vol, const Transform3 &shift = Transform3::Identity())

Copy Constructor - with optional shift.

Note

This will automatically build an oriented bounding box with an envelope value of (0.05, 0.05, 0.05)mm

Parameters
  • vol – is the source volume for the copy

  • shift – is the optional shift applied as : shift * vol.transform()

Volume() = delete
virtual ~Volume() = default
virtual Vector3 binningPosition(const GeometryContext &gctx, BinningValue bValue) const override

The binning position method.

  • as default the center is given, but may be overloaded

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

  • bValue – is the binning value schema

Returns

vector 3D that can be used for the binning

BoundingBox boundingBox(const Vector3 &envelope = {0, 0, 0}) const

Construct bounding box for this shape.

Parameters

envelope – Optional envelope to add / subtract from min/max

Returns

Constructed bounding box pointing to this volume

inline const Vector3 &center() const

returns the center of the volume

bool inside(const Vector3 &gpos, double tol = 0.) const

Inside() method for checks.

Parameters
  • gpos – is the position to be checked

  • tol – is the tolerance parameter

Returns

boolean indicator if the position is inside

inline const Transform3 &itransform() const

Returns the inverted transform of this volume.

Volume &operator=(const Volume &vol)

Assignment operator.

Parameters

vol – is the source volume to be copied

const BoundingBox &orientedBoundingBox() const

Construct oriented bounding box for this shape.

Returns

Constructed oriented bounding box pointing to this volume

inline const Transform3 &transform() const

Return methods for geometry transform.

inline const VolumeBounds &volumeBounds() const

returns the volumeBounds()

Protected Attributes

Vector3 m_center
Transform3 m_itransform
BoundingBox m_orientedBoundingBox
Transform3 m_transform
VolumeBoundsPtr m_volumeBounds