 |
Belle II Software
release-05-02-19
|
12 #include <tracking/trackFindingCDC/geometry/PerigeeCircle.h>
13 #include <tracking/trackFindingCDC/geometry/SZLine.h>
15 #include <tracking/trackFindingCDC/geometry/HelixParameters.h>
16 #include <tracking/trackFindingCDC/geometry/Vector3D.h>
17 #include <tracking/trackFindingCDC/geometry/Vector2D.h>
27 namespace TrackFindingCDC {
169 double arcLength2D = nPeriods * fabs(
perimeterXY());
312 using namespace NHelixParameterIndices;
314 result(c_Phi0) =
phi0();
328 const SZLine&
szLine()
const
void invalidate()
Sets all circle parameters to zero.
double tanLambda() const
Getter for the tan lambda parameter.
HepGeom::Vector3D< double > Vector3D
3D Vector
Vector3D perigee() const
Getter for the perigee point of the helix.
std::ostream & operator<<(std::ostream &output, const IntervalOfValidity &iov)
bool isInvalid() const
Indicates if the stored parameter combination designates a valid helix.
double curvatureXY() const
Getter for the signed curvature in the xy projection.
double passiveMoveBy(const Vector3D &by)
Moves the coordinates system by the given vector.
Utility struct for functions and types related to the helix parameters.
A two dimensional vector which is equipped with functions for correct handeling of orientation relat...
HelixParameters helixParameters() const
Getter for the five helix parameters in the order defined by EHelixParameter.h.
Vector2D centerXY() const
Getter for the central point of the helix.
Vector2D xyAtZ(double z) const
Calculates the point, which lies at the given z coordinate.
void invalidate()
Sets the parameters to a invalid representation.
double arcLengthTo(const Vector2D &point) const
Calculates the arc length between the perigee and the given point.
Vector2D perigeeXY() const
Getter for the perigee point in the xy projection.
bool isInvalid() const
Indicates if the line parameters do not represent a valid line.
Extension of the generalized circle also caching the perigee coordinates.
Helix reversed() const
Returns a copy of the helix with flips the travel direction, pivot point is the same.
double tanLambda() const
Getter for the proportinality factor from arc length in xy space to z.
double arcLength2DToXY(const Vector2D &point) const
Calculates the two dimensional arc length that is closest to two dimensional point in the xy projecti...
double minimalCylindricalR() const
Gives the minimal cylindrical radius the circle reaches (unsigned)
SZLine m_szLine
Memory of the of the linear relation between perpendicular travel distance and the z position.
double shiftPeriod(int nPeriods)
Adjust the arclength measure to start n periods later.
PerigeeCircle m_circleXY
Memory of the projection of the helix in xy space.
double impact() const
Getter for the signed distance of the origin to the circle.
double arcLength2DToClosest(const Vector3D &point, bool firstPeriod=true) const
Calculates the perpendicular travel distance at which the helix has the closest approach to the given...
double minimalCylindricalR() const
Gives the minimal cylindrical radius the circle reaches (unsigned)
const SZLine & szLine() const
Getter for the projection into xy space.
double z0() const
Getter for the z0 parameter.
HelixJacobian passiveMoveByJacobian(const Vector3D &by) const
Computes the Jacobi matrix for a move of the coordinate system by the given vector.
double arcLength2DPeriod() const
Getter for the arc length of one trip around the helix.
void reverse()
Flips the orientation of the circle in place.
double radius() const
Gives the signed radius of the circle. If it was a line this will be infinity.
double perimeter() const
Gives the signed perimeter of the circle.
double perimeterXY() const
Getter for the perimeter of the circle in the xy projection.
double radiusXY() const
Getter for the radius of the circle in the xy projection.
const Vector2D & phi0Vec() const
Getter for the direction vector in the xy projection at the perigee of the helix.
Vector2D perigee() const
Getter for the perigee point.
double arcLength2DToCylindricalR(double cylindricalR) const
Calculates the two dimensional arc length that first reaches a cylindrical radius on the helix Return...
Vector2D center() const
Getter for the center of the circle. If it was a line both components will be infinity.
Abstract base class for different kinds of events.
double z0() const
Getter for z coordinate at the perigee point of the helix.
double phi0() const
Getter for the azimuth angle of the direction of flight at the perigee.
Vector3D atZ(double z) const
Calculates the point, which lies at the given z coordinate.
A three dimensional vector.
double distanceXY(const Vector2D &point) const
Calculates the distance of the line parallel to the z axes through the given point.
bool isInvalid() const
Indicates if all circle parameters are zero.
double distance(const Vector3D &rhs=Vector3D(0.0, 0.0, 0.0)) const
Calculates the distance of this point to the rhs.
Extension of the generalized circle also caching the perigee coordinates.
double zPeriod() const
Getter for the distance in z at which the two points on the helix coincide in the xy projection.
const PerigeeCircle & circleXY() const
Getter for the projection into xy space.
const Vector2D & phi0Vec() const
Getter for the unit vector of the direction of flight at the perigee.
void passiveMoveBy(const Vector2D &by)
Moves the coordinates system by the given vector. Updates perigee parameters in place.
const Vector2D & xy() const
Getter for the xy projected vector ( reference ! )
Vector3D tangential() const
Getter for the unit three dimensional tangential vector at the perigee point of the helix.
double maximalCylindricalR() const
Gives the maximal cylindrical radius the circle reaches.
double impactXY() const
Getter for the signed distance to the z axes at the perigee point.
Helix()
Default constructor for ROOT compatibility.
A matrix implementation to be used as an interface typ through out the track finder.
double z() const
Getter for the z coordinate.
double arcLengthToCylindricalR(double cylindricalR) const
Calculates the two dimensional arc length till the cylindrical radius is reached If the radius can no...
void reverse()
Reverse the arc length direction in place.
double distance(const Vector2D &point) const
Getter for the proper signed distance of the point to the circle.
void invalidate()
Sets all circle parameters to zero.
double curvature() const
Getter for the signed curvature.
void reverse()
Flips the travel direction of the helix in place, pivot point is unchanged.
double omega() const
Getter for omega parameter of the common Belle2::Helix which is the wrong sign curvature.
double maximalCylindricalR() const
Gives the maximal cylindrical radius the circle reaches.
Vector3D atArcLength2D(double s) const
Calculates the point, which lies at the give perpendicular travel distance (counted from the perigee)
double arcLengthPeriod() const
Getter for the arc length for a full round of the circle.
Vector3D closest(const Vector3D &point, bool firstPeriod=true) const
Calculates the point on the helix with the smallest total distance.
double d0() const
Getter for the signed distance to the z axes at the perigee point.
double phi0() const
Getter for the azimuth angle of the direction of flight at the perigee.
double omega() const
Getter for the omega parameter of the common helix parameterisation.
double cotTheta() const
Getter for the proportinality factor from arc length in xy space to z.
Vector3D closestXY(const Vector2D &pointXY) const
Calculates the point on the helix with the smallest perpendicular (xy) distance.
double d0() const
Getter for d0 parameter of the common Belle2::Helix representation.
double distance(const Vector3D &point) const
Calculates the distance of the point to the point of closest approach on the helix.
void passiveMoveBy(const Vector2D &bySZ)
Passivelly move the coordinate system in place by the given sz vector.