|
ATLAS Offline Software
|
Go to the documentation of this file.
9 #ifndef TRKSURFACES_ROTATEDDIAMONDDBOUNDS_H
10 #define TRKSURFACES_ROTATEDDIAMONDDBOUNDS_H
21 #ifdef TRKDETDESCR_USEFLOATPRECISON
75 RotatedDiamondBounds(
double minhalex,
double medhalex,
double maxhalex,
double haley1,
double haley2);
100 virtual double r()
const override;
109 virtual bool inside(
const Amg::Vector2D& locpo,
double tol1 = 0.,
double tol2 = 0.)
const override;
130 virtual MsgStream&
dump(MsgStream& sl)
const override;
133 virtual std::ostream&
dump(std::ostream& sl)
const override;
136 friend class ::RotatedDiamondBoundsCnv_p1;
153 #endif // TRKSURFACES_DIAMONDBOUNDS_H
Eigen::Matrix< double, 2, 1 > Vector2D
double halflengthY1() const
This method returns the halflength in Y of trapezoid at negative/positive Y (second coordinate)
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.
virtual double r() const override
This method returns the maximal extension on the local plane.
double medHalflengthX() const
This method returns the (maximal) halflength in X (first coordinate of local surface frame)
virtual void initCache() override
initialize the alpha1/2 cache - needed also for object persistency
virtual ~RotatedDiamondBounds()=default
Destructor.
double alpha2() const
This method returns the opening angle alpha in point A'
virtual double minDistance(const Amg::Vector2D &pos) const override
Minimal distance to boundary ( > 0 if outside and <=0 if inside)
double alpha1() const
This method returns the opening angle alpha in point A
double maxHalflengthX() const
This method returns the halflength in X at maximal Y (first coordinate of local surface frame)
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.
RotatedDiamondBounds * clone() const override
Virtual constructor.
std::vector< TDD_real_t > m_boundValues
Internal parameters stored in the geometry.
Ensure that the ATLAS eigen extensions are properly loaded.
double halflengthY2() const
virtual bool insideLoc2(const Amg::Vector2D &locpo, double tol2=0.) const override
This method checks inside bounds in loc2.
BoundValues
BoundValues for better readability.
RotatedDiamondBounds(RotatedDiamondBounds &&diabo) noexcept=default
Move constructor.
RotatedDiamondBounds & operator=(RotatedDiamondBounds &&sbo) noexcept=default
Assignment operator.
bool insideFull(const Amg::Vector2D &locpo, double tol1=0., double tol2=0.) const
inside() method for a full symmetric diamond
double minHalflengthX() const
This method returns the halflength in X at minimal Y (first coordinate of local surface frame)
RotatedDiamondBounds()
Default Constructor, needed for persistency.
virtual BoundsType type() const override
Return the bounds type.
RotatedDiamondBounds(const RotatedDiamondBounds &diabo)=default
Copy constructor.
RotatedDiamondBounds & operator=(const RotatedDiamondBounds &sbo)=default
Assignment operator.
virtual bool operator==(const SurfaceBounds &diabo) const override
Equality operator.