10#include <tracking/trackFindingCDC/geometry/SZParameters.h>
11#include <tracking/trackFindingCDC/geometry/Vector2D.h>
18 namespace TrackFindingCDC {
102 using namespace NSZParameterIndices;
116 double map(
double s)
const
144 return not std::isfinite(
tanLambda()) or not std::isfinite(
z0());
210 using namespace NSZParameterIndices;
212 result(c_Z0, c_TanL) = bySZ.
first();
A matrix implementation to be used as an interface typ through out the track finder.
double m_tanLambda
Memory for the tan lambda parameter.
SZLine passiveMovedBy(double s, double z) const
Return a line passively move by the given s and z coordinates as a copy.
double z0() const
Getter for the z0 parameter.
void setZ0(double z0)
Getter for the z0 parameter.
double zero() const
Returns the the two dimensional arc length s where the z coordinate approaches zero.
SZParameters szParameters() const
Getter for the sz parameters.
bool isInvalid() const
Indicates if the line parameters do not represent a valid line.
void reverse()
Reverse the arc length direction in place.
double slope() const
Getter for the slope in the sz space which is equivalent to tan lambda.
Vector2D intersection(const SZLine &szLine) const
Calculates the intersection point of two line. Infinity for parallels.
double distance(double s, double z) const
Calculates the signed distance of the point given by its to coordinates to the line.
double intercept() const
Getter for the intercept in the sz space which is equivalent to z0.
void setTanLambda(double tanLambda)
Getter for the tan lambda parameter.
double inverseSlope() const
Returns the slope over the second coordinate.
double tanLambda() const
Getter for the tan lambda parameter.
SZJacobian passiveMoveByJacobian(const Vector2D &bySZ) const
Computes the Jacobi matrix for a move of the coordinate system by the given vector.
void invalidate()
Sets the parameters to a invalid representation.
void passiveMoveBy(const Vector2D &bySZ)
Passively move the coordinate system in place by the given sz vector.
SZLine()
Default constructor for ROOT compatibility.
SZLine(double tanLambda, double z0)
Constructor from slope and intercept in the sz space.
double map(double s) const
Maps the two dimensional arc length s to z.
double inverseMap(double z) const
Maps the z coordinate to the two dimensional arc length s.
double distance(const Vector2D &szPoint) const
Calculates the signed distance of the point to the line.
void passiveMoveBy(double s, double z)
Passively move the coordinate system in place by the given s and z coordinates.
double m_z0
Memory for the z0 parameter.
SZLine passiveMovedBy(const Vector2D &bySZ) const
Return a line passively move by the given vector as a copy.
SZLine(const SZParameters &szParameters)
Constructor from the sz parameters.
double operator()(double s) const
Maps the two dimensional arc length s to z.
double theta() const
Getter for the theta dip angle.
SZLine reversed() const
Returns a copy of the line with reversed the arc length direction.
A two dimensional vector which is equipped with functions for correct handling of orientation relate...
double second() const
Getter for the second coordinate.
double first() const
Getter for the first coordinate.
ESZParameter
Enumeration to address the individual sz parameters in a vector or matrix.
Abstract base class for different kinds of events.
static CovarianceMatrix identity()
Returns an identity matrix.