Analysis Software
Documentation for sPHENIX simulation software
|
#include <acts/blob/sPHENIX/Core/include/Acts/Geometry/CylinderVolumeBuilder.hpp>
Classes | |
struct | Config |
Public Member Functions | |
CylinderVolumeBuilder (const Config &cvbConfig, std::unique_ptr< const Logger > logger=getDefaultLogger("CylinderVolumeBuilder", Logging::INFO)) | |
~CylinderVolumeBuilder () override | |
Destructor. | |
MutableTrackingVolumePtr | trackingVolume (const GeometryContext &gctx, TrackingVolumePtr existingVolume=nullptr, VolumeBoundsPtr externalBounds=nullptr) const override |
void | setConfiguration (const Config &cvbConfig) |
Config | getConfiguration () const |
Return the configuration object. | |
void | setLogger (std::unique_ptr< const Logger > newLogger) |
VolumeConfig | analyzeContent (const GeometryContext &gctx, const LayerVector &lVector, const MutableTrackingVolumeVector &mtvVector) const |
Public Member Functions inherited from Acts::ITrackingVolumeBuilder | |
virtual | ~ITrackingVolumeBuilder ()=default |
Virtual destructor. | |
Private Member Functions | |
const Logger & | logger () const |
bool | checkLayerContainment (const GeometryContext &gctx, VolumeConfig &layerConfig, const VolumeConfig &insideConfig, const VolumeConfig &volumeConfig, int sign) const |
Private Attributes | |
Config | m_cfg |
Configuration struct. | |
std::unique_ptr< const Logger > | m_logger |
the logging instance | |
A volume builder to be used for building a concentrical cylindrical volumes
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
Definition at line 472 of file CylinderVolumeBuilder.hpp.
View newest version in sPHENIX GitHub at line 472 of file CylinderVolumeBuilder.hpp
Acts::CylinderVolumeBuilder::CylinderVolumeBuilder | ( | const Config & | cvbConfig, |
std::unique_ptr< const Logger > | logger = getDefaultLogger( "CylinderVolumeBuilder", Logging::INFO) |
||
) |
Constructor
[in] | cvbConfig | is the configuration struct to steer the builder |
[in] | logger | logging instance |
Definition at line 37 of file CylinderVolumeBuilder.cpp.
View newest version in sPHENIX GitHub at line 37 of file CylinderVolumeBuilder.cpp
References setConfiguration().
|
overridedefault |
Destructor.
Acts::VolumeConfig Acts::CylinderVolumeBuilder::analyzeContent | ( | const GeometryContext & | gctx, |
const LayerVector & | lVector, | ||
const MutableTrackingVolumeVector & | mtvVector | ||
) | const |
Analyze the config to gather needed dimension
[in] | gctx | the geometry context for this building |
[in] | lVector | is the vector of layers that are parsed |
[in] | mtvVector | Vector of mutable tracking volumes to analyze |
Definition at line 558 of file CylinderVolumeBuilder.cpp.
View newest version in sPHENIX GitHub at line 558 of file CylinderVolumeBuilder.cpp
References Acts::ACTS_VERBOSE(), Acts::CylinderSurface::bounds(), Acts::CylinderBounds::eHalfLengthZ, Acts::CylinderVolumeBounds::eHalfLengthZ, Acts::CylinderVolumeBounds::eMaxR, Acts::CylinderVolumeBounds::eMinR, Acts::CylinderBounds::eR, Acts::CylinderBounds::get(), Acts::CylinderVolumeBounds::get(), layer, Acts::VolumeConfig::layers, m_cfg(), Acts::UnitConstants::min, Acts::VolumeConfig::present, Acts::VolumeConfig::rMax, Acts::RadialBounds::rMax(), Acts::VolumeConfig::rMin, Acts::RadialBounds::rMin(), Acts::CylinderLayer::surfaceRepresentation(), thickness, Acts::VolumeConfig::volumes, Acts::VolumeConfig::zMax, and Acts::VolumeConfig::zMin.
|
private |
Helper method check the layer containment, both for inside / outside.
[in] | gctx | the geometry context for this building |
[in] | layerConfig | is the VolumeConfig to be tested the wrapping flag may be set |
[in] | insideConfig | is the inside volume in order to check the wrapping |
[in] | volumeConfig | is the volume to be tested |
[in] | sign | distinguishes inside/outside testing |
|
inline |
Return the configuration object.
Get configuration method
Definition at line 592 of file CylinderVolumeBuilder.hpp.
View newest version in sPHENIX GitHub at line 592 of file CylinderVolumeBuilder.hpp
References m_cfg.
|
inlineprivate |
Private access to the logger
Definition at line 568 of file CylinderVolumeBuilder.hpp.
View newest version in sPHENIX GitHub at line 568 of file CylinderVolumeBuilder.hpp
References m_logger.
void Acts::CylinderVolumeBuilder::setConfiguration | ( | const Config & | cvbConfig | ) |
Set configuration method
[in] | cvbConfig | is the new configuration to be set |
Definition at line 46 of file CylinderVolumeBuilder.cpp.
View newest version in sPHENIX GitHub at line 46 of file CylinderVolumeBuilder.cpp
References m_cfg().
Referenced by CylinderVolumeBuilder().
void Acts::CylinderVolumeBuilder::setLogger | ( | std::unique_ptr< const Logger > | newLogger | ) |
set logging instance
[in] | newLogger | is the logging instance to be set |
Definition at line 53 of file CylinderVolumeBuilder.cpp.
View newest version in sPHENIX GitHub at line 53 of file CylinderVolumeBuilder.cpp
References m_logger, and testing::internal::move().
|
overridevirtual |
CylinderVolumeBuilder main call method
[in] | gctx | geometry context for which this cylinder volume is built |
[in] | existingVolume | is an (optional) volume to be included |
[in] | externalBounds | are (optional) external confinement constraints |
Implements Acts::ITrackingVolumeBuilder.
Definition at line 59 of file CylinderVolumeBuilder.cpp.
View newest version in sPHENIX GitHub at line 59 of file CylinderVolumeBuilder.cpp
References ACTS_DEBUG, ACTS_ERROR, ACTS_INFO, Acts::ACTS_VERBOSE(), Acts::Attaching, Acts::binR, Acts::CentralInserting, Acts::CentralWrapping, Acts::WrappingConfig::configureContainerVolume(), Acts::WrappingConfig::cVolumeConfig, distance(), Acts::CylinderVolumeBounds::eHalfLengthZ, Acts::CylinderVolumeBounds::eMaxR, Acts::CylinderVolumeBounds::eMinR, Acts::WrappingConfig::existingVolumeConfig, Acts::WrappingConfig::externalVolumeConfig, Acts::eZ, f, Acts::WrappingConfig::fGapVolumeConfig, Acts::CylinderVolumeBounds::get(), Acts::Inserting, join(), layer, Acts::VolumeConfig::layers, m_cfg(), Acts::negativeFaceXY, Acts::NoWrapping, Acts::WrappingConfig::nVolumeConfig, Acts::VectorHelpers::perp(), Acts::positiveFaceXY, Acts::VolumeConfig::present, Acts::WrappingConfig::pVolumeConfig, Acts::VolumeConfig::rMax, Acts::VolumeConfig::rMin, Acts::WrappingConfig::sGapVolumeConfig, Acts::Experimental::detail::BlueprintHelper::sort(), train_ambiguity_solver::test, to_string(), Acts::Test::tolerance, Acts::VolumeConfig::toString(), Acts::WrappingConfig::toString(), Acts::Test::transform, Acts::tubeInnerCover, Acts::tubeOuterCover, Acts::VolumeConfig::volumes, Acts::WrappingConfig::wCondition, Acts::WrappingConfig::wConditionScreen, Acts::WrappingConfig::wrapInsertAttach(), Acts::Wrapping, Acts::VolumeConfig::zMax, and Acts::VolumeConfig::zMin.
|
private |
Configuration struct.
Definition at line 563 of file CylinderVolumeBuilder.hpp.
View newest version in sPHENIX GitHub at line 563 of file CylinderVolumeBuilder.hpp
Referenced by getConfiguration().
|
private |
the logging instance
Definition at line 571 of file CylinderVolumeBuilder.hpp.
View newest version in sPHENIX GitHub at line 571 of file CylinderVolumeBuilder.hpp
Referenced by logger().