 |
Belle II Software
release-05-01-25
|
12 #include <tracking/trackFindingCDC/geometry/Helix.h>
14 #include <tracking/trackFindingCDC/geometry/UncertainPerigeeCircle.h>
15 #include <tracking/trackFindingCDC/geometry/UncertainSZLine.h>
16 #include <tracking/trackFindingCDC/geometry/SZLine.h>
18 #include <tracking/trackFindingCDC/geometry/HelixParameters.h>
19 #include <tracking/trackFindingCDC/geometry/PerigeeParameters.h>
20 #include <tracking/trackFindingCDC/geometry/SZParameters.h>
21 #include <tracking/trackFindingCDC/geometry/Vector2D.h>
32 namespace TrackFindingCDC {
36 class UncertainHelix {
49 const double tanLambda,
52 const double chi2 = 0.0,
54 :
m_helix(curvature, phi0, impact, tanLambda, z0)
64 const double chi2 = 0.0,
78 const double tanLambda,
81 const double chi2 = 0.0,
83 :
m_helix(curvature, phi0Vec, impact, tanLambda, z0)
93 const double chi2 = 0.0,
188 const PerigeeHelixAmbiguity& fromAmbiguity,
207 operator const Helix& ()
const
277 std::size_t
ndf()
const
void setHelixCovariance(const HelixCovariance &helixCovariance)
Setter for the whole covariance matrix of the perigee parameters.
double shiftPeriod(int nPeriods)
Adjust the arclength measure to start n periods later.
static UncertainHelix average(const UncertainHelix &fromHelix, const UncertainHelix &toHelix)
Construct the averages of the two given helices by properly considering their covariance matrix.
void invalidate()
Sets all circle parameters to zero.
const Helix * operator->() const
Access to the constant interface of the underlying parameter line Allows the user of this "super" cla...
HelixParameters helixParameters() const
Getter for the perigee parameters in the order defined by EPerigeeParameter.h.
HepGeom::Vector3D< double > Vector3D
3D Vector
This class represents an ideal helix in perigee parameterization including the covariance matrix of t...
std::ostream & operator<<(std::ostream &output, const IntervalOfValidity &iov)
UncertainPerigeeCircle uncertainCircleXY() const
Projects the helix into the xy plain carrying over the relevant parts of the convariance matrix.
double chi2() const
Getter for the chi square value of the helix fit.
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.
static void transport(const JacobianMatrix &jacobian, CovarianceMatrix &cov)
Transport the covariance matrix inplace with the given jacobian matrix.
A line in sz where s is the transverse travel distance as seen in the xy projection with uncertaintie...
void setChi2(const double chi2)
Setter for the chi square value of the helix fit.
void reverse()
Flips the orientation of the circle in place.
std::size_t ndf() const
Getter for the number of degrees of freediom used in the helix fit.
Helix m_helix
Memory for the underlying helix.
const Helix & helix() const
Getter for the underlying helix.
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 shiftPeriod(int nPeriods)
Adjust the arclength measure to start n periods later.
const HelixCovariance & helixCovariance() const
Getter for the whole covariance matrix of the perigee parameters.
static CovarianceMatrix identity()
Returns an identity matrix.
const SZLine & szLine() const
Getter for the projection into xy space.
HelixJacobian passiveMoveByJacobian(const Vector3D &by) const
Computes the Jacobi matrix for a move of the coordinate system by the given vector.
HelixCovariance m_helixCovariance
Memory for the 5x5 covariance matrix of the helix parameters.
Adds an uncertainty matrix to the circle in perigee parameterisation.
double covariance(const EHelixParameter &iRow, const EHelixParameter &iCol) const
Getter for individual elements of the covariance matrix.
Abstract base class for different kinds of events.
A three dimensional vector.
SZJacobian passiveMoveByJacobian(const Vector2D &bySZ) const
Computes the Jacobi matrix for a move of the coordinate system by the given vector.
void invalidate()
Sets all circle parameters to zero and the covariance matrix to something noninformative.
UncertainHelix()
Default constructor for ROOT compatibility.
static PerigeeUtil::CovarianceMatrix getPerigeeCovariance(const CovarianceMatrix &helixCov)
Get perigee covariance matrix related to the xy space.
double variance(const EHelixParameter &i) const
Getter for individual diagonal elements of the covariance matrix.
UncertainHelix reversed() const
Returns a copy of the circle with opposite orientation.
void setNDF(std::size_t ndf)
Setter for the number of degrees of freediom used in the helix fit.
static SZUtil::CovarianceMatrix getSZCovariance(const CovarianceMatrix &helixCov)
Get sz covariance matrix.
A matrix implementation to be used as an interface typ through out the track finder.
void passiveMoveBy(const Vector3D &by)
Moves the coordinate system by the vector by and calculates the new perigee and its covariance matrix...
A general helix class including a covariance matrix.
static CovarianceMatrix reversed(const CovarianceMatrix &cov)
Return a copy of the reversed covariance matrix.
double m_chi2
Memory for the chi square value of the fit of this helix.
UncertainSZLine uncertainSZLine() const
Reduces the helix to an sz line carrying over the relevant parts of the convariance matrix.
EHelixParameter
Enumeration to address the individual helix parameters in a vector or matrix.
void reverse()
Flips the travel direction of the helix in place, pivot point is unchanged.
static void reverse(CovarianceMatrix &cov)
Reverse the covariance matrix inplace.
static HelixUtil::CovarianceMatrix stackBlocks(const PerigeeUtil::CovarianceMatrix &perigeeCov, const SZUtil::CovarianceMatrix &szCov)
Combine covariance matrices from the xy space and the sz space in their respective blocks.
size_t m_ndf
Memory for the number of degrees of freedom of the fit of this helix.