File ITrackingVolumeHelper.hpp

namespace Acts

Note

This file is foreseen for the Geometry module to replace Extent

class ITrackingVolumeHelper
#include <Acts/Geometry/ITrackingVolumeHelper.hpp>

Interface class ITrackingVolumeHelper tools, it inherits from IAlgTool.

The ITrackingVolumeHelper is a tool to pack a set of layers into a volume, or - to wrap several volumes into a container volume.

TrackingVolumes only exist as std::shared_ptr

Subclassed by Acts::CylinderVolumeHelper

Public Functions

virtual ~ITrackingVolumeHelper() = default

Virtual destructor.

virtual MutableTrackingVolumePtr createContainerTrackingVolume(const GeometryContext &gctx, const TrackingVolumeVector &volumes) const = 0

Create a one level higher TrackingVolue.

Parameters
  • gctx – is the geometry context for witch the volume is built

  • volumes – the volumes to be contained

Returns

shared pointer to a new TrackingVolume

virtual MutableTrackingVolumePtr createGapTrackingVolume(const GeometryContext &gctx, MutableTrackingVolumeVector &mtvVector, std::shared_ptr<const IVolumeMaterial> volumeMaterial, double loc0Min, double loc0Max, double loc1Min, double loc1Max, unsigned int materialLayers, bool cylinder = true, const std::string &volumeName = "UndefinedVolume") const = 0

Create a gap volume from dimensions and.

Parameters
  • gctx – is the geometry context for witch the volume is built

  • mtvVector – Vector of confined TrackingVolumes

  • volumeMaterial – material properties for this TrackingVolume

  • loc0Min, loc0Max, loc1Min, loc1Max – : local position in space, this TrackingVolume is restricted to Translation only

  • materialLayers – number of material layers (aequidistant binning)

  • cylinder – type of layers

  • volumeName – volume name to be given

Returns

shared pointer to a new TrackingVolume

virtual MutableTrackingVolumePtr createGapTrackingVolume(const GeometryContext &gctx, MutableTrackingVolumeVector &mtvVector, std::shared_ptr<const IVolumeMaterial> volumeMaterial, double loc0Min, double loc0Max, double loc1Min, double loc1Max, const std::vector<double> &layerPositions, bool cylinder = true, const std::string &volumeName = "UndefinedVolume", BinningType btype = arbitrary) const = 0

Create a gap volume from dimensions and.

Parameters
  • gctx – is the geometry context for witch the volume is built

  • mtvVector – Vector of confined TrackingVolumes

  • volumeMaterial – material properties for this TrackingVolume

  • loc0Min, loc0Max, loc1Min, loc1Max – local position in space,

  • layerPositions – custom layer positions

  • cylinder – type of layers

  • volumeName – : volume name to be given

  • btype – (optional) BinningType - arbitrary(default) or equidistant

Returns

shared pointer to a new TrackingVolume

virtual MutableTrackingVolumePtr createTrackingVolume(const GeometryContext &gctx, const LayerVector &layers, std::shared_ptr<const IVolumeMaterial> volumeMaterial, VolumeBoundsPtr volumeBounds, MutableTrackingVolumeVector mtvVector = {}, const Transform3 &transform = Transform3::Identity(), const std::string &volumeName = "UndefinedVolume", BinningType btype = arbitrary) const = 0

Create a TrackingVolume* from a set of layers and (optional) parameters.

Parameters
  • gctx – is the geometry context for witch the volume is built

  • layers – vector of static layers confined by the TrackingVolume if no bounds or HepTransform is given, they define the size together with the volume enevlope parameters

  • volumeMaterial – material properties for this TrackingVolume

  • volumeBounds – confinement of this TrackingVolume

  • mtvVector – (optional) Vector of confined TrackingVolumes

  • transform – (optional) placement of this TrackingVolume

  • volumeName – volume name to be given

  • btype – (optional) BinningType - arbitrary(default) or equidistant

Returns

shared pointer to a new TrackingVolume

virtual MutableTrackingVolumePtr createTrackingVolume(const GeometryContext &gctx, const LayerVector &layers, MutableTrackingVolumeVector mtvVector, std::shared_ptr<const IVolumeMaterial> volumeMaterial, double loc0Min, double loc0Max, double loc1Min, double loc1Max, const std::string &volumeName = "UndefinedVolume", BinningType btype = arbitrary) const = 0

Create a TrackingVolume* from a set of layers and (optional) parameters.

Parameters
  • gctx – is the geometry context for witch the volume is built

  • layers – vector of static layers confined by the TrackingVolume if no bounds or HepTransform is given, they define the size together with the volume enevlope parameters

  • volumeMaterial – material properties for this TrackingVolume

  • mtvVector – Vector of confined TrackingVolumes

  • loc0Min, loc0Max, loc1Min, loc1Max – : local position in space, this TrackingVolume is restricted to Translation only

  • volumeName – volume name to be given

  • btype – (optional) BinningType - arbitrary(default) or equidistant

Returns

shared pointer to a new TrackingVolume