Belle II Software  release-05-01-25
HelixParameters.h
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 #pragma once
11 
12 #include <tracking/trackFindingCDC/geometry/PerigeeParameters.h>
13 #include <tracking/trackFindingCDC/geometry/SZParameters.h>
14 
15 #include <tracking/trackFindingCDC/geometry/UncertainParameters.h>
16 
17 namespace Belle2 {
23  namespace TrackFindingCDC {
24 
26  namespace NHelixParameterIndices {
27 
29  enum EHelixParameter {
31  c_Curv = 0,
32 
34  c_Phi0 = 1,
35 
37  c_I = 2,
38 
40  c_TanL = 3,
41 
43  c_Z0 = 4,
44 
46  c_N = 5,
47  };
48  }
49 
52 
53  // Guard to prevent repeated template symbol emission
54  struct HelixUtil;
56 
59 
61  static HelixUtil::ParameterVector reversalSigns();
62 
64  static PerigeeUtil::ParameterVector getPerigeeParameters(const ParameterVector& helixPar);
65 
67  static SZUtil::ParameterVector getSZParameters(const ParameterVector& helixPar);
68 
70  static HelixUtil::ParameterVector stack(const PerigeeUtil::ParameterVector& perigeePar,
71  const SZUtil::ParameterVector& szPar);
72 
74  static PerigeeUtil::CovarianceMatrix getPerigeeCovariance(const CovarianceMatrix& helixCov);
75 
77  static SZUtil::CovarianceMatrix getSZCovariance(const CovarianceMatrix& helixCov);
78 
80  static HelixUtil::CovarianceMatrix stackBlocks(const PerigeeUtil::CovarianceMatrix& perigeeCov,
81  const SZUtil::CovarianceMatrix& szCov);
82 
84  using PerigeeAmbiguity = TrackFindingCDC::JacobianMatrix<3, 5>;
85 
87  static PerigeeAmbiguity defaultPerigeeAmbiguity();
88 
95  static double average(const HelixUtil::ParameterVector& fromPar,
96  const HelixUtil::CovarianceMatrix& fromCov,
97  const HelixUtil::ParameterVector& toPar,
98  const HelixUtil::CovarianceMatrix& toCov,
101 
110  static double average(const PerigeeUtil::ParameterVector& fromPar,
111  const PerigeeUtil::CovarianceMatrix& fromCov,
112  const HelixUtil::PerigeeAmbiguity& fromAmbiguity,
113  const HelixUtil::ParameterVector& toPar,
114  const HelixUtil::CovarianceMatrix& toCov,
117 
125  static double average(const PerigeeUtil::ParameterVector& fromPar,
126  const PerigeeUtil::CovarianceMatrix& fromCov,
127  const HelixUtil::PerigeeAmbiguity& fromAmbiguity,
128  const PerigeeUtil::ParameterVector& toPar,
129  const PerigeeUtil::CovarianceMatrix& toCov,
130  const HelixUtil::PerigeeAmbiguity& toAmbiguity,
131  const SZUtil::ParameterVector& szParameters,
134  };
135 
138 
141 
144 
147 
150  }
151 
153 }
Belle2::TrackFindingCDC::NHelixParameterIndices::c_N
@ c_N
Constant for the total number of indices.
Definition: HelixParameters.h:54
Belle2::TrackFindingCDC::HelixUtil
Utility struct for functions and types related to the helix parameters.
Definition: HelixParameters.h:66
Belle2::TrackFindingCDC::NHelixParameterIndices::c_Curv
@ c_Curv
Constant to address the curvature in the xy plane.
Definition: HelixParameters.h:39
Belle2::TrackFindingCDC::NHelixParameterIndices::c_TanL
@ c_TanL
Constant to address the tan lambda dip out of the xy plane.
Definition: HelixParameters.h:48
Belle2::TrackFindingCDC::HelixUtil::PerigeeAmbiguity
TrackFindingCDC::JacobianMatrix< 3, 5 > PerigeeAmbiguity
Matrix type for the ambiguity to the perigee parameters, e.g. under the stereo projection.
Definition: HelixParameters.h:92
Belle2::TrackFindingCDC::UncertainParametersUtil< HelixUtil, EHelixParameter >::JacobianMatrix
TrackFindingCDC::JacobianMatrix< c_N > JacobianMatrix
The matrix type used to translate covariances and precisions im auto mapping of the parameter space.
Definition: UncertainParameters.h:52
Belle2::TrackFindingCDC::NHelixParameterIndices::c_Z0
@ c_Z0
Constant to address the z start position.
Definition: HelixParameters.h:51
Belle2::TrackFindingCDC::UncertainParametersUtil< HelixUtil, EHelixParameter >::ParameterVector
TrackFindingCDC::ParameterVector< c_N > ParameterVector
The vector type representing the n related parameters.
Definition: UncertainParameters.h:43
Belle2
Abstract base class for different kinds of events.
Definition: MillepedeAlgorithm.h:19
Belle2::TrackFindingCDC::UncertainParametersUtil< HelixUtil, EHelixParameter >::PrecisionMatrix
TrackFindingCDC::PrecisionMatrix< c_N > PrecisionMatrix
The matrix type representing the precision of the n related parameters.
Definition: UncertainParameters.h:49
Belle2::TrackFindingCDC::UncertainParametersUtil< HelixUtil, EHelixParameter >
Belle2::TrackFindingCDC::NHelixParameterIndices::c_I
@ c_I
Constant to address the impact parameter.
Definition: HelixParameters.h:45
Belle2::TrackFindingCDC::UncertainParametersUtil< HelixUtil, EHelixParameter >::CovarianceMatrix
TrackFindingCDC::CovarianceMatrix< c_N > CovarianceMatrix
The matrix type representing the covariance of the n related parameters.
Definition: UncertainParameters.h:46
Belle2::TrackFindingCDC::PlainMatrix
A matrix implementation to be used as an interface typ through out the track finder.
Definition: PlainMatrix.h:50
Belle2::TrackFindingCDC::NHelixParameterIndices::EHelixParameter
EHelixParameter
Enumeration to address the individual helix parameters in a vector or matrix.
Definition: HelixParameters.h:37
Belle2::TrackFindingCDC::NHelixParameterIndices::c_Phi0
@ c_Phi0
Constant to address the azimuth angle of the direction of flight.
Definition: HelixParameters.h:42