File VolumeStructureBuilder.hpp

namespace Acts


This file is foreseen for the Geometry module to replace Extent

namespace Experimental
class VolumeStructureBuilder : public Acts::Experimental::IExternalStructureBuilder
#include <Acts/Detector/VolumeStructureBuilder.hpp>

This class provides the external detector volume structure, configured either from:

  • a volume extent

  • from an array with volume bounds identification


A starting transform (defaulted to identity) can be provided, in case of volume bounds construction from an Acts::Extent object, the transform steming from the extent definition will be applied on top of the provided starting transform. In case of volume bounds construction from an array of values, the starting transform is already the final volume placement.

Public Functions

VolumeStructureBuilder(const Config &cfg, std::unique_ptr<const Logger> mlogger = getDefaultLogger("VolumeStructureBuilder", Logging::INFO))


  • cfg – is the configuration struct

  • mlogger – logging instance for screen output

virtual ExternalStructure construct(const GeometryContext &gctx) const final

The interface definition for internal structure creation.


gctx – the geometry context at the creation of the internal structure


a consistent set of detector volume internals

Private Functions

inline const Logger &logger() const

Private access method to the logger.

Private Members

Config m_cfg

configuration object

std::unique_ptr<const Logger> m_logger

logging instance

struct Config
#include <Acts/Detector/VolumeStructureBuilder.hpp>

Nexted configuration struct.

Public Members

std::string auxilliary = ""

Some auxilliary information.

VolumeBounds::BoundsType boundsType = VolumeBounds::BoundsType::eOther

A defined volume bound type.

std::vector<ActsScalar> boundValues = {}

The values (if already defined)

std::optional<Extent> extent = std::nullopt

The optional extent to feed into the values.

Transform3 transform = Transform3::Identity()

The starting transform.