Belle II Software  release-08-01-10
HelixParameters.h
1 /**************************************************************************
2  * basf2 (Belle II Analysis Software Framework) *
3  * Author: The Belle II Collaboration *
4  * *
5  * See git log for contributors and copyright holders. *
6  * This file is licensed under LGPL-3.0, see LICENSE.md. *
7  **************************************************************************/
8 #pragma once
9 
10 #include <tracking/trackFindingCDC/geometry/PerigeeParameters.h>
11 #include <tracking/trackFindingCDC/geometry/SZParameters.h>
12 
13 #include <tracking/trackFindingCDC/geometry/UncertainParameters.h>
14 
15 namespace Belle2 {
21  namespace TrackFindingCDC {
22 
24  namespace NHelixParameterIndices {
25 
29  c_Curv = 0,
30 
32  c_Phi0 = 1,
33 
35  c_I = 2,
36 
38  c_TanL = 3,
39 
41  c_Z0 = 4,
42 
44  c_N = 5,
45  };
46  }
47 
49  using EHelixParameter = NHelixParameterIndices::EHelixParameter;
50 
51  // Guard to prevent repeated template symbol emission
52  struct HelixUtil;
53  extern template struct UncertainParametersUtil<HelixUtil, EHelixParameter>;
54 
57 
59  static HelixUtil::ParameterVector reversalSigns();
60 
62  static PerigeeUtil::ParameterVector getPerigeeParameters(const ParameterVector& helixPar);
63 
65  static SZUtil::ParameterVector getSZParameters(const ParameterVector& helixPar);
66 
68  static HelixUtil::ParameterVector stack(const PerigeeUtil::ParameterVector& perigeePar,
69  const SZUtil::ParameterVector& szPar);
70 
72  static PerigeeUtil::CovarianceMatrix getPerigeeCovariance(const CovarianceMatrix& helixCov);
73 
75  static SZUtil::CovarianceMatrix getSZCovariance(const CovarianceMatrix& helixCov);
76 
78  static HelixUtil::CovarianceMatrix stackBlocks(const PerigeeUtil::CovarianceMatrix& perigeeCov,
79  const SZUtil::CovarianceMatrix& szCov);
80 
83 
85  static PerigeeAmbiguity defaultPerigeeAmbiguity();
86 
93  static double average(const HelixUtil::ParameterVector& fromPar,
94  const HelixUtil::CovarianceMatrix& fromCov,
95  const HelixUtil::ParameterVector& toPar,
96  const HelixUtil::CovarianceMatrix& toCov,
99 
108  static double average(const PerigeeUtil::ParameterVector& fromPar,
109  const PerigeeUtil::CovarianceMatrix& fromCov,
110  const HelixUtil::PerigeeAmbiguity& fromAmbiguity,
111  const HelixUtil::ParameterVector& toPar,
112  const HelixUtil::CovarianceMatrix& toCov,
115 
123  static double average(const PerigeeUtil::ParameterVector& fromPar,
124  const PerigeeUtil::CovarianceMatrix& fromCov,
125  const HelixUtil::PerigeeAmbiguity& fromAmbiguity,
126  const PerigeeUtil::ParameterVector& toPar,
127  const PerigeeUtil::CovarianceMatrix& toCov,
128  const HelixUtil::PerigeeAmbiguity& toAmbiguity,
129  const SZUtil::ParameterVector& szParameters,
132  };
133 
136 
139 
142 
145 
148  }
149 
151 }
A matrix implementation to be used as an interface typ through out the track finder.
Definition: PlainMatrix.h:40
EHelixParameter
Enumeration to address the individual helix parameters in a vector or matrix.
@ c_I
Constant to address the impact parameter.
@ c_Phi0
Constant to address the azimuth angle of the direction of flight.
@ c_TanL
Constant to address the tan lambda dip out of the xy plane.
@ c_Z0
Constant to address the z start position.
@ c_Curv
Constant to address the curvature in the xy plane.
@ c_N
Constant for the total number of indices.
Abstract base class for different kinds of events.
Utility struct for functions and types related to the helix parameters.
TrackFindingCDC::JacobianMatrix< 3, 5 > PerigeeAmbiguity
Matrix type for the ambiguity to the perigee parameters, e.g. under the stereo projection.
TrackFindingCDC::CovarianceMatrix< c_N > CovarianceMatrix
The matrix type representing the covariance of the n related parameters.
TrackFindingCDC::ParameterVector< c_N > ParameterVector
The vector type representing the n related parameters.
TrackFindingCDC::JacobianMatrix< c_N > JacobianMatrix
The matrix type used to translate covariances and precisions im auto mapping of the parameter space.
TrackFindingCDC::PrecisionMatrix< c_N > PrecisionMatrix
The matrix type representing the precision of the n related parameters.