|
||||
File indexing completed on 2025-01-18 09:27:37
0001 // This file is part of the Acts project. 0002 // 0003 // Copyright (C) 2024 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 http://mozilla.org/MPL/2.0/. 0008 0009 #pragma once 0010 0011 #include "Acts/Definitions/Algebra.hpp" 0012 #include "Acts/Definitions/Tolerance.hpp" 0013 #include "Acts/Definitions/TrackParametrization.hpp" 0014 #include "Acts/Geometry/GeometryContext.hpp" 0015 #include "Acts/Utilities/Result.hpp" 0016 0017 namespace Acts { 0018 0019 class Surface; 0020 0021 /// Transform bound track parameters into equivalent free track parameters. 0022 /// 0023 /// @param surface Surface onto which the input parameters are bound 0024 /// @param geoCtx Geometry context for the local-to-global transformation 0025 /// @param boundParams Bound track parameters vector 0026 /// @return Equivalent free trackparameters vector 0027 FreeVector transformBoundToFreeParameters(const Surface& surface, 0028 const GeometryContext& geoCtx, 0029 const BoundVector& boundParams); 0030 0031 /// Convert free track parameters to bound track parameters. 0032 /// 0033 /// @param freeParams Free track parameters vector 0034 /// @param surface Surface onto which the parameters are bound 0035 /// @param geoCtx Geometry context for the global-to-local transformation 0036 /// @param tolerance Tolerance used for globalToLocal 0037 /// 0038 /// @return Bound track parameters vector on the given surface 0039 Result<BoundVector> transformFreeToBoundParameters( 0040 const FreeVector& freeParams, const Surface& surface, 0041 const GeometryContext& geoCtx, ActsScalar tolerance = s_onSurfaceTolerance); 0042 0043 /// Convert position and direction to bound track parameters. 0044 /// 0045 /// @param position Global track three-position 0046 /// @param time Global track time 0047 /// @param direction Global direction three-vector; normalization is ignored. 0048 /// @param qOverP Charge-over-momentum-like parameter 0049 /// @param surface Surface onto which the parameters are bound 0050 /// @param geoCtx Geometry context for the global-to-local transformation 0051 /// @param tolerance Tolerance used for globalToLocal 0052 /// 0053 /// @return Equivalent bound parameters vector on the given surface 0054 Result<BoundVector> transformFreeToBoundParameters( 0055 const Vector3& position, ActsScalar time, const Vector3& direction, 0056 ActsScalar qOverP, const Surface& surface, const GeometryContext& geoCtx, 0057 ActsScalar tolerance = s_onSurfaceTolerance); 0058 0059 /// Convert direction to curvilinear track parameters. 0060 /// 0061 /// @param time Global track time 0062 /// @param direction Global direction three-vector; normalization is ignored. 0063 /// @param qOverP Charge-over-momentum-like parameter 0064 /// @return Equivalent bound parameters vector on the curvilinear surface 0065 /// 0066 /// @note The parameters are assumed to be defined at the origin of the 0067 /// curvilinear frame derived from the direction vector. The local 0068 /// coordinates are zero by construction. 0069 BoundVector transformFreeToCurvilinearParameters(ActsScalar time, 0070 const Vector3& direction, 0071 ActsScalar qOverP); 0072 0073 /// Convert direction angles to curvilinear track parameters. 0074 /// 0075 /// @param time Global track time 0076 /// @param phi Global transverse direction angle 0077 /// @param theta Global longitudinal direction angle 0078 /// @param qOverP Charge-over-momentum-like parameter 0079 /// @return Equivalent bound parameters vector on the curvilinear surface 0080 /// 0081 /// @note The parameters are assumed to be defined at the origin of the 0082 /// curvilinear frame derived from the direction angles. The local 0083 /// coordinates are zero by construction. 0084 BoundVector transformFreeToCurvilinearParameters(ActsScalar time, 0085 ActsScalar phi, 0086 ActsScalar theta, 0087 ActsScalar qOverP); 0088 0089 } // namespace Acts
[ Source navigation ] | [ Diff markup ] | [ Identifier search ] | [ general search ] |
This page was automatically generated by the 2.3.7 LXR engine. The LXR team |