 |
ATLAS Offline Software
|
Go to the documentation of this file.
9 #ifndef TRKVOLUMES_BEVELLEDCYLINDERVOLUMESBOUNDS_H
10 #define TRKVOLUMES_BEVELLEDCYLINDERVOLUMESBOUNDS_H
33 double deltax = xprime-
px;
36 segLength = sqrt(deltax*deltax+deltay*deltay);
43 class TrapezoidBounds;
44 class RectangleBounds;
130 bool forceInside=
false)
const override;
160 MsgStream&
dump(MsgStream& sl)
const override;
163 std::ostream&
dump(std::ostream& sl)
const override;
183 std::shared_ptr<DiscBounds>
discBounds()
const;
192 #ifdef TRKDETDESCR_USEFLOATPRECISON
202 #ifdef TRKDETDESCR_USEFLOATPRECISON
224 double cphi =
cos(
pos.phi());
225 bool insideR = insidePhi;
251 #endif // TRKVOLUMES_BEVELLEDCYLINDERVOLUMESBOUNDS_H
std::shared_ptr< DiscBounds > discBounds() const
This method returns the associated DiscBounds for the bottom/top DiscSurface.
double mediumRadius() const
This method returns the medium radius.
double outerRadius() const
This method returns the outer radius.
virtual std::vector< std::unique_ptr< Trk::Surface > > decomposeToSurfaces(const Amg::Transform3D &transform) override
Method to decompose the Bounds into boundarySurfaces.
int type() const
This method returns the type.
static const double s_numericalStable
numerical stability
double thetaMinus() const
This method returns the thetaMinus.
Cached pointer with atomic update.
BevelledCylinderVolumeBounds()
Default Constructor.
std::shared_ptr< RectangleBounds > sectorPlaneBounds() const
std::shared_ptr< CylinderBounds > outerBevelledCylinderBounds() const
This method returns the associated BevelledCylinderBounds of the outer BevelledCylinderSurfaces.
std::shared_ptr< CylinderBounds > outerCylinderBounds() const
This method returns the associated CylinderBounds of the outer CylinderSurfaces.
std::shared_ptr< EllipseBounds > bottomEllipseBounds() const
This method returns the associated EllipseBounds for the bottom/top EllipseSurface.
void createBoundarySurfaceAccessors()
Private method to construct the accessors.
MsgStream & dump(MsgStream &sl) const override
Output Method for MsgStream.
ObjectAccessor boundarySurfaceAccessor(const Amg::Vector3D &gp, const Amg::Vector3D &dir, bool forceInside=false) const override
Provide accessor for BoundarySurfaces.
Eigen::Affine3d Transform3D
Cached unique_ptr with atomic update.
Amg::Vector3D transform(Amg::Vector3D &v, Amg::Transform3D &tr)
Transform a point from a Trasformation3D.
double thetaPlus() const
This method returns the thetaPlus.
BevelledCylinderVolumeBounds & operator=(const BevelledCylinderVolumeBounds &cylbo)
Assignment operator.
std::shared_ptr< EllipseBounds > topEllipseBounds() const
This method returns the associated EllipseBounds for the bottom/top EllipseSurface.
double yOfX
the result of x
Ensure that the ATLAS eigen extensions are properly loaded.
std::shared_ptr< RectangleBounds > innerBevelledPlaneBounds() const
This method returns the associated plane surface bounds of the inner bevelled surface.
Eigen::Matrix< double, 3, 1 > Vector3D
double innerRadius() const
This method returns the inner radius.
bool inside(const Amg::Vector3D &, double tol=0.) const override
This method checks if position in the 3D volume frame is inside the cylinder.
CxxUtils::CachedUniquePtr< Trk::Volume > m_subtractedVolume
double segLength
length of the line segment
std::shared_ptr< TrapezoidBounds > sectorTrdBounds() const
This method returns the associated PlaneBounds limiting a sectoral BevelledCylinderVolume.
std::shared_ptr< CylinderBounds > innerCylinderBounds() const
This method returns the associated CylinderBounds of the inner CylinderSurfaces.
std::shared_ptr< CylinderBounds > innerBevelledCylinderBounds() const
This method returns the associated BevelledCylinderBounds of the inner BevelledCylinderSurfaces.
virtual ~BevelledCylinderVolumeBounds()
Destructor.
Volume * subtractedVolume() const
This method returns the bevelled area volume.
double deltaRadius() const
This method returns the delta radius.
double halflengthZ() const
This method returns the halflengthZ.
double halfPhiSector() const
This method returns the halfPhiSector angle.
std::shared_ptr< RectangleBounds > outerBevelledPlaneBounds() const
This method returns the associated BevelledCylinderBounds of the outer BevelledCylinderSurfaces.
BevelledBoundaryIntersector(double px, double py, double k, double xprime)
BevelledCylinderVolumeBoundaryAccessors m_boundaryAccessors
Accessors for Boundary surface access - static is not possible due to mismatched delete() / free () w...
BevelledCylinderVolumeBounds * clone() const override
Virtual constructor.