Analysis Software
Documentation for sPHENIX simulation 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 
21 
22 #include <cmath>
23 #include <functional>
24 #include <tuple>
25 #include <variant>
26 
27 namespace Acts {
28 
34 namespace detail {
35 
61 Result<std::tuple<BoundTrackParameters, BoundMatrix, double>> boundState(
62  const GeometryContext& geoContext, BoundSquareMatrix& covarianceMatrix,
63  BoundMatrix& jacobian, FreeMatrix& transportJacobian,
64  FreeVector& derivatives, BoundToFreeMatrix& jacToGlobal,
65  FreeVector& parameters, const ParticleHypothesis& particleHypothesis,
66  bool covTransport, double accumulatedPath, const Surface& surface,
67  const FreeToBoundCorrection& freeToBoundCorrection =
68  FreeToBoundCorrection(false));
69 
91 std::tuple<CurvilinearTrackParameters, BoundMatrix, double> curvilinearState(
92  BoundSquareMatrix& covarianceMatrix, BoundMatrix& jacobian,
93  FreeMatrix& transportJacobian, FreeVector& derivatives,
94  BoundToFreeMatrix& jacToGlobal, const FreeVector& parameters,
95  const ParticleHypothesis& particleHypothesis, bool covTransport,
96  double accumulatedPath);
97 
116  const GeometryContext& geoContext, BoundSquareMatrix& boundCovariance,
117  BoundMatrix& fullTransportJacobian, FreeMatrix& freeTransportJacobian,
118  FreeVector& freeToPathDerivatives, BoundToFreeMatrix& boundToFreeJacobian,
119  FreeVector& freeParameters, const Surface& surface,
120  const FreeToBoundCorrection& freeToBoundCorrection =
121  FreeToBoundCorrection(false));
122 
135  BoundMatrix& fullTransportJacobian,
136  FreeMatrix& freeTransportJacobian,
137  FreeVector& freeToPathDerivatives,
138  BoundToFreeMatrix& boundToFreeJacobian,
139  const Vector3& direction);
140 
141 } // namespace detail
142 } // namespace Acts