|
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;
192 #ifdef TRKDETDESCR_USEFLOATPRECISON
202 #ifdef TRKDETDESCR_USEFLOATPRECISON
224 double cphi =
cos(
pos.phi());
225 bool insideR = insidePhi;
253 #endif // TRKVOLUMES_BEVELLEDCYLINDERVOLUMESBOUNDS_H
double mediumRadius() const
This method returns the medium radius.
double outerRadius() const
This method returns the outer radius.
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.
DiscBounds * discBounds() const
This method returns the associated DiscBounds for the bottom/top DiscSurface.
BevelledCylinderVolumeBounds()
Default Constructor.
EllipseBounds * topEllipseBounds() const
This method returns the associated EllipseBounds for the bottom/top EllipseSurface.
EllipseBounds * bottomEllipseBounds() const
This method returns the associated EllipseBounds for the bottom/top EllipseSurface.
void createBoundarySurfaceAccessors()
Private method to construct the accessors.
const std::vector< const Trk::Surface * > * decomposeToSurfaces(const Amg::Transform3D &transform) override
Method to decompose the Bounds into boundarySurfaces.
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.
TrapezoidBounds * sectorTrdBounds() const
This method returns the associated PlaneBounds limiting a sectoral BevelledCylinderVolume.
RectangleBounds * outerBevelledPlaneBounds() const
This method returns the associated BevelledCylinderBounds of the outer BevelledCylinderSurfaces.
Eigen::Affine3d Transform3D
Cached unique_ptr with atomic update.
Amg::Vector3D transform(Amg::Vector3D &v, Amg::Transform3D &tr)
Transform a point from a Trasformation3D.
CylinderBounds * outerBevelledCylinderBounds() const
This method returns the associated BevelledCylinderBounds of the outer BevelledCylinderSurfaces.
double thetaPlus() const
This method returns the thetaPlus.
BevelledCylinderVolumeBounds & operator=(const BevelledCylinderVolumeBounds &cylbo)
Assignment operator.
CylinderBounds * outerCylinderBounds() const
This method returns the associated CylinderBounds of the outer CylinderSurfaces.
double yOfX
the result of x
Ensure that the ATLAS eigen extensions are properly loaded.
RectangleBounds * sectorPlaneBounds() const
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
CylinderBounds * innerCylinderBounds() const
This method returns the associated CylinderBounds of the inner CylinderSurfaces.
RectangleBounds * innerBevelledPlaneBounds() const
This method returns the associated plane surface bounds of the inner bevelled surface.
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.
BevelledBoundaryIntersector(double px, double py, double k, double xprime)
CylinderBounds * innerBevelledCylinderBounds() const
This method returns the associated BevelledCylinderBounds of the inner BevelledCylinderSurfaces.
BevelledCylinderVolumeBoundaryAccessors m_boundaryAccessors
Accessors for Boundary surface access - static is not possible due to mismatched delete() / free () w...
BevelledCylinderVolumeBounds * clone() const override
Virtual constructor.