|
ATLAS Offline Software
|
Go to the documentation of this file.
9 #ifndef TRKSURFACES_ANNULUSBOUNDS_H
10 #define TRKSURFACES_ANNULUSBOUNDS_H
22 #ifdef TRKDETDESCR_USEFLOATPRECISON
116 std::array<std::pair<double, double>, 4>
corners()
const;
119 virtual double r()
const override;
171 virtual MsgStream&
dump(MsgStream& sl)
const override;
174 virtual std::ostream&
dump(std::ostream& sl)
const override;
249 #include "TrkSurfaces/AnnulusBounds.icc"
250 #endif // TRKSURFACES_ANNULUSBOUNDS_H
virtual double minDistance(const Amg::Vector2D &pos) const override final
Minimal distance to boundary ( > 0 if outside and <=0 if inside)
std::vector< TDD_real_t > m_solution_L_max
double waferCentreR() const
This method returns the R-parameter from design of sensors, which is the radius that the original cen...
static double distanceToArc(const Amg::Vector2D &locpo, double R, const std::vector< TDD_real_t > &sL, const std::vector< TDD_real_t > &sR)
Distance to arc.
double maxR() const
This method returns the bigger radius.
static bool EllipseIntersectLine(const Amg::Vector2D &locpo, double h, double k, double x1, double y1, double x2, double y2)
virtual bool insideLoc1(const Amg::Vector2D &locpo, double tol1=0.) const override final
This method checks inside bounds in loc1.
Eigen::Matrix< double, 2, 1 > Vector2D
virtual bool inside(const Amg::Vector2D &locpo, double tol1=0., double tol2=0.) const override final
This method returns the opening angle alpha in point A (negative local phi)
virtual BoundsType type() const override
Return the type of the bounds for persistency.
static bool isRight(const Amg::Vector2D &locpo, double tol1, double tol2, double x1, double y1, double x2, double y2)
virtual MsgStream & dump(MsgStream &sl) const override
Output Method for MsgStream.
double phi() const
This method returns the opening angle.
static bool isLeft(const Amg::Vector2D &locpo, double tol1, double tol2, double x1, double y1, double x2, double y2)
bool const RAWDATA *ch2 const
std::vector< TDD_real_t > m_solution_R_max
static bool isAbove(const Amg::Vector2D &locpo, double tol1, double tol2, double x1, double y1, double x2, double y2)
isAbove() method for checking whether a point lies above or under a straight line
virtual AnnulusBounds * clone() const override
Virtual constructor.
virtual ~AnnulusBounds()=default
Destructor.
AnnulusBounds(AnnulusBounds &&annbo)=default
Move constructor.
AnnulusBounds()
Default Constructor, needed for persistency.
std::vector< TDD_real_t > m_solution_L_min
double minR() const
This method returns the smaller radius.
static double distanceToLine(const Amg::Vector2D &locpo, const std::vector< TDD_real_t > &P1, const std::vector< TDD_real_t > &P2)
Distance to line.
AnnulusBounds & operator=(AnnulusBounds &&sbo)=default
Move assignment.
Ensure that the ATLAS eigen extensions are properly loaded.
Definition of ATLAS Math & Geometry primitives (Amg)
virtual bool insideLoc2(const Amg::Vector2D &locpo, double tol2=0.) const override final
This method checks inside bounds in loc2.
double phiS() const
This method returns the tilt angle.
std::array< TDD_real_t, 4 > getEdgeLines() const
Returns the gradient and y-intercept of the left and right module edges.
const std::vector< TDD_real_t > & getBoundsValues()
AnnulusBounds & operator=(const AnnulusBounds &sbo)=default
Assignment operator.
AnnulusBounds(const AnnulusBounds &annbo)=default
Copy constructor.
std::vector< TDD_real_t > m_solution_R_min
std::vector< TDD_real_t > m_boundValues
std::array< std::pair< double, double >, 4 > corners() const
Returns the four corners of the bounds.
static std::vector< double > circleLineIntersection(double R, double k, double d)
Circle and line intersection.
virtual double r() const override
This method returns the maximal extension on the local plane.
bool operator==(const SurfaceBounds &annbo) const override
Equality operator.
BoundValues
NB bv_R is the radius of the wafer centre which may different from the assumed surface centre.