ECCE @ EIC Software
Reference for
ECCE @ EIC
simulation and reconstruction software on GitHub
|
#include <acts/blob/master/Core/include/Acts/Geometry/CylinderVolumeHelper.hpp>
Classes | |
struct | Config |
Public Member Functions | |
CylinderVolumeHelper (const Config &cvhConfig, std::unique_ptr< const Logger > logger=getDefaultLogger("CylinderVolumeHelper", Logging::INFO)) | |
~CylinderVolumeHelper () override=default | |
Destructor. | |
MutableTrackingVolumePtr | createTrackingVolume (const GeometryContext &gctx, const LayerVector &layers, std::shared_ptr< const IVolumeMaterial > volumeMaterial, VolumeBoundsPtr volumeBounds, MutableTrackingVolumeVector mtvVector={}, std::shared_ptr< const Transform3D > transform=nullptr, const std::string &volumeName="UndefinedVolume", BinningType bType=arbitrary) const override |
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 |
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 |
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 |
MutableTrackingVolumePtr | createContainerTrackingVolume (const GeometryContext &gctx, const TrackingVolumeVector &volumes) const override |
void | setConfiguration (const Config &cvhConfig) |
Config | getConfiguration () const |
Get configuration method. | |
void | setLogger (std::unique_ptr< const Logger > newLogger) |
Public Member Functions inherited from Acts::ITrackingVolumeHelper | |
virtual | ~ITrackingVolumeHelper ()=default |
Virtual destructor. | |
Protected Attributes | |
Config | m_cfg |
Configuration object. | |
Private Member Functions | |
const Logger & | logger () const |
Private access method to the logging instance. | |
bool | estimateAndCheckDimension (const GeometryContext &gctx, const LayerVector &layers, const CylinderVolumeBounds *&cylinderVolumeBounds, std::shared_ptr< const Transform3D > &transform, double &rMinClean, double &rMaxClean, double &zMinClean, double &zMaxClean, BinningValue &bValue, BinningType bType=arbitrary) const |
bool | interGlueTrackingVolume (const GeometryContext &gctx, const MutableTrackingVolumePtr &tVolume, bool rBinned, double rMin, double rGlueMin, double rMax, double zMin, double zMax) const |
void | glueTrackingVolumes (const GeometryContext &gctx, const MutableTrackingVolumePtr &tvolOne, BoundarySurfaceFace faceOne, const MutableTrackingVolumePtr &tvolTwo, BoundarySurfaceFace faceTwo, double rMin, double rGlueMin, double rMax, double zMin, double zMax) const |
void | addFaceVolumes (const MutableTrackingVolumePtr &tvol, BoundarySurfaceFace glueFace, TrackingVolumeVector &vols) const |
LayerPtr | createCylinderLayer (double z, double r, double halflengthZ, double thickness, int binsPhi, int binsZ) const |
LayerPtr | createDiscLayer (double z, double rMin, double rMax, double thickness, int binsPhi, int binsR) const |
Private Attributes | |
std::unique_ptr< const Logger > | m_logger |
the looging instance | |
The concrete implementation for cylindrical TrackingVolume objects of the ITrackingVolumeCreator interface
Definition at line 47 of file CylinderVolumeHelper.hpp.
View newest version in sPHENIX GitHub at line 47 of file CylinderVolumeHelper.hpp
Acts::CylinderVolumeHelper::CylinderVolumeHelper | ( | const Config & | cvhConfig, |
std::unique_ptr< const Logger > | logger = getDefaultLogger( "CylinderVolumeHelper", Logging::INFO) |
||
) |
Constructor
cvhConfig | is the configuration struct for this builder |
logger | logging instance |
Definition at line 31 of file CylinderVolumeHelper.cpp.
View newest version in sPHENIX GitHub at line 31 of file CylinderVolumeHelper.cpp
References setConfiguration().
|
overridedefault |
Destructor.
|
private |
Private method - helper method not to duplicate code
tVolume | is the volume to which faces are added |
bsf | is the boundary surface to which faces are added |
vols | are the voluems which are added |
Private method - helper method not to duplicate code
Definition at line 907 of file CylinderVolumeHelper.cpp.
View newest version in sPHENIX GitHub at line 907 of file CylinderVolumeHelper.cpp
References ACTS_VERBOSE, and Acts::GlueVolumesDescriptor::glueVolumes().
|
overridevirtual |
Create a container volumes from sub volumes, input volumes are ordered in R or Z by convention
[in] | gctx | the geometry context for this building |
volumes | the volumes to be contained |
Implements Acts::ITrackingVolumeHelper.
Definition at line 273 of file CylinderVolumeHelper.cpp.
View newest version in sPHENIX GitHub at line 273 of file CylinderVolumeHelper.cpp
References kdfinder::abs(), ACTS_VERBOSE, ACTS_WARNING, Acts::binR, Acts::binZ, Acts::TrackingVolume::create(), Acts::CylinderVolumeBounds::eHalfLengthZ, Acts::CylinderVolumeBounds::eMaxR, Acts::CylinderVolumeBounds::eMinR, and Acts::CylinderVolumeBounds::get().
|
private |
Private method - helper method to save some code
z | is the z position of the layer ( |
r | is the radius of the layer |
halflengthZ | is the half lengthz in z of the cylinder |
thickness | is the thickness of the cylinder |
binsPhi | are the bins for the material in phi |
binsZ | are the bins for the material in z |
Definition at line 934 of file CylinderVolumeHelper.cpp.
View newest version in sPHENIX GitHub at line 934 of file CylinderVolumeHelper.cpp
References kdfinder::abs(), ACTS_VERBOSE, Acts::binPhi, Acts::binZ, Acts::closed, Acts::CylinderLayer::create(), M_PI, and Acts::open.
|
private |
Private method - helper method to save some code
z | is the z position of the layer ( |
rMin | is the minimum radius of the layer |
rMax | is the maximal radius of the layer |
thickness | is the thickness of the cylinder |
binsPhi | are the bins for the material in phi |
binsR | are the bins for the material in R |
Definition at line 973 of file CylinderVolumeHelper.cpp.
View newest version in sPHENIX GitHub at line 973 of file CylinderVolumeHelper.cpp
References kdfinder::abs(), ACTS_VERBOSE, Acts::binPhi, Acts::binR, Acts::closed, Acts::DiscLayer::create(), M_PI, and Acts::open.
|
overridevirtual |
Create a gap volume from dimensions and
[in] | gctx | 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 |
Implements Acts::ITrackingVolumeHelper.
Definition at line 195 of file CylinderVolumeHelper.cpp.
View newest version in sPHENIX GitHub at line 195 of file CylinderVolumeHelper.cpp
References ACTS_VERBOSE, Acts::arbitrary, max, min, and Acts::Test::step().
|
overridevirtual |
Create a gap volume from dimensions and
[in] | gctx | 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 |
Implements Acts::ITrackingVolumeHelper.
Definition at line 228 of file CylinderVolumeHelper.cpp.
View newest version in sPHENIX GitHub at line 228 of file CylinderVolumeHelper.cpp
References kdfinder::abs(), and ACTS_VERBOSE.
|
overridevirtual |
Create a TrackingVolume* from a set of layers and (optional) 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 |
Implements Acts::ITrackingVolumeHelper.
|
overridevirtual |
Create a TrackingVolume* from a set of layers and (optional) 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 |
Implements Acts::ITrackingVolumeHelper.
Definition at line 152 of file CylinderVolumeHelper.cpp.
View newest version in sPHENIX GitHub at line 152 of file CylinderVolumeHelper.cpp
References kdfinder::abs(), ACTS_VERBOSE, and ACTS_WARNING.
|
private |
Private method - it estimates the CylinderBounds and Translation of layers, these are checked against the layer positions/dimensions.
gctx | [in] the geometry context of this build |
layers | the layers for which the dimensions are checked |
cylinderVolumeBounds | the cylinder volume bounds needed for wrapping |
transform | a transformation of the layers, volume |
rMinClean | the smallest radius given by layers |
rMaxClean | the maximal radius given by layers |
zMinClean | the smallest z extend given by layers |
zMaxClean | the maximal z extend given by layers |
bValue | the binning value in which the binning works |
bType | is the type of binning: equidistant, arbitrary |
private helper method to estimate and check the dimensions of a tracking volume
Definition at line 413 of file CylinderVolumeHelper.cpp.
View newest version in sPHENIX GitHub at line 413 of file CylinderVolumeHelper.cpp
References kdfinder::abs(), ACTS_DEBUG, ACTS_VERBOSE, ACTS_WARNING, Acts::binR, Acts::binZ, Acts::CylinderBounds::eHalfLengthZ, Acts::CylinderVolumeBounds::eHalfLengthZ, Acts::CylinderVolumeBounds::eMaxR, Acts::CylinderVolumeBounds::eMinR, Acts::CylinderBounds::eR, Acts::CylinderBounds::get(), Acts::CylinderVolumeBounds::get(), Acts::RadialBounds::rMax(), Acts::RadialBounds::rMin(), takeBigger, takeSmaller, thickness, and Acts::Test::transform.
|
inline |
Get configuration method.
Definition at line 294 of file CylinderVolumeHelper.hpp.
View newest version in sPHENIX GitHub at line 294 of file CylinderVolumeHelper.hpp
References m_cfg.
|
private |
Private method - glue volume to the other
gctx | [in] the geometry context of this build |
tvolOne | is the first volume in the glue process |
faceOne | is the first boundary face of the glue process |
tvolTwo | is the second volume in the glue process |
faceTwo | is the second boundary face of the glue process |
rMin | the minimum radius of the volume |
rGlueMin | the minimum glue radius ( |
rMax | the maximim radius of the volume |
zMin | the minimum z extend of the volume |
zMax | the maximum z extend of the volume |
private helper method to fill the glue volumes (or the volume itself in)
Definition at line 724 of file CylinderVolumeHelper.cpp.
View newest version in sPHENIX GitHub at line 724 of file CylinderVolumeHelper.cpp
References kdfinder::abs(), ACTS_VERBOSE, Acts::Surface::assignSurfaceMaterial(), Acts::TrackingVolume::boundarySurfaces(), boost::const_pointer_cast(), Acts::Test::cSurface, Acts::cylinderCover, Acts::CylinderVolumeBounds::eHalfLengthZ, Acts::CylinderVolumeBounds::get(), Acts::GlueVolumesDescriptor::glueVolumes(), Acts::Test::transform, Acts::tubeOuterCover, and Acts::UnitConstants::u.
|
private |
Private method - interglue all volumes contained by a TrackingVolume and set the outside glue volumes in the descriptor
gctx | [in] the geometry context of this build |
tVolume | the tracking volume that is glued together |
rBinned | a boolean indicating if it is binned in r |
rMin | the minimum radius of the volume |
rGlueMin | the minimum glue radius ( |
rMax | the maximim radius of the volume |
zMin | the minimum z extend of the volume |
zMax | the maximum z extend of the volume |
Definition at line 571 of file CylinderVolumeHelper.cpp.
View newest version in sPHENIX GitHub at line 571 of file CylinderVolumeHelper.cpp
References ACTS_VERBOSE, Acts::binR, Acts::binZ, boost::const_pointer_cast(), Acts::negativeFaceXY, Acts::positiveFaceXY, Acts::GlueVolumesDescriptor::registerGlueVolumes(), Acts::tubeInnerCover, and Acts::tubeOuterCover.
|
inlineprivate |
Private access method to the logging instance.
Definition at line 197 of file CylinderVolumeHelper.hpp.
View newest version in sPHENIX GitHub at line 197 of file CylinderVolumeHelper.hpp
References m_logger.
Set configuration method
cvhConfig | is the configurtion struct assigned |
Definition at line 39 of file CylinderVolumeHelper.cpp.
View newest version in sPHENIX GitHub at line 39 of file CylinderVolumeHelper.cpp
Referenced by CylinderVolumeHelper().
Set logging instance
newLogger | is the logger isntance to be set |
Definition at line 46 of file CylinderVolumeHelper.cpp.
View newest version in sPHENIX GitHub at line 46 of file CylinderVolumeHelper.cpp
|
protected |
Configuration object.
Definition at line 193 of file CylinderVolumeHelper.hpp.
View newest version in sPHENIX GitHub at line 193 of file CylinderVolumeHelper.hpp
Referenced by getConfiguration().
|
private |
the looging instance
Definition at line 200 of file CylinderVolumeHelper.hpp.
View newest version in sPHENIX GitHub at line 200 of file CylinderVolumeHelper.hpp
Referenced by logger().