Class Acts::CylinderVolumeHelper

class CylinderVolumeHelper : public Acts::ITrackingVolumeHelper

The concrete implementation for cylindrical TrackingVolume objects of the ITrackingVolumeCreator interface.

Public Functions

CylinderVolumeHelper(const Config &cvhConfig, std::unique_ptr<const Logger> logger = getDefaultLogger("CylinderVolumeHelper", Logging::INFO))

Constructor.

Parameters
  • cvhConfig – is the configuration struct for this builder

  • logger – logging instance

~CylinderVolumeHelper() override = default
virtual MutableTrackingVolumePtr createContainerTrackingVolume(const GeometryContext &gctx, const TrackingVolumeVector &volumes) const override

Create a container volumes from sub volumes, input volumes are ordered in R or Z by convention.

Parameters
  • gctx[in] the geometry context for this building

  • 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 rMin, double rMax, double zMin, double zMax, unsigned int materialLayers, bool cylinder = true, const std::string &volumeName = "UndefinedVolume") const override

Create a gap volume from dimensions and.

Note

this TrackingVolume is restricted to Translation only

Parameters
  • gctx[in] the geometry context for this building

  • mtvVector – Vector of confined TrackingVolumes

  • volumeMaterial – dense material properties for this TrackingVolume

  • rMin – minimum radius

  • rMax – maximum radius

  • zMin – minimum z

  • zMax – maximum z

  • 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 rMin, double rMax, double zMin, double zMax, const std::vector<double> &layerPositions, bool cylinder = true, const std::string &volumeName = "UndefinedVolume", BinningType bType = arbitrary) const override

Create a gap volume from dimensions and.

Parameters
  • gctx[in] the geometry context for this building

  • mtvVector – Vector of confined TrackingVolumes

  • volumeMaterial – dense material properties for this TrackingVolume

  • rMin – minimum radius

  • rMax – maximum radius

  • zMin – minimum z

  • zMax – maximum z

  • 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 override

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 – (optiona) 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 rMin, double rMax, double zMin, double zMax, const std::string &volumeName = "UndefinedVolume", BinningType bType = arbitrary) const override

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

  • rMin – minimum radius

  • rMax – maximum radius

  • zMin – minimum z

  • zMax – maximum z

  • volumeName – volume name to be given

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

Returns

shared pointer to a new TrackingVolume

inline Config getConfiguration() const

Get configuration method.

void setConfiguration(const Config &cvhConfig)

Set configuration method.

Parameters

cvhConfig – is the configurtion struct assigned

void setLogger(std::unique_ptr<const Logger> newLogger)

Set logging instance.

Parameters

newLogger – is the logger isntance to be set

struct Config

Nested configuration struct for this CylinderVolumeHelper.

Public Members

std::shared_ptr<const ILayerArrayCreator> layerArrayCreator = nullptr

a tool for coherent LayerArray creation

int passiveLayerPhiBins = 1

bins in phi for the passive layer

int passiveLayerRzBins = 100

bins in r/z for the passive layer

double passiveLayerThickness = 1

thickness of passive layers

std::shared_ptr<const ITrackingVolumeArrayCreator> trackingVolumeArrayCreator = nullptr

Helper Tool to create TrackingVolume.