10#include <tracking/trackFindingCDC/geometry/PerigeeCircle.h>
11#include <tracking/trackFindingCDC/geometry/PerigeeParameters.h>
22 namespace TrackFindingCDC {
23 class GeneralizedCircle;
46 const double chi2 = 0.0,
64 const double chi2 = 0.0,
76 const double chi2 = 0.0,
88 const double chi2 = 0.0,
101 const double chi2 = 0.0,
Extension of the generalized circle also caching the perigee coordinates.
PerigeeCircle reversed() const
Returns a copy of the circle with opposite orientation.
void reverse()
Flips the orientation of the circle in place.
void passiveMoveBy(const Vector2D &by)
Moves the coordinates system by the given vector. Updates perigee parameters in place.
void invalidate()
Sets all circle parameters to zero.
PerigeeParameters perigeeParameters() const
Getter for the three perigee parameters in the order defined by EPerigeeParameter....
PerigeeJacobian passiveMoveByJacobian(const Vector2D &by) const
Computes the Jacobi matrix for a move of the coordinate system by the given vector.
A matrix implementation to be used as an interface typ through out the track finder.
Adds an uncertainty matrix to the circle in perigee parameterisation.
const PerigeeCircle & perigeeCircle() const
Getter for the underlying circle.
UncertainPerigeeCircle()
Default constructor for ROOT compatibility.
double covariance(const EPerigeeParameter &iRow, const EPerigeeParameter &iCol) const
Getter for individual elements of the covariance matrix.
UncertainPerigeeCircle(const GeneralizedCircle &generalizedCircle, const PerigeeCovariance &perigeeCovariance=PerigeeUtil::identity(), const double chi2=0.0, std::size_t ndf=0)
Augments a plain perigee circle with a covariance matrix. Covariance defaults to zero.
void reverse()
Flips the orientation of the circle in place.
void passiveMoveBy(const Vector2D &by)
Moves the coordinate system by the vector by and calculates the new perigee and its covariance matrix...
double variance(const EPerigeeParameter &i) const
Getter for individual diagonal elements of the covariance matrix.
double m_chi2
Memory for the chi square value of the fit of this circle.
void invalidate()
Sets all circle parameters to zero including the covariance matrix.
UncertainPerigeeCircle(const PerigeeParameters ¶meters, const PerigeeCovariance &perigeeCovariance=PerigeeUtil::identity(), const double chi2=0.0, std::size_t ndf=0)
Constructor taking all stored parameters as a SVector.
PerigeeParameters perigeeParameters() const
Getter for the perigee parameters in the order defined by EPerigeeParameter.h.
UncertainPerigeeCircle(const double curvature, const double phi0Vec, const double impact, const PerigeeCovariance &perigeeCovariance=PerigeeUtil::identity(), const double chi2=0.0, std::size_t ndf=0)
Composes an uncertain perigee circle from the perigee parameters and a 3x3 covariance matrix.
void setPerigeeCovariance(const PerigeeCovariance &perigeeCovariance)
Setter for the whole covariance matrix of the perigee parameters.
PerigeeCovariance m_perigeeCovariance
Memory for the 3x3 covariance matrix of the perigee parameters.
double chi2() const
Getter for the chi square value of the circle fit.
void setNDF(std::size_t ndf)
Setter for the number of degrees of freediom used in the circle fit.
size_t m_ndf
Memory for the number of degrees of freedim of the fit of this circle.
UncertainPerigeeCircle reversed() const
Returns a copy of the circle with opposite orientation.
UncertainPerigeeCircle(const PerigeeCircle &perigeeCircle, const PerigeeCovariance &perigeeCovariance=PerigeeUtil::identity(), const double chi2=0.0, std::size_t ndf=0)
Augments a plain perigee circle with a covariance matrix. Covariance defaults to zero.
PerigeeCovariance passiveMovedCovarianceBy(const Vector2D &by) const
Calculates the jacobian matrix that is needed for the translation of the parameter covariance for a p...
UncertainPerigeeCircle(const double curvature, const Vector2D &phi0, const double impact, const PerigeeCovariance &perigeeCovariance=PerigeeUtil::identity(), const double chi2=0.0, std::size_t ndf=0)
Composes an uncertain perigee circle from the perigee parameters and a 3x3 covariance matrix.
void setChi2(const double chi2)
Setter for the chi square value of the circle fit.
const PerigeeCovariance & perigeeCovariance() const
Getter for the whole covariance matrix of the perigee parameters.
std::size_t ndf() const
Getter for the number of degrees of freediom used in the circle fit.
static UncertainPerigeeCircle average(const UncertainPerigeeCircle &fromPerigeeCircle, const UncertainPerigeeCircle &toPerigeeCircle)
Average the parameters of the two given perigee circles properly considering their covariance matrix.
PerigeeCircle m_perigeeCircle
Memory for the underlying circle.
const PerigeeCircle * operator->() const
Access to the constant interface of the underlying parameter line Allows the user of this "super" cla...
A two dimensional vector which is equipped with functions for correct handling of orientation relate...
EPerigeeParameter
Enumeration to address the individual perigee parameters in a vector or matrix.
Abstract base class for different kinds of events.
static CovarianceMatrix transported(const JacobianMatrix &jacobian, const CovarianceMatrix &cov)
Return a copy of the covariance matrix transported with the given jacobian matrix.
static void transport(const JacobianMatrix &jacobian, CovarianceMatrix &cov)
Transport the covariance matrix inplace with the given jacobian matrix.
static CovarianceMatrix identity()
Returns an identity matrix.
static void reverse(CovarianceMatrix &cov)
Reverse the covariance matrix inplace.
static CovarianceMatrix reversed(const CovarianceMatrix &cov)
Return a copy of the reversed covariance matrix.