Belle II Software development
UncertainPerigeeCircle Class Reference

Adds an uncertainty matrix to the circle in perigee parameterisation. More...

#include <UncertainPerigeeCircle.h>

Public Member Functions

 UncertainPerigeeCircle ()
 Default constructor for ROOT compatibility.
 
 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.
 
 UncertainPerigeeCircle (const double curvature, const ROOT::Math::XYVector &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.
 
 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.
 
 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.
 
 UncertainPerigeeCircle (const PerigeeParameters &parameters, const PerigeeCovariance &perigeeCovariance=PerigeeUtil::identity(), const double chi2=0.0, std::size_t ndf=0)
 Constructor taking all stored parameters as a SVector.
 
const PerigeeCircleoperator-> () const
 Access to the constant interface of the underlying parameter line Allows the user of this "super" class to use the getters and other methods to get information about the line but disallows mutation of internal state.
 
 operator const PerigeeCircle & () const
 Downcast to the "super" class.
 
const PerigeeCircleperigeeCircle () const
 Getter for the underlying circle.
 
PerigeeParameters perigeeParameters () const
 Getter for the perigee parameters in the order defined by EPerigeeParameter.h.
 
void setPerigeeCovariance (const PerigeeCovariance &perigeeCovariance)
 Setter for the whole covariance matrix of the perigee parameters.
 
const PerigeeCovarianceperigeeCovariance () const
 Getter for the whole covariance matrix of the perigee parameters.
 
double covariance (const EPerigeeParameter &iRow, const EPerigeeParameter &iCol) const
 Getter for individual elements of the covariance matrix.
 
double variance (const EPerigeeParameter &i) const
 Getter for individual diagonal elements of the covariance matrix.
 
double chi2 () const
 Getter for the chi square value of the circle fit.
 
void setChi2 (const double chi2)
 Setter for the chi square value of the circle fit.
 
std::size_t ndf () const
 Getter for the number of degrees of freediom used in the circle fit.
 
void setNDF (std::size_t ndf)
 Setter for the number of degrees of freediom used in the circle fit.
 
void invalidate ()
 Sets all circle parameters to zero including the covariance matrix.
 
void reverse ()
 Flips the orientation of the circle in place.
 
UncertainPerigeeCircle reversed () const
 Returns a copy of the circle with opposite orientation.
 
void passiveMoveBy (const ROOT::Math::XYVector &by)
 Moves the coordinate system by the vector by and calculates the new perigee and its covariance matrix.
 
PerigeeCovariance passiveMovedCovarianceBy (const ROOT::Math::XYVector &by) const
 Calculates the jacobian matrix that is needed for the translation of the parameter covariance for a passive move of the coordinate system.
 

Static Public Member Functions

static UncertainPerigeeCircle average (const UncertainPerigeeCircle &fromPerigeeCircle, const UncertainPerigeeCircle &toPerigeeCircle)
 Average the parameters of the two given perigee circles properly considering their covariance matrix.
 

Private Attributes

PerigeeCircle m_perigeeCircle
 Memory for the underlying circle.
 
PerigeeCovariance m_perigeeCovariance = PerigeeUtil::identity()
 Memory for the 3x3 covariance matrix of the perigee parameters.
 
double m_chi2 = 0.0
 Memory for the chi square value of the fit of this circle.
 
size_t m_ndf = 0.0
 Memory for the number of degrees of freedim of the fit of this circle.
 

Detailed Description

Adds an uncertainty matrix to the circle in perigee parameterisation.

Definition at line 30 of file UncertainPerigeeCircle.h.

Constructor & Destructor Documentation

◆ UncertainPerigeeCircle() [1/6]

Default constructor for ROOT compatibility.

Definition at line 34 of file UncertainPerigeeCircle.h.

35 {
36 }

◆ UncertainPerigeeCircle() [2/6]

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 )
inline

Composes an uncertain perigee circle from the perigee parameters and a 3x3 covariance matrix.

Covariance matrix defaults to a zero matrix.

Definition at line 43 of file UncertainPerigeeCircle.h.

49 : m_perigeeCircle(curvature, phi0Vec, impact)
50 , m_perigeeCovariance(perigeeCovariance)
51 , m_chi2(chi2)
52 , m_ndf(ndf)
53 {
54 }

◆ UncertainPerigeeCircle() [3/6]

UncertainPerigeeCircle ( const double curvature,
const ROOT::Math::XYVector & phi0,
const double impact,
const PerigeeCovariance & perigeeCovariance = PerigeeUtil::identity(),
const double chi2 = 0.0,
std::size_t ndf = 0 )
inline

Composes an uncertain perigee circle from the perigee parameters and a 3x3 covariance matrix.

Covariance matrix defaults to a zero matrix

Definition at line 61 of file UncertainPerigeeCircle.h.

67 : m_perigeeCircle(curvature, phi0, impact)
68 , m_perigeeCovariance(perigeeCovariance)
69 , m_chi2(chi2)
70 , m_ndf(ndf)
71 {
72 }

◆ UncertainPerigeeCircle() [4/6]

