Belle II Software  release-05-01-25
LineParameters.cc
1 /**************************************************************************
2  * BASF2 (Belle Analysis Framework 2) *
3  * Copyright(C) 2016 - 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/LineParameters.h>
11 
12 #include <tracking/trackFindingCDC/geometry/UncertainParameters.icc.h>
13 
14 #include <tracking/trackFindingCDC/numerics/Angle.h>
15 
16 using namespace Belle2;
17 using namespace TrackFindingCDC;
18 
20 
21 double LineUtil::average(const LineParameters& fromPar,
22  const LineCovariance& fromCov,
23  const LineParameters& toPar,
24  const LineCovariance& toCov,
25  LineParameters& avgPar,
26  LineCovariance& avgCov)
27 {
28  using namespace NLineParameterIndices;
29  LineParameters refPar;
30  refPar(c_I) = (fromPar(c_I) + toPar(c_I)) / 2;
31  refPar(c_Phi0) = AngleUtil::average(fromPar(c_Phi0), toPar(c_Phi0));
32 
33  LineParameters relFromPar;
34  relFromPar(c_I) = fromPar(c_I) - refPar(c_I);
35  relFromPar(c_Phi0) = AngleUtil::normalised(fromPar(c_Phi0) - refPar(c_Phi0));
36 
37  LineParameters relToPar;
38  relToPar(c_I) = toPar(c_I) - refPar(c_I);
39  relToPar(c_Phi0) = AngleUtil::normalised(toPar(c_Phi0) - refPar(c_Phi0));
40 
41  LineParameters relAvgPar;
42  double chi2 =
43  CovarianceMatrixUtil::average(relFromPar, fromCov, relToPar, toCov, relAvgPar, avgCov);
44 
45  avgPar(c_I) = relAvgPar(c_I) + refPar(c_I);
46  avgPar(c_Phi0) = AngleUtil::normalised(relAvgPar(c_Phi0) + refPar(c_Phi0));
47 
48  return chi2;
49 }
Belle2::TrackFindingCDC::CovarianceMatrixUtil::average
static double average(const ParameterVector< N > &par1, const CovarianceMatrix< N > &cov1, const ParameterVector< N > &par2, const CovarianceMatrix< N > &cov2, ParameterVector< N > &par, CovarianceMatrix< N > &cov)
Averages two parameter vectors taking into account their respective covariances.
Definition: CovarianceMatrixUtil.h:156
Belle2
Abstract base class for different kinds of events.
Definition: MillepedeAlgorithm.h:19
Belle2::TrackFindingCDC::AngleUtil::average
static double average(const double angle1, double angle2)
Combines two angluar values to the one that lies half way between them on the short arc.
Definition: Angle.h:37
Belle2::TrackFindingCDC::UncertainParametersUtil< LineUtil, ELineParameter >
Belle2::TrackFindingCDC::LineUtil::average
static double average(const LineUtil::ParameterVector &fromPar, const LineUtil::CovarianceMatrix &fromCov, const LineUtil::ParameterVector &toPar, const LineUtil::CovarianceMatrix &toCov, LineUtil::ParameterVector &avgPar, LineUtil::CovarianceMatrix &avgCov)
Calculates the weighted average between two line parameter sets with their respective covariance matr...
Definition: LineParameters.cc:21
Belle2::TrackFindingCDC::PlainMatrix
A matrix implementation to be used as an interface typ through out the track finder.
Definition: PlainMatrix.h:50
Belle2::TrackFindingCDC::AngleUtil::normalised
static double normalised(const double angle)
Normalise an angle to lie in the range from [-pi, pi].
Definition: Angle.h:43