Belle II Software  release-05-01-25
UncertainPerigeeCircle.cc
1 /**************************************************************************
2  * BASF2 (Belle Analysis Framework 2) *
3  * Copyright(C) 2014 - Belle II Collaboration *
4  * *
5  * Author: The Belle II Collaboration *
6  * Contributors: Oliver Frost *
7  * *
8  * This software is provided "as is" without any warranty. *
9  **************************************************************************/
10 #include <tracking/trackFindingCDC/geometry/UncertainPerigeeCircle.h>
11 
12 #include <tracking/trackFindingCDC/geometry/PerigeeCircle.h>
13 #include <tracking/trackFindingCDC/geometry/PerigeeParameters.h>
14 
15 #include <ostream>
16 
17 using namespace Belle2;
18 using namespace TrackFindingCDC;
19 
20 UncertainPerigeeCircle
22  const UncertainPerigeeCircle& toPerigeeCircle)
23 {
24  const PerigeeParameters& fromPar = fromPerigeeCircle.perigeeParameters();
25  const PerigeeCovariance& fromCov = fromPerigeeCircle.perigeeCovariance();
26 
27  const PerigeeParameters& toPar = toPerigeeCircle.perigeeParameters();
28  const PerigeeCovariance& toCov = toPerigeeCircle.perigeeCovariance();
29 
30  PerigeeParameters avgPar;
31  PerigeeCovariance avgCov;
32 
33  double chi2 = PerigeeUtil::average(fromPar, fromCov, toPar, toCov, avgPar, avgCov);
34 
35  // Calculating 3 parameters from 6 input parameters. 3 NDF remaining.
36  size_t ndf = 3;
37 
38  return UncertainPerigeeCircle(avgPar, avgCov, chi2, ndf);
39 }
40 
41 std::ostream& TrackFindingCDC::operator<<(std::ostream& output, const UncertainPerigeeCircle& circle)
42 {
43  return output << "UncertainPerigeeCircle("
44  << "curvature=" << circle->curvature() << ","
45  << "phi0=" << circle->phi0() << ","
46  << "impact=" << circle->impact() << ")";
47 }
Belle2::TrackFindingCDC::PerigeeUtil::average
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...
Definition: PerigeeParameters.cc:21
Belle2::operator<<
std::ostream & operator<<(std::ostream &output, const IntervalOfValidity &iov)
Definition: IntervalOfValidity.cc:196
Belle2::TrackFindingCDC::UncertainPerigeeCircle::perigeeCovariance
const PerigeeCovariance & perigeeCovariance() const
Getter for the whole covariance matrix of the perigee parameters.
Definition: UncertainPerigeeCircle.h:166
Belle2::TrackFindingCDC::UncertainPerigeeCircle::ndf
std::size_t ndf() const
Getter for the number of degrees of freediom used in the circle fit.
Definition: UncertainPerigeeCircle.h:196
Belle2::TrackFindingCDC::PerigeeCircle::impact
double impact() const
Getter for the signed distance of the origin to the circle.
Definition: PerigeeCircle.h:444
Belle2::TrackFindingCDC::UncertainPerigeeCircle
Adds an uncertainty matrix to the circle in perigee parameterisation.
Definition: UncertainPerigeeCircle.h:39
Belle2::TrackFindingCDC::UncertainPerigeeCircle::chi2
double chi2() const
Getter for the chi square value of the circle fit.
Definition: UncertainPerigeeCircle.h:184
Belle2
Abstract base class for different kinds of events.
Definition: MillepedeAlgorithm.h:19
Belle2::TrackFindingCDC::PerigeeCircle::phi0
double phi0() const
Getter for the azimuth angle of the direction of flight at the perigee.
Definition: PerigeeCircle.h:432
Belle2::TrackFindingCDC::UncertainPerigeeCircle::UncertainPerigeeCircle
UncertainPerigeeCircle()
Default constructor for ROOT compatibility.
Definition: UncertainPerigeeCircle.h:43
Belle2::TrackFindingCDC::PlainMatrix
A matrix implementation to be used as an interface typ through out the track finder.
Definition: PlainMatrix.h:50
Belle2::TrackFindingCDC::PerigeeCircle::curvature
double curvature() const
Getter for the signed curvature.
Definition: PerigeeCircle.h:426
Belle2::TrackFindingCDC::UncertainPerigeeCircle::perigeeParameters
PerigeeParameters perigeeParameters() const
Getter for the perigee parameters in the order defined by EPerigeeParameter.h.
Definition: UncertainPerigeeCircle.h:153
Belle2::TrackFindingCDC::UncertainPerigeeCircle::average
static UncertainPerigeeCircle average(const UncertainPerigeeCircle &fromPerigeeCircle, const UncertainPerigeeCircle &toPerigeeCircle)
Average the parameters of the two given perigee circles properly considering their covariance matrix.
Definition: UncertainPerigeeCircle.cc:21