|
ATLAS Offline Software
|
Go to the documentation of this file.
9 #ifndef TRKDETDESCRTOOLS_CYLINDERVOLUMECREATOR_H
10 #define TRKDETDESCRTOOLS_CYLINDERVOLUMECREATOR_H
20 #include "GaudiKernel/ToolHandle.h"
28 class ILayerArrayCreator;
29 class ITrackingVolumeArrayCreator;
30 class ITrackingVolumeHelper;
36 class CylinderVolumeBounds;
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;
void addFaceVolumes(TrackingVolume &tvol, Trk::BoundarySurfaceFace bsf, std::vector< Trk::TrackingVolume * > &vols) const
Private method - helper method not to duplicate code.
~CylinderVolumeCreator()
Destructor.
DiscLayer * createDiscLayer(double z, double rMin, double rMax, double thickness, int binsPhi, int binsR) const
Private method - helper method to save some code.
CylinderLayer * createCylinderLayer(double z, double r, double halflength, double thickness, int binsPhi, int binsZ) const
Private method - helper method to save some code.
@ z
global position (cartesian)
CylinderVolumeCreator(const std::string &, const std::string &, const IInterface *)
Constructor.
virtual StatusCode initialize() override
AlgTool initialize method.
int m_passiveLayerPhiBins
bins in phi for the passive layer
bool const RAWDATA *ch2 const
ToolHandle< ITrackingVolumeArrayCreator > m_trackingVolumeArrayCreator
TrackingVolume helper.
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,...
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.
::StatusCode StatusCode
StatusCode definition for legacy 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
Eigen::Affine3d Transform3D
Amg::Vector3D transform(Amg::Vector3D &v, Amg::Transform3D &tr)
Transform a point from a Trasformation3D.
Ensure that the ATLAS eigen extensions are properly loaded.
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
Definition of ATLAS Math & Geometry primitives (Amg)
ToolHandle< ITrackingVolumeHelper > m_trackingVolumeHelper
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
ToolHandle< ILayerArrayCreator > m_layerArrayCreator
< A Tool for coherent LayerArray creation
double m_passiveLayerThickness
thickness of passive layers
int m_passiveLayerRzBins
bins in r/z for the passive layer
Define macros for attributes used to control the static checker.
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...