EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
CovarianceEngine.hpp
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file CovarianceEngine.hpp
1 // This file is part of the Acts project.
2 //
3 // Copyright (C) 2019-2020 CERN for the benefit of the Acts project
4 //
5 // This Source Code Form is subject to the terms of the Mozilla Public
6 // License, v. 2.0. If a copy of the MPL was not distributed with this
7 // file, You can obtain one at http://mozilla.org/MPL/2.0/.
8 
9 #pragma once
10 
11 // Workaround for building on clang+libstdc++
13 
18 
19 #include <cmath>
20 #include <functional>
21 
22 namespace Acts {
23 
29 namespace detail {
30 
54 std::tuple<BoundTrackParameters, BoundMatrix, double> boundState(
55  std::reference_wrapper<const GeometryContext> geoContext,
56  BoundSymMatrix& covarianceMatrix, BoundMatrix& jacobian,
57  FreeMatrix& transportJacobian, FreeVector& derivatives,
58  BoundToFreeMatrix& jacobianLocalToGlobal, const FreeVector& parameters,
59  bool covTransport, double accumulatedPath, const Surface& surface);
60 
81 std::tuple<CurvilinearTrackParameters, BoundMatrix, double> curvilinearState(
82  BoundSymMatrix& covarianceMatrix, BoundMatrix& jacobian,
83  FreeMatrix& transportJacobian, FreeVector& derivatives,
84  BoundToFreeMatrix& jacobianLocalToGlobal, const FreeVector& parameters,
85  bool covTransport, double accumulatedPath);
86 
103  std::reference_wrapper<const GeometryContext> geoContext,
104  BoundSymMatrix& covarianceMatrix, BoundMatrix& jacobian,
105  FreeMatrix& transportJacobian, FreeVector& derivatives,
106  BoundToFreeMatrix& jacobianLocalToGlobal, const FreeVector& parameters,
107  const Surface& surface);
108 
120 void covarianceTransport(BoundSymMatrix& covarianceMatrix,
121  BoundMatrix& jacobian, FreeMatrix& transportJacobian,
122  FreeVector& derivatives,
123  BoundToFreeMatrix& jacobianLocalToGlobal,
124  const Vector3D& direction);
125 } // namespace detail
126 } // namespace Acts