Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2026-07-26 08:22:01

0001 /** TRACCC library, part of the ACTS project (R&D line)
0002  *
0003  * (c) 2026 CERN for the benefit of the ACTS project
0004  *
0005  * Mozilla Public License Version 2.0
0006  */
0007 
0008 #pragma once
0009 
0010 namespace traccc::utils {
0011 
0012 template <detray::concepts::algebra ALGEBRA_TYPE>
0013 TRACCC_HOST_DEVICE std::array<float, 2u> to_float_array(
0014     const detray::dpoint2D<ALGEBRA_TYPE>& point) {
0015   return {static_cast<float>(getter::element(point, 0u)),
0016           static_cast<float>(getter::element(point, 1u))};
0017 }
0018 
0019 template <detray::concepts::algebra ALGEBRA_TYPE>
0020 TRACCC_HOST_DEVICE std::array<float, 3u> to_float_array(
0021     const detray::dpoint3D<ALGEBRA_TYPE>& point) {
0022   return {static_cast<float>(getter::element(point, 0u)),
0023           static_cast<float>(getter::element(point, 1u)),
0024           static_cast<float>(getter::element(point, 2u))};
0025 }
0026 
0027 template <detray::concepts::algebra ALGEBRA_TYPE>
0028 TRACCC_HOST_DEVICE detray::dpoint2D<ALGEBRA_TYPE> to_dpoint2D(
0029     const std::array<float, 2u>& arr) {
0030   detray::dpoint2D<ALGEBRA_TYPE> point;
0031   getter::element(point, 0u) =
0032       static_cast<typename ALGEBRA_TYPE::value_type>(arr[0u]);
0033   getter::element(point, 1u) =
0034       static_cast<typename ALGEBRA_TYPE::value_type>(arr[1u]);
0035   return point;
0036 }
0037 
0038 template <detray::concepts::algebra ALGEBRA_TYPE>
0039 TRACCC_HOST_DEVICE detray::dpoint3D<ALGEBRA_TYPE> to_dpoint3D(
0040     const std::array<float, 3u>& arr) {
0041   detray::dpoint3D<ALGEBRA_TYPE> point;
0042   getter::element(point, 0u) =
0043       static_cast<typename ALGEBRA_TYPE::value_type>(arr[0u]);
0044   getter::element(point, 1u) =
0045       static_cast<typename ALGEBRA_TYPE::value_type>(arr[1u]);
0046   getter::element(point, 2u) =
0047       static_cast<typename ALGEBRA_TYPE::value_type>(arr[2u]);
0048   return point;
0049 }
0050 
0051 }  // namespace traccc::utils