9#include <tracking/trackFindingCDC/geometry/Vector2D.h>
11#include <tracking/trackFindingCDC/numerics/ERightLeft.h>
12#include <tracking/trackFindingCDC/numerics/ERotation.h>
13#include <tracking/trackFindingCDC/numerics/ESign.h>
22 namespace TrackFindingCDC {
169 return connection.
unit();
A two dimensional circle in its natural representation using center and radius as parameters.
Circle2D reversed() const
Returns a copy of the line with the reversed orientation.
Vector2D tangential() const
Gives the tangential vector at the closest approach to the origin / at the perigee.
double absDistance(const Vector2D &point) const
Returns the euclidean distance of the point to the circle line.
double m_radius
Memory for the signed radius.
double openingAngle(const Vector2D &from, const Vector2D &to) const
Calculates the angle between two points as seen from the center of the circle.
Vector2D perigee() const
Returns the point closest to the origin.
Vector2D gradient(const Vector2D &point) const
Gradient of the distance field.
Vector2D tangential(const Vector2D &point) const
Tangential vector to the circle near the given position.
double arcLengthBetween(const Vector2D &from, const Vector2D &to) const
Calculates the arc length between two points of closest approach on the circle.
void reverse()
Flips orientation the circle in place.
double radius() const
Getter for the signed radius.
Vector2D normal(const Vector2D &point) const
Normal vector to the circle near the given position.
Vector2D m_center
Memory for the central point.
double distance(const Vector2D &point) const
Calculates the signed distance of the point to the circle line.
void passiveMoveBy(const Vector2D &by)
Passively move the coordinate system in place by the given vector.
bool isLeft(const Vector2D &rhs) const
Return if the point given is left of the circle line.
bool isRight(const Vector2D &rhs) const
Return if the point given is right of the circle line.
Circle2D conformalTransformed() const
Returns a copy of the circle in conformal space.
void moveAlongFirst(const double first)
Actively moves the circle in the direction given in place along the first coordinate.
double impact() const
Returns the signed distance to the origin.
Vector2D center() const
Getter for the central point of the circle.
Circle2D()
Default constructor for ROOT compatibility. Creates an invalid circle.
void passiveMoveAlongFirst(const double first)
Passively move the coordinate system in place along the first coordinate.
double radiusSquared() const
Getter for the squared radius.
void conformalTransform()
Transforms the circle to conformal space inplace.
void moveBy(const Vector2D &by)
Actively moves the circle in the direction given in place by the vector given.
ERightLeft isRightOrLeft(const Vector2D &point) const
Return if the point given is right or left of the line.
double absRadius() const
Getter for the absolute radius.
Vector2D closest(const Vector2D &point) const
Calculates the point of closest approach on the line to the point.
double tangentialPhi() const
Gives to azimuth phi of the direction of flight at the perigee.
void passiveMoveAlongSecond(const double second)
Passively move the coordinate system in place along the second coordinate.
Circle2D(const Vector2D ¢er, const double radius)
Constructs a circle with given center and radius/ orientation as given by the signedRadius.
ERotation orientation() const
Indicates if the circle is to be interpreted counterclockwise or clockwise.
Circle2D(const Vector2D ¢er, const double absRadius, const ERotation ccwInfo)
Constructs a circle with given center, absolute value of the radius and orientation.
void moveAlongSecond(const double second)
Actively moves the circle in the direction given in place along the second coordinate.
A two dimensional vector which is equipped with functions for correct handling of orientation relate...
void setSecond(const double second)
Setter for the second coordinate.
double normalizeTo(const double toLength)
Normalizes the vector to the given length.
double phi() const
Gives the azimuth angle being the angle to the x axes ( range -M_PI to M_PI )
double second() const
Getter for the second coordinate.
double normSquared() const
Calculates .
Vector2D orthogonal() const
Orthogonal vector to the counterclockwise direction.
double first() const
Getter for the first coordinate.
Vector2D unit() const
Returns a unit vector colaligned with this.
double angleWith(const Vector2D &rhs) const
The angle between this and rhs.
void setFirst(const double first)
Setter for the first coordinate.
ERightLeft
Enumeration to represent the distinct possibilities of the right left passage.
ERotation
Enumeration to represent the distinct possibilities of the right left passage information.
Abstract base class for different kinds of events.