|
ATLAS Offline Software
|
Go to the documentation of this file.
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;
std::vector< VolumePart > VolumePartVec
Trk::GeoShapeConverter m_geoShapeConverter
shape converter
double calculateVolume(const Volume &vol, bool nonBooleanOnly=false, double precision=1.e-3) const
Volume calculation : by default return analytical solution only.
std::vector< VolumePair > VolumePairVec
static constexpr double s_precisionInX0
std::unique_ptr< VolumeSpan > findVolumeSpan(const VolumeBounds &volBounds, const Amg::Transform3D &transform, double zTol, double phiTol) const
Estimation of the geometrical volume span.
void collectMaterial(const GeoVPhysVol *pv, Trk::MaterialProperties &layMat, double sf) const
material collection for layers
double estimateFraction(const VolumePair &sub, double precision) const
the tricky part of volume calculation
void collectMaterialContent(const GeoVPhysVol *gv, std::vector< Trk::MaterialComponent > &materialContent) const
material collection for volumes
double leadingVolume(const GeoShape *sh) const
Eigen::Affine3d Transform3D
Amg::Vector3D transform(Amg::Vector3D &v, Amg::Transform3D &tr)
Transform a point from a Trasformation3D.
Class to provide easy MsgStream access and capabilities.
double resolveBooleanVolume(const Volume &trVol, double tolerance) const
std::pair< Material, double > MaterialComponent
Ensure that the ATLAS eigen extensions are properly loaded.
std::pair< std::shared_ptr< Volume >, std::shared_ptr< Volume > > VolumePair
std::vector< std::shared_ptr< Volume > > parts
std::unique_ptr< TrackingVolume > translate(const GeoVPhysVol *gv, bool simplify, bool blend, double blendMassLimit) const
translation of GeoVPhysVol to Trk::TrackingVolume
static VolumePairVec splitComposedVolume(const Volume &trVol)
Decomposition of volume into set of non-overlapping subtractions from analytically calculable volume.