ATLAS Offline Software
|
#include <SurfaceBounds.h>
Inherited by Trk::AnnulusBounds, Trk::AnnulusBoundsPC, Trk::ConeBounds, Trk::CylinderBounds, Trk::DiamondBounds, Trk::DiscBounds, Trk::DiscTrapezoidalBounds, Trk::EllipseBounds, Trk::InvalidBounds, Trk::NoBounds, Trk::RectangleBounds, Trk::RotatedDiamondBounds, Trk::RotatedTrapezoidBounds, Trk::TrapezoidBounds, and Trk::TriangleBounds.
Public Types | |
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 | |
SurfaceBounds ()=default | |
Default Constructor. More... | |
SurfaceBounds (const SurfaceBounds &)=default | |
SurfaceBounds & | operator= (const SurfaceBounds &)=default |
SurfaceBounds (SurfaceBounds &&) noexcept=default | |
SurfaceBounds & | operator= (SurfaceBounds &&) noexcept=default |
virtual | ~SurfaceBounds ()=default |
Destructor. More... | |
virtual SurfaceBounds * | clone () const =0 |
clone() method to make deep copy in Surface copy constructor and for assigment operator of the Surface class. More... | |
virtual bool | operator== (const SurfaceBounds &sb) const =0 |
Equality operator. More... | |
virtual bool | operator!= (const SurfaceBounds &sb) const |
Non-Equality operator. More... | |
virtual BoundsType | type () const =0 |
Return the bounds type - for persistency optimization. More... | |
virtual bool | inside (const Amg::Vector2D &locpo, double tol1=0., double tol2=0.) const =0 |
Each Bounds has a method inside, which checks if a LocalPosition is inside the bounds. More... | |
virtual bool | inside (const Amg::Vector2D &locpo, const BoundaryCheck &bchk) const =0 |
virtual bool | insideLoc1 (const Amg::Vector2D &locpo, double tol1=0.) const =0 |
Extend the interface to for single inside Loc 1 / Loc2 tests. More... | |
virtual bool | insideLoc2 (const Amg::Vector2D &locpo, double tol2=0.) const =0 |
Extend the interface to for single inside Loc 1 / Loc2 tests. More... | |
virtual double | minDistance (const Amg::Vector2D &pos) const =0 |
Minimal distance to boundary ( > 0 if outside and <=0 if inside) More... | |
virtual double | r () const =0 |
Interface method for the maximal extension or the radius. More... | |
virtual MsgStream & | dump (MsgStream &sl) const =0 |
Output Method for MsgStream, to be overloaded by child classes. More... | |
virtual std::ostream & | dump (std::ostream &sl) const =0 |
Output Method for std::ostream, to be overloaded by child classes. 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... | |
Abstract base class for surface bounds to be specified.
Surface bounds provide:
Definition at line 46 of file SurfaceBounds.h.
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.
|
default |
Default Constructor.
|
default |
|
defaultnoexcept |
|
virtualdefault |
Destructor.
|
pure virtual |
clone() method to make deep copy in Surface copy constructor and for assigment operator of the Surface class.
Implemented in Trk::DiscBounds, Trk::EllipseBounds, Trk::NoBounds, Trk::CylinderBounds, Trk::ConeBounds, Trk::AnnulusBoundsPC, Trk::DiscTrapezoidalBounds, Trk::TriangleBounds, Trk::RotatedTrapezoidBounds, Trk::TrapezoidBounds, Trk::AnnulusBounds, Trk::RotatedDiamondBounds, Trk::RectangleBounds, Trk::DiamondBounds, and Trk::InvalidBounds.
|
pure virtual |
Output Method for MsgStream, to be overloaded by child classes.
Implemented in Trk::RotatedTrapezoidBounds, Trk::DiamondBounds, Trk::NoBounds, Trk::AnnulusBounds, Trk::TrapezoidBounds, Trk::AnnulusBoundsPC, Trk::ConeBounds, Trk::DiscTrapezoidalBounds, Trk::CylinderBounds, Trk::RotatedDiamondBounds, Trk::DiscBounds, Trk::EllipseBounds, Trk::RectangleBounds, Trk::TriangleBounds, and Trk::InvalidBounds.
|
pure virtual |
Output Method for std::ostream, to be overloaded by child classes.
Implemented in Trk::RotatedTrapezoidBounds, Trk::DiamondBounds, Trk::NoBounds, Trk::AnnulusBounds, Trk::TrapezoidBounds, Trk::AnnulusBoundsPC, Trk::ConeBounds, Trk::DiscTrapezoidalBounds, Trk::CylinderBounds, Trk::RotatedDiamondBounds, Trk::DiscBounds, Trk::EllipseBounds, Trk::RectangleBounds, Trk::TriangleBounds, and Trk::InvalidBounds.
|
inlineprotectedvirtual |
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.
|
pure virtual |
Implemented in Trk::ConeBounds, Trk::AnnulusBounds, Trk::RotatedTrapezoidBounds, Trk::AnnulusBoundsPC, Trk::DiamondBounds, Trk::CylinderBounds, Trk::DiscTrapezoidalBounds, Trk::DiscBounds, Trk::TriangleBounds, Trk::EllipseBounds, Trk::RectangleBounds, Trk::NoBounds, Trk::TrapezoidBounds, Trk::RotatedDiamondBounds, and Trk::InvalidBounds.
|
pure virtual |
Each Bounds has a method inside, which checks if a LocalPosition is inside the bounds.
Inside can be called without/with tolerances.
Implemented in Trk::AnnulusBounds, Trk::RotatedTrapezoidBounds, Trk::DiamondBounds, Trk::AnnulusBoundsPC, Trk::DiscTrapezoidalBounds, Trk::DiscBounds, Trk::TriangleBounds, Trk::EllipseBounds, Trk::RectangleBounds, Trk::NoBounds, Trk::TrapezoidBounds, Trk::RotatedDiamondBounds, Trk::CylinderBounds, Trk::ConeBounds, and Trk::InvalidBounds.
|
pure virtual |
Extend the interface to for single inside Loc 1 / Loc2 tests.
Implemented in Trk::AnnulusBounds, Trk::RotatedTrapezoidBounds, Trk::DiamondBounds, Trk::AnnulusBoundsPC, Trk::CylinderBounds, Trk::ConeBounds, Trk::DiscTrapezoidalBounds, Trk::DiscBounds, Trk::TriangleBounds, Trk::EllipseBounds, Trk::RectangleBounds, Trk::NoBounds, Trk::TrapezoidBounds, Trk::RotatedDiamondBounds, and Trk::InvalidBounds.
|
pure virtual |
Extend the interface to for single inside Loc 1 / Loc2 tests.
Implemented in Trk::AnnulusBounds, Trk::RotatedTrapezoidBounds, Trk::DiamondBounds, Trk::AnnulusBoundsPC, Trk::CylinderBounds, Trk::ConeBounds, Trk::DiscTrapezoidalBounds, Trk::DiscBounds, Trk::TriangleBounds, Trk::EllipseBounds, Trk::RectangleBounds, Trk::NoBounds, Trk::TrapezoidBounds, Trk::RotatedDiamondBounds, and Trk::InvalidBounds.
|
pure virtual |
Minimal distance to boundary ( > 0 if outside and <=0 if inside)
Implemented in Trk::AnnulusBounds, Trk::RotatedTrapezoidBounds, Trk::DiamondBounds, Trk::CylinderBounds, Trk::DiscTrapezoidalBounds, Trk::DiscBounds, Trk::TriangleBounds, Trk::EllipseBounds, Trk::RectangleBounds, Trk::NoBounds, Trk::TrapezoidBounds, Trk::RotatedDiamondBounds, Trk::ConeBounds, Trk::AnnulusBoundsPC, and Trk::InvalidBounds.
|
inlinevirtual |
Non-Equality operator.
Reimplemented in Trk::InvalidBounds.
Definition at line 141 of file SurfaceBounds.h.
|
default |
|
defaultnoexcept |
|
pure virtual |
Equality operator.
Implemented in Trk::RotatedTrapezoidBounds, Trk::TrapezoidBounds, Trk::RectangleBounds, Trk::NoBounds, Trk::CylinderBounds, Trk::ConeBounds, Trk::DiscTrapezoidalBounds, Trk::TriangleBounds, Trk::DiscBounds, Trk::EllipseBounds, Trk::AnnulusBoundsPC, Trk::RotatedDiamondBounds, Trk::DiamondBounds, Trk::AnnulusBounds, and Trk::InvalidBounds.
|
pure virtual |
Interface method for the maximal extension or the radius.
Implemented in Trk::CylinderBounds, Trk::DiscBounds, Trk::EllipseBounds, Trk::TriangleBounds, Trk::DiamondBounds, Trk::NoBounds, Trk::AnnulusBoundsPC, Trk::AnnulusBounds, Trk::ConeBounds, Trk::DiscTrapezoidalBounds, Trk::RectangleBounds, Trk::TrapezoidBounds, Trk::RotatedDiamondBounds, Trk::RotatedTrapezoidBounds, and Trk::InvalidBounds.
|
inlineprotected |
Swap method to be called from DiscBounds or TrapezoidalBounds.
Definition at line 133 of file SurfaceBounds.h.
|
pure virtual |
Return the bounds type - for persistency optimization.
Implemented in Trk::CylinderBounds, Trk::DiscTrapezoidalBounds, Trk::TriangleBounds, Trk::DiscBounds, Trk::EllipseBounds, Trk::DiamondBounds, Trk::RectangleBounds, Trk::ConeBounds, Trk::AnnulusBoundsPC, Trk::RotatedTrapezoidBounds, Trk::RotatedDiamondBounds, Trk::TrapezoidBounds, Trk::AnnulusBounds, Trk::InvalidBounds, and Trk::NoBounds.