UncertainPerigeeCircle ( const PerigeeCircle & perigeeCircle,
const PerigeeCovariance & perigeeCovariance = PerigeeUtil::identity(),
const double chi2 = 0.0,
std::size_t ndf = 0 )
inlineexplicit

Augments a plain perigee circle with a covariance matrix. Covariance defaults to zero.

Definition at line 75 of file UncertainPerigeeCircle.h.

79 : m_perigeeCircle(perigeeCircle)
80 , m_perigeeCovariance(perigeeCovariance)
81 , m_chi2(chi2)
82 , m_ndf(ndf)
83 {
84 }

◆ UncertainPerigeeCircle() [5/6]

UncertainPerigeeCircle ( const GeneralizedCircle & generalizedCircle,
const PerigeeCovariance & perigeeCovariance = PerigeeUtil::identity(),
const double chi2 = 0.0,
std::size_t ndf = 0 )
inlineexplicit

Augments a plain perigee circle with a covariance matrix. Covariance defaults to zero.

Definition at line 87 of file UncertainPerigeeCircle.h.

91 : m_perigeeCircle(generalizedCircle)
92 , m_perigeeCovariance(perigeeCovariance)
93 , m_chi2(chi2)
94 , m_ndf(ndf)
95 {
96 }

◆ UncertainPerigeeCircle() [6/6]

UncertainPerigeeCircle ( const PerigeeParameters & parameters,
const PerigeeCovariance & perigeeCovariance = PerigeeUtil::identity(),
const double chi2 = 0.0,
std::size_t ndf = 0 )
inlineexplicit

Constructor taking all stored parameters as a SVector.

Definition at line 99 of file UncertainPerigeeCircle.h.

104 : m_perigeeCircle(parameters)
105 , m_perigeeCovariance(perigeeCovariance)
106 , m_chi2(chi2)
107 , m_ndf(ndf)
108 {
109 }

Member Function Documentation

◆ average()

UncertainPerigeeCircle average ( const UncertainPerigeeCircle & fromPerigeeCircle,
const UncertainPerigeeCircle & toPerigeeCircle )
static

Average the parameters of the two given perigee circles properly considering their covariance matrix.

Definition at line 19 of file UncertainPerigeeCircle.cc.

21{
22 const PerigeeParameters& fromPar = fromPerigeeCircle.perigeeParameters();
23 const PerigeeCovariance& fromCov = fromPerigeeCircle.perigeeCovariance();
24
25 const PerigeeParameters& toPar = toPerigeeCircle.perigeeParameters();
26 const PerigeeCovariance& toCov = toPerigeeCircle.perigeeCovariance();
27
28 PerigeeParameters avgPar;
29 PerigeeCovariance avgCov;
30
31 double loc_chi2 = PerigeeUtil::average(fromPar, fromCov, toPar, toCov, avgPar, avgCov);
32
33 // Calculating 3 parameters from 6 input parameters. 3 NDF remaining.
34 size_t loc_ndf = 3;
35
36 return UncertainPerigeeCircle(avgPar, avgCov, loc_chi2, loc_ndf);
37}
UncertainPerigeeCircle()
Default constructor for ROOT compatibility.
PerigeeParameters perigeeParameters() const
Getter for the perigee parameters in the order defined by EPerigeeParameter.h.
const PerigeeCovariance & perigeeCovariance() const
Getter for the whole covariance matrix of the perigee parameters.
static double average(const PerigeeUtil::ParameterVector &fromPar, const PerigeeUtil::CovarianceMatrix &fromCov, const PerigeeUtil::ParameterVector &toPar, const PerigeeUtil::CovarianceMatrix &toCov, PerigeeUtil::ParameterVector &avgPar, PerigeeUtil::CovarianceMatrix &avgCov)
Calculates the weighted average between two perigee parameter sets with their respective covariance m...

◆ chi2()

double chi2 ( ) const
inline

Getter for the chi square value of the circle fit.

Definition at line 175 of file UncertainPerigeeCircle.h.

176 {
177 return m_chi2;
178 }

◆ covariance()

double covariance ( const EPerigeeParameter & iRow,
const EPerigeeParameter & iCol ) const
inline

Getter for individual elements of the covariance matrix.

Definition at line 163 of file UncertainPerigeeCircle.h.

164 {
165 return perigeeCovariance()(iRow, iCol);
166 }

◆ invalidate()

void invalidate ( )
inline

Sets all circle parameters to zero including the covariance matrix.

Definition at line 199 of file UncertainPerigeeCircle.h.

200 {
201 m_perigeeCircle.invalidate();
202 m_perigeeCovariance = PerigeeUtil::identity();
203 m_chi2 = 0.0;
204 }

◆ ndf()

std::size_t ndf ( ) const
inline

Getter for the number of degrees of freediom used in the circle fit.

Definition at line 187 of file UncertainPerigeeCircle.h.

188 {
189 return m_ndf;
190 }

◆ operator const PerigeeCircle &()

operator const PerigeeCircle & ( ) const
inline

Downcast to the "super" class.

Definition at line 132 of file UncertainPerigeeCircle.h.

