![]() |
ATLAS Offline Software
|
#include <DoubleTrapezoidVolumeBounds.h>
Public Member Functions | |
| DoubleTrapezoidVolumeBounds () | |
| Default Constructor. More... | |
| DoubleTrapezoidVolumeBounds (double minhlenghtx, double medhlengthx, double maxhlengthx, double hlenghty1, double hlenghty2, double hlengthz) | |
| Constructor - the double trapezoid boundaries (symmetric trapezoid/diamond) More... | |
| DoubleTrapezoidVolumeBounds (const DoubleTrapezoidVolumeBounds &bobo) | |
| Copy Constructor. More... | |
| virtual | ~DoubleTrapezoidVolumeBounds () |
| Destructor. More... | |
| DoubleTrapezoidVolumeBounds & | operator= (const DoubleTrapezoidVolumeBounds &bobo) |
| Assignment operator. More... | |
| DoubleTrapezoidVolumeBounds * | clone () const override final |
| Virtual constructor. More... | |
| 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. More... | |
| virtual std::vector< std::unique_ptr< Trk::Surface > > | decomposeToSurfaces (const Amg::Transform3D &transform) override final |
| Method to decompose the Bounds into Surfaces. More... | |
| ObjectAccessor | boundarySurfaceAccessor (const Amg::Vector3D &gp, const Amg::Vector3D &dir, bool forceInside=false) const override final |
| Provide accessor for BoundarySurfaces. More... | |
| double | minHalflengthX () const |
| This method returns the X halflength at minimal Y. More... | |
| double | medHalflengthX () const |
| This method returns the (maximal) halflength in local x. More... | |
| double | maxHalflengthX () const |
| This method returns the X halflength at maximal Y (local coordinates) More... | |
| double | halflengthY1 () const |
| This method returns the halflength1 in local y. More... | |
| double | halflengthY2 () const |
| This method returns the halflength2 in local y. More... | |
| double | halflengthZ () const |
| This method returns the halflength in local z. More... | |
| double | alpha1 () const |
| This method returns the opening angle in point A (negative local x) More... | |
| double | alpha2 () const |
| This method returns the opening angle in point A' (negative local x) More... | |
| MsgStream & | dump (MsgStream &sl) const override final |
| Output Method for MsgStream. More... | |
| std::ostream & | dump (std::ostream &sl) const override final |
| Output Method for std::ostream. More... | |
Private Member Functions | |
| std::shared_ptr< DiamondBounds > | faceXYDiamondBounds () const |
| This method returns the associated DoubleTrapezoidBounds of the face PlaneSurface parallel to local xy plane. More... | |
| std::shared_ptr< RectangleBounds > | faceAlpha1RectangleBounds () const |
| This method returns the associated RecantleBounds of the face PlaneSurface attached to alpha (negative local x) More... | |
| std::shared_ptr< RectangleBounds > | faceAlpha2RectangleBounds () const |
| std::shared_ptr< RectangleBounds > | faceBeta1RectangleBounds () const |
| This method returns the associated RecantleBounds of the face PlaneSurface attached to beta (positive local x) More... | |
| std::shared_ptr< RectangleBounds > | faceBeta2RectangleBounds () const |
| std::shared_ptr< RectangleBounds > | faceZXRectangleBoundsBottom () const |
| This method returns the associated RecantleBounds of the face PlaneSurface parallel to local zx plane, negative local y. More... | |
| std::shared_ptr< RectangleBounds > | faceZXRectangleBoundsTop () const |
| This method returns the associated RecantleBounds of the face PlaneSurface parallel to local zx plane, positive local y. More... | |
Private Attributes | |
| double | m_minHalfX |
| minimal Y halflength in x More... | |
| double | m_medHalfX |
| maximal halflength in x More... | |
| double | m_maxHalfX |
| maximal Y halflength in x More... | |
| double | m_halfY1 |
| halflength in y More... | |
| double | m_halfY2 |
| halflength in y More... | |
| double | m_halfZ |
| halflength in z More... | |
| double | m_alpha1 |
| opening angle alpha (in point A) More... | |
| double | m_alpha2 |
| opening angle alpha (in point A') More... | |
| Trk::EightObjectsAccessor | m_objectAccessor |
| There's only one single object Acessor for the moment has to be implemented if Cuboids are used more widely. More... | |
Bounds for a double trapezoidal shaped Volume, the decomposeToSurfaces method creates a vector of 8 surfaces:
BoundarySurfaceFace [index]:
- negativeFaceXY [0] : Diamond Trk::PlaneSurface,
parallel to \f$ xy \f$ plane at negative \f$ z
\( - positiveFaceXY [1] : Diamond Trk::PlaneSurface, parallel to \) xy \( plane at positive \) z \( - trapezoidFaceAlpha1 [2] : Rectangular Trk::PlaneSurface, attached to [0] and [1] at negative \) x \( (associated to alpha1) - trapezoidFaceBeta1 [3] : Rectangular Trk::PlaneSurface, attached to [0] and [1] at positive \) x \( (associated to beta1) - trapezoidFaceAlpha2 [5] : Rectangular Trk::PlaneSurface, attached to [0] and [1] at negative \) x \( (associated to alpha2) - trapezoidFaceBeta2 [6] : Rectangular Trk::PlaneSurface, attached to [0] and [1] at positive \) x \( (associated to beta2) - negativeFaceZX [4] : Rectangular Trk::PlaneSurface, parallel to \) zx \( plane at negative \) y \( - positiveFaceZX [5] : Rectangular Trk::PlaneSurface, parallel to \) zx \( plane at positive \) y
Definition at line 66 of file DoubleTrapezoidVolumeBounds.h.
| Trk::DoubleTrapezoidVolumeBounds::DoubleTrapezoidVolumeBounds | ( | ) |
| Trk::DoubleTrapezoidVolumeBounds::DoubleTrapezoidVolumeBounds | ( | double | minhlenghtx, |
| double | medhlengthx, | ||
| double | maxhlengthx, | ||
| double | hlenghty1, | ||
| double | hlenghty2, | ||
| double | hlengthz | ||
| ) |
Constructor - the double trapezoid boundaries (symmetric trapezoid/diamond)
Definition at line 36 of file DoubleTrapezoidVolumeBounds.cxx.
| Trk::DoubleTrapezoidVolumeBounds::DoubleTrapezoidVolumeBounds | ( | const DoubleTrapezoidVolumeBounds & | bobo | ) |
|
virtualdefault |
Destructor.
|
inline |
This method returns the opening angle in point A (negative local x)
Definition at line 204 of file DoubleTrapezoidVolumeBounds.h.
|
inline |
This method returns the opening angle in point A' (negative local x)
Definition at line 206 of file DoubleTrapezoidVolumeBounds.h.
|
inlinefinaloverridevirtual |
Provide accessor for BoundarySurfaces.
Implements Trk::VolumeBounds.
Definition at line 208 of file DoubleTrapezoidVolumeBounds.h.
|
inlinefinaloverridevirtual |
Virtual constructor.
Implements Trk::VolumeBounds.
Definition at line 176 of file DoubleTrapezoidVolumeBounds.h.
|
finaloverridevirtual |
Method to decompose the Bounds into Surfaces.
Implements Trk::VolumeBounds.
Definition at line 93 of file DoubleTrapezoidVolumeBounds.cxx.
|
finaloverridevirtual |
Output Method for MsgStream.
Implements Trk::VolumeBounds.
Definition at line 274 of file DoubleTrapezoidVolumeBounds.cxx.
|
finaloverridevirtual |
Output Method for std::ostream.
Implements Trk::VolumeBounds.
Definition at line 288 of file DoubleTrapezoidVolumeBounds.cxx.
|
private |
This method returns the associated RecantleBounds of the face PlaneSurface attached to alpha (negative local x)
Definition at line 213 of file DoubleTrapezoidVolumeBounds.cxx.
|
private |
|
private |
This method returns the associated RecantleBounds of the face PlaneSurface attached to beta (positive local x)
Definition at line 225 of file DoubleTrapezoidVolumeBounds.cxx.
|
private |
|
private |
This method returns the associated DoubleTrapezoidBounds of the face PlaneSurface parallel to local xy plane.
Definition at line 206 of file DoubleTrapezoidVolumeBounds.cxx.
|
private |
This method returns the associated RecantleBounds of the face PlaneSurface parallel to local zx plane, negative local y.
Definition at line 237 of file DoubleTrapezoidVolumeBounds.cxx.
|
private |
This method returns the associated RecantleBounds of the face PlaneSurface parallel to local zx plane, positive local y.
Definition at line 243 of file DoubleTrapezoidVolumeBounds.cxx.
|
inline |
This method returns the halflength1 in local y.
Definition at line 192 of file DoubleTrapezoidVolumeBounds.h.
|
inline |
This method returns the halflength2 in local y.
Definition at line 196 of file DoubleTrapezoidVolumeBounds.h.
|
inline |
This method returns the halflength in local z.
Definition at line 200 of file DoubleTrapezoidVolumeBounds.h.
|
finaloverridevirtual |
This method checks if position in the 3D volume frame is inside the cylinder.
Implements Trk::VolumeBounds.
Definition at line 257 of file DoubleTrapezoidVolumeBounds.cxx.
|
inline |
This method returns the X halflength at maximal Y (local coordinates)
Definition at line 188 of file DoubleTrapezoidVolumeBounds.h.
|
inline |
This method returns the (maximal) halflength in local x.
Definition at line 184 of file DoubleTrapezoidVolumeBounds.h.
|
inline |
This method returns the X halflength at minimal Y.
Definition at line 180 of file DoubleTrapezoidVolumeBounds.h.
| Trk::DoubleTrapezoidVolumeBounds & Trk::DoubleTrapezoidVolumeBounds::operator= | ( | const DoubleTrapezoidVolumeBounds & | bobo | ) |
|
private |
opening angle alpha (in point A)
Definition at line 165 of file DoubleTrapezoidVolumeBounds.h.
|
private |
opening angle alpha (in point A')
Definition at line 166 of file DoubleTrapezoidVolumeBounds.h.
|
private |
halflength in y
Definition at line 161 of file DoubleTrapezoidVolumeBounds.h.
|
private |
halflength in y
Definition at line 162 of file DoubleTrapezoidVolumeBounds.h.
|
private |
halflength in z
Definition at line 163 of file DoubleTrapezoidVolumeBounds.h.
|
private |
maximal Y halflength in x
Definition at line 160 of file DoubleTrapezoidVolumeBounds.h.
|
private |
maximal halflength in x
Definition at line 159 of file DoubleTrapezoidVolumeBounds.h.
|
private |
minimal Y halflength in x
Definition at line 158 of file DoubleTrapezoidVolumeBounds.h.
|
private |
There's only one single object Acessor for the moment has to be implemented if Cuboids are used more widely.
Definition at line 173 of file DoubleTrapezoidVolumeBounds.h.
1.8.18