![]() |
Belle II Software development
|
Extension of the generalized circle also caching the perigee coordinates. More...
#include <PerigeeCircle.h>
Public Member Functions | |
| PerigeeCircle () | |
| Default constructor for ROOT compatibility. | |
| PerigeeCircle (double curvature, const ROOT::Math::XYVector &phi0Vec, double impact) | |
| Constructor from the perigee parameters. | |
| PerigeeCircle (double curvature, double phi0, double impact) | |
| Constructor from the perigee parameters. | |
| PerigeeCircle (const PerigeeParameters &perigeeParameters) | |
| Constructor from the perigee parameters. | |
| PerigeeCircle (const Line2D &n012) | |
| Constructor from a two dimensional line. | |
| PerigeeCircle (const GeneralizedCircle &n0123) | |
| Constructor promoting the generalized circle. | |
| PerigeeCircle (const Circle2D &circle) | |
| Constructor from a two dimensional circle in center / radius representation. | |
| void | invalidate () |
| Sets all circle parameters to zero. | |
| bool | isInvalid () const |
| Indicates if all circle parameters are zero. | |
| bool | isValid () const |
| Indicates if the combination of the circle parameters makes up a valid circle. | |
| void | reverse () |
| Flips the orientation of the circle in place. | |
| PerigeeCircle | reversed () const |
| Returns a copy of the circle with opposite orientation. | |
| void | conformalTransform () |
| Transforms the generalized circle to conformal space inplace. | |
| PerigeeCircle | conformalTransformed () const |
| Returns a copy of the circle in conformal space. | |
| void | passiveMoveBy (const ROOT::Math::XYVector &by) |
| Moves the coordinates system by the given vector. Updates perigee parameters in place. | |
| PerigeeJacobian | passiveMoveByJacobian (const ROOT::Math::XYVector &by) const |
| Computes the Jacobi matrix for a move of the coordinate system by the given vector. | |
| void | passiveMoveByJacobian (const ROOT::Math::XYVector &by, PerigeeJacobian &jacobian) const |
| Puts the Jacobi matrix for a move of the coordinate system by the given vector in the given matrix as an output argument. | |
| ROOT::Math::XYVector | atArcLength (double arcLength) const |
| Calculates the point, which lies at the give perpendicular travel distance (counted from the perigee) | |
| double | arcLengthTo (const ROOT::Math::XYVector &point) const |
| Calculates the arc length between the perigee and the given point. | |
| double | arcLengthBetween (const ROOT::Math::XYVector &from, const ROOT::Math::XYVector &to) const |
| Calculates the arc length between two points of closest approach on the circle. | |
| double | arcLengthToCylindricalR (double cylindricalR) const |
| Calculates the two dimensional arc length till the cylindrical radius is reached If the radius can not be reached return NAN. | |
| std::pair< ROOT::Math::XYVector, ROOT::Math::XYVector > | atCylindricalR (double cylindricalR) const |
| Calculates the two points with the given cylindrical radius on the generalised circle. | |
| ROOT::Math::XYVector | atCylindricalRForwardOf (const ROOT::Math::XYVector &startPoint, double cylindricalR) const |
| Approach on the circle with the given cylindrical radius that lies in the forward direction of a start point. | |
| EForwardBackward | isForwardOrBackwardOf (const ROOT::Math::XYVector &from, const ROOT::Math::XYVector &to) const |
| Indicates whether to given point lies in the forward direction from the perigee. | |
| EForwardBackward | isForwardOrBackward (const ROOT::Math::XYVector &to) const |
| Indicates whether to given point lies in the forward direction from the perigee. | |
| ROOT::Math::XYVector | chooseNextForwardOf (const ROOT::Math::XYVector &start, const ROOT::Math::XYVector &end1, const ROOT::Math::XYVector &end2) const |
| Returns the one of two end point which is first reached from the given start if one strictly follows the forward direction of the circle. | |
| ROOT::Math::XYVector | closest (const ROOT::Math::XYVector &point) const |
| Calculates the point of closest approach on the circle to the given point. | |
| double | distance (const ROOT::Math::XYVector &point) const |
| Getter for the proper signed distance of the point to the circle. | |
| double | distance (double fastDistance) const |
| Helper function to translate the linearised distance to the proper distance. | |
| double | fastDistance (const ROOT::Math::XYVector &point) const |
| Getter for the linearised distance measure to a point. | |
| double | fastImpact () const |
| Getter for the linearised distance to the origin. | |
| double | fastDistance (double distance) const |
| Helper function to translate the proper distance to the linearized distance measure of the circle retaining the sign of the distance. | |
| ERightLeft | isRightOrLeft (const ROOT::Math::XYVector &point) const |
| Indicates if the point is on the right or left side of the circle. | |
| bool | isLine () const |
| Indicates if the perigee parameters represent a line. | |
| bool | isCircle () const |
| Indicates if the perigee parameters represent a closed circle. | |
| ERotation | orientation () const |
| Getter for the orientation of the circle. | |
| ROOT::Math::XYVector | gradient (const ROOT::Math::XYVector &point) const |
| Gradient of the distance field, hence indicates the direction of increasing distance. | |
| ROOT::Math::XYVector | normal (const ROOT::Math::XYVector &point) const |
| Unit normal vector from the circle to the given point. | |
| ROOT::Math::XYVector | tangential (const ROOT::Math::XYVector &point) const |
| Tangential vector to the circle near the given position. | |
| const ROOT::Math::XYVector & | tangential () const |
| Getter for the tangtial vector at the perigee. | |
| ROOT::Math::XYVector | perigee () const |
| Getter for the perigee point. | |
| ROOT::Math::XYVector | center () const |
| Getter for the center of the circle. If it was a line both components will be infinity. | |
| ROOT::Math::XYVector | apogee () const |
| Getter for the apogee of the circle. If it was a line both components will be infinity. | |
| double | minimalCylindricalR () const |
| Gives the minimal cylindrical radius the circle reaches (unsigned) | |
| double | maximalCylindricalR () const |
| Gives the maximal cylindrical radius the circle reaches. | |
| double | arcLengthPeriod () const |
| Getter for the arc length for a full round of the circle. | |
| double | perimeter () const |
| Gives the signed perimeter of the circle. | |
| double | radius () const |
| Gives the signed radius of the circle. If it was a line this will be infinity. | |
| double | absRadius () const |
| Gives the signed radius of the circle. If it was a line this will be infinity. | |
| void | setCenterAndRadius (const ROOT::Math::XYVector ¢er, double absRadius, ERotation orientation=ERotation::c_CounterClockwise) |
| Setter for the circle center and radius. | |
| double | n0 () const |
| Getter for the generalised circle parameter n0. | |
| ROOT::Math::XYVector | n12 () const |
| Getter for the generalised circle parameters n1 and n2. | |
| double | n1 () const |
| Getter for the generalised circle parameters n1. | |
| double | n2 () const |
| Getter for the generalised circle parameters n2. | |
| double | n3 () const |
| Getter for the generalised circle parameter n3. | |
| void | setN (double n0, double n1, double n2, double n3=0.0) |
| Setter for four generalised circle parameters. | |
| void | setN (double n0, const ROOT::Math::XYVector &n12, double n3=0.0) |
| Setter for four generalised circle parameters. | |
| void | setN (const Line2D &n012) |
| Setter for generalised circle parameters from a normal line. | |
| void | setN (const GeneralizedCircle &n0123) |
| Setter for four generalised circle parameters. | |
| double | omega () const |
| Getter for omega parameter of the common Belle2::Helix which is the wrong sign curvature. | |
| double | d0 () const |
| Getter for d0 parameter of the common Belle2::Helix representation. | |
| double | curvature () const |
| Getter for the signed curvature. | |
| double | phi0 () const |
| Getter for the azimuth angle of the direction of flight at the perigee. | |
| const ROOT::Math::XYVector & | phi0Vec () const |
| Getter for the unit vector of the direction of flight at the perigee. | |
| double | impact () const |
| Getter for the signed distance of the origin to the circle. | |
| PerigeeParameters | perigeeParameters () const |
| Getter for the three perigee parameters in the order defined by EPerigeeParameter.h. | |
| void | setCurvature (double curvature) |
| Setter for signed curvature. | |
| void | setPhi0 (double phi0) |
| Sets the azimuth angle of the direction of flight at the perigee. | |
| void | setPhi0 (const ROOT::Math::XYVector &phi0Vec) |
| Sets the unit direction of flight at the perigee. | |
| void | setImpact (double impact) |
| Sets the impact parameter of the circle. | |
| void | setPerigeeParameters (double curvature, const ROOT::Math::XYVector &phi0Vec, double impact) |
| Setter for the perigee parameters. | |
| void | setPerigeeParameters (double curvature, double phi0, double impact) |
| Setter for the perigee parameters. | |
Static Public Member Functions | |
| static PerigeeCircle | fromN (double n0, double n1, double n2, double n3=0) |
| Constructor with the four parameters of the generalized circle. | |
| static PerigeeCircle | fromN (double n0, const ROOT::Math::XYVector &n12, double n3=0) |
| Constructor with the four parameters of the generalized circle. | |
| static PerigeeCircle | fromCenterAndRadius (const ROOT::Math::XYVector ¢er, double absRadius, ERotation orientation=ERotation::c_CounterClockwise) |
| Constructor from center, radius and a optional orientation. | |
Private Member Functions | |
| PerigeeCircle (double curvature, double phi0, const ROOT::Math::XYVector &phi0Vec, double impact) | |
| Constructor taking all stored parameters for internal use. | |
| double | arcLengthAtDeltaLength (double delta, double dr) const |
| Helper method to calculate the arc length to a point at distance delta to the perigee and dr to circle. | |
| double | arcLengthAtSecantLength (double secantLength) const |
| Helper method to calculate the arc length between to points on the circle from a given direct secant length. | |
Private Attributes | |
| double | m_curvature = 0.0 |
| Memory for the signed curvature. | |
| double | m_phi0 = NAN |
| Memory for the azimuth angle of the direction of flight at the perigee. | |
| ROOT::Math::XYVector | m_phi0Vec |
| Cached unit direction of flight at the perigee. | |
| double | m_impact = 0.0 |
| Memory for the signed impact parameter. | |
Extension of the generalized circle also caching the perigee coordinates.
Definition at line 38 of file PerigeeCircle.h.
| PerigeeCircle | ( | ) |
Default constructor for ROOT compatibility.
Definition at line 41 of file PerigeeCircle.cc.
| PerigeeCircle | ( | double | curvature, |
| const ROOT::Math::XYVector & | phi0Vec, | ||
| double | impact ) |
Constructor from the perigee parameters.
The direction of travel at the perigee is given as vector.
Definition at line 46 of file PerigeeCircle.cc.
| PerigeeCircle | ( | double | curvature, |
| double | phi0, | ||
| double | impact ) |
Constructor from the perigee parameters.
The direction of travel at the perigee is given as azimuth angle
Definition at line 54 of file PerigeeCircle.cc.
|
explicit |
Constructor from the perigee parameters.
Definition at line 62 of file PerigeeCircle.cc.
|
private |
Constructor taking all stored parameters for internal use.
Nothing to do here
Definition at line 69 of file PerigeeCircle.cc.
|
explicit |
Constructor from a two dimensional line.
Definition at line 78 of file PerigeeCircle.cc.
|
explicit |
Constructor promoting the generalized circle.
Definition at line 83 of file PerigeeCircle.cc.
|
explicit |
Constructor from a two dimensional circle in center / radius representation.
Definition at line 88 of file PerigeeCircle.cc.
|
inline |
Gives the signed radius of the circle. If it was a line this will be infinity.
Definition at line 342 of file PerigeeCircle.h.
|
inline |
Getter for the apogee of the circle. If it was a line both components will be infinity.
Definition at line 306 of file PerigeeCircle.h.
|
private |
Helper method to calculate the arc length to a point at distance delta to the perigee and dr to circle.
Definition at line 265 of file PerigeeCircle.cc.
|
private |
Helper method to calculate the arc length between to points on the circle from a given direct secant length.
Definition at line 272 of file PerigeeCircle.cc.
| double arcLengthBetween | ( | const ROOT::Math::XYVector & | from, |
| const ROOT::Math::XYVector & | to ) const |
Calculates the arc length between two points of closest approach on the circle.
The arc length is signed positive for travel in orientation direction. In the circle case the arc length is between -pi*radius and pi*radius, hence the discontinuity is on the far side of the circle relative to the given from point. The points are essentially first taken to their closest approach before we take the length on the curve. For the line case the length is the distance component parallel to the line.
Definition at line 243 of file PerigeeCircle.cc.
|
inline |
Getter for the arc length for a full round of the circle.
Definition at line 324 of file PerigeeCircle.h.
| double arcLengthTo | ( | const ROOT::Math::XYVector & | point | ) | const |
Calculates the arc length between the perigee and the given point.
Definition at line 235 of file PerigeeCircle.cc.
| double arcLengthToCylindricalR | ( | double | cylindricalR | ) | const |
Calculates the two dimensional arc length till the cylindrical radius is reached If the radius can not be reached return NAN.
Note that there are two solutions which have equivalent arc lengths with different sign Always return the positive solution.
Definition at line 255 of file PerigeeCircle.cc.
| ROOT::Math::XYVector atArcLength | ( | double | arcLength | ) | const |
Calculates the point, which lies at the give perpendicular travel distance (counted from the perigee)
Definition at line 115 of file PerigeeCircle.cc.
| std::pair< ROOT::Math::XYVector, ROOT::Math::XYVector > atCylindricalR | ( | double | cylindricalR | ) | const |
Calculates the two points with the given cylindrical radius on the generalised circle.
Definition at line 279 of file PerigeeCircle.cc.
| ROOT::Math::XYVector atCylindricalRForwardOf | ( | const ROOT::Math::XYVector & | startPoint, |
| double | cylindricalR ) const |
Approach on the circle with the given cylindrical radius that lies in the forward direction of a start point.
Calculates the point on the circle with cylindrical radius cylindricalR, which is closest following the circle in the direction of positive forward orientation This is particularly useful to extraplotate into a certain layer. In case no intersection with this cylindrical radius exists the function returns ROOT::Math::XYVector(NAN,NAN)
| startPoint | Start point from which to follow in the circle in the forward direction |
| cylindricalR | Cylindrical radius of interest |
Definition at line 290 of file PerigeeCircle.cc.
|
inline |
Getter for the center of the circle. If it was a line both components will be infinity.
Definition at line 300 of file PerigeeCircle.h.
| ROOT::Math::XYVector chooseNextForwardOf | ( | const ROOT::Math::XYVector & | start, |
| const ROOT::Math::XYVector & | end1, | ||
| const ROOT::Math::XYVector & | end2 ) const |
Returns the one of two end point which is first reached from the given start if one strictly follows the forward direction of the circle.
If the generalized circle is truly a line none of the points might lie in the forward direction and ROOT::Math::XYVector(NAN,NAN) is returned.
| start | Point to start the traversal |
| end1 | One possible end point |
| end2 | Other possible end point |
Definition at line 297 of file PerigeeCircle.cc.
| ROOT::Math::XYVector closest | ( | const ROOT::Math::XYVector & | point | ) | const |
Calculates the point of closest approach on the circle to the given point.
Definition at line 314 of file PerigeeCircle.cc.
| void conformalTransform | ( | ) |
Transforms the generalized circle to conformal space inplace.
Applies the conformal map in the self-inverse from X = x / (x^2 + y^2) and Y = y / (x^2 +y^2) inplace It works most easily by the exchange of the circle parameters n0 <-> n3
Definition at line 138 of file PerigeeCircle.cc.
| PerigeeCircle conformalTransformed | ( | ) | const |
Returns a copy of the circle in conformal space.
Applies the conformal map in the self-inverse from X = x / (x^2 + y^2) and Y = y / (x^2 +y^2) and returns the result as a new circle It works most easily by the exchange of the circle parameters n0 <-> n3
Definition at line 148 of file PerigeeCircle.cc.
|
inline |
Getter for the signed curvature.
Definition at line 418 of file PerigeeCircle.h.
|
inline |
Getter for d0 parameter of the common Belle2::Helix representation.
Definition at line 412 of file PerigeeCircle.h.
|
inline |
Getter for the proper signed distance of the point to the circle.
Definition at line 212 of file PerigeeCircle.h.
| double distance | ( | double | fastDistance | ) | const |
Helper function to translate the linearised distance to the proper distance.
Definition at line 319 of file PerigeeCircle.cc.
| double fastDistance | ( | const ROOT::Math::XYVector & | point | ) | const |
Getter for the linearised distance measure to a point.
Gives a fast signed approximation of the distance to the circle. The absolute value of the fast distance is accurate up to first order of distance/circle radius, hence best used with big circles and small distances. The sign of the fast distance indicates if the point is to the right or to the left of the circle.
Definition at line 326 of file PerigeeCircle.cc.
|
inline |
Helper function to translate the proper distance to the linearized distance measure of the circle retaining the sign of the distance.
Definition at line 240 of file PerigeeCircle.h.
|
inline |
Getter for the linearised distance to the origin.
Definition at line 231 of file PerigeeCircle.h.
|
static |
Constructor from center, radius and a optional orientation.
The center and radius alone do not carry any orientation. However the perigee parameterisation does. Therefore the constructor also excepts an orientated representation from them. If no orientation is given, it defaults to mathematical positive counterclockwise.
Definition at line 108 of file PerigeeCircle.cc.
|
static |
Constructor with the four parameters of the generalized circle.
Definition at line 100 of file PerigeeCircle.cc.
|
static |
Constructor with the four parameters of the generalized circle.
Definition at line 93 of file PerigeeCircle.cc.
|
inline |
Gradient of the distance field, hence indicates the direction of increasing distance.
Definition at line 270 of file PerigeeCircle.h.
|
inline |
Getter for the signed distance of the origin to the circle.
Definition at line 436 of file PerigeeCircle.h.
| void invalidate | ( | ) |
Sets all circle parameters to zero.
Definition at line 159 of file PerigeeCircle.cc.
|
inline |
Indicates if the perigee parameters represent a closed circle.
Definition at line 258 of file PerigeeCircle.h.
|
inline |
Indicates whether to given point lies in the forward direction from the perigee.
Definition at line 188 of file PerigeeCircle.h.
|
inline |
Indicates whether to given point lies in the forward direction from the perigee.
Definition at line 182 of file PerigeeCircle.h.
| bool isInvalid | ( | ) | const |
|
inline |
Indicates if the perigee parameters represent a line.
Definition at line 252 of file PerigeeCircle.h.
|
inline |
Indicates if the point is on the right or left side of the circle.
Definition at line 246 of file PerigeeCircle.h.
|
inline |
Indicates if the combination of the circle parameters makes up a valid circle.
Definition at line 96 of file PerigeeCircle.h.
|
inline |
Gives the maximal cylindrical radius the circle reaches.
Definition at line 318 of file PerigeeCircle.h.
|
inline |
Gives the minimal cylindrical radius the circle reaches (unsigned)
Definition at line 312 of file PerigeeCircle.h.
|
inline |
Getter for the generalised circle parameter n0.
Definition at line 353 of file PerigeeCircle.h.
|
inline |
Getter for the generalised circle parameters n1.
Definition at line 365 of file PerigeeCircle.h.
|
inline |
Getter for the generalised circle parameters n1 and n2.
Definition at line 359 of file PerigeeCircle.h.
|
inline |
Getter for the generalised circle parameters n2.
Definition at line 372 of file PerigeeCircle.h.
|
inline |
Getter for the generalised circle parameter n3.
Definition at line 379 of file PerigeeCircle.h.
|
inline |
Unit normal vector from the circle to the given point.
Definition at line 276 of file PerigeeCircle.h.
|
inline |
Getter for omega parameter of the common Belle2::Helix which is the wrong sign curvature.
Definition at line 406 of file PerigeeCircle.h.
|
inline |
Getter for the orientation of the circle.
Definition at line 264 of file PerigeeCircle.h.
| void passiveMoveBy | ( | const ROOT::Math::XYVector & | by | ) |
Moves the coordinates system by the given vector. Updates perigee parameters in place.
Definition at line 173 of file PerigeeCircle.cc.
| PerigeeJacobian passiveMoveByJacobian | ( | const ROOT::Math::XYVector & | by | ) | const |
Computes the Jacobi matrix for a move of the coordinate system by the given vector.
Definition at line 182 of file PerigeeCircle.cc.
| void passiveMoveByJacobian | ( | const ROOT::Math::XYVector & | by, |
| PerigeeJacobian & | jacobian ) const |
Puts the Jacobi matrix for a move of the coordinate system by the given vector in the given matrix as an output argument.
Definition at line 189 of file PerigeeCircle.cc.
|
inline |
Getter for the perigee point.
Definition at line 294 of file PerigeeCircle.h.
|
inline |
Getter for the three perigee parameters in the order defined by EPerigeeParameter.h.
Definition at line 442 of file PerigeeCircle.h.
|
inline |
Gives the signed perimeter of the circle.
Definition at line 330 of file PerigeeCircle.h.
|
inline |
Getter for the azimuth angle of the direction of flight at the perigee.
Definition at line 424 of file PerigeeCircle.h.
|
inline |
Getter for the unit vector of the direction of flight at the perigee.
Definition at line 430 of file PerigeeCircle.h.
|
inline |
Gives the signed radius of the circle. If it was a line this will be infinity.
Definition at line 336 of file PerigeeCircle.h.
| void reverse | ( | ) |
Flips the orientation of the circle in place.
Definition at line 125 of file PerigeeCircle.cc.
| PerigeeCircle reversed | ( | ) | const |
Returns a copy of the circle with opposite orientation.
Definition at line 133 of file PerigeeCircle.cc.
| void setCenterAndRadius | ( | const ROOT::Math::XYVector & | center, |
| double | absRadius, | ||
| ERotation | orientation = ERotation::c_CounterClockwise ) |
Setter for the circle center and radius.
Definition at line 333 of file PerigeeCircle.cc.
|
inline |
Setter for signed curvature.
Definition at line 453 of file PerigeeCircle.h.
|
inline |
Sets the impact parameter of the circle.
Definition at line 473 of file PerigeeCircle.h.
|
inline |
Setter for four generalised circle parameters.
Definition at line 400 of file PerigeeCircle.h.
|
inline |
Setter for generalised circle parameters from a normal line.
Definition at line 394 of file PerigeeCircle.h.
| void setN | ( | double | n0, |
| const ROOT::Math::XYVector & | n12, | ||
| double | n3 = 0.0 ) |
Setter for four generalised circle parameters.
Definition at line 346 of file PerigeeCircle.cc.
|
inline |
Setter for four generalised circle parameters.
Definition at line 385 of file PerigeeCircle.h.
|
inline |
Setter for the perigee parameters.
Definition at line 479 of file PerigeeCircle.h.
|
inline |
Setter for the perigee parameters.
Definition at line 488 of file PerigeeCircle.h.
|
inline |
Sets the unit direction of flight at the perigee.
Definition at line 466 of file PerigeeCircle.h.
|
inline |
Sets the azimuth angle of the direction of flight at the perigee.
Definition at line 459 of file PerigeeCircle.h.
|
inline |
Getter for the tangtial vector at the perigee.
Definition at line 288 of file PerigeeCircle.h.
|
inline |
Tangential vector to the circle near the given position.
Definition at line 282 of file PerigeeCircle.h.
|
private |
Memory for the signed curvature.
Definition at line 505 of file PerigeeCircle.h.
|
private |
Memory for the signed impact parameter.
Definition at line 514 of file PerigeeCircle.h.
|
private |
Memory for the azimuth angle of the direction of flight at the perigee.
Definition at line 508 of file PerigeeCircle.h.
|
private |
Cached unit direction of flight at the perigee.
Definition at line 511 of file PerigeeCircle.h.