9#ifndef TRKVOLUMES_PRISMVOLUMEBOUNDS_H
10#define TRKVOLUMES_PRISMVOLUMEBOUNDS_H
80 bool forceInside =
false)
const override final;
83 const std::vector<std::pair<double, double> >&
xyVertices()
const;
89 MsgStream&
dump(MsgStream& sl)
const override final;
92 std::ostream&
dump(std::ostream& sl)
const override final;
100 std::vector<std::pair<double, double> >
mirror_xyVtx()
const;
105 std::vector<std::pair<double, double> >
m_xyVtx;
Cached value with atomic update.
Cached value with atomic update.
Class for a planaer rectangular or trapezoidal surface in the ATLAS detector.
PrismVolumeBounds & operator=(const PrismVolumeBounds &bobo)
Assignment operator.
std::vector< std::pair< double, double > > mirror_xyVtx() const
mirror the input vertices for down-side boundary
double m_halfZ
halflength in z
const std::vector< std::pair< double, double > > & xyVertices() const
This method returns the set of xy generating vertices.
virtual ~PrismVolumeBounds()
Destructor.
Trk::EightObjectsAccessor m_objectAccessor
There's only one single object Acessor for the moment has to be implemented if Cuboids are used more ...
PrismVolumeBounds()
Default Constructor.
CxxUtils::CachedValue< int > m_ordering
cache vertex ordering
double halflengthZ() const
This method returns the halflength in local z.
std::vector< std::pair< double, double > > m_xyVtx
generating xy vertices
PrismVolumeBounds * clone() const override final
Virtual constructor.
Trk::TriangleBounds * m_baseBounds
base xy bounds
int ordering() const
assess ordering of vertices
virtual std::vector< std::unique_ptr< Trk::Surface > > decomposeToSurfaces(const Amg::Transform3D &transform) override final
Method to decompose the Bounds into Surfaces.
ObjectAccessor boundarySurfaceAccessor(const Amg::Vector3D &gp, const Amg::Vector3D &dir, bool forceInside=false) const override final
Provide accessor for BoundarySurfaces.
std::unique_ptr< Trk::PlaneSurface > sideSurf(const Amg::Transform3D &, unsigned int, unsigned int) const
method to construct side boundary planes
Abstract Base Class for tracking surfaces.
Bounds for a triangular, planar surface.
VolumeBounds()
Default Constructor.
Eigen::Affine3d Transform3D
Eigen::Matrix< double, 3, 1 > Vector3D
Ensure that the ATLAS eigen extensions are properly loaded.
std::array< ObjectAccessor::value_type, 8 > EightObjectsAccessor