![]() |
|
|||
File indexing completed on 2025-09-17 08:01:41
0001 // This file is part of the ACTS project. 0002 // 0003 // Copyright (C) 2016 CERN for the benefit of the ACTS project 0004 // 0005 // This Source Code Form is subject to the terms of the Mozilla Public 0006 // License, v. 2.0. If a copy of the MPL was not distributed with this 0007 // file, You can obtain one at https://mozilla.org/MPL/2.0/. 0008 0009 #pragma once 0010 0011 #include "Acts/Definitions/TrackParametrization.hpp" 0012 #include "Acts/Geometry/GeometryContext.hpp" 0013 0014 namespace Acts { 0015 class Surface; 0016 } // namespace Acts 0017 0018 namespace Acts::detail::sympy { 0019 0020 /// @brief These functions perform the calculation of the Jacobians for the 0021 /// the covariance transport. This is a purely algebraic problem the 0022 /// calculations are identical for @c StraightLineStepper and @c EigenStepper. 0023 /// As a consequence the methods can be located in a separate file. 0024 0025 /// @brief This function calculates the full transport jacobian from a bound 0026 /// curvilinear representation to a new bound representation 0027 /// 0028 /// @note Modifications of the jacobian related to the projection onto a surface is 0029 /// considered. Since a variation of the start parameters within a given 0030 /// uncertainty would lead to a variation of the end parameters, these need to 0031 /// be propagated onto the target surface. This an approximated approach to 0032 /// treat the (assumed) small change. 0033 /// 0034 /// @param [in] geoContext The geometry Context 0035 /// @param [in] surface Target surface 0036 /// @param [in] freeParameters Free, nominal parametrisation 0037 /// @param [in] boundToFreeJacobian Jacobian from bound to free at start 0038 /// @param [in] freeTransportJacobian Transport jacobian free to free 0039 /// @param [in] freeToPathDerivatives Path length derivatives for free parameters 0040 /// @param [out] fullTransportJacobian A 6x6 transport jacobian from bound to bound 0041 /// 0042 /// @note jac(locA->locB) = jac(gloB->locB)*(1+ 0043 /// pathCorrectionFactor(gloB))*jacTransport(gloA->gloB) *jac(locA->gloA) 0044 void boundToBoundTransportJacobian(const GeometryContext& geoContext, 0045 const Surface& surface, 0046 const FreeVector& freeParameters, 0047 const BoundToFreeMatrix& boundToFreeJacobian, 0048 const FreeMatrix& freeTransportJacobian, 0049 FreeToBoundMatrix& freeToBoundJacobian, 0050 const FreeVector& freeToPathDerivatives, 0051 BoundMatrix& fullTransportJacobian); 0052 0053 /// @brief This function calculates the full jacobian from a given 0054 /// bound/curvilinear parameterisation from a surface to new curvilinear 0055 /// parameterisation. 0056 /// 0057 /// @note Modifications of the jacobian related to the 0058 /// projection onto a curvilinear surface is considered. Since a variation of 0059 /// the start parameters within a given uncertainty would lead to a variation of 0060 /// the end parameters, these need to be propagated onto the target surface. 0061 /// This is an approximated approach to treat the (assumed) small change. 0062 /// 0063 /// @param [in] direction Normalised direction vector 0064 /// @param [in] boundToFreeJacobian Jacobian from bound to free at start 0065 /// @param [in] freeTransportJacobian Transport jacobian free to free 0066 /// @param [in] freeToPathDerivatives Path length derivatives for free parameters 0067 /// @param [out] fullTransportJacobian A 6x6 transport jacobian from curilinear to bound 0068 /// 0069 /// @note The parameter @p surface is only required if projected to bound 0070 /// parameters. In the case of curvilinear parameters the geometry and the 0071 /// position is known and the calculation can be simplified 0072 void boundToCurvilinearTransportJacobian( 0073 const Vector3& direction, const BoundToFreeMatrix& boundToFreeJacobian, 0074 const FreeMatrix& freeTransportJacobian, 0075 FreeToBoundMatrix& freeToBoundJacobian, 0076 const FreeVector& freeToPathDerivatives, 0077 BoundMatrix& fullTransportJacobian); 0078 0079 } // namespace Acts::detail::sympy
[ Source navigation ] | [ Diff markup ] | [ Identifier search ] | [ general search ] |
This page was automatically generated by the 2.3.7 LXR engine. The LXR team |
![]() ![]() |