|
ATLAS Offline Software
|
Go to the documentation of this file.
9 #ifndef TRKSURFACES_TRAPEZOIDBOUNDS_H
10 #define TRKSURFACES_TRAPEZOIDBOUNDS_H
21 #ifdef TRKDETDESCR_USEFLOATPRECISON
108 virtual double r()
const override;
140 virtual bool inside(
const Amg::Vector2D& locpo,
double tol1 = 0.,
double tol2 = 0.)
const override;
160 virtual MsgStream&
dump(MsgStream& sl)
const override;
163 virtual std::ostream&
dump(std::ostream& sl)
const override;
166 friend class ::TrapezoidBoundsCnv_p1;
184 #endif // TRKSURFACES_TRAPEZOIDBOUNDS_H
virtual ~TrapezoidBounds()=default
Destructor.
double maxHalflengthX() const
This method returns the maximal halflength in X (first coordinate of local surface frame)
bool insideFull(const Amg::Vector2D &locpo, double tol1=0., double tol2=0.) const
inside() method for a full symmetric trapezoid
double alpha() const
This method returns the opening angle alpha in point A (negative local phi)
std::vector< TDD_real_t > m_boundValues
virtual bool insideLoc2(const Amg::Vector2D &locpo, double tol2=0.) const override
This method checks inside bounds in loc2.
virtual double minDistance(const Amg::Vector2D &pos) const override
Minimal distance to boundary ( > 0 if outside and <=0 if inside)
Eigen::Matrix< double, 2, 1 > Vector2D
double halflengthY() const
This method returns the halflength in Y (second coordinate of local surface frame)
virtual bool inside(const Amg::Vector2D &locpo, double tol1=0., double tol2=0.) const override
The orientation of the Trapezoid is according to the figure above, in words: the shorter of the two p...
TrapezoidBounds & operator=(const TrapezoidBounds &sbo)=default
Assignment operator.
double minHalflengthX() const
This method returns the minimal halflength in X (first coordinate of local surface frame)
double minHalflengthPhi() const
This method returns the minimal halflength in phi (first coordinate of local surface frame)
virtual TrapezoidBounds * clone() const override
Virtual constructor.
static bool isAbove(const Amg::Vector2D &locpo, double tol1, double tol2, double k, double d)
isAbove() method for checking whether a point lies above or under a straight line
virtual bool operator==(const SurfaceBounds &trabo) const override
Equality operator.
TrapezoidBounds(TrapezoidBounds &&trabo) noexcept=default
Move constructor.
virtual double r() const override
This method returns the maximal extension on the local plane.
TrapezoidBounds(const TrapezoidBounds &trabo)=default
Copy constructor.
Ensure that the ATLAS eigen extensions are properly loaded.
double halflengthEta() const
This method returns the halflength in eta (second coordinate of local surface frame)
TrapezoidBounds()
Default Constructor, needed for persistency.
TrapezoidBounds & operator=(TrapezoidBounds &&sbo) noexcept=default
Move Assignment operator.
virtual MsgStream & dump(MsgStream &sl) const override
Output Method for MsgStream.
virtual bool insideLoc1(const Amg::Vector2D &locpo, double tol1=0.) const override
This method checks inside bounds in loc1.
double maxHalflengthPhi() const
This method returns the maximal halflength in phi (first coordinate of local surface frame)
double beta() const
This method returns the opening angle beta in point B (positive local phi)
bool insideExclude(const Amg::Vector2D &locpo, double tol1=0., double tol2=0.) const
inside() method for the triangular exclude area for an arbitrary trapezoid
virtual BoundsType type() const override
Return the type of the bounds for persistency.