 |
ATLAS Offline Software
|
Go to the documentation of this file.
9 #ifndef TRKVOLUMES_DOUBLETRAPEZOIDVOLUMESBOUNDS_H
10 #define TRKVOLUMES_DOUBLETRAPEZOIDVOLUMESBOUNDS_H
22 class RectangleBounds;
23 class TrapezoidBounds;
74 double maxhlengthx,
double hlenghty1,
75 double hlenghty2,
double hlengthz);
101 bool forceInside = false)
const override final;
128 MsgStream&
dump(MsgStream& sl)
const override final;
130 std::ostream&
dump(std::ostream& sl)
const override final;
155 #ifdef TRKDETDESCR_USEFLOATPRECISON
167 #ifdef TRKDETDESCR_USEFLOATPRECISON
215 #endif // TRKVOLUMES_DOUBLETRAPEZOIDVOLUMESBOUNDS_H
double m_alpha2
opening angle alpha (in point A')
double m_halfY1
halflength in y
Trk::EightObjectsAccessor m_objectAccessor
There's only one single object Acessor for the moment has to be implemented if Cuboids are used more ...
double m_halfZ
halflength in z
double m_minHalfX
minimal Y halflength in x
double m_alpha1
opening angle alpha (in point A)
std::array< ObjectAccessor::value_type, 8 > EightObjectsAccessor
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.
DoubleTrapezoidVolumeBounds & operator=(const DoubleTrapezoidVolumeBounds &bobo)
Assignment operator.
std::shared_ptr< RectangleBounds > faceZXRectangleBoundsBottom() const
This method returns the associated RecantleBounds of the face PlaneSurface parallel to local zx plane...
virtual ~DoubleTrapezoidVolumeBounds()
Destructor.
ObjectAccessor boundarySurfaceAccessor(const Amg::Vector3D &gp, const Amg::Vector3D &dir, bool forceInside=false) const override final
Provide accessor for BoundarySurfaces.
DoubleTrapezoidVolumeBounds()
Default Constructor.
double m_halfY2
halflength in y
bool const RAWDATA *ch2 const
std::shared_ptr< RectangleBounds > faceAlpha1RectangleBounds() const
This method returns the associated RecantleBounds of the face PlaneSurface attached to alpha (negativ...
double halflengthZ() const
This method returns the halflength in local z.
double maxHalflengthX() const
This method returns the X halflength at maximal Y (local coordinates)
virtual std::vector< std::unique_ptr< Trk::Surface > > decomposeToSurfaces(const Amg::Transform3D &transform) override final
Method to decompose the Bounds into Surfaces.
MsgStream & dump(MsgStream &sl) const override final
Output Method for MsgStream.
double halflengthY1() const
This method returns the halflength1 in local y.
Eigen::Affine3d Transform3D
Amg::Vector3D transform(Amg::Vector3D &v, Amg::Transform3D &tr)
Transform a point from a Trasformation3D.
double halflengthY2() const
This method returns the halflength2 in local y.
Ensure that the ATLAS eigen extensions are properly loaded.
DoubleTrapezoidVolumeBounds * clone() const override final
Virtual constructor.
Definition of ATLAS Math & Geometry primitives (Amg)
std::shared_ptr< RectangleBounds > faceBeta1RectangleBounds() const
This method returns the associated RecantleBounds of the face PlaneSurface attached to beta (positive...
double alpha1() const
This method returns the opening angle in point A (negative local x)
double alpha2() const
This method returns the opening angle in point A' (negative local x)
Eigen::Matrix< double, 3, 1 > Vector3D
double minHalflengthX() const
This method returns the X halflength at minimal Y.
double medHalflengthX() const
This method returns the (maximal) halflength in local x.
std::shared_ptr< RectangleBounds > faceBeta2RectangleBounds() const
double m_maxHalfX
maximal Y halflength in x
std::shared_ptr< DiamondBounds > faceXYDiamondBounds() const
This method returns the associated DoubleTrapezoidBounds of the face PlaneSurface parallel to local x...
double m_medHalfX
maximal halflength in x
std::shared_ptr< RectangleBounds > faceAlpha2RectangleBounds() const
std::shared_ptr< RectangleBounds > faceZXRectangleBoundsTop() const
This method returns the associated RecantleBounds of the face PlaneSurface parallel to local zx plane...