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... | |
const std::vector< const 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 | |
DiamondBounds * | faceXYDiamondBounds () const |
This method returns the associated DoubleTrapezoidBounds of the face PlaneSurface parallel to local xy plane. More... | |
RectangleBounds * | faceAlpha1RectangleBounds () const |
This method returns the associated RecantleBounds of the face PlaneSurface attached to alpha (negative local x) More... | |
RectangleBounds * | faceAlpha2RectangleBounds () const |
RectangleBounds * | faceBeta1RectangleBounds () const |
This method returns the associated RecantleBounds of the face PlaneSurface attached to beta (positive local x) More... | |
RectangleBounds * | faceBeta2RectangleBounds () const |
RectangleBounds * | faceZXRectangleBoundsBottom () const |
This method returns the associated RecantleBounds of the face PlaneSurface parallel to local zx plane, negative local y. More... | |
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 276 of file DoubleTrapezoidVolumeBounds.cxx.
|
finaloverridevirtual |
Output Method for std::ostream.
Implements Trk::VolumeBounds.
Definition at line 290 of file DoubleTrapezoidVolumeBounds.cxx.
|
private |
This method returns the associated RecantleBounds of the face PlaneSurface attached to alpha (negative local x)
Definition at line 214 of file DoubleTrapezoidVolumeBounds.cxx.
|
private |
Definition at line 220 of file DoubleTrapezoidVolumeBounds.cxx.
|
private |
This method returns the associated RecantleBounds of the face PlaneSurface attached to beta (positive local x)
Definition at line 226 of file DoubleTrapezoidVolumeBounds.cxx.
|
private |
Definition at line 232 of file DoubleTrapezoidVolumeBounds.cxx.
|
private |
This method returns the associated DoubleTrapezoidBounds of the face PlaneSurface parallel to local xy plane.
Definition at line 207 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 238 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 244 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 258 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.