9#ifndef TRKDETDESCRTOOLS_CYLINDERVOLUMECREATOR_H
10#define TRKDETDESCRTOOLS_CYLINDERVOLUMECREATOR_H
20#include "GaudiKernel/ToolHandle.h"
68 const std::vector<Layer*>& layers,
72 const std::string& volumeName =
"UndefinedVolume",
80 const std::vector<Layer*>& layers,
86 const std::string& volumeName =
"UndefinedVolume",
99 unsigned int materialLayers,
100 bool cylinder =
true,
101 const std::string& volumeName =
"UndefinedVolume")
const override final;
114 bool cylinder = true,
115 const std::
string& volumeName =
"UndefinedVolume",
125 const std::
string& volumeName =
"UndefinedVolume",
126 bool buildBoundaryLayers = false,
127 bool replaceBoundaryFace = false)
const override final;
152 bool buildBoundaryLayers,
153 bool replaceBoundaryFace = false)
const;
165 bool buildBoundaryLayers,
166 bool replaceBoundaryFace = false)
const;
Eigen::Affine3d Transform3D
Define macros for attributes used to control the static checker.
Class to describe a cylindrical detector layer for tracking, it inhertis from both,...
Bounds for a cylindrical Volume, the decomposeToSurfaces method creates a vector of up to 6 surfaces:
ToolHandle< ITrackingVolumeHelper > m_trackingVolumeHelper
CylinderLayer * createCylinderLayer(double z, double r, double halflength, double thickness, int binsPhi, int binsZ) const
Private method - helper method to save some code.
double m_passiveLayerThickness
thickness of passive layers
void glueTrackingVolumes(TrackingVolume &volumeOne, BoundarySurfaceFace faceOne, TrackingVolume &volumeTwo, BoundarySurfaceFace faceTwo, bool buildBoundaryLayers, bool replaceBoundaryFace=false) const
Private method - glue volume to the other – use trackingVolume helper.
void addFaceVolumes(TrackingVolume &tvol, Trk::BoundarySurfaceFace bsf, std::vector< Trk::TrackingVolume * > &vols) const
Private method - helper method not to duplicate code.
ToolHandle< ILayerArrayCreator > m_layerArrayCreator
< A Tool for coherent LayerArray creation
virtual TrackingVolume * createGapTrackingVolume(Material &matprop, double rMin, double rMax, double zMin, double zMax, unsigned int materialLayers, bool cylinder=true, const std::string &volumeName="UndefinedVolume") const override final
DiscLayer * createDiscLayer(double z, double rMin, double rMax, double thickness, int binsPhi, int binsR) const
Private method - helper method to save some code.
virtual TrackingVolume * createContainerTrackingVolume(const std::vector< TrackingVolume * > &volumes, const Material &matprop, const std::string &volumeName="UndefinedVolume", bool buildBoundaryLayers=false, bool replaceBoundaryFace=false) const override final
;
ToolHandle< ITrackingVolumeArrayCreator > m_trackingVolumeArrayCreator
TrackingVolume helper.
StatusCode interGlueTrackingVolume(TrackingVolume &tVolume, bool rBinned, bool buildBoundaryLayers, bool replaceBoundaryFace=false) const
Private method - interglue all volumes contained by a TrackingVolume and set the outside glue volumes...
CylinderVolumeCreator(const std::string &, const std::string &, const IInterface *)
Constructor.
int m_passiveLayerPhiBins
bins in phi for the passive layer
int m_passiveLayerRzBins
bins in r/z for the passive layer
virtual StatusCode initialize() override
AlgTool initialize method.
~CylinderVolumeCreator()
Destructor.
virtual TrackingVolume * createTrackingVolume(const std::vector< Layer * > &layers, Material &matprop, VolumeBounds *volBounds=0, Amg::Transform3D *transform=0, const std::string &volumeName="UndefinedVolume", BinningType btype=arbitrary) const override final
;
StatusCode estimateAndCheckDimension(const std::vector< Layer * > &layers, Trk::CylinderVolumeBounds *&cylBounds, Amg::Transform3D *&translation, std::vector< CylinderLayer * > &cylLayers, std::vector< DiscLayer * > &discLayers, double &rMinClean, double &rMaxClean, double &zMinClean, double &zMaxClean, BinningType bType=arbitrary) const
Private method - it estimates the CylinderBounds and Translation of layers, if given,...
Class to describe a disc-like detector layer for tracking, it inhertis from both, Layer base class an...
Interface class ILayerArrayCreators It inherits from IAlgTool.
Interface class ITrackingVolumeArrayCreators It inherits from IAlgTool.
Interface class ITrackingVolumeCreators It inherits from IAlgTool.
Interface class ITrackingVolumeHelpers It inherits from IAlgTool.
Base Class for a Detector Layer in the Tracking realm.
A common object to be contained by.
Full Volume description used in Tracking, it inherits from Volume to get the geometrical structure,...
Pure Absract Base Class for Volume bounds.
Definition of ATLAS Math & Geometry primitives (Amg)
Eigen::Affine3d Transform3D
Ensure that the ATLAS eigen extensions are properly loaded.
BoundarySurfaceFace
Enum to describe the position of the BoundarySurface respectively to the frame orientatin of the volu...
@ z
global position (cartesian)
BinningType
, BinningOption & BinningAccess