ECCE @ EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Acts::CylinderVolumeBuilder Class Reference

#include <acts/blob/master/Core/include/Acts/Geometry/CylinderVolumeBuilder.hpp>

+ Inheritance diagram for Acts::CylinderVolumeBuilder:
+ Collaboration diagram for Acts::CylinderVolumeBuilder:

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 Loggerlogger () 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 Loggerm_logger
 the logging instance
 

Detailed Description

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

Definition at line 472 of file CylinderVolumeBuilder.hpp.

View newest version in sPHENIX GitHub at line 472 of file CylinderVolumeBuilder.hpp

Constructor & Destructor Documentation

Acts::CylinderVolumeBuilder::CylinderVolumeBuilder ( const Config cvbConfig,
std::unique_ptr< const Logger logger = getDefaultLogger(                            "CylinderVolumeBuilder", Logging::INFO) 
)

Constructor

Parameters
[in]cvbConfigis the configuraiton struct to steer the builder
[in]loggerlogging instance

Definition at line 26 of file CylinderVolumeBuilder.cpp.

View newest version in sPHENIX GitHub at line 26 of file CylinderVolumeBuilder.cpp

References setConfiguration().

+ Here is the call graph for this function:

Acts::CylinderVolumeBuilder::~CylinderVolumeBuilder ( )
overridedefault

Destructor.

Member Function Documentation

Acts::VolumeConfig Acts::CylinderVolumeBuilder::analyzeContent ( const GeometryContext gctx,
const LayerVector lVector,
const MutableTrackingVolumeVector mtvVector 
) const

Analyze the config to gather needed dimension

Parameters
[in]gctxthe geometry context for this building
[in]lVectoris the vector of layers that are parsed
Returns
a VolumeConfig representing this layer

Definition at line 484 of file CylinderVolumeBuilder.cpp.

View newest version in sPHENIX GitHub at line 484 of file CylinderVolumeBuilder.cpp

References 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(), G4TTL::layer, Acts::VolumeConfig::layers, Acts::VolumeConfig::present, Acts::VolumeConfig::rMax, Acts::RadialBounds::rMax(), Acts::VolumeConfig::rMin, Acts::RadialBounds::rMin(), Acts::CylinderLayer::surfaceRepresentation(), takeBigger, takeSmaller, thickness, Acts::Test::volume, Acts::VolumeConfig::volumes, Acts::VolumeConfig::zMax, and Acts::VolumeConfig::zMin.

+ Here is the call graph for this function:

bool Acts::CylinderVolumeBuilder::checkLayerContainment ( const GeometryContext gctx,
VolumeConfig layerConfig,
const VolumeConfig insideConfig,
const VolumeConfig volumeConfig,
int  sign 
) const
private

Helper method check the layer containment, both for inside / outside.

Parameters
[in]gctxthe geometry context for this building
[in]layerConfigis the VolumeConfig to be tested the wrapping flag may be set
[in]insideConfigis the inside volume in order to check the wrapping
[in]volumeConfigis the volume to be tested
[in]signdistinguishes inside/outside testing
Returns
boolean that indicates the test result
CylinderVolumeBuilder::Config Acts::CylinderVolumeBuilder::getConfiguration ( ) const
inline

Return the configuration object.

Get configuration method

Returns
a copy of the config object

Definition at line 591 of file CylinderVolumeBuilder.hpp.

View newest version in sPHENIX GitHub at line 591 of file CylinderVolumeBuilder.hpp

References m_cfg.

const Logger& Acts::CylinderVolumeBuilder::logger ( ) const
inlineprivate

Private access to the logger

Returns
a const reference to the logger

Definition at line 567 of file CylinderVolumeBuilder.hpp.

View newest version in sPHENIX GitHub at line 567 of file CylinderVolumeBuilder.hpp

References m_logger.

void Acts::CylinderVolumeBuilder::setConfiguration ( const Config cvbConfig)

