|
ATLAS Offline Software
|
Go to the documentation of this file.
9 #ifndef TRKDETDESCRTOOLS_TRACKINGVOLUMEHELPER_H
10 #define TRKDETDESCRTOOLS_TRACKINGVOLUMEHELPER_H
12 #ifndef TRKDETDESCR_TAKESMALLERBIGGER
13 #define TRKDETDESCR_TAKESMALLERBIGGER
14 #define takeSmaller(current, test) current = current < test ? current : test
15 #define takeBigger(current, test) current = current > test ? current : test
16 #define takeSmallerBigger(cSmallest, cBiggest, test) \
17 takeSmaller(cSmallest, test); \
18 takeBigger(cBiggest, test)
27 #include "GaudiKernel/SystemOfUnits.h"
28 #include "GaudiKernel/ToolHandle.h"
37 class ILayerArrayCreator;
38 class ITrackingVolumeArrayCreator;
41 class CylinderVolumeBounds;
43 class LayerMaterialProperties;
84 bool buildBoundaryLayer =
false)
const override;
98 const std::vector<TrackingVolume*>& secondVolumes,
100 bool buildBoundaryLayer =
false,
101 bool boundaryFaceExchange =
false)
const override;
118 const std::vector<TrackingVolume*>& secondVolumes,
120 bool buildBoundaryLayer =
false,
121 bool boundaryFaceExchange =
false)
const override;
141 std::string
name)
const override;
145 std::shared_ptr<TrackingVolume> secondVol,
147 const std::string&
name)
const override;
221 static void fillGlueVolumes(
const std::vector<TrackingVolume*>& topLevelVolumes,
222 const std::vector<TrackingVolume*>& envelopeFaceVolumes,
224 std::vector<Trk::TrackingVolume*>& glueVols);
226 static void fillGlueVolumes(
const std::vector<std::shared_ptr<TrackingVolume>>& topLevelVolumes,
227 const std::vector<std::shared_ptr<TrackingVolume>>& envelopeFaceVolumes,
229 std::vector<Trk::TrackingVolume*>& glueVols);
240 PublicToolHandle<ILayerArrayCreator>
242 ToolHandle<ITrackingVolumeArrayCreator>
void setOutsideTrackingVolumeArray(TrackingVolume &tvol, BoundarySurfaceFace face, SharedObject< BinnedArray< TrackingVolume >> outsidevolarray) const override
void setOutsideTrackingVolumeArray(TrackingVolume &tvol, BoundarySurfaceFace face, BinnedArray< TrackingVolume > *outsidevolarray) const override
protected method to set outside VolumeArray of a BoundarySurface: input:
Gaudi::Property< int > m_barrelLayerBinsPhi
material bins in Phi
Gaudi::Property< int > m_barrelLayerBinsZ
material bins in Z
void setOutsideTrackingVolume(TrackingVolume &tvol, BoundarySurfaceFace face, TrackingVolume *outsidevol) const override
protected method to set outside Volume of a BoundarySurface: input:
PublicToolHandle< ILayerArrayCreator > m_layerArrayCreator
A Tool for coherent LayerArray creation.
Gaudi::Property< int > m_endcapLayerBinsPhi
material bins in Phi
static void fillGlueVolumes(const std::vector< TrackingVolume * > &topLevelVolumes, const std::vector< TrackingVolume * > &envelopeFaceVolumes, BoundarySurfaceFace glueFace, std::vector< Trk::TrackingVolume * > &glueVols)
Private method - it takes the full vector of given volumes to create the supervolume,...
Trk::TrackingVolume * glueTrackingVolumeArrays(TrackingVolume &firstVol, BoundarySurfaceFace firstFace, TrackingVolume &secondVol, BoundarySurfaceFace secondFace, std::string name) const override
Method to glue two VolumeArrays together (at navigation level)
void setInsideTrackingVolumeArray(TrackingVolume &tvol, BoundarySurfaceFace face, BinnedArray< TrackingVolume > *insidevolarray) const override
protected method to set inside VolumeArray of a BoundarySurface: input:
void setInsideTrackingVolume(TrackingVolume &tvol, BoundarySurfaceFace face, TrackingVolume *insidevol) const override
protected method to set inside Volume of a BoundarySurface: input:
::StatusCode StatusCode
StatusCode definition for legacy code.
virtual ~TrackingVolumeHelper()
Destructor.
static constexpr double s_layerThickness
standard layer thickness
Ensure that the ATLAS eigen extensions are properly loaded.
std::unique_ptr< Trk::LayerMaterialProperties > layerMaterialProperties(const Trk::Surface &sf) const
< helper method to construct barrel material
std::shared_ptr< T > SharedObject
TrackingVolumeHelper(const std::string &, const std::string &, const IInterface *)
Constructor.
Gaudi::Property< int > m_endcapLayerBinsR
material bins in R
StatusCode initialize() override
AlgTool initialize method.
void setInsideTrackingVolumeArray(TrackingVolume &tvol, BoundarySurfaceFace face, SharedObject< BinnedArray< TrackingVolume >> insidevolarray) const override
void glueTrackingVolumes(TrackingVolume &firstVol, BoundarySurfaceFace firstFace, TrackingVolume &secondVol, BoundarySurfaceFace secondFace, bool buildBoundaryLayer=false) const override
Method to glue two Volumes together input:
Define macros for attributes used to control the static checker.
ToolHandle< ITrackingVolumeArrayCreator > m_trackingVolumeArrayCreator
Helper Tool to create TrackingVolume.