9#ifndef TRKDETDESCRGEOMODELCNV_VOLUMECONVERTER_H
10#define TRKDETDESCRGEOMODELCNV_VOLUMECONVERTER_H
47 std::vector<std::shared_ptr<Volume>>
parts{};
65 std::unique_ptr<TrackingVolume>
translate(
const GeoVPhysVol* gv,
66 bool simplify,
bool blend,
67 double blendMassLimit)
const;
70 std::pair<std::shared_ptr<Volume>, std::shared_ptr<Volume>>;
81 double zTol,
double phiTol)
const;
85 double precision = 1.e-3)
const;
96 const GeoVPhysVol* gv,
97 std::vector<Trk::MaterialComponent>& materialContent)
const;
AthMessaging(IMessageSvc *msgSvc, const std::string &name)
Constructor.
A Simple Helper Class that convertes the GeoShape object used in GeoModel full detector description t...
Material with information about thickness of material.
Full Volume description used in Tracking, it inherits from Volume to get the geometrical structure,...
Pure Absract Base Class for Volume bounds.
static VolumePairVec splitComposedVolume(const Volume &trVol)
Decomposition of volume into set of non-overlapping subtractions from analytically calculable volume.
void collectMaterialContent(const GeoVPhysVol *gv, std::vector< Trk::MaterialComponent > &materialContent) const
material collection for volumes
std::pair< std::shared_ptr< Volume >, std::shared_ptr< Volume > > VolumePair
Trk::GeoShapeConverter m_geoShapeConverter
shape converter
std::vector< VolumePair > VolumePairVec
static constexpr double s_precisionInX0
double resolveBooleanVolume(const Volume &trVol, double tolerance) const
double calculateVolume(const Volume &vol, bool nonBooleanOnly=false, double precision=1.e-3) const
Volume calculation : by default return analytical solution only.
double estimateFraction(const VolumePair &sub, double precision) const
the tricky part of volume calculation
void collectMaterial(const GeoVPhysVol *pv, Trk::MaterialProperties &layMat, double sf) const
material collection for layers
std::unique_ptr< TrackingVolume > translate(const GeoVPhysVol *gv, bool simplify, bool blend, double blendMassLimit) const
translation of GeoVPhysVol to Trk::TrackingVolume
std::unique_ptr< VolumeSpan > findVolumeSpan(const VolumeBounds &volBounds, const Amg::Transform3D &transform, double zTol, double phiTol) const
Estimation of the geometrical volume span.
double leadingVolume(const GeoShape *sh) const
Base class for all volumes inside the tracking realm, it defines the interface for inherited Volume c...
Eigen::Affine3d Transform3D
Ensure that the ATLAS eigen extensions are properly loaded.
std::pair< Material, double > MaterialComponent
std::vector< VolumePart > VolumePartVec
std::vector< std::shared_ptr< Volume > > parts