Analysis Software
Documentation for sPHENIX simulation software
|
#include <acts/blob/sPHENIX/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 | |
MutableTrackingVolumePtr | createTrackingVolume (const GeometryContext &gctx, const LayerVector &layers, std::shared_ptr< const IVolumeMaterial > volumeMaterial, VolumeBoundsPtr volumeBounds, MutableTrackingVolumeVector mtvVector={}, const Transform3 &transform=Transform3::Identity(), 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, const Transform3 &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 38 of file CylinderVolumeHelper.hpp.
View newest version in sPHENIX GitHub at line 38 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 44 of file CylinderVolumeHelper.cpp.
View newest version in sPHENIX GitHub at line 44 of file CylinderVolumeHelper.cpp
References setConfiguration().
|
overridedefault |
|
private |
Private method - helper method not to duplicate code
tvol | is the volume to which faces are added |
glueFace | 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 934 of file CylinderVolumeHelper.cpp.
View newest version in sPHENIX GitHub at line 934 of file CylinderVolumeHelper.cpp
References Acts::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 287 of file CylinderVolumeHelper.cpp.
View newest version in sPHENIX GitHub at line 287 of file CylinderVolumeHelper.cpp
References Acts::ACTS_VERBOSE(), ACTS_WARNING, Acts::binR, Acts::binZ, Acts::TrackingVolume::create(), Acts::CylinderVolumeBounds::eHalfLengthZ, Acts::CylinderVolumeBounds::eMaxR, Acts::CylinderVolumeBounds::eMinR, Acts::CylinderVolumeBounds::get(), and m_cfg().
|
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 961 of file CylinderVolumeHelper.cpp.
View newest version in sPHENIX GitHub at line 961 of file CylinderVolumeHelper.cpp
References Acts::ACTS_VERBOSE(), Acts::binPhi, Acts::binZ, Acts::closed, Acts::CylinderLayer::create(), Acts::open, and Acts::Test::transform.
|
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 997 of file CylinderVolumeHelper.cpp.
View newest version in sPHENIX GitHub at line 997 of file CylinderVolumeHelper.cpp
References Acts::ACTS_VERBOSE(), Acts::binPhi, Acts::binR, Acts::closed, Acts::DiscLayer::create(), Acts::open, and Acts::Test::transform.
|
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 (equidistant binning) | |
cylinder | type of layers | |
volumeName | volume name to be given |
Implements Acts::ITrackingVolumeHelper.
Definition at line 209 of file CylinderVolumeHelper.cpp.
View newest version in sPHENIX GitHub at line 209 of file CylinderVolumeHelper.cpp
References Acts::ACTS_VERBOSE(), Acts::arbitrary, Acts::UnitConstants::min, and 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 242 of file CylinderVolumeHelper.cpp.
View newest version in sPHENIX GitHub at line 242 of file CylinderVolumeHelper.cpp
References Acts::ACTS_VERBOSE(), and m_cfg().
|
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 | (optional) 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 169 of file CylinderVolumeHelper.cpp.
View newest version in sPHENIX GitHub at line 169 of file CylinderVolumeHelper.cpp
References Acts::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 424 of file CylinderVolumeHelper.cpp.
View newest version in sPHENIX GitHub at line 424 of file CylinderVolumeHelper.cpp
References Acts::ACTS_VERBOSE(), ACTS_WARNING, Acts::binR, Acts::binZ, bounds, Acts::CylinderBounds::eHalfLengthZ, Acts::CylinderVolumeBounds::eHalfLengthZ, Acts::CylinderVolumeBounds::eMaxR, Acts::CylinderVolumeBounds::eMinR, Acts::CylinderBounds::eR, Acts::CylinderBounds::get(), Acts::CylinderVolumeBounds::get(), Acts::UnitConstants::min, Acts::RadialBounds::rMax(), Acts::RadialBounds::rMin(), and thickness.
|
inline |
Get configuration method.
Definition at line 284 of file CylinderVolumeHelper.hpp.
View newest version in sPHENIX GitHub at line 284 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 maximum 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 753 of file CylinderVolumeHelper.cpp.
View newest version in sPHENIX GitHub at line 753 of file CylinderVolumeHelper.cpp
References Acts::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(), testing::internal::move(), Acts::Test::transform, Acts::tubeOuterCover, and physmon_ckf_tracking::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 maximum radius of the volume |
zMin | the minimum z extend of the volume |
zMax | the maximum z extend of the volume |
Definition at line 587 of file CylinderVolumeHelper.cpp.
View newest version in sPHENIX GitHub at line 587 of file CylinderVolumeHelper.cpp
References Acts::ACTS_VERBOSE(), Acts::binR, Acts::binZ, boost::const_pointer_cast(), m_cfg(), Acts::negativeFaceXY, Acts::positiveFaceXY, Acts::GlueVolumesDescriptor::registerGlueVolumes(), Acts::tubeInnerCover, Acts::tubeOuterCover, and volumes.
|
inlineprivate |
Private access method to the logging instance.
Definition at line 187 of file CylinderVolumeHelper.hpp.
View newest version in sPHENIX GitHub at line 187 of file CylinderVolumeHelper.hpp
References m_logger.
void Acts::CylinderVolumeHelper::setConfiguration | ( | const Config & | cvhConfig | ) |
Set configuration method
cvhConfig | is the configuration struct assigned |
Definition at line 52 of file CylinderVolumeHelper.cpp.
View newest version in sPHENIX GitHub at line 52 of file CylinderVolumeHelper.cpp
References m_cfg().
Referenced by CylinderVolumeHelper().
void Acts::CylinderVolumeHelper::setLogger | ( | std::unique_ptr< const Logger > | newLogger | ) |
Set logging instance
newLogger | is the logger instance to be set |
Definition at line 59 of file CylinderVolumeHelper.cpp.
View newest version in sPHENIX GitHub at line 59 of file CylinderVolumeHelper.cpp
References m_logger, and testing::internal::move().
|
protected |
Configuration object.
Definition at line 183 of file CylinderVolumeHelper.hpp.
View newest version in sPHENIX GitHub at line 183 of file CylinderVolumeHelper.hpp
Referenced by getConfiguration().
|
private |
the looging instance
Definition at line 190 of file CylinderVolumeHelper.hpp.
View newest version in sPHENIX GitHub at line 190 of file CylinderVolumeHelper.hpp
Referenced by logger().