ATLAS Offline Software
|
#include <RotatedDiamondBounds.h>
Public Types | |
enum | BoundValues { bv_minHalfX = 0, bv_medHalfX = 1, bv_maxHalfX = 2, bv_halfY1 = 3, bv_halfY2 = 4, bv_length = 5 } |
BoundValues for better readability. More... | |
enum | BoundsType { Cone = 0, Cylinder = 1, Diamond = 2, Disc = 3, Ellipse = 5, Rectangle = 6, RotatedTrapezoid = 7, Trapezoid = 8, Triangle = 9, DiscTrapezoidal = 10, Annulus = 11, Other = 12 } |
Public Member Functions | |
RotatedDiamondBounds () | |
Default Constructor, needed for persistency. More... | |
RotatedDiamondBounds (const RotatedDiamondBounds &diabo)=default | |
Copy constructor. More... | |
RotatedDiamondBounds & | operator= (const RotatedDiamondBounds &sbo)=default |
Assignment operator. More... | |
RotatedDiamondBounds (RotatedDiamondBounds &&diabo) noexcept=default | |
Move constructor. More... | |
RotatedDiamondBounds & | operator= (RotatedDiamondBounds &&sbo) noexcept=default |
Assignment operator. More... | |
virtual | ~RotatedDiamondBounds ()=default |
Destructor. More... | |
RotatedDiamondBounds (double minhalex, double medhalex, double maxhalex, double haley1, double haley2) | |
Constructor for symmetric Diamond. More... | |
RotatedDiamondBounds * | clone () const override |
Virtual constructor. More... | |
virtual bool | operator== (const SurfaceBounds &diabo) const override |
Equality operator. More... | |
virtual BoundsType | type () const override |
Return the bounds type. More... | |
double | minHalflengthX () const |
This method returns the halflength in X at minimal Y (first coordinate of local surface frame) More... | |
double | medHalflengthX () const |
This method returns the (maximal) halflength in X (first coordinate of local surface frame) More... | |
double | maxHalflengthX () const |
This method returns the halflength in X at maximal Y (first coordinate of local surface frame) More... | |
double | halflengthY1 () const |
This method returns the halflength in Y of trapezoid at negative/positive Y (second coordinate) More... | |
double | halflengthY2 () const |
virtual double | r () const override |
This method returns the maximal extension on the local plane. More... | |
double | alpha1 () const |
This method returns the opening angle alpha in point A More... | |
double | alpha2 () const |
This method returns the opening angle alpha in point A' More... | |
virtual bool | inside (const Amg::Vector2D &locpo, double tol1=0., double tol2=0.) const override |
The orientation of the Diamond is according to the figure. More... | |
virtual bool | inside (const Amg::Vector2D &locpo, const BoundaryCheck &bchk) const override |
virtual bool | insideLoc1 (const Amg::Vector2D &locpo, double tol1=0.) const override |
This method checks inside bounds in loc1. More... | |
virtual bool | insideLoc2 (const Amg::Vector2D &locpo, double tol2=0.) const override |
This method checks inside bounds in loc2. More... | |
virtual double | minDistance (const Amg::Vector2D &pos) const override |
Minimal distance to boundary ( > 0 if outside and <=0 if inside) More... | |
virtual MsgStream & | dump (MsgStream &sl) const override |
Output Method for MsgStream. More... | |
virtual std::ostream & | dump (std::ostream &sl) const override |
Output Method for std::ostream. More... | |
virtual bool | operator!= (const SurfaceBounds &sb) const |
Non-Equality operator. More... | |
Protected Member Functions | |
void | swap (double &b1, double &b2) |
Swap method to be called from DiscBounds or TrapezoidalBounds. More... | |
Private Member Functions | |
bool | insideFull (const Amg::Vector2D &locpo, double tol1=0., double tol2=0.) const |
inside() method for a full symmetric diamond More... | |
virtual void | initCache () override |
initialize the alpha1/2 cache - needed also for object persistency More... | |
Private Attributes | |
std::vector< TDD_real_t > | m_boundValues |
Internal parameters stored in the geometry. More... | |
TDD_real_t | m_alpha1 |
TDD_real_t | m_alpha2 |
Friends | |
class | ::RotatedDiamondBoundsCnv_p1 |
Bounds for a double trapezoidal ("diamond"), planar Surface.
The RotatedDiamondBounds Class specifies the same diamond as the DiamondBounds Class. The local X and Y coordinates will be interchanged internally for boundary checks. (This is opposed to the TrapezoidBounds, where X and Y are interchanged in the constructor.)
Definition at line 41 of file RotatedDiamondBounds.h.
|
inherited |
This enumerator simplifies the persistency, by saving a dynamic_cast to happen.
Other is reserved for the GeometrySurfaces implementation.
Enumerator | |
---|---|
Cone | |
Cylinder | |
Diamond | |
Disc | |
Ellipse | |
Rectangle | |
RotatedTrapezoid | |
Trapezoid | |
Triangle | |
DiscTrapezoidal | |
Annulus | |
Other |
Definition at line 58 of file SurfaceBounds.h.
BoundValues for better readability.
Enumerator | |
---|---|
bv_minHalfX | |
bv_medHalfX | |
bv_maxHalfX | |
bv_halfY1 | |
bv_halfY2 | |
bv_length |
Definition at line 46 of file RotatedDiamondBounds.h.
Trk::RotatedDiamondBounds::RotatedDiamondBounds | ( | ) |
Default Constructor, needed for persistency.
Definition at line 19 of file RotatedDiamondBounds.cxx.
|
default |
Copy constructor.
|
defaultnoexcept |
Move constructor.
|
virtualdefault |
Destructor.
Trk::RotatedDiamondBounds::RotatedDiamondBounds | ( | double | minhalex, |
double | medhalex, | ||
double | maxhalex, | ||
double | haley1, | ||
double | haley2 | ||
) |
Constructor for symmetric Diamond.
Definition at line 26 of file RotatedDiamondBounds.cxx.
double Trk::RotatedDiamondBounds::alpha1 | ( | ) | const |
This method returns the opening angle alpha in point A
Definition at line 190 of file RotatedDiamondBounds.cxx.
double Trk::RotatedDiamondBounds::alpha2 | ( | ) | const |
This method returns the opening angle alpha in point A'
Definition at line 197 of file RotatedDiamondBounds.cxx.
|
overridevirtual |
Virtual constructor.
Implements Trk::SurfaceBounds.
|
overridevirtual |
Output Method for MsgStream.
Implements Trk::SurfaceBounds.
Definition at line 255 of file RotatedDiamondBounds.cxx.
|
overridevirtual |
Output Method for std::ostream.
Implements Trk::SurfaceBounds.
Definition at line 269 of file RotatedDiamondBounds.cxx.
double Trk::RotatedDiamondBounds::halflengthY1 | ( | ) | const |
This method returns the halflength in Y of trapezoid at negative/positive Y (second coordinate)
double Trk::RotatedDiamondBounds::halflengthY2 | ( | ) | const |
|
overrideprivatevirtual |
initialize the alpha1/2 cache - needed also for object persistency
Reimplemented from Trk::SurfaceBounds.
Definition at line 45 of file RotatedDiamondBounds.cxx.
|
overridevirtual |
|
overridevirtual |
The orientation of the Diamond is according to the figure.
Implements Trk::SurfaceBounds.
Definition at line 155 of file RotatedDiamondBounds.cxx.
|
private |
inside() method for a full symmetric diamond
use basic calculation of a straight line
Definition at line 162 of file RotatedDiamondBounds.cxx.
|
overridevirtual |
This method checks inside bounds in loc1.
Implements Trk::SurfaceBounds.
|
overridevirtual |
This method checks inside bounds in loc2.
Implements Trk::SurfaceBounds.
double Trk::RotatedDiamondBounds::maxHalflengthX | ( | ) | const |
This method returns the halflength in X at maximal Y (first coordinate of local surface frame)
double Trk::RotatedDiamondBounds::medHalflengthX | ( | ) | const |
This method returns the (maximal) halflength in X (first coordinate of local surface frame)
|
overridevirtual |
Minimal distance to boundary ( > 0 if outside and <=0 if inside)
Implements Trk::SurfaceBounds.
Definition at line 203 of file RotatedDiamondBounds.cxx.
double Trk::RotatedDiamondBounds::minHalflengthX | ( | ) | const |
This method returns the halflength in X at minimal Y (first coordinate of local surface frame)
|
inlinevirtualinherited |
Non-Equality operator.
Reimplemented in Trk::InvalidBounds.
Definition at line 141 of file SurfaceBounds.h.
|
default |
Assignment operator.
|
defaultnoexcept |
Assignment operator.
|
overridevirtual |
Equality operator.
Implements Trk::SurfaceBounds.
Definition at line 55 of file RotatedDiamondBounds.cxx.
|
overridevirtual |
This method returns the maximal extension on the local plane.
Implements Trk::SurfaceBounds.
|
inlineprotectedinherited |
Swap method to be called from DiscBounds or TrapezoidalBounds.
Definition at line 133 of file SurfaceBounds.h.
|
inlineoverridevirtual |
Return the bounds type.
Implements Trk::SurfaceBounds.
Definition at line 84 of file RotatedDiamondBounds.h.
|
friend |
Definition at line 136 of file RotatedDiamondBounds.h.
|
private |
Definition at line 146 of file RotatedDiamondBounds.h.
|
private |
Definition at line 147 of file RotatedDiamondBounds.h.
|
private |
Internal parameters stored in the geometry.
Definition at line 145 of file RotatedDiamondBounds.h.