Repository: acts-project/acts
Pull request #4125: chore: Update traccc to v0.20.0
Author: login: stephenswat
Labels: name: Infrastructure
description: Changes to build tools, continous integration, ...
name: Component - Examples
description: Affects the Examples module
name: Component - Plugins
description: Affects one or more Plugins
Created: 2025-03-10T14:26:09Z | Merged: 2025-03-26T11:16:39Z

Building on work by @asalzburger in #4068, this commit updates traccc to v0.20.0; in the process, it also updates detray to v0.89.0, vecmem to v1.14.0, and covfie to v0.12.1.

--- END COMMIT MESSAGE ---

Closes #4068.

<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit

- **Chores**
	- Updated dependency versions and source integrity checks.
	- Revised build configurations to include additional components.
- **Refactor**
	- Enhanced internal propagation and data conversion processes.
	- Updated Python detector bindings for streamlined performance.
- **New Features**
	- Added flexible numeric type support in field processing via a new field wrapper.
- **Tests**
	- Refined field conversion validations to ensure precise value checks.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->


Diff:
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 5fb87075118..7d9f6178b0f 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -269,11 +269,11 @@ set(_acts_root_version 6.20)
 set(_acts_tbb_version 2020.1)
 set(_acts_pythia8_version 8.309)
 set(_acts_pybind11_version 2.13.1)
-set(_acts_detray_version 0.75.3)
-set(_acts_traccc_version 0.16.0)
-set(_acts_covfie_version 0.10.0)
-set(_acts_vecmem_version 1.4.0)
-set(_acts_algebraplugins_version 0.22.0)
+set(_acts_detray_version 0.89.0)
+set(_acts_traccc_version 0.20.0)
+set(_acts_covfie_version 0.12.1)
+set(_acts_vecmem_version 1.14.0)
+set(_acts_algebraplugins_version 0.26.2)
 set(_acts_annoy_version 1.17.3)
 
 # recommended dependency version. if there is an opportunity to reach
diff --git a/Examples/Algorithms/Traccc/include/ActsExamples/Traccc/DetrayPropagator.hpp b/Examples/Algorithms/Traccc/include/ActsExamples/Traccc/DetrayPropagator.hpp
index 6dd0e073509..77ef4db980b 100644
--- a/Examples/Algorithms/Traccc/include/ActsExamples/Traccc/DetrayPropagator.hpp
+++ b/Examples/Algorithms/Traccc/include/ActsExamples/Traccc/DetrayPropagator.hpp
@@ -18,9 +18,10 @@
 
 #include <detray/navigation/navigator.hpp>
 #include <detray/propagator/actor_chain.hpp>
+#include <detray/propagator/propagation_config.hpp>
 #include <detray/propagator/propagator.hpp>
 #include <detray/test/utils/inspectors.hpp>