133 {
134 return m_perigeeCircle;
135 }

◆ operator->()

const PerigeeCircle * operator-> ( ) const
inline

Access to the constant interface of the underlying parameter line Allows the user of this "super" class to use the getters and other methods to get information about the line but disallows mutation of internal state.

This ensures that the parameters are not changed without proper adjustment to the covariance matrix in this class, which can be achieved by the more limited set of methods in this class accessible by normal . method calls

Definition at line 126 of file UncertainPerigeeCircle.h.

127 {
128 return &m_perigeeCircle;
129 }

◆ passiveMoveBy()

void passiveMoveBy ( const ROOT::Math::XYVector & by)
inline

Moves the coordinate system by the vector by and calculates the new perigee and its covariance matrix.

Change is inplace.

Definition at line 229 of file UncertainPerigeeCircle.h.

230 {
231 // Move the covariance matrix first to have access to the original parameters
232 PerigeeJacobian jacobian = m_perigeeCircle.passiveMoveByJacobian(by);
233 PerigeeUtil::transport(jacobian, m_perigeeCovariance);
234 m_perigeeCircle.passiveMoveBy(by);
235 }

◆ passiveMovedCovarianceBy()

PerigeeCovariance passiveMovedCovarianceBy ( const ROOT::Math::XYVector & by) const
inline

Calculates the jacobian matrix that is needed for the translation of the parameter covariance for a passive move of the coordinate system.

Definition at line 242 of file UncertainPerigeeCircle.h.

243 {
244 PerigeeJacobian jacobian = m_perigeeCircle.passiveMoveByJacobian(by);
245 return PerigeeUtil::transported(jacobian, perigeeCovariance());
246 }

◆ perigeeCircle()

const PerigeeCircle & perigeeCircle ( ) const
inline

Getter for the underlying circle.

Definition at line 138 of file UncertainPerigeeCircle.h.

139 {
140 return m_perigeeCircle;
141 }

◆ perigeeCovariance()

const PerigeeCovariance & perigeeCovariance ( ) const
inline

Getter for the whole covariance matrix of the perigee parameters.

Definition at line 157 of file UncertainPerigeeCircle.h.

158 {
159 return m_perigeeCovariance;
160 }

◆ perigeeParameters()

PerigeeParameters perigeeParameters ( ) const
inline

Getter for the perigee parameters in the order defined by EPerigeeParameter.h.

Definition at line 144 of file UncertainPerigeeCircle.h.

145 {
146 return m_perigeeCircle.perigeeParameters();
147 }

◆ reverse()

void reverse ( )
inline

Flips the orientation of the circle in place.

Definition at line 208 of file UncertainPerigeeCircle.h.

209 {
210 m_perigeeCircle.reverse();
211 PerigeeUtil::reverse(m_perigeeCovariance);
212 }

◆ reversed()

UncertainPerigeeCircle reversed ( ) const
inline

Returns a copy of the circle with opposite orientation.

Definition at line 215 of file UncertainPerigeeCircle.h.

216 {
217 return UncertainPerigeeCircle(m_perigeeCircle.reversed(),
218 PerigeeUtil::reversed(perigeeCovariance()),
219 chi2(),
220 ndf());
221 }

◆ setChi2()

void setChi2 ( const double chi2)
inline

Setter for the chi square value of the circle fit.

Definition at line 181 of file UncertainPerigeeCircle.h.

182 {
183 m_chi2 = chi2;
184 }

◆ setNDF()

void setNDF ( std::size_t ndf)
inline

Setter for the number of degrees of freediom used in the circle fit.

Definition at line 193 of file UncertainPerigeeCircle.h.

194 {
195 m_ndf = ndf;
196 }

◆ setPerigeeCovariance()

void setPerigeeCovariance ( const PerigeeCovariance & perigeeCovariance)
inline

Setter for the whole covariance matrix of the perigee parameters.

Definition at line 151 of file UncertainPerigeeCircle.h.

152 {
153 m_perigeeCovariance = perigeeCovariance;
154 }

◆ variance()

double variance ( const EPerigeeParameter & i) const
inline

Getter for individual diagonal elements of the covariance matrix.

Definition at line 169 of file UncertainPerigeeCircle.h.

170 {
171 return perigeeCovariance()(i, i);
172 }

Member Data Documentation

◆ m_chi2

double m_chi2 = 0.0
private

Memory for the chi square value of the fit of this circle.

Definition at line 256 of file UncertainPerigeeCircle.h.

◆ m_ndf

size_t m_ndf = 0.0
private

Memory for the number of degrees of freedim of the fit of this circle.

Definition at line 259 of file UncertainPerigeeCircle.h.

◆ m_perigeeCircle

PerigeeCircle m_perigeeCircle
private

Memory for the underlying circle.

Definition at line 250 of file UncertainPerigeeCircle.h.

◆ m_perigeeCovariance

PerigeeCovariance m_perigeeCovariance = PerigeeUtil::identity()
private

Memory for the 3x3 covariance matrix of the perigee parameters.

Definition at line 253 of file UncertainPerigeeCircle.h.


The documentation for this class was generated from the following files: