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

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

+ Inheritance diagram for Acts::CylinderVolumeHelper:
+ Collaboration diagram for Acts::CylinderVolumeHelper:

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

Detailed Description

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

Constructor & Destructor Documentation

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

Constructor

Parameters
cvhConfigis the configuration struct for this builder
loggerlogging instance

Definition at line 31 of file CylinderVolumeHelper.cpp.

View newest version in sPHENIX GitHub at line 31 of file CylinderVolumeHelper.cpp

References setConfiguration().

+ Here is the call graph for this function:

Acts::CylinderVolumeHelper::~CylinderVolumeHelper ( )
overridedefault

Destructor.

Member Function Documentation

void Acts::CylinderVolumeHelper::addFaceVolumes ( const MutableTrackingVolumePtr tvol,
BoundarySurfaceFace  glueFace,
TrackingVolumeVector vols 
) const
private

Private method - helper method not to duplicate code

Parameters
tVolumeis the volume to which faces are added
bsfis the boundary surface to which faces are added
volsare 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().

+ Here is the call graph for this function:

std::shared_ptr< Acts::TrackingVolume > Acts::CylinderVolumeHelper::createContainerTrackingVolume ( const GeometryContext gctx,
const TrackingVolumeVector volumes 
) const
overridevirtual

Create a container volumes from sub volumes, input volumes are ordered in R or Z by convention

Parameters
[in]gctxthe geometry context for this building
volumesthe volumes to be contained
Returns
shared pointer to a new TrackingVolume

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().

+ Here is the call graph for this function:

std::shared_ptr< const Acts::Layer > Acts::CylinderVolumeHelper::createCylinderLayer ( double  z,
double  r,
double  halflengthZ,
double  thickness,
int  binsPhi,
int  binsZ 
) const
private

Private method - helper method to save some code

Parameters
zis the z position of the layer (
ris the radius of the layer
halflengthZis the half lengthz in z of the cylinder
thicknessis the thickness of the cylinder
binsPhiare the bins for the material in phi
binsZare the bins for the material in z
Returns
shared pointer to newly created cylinder layer

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.

+ Here is the call graph for this function:

std::shared_ptr< const Acts::Layer > Acts::CylinderVolumeHelper::createDiscLayer ( double  z,
double  rMin,
double  rMax,
double  thickness,
int  binsPhi,
int  binsR 
) const
private

Private method - helper method to save some code

Parameters
zis the z position of the layer (
rMinis the minimum radius of the layer
rMaxis the maximal radius of the layer
thicknessis the thickness of the cylinder
binsPhiare the bins for the material in phi
binsRare the bins for the material in R
Returns
shared pointer to newly created cylinder layer

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.

+ Here is the call graph for this function:

std::shared_ptr< Acts::TrackingVolume > Acts::CylinderVolumeHelper::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
overridevirtual

Create a gap volume from dimensions and

Note
this TrackingVolume is restricted to Translation only
Parameters
[in]gctxthe geometry context for this building
mtvVectorVector of confined TrackingVolumes
volumeMaterialdense material properties for this TrackingVolume
rMinminimum radius
rMaxmaximum radius
zMinminimum z
zMaxmaximum z
materialLayersnumber of material layers (aequidistant binning)
cylindertype of layers
volumeNamevolume name to be given
Returns
shared pointer to a new TrackingVolume

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().

+ Here is the call graph for this function:

std::shared_ptr< Acts::TrackingVolume > Acts::CylinderVolumeHelper::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
overridevirtual

Create a gap volume from dimensions and

Parameters
[in]gctxthe geometry context for this building
mtvVectorVector of confined TrackingVolumes
volumeMaterialdense material properties for this TrackingVolume
rMinminimum radius
rMaxmaximum radius
zMinminimum z
zMaxmaximum z
layerPositionscustom layer positions
cylindertype of layers
volumeName: volume name to be given
bType(optional) BinningType - arbitrary(default) or equidistant
Returns
shared pointer to a new TrackingVolume

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.

+ Here is the call graph for this function:

MutableTrackingVolumePtr Acts::CylinderVolumeHelper::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
overridevirtual

Create a TrackingVolume* from a set of layers and (optional) parameters

Parameters
gctxis the geometry context for witch the volume is built
layersvector of static layers confined by the TrackingVolume if no bounds or HepTransform is given, they define the size together with the volume enevlope parameters
volumeMaterialmaterial properties for this TrackingVolume
volumeBounds,:confinement of this TrackingVolume
mtvVector(optiona) Vector of confined TrackingVolumes
transform(optional) placement of this TrackingVolume
volumeNamevolume name to be given
bType(optional) BinningType - arbitrary(default) or equidistant
Returns
shared pointer to a new TrackingVolume

Implements Acts::ITrackingVolumeHelper.

std::shared_ptr< Acts::TrackingVolume > Acts::CylinderVolumeHelper::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
overridevirtual

Create a TrackingVolume* from a set of layers and (optional) parameters

Parameters
gctxis the geometry context for witch the volume is built
layersvector of static layers confined by the TrackingVolume if no bounds or HepTransform is given, they define the size together with the volume enevlope parameters
volumeMaterialmaterial properties for this TrackingVolume
mtvVectorVector of confined TrackingVolumes
rMinminimum radius
rMaxmaximum radius
zMinminimum z
zMaxmaximum z
volumeNamevolume name to be given
bType(optional) BinningType - arbitrary(default) or equidistant
Returns
shared pointer to a new TrackingVolume

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.

+ Here is the call graph for this function:

bool Acts::CylinderVolumeHelper::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
private

Private method - it estimates the CylinderBounds and Translation of layers, these are checked against the layer positions/dimensions.

Parameters
gctx[in] the geometry context of this build
layersthe layers for which the dimensions are checked
cylinderVolumeBoundsthe cylinder volume bounds needed for wrapping
transforma transformation of the layers, volume
rMinCleanthe smallest radius given by layers
rMaxCleanthe maximal radius given by layers
zMinCleanthe smallest z extend given by layers
zMaxCleanthe maximal z extend given by layers
bValuethe binning value in which the binning works
bTypeis 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.

+ Here is the call graph for this function:

CylinderVolumeHelper::Config Acts::CylinderVolumeHelper::getConfiguration ( ) const
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.

void Acts::CylinderVolumeHelper::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
private

Private method - glue volume to the other

Parameters
gctx[in] the geometry context of this build
tvolOneis the first volume in the glue process
faceOneis the first boundary face of the glue process
tvolTwois the second volume in the glue process
faceTwois the second boundary face of the glue process
rMinthe minimum radius of the volume
rGlueMinthe minimum glue radius (
rMaxthe maximim radius of the volume
zMinthe minimum z extend of the volume
zMaxthe 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.

+ Here is the call graph for this function:

bool Acts::CylinderVolumeHelper::interGlueTrackingVolume ( const GeometryContext gctx,
const MutableTrackingVolumePtr tVolume,
bool  rBinned,
double  rMin,
double  rGlueMin,
double  rMax,
double  zMin,
double  zMax 
) const
private

Private method - interglue all volumes contained by a TrackingVolume and set the outside glue volumes in the descriptor

Parameters
gctx[in] the geometry context of this build
tVolumethe tracking volume that is glued together
rBinneda boolean indicating if it is binned in r
rMinthe minimum radius of the volume
rGlueMinthe minimum glue radius (
rMaxthe maximim radius of the volume
zMinthe minimum z extend of the volume
zMaxthe 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.

+ Here is the call graph for this function:

const Logger& Acts::CylinderVolumeHelper::logger ( ) const
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.

void Acts::CylinderVolumeHelper::setConfiguration ( const Config cvhConfig)

Set configuration method

Parameters
cvhConfigis 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().

+ Here is the caller graph for this function:

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

Set logging instance

Parameters
newLoggeris 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

Member Data Documentation

Config Acts::CylinderVolumeHelper::m_cfg
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().

std::unique_ptr<const Logger> Acts::CylinderVolumeHelper::m_logger
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().


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