-#include <detray/test/utils/material_validation_utils.hpp>
+#include <detray/test/validation/material_validation_utils.hpp>
 
 namespace ActsExamples {
 
@@ -106,14 +107,18 @@ class DetrayPropagator : public PropagatorInterface {
           detray::material_validator::material_tracer<double, vecmem::vector>;
 
       // Propagator with empty actor chain (for the moment)
-      using Propagator = detray::propagator<
-          stepper_t, DetrayNavigator,
-          detray::actor_chain<detray::dtuple, MaterialTracer>>;
-
-      typename Propagator::state propagation(track,
-                                             m_cfg.detrayStore->detector);
-
-      Propagator propagator;
+      using Propagator =
+          detray::propagator<stepper_t, DetrayNavigator,
+                             detray::actor_chain<MaterialTracer>>;
+
+      using DetrayContext = typename Propagator::state::context_type;
+      DetrayContext dCtx{};
+      using DetrayConfig = detray::propagation::config;
+      DetrayConfig dCfg{};
+      // Add common configuration here
+      typename Propagator::state propagation(track, m_cfg.detrayStore->detector,
+                                             dCtx);
+      Propagator propagator(dCfg);
 
       MaterialTracer::state materialTracerState{
           *m_cfg.detrayStore->memoryResource};
@@ -159,10 +164,15 @@ class DetrayPropagator : public PropagatorInterface {
       using Propagator =
           detray::propagator<stepper_t, DetrayNavigator, detray::actor_chain<>>;
 
-      typename Propagator::state propagation(track,
-                                             m_cfg.detrayStore->detector);
+      using DetrayContext = typename Propagator::state::context_type;
+      DetrayContext dCtx{};
+      using DetrayConfig = detray::propagation::config;
+      DetrayConfig dCfg{};
+      // Add common configuration here
+      typename Propagator::state propagation(track, m_cfg.detrayStore->detector,
+                                             dCtx);
+      Propagator propagator(dCfg);
 
-      Propagator propagator;
       // Run the actual propagation
       propagator.propagate(propagation);
     }
diff --git a/Examples/Python/src/Covfie.cpp b/Examples/Python/src/Covfie.cpp
index 27ceb17373f..8afb920e3f4 100644
--- a/Examples/Python/src/Covfie.cpp
+++ b/Examples/Python/src/Covfie.cpp
@@ -20,7 +20,7 @@ using namespace pybind11::literals;
 namespace Acts::Python {
 
 namespace {
-template <typename field_t>
+template <typename field_t, typename scalar_type>
 void declareCovfieField(py::module& m, const std::string& fieldName) {
   using view_t = typename field_t::view_t;
   m.def("toView",
@@ -28,7 +28,7 @@ void declareCovfieField(py::module& m, const std::string& fieldName) {
   py::class_<field_t, std::shared_ptr<field_t>>(m, fieldName.c_str());
   py::class_<view_t, std::shared_ptr<view_t>>(
       m, (fieldName + std::string("View")).c_str())
-      .def("at", &view_t::template at<float, float, float>);
+      .def("at", &view_t::template at<scalar_type, scalar_type, scalar_type>);
 }
 }  // namespace
 
@@ -36,9 +36,15 @@ void addCovfie(Context& ctx) {
   auto main = ctx.get("main");
   auto m = main.def_submodule("covfie", "Submodule for covfie conversion");
 
-  declareCovfieField<Acts::CovfiePlugin::ConstantField>(m,
-                                                        "CovfieConstantField");
-  declareCovfieField<Acts::CovfiePlugin::InterpolatedField>(
+  py::class_<covfie::array::array<float, 3ul>,
+             std::shared_ptr<covfie::array::array<float, 3ul>>>(m,
+                                                                "ArrayFloat3")
+      .def("at", [](const covfie::array::array<float, 3ul>& self,
+                    std::size_t i) { return self[i]; });
+
+  declareCovfieField<Acts::CovfiePlugin::ConstantField, float>(
+      m, "CovfieConstantField");
+  declareCovfieField<Acts::CovfiePlugin::InterpolatedField, float>(
       m, "CovfieAffineLinearStridedField");
 
   m.def("makeCovfieField",
diff --git a/Examples/Python/src/Detray.cpp b/Examples/Python/src/Detray.cpp
index a409d80c4bf..816b68ca4c1 100644
--- a/Examples/Python/src/Detray.cpp
+++ b/Examples/Python/src/Detray.cpp
@@ -7,6 +7,7 @@
 // file, You can obtain one at https://mozilla.org/MPL/2.0/.
 
 #include "Acts/Detector/Detector.hpp"
+#include "Acts/Plugins/Detray/DetrayConversionUtils.hpp"
 #include "Acts/Plugins/Detray/DetrayConverter.hpp"
 #include "Acts/Plugins/Python/Utilities.hpp"
 
@@ -32,9 +33,8 @@ void addDetray(Context& ctx) {
 
   auto detray = m.def_submodule("detray");
   {
-    py::class_<detector<default_metadata>,
-               std::shared_ptr<detector<default_metadata>>>(detray,
-                                                            "detray_detector");
+    py::class_<DetrayHostDetector, std::shared_ptr<DetrayHostDetector>>(
+        detray, "detray_detector");
   }
 
   {
diff --git a/Examples/Python/tests/test_covfie.py b/Examples/Python/tests/test_covfie.py
index 3c1d7ca0d3d..bc8804883b0 100644
--- a/Examples/Python/tests/test_covfie.py
+++ b/Examples/Python/tests/test_covfie.py
@@ -13,8 +13,11 @@ def test_constant_field_conversion():
     cf = covfie.makeCovfieField(af)
     view = covfie.toView(cf)
     points = [(0, 0, 1), (1, 1, 1), (1, 0, 2)]
-    for x, y, z in points:
-        assert view.at(x, y, z) == [1, 2, 3]
+    for [x, y, z] in points:
+        field = view.at(x, y, z)
+        assert field.at(0) == 1
+        assert field.at(1) == 2
+        assert field.at(2) == 3
 
 
 @pytest.mark.skipif(not covfieEnabled, reason="Covfie plugin not available")
@@ -51,10 +54,11 @@ def test_root_field_conversion():
 
     error_margin_half_width = 0.0001
     for x, y, z in points:
-        val = af.getField(acts.Vector3(x, y, z), fc)
-        Bx1, By1, Bz1 = val[0], val[1], val[2]
+        rfield = af.getField(acts.Vector3(x, y, z), fc)
+        Bx1, By1, Bz1 = rfield[0], rfield[1], rfield[2]
 
-        Bx2, By2, Bz2 = tuple(view.at(x, y, z))
+        tfield = view.at(x, y, z)
+        Bx2, By2, Bz2 = tfield.at(0), tfield.at(1), tfield.at(2)
 
         assert (
             abs(Bx1 - Bx2) < error_margin_half_width
diff --git a/Plugins/Detray/include/Acts/Plugins/Detray/DetrayConversionUtils.hpp b/Plugins/Detray/include/Acts/Plugins/Detray/DetrayConversionUtils.hpp
index 930ed4ec942..a2e80b0e4df 100644
--- a/Plugins/Detray/include/Acts/Plugins/Detray/DetrayConversionUtils.hpp
+++ b/Plugins/Detray/include/Acts/Plugins/Detray/DetrayConversionUtils.hpp
@@ -16,6 +16,7 @@
 
 #include <detray/core/detector.hpp>
 #include <detray/definitions/grid_axis.hpp>
+#include <detray/detectors/default_metadata.hpp>
 #include <detray/io/frontend/payloads.hpp>
 
 namespace Acts {
@@ -24,7 +25,9 @@ namespace Experimental {
 class DetectorVolume;
 }
 
-using DetrayHostDetector = detray::detector<detray::default_metadata>;
+using DetrayMetaData = detray::default_metadata<detray::array<double>>;
+
+using DetrayHostDetector = detray::detector<DetrayMetaData>;
 
 namespace DetrayConversionUtils {
 
diff --git a/Plugins/Detray/include/Acts/Plugins/Detray/DetrayConverter.hpp b/Plugins/Detray/include/Acts/Plugins/Detray/DetrayConverter.hpp
index 104c71e1893..136dda7453e 100644
--- a/Plugins/Detray/include/Acts/Plugins/Detray/DetrayConverter.hpp
+++ b/Plugins/Detray/include/Acts/Plugins/Detray/DetrayConverter.hpp
@@ -17,9 +17,9 @@
 
 #include <memory>
 
-#include <detray/io/common/geometry_reader.hpp>
-#include <detray/io/common/material_map_reader.hpp>
-#include <detray/io/common/surface_grid_reader.hpp>
+#include <detray/io/backend/geometry_reader.hpp>
+#include <detray/io/backend/material_map_reader.hpp>
+#include <detray/io/backend/surface_grid_reader.hpp>
 #include <detray/io/frontend/detector_writer_config.hpp>
 #include <detray/utils/consistency_checker.hpp>
 
@@ -65,32 +65,32 @@ class DetrayConverter {
     detray::io::detector_payload detectorPayload =
         DetrayGeometryConverter::convertDetector(cCache, gctx, detector,
                                                  logger());
-    detray::io::geometry_reader::convert<detector_t>(detectorBuilder, names,
-                                                     detectorPayload);
+    detray::io::geometry_reader::from_payload<detector_t>(
+        detectorBuilder, names, detectorPayload);
 
     // (2a) homogeneous material
-    if constexpr (detray::detail::has_homogeneous_material_v<detector_t>) {
+    if constexpr (detray::concepts::has_homogeneous_material<detector_t>) {
       if (options.convertMaterial) {
         detray::io::detector_homogeneous_material_payload materialSlabsPayload =
             DetrayMaterialConverter::convertHomogeneousSurfaceMaterial(
                 cCache, detector, logger());
-        detray::io::homogeneous_material_reader::convert<detector_t>(
+        detray::io::homogeneous_material_reader::from_payload<detector_t>(
             detectorBuilder, names, std::move(materialSlabsPayload));
       }
     }
 
     // (2b) material grids
-    if constexpr (detray::detail::has_material_grids_v<detector_t>) {
+    if constexpr (detray::concepts::has_material_maps<detector_t>) {
       if (options.convertMaterial) {
         detray::io::detector_grids_payload<detray::io::material_slab_payload,
                                            detray::io::material_id>
             materialGridsPayload =
                 DetrayMaterialConverter::convertGridSurfaceMaterial(
                     cCache, detector, logger());
-        detray::io::material_map_reader<std::integral_constant<
-            std::size_t, 2>>::convert<detector_t>(detectorBuilder, names,
-                                                  std::move(
-                                                      materialGridsPayload));
+        detray::io::material_map_reader<
+            std::integral_constant<std::size_t, 2>>::
+            from_payload<detector_t>(detectorBuilder, names,
+                                     std::move(materialGridsPayload));
       }
     }
 
@@ -104,8 +104,8 @@ class DetrayConverter {
       detray::io::surface_grid_reader<typename detector_t::surface_type,
                                       std::integral_constant<std::size_t, 0>,
                                       std::integral_constant<std::size_t, 2>>::
-          template convert<detector_t>(detectorBuilder, names,
-                                       std::move(surfaceGridsPayload));
+          template from_payload<detector_t>(detectorBuilder, names,
+                                            std::move(surfaceGridsPayload));
     }
 
     detector_t detrayDetector(detectorBuilder.build(mr));
diff --git a/cmake/ActsExternSources.cmake b/cmake/ActsExternSources.cmake
index 8d994815a9d..456abf410ef 100644
--- a/cmake/ActsExternSources.cmake
+++ b/cmake/ActsExternSources.cmake
@@ -6,35 +6,35 @@ set(ACTS_ACTSVG_SOURCE
 mark_as_advanced(ACTS_ACTSVG_SOURCE)
 
 set(ACTS_VECMEM_SOURCE
-    "URL;https://github.com/acts-project/vecmem/archive/refs/tags/v${_acts_vecmem_version}.tar.gz;URL_HASH;SHA256=545dfb4de4f9f3d773eef6a0e3297ebf981bb81950930d0991ad739e31ab16af"
+    "URL;https://github.com/acts-project/vecmem/archive/refs/tags/v${_acts_vecmem_version}.tar.gz;URL_HASH;SHA256=3fac19e2766e5f997712b0799bd820f65c17ea9cddcb9e765cbdf214f41c4783"
     CACHE STRING
     "Source to take VECMEM from"
 )
 mark_as_advanced(ACTS_VECMEM_SOURCE)
 
 set(ACTS_ALGEBRAPLUGINS_SOURCE
-    "URL;https://github.com/acts-project/algebra-plugins/archive/refs/tags/v${_acts_algebraplugins_version}.tar.gz;URL_HASH;SHA256=6fde02181c1b856c0a17a1925f0969798eecd5e3d6f2a87ea2eb365b6c948cc1"
+    "URL;https://github.com/acts-project/algebra-plugins/archive/refs/tags/v${_acts_algebraplugins_version}.tar.gz;URL_HASH;SHA256=0170f22e1a75493b86464f27991117bc2c5a9d52554c75786e321d4c591990e7"
     CACHE STRING
     "Source to take ALGEBRAPLUGINS from"
 )
 mark_as_advanced(ACTS_ALGEBRAPLUGINS_SOURCE)
 
 set(ACTS_COVFIE_SOURCE
-    "URL;https://github.com/acts-project/covfie/archive/refs/tags/v${_acts_covfie_version}.tar.gz;URL_HASH;SHA256=d44142b302ffc193ad2229f1d2cc6d8d720dd9da8c37989ada4f23018f86c964"
+    "URL;https://github.com/acts-project/covfie/archive/refs/tags/v${_acts_covfie_version}.tar.gz;URL_HASH;SHA256=c33d7707ee30ab5fa8df686a780600343760701023ac0b23355627e1f2f044de"
     CACHE STRING
     "Source to take COVFIE from"
 )
 mark_as_advanced(ACTS_COVFIE_SOURCE)
 
 set(ACTS_DETRAY_SOURCE
-    "URL;https://github.com/acts-project/detray/archive/refs/tags/v${_acts_detray_version}.tar.gz;URL_HASH;SHA256=1249d7398d1e534bd36b6f5a7d06a5e67adf6adeb8bca188d7e35490a675de7a"
+    "URL;https://github.com/acts-project/detray/archive/refs/tags/v${_acts_detray_version}.tar.gz;URL_HASH;SHA256=b893b7f5434c1c9951433876ef43d1db1b08d36749f062e261b4e6d48e77d5db"
     CACHE STRING
     "Source to take DETRAY from"
 )
 mark_as_advanced(ACTS_DETRAY_SOURCE)
 
 set(ACTS_TRACCC_SOURCE
-    "URL;https://github.com/acts-project/traccc/archive/refs/tags/v${_acts_traccc_version}.tar.gz;URL_HASH;SHA256=86e0ebe7364d3a2106301d50a89feef583470da53c9dae6d1430dcc6eda7dba9"
+    "URL;https://github.com/acts-project/traccc/archive/refs/tags/v${_acts_traccc_version}.tar.gz;URL_HASH;SHA256=4f58aa1b33ccb49934a3552b4a0243787a94573a17b25331493d44010623fc95"
     CACHE STRING
     "Source to take TRACCC from"
 )
diff --git a/thirdparty/traccc/CMakeLists.txt b/thirdparty/traccc/CMakeLists.txt
index b877061a2ab..20a1ff929b7 100644
--- a/thirdparty/traccc/CMakeLists.txt
+++ b/thirdparty/traccc/CMakeLists.txt
@@ -37,7 +37,7 @@ set(TRACCC_SETUP_ALGEBRA_PLUGINS
 )
 set(TRACCC_SETUP_COVFIE OFF CACHE BOOL "Do not set up Covfie as part of Traccc")
 set(TRACCC_SETUP_DFELIBS
-    OFF
+    ON
     CACHE BOOL
     "Do not set up dfelibs as part of Traccc"
 )


Reviews:
user: login: coderabbitai[bot]
body: **Actionable comments posted: 0**

<details>
<summary>🧹 Nitpick comments (1)</summary><blockquote>

<details>
<summary>.gitlab-ci.yml (1)</summary><blockquote>

`406-413`: **Consistency Check on Updated CI Job Variables, You Must**

Changed the job name and Docker image to use Ubuntu 2404 with Clang 19, hmmm. Yet, notice I do: the DEPENDENCY_URL still references "ubuntu-22.04" instead of "ubuntu-24.04". Verify, you should, if this is intentional for compatibility or an oversight that needs alignment with the new image version.

</blockquote></details>

</blockquote></details>

<details>
<summary>📜 Review details</summary>

**Configuration used: CodeRabbit UI**
**Review profile: CHILL**
**Plan: Pro**

<details>
<summary>📥 Commits</summary>

Reviewing files that changed from the base of the PR and between 547ae7e206c4867d3a78068cddbb58f70ad5f671 and 4f6b2bfc0bdfd3b188bd8a1f37d39e36858a9672.

</details>

<details>
<summary>📒 Files selected for processing (1)</summary>

* `.gitlab-ci.yml` (1 hunks)

</details>

<details>
<summary>⏰ Context from checks skipped due to timeout of 90000ms (7)</summary>

* GitHub Check: macos
* GitHub Check: linux_ubuntu_extra (ubuntu2204, 20, clang++)
* GitHub Check: linux_ubuntu_extra (ubuntu2204, 20, g++)
* GitHub Check: linux_ubuntu
* GitHub Check: build_debug
* GitHub Check: unused_files
* GitHub Check: missing_includes

</details>

</details>

<!-- This is an auto-generated comment by CodeRabbit for review status -->
state: COMMENTED
author_association: NONE
submitted_at: 2025-03-10T15:00:31Z
user: login: coderabbitai[bot]
body: **Actionable comments posted: 0**

<details>
<summary>🧹 Nitpick comments (1)</summary><blockquote>

<details>
<summary>.github/workflows/builds.yml (1)</summary><blockquote>

`248-254`: **New build matrix entry with clang++-19, most intriguing it is!**

A new entry for the Ubuntu extra job now appears—using image `ubuntu2404_clang19` and specifying `cxx: clang++-19`, it does. Ensure, you must, that this configuration harmonizes with your dependency settings and that all builds and tests pass soundly in this environment.

</blockquote></details>

</blockquote></details>

<details>
<summary>📜 Review details</summary>

**Configuration used: CodeRabbit UI**
**Review profile: CHILL**
**Plan: Pro**

<details>
<summary>📥 Commits</summary>

Reviewing files that changed from the base of the PR and between ddd90bb65679f401e433edb01e3e2dd6d2bd794b and 8e4dc86ec4b9498e22bca19dcc139c10d8c87513.

</details>

<details>
<summary>📒 Files selected for processing (1)</summary>

* `.github/workflows/builds.yml` (1 hunks)

</details>

<details>
<summary>⏰ Context from checks skipped due to timeout of 90000ms (8)</summary>

* GitHub Check: linux_ubuntu_extra (ubuntu2404_clang19, 20, clang++-19)
* GitHub Check: linux_ubuntu_extra (ubuntu2204, 20, g++)
* GitHub Check: macos
* GitHub Check: linux_ubuntu
* GitHub Check: unused_files
* GitHub Check: missing_includes
* GitHub Check: build_debug
* GitHub Check: docs

</details>

</details>

<!-- This is an auto-generated comment by CodeRabbit for review status -->
state: COMMENTED
author_association: NONE
submitted_at: 2025-03-10T15:12:39Z
user: login: coderabbitai[bot]
body: **Actionable comments posted: 0**

<details>
<summary>🧹 Nitpick comments (1)</summary><blockquote>

<details>
<summary>CI/dependencies.sh (1)</summary><blockquote>

`3-4`: **Addition of `set -e`, a wise choice it is.**

Including `set -e` ensures that if any command fails, the script will exit immediately, strengthening your CI process, hmmm. Consider also the use of `set -o pipefail` in future—a most powerful ally in detecting errors within pipelines.

</blockquote></details>

</blockquote></details>

<details>
<summary>📜 Review details</summary>

**Configuration used: CodeRabbit UI**
**Review profile: CHILL**
**Plan: Pro**

<details>
<summary>📥 Commits</summary>

Reviewing files that changed from the base of the PR and between 82561418979b7a5200e8cec10211e62e4d9ae2c7 and 13986ab0554e988f4a5441a011c8165d0f5e74a6.

</details>

<details>
<summary>📒 Files selected for processing (1)</summary>

* `CI/dependencies.sh` (1 hunks)

</details>

<details>
<summary>⏰ Context from checks skipped due to timeout of 90000ms (22)</summary>

* GitHub Check: CI Bridge / lcg_107: [alma9, gcc14]
* GitHub Check: CI Bridge / lcg_107: [alma9, gcc13]
* GitHub Check: CI Bridge / lcg_106a: [alma9, clang16]
* GitHub Check: CI Bridge / lcg_106a: [alma9, gcc14]
* GitHub Check: CI Bridge / lcg_106a: [alma9, gcc13]
* GitHub Check: CI Bridge / lcg_105: [alma9, clang16]
* GitHub Check: unused_files
* GitHub Check: missing_includes
* GitHub Check: linux_ubuntu_extra (ubuntu2404_clang19, 20, clang++-19)
* GitHub Check: linux_ubuntu
* GitHub Check: linux_ubuntu_extra (ubuntu2204, 20, g++)
* GitHub Check: macos
* GitHub Check: CI Bridge / lcg_105: [alma9, gcc13]
* GitHub Check: CI Bridge / linux_ubuntu_2404_clang19
* GitHub Check: CI Bridge / linux_ubuntu_2204
* GitHub Check: CI Bridge / build_gnn_tensorrt
* GitHub Check: CI Bridge / build_exatrkx_cpu
* GitHub Check: CI Bridge / build_linux_ubuntu
* GitHub Check: CI Bridge / build_exatrkx
* GitHub Check: CI Bridge / clang_tidy
* GitHub Check: CI Bridge / clang_tidy
* GitHub Check: build_debug

</details>

</details>

<!-- This is an auto-generated comment by CodeRabbit for review status -->
state: COMMENTED
author_association: NONE
submitted_at: 2025-03-10T17:12:03Z
user: login: coderabbitai[bot]
body: **Actionable comments posted: 0**

<details>
<summary>🧹 Nitpick comments (1)</summary><blockquote>

<details>
<summary>Examples/Python/src/Covfie.cpp (1)</summary><blockquote>

`39-44`: **New ArrayFloat3 class, access to field components it provides!**

Added a wrapper class for `covfie::array::array<float, 3ul>` with an `at` method, you have. Good approach this is, for exposing array elements to Python, yes! But missing bounds checking for index access, I see. Consider adding error handling for out-of-bounds access, you should.

```diff
.def("at", [](const covfie::array::array<float, 3ul>& self,
               std::size_t i) { return self[i]; });
+.def("at", [](const covfie::array::array<float, 3ul>& self,
+               std::size_t i) { 
+      if (i >= 3) {
+          throw py::index_error("Index out of bounds");
+      }
+      return self[i]; 
+});
```

</blockquote></details>

</blockquote></details>

<details>
<summary>📜 Review details</summary>

**Configuration used: CodeRabbit UI**
**Review profile: CHILL**
**Plan: Pro**

<details>
<summary>📥 Commits</summary>

Reviewing files that changed from the base of the PR and between 13986ab0554e988f4a5441a011c8165d0f5e74a6 and f4c604fdaa26f6d586d3ea0aaed7c7069f2fb6aa.

</details>

<details>
<summary>📒 Files selected for processing (9)</summary>

* `CMakeLists.txt` (1 hunks)
* `Examples/Algorithms/Traccc/include/ActsExamples/Traccc/DetrayPropagator.hpp` (3 hunks)
* `Examples/Python/src/Covfie.cpp` (1 hunks)
* `Examples/Python/src/Detray.cpp` (2 hunks)
* `Examples/Python/tests/test_covfie.py` (2 hunks)
* `Plugins/Detray/include/Acts/Plugins/Detray/DetrayConversionUtils.hpp` (2 hunks)
* `Plugins/Detray/include/Acts/Plugins/Detray/DetrayConverter.hpp` (3 hunks)
* `cmake/ActsExternSources.cmake` (1 hunks)
* `thirdparty/traccc/CMakeLists.txt` (1 hunks)

</details>

<details>
<summary>🚧 Files skipped from review as they are similar to previous changes (6)</summary>

* thirdparty/traccc/CMakeLists.txt
* Examples/Python/src/Detray.cpp
* Plugins/Detray/include/Acts/Plugins/Detray/DetrayConversionUtils.hpp
* cmake/ActsExternSources.cmake
* CMakeLists.txt
* Plugins/Detray/include/Acts/Plugins/Detray/DetrayConverter.hpp

</details>

<details>
<summary>🧰 Additional context used</summary>

<details>
<summary>🧠 Learnings (1)</summary>

<details>
<summary>Examples/Algorithms/Traccc/include/ActsExamples/Traccc/DetrayPropagator.hpp (1)</summary>

```
Learnt from: asalzburger
PR: acts-project/acts#4068
File: Examples/Algorithms/Traccc/include/ActsExamples/Traccc/DetrayPropagator.hpp:0-0
Timestamp: 2025-03-12T13:25:22.860Z
Learning: The propagator in Acts/Plugins/Detray lacks copy constructor and move semantics, making it unsuitable for refactoring patterns that require returning or storing propagator instances.
```

</details>

</details>

</details>

<details>
<summary>⏰ Context from checks skipped due to timeout of 90000ms (25)</summary>

* GitHub Check: merge-sentinel
* GitHub Check: CI Bridge / build_gnn_tensorrt
* GitHub Check: CI Bridge / lcg_107: [alma9, gcc14]
* GitHub Check: CI Bridge / lcg_107: [alma9, clang19]
* GitHub Check: CI Bridge / lcg_107: [alma9, gcc13]
* GitHub Check: CI Bridge / lcg_106a: [alma9, clang16]
* GitHub Check: CI Bridge / lcg_106a: [alma9, gcc14]
* GitHub Check: CI Bridge / lcg_106a: [alma9, gcc13]
* GitHub Check: CI Bridge / build_exatrkx
* GitHub Check: CI Bridge / linux_ubuntu_2404_clang19
* GitHub Check: CI Bridge / build_linux_ubuntu
* GitHub Check: CI Bridge / linux_ubuntu_2204
* GitHub Check: CI Bridge / lcg_105: [alma9, gcc13]
* GitHub Check: CI Bridge / lcg_105: [alma9, clang16]
* GitHub Check: CI Bridge / build_exatrkx_cpu
* GitHub Check: CI Bridge / clang_tidy
* GitHub Check: CI Bridge / clang_tidy
* GitHub Check: docs
* GitHub Check: unused_files
* GitHub Check: missing_includes
* GitHub Check: macos
* GitHub Check: linux_ubuntu_extra (ubuntu2404_clang19, 20, clang++-19)
* GitHub Check: linux_ubuntu_extra (ubuntu2204, 20, g++)
* GitHub Check: linux_ubuntu
* GitHub Check: build_debug

</details>

<details>
<summary>🔇 Additional comments (9)</summary><blockquote>

<details>
<summary>Examples/Algorithms/Traccc/include/ActsExamples/Traccc/DetrayPropagator.hpp (5)</summary>

`21-21`: **Added include for propagation configuration, I see.**

Important this include is, for the new configuration system of detray v0.89.0. Proper form, this follows.

---

`24-24`: **Updated path to material validation utilities, hmm.**

Path to material validation utilities, updated it has been. Reflects reorganization in the detray library v0.89.0, this does. Correct, this change is.

---

`110-113`: **Simplified actor chain in Propagator definition, I see.**

From a detray::dtuple to a simple actor_chain with only MaterialTracer, changed it has been. Follows the new API patterns in detray v0.89.0, this does. Simpler and more maintainable, the code becomes.

---

`114-122`: **Added context and configuration support, you have.**

New type aliases for DetrayContext and DetrayConfig, introduced they are. Explicit context parameter in propagation state constructor, added it has been. Configuration parameter to Propagator constructor, passed it now is.

Match the updated API in detray v0.89.0, these changes do. Address the issue with copy semantics mentioned in the learnings, this might. Proper adaptation to the updated library, this is.

---

`167-174`: **Consistent changes in sterile case, good to see.**

Same pattern of context and configuration in the sterile propagation case, applied it has been. Consistency between both code paths, maintained it is. Important for code maintainability, this is.

</details>
<details>
<summary>Examples/Python/src/Covfie.cpp (2)</summary>

`23-32`: **Template parameter added, flexibility it brings!**

A template parameter `scalar_type` to `declareCovfieField` function now exists. This change, a good one it is! Allow different numeric types in field definitions, it does. The method signature for `at` now uses this parameter, instead of hardcoded `float`. Forward-thinking approach, this is, hmm!

---

`45-48`: **Updated function calls, consistency they maintain!**

Function calls to `declareCovfieField` now specify `float` as the `scalar_type`, hmm! Consistent with previous behavior this is, while leveraging the new template structure. Proper adaptation to code changes, I sense.

</details>
<details>
<summary>Examples/Python/tests/test_covfie.py (2)</summary>

`16-20`: **Changed tuple unpacking syntax and assertion style, more explicit it is!**

From `for x, y, z in points:` to `for [x, y, z] in points:` the syntax changed has. Matter of style this is, as both approaches valid are. But more important, the assertion style now checks individual components using the new `at` method. More precise testing this provides, yes!

---

`57-61`: **Field component access now through at method, compatible with C++ changes it is!**

Renamed variable from `val` to `rfield` you have, more descriptive this is. Access to field components now using the `at` method aligns with the C++ changes. More explicit and clear the code becomes!

</details>

</blockquote></details>

</details>

<!-- This is an auto-generated comment by CodeRabbit for review status -->
state: COMMENTED
author_association: NONE
submitted_at: 2025-03-19T09:51:13Z
user: login: asalzburger
state: CHANGES_REQUESTED
author_association: CONTRIBUTOR
submitted_at: 2025-03-24T15:51:55Z
user: login: stephenswat
state: COMMENTED
author_association: MEMBER
submitted_at: 2025-03-24T17:16:30Z
user: login: asalzburger
state: APPROVED
author_association: CONTRIBUTOR
submitted_at: 2025-03-26T09:10:42Z

Review comments:
diff_hunk: @@ -37,7 +37,7 @@ set(TRACCC_SETUP_ALGEBRA_PLUGINS
 )
 set(TRACCC_SETUP_COVFIE OFF CACHE BOOL "Do not set up Covfie as part of Traccc")
 set(TRACCC_SETUP_DFELIBS
-    OFF
+    ON
path: thirdparty/traccc/CMakeLists.txt
user: login: asalzburger
body: Why is that change? Otherwise good from my side.
created_at: 2025-03-24T15:51:47Z
author_association: CONTRIBUTOR
diff_hunk: @@ -37,7 +37,7 @@ set(TRACCC_SETUP_ALGEBRA_PLUGINS
 )
 set(TRACCC_SETUP_COVFIE OFF CACHE BOOL "Do not set up Covfie as part of Traccc")
 set(TRACCC_SETUP_DFELIBS
-    OFF
+    ON
path: thirdparty/traccc/CMakeLists.txt
user: login: stephenswat
body: So the dfelibs repository is now deprecared (@paulgessinger) and we've moved the ACTS and Detray repositories away from it. I tried to also migrate the traccc repository but this did not fly (see https://github.com/acts-project/traccc/pull/893) so for now we need traccc to explicitly download its own copy of dfelibs.
created_at: 2025-03-24T17:16:30Z
author_association: MEMBER

PR comments:
user: login: coderabbitai[bot]
created_at: 2025-03-10T14:26:19Z
body: <!-- This is an auto-generated comment: summarize by coderabbit.ai -->
<!-- walkthrough_start -->

## Walkthrough
Updated dependencies and module configurations, this PR has. Version numbers in build scripts increased, the Python bindings and C++ propagator refined, and test assertions adjusted to match new array types, they have been. Type alias definitions in the Detray plugins now more precise are, and conversion function names unified. Integrity checks in CMake files updated, and third-party dfelibs enabled, they have.

## Changes

| Files | Change Summary |
|-------|----------------|
| `CMakeLists.txt`, `cmake/ActsExtern…cmake`, `thirdparty/traccc/CMakeLists.txt` | Dependency versions bumped; SHA256 hashes updated; dfelibs enabled in build configuration. |
| `Examples/Algorithms/Traccc/…/DetrayPropagator.hpp` | Propagator refined with new type aliases (`DetrayContext`, `DetrayConfig`) and updated instantiation for propagation state. |
| `Examples/Python/src/Covfie.cpp`, `Examples/Python/src/Detray.cpp`, `Examples/Python/tests/test_covfie.py` | `declareCovfieField` enhanced with a template parameter and new `ArrayFloat3` added; Python binding for Detray updated; test assertions revised to directly access field components. |
| `Plugins/Detray/…/DetrayConversionUtils.hpp`, `Plugins/Detray/…/DetrayConverter.hpp` | Added `DetrayMetaData` alias and updated `DetrayHostDetector` type; payload processing functions renamed from `convert` to `from_payload` with updated conditional checks. |

## Sequence Diagram(s)

```mermaid
sequenceDiagram
    participant Caller as Python Caller
    participant Converter as DetrayConverter
    participant Geometry as GeometryReader (from_payload)
    participant Material as HomogeneousMaterialReader (from_payload)
    participant MaterialMap as MaterialMapReader (from_payload)
    participant Surface as SurfaceGridReader (from_payload)

    Caller->>Converter: Call convert(detectorPayload, …)
    Converter->>Geometry: Process geometry data
    Geometry-->>Converter: Return geometry info
    Converter->>Material: Read homogeneous material data
    Material-->>Converter: Return material info
    Converter->>MaterialMap: Process material grid data
    MaterialMap-->>Converter: Return grid info
    Converter->>Surface: Read surface grid data
    Surface-->>Converter: Return surface info
    Converter-->>Caller: Return processed detector
```

## Assessment against linked issues

| Objective | Addressed | Explanation |
|-----------|:---------:|-------------|
| Update dependency and version numbers for traccc, detray, and friends (#4068) | ✅ | |
| Adapt Covfie pytests to use new array return type (#4068) | ✅ | |
| Update Python bindings for Detray to integrate new detector implementations and payload conversion (#4068) | ✅ | |

## Possibly related PRs

- **acts-project/acts#3949**: Similar updates in the CMake configuration for dependency management and third-party libraries, closely related in scope.

## Suggested labels

`automerge`, `Changes Performance`

## Suggested reviewers

- benjaminhuth

## Poem

> Mmm, updated our code has been, yes,  
> Dependencies and bindings refined in the Force’s finesse.  
> New types and tests, clarity we gain,  
> In the streams of payloads, our logic remains.  
> Code strong it grows, as the Force flows again.

<!-- walkthrough_end -->

<!-- announcements_start -->

> [!TIP]
> <details>
> <summary>⚡🧪 Multi-step agentic review comment chat (experimental)</summary>
> 
> - We're introducing multi-step agentic chat in review comments. This experimental feature enhances review discussions with the CodeRabbit agentic chat by enabling advanced interactions, including the ability to create pull requests directly from comments.
> 						- To enable this feature, set early_access to true under in the settings.
> 
> </details>

<!-- announcements_end -->
<!-- internal state start -->


<!-- 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 -->

<!-- internal state end -->
<!-- finishing_touch_checkbox_start -->

<details>
<summary>✨ Finishing Touches</summary>

- [ ] <!-- {"checkboxId": "7962f53c-55bc-4827-bfbf-6a18da830691"} --> 📝 Generate Docstrings

</details>

<!-- finishing_touch_checkbox_end -->
<!-- tips_start -->

---



<details>
<summary>🪧 Tips</summary>

### Chat

There are 3 ways to chat with [CodeRabbit](https://coderabbit.ai?utm_source=oss&utm_medium=github&utm_campaign=acts-project/acts&utm_content=4125):

- Review comments: Directly reply to a review comment made by CodeRabbit. Example:
  - `I pushed a fix in commit <commit_id>, please review it.`
  - `Generate unit testing code for this file.`
  - `Open a follow-up GitHub issue for this discussion.`
- Files and specific lines of code (under the "Files changed" tab): Tag `@coderabbitai` in a new review comment at the desired location with your query. Examples:
  - `@coderabbitai generate unit testing code for this file.`
  -	`@coderabbitai modularize this function.`
- PR comments: Tag `@coderabbitai` in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
  - `@coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.`
  - `@coderabbitai read src/utils.ts and generate unit testing code.`
  - `@coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.`
  - `@coderabbitai help me debug CodeRabbit configuration file.`

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.

### CodeRabbit Commands (Invoked using PR comments)

- `@coderabbitai pause` to pause the reviews on a PR.
- `@coderabbitai resume` to resume the paused reviews.
- `@coderabbitai review` to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
- `@coderabbitai full review` to do a full review from scratch and review all the files again.
- `@coderabbitai summary` to regenerate the summary of the PR.
- `@coderabbitai generate docstrings` to [generate docstrings](https://docs.coderabbit.ai/finishing-touches/docstrings) for this PR.
- `@coderabbitai resolve` resolve all the CodeRabbit review comments.
- `@coderabbitai configuration` to show the current CodeRabbit configuration for the repository.
- `@coderabbitai help` to get help.

### Other keywords and placeholders

- Add `@coderabbitai ignore` anywhere in the PR description to prevent this PR from being reviewed.
- Add `@coderabbitai summary` to generate the high-level summary at a specific location in the PR description.
- Add `@coderabbitai` anywhere in the PR title to generate the title automatically.

### CodeRabbit Configuration File (`.coderabbit.yaml`)

- You can programmatically configure CodeRabbit by adding a `.coderabbit.yaml` file to the root of your repository.
- Please see the [configuration documentation](https://docs.coderabbit.ai/guides/configure-coderabbit) for more information.
- If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: `# yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json`

### Documentation and Community

- Visit our [Documentation](https://docs.coderabbit.ai) for detailed information on how to use CodeRabbit.
- Join our [Discord Community](http://discord.gg/coderabbit) to get help, request features, and share feedback.
- Follow us on [X/Twitter](https://twitter.com/coderabbitai) for updates and announcements.

</details>

<!-- tips_end -->
author_association: NONE
user: login: github-actions[bot]
created_at: 2025-03-10T14:58:23Z
body: # 📊: Physics performance monitoring for 26f79eb3ce7e047fc1564bf087f0b3e1628f52b8
[Full contents](https://acts-herald.app.cern.ch/view/acts-project/acts/2822266980)
# physmon summary
  - ✅ [Particles fatras](https://acts-herald.app.cern.ch/view/acts-project/acts/runs/14079485638/artifacts/physmon/html/simulation/particles_fatras.html)
  - ✅ [Particles geant4](https://acts-herald.app.cern.ch/view/acts-project/acts/runs/14079485638/artifacts/physmon/html/simulation/particles_geant4.html)
  - ✅ [Particles ttbar](https://acts-herald.app.cern.ch/view/acts-project/acts/runs/14079485638/artifacts/physmon/html/simulation/particles_ttbar.html)
  - ✅ [Vertices ttbar](https://acts-herald.app.cern.ch/view/acts-project/acts/runs/14079485638/artifacts/physmon/html/simulation/vertices_ttbar.html)
  - ✅ [Truth tracking (KF)](https://acts-herald.app.cern.ch/view/acts-project/acts/runs/14079485638/artifacts/physmon/html/trackfitting_kf/performance_trackfitting.html)
  - ✅ [Truth tracking (GSF)](https://acts-herald.app.cern.ch/view/acts-project/acts/runs/14079485638/artifacts/physmon/html/trackfitting_gsf/performance_trackfitting.html)
  - ✅ [Truth tracking (GX2F)](https://acts-herald.app.cern.ch/view/acts-project/acts/runs/14079485638/artifacts/physmon/html/trackfitting_gx2f/performance_trackfitting.html)
  - ✅ [Truth tracking (KF refit)](https://acts-herald.app.cern.ch/view/acts-project/acts/runs/14079485638/artifacts/physmon/html/trackrefitting_kf/performance_trackrefitting.html)
  - ✅ [Truth tracking (GSF refit)](https://acts-herald.app.cern.ch/view/acts-project/acts/runs/14079485638/artifacts/physmon/html/trackrefitting_gsf/performance_trackrefitting.html)
  - ✅ [CKF finding performance | trackfinding | single muon | truth smeared seeding](https://acts-herald.app.cern.ch/view/acts-project/acts/runs/14079485638/artifacts/physmon/html/trackfinding_1muon/truth_smeared/performance_finding_ckf.html)
  - ✅ [CKF fitting performance | trackfinding | single muon | truth smeared seeding](https://acts-herald.app.cern.ch/view/acts-project/acts/runs/14079485638/artifacts/physmon/html/trackfinding_1muon/truth_smeared/performance_fitting_ckf.html)
  - ✅ [CKF track summary | trackfinding | single muon | truth smeared seeding](https://acts-herald.app.cern.ch/view/acts-project/acts/runs/14079485638/artifacts/physmon/html/trackfinding_1muon/truth_smeared/tracksummary_ckf.html)
  - ✅ [Seeding trackfinding | single muon | truth estimated seeding](https://acts-herald.app.cern.ch/view/acts-project/acts/runs/14079485638/artifacts/physmon/html/trackfinding_1muon/truth_estimated/performance_seeding.html)
  - ✅ [CKF finding performance | trackfinding | single muon | truth estimated seeding](https://acts-herald.app.cern.ch/view/acts-project/acts/runs/14079485638/artifacts/physmon/html/trackfinding_1muon/truth_estimated/performance_finding_ckf.html)
  - ✅ [CKF fitting performance | trackfinding | single muon | truth estimated seeding](https://acts-herald.app.cern.ch/view/acts-project/acts/runs/14079485638/artifacts/physmon/html/trackfinding_1muon/truth_estimated/performance_fitting_ckf.html)
  - ✅ [CKF track summary | trackfinding | single muon | truth estimated seeding](https://acts-herald.app.cern.ch/view/acts-project/acts/runs/14079485638/artifacts/physmon/html/trackfinding_1muon/truth_estimated/tracksummary_ckf.html)
  - ✅ [Seeding trackfinding | single muon | default seeding](https://acts-herald.app.cern.ch/view/acts-project/acts/runs/14079485638/artifacts/physmon/html/trackfinding_1muon/seeded/performance_seeding.html)
  - ✅ [CKF finding performance | trackfinding | single muon | default seeding](https://acts-herald.app.cern.ch/view/acts-project/acts/runs/14079485638/artifacts/physmon/html/trackfinding_1muon/seeded/performance_finding_ckf.html)
  - ✅ [CKF fitting performance | trackfinding | single muon | default seeding](https://acts-herald.app.cern.ch/view/acts-project/acts/runs/14079485638/artifacts/physmon/html/trackfinding_1muon/seeded/performance_fitting_ckf.html)
  - ✅ [CKF track summary | trackfinding | single muon | default seeding](https://acts-herald.app.cern.ch/view/acts-project/acts/runs/14079485638/artifacts/physmon/html/trackfinding_1muon/seeded/tracksummary_ckf.html)
  - ✅ [Seeding trackfinding | single muon | orthogonal seeding](https://acts-herald.app.cern.ch/view/acts-project/acts/runs/14079485638/artifacts/physmon/html/trackfinding_1muon/orthogonal/performance_seeding.html)
  - ✅ [CKF finding performance | trackfinding | single muon | orthogonal seeding](https://acts-herald.app.cern.ch/view/acts-project/acts/runs/14079485638/artifacts/physmon/html/trackfinding_1muon/orthogonal/performance_finding_ckf.html)
  - ✅ [CKF fitting performance | trackfinding | single muon | orthogonal seeding](https://acts-herald.app.cern.ch/view/acts-project/acts/runs/14079485638/artifacts/physmon/html/trackfinding_1muon/orthogonal/performance_fitting_ckf.html)
  - ✅ [CKF track summary | trackfinding | single muon | orthogonal seeding](https://acts-herald.app.cern.ch/view/acts-project/acts/runs/14079485638/artifacts/physmon/html/trackfinding_1muon/orthogonal/tracksummary_ckf.html)
  - ✅ [Seeding trackfinding | 4 muon x 50 vertices | default seeding](https://acts-herald.app.cern.ch/view/acts-project/acts/runs/14079485638/artifacts/physmon/html/trackfinding_4muon_50vertices/performance_seeding.html)
  - ✅ [CKF finding performance | trackfinding | 4 muon x 50 vertices | default seeding](https://acts-herald.app.cern.ch/view/acts-project/acts/runs/14079485638/artifacts/physmon/html/trackfinding_4muon_50vertices/performance_finding_ckf.html)
  - ✅ [CKF fitting performance | trackfinding | 4 muon x 50 vertices | default seeding](https://acts-herald.app.cern.ch/view/acts-project/acts/runs/14079485638/artifacts/physmon/html/trackfinding_4muon_50vertices/performance_fitting_ckf.html)
  - ✅ [CKF track summary | trackfinding | 4 muon x 50 vertices | default seeding](https://acts-herald.app.cern.ch/view/acts-project/acts/runs/14079485638/artifacts/physmon/html/trackfinding_4muon_50vertices/tracksummary_ckf.html)
  - ✅ [Ambisolver finding performance | trackfinding | 4 muon x 50 vertices | default seeding](https://acts-herald.app.cern.ch/view/acts-project/acts/runs/14079485638/artifacts/physmon/html/trackfinding_4muon_50vertices/performance_finding_ckf_ambi.html)
  - ✅ [IVF notime | trackfinding | 4 muon x 50 vertices | default seeding](https://acts-herald.app.cern.ch/view/acts-project/acts/runs/14079485638/artifacts/physmon/html/trackfinding_4muon_50vertices/performance_vertexing_ivf_notime.html)
  - ✅ [AMVF gauss notime | trackfinding | 4 muon x 50 vertices | default seeding](https://acts-herald.app.cern.ch/view/acts-project/acts/runs/14079485638/artifacts/physmon/html/trackfinding_4muon_50vertices/performance_vertexing_amvf_gauss_notime.html)
  - ✅ [AMVF grid time | trackfinding | 4 muon x 50 vertices | default seeding](https://acts-herald.app.cern.ch/view/acts-project/acts/runs/14079485638/artifacts/physmon/html/trackfinding_4muon_50vertices/performance_vertexing_amvf_grid_time.html)
  - ✅ [Seeding trackfinding | ttbar with 200 pileup | default seeding](https://acts-herald.app.cern.ch/view/acts-project/acts/runs/14079485638/artifacts/physmon/html/trackfinding_ttbar_pu200/performance_seeding.html)
  - ✅ [CKF finding performance | trackfinding | ttbar with 200 pileup | default seeding](https://acts-herald.app.cern.ch/view/acts-project/acts/runs/14079485638/artifacts/physmon/html/trackfinding_ttbar_pu200/performance_finding_ckf.html)
  - ✅ [CKF fitting performance | trackfinding | ttbar with 200 pileup | default seeding](https://acts-herald.app.cern.ch/view/acts-project/acts/runs/14079485638/artifacts/physmon/html/trackfinding_ttbar_pu200/performance_fitting_ckf.html)
  - ✅ [CKF track summary | trackfinding | ttbar with 200 pileup | default seeding](https://acts-herald.app.cern.ch/view/acts-project/acts/runs/14079485638/artifacts/physmon/html/trackfinding_ttbar_pu200/tracksummary_ckf.html)
  - ✅ [Ambisolver finding performance | trackfinding | ttbar with 200 pileup | default seeding](https://acts-herald.app.cern.ch/view/acts-project/acts/runs/14079485638/artifacts/physmon/html/trackfinding_ttbar_pu200/performance_finding_ckf_ambi.html)
  - ✅ [ML Ambisolver | trackfinding | ttbar with 200 pileup | default seeding](https://acts-herald.app.cern.ch/view/acts-project/acts/runs/14079485638/artifacts/physmon/html/trackfinding_ttbar_pu200/performance_finding_ckf_ml_solver.html)
  - ✅ [AMVF gauss notime | trackfinding | ttbar with 200 pileup | default seeding](https://acts-herald.app.cern.ch/view/acts-project/acts/runs/14079485638/artifacts/physmon/html/trackfinding_ttbar_pu200/performance_vertexing_amvf_gauss_notime.html)
  - ✅ [AMVF grid time | trackfinding | ttbar with 200 pileup | default seeding](https://acts-herald.app.cern.ch/view/acts-project/acts/runs/14079485638/artifacts/physmon/html/trackfinding_ttbar_pu200/performance_vertexing_amvf_grid_time.html)

author_association: CONTRIBUTOR
user: login: stephenswat
created_at: 2025-03-19T10:23:14Z
body: @asalzburger This should be ready to go now.
author_association: MEMBER
user: login: sonarqubecloud[bot]
created_at: 2025-03-26T10:30:24Z
body: ## [![Quality Gate Passed](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/QualityGateBadge/qg-passed-20px.png 'Quality Gate Passed')](https://sonarcloud.io/dashboard?id=acts-project_acts&pullRequest=4125) **Quality Gate passed**  
Issues  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/passed-16px.png '') [0 New issues](https://sonarcloud.io/project/issues?id=acts-project_acts&pullRequest=4125&issueStatuses=OPEN,CONFIRMED&sinceLeakPeriod=true)  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/accepted-16px.png '') [0 Accepted issues](https://sonarcloud.io/project/issues?id=acts-project_acts&pullRequest=4125&issueStatuses=ACCEPTED)

Measures  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/passed-16px.png '') [0 Security Hotspots](https://sonarcloud.io/project/security_hotspots?id=acts-project_acts&pullRequest=4125&issueStatuses=OPEN,CONFIRMED&sinceLeakPeriod=true)  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/passed-16px.png '') [69.2% Coverage on New Code](https://sonarcloud.io/component_measures?id=acts-project_acts&pullRequest=4125&metric=new_coverage&view=list)  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/passed-16px.png '') [0.0% Duplication on New Code](https://sonarcloud.io/component_measures?id=acts-project_acts&pullRequest=4125&metric=new_duplicated_lines_density&view=list)  
  
[See analysis details on SonarQube Cloud](https://sonarcloud.io/dashboard?id=acts-project_acts&pullRequest=4125)


author_association: NONE
user: login: acts-project-service
created_at: 2025-03-26T12:36:06Z
body: ## :white_check_mark: Athena integration test results [48bced551c9a32ebc6a36a69e503184160eb724c]
### :white_check_mark: All tests successful

|status|job|report|
|------|---|------|
|:green_circle: | [report_pull_request](https://gitlab.cern.ch/acts/acts-athena-ci/-/jobs/53321416)||
|:green_circle: | [run_workflow_tests_run4_mc](https://gitlab.cern.ch/acts/acts-athena-ci/-/jobs/53321415)||
|:green_circle: | [run_workflow_tests_run2_mc](https://gitlab.cern.ch/acts/acts-athena-ci/-/jobs/53321414)||
|:green_circle: | [run_workflow_tests_run2_data](https://gitlab.cern.ch/acts/acts-athena-ci/-/jobs/53321413)||
|:green_circle: | [run_workflow_tests_run3_mc](https://gitlab.cern.ch/acts/acts-athena-ci/-/jobs/53321412)||
|:green_circle: | [run_workflow_tests_run3_data](https://gitlab.cern.ch/acts/acts-athena-ci/-/jobs/53321411)||
|:green_circle: | [test_ActsDumpGeometryIdentifiers](https://gitlab.cern.ch/acts/acts-athena-ci/-/jobs/53321410)||
|:green_circle: | [test_ActsCheckObjectCountsWorkflowHgtd](https://gitlab.cern.ch/acts/acts-athena-ci/-/jobs/53321409)||
|:green_circle: | [test_ActsCheckObjectCountsCachedWorkflow](https://gitlab.cern.ch/acts/acts-athena-ci/-/jobs/53321408)||
|:green_circle: | [test_ActsCheckObjectCountsWorkflow](https://gitlab.cern.ch/acts/acts-athena-ci/-/jobs/53321407)||
|:green_circle: | [test_ActsEFTrackFit](https://gitlab.cern.ch/acts/acts-athena-ci/-/jobs/53321406)||
|:green_circle: | [test_ActsPersistifySeeds](https://gitlab.cern.ch/acts/acts-athena-ci/-/jobs/53321405)||
|:green_circle: | [test_ActsBenchmarkWithSpot](https://gitlab.cern.ch/acts/acts-athena-ci/-/jobs/53321404)||
|:green_circle: | [test_ActsAnalogueClustering](https://gitlab.cern.ch/acts/acts-athena-ci/-/jobs/53321403)||
|:green_circle: | [test_ActsWorkflowHeavyIons](https://gitlab.cern.ch/acts/acts-athena-ci/-/jobs/53321402)||
|:green_circle: | [test_ActsWorkflowFastTracking](https://gitlab.cern.ch/acts/acts-athena-ci/-/jobs/53321401)||
|:green_circle: | [test_ActsWorkflowCached](https://gitlab.cern.ch/acts/acts-athena-ci/-/jobs/53321400)||
|:green_circle: | [test_ActsWorkflow](https://gitlab.cern.ch/acts/acts-athena-ci/-/jobs/53321399)||
|:green_circle: | [test_ActsValidateAmbiguityResolution](https://gitlab.cern.ch/acts/acts-athena-ci/-/jobs/53321398)||
|:green_circle: | [test_ActsValidateResolvedTracks](https://gitlab.cern.ch/acts/acts-athena-ci/-/jobs/53321397)||
|:green_circle: | [test_ActsValidateTracks](https://gitlab.cern.ch/acts/acts-athena-ci/-/jobs/53321396)||
|:green_circle: | [test_ActsValidateActsCoreSpacePoints](https://gitlab.cern.ch/acts/acts-athena-ci/-/jobs/53321395)||
|:green_circle: | [test_ActsValidateActsSpacePoints](https://gitlab.cern.ch/acts/acts-athena-ci/-/jobs/53321394)||
|:green_circle: | [test_ActsValidateSeeds](https://gitlab.cern.ch/acts/acts-athena-ci/-/jobs/53321393)||
|:green_circle: | [test_ActsValidateOrthogonalSeeds](https://gitlab.cern.ch/acts/acts-athena-ci/-/jobs/53321392)||
|:green_circle: | [test_ActsValidateClusters](https://gitlab.cern.ch/acts/acts-athena-ci/-/jobs/53321391)||
|:green_circle: | [test_ActsPersistifyEDM](https://gitlab.cern.ch/acts/acts-athena-ci/-/jobs/53321390)||
|:green_circle: | [test_ActsGx2fRefitting](https://gitlab.cern.ch/acts/acts-athena-ci/-/jobs/53321389)||
|:green_circle: | [test_ActsGSFRefitting](https://gitlab.cern.ch/acts/acts-athena-ci/-/jobs/53321388)||
|:green_circle: | [test_ActsKfRefitting](https://gitlab.cern.ch/acts/acts-athena-ci/-/jobs/53321387)||
|:green_circle: | [test_ActsExtrapolationAlgTest](https://gitlab.cern.ch/acts/acts-athena-ci/-/jobs/53321386)||
|:green_circle: | [test_ActsITkTest](https://gitlab.cern.ch/acts/acts-athena-ci/-/jobs/53321385)||

author_association: COLLABORATOR