Set configuration method

Parameters
[in]cvbConfigis the new configuration to be set

Definition at line 35 of file CylinderVolumeBuilder.cpp.

View newest version in sPHENIX GitHub at line 35 of file CylinderVolumeBuilder.cpp

Referenced by CylinderVolumeBuilder().

+ Here is the caller graph for this function:

void Acts::CylinderVolumeBuilder::setLogger ( std::unique_ptr< const Logger newLogger)

set logging instance

Parameters
[in]newLoggeris the logging istance to be set

Definition at line 42 of file CylinderVolumeBuilder.cpp.

View newest version in sPHENIX GitHub at line 42 of file CylinderVolumeBuilder.cpp

std::shared_ptr< Acts::TrackingVolume > Acts::CylinderVolumeBuilder::trackingVolume ( const GeometryContext gctx,
TrackingVolumePtr  existingVolume = nullptr,
VolumeBoundsPtr  externalBounds = nullptr 
) const
overridevirtual

CylinderVolumeBuilder main call method

Parameters
[in]gctxgeometry context for which this cylinder volume is built
[in]existingVolumeis an (optional) volume to be included
[in]externalBoundsare (optional) external confinement constraints
Returns
a mutable pointer to a new TrackingVolume which includes the optionally provided exisitingVolume consistently for further processing

Implements Acts::ITrackingVolumeBuilder.

Definition at line 48 of file CylinderVolumeBuilder.cpp.

View newest version in sPHENIX GitHub at line 48 of file CylinderVolumeBuilder.cpp

References kdfinder::abs(), ACTS_DEBUG, ACTS_ERROR, ACTS_VERBOSE, Acts::Attaching, Acts::binR, Acts::CentralInserting, Acts::CentralWrapping, Acts::WrappingConfig::configureContainerVolume(), Acts::WrappingConfig::cVolumeConfig, Acts::CylinderVolumeBounds::eHalfLengthZ, Acts::CylinderVolumeBounds::eMaxR, Acts::CylinderVolumeBounds::eMinR, Acts::WrappingConfig::existingVolumeConfig, Acts::WrappingConfig::externalVolumeConfig, Acts::WrappingConfig::fGapVolumeConfig, Acts::CylinderVolumeBounds::get(), Acts::Inserting, int(), Acts::VolumeConfig::layers, Acts::negativeFaceXY, Acts::NoWrapping, Acts::WrappingConfig::nVolumeConfig, Acts::positiveFaceXY, Acts::VolumeConfig::present, Acts::WrappingConfig::pVolumeConfig, Acts::VolumeConfig::rMax, Acts::VolumeConfig::rMin, Acts::RadialBounds::rMin(), Acts::WrappingConfig::sGapVolumeConfig, test(), nlohmann::to_string(), Acts::VolumeConfig::toString(), Acts::WrappingConfig::toString(), Acts::tubeInnerCover, Acts::tubeOuterCover, Acts::Test::volume, Acts::VolumeConfig::volumes, Acts::WrappingConfig::wCondition, Acts::WrappingConfig::wConditionScreen, Acts::WrappingConfig::wrapInsertAttach(), Acts::Wrapping, Acts::VolumeConfig::zMax, and Acts::VolumeConfig::zMin.

+ Here is the call graph for this function:

Member Data Documentation

Config Acts::CylinderVolumeBuilder::m_cfg
private

Configuration struct.

Definition at line 562 of file CylinderVolumeBuilder.hpp.

View newest version in sPHENIX GitHub at line 562 of file CylinderVolumeBuilder.hpp

Referenced by getConfiguration().

std::unique_ptr<const Logger> Acts::CylinderVolumeBuilder::m_logger
private

the logging instance

Definition at line 570 of file CylinderVolumeBuilder.hpp.

View newest version in sPHENIX GitHub at line 570 of file CylinderVolumeBuilder.hpp

Referenced by logger().


The documentation for this class was generated from the following files: