 |
ATLAS Offline Software
|
Go to the documentation of this file.
9 #ifndef TRKVOLUMES_CYLINDERVOLUMESBOUNDS_H
10 #define TRKVOLUMES_CYLINDERVOLUMESBOUNDS_H
24 class RectangleBounds;
108 bool forceInside = false)
const override final;
129 MsgStream&
dump(MsgStream& sl)
const override final;
131 std::ostream&
dump(std::ostream& sl)
const override final;
183 bool insideZ = insideR ? (fabs(
pos.z()) <=
m_halfZ + tol) :
false;
184 return (insideZ && insideR && insidePhi);
215 #endif // TRKVOLUMES_CYLINDERVOLUMESBOUNDS_H
virtual ~CylinderVolumeBounds()
Destructor.
std::shared_ptr< CylinderBounds > outerCylinderBounds() const
This method returns the associated CylinderBounds of the outer CylinderSurfaces.
std::shared_ptr< RectangleBounds > sectorPlaneBounds() const
This method returns the associated PlaneBounds limiting a sectoral CylinderVolume.
bool const RAWDATA *ch2 const
MsgStream & dump(MsgStream &sl) const override final
Output Method for MsgStream.
bool inside(const Amg::Vector3D &, double tol=0.) const override final
This method checks if position in the 3D volume frame is inside the cylinder.
CylinderVolumeBounds()
Default Constructor.
std::shared_ptr< DiscBounds > topDiscBounds() const
This method returns the associated DiscBounds for the bottom/top DiscSurface.
ObjectAccessor boundarySurfaceAccessor(const Amg::Vector3D &gp, const Amg::Vector3D &dir, bool forceInside=false) const override final
Provide accessor for BoundarySurfaces.
std::shared_ptr< DiscBounds > bottomDiscBounds() const
This method returns the associated DiscBounds for the bottom/top DiscSurface.
CylinderVolumeBoundaryAccessors m_boundaryAccessors
Accessors for Boundary surface access - static is not possible due to mismatched delete() / free () w...
Eigen::Affine3d Transform3D
Amg::Vector3D transform(Amg::Vector3D &v, Amg::Transform3D &tr)
Transform a point from a Trasformation3D.
double halflengthZ() const
This method returns the halflengthZ.
virtual std::vector< std::unique_ptr< Trk::Surface > > decomposeToSurfaces(const Amg::Transform3D &transform) override final
Method to decompose the Bounds into boundarySurfaces.
Ensure that the ATLAS eigen extensions are properly loaded.
Definition of ATLAS Math & Geometry primitives (Amg)
double outerRadius() const
This method returns the outer radius.
Eigen::Matrix< double, 3, 1 > Vector3D
double halfPhiSector() const
This method returns the halfPhiSector angle.
std::shared_ptr< CylinderBounds > innerCylinderBounds() const
This method returns the associated CylinderBounds of the inner CylinderSurfaces.
double innerRadius() const
This method returns the inner radius.
double deltaRadius() const
This method returns the delta radius.
static const double s_numericalStable
numerical stability
CylinderVolumeBounds & operator=(const CylinderVolumeBounds &cylbo)
Assignment operator.
void createBoundarySurfaceAccessors()
Private method to construct the accessors.
CylinderVolumeBounds * clone() const override
Virtual constructor.
double mediumRadius() const
This method returns the medium radius.