ECCE @ EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Acts::SurfaceBounds Class Referenceabstract

#include <acts/blob/master/Core/include/Acts/Surfaces/SurfaceBounds.hpp>

+ Inheritance diagram for Acts::SurfaceBounds:

Public Types

enum  BoundsType : int {
  eCone = 0, eCylinder = 1, eDiamond = 2, eDisc = 3,
  eEllipse = 5, eLine = 6, eRectangle = 7, eTrapezoid = 8,
  eTriangle = 9, eDiscTrapezoid = 10, eConvexPolygon = 11, eAnnulus = 12,
  eBoundless = 13, eOther = 14
}
 

Public Member Functions

virtual ~SurfaceBounds ()=default
 
virtual BoundsType type () const =0
 
virtual std::vector< double > values () const =0
 
virtual bool inside (const Vector2D &lposition, const BoundaryCheck &bcheck) const =0
 
virtual double distanceToBoundary (const Vector2D &lposition) const =0
 
virtual std::ostream & toStream (std::ostream &os) const =0
 

Detailed Description

Interface for surface bounds.

Surface bounds provide:

  • inside() checks
  • distance to boundary calculations
  • the BoundsType and a set of parameters to simplify persistency

Definition at line 26 of file SurfaceBounds.hpp.

View newest version in sPHENIX GitHub at line 26 of file SurfaceBounds.hpp

Member Enumeration Documentation

This is nested to the SurfaceBounds, as also VolumeBounds will have Bounds Type.

Enumerator:
eCone 
eCylinder 
eDiamond 
eDisc 
eEllipse 
eLine 
eRectangle 
eTrapezoid 
eTriangle 
eDiscTrapezoid 
eConvexPolygon 
eAnnulus 
eBoundless 
eOther 

Definition at line 31 of file SurfaceBounds.hpp.

View newest version in sPHENIX GitHub at line 31 of file SurfaceBounds.hpp

Constructor & Destructor Documentation

virtual Acts::SurfaceBounds::~SurfaceBounds ( )
virtualdefault

Member Function Documentation

virtual double Acts::SurfaceBounds::distanceToBoundary ( const Vector2D lposition) const
pure virtual

Minimal distance to boundary ( > 0 if outside and <=0 if inside)

Parameters
lpositionis the local position to check for the distance
Returns
is a signed distance parameter

Implemented in Acts::ConvexPolygonBounds< PolygonDynamic >, Acts::TrapezoidBounds, Acts::ConvexPolygonBounds< N >, Acts::CylinderBounds, Acts::AnnulusBounds, Acts::ConeBounds, Acts::DiamondBounds, Acts::EllipseBounds, Acts::DiscTrapezoidBounds, Acts::RectangleBounds, Acts::RadialBounds, Acts::LineBounds, Acts::InfiniteBounds, and Acts::SurfaceBoundsStub.

virtual bool Acts::SurfaceBounds::inside ( const Vector2D lposition,
const BoundaryCheck bcheck 
) const
pure virtual

Inside check for the bounds object driven by the boundary check directive Each Bounds has a method inside, which checks if a LocalPosition is inside the bounds Inside can be called without/with tolerances.

Parameters
lpositionLocal position (assumed to be in right surface frame)
bcheckboundary check directive
Returns
boolean indicator for the success of this operation

Implemented in Acts::ConvexPolygonBounds< PolygonDynamic >, Acts::TrapezoidBounds, Acts::ConvexPolygonBounds< N >, Acts::AnnulusBounds, Acts::ConeBounds, Acts::CylinderBounds, Acts::DiamondBounds, Acts::EllipseBounds, Acts::DiscTrapezoidBounds, Acts::RectangleBounds, Acts::RadialBounds, Acts::LineBounds, Acts::InfiniteBounds, and Acts::SurfaceBoundsStub.

virtual std::ostream& Acts::SurfaceBounds::toStream ( std::ostream &  os) const
pure virtual

Output Method for std::ostream, to be overloaded by child classes

Parameters
slis the outstream in which the string dump is done

Implemented in Acts::TrapezoidBounds, Acts::CylinderBounds, Acts::DiamondBounds, Acts::EllipseBounds, Acts::RectangleBounds, Acts::ConeBounds, Acts::AnnulusBounds, Acts::DiscTrapezoidBounds, Acts::RadialBounds, Acts::LineBounds, Acts::InfiniteBounds, Acts::SurfaceBoundsStub, and Acts::ConvexPolygonBoundsBase.

Referenced by Acts::operator<<().

+ Here is the caller graph for this function:

virtual BoundsType Acts::SurfaceBounds::type ( ) const
pure virtual

Return the bounds type - for persistency optimization

Returns
is a BoundsType enum

Implemented in Acts::ConvexPolygonBounds< PolygonDynamic >, Acts::ConvexPolygonBounds< N >, Acts::ConeBounds, Acts::AnnulusBounds, Acts::CylinderBounds, Acts::DiamondBounds, Acts::EllipseBounds, Acts::RectangleBounds, Acts::DiscTrapezoidBounds, Acts::TrapezoidBounds, Acts::RadialBounds, Acts::LineBounds, Acts::SurfaceBoundsStub, and Acts::InfiniteBounds.

Referenced by Acts::operator==().

+ Here is the caller graph for this function:

virtual std::vector<double> Acts::SurfaceBounds::values ( ) const
pure virtual

Access method for bound values, this is a dynamically sized vector containing the parameters needed to describe these bounds

Returns
of the stored values for this SurfaceBounds object

Implemented in Acts::ConeBounds, Acts::AnnulusBounds, Acts::CylinderBounds, Acts::DiamondBounds, Acts::EllipseBounds, Acts::DiscTrapezoidBounds, Acts::RectangleBounds, Acts::RadialBounds, Acts::TrapezoidBounds, Acts::LineBounds, Acts::ConvexPolygonBoundsBase, Acts::InfiniteBounds, and Acts::SurfaceBoundsStub.

Referenced by Acts::operator==().

+ Here is the caller graph for this function:


The documentation for this class was generated from the following file: