9#ifndef TRKVOLUMES_VOLUME_H
10#define TRKVOLUMES_VOLUME_H
45 Volume(std::unique_ptr<Amg::Transform3D> htrans,
46 std::shared_ptr<VolumeBounds> volBounds);
76 bool forceInside=
false)
const;
macros to associate a CLID to a type
#define CLASS_DEF(NAME, CID, VERSION)
associate a clid and a version to a type eg
Pure Absract Base Class for Volume bounds.
Base class for all volumes inside the tracking realm, it defines the interface for inherited Volume c...
virtual ~Volume()=default
Volume(Volume &&)=default
Volume()=default
Defaults copies are special due ot unique ptr data member.
const Amg::Vector3D & center() const
returns the center of the volume
Volume & operator=(Volume &&)=default
const Amg::Transform3D & transform() const
Return methods for geometry transform.
const VolumeBounds & volumeBounds() const
returns the volumeBounds()
Amg::Vector3D m_center
center position of the surface
std::unique_ptr< Amg::Transform3D > m_transform
Transform3D (optional)
std::shared_ptr< VolumeBounds > m_volumeBounds
the volumeBounds
ObjectAccessor boundarySurfaceAccessor(const Amg::Vector3D &gp, const Amg::Vector3D &mom, bool forceInside=false) const
Provide accessor for BoundarySurfaces.
virtual Volume * clone() const
polymorpic deep copy
Eigen::Affine3d Transform3D
Eigen::Matrix< double, 3, 1 > Vector3D
Ensure that the ATLAS eigen extensions are properly loaded.
static const Amg::Transform3D s_idTransform
idendity transformation
MsgStream & operator<<(MsgStream &sl, const AlignModule &alignModule)
overload of << operator for MsgStream for debug output
static const Amg::Vector3D s_origin(0, 0, 0)
origin position