ATLAS Offline Software
|
#include <EllipseBounds.h>
Public Types | |
enum | BoundValues { bv_rMinX = 0, bv_rMinY = 1, bv_rMaxX = 2, bv_rMaxY = 3, bv_averagePhi = 4, bv_halfPhiSector = 5, bv_length = 6 } |
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 | |
EllipseBounds () | |
Default Constructor. More... | |
EllipseBounds (const EllipseBounds &discbo)=default | |
Copy constructor. More... | |
EllipseBounds & | operator= (const EllipseBounds &discbo)=default |
Assignment operator. More... | |
EllipseBounds (EllipseBounds &&discbo) noexcept=default | |
Move constructor. More... | |
EllipseBounds & | operator= (EllipseBounds &&discbo) noexcept=default |
Move assignment operator. More... | |
virtual | ~EllipseBounds ()=default |
Destructor. More... | |
EllipseBounds (double minrad1, double minrad2, double maxrad1, double maxrad2, double hphisec=M_PI) | |
Constructor for full of an ellipsoid disc around phi=0. More... | |
EllipseBounds (double minrad1, double minrad2, double maxrad1, double maxrad2, double avephi, double hphisec) | |
Constructor for an ellipsoid disc around phi != 0. More... | |
virtual bool | operator== (const SurfaceBounds &sbo) const override |
Equality operator. More... | |
virtual EllipseBounds * | clone () const override final |
Virtual constructor. More... | |
virtual BoundsType | type () const override final |
Return the type of the bounds for persistency. More... | |
virtual bool | inside (const Amg::Vector2D &locpo, double tol1=0., double tol2=0.) const override final |
This method checks if the point given in the local coordinates is between two ellipsoids if only tol1 is given and additional in the phi sector is tol2 is given. More... | |
virtual bool | inside (const Amg::Vector2D &locpo, const BoundaryCheck &bchk) const override final |
virtual bool | insideLoc1 (const Amg::Vector2D &locpo, double tol1=0.) const override final |
Check for inside first local coordinate. More... | |
virtual bool | insideLoc2 (const Amg::Vector2D &locpo, double tol2=0.) const override final |
Check for inside second local coordinate. More... | |
virtual double | minDistance (const Amg::Vector2D &pos) const override final |
Minimal distance to boundary ( > 0 if outside and <=0 if inside) More... | |
double | rMinX () const |
This method returns first inner radius. More... | |
double | rMinY () const |
This method returns second inner radius. More... | |
double | rMaxX () const |
This method returns first outer radius. More... | |
double | rMaxY () const |
This method returns second outer radius. More... | |
virtual double | r () const override final |
This method returns the maximum expansion on the plane (=max(rMaxX,rMaxY)) More... | |
double | averagePhi () const |
This method returns the average phi. More... | |
double | halfPhiSector () const |
This method returns the halfPhiSector which is covered by the disc. 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... | |
virtual void | initCache () |
virtual initCache method for object persistency More... | |
Private Member Functions | |
double | square (double x) const |
helper function for squaring More... | |
Private Attributes | |
std::vector< TDD_real_t > | m_boundValues |
The internal storage of the bounds can be float/double. More... | |
Class to describe the bounds for a planar EllipseSurface, i.e. the surface between two ellipses. By providing an argument for hphisec, the bounds can be restricted to a phirange around the center position.
Definition at line 37 of file EllipseBounds.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.
Enumerator | |
---|---|
bv_rMinX | |
bv_rMinY | |
bv_rMaxX | |
bv_rMaxY | |
bv_averagePhi | |
bv_halfPhiSector | |
bv_length |
Definition at line 41 of file EllipseBounds.h.
Trk::EllipseBounds::EllipseBounds | ( | ) |
|
default |
Copy constructor.
|
defaultnoexcept |
Move constructor.
|
virtualdefault |
Destructor.
Trk::EllipseBounds::EllipseBounds | ( | double | minrad1, |
double | minrad2, | ||
double | maxrad1, | ||
double | maxrad2, | ||
double | hphisec = M_PI |
||
) |
Constructor for full of an ellipsoid disc around phi=0.
Definition at line 24 of file EllipseBounds.cxx.
Trk::EllipseBounds::EllipseBounds | ( | double | minrad1, |
double | minrad2, | ||
double | maxrad1, | ||
double | maxrad2, | ||
double | avephi, | ||
double | hphisec | ||
) |
|
inline |
This method returns the average phi.
Definition at line 213 of file EllipseBounds.h.
|
inlinefinaloverridevirtual |
|
overridevirtual |
Output Method for MsgStream.
Implements Trk::SurfaceBounds.
Definition at line 172 of file EllipseBounds.cxx.
|
overridevirtual |
Output Method for std::ostream.
Implements Trk::SurfaceBounds.
Definition at line 184 of file EllipseBounds.cxx.
|
inline |
This method returns the halfPhiSector which is covered by the disc.
Definition at line 218 of file EllipseBounds.h.
|
inlineprotectedvirtualinherited |
virtual initCache method for object persistency
Reimplemented in Trk::RotatedTrapezoidBounds, Trk::ConeBounds, Trk::RotatedDiamondBounds, and Trk::DiamondBounds.
Definition at line 129 of file SurfaceBounds.h.
|
inlinefinaloverridevirtual |
Implements Trk::SurfaceBounds.
Definition at line 158 of file EllipseBounds.h.
|
inlinefinaloverridevirtual |
This method checks if the point given in the local coordinates is between two ellipsoids if only tol1 is given and additional in the phi sector is tol2 is given.
Implements Trk::SurfaceBounds.
Definition at line 140 of file EllipseBounds.h.
|
inlinefinaloverridevirtual |
Check for inside first local coordinate.
Implements Trk::SurfaceBounds.
Definition at line 164 of file EllipseBounds.h.
|
inlinefinaloverridevirtual |
Check for inside second local coordinate.
Implements Trk::SurfaceBounds.
Definition at line 178 of file EllipseBounds.h.
|
finaloverridevirtual |
Minimal distance to boundary ( > 0 if outside and <=0 if inside)
Implements Trk::SurfaceBounds.
Definition at line 98 of file EllipseBounds.cxx.
|
inlinevirtualinherited |
Non-Equality operator.
Reimplemented in Trk::InvalidBounds.
Definition at line 141 of file SurfaceBounds.h.
|
default |
Assignment operator.
|
defaultnoexcept |
Move assignment operator.
|
overridevirtual |
|
inlinefinaloverridevirtual |
This method returns the maximum expansion on the plane (=max(rMaxX,rMaxY))
Implements Trk::SurfaceBounds.
Definition at line 208 of file EllipseBounds.h.
|
inline |
This method returns first outer radius.
Definition at line 198 of file EllipseBounds.h.
|
inline |
This method returns second outer radius.
Definition at line 203 of file EllipseBounds.h.
|
inline |
This method returns first inner radius.
Definition at line 188 of file EllipseBounds.h.
|
inline |
This method returns second inner radius.
Definition at line 193 of file EllipseBounds.h.
|
inlineprivate |
|
inlineprotectedinherited |
Swap method to be called from DiscBounds or TrapezoidalBounds.
Definition at line 133 of file SurfaceBounds.h.
|
inlinefinaloverridevirtual |
Return the type of the bounds for persistency.
Implements Trk::SurfaceBounds.
Definition at line 83 of file EllipseBounds.h.
|
private |
The internal storage of the bounds can be float/double.
Definition at line 127 of file EllipseBounds.h.