Class Acts::CylinderVolumeBuilder¶
-
class CylinderVolumeBuilder : public Acts::ITrackingVolumeBuilder¶
A volume builder to be used for building a concentrical cylindrical volumes.
a) configured volume
b) wrapping around a cylindrical/disk layer config
All are optionally wrapped around a given volume which has to by a cylinder volume and which has to be center at z == 0
To receive the tracking volume it is possible to also hand over a triple of layers, which is a C++ tuple of three pointers to layer vectors (defined in the ITrackingVolumeBuilder). This functionality is needed for a possible translation of an geometry existing in another format. The first entry represents the layers of the negative endcap, the second the layers of the barrel and the third the layers of the positive endcap. If the one of these pointers is a nullptr no layers will be created for this volume
For the endcap region it is possible to check for a ring layout, in which case an attempt to split into individual ring volumes is done
Public Functions
-
CylinderVolumeBuilder(const Config &cvbConfig, std::unique_ptr<const Logger> logger = getDefaultLogger("CylinderVolumeBuilder", Logging::INFO))¶
Constructor.
- Parameters
cvbConfig – [in] is the configuraiton struct to steer the builder
logger – [in] logging instance
-
~CylinderVolumeBuilder() override¶
Destructor.
-
VolumeConfig analyzeContent(const GeometryContext &gctx, const LayerVector &lVector, const MutableTrackingVolumeVector &mtvVector) const¶
Analyze the config to gather needed dimension.
- Parameters
gctx – [in] the geometry context for this building
lVector – [in] is the vector of layers that are parsed
mtvVector – [in] Vector of mutable tracking volumes to analyze
- Returns
a VolumeConfig representing this layer
-
inline Config getConfiguration() const¶
Get configuration method.
Return the configuration object.
- Returns
a copy of the config object
-
void setConfiguration(const Config &cvbConfig)¶
Set configuration method.
- Parameters
cvbConfig – [in] is the new configuration to be set
-
void setLogger(std::unique_ptr<const Logger> newLogger)¶
set logging instance
- Parameters
newLogger – [in] is the logging istance to be set
-
virtual MutableTrackingVolumePtr trackingVolume(const GeometryContext &gctx, TrackingVolumePtr existingVolume = nullptr, VolumeBoundsPtr externalBounds = nullptr) const override¶
CylinderVolumeBuilder main call method.
- Parameters
gctx – [in] geometry context for which this cylinder volume is built
existingVolume – [in] is an (optional) volume to be included
externalBounds – [in] are (optional) external confinement constraints
- Returns
a mutable pointer to a new TrackingVolume which includes the optionally provided exisitingVolume consistently for further processing
-
struct Config¶
Nested configuration struct for this CylinderVolumeBuilder.
Public Members
-
std::array<std::shared_ptr<const ISurfaceMaterial>, 6> boundaryMaterial{nullptr, nullptr, nullptr, nullptr, nullptr, nullptr}¶
—————–— MB (outer [1]) ————— | MB [2] NEC MB [3] | B | MB [4] PEC MB [5] | —————–— MB (inner [0]) —————
-
bool buildToRadiusZero = false¶
Build the volume to the beam line.
-
bool checkRingLayout = false¶
Check for endcap ring layout.
-
std::shared_ptr<const IConfinedTrackingVolumeBuilder> ctVolumeBuilder = nullptr¶
Builder to construct confined volumes within the volume.
-
std::shared_ptr<const ILayerBuilder> layerBuilder = nullptr¶
Builder to construct layers within the volume.
-
std::pair<double, double> layerEnvelopeR = {1. * UnitConstants::mm, 1. * UnitConstants::mm}¶
Additional envelope in R to create rMin, rMax.
-
double layerEnvelopeZ = 1. * UnitConstants::mm¶
the additional envelope in Z to create zMin, zMax
-
double ringTolerance = 0 * UnitConstants::mm¶
Tolerance for endcap ring association.
-
std::shared_ptr<const ITrackingVolumeHelper> trackingVolumeHelper = nullptr¶
The trackign volume helper for construction.
-
std::shared_ptr<const IVolumeMaterial> volumeMaterial = nullptr¶
The world material.
-
std::string volumeName = ""¶
The string based indenfication.
-
int volumeSignature = -1¶
Volume signature.
-
std::array<std::shared_ptr<const ISurfaceMaterial>, 6> boundaryMaterial{nullptr, nullptr, nullptr, nullptr, nullptr, nullptr}¶