Runtime metrics

Generated: 2024-08-07 09:24:48
2024-08-07T09:24:40.086550 image/svg+xml Matplotlib v3.7.2, https://matplotlib.org/ fix: Remove residual mentions of C++17 (#3455) This commit removes some residual mentions of C++17 in the source code which have become irrelevant since the switch to C++20. Although most of these are completely harmless, the `FindFilesystem.cmake` change is actually important as it was setting `CMAKE_CXX_STANDARD` as a non-cache variable, thereby overriding any other settings and potentially reverting builds back to C++17, which was breaking some traccc builds as @fredevb discovered. feat: Use track particle double matching by default in Examples (#3409) This should penalize tracks which only have a fraction of the measurements left by particles in the detector. chore: Use `ParticleHypothesis` for q/p handling in a few more cases (#3456) I found a few more cases where we handle q/p by hand. Using the `ParticleHypothesis` ensures correct sign and neutral handling. perf: Use `SympyStepper` over `EigenStepper` in Examples (#3459) This should improve CPU performance while keeping physics performance the same. fix: select binning dimension in cuboid volume builder (#3463) This lets us set in the config also other dimension than the previous `BinningValue::binX`. This is necessary, if we want to build a detector that is not parallel to the x-axis. The default value stays `BinningValue::binX` to not break anything. ### Note Volumes will be connected only in X-direction, since `BoundarySurfaceFace::positiveFaceYZ` is hardcoded. It might be possible to generalise this, but I didn't need that feature and it might overcomplicate the builder. feat: splitting fill and update function (#3465) Thi PR splits the `fill(...)` and `update(...)` function or `NavigationStateUpdators` of the `Gen2` geometry. This avoid uneccesary copying and multiple intersections in case of chained updaters. feat: Add CMake presets (#3135) Adds CMake presets (https://cmake.org/cmake/help/latest/manual/cmake-presets.7.html) to collect common configuration and build settings. The current list of presets: - `common` as a base for all the other presets. This enables everything necessary for running the ODD full chain examples with Fatras. It sets the cpp standard to 20, the generator to ninja and enables ccache. - `dev` uses `RelWithDebInfo` and enables `CMAKE_EXPORT_COMPILE_COMMANDS` and `ACTS_FORCE_ASSERTIONS` - `perf` uses `Release` sets a few compiler flags to keep frame pointers and enables `ACTS_BUILD_BENCHMARKS` - `ci-common` is the base for all CI presets. It enables the usual flags for what to build in the CI, uses `Release`, `-Werror` and enables `ACTS_FORCE_ASSERTIONS` and `ACTS_ENABLE_LOG_FAILURE_THRESHOLD` - `github-ci` will not change anything for now - `gitlab-ci` will switch to `RelWithDebInfo` to allow FPE monitoring While doing so I also - removed the `ACTS_BUILD_EVERYTHING` CMake variable because the preset can be used to collect the "default" flags - removed the `ACTS_BUILD_EXAMPLES` CMake option for a similar reason. I kept the cmake variable because it is used to toggle things internally in our CMake refactor: physmon: enlarge etaRange for GX2F to match KF settings (#3412) blocked by: - https://github.com/acts-project/acts/pull/3411 refactor: Rework initial `qOverP` sigma in Examples (#3422) - Use relative `pt` resolution as parameter. Get initial `qOverP` sigma by combining relative `pt` resolution and `theta` sigma - Apply to `ParticleSmearing` - Wire to python - Disable smearing for truth smeared seeding to allow track finding encounter measurements fix: Avoid segfaults in bin adjustments (#3472) Previously, only the surface type was checked, and then a bounds type assumed. Then, the result of a `dynamic_cast` was used unchecked. This changes this to ensure correcteness by checking the `dynamic_cast`s. ci: Disable clang-tidy for external dependencies (#3477) When using CMake's FetchContent mechanism, the source code for those dependencies ends up in the `build/_deps/` directory, which was previously subject to analysis by clang-tidy, which can lead to errors rooted in external projects. This commit disables clang-tidy for that directory, resolving the issue. This commit comes from #3117. Co-authored-by: Fred <92879080+fredevb@users.noreply.github.com> fix: Skip outliers in `GreedyAmbiguityResolution` (#3452) Outliers should not be counted as measurements in the ambiguity resolution step build: Improve traccc dependency loading (#3478) This commit makes a few changes to the way some of the Acts R&D projects are loaded in Acts (i.e. detray, traccc, algebra-plugins), namely: 1. It adds code to load detray's dependencies if the Acts project is installed. 2. It updates the versions of detray and traccc so they are compatible. 3. It adds some documentation to the `thirdparty/` directory. 4. It refines the parameters for the CMake build systems of various projects to be more robust. This commit comes from https://github.com/acts-project/acts/pull/3117. Co-authored-by: Fred <92879080+fredevb@users.noreply.github.com> feat: Decouple SurfaceAccessor from source link implementations (#3445) Making the `TestSourceLink` a template that takes the geometry type for compatibility with both gens of the geometry. Adding the `findSurface` method to the `Experimental::Detector`, analogous to that of the `TrackingGeometry`. fix: Really handle holes after measurement selection in Core CKF (#3474) Looks like I lost the actual objective in https://github.com/acts-project/acts/pull/3413 which did not resolve the issue. After the refactoring of the measurement selector it is possible that we end up with no measurements after selection. That case was not handled by the Core CKF yet. https://github.com/acts-project/acts/pull/3413 was an attempt to fix the problem but the hole handling was shifted to the wrong place. We want to check for a hole after `trackStateCandidateCreator` and before `processNewTrackStates`.
2024-08-07T09:24:43.825655 image/svg+xml Matplotlib v3.7.2, https://matplotlib.org/ fix: Remove residual mentions of C++17 (#3455) This commit removes some residual mentions of C++17 in the source code which have become irrelevant since the switch to C++20. Although most of these are completely harmless, the `FindFilesystem.cmake` change is actually important as it was setting `CMAKE_CXX_STANDARD` as a non-cache variable, thereby overriding any other settings and potentially reverting builds back to C++17, which was breaking some traccc builds as @fredevb discovered. feat: Use track particle double matching by default in Examples (#3409) This should penalize tracks which only have a fraction of the measurements left by particles in the detector. chore: Use `ParticleHypothesis` for q/p handling in a few more cases (#3456) I found a few more cases where we handle q/p by hand. Using the `ParticleHypothesis` ensures correct sign and neutral handling. perf: Use `SympyStepper` over `EigenStepper` in Examples (#3459) This should improve CPU performance while keeping physics performance the same. fix: select binning dimension in cuboid volume builder (#3463) This lets us set in the config also other dimension than the previous `BinningValue::binX`. This is necessary, if we want to build a detector that is not parallel to the x-axis. The default value stays `BinningValue::binX` to not break anything. ### Note Volumes will be connected only in X-direction, since `BoundarySurfaceFace::positiveFaceYZ` is hardcoded. It might be possible to generalise this, but I didn't need that feature and it might overcomplicate the builder. feat: splitting fill and update function (#3465) Thi PR splits the `fill(...)` and `update(...)` function or `NavigationStateUpdators` of the `Gen2` geometry. This avoid uneccesary copying and multiple intersections in case of chained updaters. feat: Add CMake presets (#3135) Adds CMake presets (https://cmake.org/cmake/help/latest/manual/cmake-presets.7.html) to collect common configuration and build settings. The current list of presets: - `common` as a base for all the other presets. This enables everything necessary for running the ODD full chain examples with Fatras. It sets the cpp standard to 20, the generator to ninja and enables ccache. - `dev` uses `RelWithDebInfo` and enables `CMAKE_EXPORT_COMPILE_COMMANDS` and `ACTS_FORCE_ASSERTIONS` - `perf` uses `Release` sets a few compiler flags to keep frame pointers and enables `ACTS_BUILD_BENCHMARKS` - `ci-common` is the base for all CI presets. It enables the usual flags for what to build in the CI, uses `Release`, `-Werror` and enables `ACTS_FORCE_ASSERTIONS` and `ACTS_ENABLE_LOG_FAILURE_THRESHOLD` - `github-ci` will not change anything for now - `gitlab-ci` will switch to `RelWithDebInfo` to allow FPE monitoring While doing so I also - removed the `ACTS_BUILD_EVERYTHING` CMake variable because the preset can be used to collect the "default" flags - removed the `ACTS_BUILD_EXAMPLES` CMake option for a similar reason. I kept the cmake variable because it is used to toggle things internally in our CMake refactor: physmon: enlarge etaRange for GX2F to match KF settings (#3412) blocked by: - https://github.com/acts-project/acts/pull/3411 refactor: Rework initial `qOverP` sigma in Examples (#3422) - Use relative `pt` resolution as parameter. Get initial `qOverP` sigma by combining relative `pt` resolution and `theta` sigma - Apply to `ParticleSmearing` - Wire to python - Disable smearing for truth smeared seeding to allow track finding encounter measurements fix: Avoid segfaults in bin adjustments (#3472) Previously, only the surface type was checked, and then a bounds type assumed. Then, the result of a `dynamic_cast` was used unchecked. This changes this to ensure correcteness by checking the `dynamic_cast`s. ci: Disable clang-tidy for external dependencies (#3477) When using CMake's FetchContent mechanism, the source code for those dependencies ends up in the `build/_deps/` directory, which was previously subject to analysis by clang-tidy, which can lead to errors rooted in external projects. This commit disables clang-tidy for that directory, resolving the issue. This commit comes from #3117. Co-authored-by: Fred <92879080+fredevb@users.noreply.github.com> fix: Skip outliers in `GreedyAmbiguityResolution` (#3452) Outliers should not be counted as measurements in the ambiguity resolution step build: Improve traccc dependency loading (#3478) This commit makes a few changes to the way some of the Acts R&D projects are loaded in Acts (i.e. detray, traccc, algebra-plugins), namely: 1. It adds code to load detray's dependencies if the Acts project is installed. 2. It updates the versions of detray and traccc so they are compatible. 3. It adds some documentation to the `thirdparty/` directory. 4. It refines the parameters for the CMake build systems of various projects to be more robust. This commit comes from https://github.com/acts-project/acts/pull/3117. Co-authored-by: Fred <92879080+fredevb@users.noreply.github.com> feat: Decouple SurfaceAccessor from source link implementations (#3445) Making the `TestSourceLink` a template that takes the geometry type for compatibility with both gens of the geometry. Adding the `findSurface` method to the `Experimental::Detector`, analogous to that of the `TrackingGeometry`. fix: Really handle holes after measurement selection in Core CKF (#3474) Looks like I lost the actual objective in https://github.com/acts-project/acts/pull/3413 which did not resolve the issue. After the refactoring of the measurement selector it is possible that we end up with no measurements after selection. That case was not handled by the Core CKF yet. https://github.com/acts-project/acts/pull/3413 was an attempt to fix the problem but the hole handling was shifted to the wrong place. We want to check for a hole after `trackStateCandidateCreator` and before `processNewTrackStates`.
2024-08-07T09:24:44.141004 image/svg+xml Matplotlib v3.7.2, https://matplotlib.org/ fix: Remove residual mentions of C++17 (#3455) This commit removes some residual mentions of C++17 in the source code which have become irrelevant since the switch to C++20. Although most of these are completely harmless, the `FindFilesystem.cmake` change is actually important as it was setting `CMAKE_CXX_STANDARD` as a non-cache variable, thereby overriding any other settings and potentially reverting builds back to C++17, which was breaking some traccc builds as @fredevb discovered. feat: Use track particle double matching by default in Examples (#3409) This should penalize tracks which only have a fraction of the measurements left by particles in the detector. chore: Use `ParticleHypothesis` for q/p handling in a few more cases (#3456) I found a few more cases where we handle q/p by hand. Using the `ParticleHypothesis` ensures correct sign and neutral handling. perf: Use `SympyStepper` over `EigenStepper` in Examples (#3459) This should improve CPU performance while keeping physics performance the same. fix: select binning dimension in cuboid volume builder (#3463) This lets us set in the config also other dimension than the previous `BinningValue::binX`. This is necessary, if we want to build a detector that is not parallel to the x-axis. The default value stays `BinningValue::binX` to not break anything. ### Note Volumes will be connected only in X-direction, since `BoundarySurfaceFace::positiveFaceYZ` is hardcoded. It might be possible to generalise this, but I didn't need that feature and it might overcomplicate the builder. feat: splitting fill and update function (#3465) Thi PR splits the `fill(...)` and `update(...)` function or `NavigationStateUpdators` of the `Gen2` geometry. This avoid uneccesary copying and multiple intersections in case of chained updaters. feat: Add CMake presets (#3135) Adds CMake presets (https://cmake.org/cmake/help/latest/manual/cmake-presets.7.html) to collect common configuration and build settings. The current list of presets: - `common` as a base for all the other presets. This enables everything necessary for running the ODD full chain examples with Fatras. It sets the cpp standard to 20, the generator to ninja and enables ccache. - `dev` uses `RelWithDebInfo` and enables `CMAKE_EXPORT_COMPILE_COMMANDS` and `ACTS_FORCE_ASSERTIONS` - `perf` uses `Release` sets a few compiler flags to keep frame pointers and enables `ACTS_BUILD_BENCHMARKS` - `ci-common` is the base for all CI presets. It enables the usual flags for what to build in the CI, uses `Release`, `-Werror` and enables `ACTS_FORCE_ASSERTIONS` and `ACTS_ENABLE_LOG_FAILURE_THRESHOLD` - `github-ci` will not change anything for now - `gitlab-ci` will switch to `RelWithDebInfo` to allow FPE monitoring While doing so I also - removed the `ACTS_BUILD_EVERYTHING` CMake variable because the preset can be used to collect the "default" flags - removed the `ACTS_BUILD_EXAMPLES` CMake option for a similar reason. I kept the cmake variable because it is used to toggle things internally in our CMake refactor: physmon: enlarge etaRange for GX2F to match KF settings (#3412) blocked by: - https://github.com/acts-project/acts/pull/3411 refactor: Rework initial `qOverP` sigma in Examples (#3422) - Use relative `pt` resolution as parameter. Get initial `qOverP` sigma by combining relative `pt` resolution and `theta` sigma - Apply to `ParticleSmearing` - Wire to python - Disable smearing for truth smeared seeding to allow track finding encounter measurements fix: Avoid segfaults in bin adjustments (#3472) Previously, only the surface type was checked, and then a bounds type assumed. Then, the result of a `dynamic_cast` was used unchecked. This changes this to ensure correcteness by checking the `dynamic_cast`s. ci: Disable clang-tidy for external dependencies (#3477) When using CMake's FetchContent mechanism, the source code for those dependencies ends up in the `build/_deps/` directory, which was previously subject to analysis by clang-tidy, which can lead to errors rooted in external projects. This commit disables clang-tidy for that directory, resolving the issue. This commit comes from #3117. Co-authored-by: Fred <92879080+fredevb@users.noreply.github.com> fix: Skip outliers in `GreedyAmbiguityResolution` (#3452) Outliers should not be counted as measurements in the ambiguity resolution step build: Improve traccc dependency loading (#3478) This commit makes a few changes to the way some of the Acts R&D projects are loaded in Acts (i.e. detray, traccc, algebra-plugins), namely: 1. It adds code to load detray's dependencies if the Acts project is installed. 2. It updates the versions of detray and traccc so they are compatible. 3. It adds some documentation to the `thirdparty/` directory. 4. It refines the parameters for the CMake build systems of various projects to be more robust. This commit comes from https://github.com/acts-project/acts/pull/3117. Co-authored-by: Fred <92879080+fredevb@users.noreply.github.com> feat: Decouple SurfaceAccessor from source link implementations (#3445) Making the `TestSourceLink` a template that takes the geometry type for compatibility with both gens of the geometry. Adding the `findSurface` method to the `Experimental::Detector`, analogous to that of the `TrackingGeometry`. fix: Really handle holes after measurement selection in Core CKF (#3474) Looks like I lost the actual objective in https://github.com/acts-project/acts/pull/3413 which did not resolve the issue. After the refactoring of the measurement selector it is possible that we end up with no measurements after selection. That case was not handled by the Core CKF yet. https://github.com/acts-project/acts/pull/3413 was an attempt to fix the problem but the hole handling was shifted to the wrong place. We want to check for a hole after `trackStateCandidateCreator` and before `processNewTrackStates`.
2024-08-07T09:24:44.483363 image/svg+xml Matplotlib v3.7.2, https://matplotlib.org/ fix: Remove residual mentions of C++17 (#3455) This commit removes some residual mentions of C++17 in the source code which have become irrelevant since the switch to C++20. Although most of these are completely harmless, the `FindFilesystem.cmake` change is actually important as it was setting `CMAKE_CXX_STANDARD` as a non-cache variable, thereby overriding any other settings and potentially reverting builds back to C++17, which was breaking some traccc builds as @fredevb discovered. feat: Use track particle double matching by default in Examples (#3409) This should penalize tracks which only have a fraction of the measurements left by particles in the detector. chore: Use `ParticleHypothesis` for q/p handling in a few more cases (#3456) I found a few more cases where we handle q/p by hand. Using the `ParticleHypothesis` ensures correct sign and neutral handling. perf: Use `SympyStepper` over `EigenStepper` in Examples (#3459) This should improve CPU performance while keeping physics performance the same. fix: select binning dimension in cuboid volume builder (#3463) This lets us set in the config also other dimension than the previous `BinningValue::binX`. This is necessary, if we want to build a detector that is not parallel to the x-axis. The default value stays `BinningValue::binX` to not break anything. ### Note Volumes will be connected only in X-direction, since `BoundarySurfaceFace::positiveFaceYZ` is hardcoded. It might be possible to generalise this, but I didn't need that feature and it might overcomplicate the builder. feat: splitting fill and update function (#3465) Thi PR splits the `fill(...)` and `update(...)` function or `NavigationStateUpdators` of the `Gen2` geometry. This avoid uneccesary copying and multiple intersections in case of chained updaters. feat: Add CMake presets (#3135) Adds CMake presets (https://cmake.org/cmake/help/latest/manual/cmake-presets.7.html) to collect common configuration and build settings. The current list of presets: - `common` as a base for all the other presets. This enables everything necessary for running the ODD full chain examples with Fatras. It sets the cpp standard to 20, the generator to ninja and enables ccache. - `dev` uses `RelWithDebInfo` and enables `CMAKE_EXPORT_COMPILE_COMMANDS` and `ACTS_FORCE_ASSERTIONS` - `perf` uses `Release` sets a few compiler flags to keep frame pointers and enables `ACTS_BUILD_BENCHMARKS` - `ci-common` is the base for all CI presets. It enables the usual flags for what to build in the CI, uses `Release`, `-Werror` and enables `ACTS_FORCE_ASSERTIONS` and `ACTS_ENABLE_LOG_FAILURE_THRESHOLD` - `github-ci` will not change anything for now - `gitlab-ci` will switch to `RelWithDebInfo` to allow FPE monitoring While doing so I also - removed the `ACTS_BUILD_EVERYTHING` CMake variable because the preset can be used to collect the "default" flags - removed the `ACTS_BUILD_EXAMPLES` CMake option for a similar reason. I kept the cmake variable because it is used to toggle things internally in our CMake refactor: physmon: enlarge etaRange for GX2F to match KF settings (#3412) blocked by: - https://github.com/acts-project/acts/pull/3411 refactor: Rework initial `qOverP` sigma in Examples (#3422) - Use relative `pt` resolution as parameter. Get initial `qOverP` sigma by combining relative `pt` resolution and `theta` sigma - Apply to `ParticleSmearing` - Wire to python - Disable smearing for truth smeared seeding to allow track finding encounter measurements fix: Avoid segfaults in bin adjustments (#3472) Previously, only the surface type was checked, and then a bounds type assumed. Then, the result of a `dynamic_cast` was used unchecked. This changes this to ensure correcteness by checking the `dynamic_cast`s. ci: Disable clang-tidy for external dependencies (#3477) When using CMake's FetchContent mechanism, the source code for those dependencies ends up in the `build/_deps/` directory, which was previously subject to analysis by clang-tidy, which can lead to errors rooted in external projects. This commit disables clang-tidy for that directory, resolving the issue. This commit comes from #3117. Co-authored-by: Fred <92879080+fredevb@users.noreply.github.com> fix: Skip outliers in `GreedyAmbiguityResolution` (#3452) Outliers should not be counted as measurements in the ambiguity resolution step build: Improve traccc dependency loading (#3478) This commit makes a few changes to the way some of the Acts R&D projects are loaded in Acts (i.e. detray, traccc, algebra-plugins), namely: 1. It adds code to load detray's dependencies if the Acts project is installed. 2. It updates the versions of detray and traccc so they are compatible. 3. It adds some documentation to the `thirdparty/` directory. 4. It refines the parameters for the CMake build systems of various projects to be more robust. This commit comes from https://github.com/acts-project/acts/pull/3117. Co-authored-by: Fred <92879080+fredevb@users.noreply.github.com> feat: Decouple SurfaceAccessor from source link implementations (#3445) Making the `TestSourceLink` a template that takes the geometry type for compatibility with both gens of the geometry. Adding the `findSurface` method to the `Experimental::Detector`, analogous to that of the `TrackingGeometry`. fix: Really handle holes after measurement selection in Core CKF (#3474) Looks like I lost the actual objective in https://github.com/acts-project/acts/pull/3413 which did not resolve the issue. After the refactoring of the measurement selector it is possible that we end up with no measurements after selection. That case was not handled by the Core CKF yet. https://github.com/acts-project/acts/pull/3413 was an attempt to fix the problem but the hole handling was shifted to the wrong place. We want to check for a hole after `trackStateCandidateCreator` and before `processNewTrackStates`.
2024-08-07T09:24:44.808113 image/svg+xml Matplotlib v3.7.2, https://matplotlib.org/ fix: Remove residual mentions of C++17 (#3455) This commit removes some residual mentions of C++17 in the source code which have become irrelevant since the switch to C++20. Although most of these are completely harmless, the `FindFilesystem.cmake` change is actually important as it was setting `CMAKE_CXX_STANDARD` as a non-cache variable, thereby overriding any other settings and potentially reverting builds back to C++17, which was breaking some traccc builds as @fredevb discovered. feat: Use track particle double matching by default in Examples (#3409) This should penalize tracks which only have a fraction of the measurements left by particles in the detector. chore: Use `ParticleHypothesis` for q/p handling in a few more cases (#3456) I found a few more cases where we handle q/p by hand. Using the `ParticleHypothesis` ensures correct sign and neutral handling. perf: Use `SympyStepper` over `EigenStepper` in Examples (#3459) This should improve CPU performance while keeping physics performance the same. fix: select binning dimension in cuboid volume builder (#3463) This lets us set in the config also other dimension than the previous `BinningValue::binX`. This is necessary, if we want to build a detector that is not parallel to the x-axis. The default value stays `BinningValue::binX` to not break anything. ### Note Volumes will be connected only in X-direction, since `BoundarySurfaceFace::positiveFaceYZ` is hardcoded. It might be possible to generalise this, but I didn't need that feature and it might overcomplicate the builder. feat: splitting fill and update function (#3465) Thi PR splits the `fill(...)` and `update(...)` function or `NavigationStateUpdators` of the `Gen2` geometry. This avoid uneccesary copying and multiple intersections in case of chained updaters. feat: Add CMake presets (#3135) Adds CMake presets (https://cmake.org/cmake/help/latest/manual/cmake-presets.7.html) to collect common configuration and build settings. The current list of presets: - `common` as a base for all the other presets. This enables everything necessary for running the ODD full chain examples with Fatras. It sets the cpp standard to 20, the generator to ninja and enables ccache. - `dev` uses `RelWithDebInfo` and enables `CMAKE_EXPORT_COMPILE_COMMANDS` and `ACTS_FORCE_ASSERTIONS` - `perf` uses `Release` sets a few compiler flags to keep frame pointers and enables `ACTS_BUILD_BENCHMARKS` - `ci-common` is the base for all CI presets. It enables the usual flags for what to build in the CI, uses `Release`, `-Werror` and enables `ACTS_FORCE_ASSERTIONS` and `ACTS_ENABLE_LOG_FAILURE_THRESHOLD` - `github-ci` will not change anything for now - `gitlab-ci` will switch to `RelWithDebInfo` to allow FPE monitoring While doing so I also - removed the `ACTS_BUILD_EVERYTHING` CMake variable because the preset can be used to collect the "default" flags - removed the `ACTS_BUILD_EXAMPLES` CMake option for a similar reason. I kept the cmake variable because it is used to toggle things internally in our CMake refactor: physmon: enlarge etaRange for GX2F to match KF settings (#3412) blocked by: - https://github.com/acts-project/acts/pull/3411 refactor: Rework initial `qOverP` sigma in Examples (#3422) - Use relative `pt` resolution as parameter. Get initial `qOverP` sigma by combining relative `pt` resolution and `theta` sigma - Apply to `ParticleSmearing` - Wire to python - Disable smearing for truth smeared seeding to allow track finding encounter measurements fix: Avoid segfaults in bin adjustments (#3472) Previously, only the surface type was checked, and then a bounds type assumed. Then, the result of a `dynamic_cast` was used unchecked. This changes this to ensure correcteness by checking the `dynamic_cast`s. ci: Disable clang-tidy for external dependencies (#3477) When using CMake's FetchContent mechanism, the source code for those dependencies ends up in the `build/_deps/` directory, which was previously subject to analysis by clang-tidy, which can lead to errors rooted in external projects. This commit disables clang-tidy for that directory, resolving the issue. This commit comes from #3117. Co-authored-by: Fred <92879080+fredevb@users.noreply.github.com> fix: Skip outliers in `GreedyAmbiguityResolution` (#3452) Outliers should not be counted as measurements in the ambiguity resolution step build: Improve traccc dependency loading (#3478) This commit makes a few changes to the way some of the Acts R&D projects are loaded in Acts (i.e. detray, traccc, algebra-plugins), namely: 1. It adds code to load detray's dependencies if the Acts project is installed. 2. It updates the versions of detray and traccc so they are compatible. 3. It adds some documentation to the `thirdparty/` directory. 4. It refines the parameters for the CMake build systems of various projects to be more robust. This commit comes from https://github.com/acts-project/acts/pull/3117. Co-authored-by: Fred <92879080+fredevb@users.noreply.github.com> feat: Decouple SurfaceAccessor from source link implementations (#3445) Making the `TestSourceLink` a template that takes the geometry type for compatibility with both gens of the geometry. Adding the `findSurface` method to the `Experimental::Detector`, analogous to that of the `TrackingGeometry`. fix: Really handle holes after measurement selection in Core CKF (#3474) Looks like I lost the actual objective in https://github.com/acts-project/acts/pull/3413 which did not resolve the issue. After the refactoring of the measurement selector it is possible that we end up with no measurements after selection. That case was not handled by the Core CKF yet. https://github.com/acts-project/acts/pull/3413 was an attempt to fix the problem but the hole handling was shifted to the wrong place. We want to check for a hole after `trackStateCandidateCreator` and before `processNewTrackStates`.
2024-08-07T09:24:45.147985 image/svg+xml Matplotlib v3.7.2, https://matplotlib.org/ fix: Remove residual mentions of C++17 (#3455) This commit removes some residual mentions of C++17 in the source code which have become irrelevant since the switch to C++20. Although most of these are completely harmless, the `FindFilesystem.cmake` change is actually important as it was setting `CMAKE_CXX_STANDARD` as a non-cache variable, thereby overriding any other settings and potentially reverting builds back to C++17, which was breaking some traccc builds as @fredevb discovered. feat: Use track particle double matching by default in Examples (#3409) This should penalize tracks which only have a fraction of the measurements left by particles in the detector. chore: Use `ParticleHypothesis` for q/p handling in a few more cases (#3456) I found a few more cases where we handle q/p by hand. Using the `ParticleHypothesis` ensures correct sign and neutral handling. perf: Use `SympyStepper` over `EigenStepper` in Examples (#3459) This should improve CPU performance while keeping physics performance the same. fix: select binning dimension in cuboid volume builder (#3463) This lets us set in the config also other dimension than the previous `BinningValue::binX`. This is necessary, if we want to build a detector that is not parallel to the x-axis. The default value stays `BinningValue::binX` to not break anything. ### Note Volumes will be connected only in X-direction, since `BoundarySurfaceFace::positiveFaceYZ` is hardcoded. It might be possible to generalise this, but I didn't need that feature and it might overcomplicate the builder. feat: splitting fill and update function (#3465) Thi PR splits the `fill(...)` and `update(...)` function or `NavigationStateUpdators` of the `Gen2` geometry. This avoid uneccesary copying and multiple intersections in case of chained updaters. feat: Add CMake presets (#3135) Adds CMake presets (https://cmake.org/cmake/help/latest/manual/cmake-presets.7.html) to collect common configuration and build settings. The current list of presets: - `common` as a base for all the other presets. This enables everything necessary for running the ODD full chain examples with Fatras. It sets the cpp standard to 20, the generator to ninja and enables ccache. - `dev` uses `RelWithDebInfo` and enables `CMAKE_EXPORT_COMPILE_COMMANDS` and `ACTS_FORCE_ASSERTIONS` - `perf` uses `Release` sets a few compiler flags to keep frame pointers and enables `ACTS_BUILD_BENCHMARKS` - `ci-common` is the base for all CI presets. It enables the usual flags for what to build in the CI, uses `Release`, `-Werror` and enables `ACTS_FORCE_ASSERTIONS` and `ACTS_ENABLE_LOG_FAILURE_THRESHOLD` - `github-ci` will not change anything for now - `gitlab-ci` will switch to `RelWithDebInfo` to allow FPE monitoring While doing so I also - removed the `ACTS_BUILD_EVERYTHING` CMake variable because the preset can be used to collect the "default" flags - removed the `ACTS_BUILD_EXAMPLES` CMake option for a similar reason. I kept the cmake variable because it is used to toggle things internally in our CMake refactor: physmon: enlarge etaRange for GX2F to match KF settings (#3412) blocked by: - https://github.com/acts-project/acts/pull/3411 refactor: Rework initial `qOverP` sigma in Examples (#3422) - Use relative `pt` resolution as parameter. Get initial `qOverP` sigma by combining relative `pt` resolution and `theta` sigma - Apply to `ParticleSmearing` - Wire to python - Disable smearing for truth smeared seeding to allow track finding encounter measurements fix: Avoid segfaults in bin adjustments (#3472) Previously, only the surface type was checked, and then a bounds type assumed. Then, the result of a `dynamic_cast` was used unchecked. This changes this to ensure correcteness by checking the `dynamic_cast`s. ci: Disable clang-tidy for external dependencies (#3477) When using CMake's FetchContent mechanism, the source code for those dependencies ends up in the `build/_deps/` directory, which was previously subject to analysis by clang-tidy, which can lead to errors rooted in external projects. This commit disables clang-tidy for that directory, resolving the issue. This commit comes from #3117. Co-authored-by: Fred <92879080+fredevb@users.noreply.github.com> fix: Skip outliers in `GreedyAmbiguityResolution` (#3452) Outliers should not be counted as measurements in the ambiguity resolution step build: Improve traccc dependency loading (#3478) This commit makes a few changes to the way some of the Acts R&D projects are loaded in Acts (i.e. detray, traccc, algebra-plugins), namely: 1. It adds code to load detray's dependencies if the Acts project is installed. 2. It updates the versions of detray and traccc so they are compatible. 3. It adds some documentation to the `thirdparty/` directory. 4. It refines the parameters for the CMake build systems of various projects to be more robust. This commit comes from https://github.com/acts-project/acts/pull/3117. Co-authored-by: Fred <92879080+fredevb@users.noreply.github.com> feat: Decouple SurfaceAccessor from source link implementations (#3445) Making the `TestSourceLink` a template that takes the geometry type for compatibility with both gens of the geometry. Adding the `findSurface` method to the `Experimental::Detector`, analogous to that of the `TrackingGeometry`. fix: Really handle holes after measurement selection in Core CKF (#3474) Looks like I lost the actual objective in https://github.com/acts-project/acts/pull/3413 which did not resolve the issue. After the refactoring of the measurement selector it is possible that we end up with no measurements after selection. That case was not handled by the Core CKF yet. https://github.com/acts-project/acts/pull/3413 was an attempt to fix the problem but the hole handling was shifted to the wrong place. We want to check for a hole after `trackStateCandidateCreator` and before `processNewTrackStates`.
2024-08-07T09:24:45.469369 image/svg+xml Matplotlib v3.7.2, https://matplotlib.org/ fix: Remove residual mentions of C++17 (#3455) This commit removes some residual mentions of C++17 in the source code which have become irrelevant since the switch to C++20. Although most of these are completely harmless, the `FindFilesystem.cmake` change is actually important as it was setting `CMAKE_CXX_STANDARD` as a non-cache variable, thereby overriding any other settings and potentially reverting builds back to C++17, which was breaking some traccc builds as @fredevb discovered. feat: Use track particle double matching by default in Examples (#3409) This should penalize tracks which only have a fraction of the measurements left by particles in the detector. chore: Use `ParticleHypothesis` for q/p handling in a few more cases (#3456) I found a few more cases where we handle q/p by hand. Using the `ParticleHypothesis` ensures correct sign and neutral handling. perf: Use `SympyStepper` over `EigenStepper` in Examples (#3459) This should improve CPU performance while keeping physics performance the same. fix: select binning dimension in cuboid volume builder (#3463) This lets us set in the config also other dimension than the previous `BinningValue::binX`. This is necessary, if we want to build a detector that is not parallel to the x-axis. The default value stays `BinningValue::binX` to not break anything. ### Note Volumes will be connected only in X-direction, since `BoundarySurfaceFace::positiveFaceYZ` is hardcoded. It might be possible to generalise this, but I didn't need that feature and it might overcomplicate the builder. feat: splitting fill and update function (#3465) Thi PR splits the `fill(...)` and `update(...)` function or `NavigationStateUpdators` of the `Gen2` geometry. This avoid uneccesary copying and multiple intersections in case of chained updaters. feat: Add CMake presets (#3135) Adds CMake presets (https://cmake.org/cmake/help/latest/manual/cmake-presets.7.html) to collect common configuration and build settings. The current list of presets: - `common` as a base for all the other presets. This enables everything necessary for running the ODD full chain examples with Fatras. It sets the cpp standard to 20, the generator to ninja and enables ccache. - `dev` uses `RelWithDebInfo` and enables `CMAKE_EXPORT_COMPILE_COMMANDS` and `ACTS_FORCE_ASSERTIONS` - `perf` uses `Release` sets a few compiler flags to keep frame pointers and enables `ACTS_BUILD_BENCHMARKS` - `ci-common` is the base for all CI presets. It enables the usual flags for what to build in the CI, uses `Release`, `-Werror` and enables `ACTS_FORCE_ASSERTIONS` and `ACTS_ENABLE_LOG_FAILURE_THRESHOLD` - `github-ci` will not change anything for now - `gitlab-ci` will switch to `RelWithDebInfo` to allow FPE monitoring While doing so I also - removed the `ACTS_BUILD_EVERYTHING` CMake variable because the preset can be used to collect the "default" flags - removed the `ACTS_BUILD_EXAMPLES` CMake option for a similar reason. I kept the cmake variable because it is used to toggle things internally in our CMake refactor: physmon: enlarge etaRange for GX2F to match KF settings (#3412) blocked by: - https://github.com/acts-project/acts/pull/3411 refactor: Rework initial `qOverP` sigma in Examples (#3422) - Use relative `pt` resolution as parameter. Get initial `qOverP` sigma by combining relative `pt` resolution and `theta` sigma - Apply to `ParticleSmearing` - Wire to python - Disable smearing for truth smeared seeding to allow track finding encounter measurements fix: Avoid segfaults in bin adjustments (#3472) Previously, only the surface type was checked, and then a bounds type assumed. Then, the result of a `dynamic_cast` was used unchecked. This changes this to ensure correcteness by checking the `dynamic_cast`s. ci: Disable clang-tidy for external dependencies (#3477) When using CMake's FetchContent mechanism, the source code for those dependencies ends up in the `build/_deps/` directory, which was previously subject to analysis by clang-tidy, which can lead to errors rooted in external projects. This commit disables clang-tidy for that directory, resolving the issue. This commit comes from #3117. Co-authored-by: Fred <92879080+fredevb@users.noreply.github.com> fix: Skip outliers in `GreedyAmbiguityResolution` (#3452) Outliers should not be counted as measurements in the ambiguity resolution step build: Improve traccc dependency loading (#3478) This commit makes a few changes to the way some of the Acts R&D projects are loaded in Acts (i.e. detray, traccc, algebra-plugins), namely: 1. It adds code to load detray's dependencies if the Acts project is installed. 2. It updates the versions of detray and traccc so they are compatible. 3. It adds some documentation to the `thirdparty/` directory. 4. It refines the parameters for the CMake build systems of various projects to be more robust. This commit comes from https://github.com/acts-project/acts/pull/3117. Co-authored-by: Fred <92879080+fredevb@users.noreply.github.com> feat: Decouple SurfaceAccessor from source link implementations (#3445) Making the `TestSourceLink` a template that takes the geometry type for compatibility with both gens of the geometry. Adding the `findSurface` method to the `Experimental::Detector`, analogous to that of the `TrackingGeometry`. fix: Really handle holes after measurement selection in Core CKF (#3474) Looks like I lost the actual objective in https://github.com/acts-project/acts/pull/3413 which did not resolve the issue. After the refactoring of the measurement selector it is possible that we end up with no measurements after selection. That case was not handled by the Core CKF yet. https://github.com/acts-project/acts/pull/3413 was an attempt to fix the problem but the hole handling was shifted to the wrong place. We want to check for a hole after `trackStateCandidateCreator` and before `processNewTrackStates`.
2024-08-07T09:24:45.790499 image/svg+xml Matplotlib v3.7.2, https://matplotlib.org/ fix: Remove residual mentions of C++17 (#3455) This commit removes some residual mentions of C++17 in the source code which have become irrelevant since the switch to C++20. Although most of these are completely harmless, the `FindFilesystem.cmake` change is actually important as it was setting `CMAKE_CXX_STANDARD` as a non-cache variable, thereby overriding any other settings and potentially reverting builds back to C++17, which was breaking some traccc builds as @fredevb discovered. feat: Use track particle double matching by default in Examples (#3409) This should penalize tracks which only have a fraction of the measurements left by particles in the detector. chore: Use `ParticleHypothesis` for q/p handling in a few more cases (#3456) I found a few more cases where we handle q/p by hand. Using the `ParticleHypothesis` ensures correct sign and neutral handling. perf: Use `SympyStepper` over `EigenStepper` in Examples (#3459) This should improve CPU performance while keeping physics performance the same. fix: select binning dimension in cuboid volume builder (#3463) This lets us set in the config also other dimension than the previous `BinningValue::binX`. This is necessary, if we want to build a detector that is not parallel to the x-axis. The default value stays `BinningValue::binX` to not break anything. ### Note Volumes will be connected only in X-direction, since `BoundarySurfaceFace::positiveFaceYZ` is hardcoded. It might be possible to generalise this, but I didn't need that feature and it might overcomplicate the builder. feat: splitting fill and update function (#3465) Thi PR splits the `fill(...)` and `update(...)` function or `NavigationStateUpdators` of the `Gen2` geometry. This avoid uneccesary copying and multiple intersections in case of chained updaters. feat: Add CMake presets (#3135) Adds CMake presets (https://cmake.org/cmake/help/latest/manual/cmake-presets.7.html) to collect common configuration and build settings. The current list of presets: - `common` as a base for all the other presets. This enables everything necessary for running the ODD full chain examples with Fatras. It sets the cpp standard to 20, the generator to ninja and enables ccache. - `dev` uses `RelWithDebInfo` and enables `CMAKE_EXPORT_COMPILE_COMMANDS` and `ACTS_FORCE_ASSERTIONS` - `perf` uses `Release` sets a few compiler flags to keep frame pointers and enables `ACTS_BUILD_BENCHMARKS` - `ci-common` is the base for all CI presets. It enables the usual flags for what to build in the CI, uses `Release`, `-Werror` and enables `ACTS_FORCE_ASSERTIONS` and `ACTS_ENABLE_LOG_FAILURE_THRESHOLD` - `github-ci` will not change anything for now - `gitlab-ci` will switch to `RelWithDebInfo` to allow FPE monitoring While doing so I also - removed the `ACTS_BUILD_EVERYTHING` CMake variable because the preset can be used to collect the "default" flags - removed the `ACTS_BUILD_EXAMPLES` CMake option for a similar reason. I kept the cmake variable because it is used to toggle things internally in our CMake refactor: physmon: enlarge etaRange for GX2F to match KF settings (#3412) blocked by: - https://github.com/acts-project/acts/pull/3411 refactor: Rework initial `qOverP` sigma in Examples (#3422) - Use relative `pt` resolution as parameter. Get initial `qOverP` sigma by combining relative `pt` resolution and `theta` sigma - Apply to `ParticleSmearing` - Wire to python - Disable smearing for truth smeared seeding to allow track finding encounter measurements fix: Avoid segfaults in bin adjustments (#3472) Previously, only the surface type was checked, and then a bounds type assumed. Then, the result of a `dynamic_cast` was used unchecked. This changes this to ensure correcteness by checking the `dynamic_cast`s. ci: Disable clang-tidy for external dependencies (#3477) When using CMake's FetchContent mechanism, the source code for those dependencies ends up in the `build/_deps/` directory, which was previously subject to analysis by clang-tidy, which can lead to errors rooted in external projects. This commit disables clang-tidy for that directory, resolving the issue. This commit comes from #3117. Co-authored-by: Fred <92879080+fredevb@users.noreply.github.com> fix: Skip outliers in `GreedyAmbiguityResolution` (#3452) Outliers should not be counted as measurements in the ambiguity resolution step build: Improve traccc dependency loading (#3478) This commit makes a few changes to the way some of the Acts R&D projects are loaded in Acts (i.e. detray, traccc, algebra-plugins), namely: 1. It adds code to load detray's dependencies if the Acts project is installed. 2. It updates the versions of detray and traccc so they are compatible. 3. It adds some documentation to the `thirdparty/` directory. 4. It refines the parameters for the CMake build systems of various projects to be more robust. This commit comes from https://github.com/acts-project/acts/pull/3117. Co-authored-by: Fred <92879080+fredevb@users.noreply.github.com> feat: Decouple SurfaceAccessor from source link implementations (#3445) Making the `TestSourceLink` a template that takes the geometry type for compatibility with both gens of the geometry. Adding the `findSurface` method to the `Experimental::Detector`, analogous to that of the `TrackingGeometry`. fix: Really handle holes after measurement selection in Core CKF (#3474) Looks like I lost the actual objective in https://github.com/acts-project/acts/pull/3413 which did not resolve the issue. After the refactoring of the measurement selector it is possible that we end up with no measurements after selection. That case was not handled by the Core CKF yet. https://github.com/acts-project/acts/pull/3413 was an attempt to fix the problem but the hole handling was shifted to the wrong place. We want to check for a hole after `trackStateCandidateCreator` and before `processNewTrackStates`.
2024-08-07T09:24:46.129745 image/svg+xml Matplotlib v3.7.2, https://matplotlib.org/ fix: Remove residual mentions of C++17 (#3455) This commit removes some residual mentions of C++17 in the source code which have become irrelevant since the switch to C++20. Although most of these are completely harmless, the `FindFilesystem.cmake` change is actually important as it was setting `CMAKE_CXX_STANDARD` as a non-cache variable, thereby overriding any other settings and potentially reverting builds back to C++17, which was breaking some traccc builds as @fredevb discovered. feat: Use track particle double matching by default in Examples (#3409) This should penalize tracks which only have a fraction of the measurements left by particles in the detector. chore: Use `ParticleHypothesis` for q/p handling in a few more cases (#3456) I found a few more cases where we handle q/p by hand. Using the `ParticleHypothesis` ensures correct sign and neutral handling. perf: Use `SympyStepper` over `EigenStepper` in Examples (#3459) This should improve CPU performance while keeping physics performance the same. fix: select binning dimension in cuboid volume builder (#3463) This lets us set in the config also other dimension than the previous `BinningValue::binX`. This is necessary, if we want to build a detector that is not parallel to the x-axis. The default value stays `BinningValue::binX` to not break anything. ### Note Volumes will be connected only in X-direction, since `BoundarySurfaceFace::positiveFaceYZ` is hardcoded. It might be possible to generalise this, but I didn't need that feature and it might overcomplicate the builder. feat: splitting fill and update function (#3465) Thi PR splits the `fill(...)` and `update(...)` function or `NavigationStateUpdators` of the `Gen2` geometry. This avoid uneccesary copying and multiple intersections in case of chained updaters. feat: Add CMake presets (#3135) Adds CMake presets (https://cmake.org/cmake/help/latest/manual/cmake-presets.7.html) to collect common configuration and build settings. The current list of presets: - `common` as a base for all the other presets. This enables everything necessary for running the ODD full chain examples with Fatras. It sets the cpp standard to 20, the generator to ninja and enables ccache. - `dev` uses `RelWithDebInfo` and enables `CMAKE_EXPORT_COMPILE_COMMANDS` and `ACTS_FORCE_ASSERTIONS` - `perf` uses `Release` sets a few compiler flags to keep frame pointers and enables `ACTS_BUILD_BENCHMARKS` - `ci-common` is the base for all CI presets. It enables the usual flags for what to build in the CI, uses `Release`, `-Werror` and enables `ACTS_FORCE_ASSERTIONS` and `ACTS_ENABLE_LOG_FAILURE_THRESHOLD` - `github-ci` will not change anything for now - `gitlab-ci` will switch to `RelWithDebInfo` to allow FPE monitoring While doing so I also - removed the `ACTS_BUILD_EVERYTHING` CMake variable because the preset can be used to collect the "default" flags - removed the `ACTS_BUILD_EXAMPLES` CMake option for a similar reason. I kept the cmake variable because it is used to toggle things internally in our CMake refactor: physmon: enlarge etaRange for GX2F to match KF settings (#3412) blocked by: - https://github.com/acts-project/acts/pull/3411 refactor: Rework initial `qOverP` sigma in Examples (#3422) - Use relative `pt` resolution as parameter. Get initial `qOverP` sigma by combining relative `pt` resolution and `theta` sigma - Apply to `ParticleSmearing` - Wire to python - Disable smearing for truth smeared seeding to allow track finding encounter measurements fix: Avoid segfaults in bin adjustments (#3472) Previously, only the surface type was checked, and then a bounds type assumed. Then, the result of a `dynamic_cast` was used unchecked. This changes this to ensure correcteness by checking the `dynamic_cast`s. ci: Disable clang-tidy for external dependencies (#3477) When using CMake's FetchContent mechanism, the source code for those dependencies ends up in the `build/_deps/` directory, which was previously subject to analysis by clang-tidy, which can lead to errors rooted in external projects. This commit disables clang-tidy for that directory, resolving the issue. This commit comes from #3117. Co-authored-by: Fred <92879080+fredevb@users.noreply.github.com> fix: Skip outliers in `GreedyAmbiguityResolution` (#3452) Outliers should not be counted as measurements in the ambiguity resolution step build: Improve traccc dependency loading (#3478) This commit makes a few changes to the way some of the Acts R&D projects are loaded in Acts (i.e. detray, traccc, algebra-plugins), namely: 1. It adds code to load detray's dependencies if the Acts project is installed. 2. It updates the versions of detray and traccc so they are compatible. 3. It adds some documentation to the `thirdparty/` directory. 4. It refines the parameters for the CMake build systems of various projects to be more robust. This commit comes from https://github.com/acts-project/acts/pull/3117. Co-authored-by: Fred <92879080+fredevb@users.noreply.github.com> feat: Decouple SurfaceAccessor from source link implementations (#3445) Making the `TestSourceLink` a template that takes the geometry type for compatibility with both gens of the geometry. Adding the `findSurface` method to the `Experimental::Detector`, analogous to that of the `TrackingGeometry`. fix: Really handle holes after measurement selection in Core CKF (#3474) Looks like I lost the actual objective in https://github.com/acts-project/acts/pull/3413 which did not resolve the issue. After the refactoring of the measurement selector it is possible that we end up with no measurements after selection. That case was not handled by the Core CKF yet. https://github.com/acts-project/acts/pull/3413 was an attempt to fix the problem but the hole handling was shifted to the wrong place. We want to check for a hole after `trackStateCandidateCreator` and before `processNewTrackStates`.
2024-08-07T09:24:46.499989 image/svg+xml Matplotlib v3.7.2, https://matplotlib.org/ fix: Remove residual mentions of C++17 (#3455) This commit removes some residual mentions of C++17 in the source code which have become irrelevant since the switch to C++20. Although most of these are completely harmless, the `FindFilesystem.cmake` change is actually important as it was setting `CMAKE_CXX_STANDARD` as a non-cache variable, thereby overriding any other settings and potentially reverting builds back to C++17, which was breaking some traccc builds as @fredevb discovered. feat: Use track particle double matching by default in Examples (#3409) This should penalize tracks which only have a fraction of the measurements left by particles in the detector. chore: Use `ParticleHypothesis` for q/p handling in a few more cases (#3456) I found a few more cases where we handle q/p by hand. Using the `ParticleHypothesis` ensures correct sign and neutral handling. perf: Use `SympyStepper` over `EigenStepper` in Examples (#3459) This should improve CPU performance while keeping physics performance the same. fix: select binning dimension in cuboid volume builder (#3463) This lets us set in the config also other dimension than the previous `BinningValue::binX`. This is necessary, if we want to build a detector that is not parallel to the x-axis. The default value stays `BinningValue::binX` to not break anything. ### Note Volumes will be connected only in X-direction, since `BoundarySurfaceFace::positiveFaceYZ` is hardcoded. It might be possible to generalise this, but I didn't need that feature and it might overcomplicate the builder. feat: splitting fill and update function (#3465) Thi PR splits the `fill(...)` and `update(...)` function or `NavigationStateUpdators` of the `Gen2` geometry. This avoid uneccesary copying and multiple intersections in case of chained updaters. feat: Add CMake presets (#3135) Adds CMake presets (https://cmake.org/cmake/help/latest/manual/cmake-presets.7.html) to collect common configuration and build settings. The current list of presets: - `common` as a base for all the other presets. This enables everything necessary for running the ODD full chain examples with Fatras. It sets the cpp standard to 20, the generator to ninja and enables ccache. - `dev` uses `RelWithDebInfo` and enables `CMAKE_EXPORT_COMPILE_COMMANDS` and `ACTS_FORCE_ASSERTIONS` - `perf` uses `Release` sets a few compiler flags to keep frame pointers and enables `ACTS_BUILD_BENCHMARKS` - `ci-common` is the base for all CI presets. It enables the usual flags for what to build in the CI, uses `Release`, `-Werror` and enables `ACTS_FORCE_ASSERTIONS` and `ACTS_ENABLE_LOG_FAILURE_THRESHOLD` - `github-ci` will not change anything for now - `gitlab-ci` will switch to `RelWithDebInfo` to allow FPE monitoring While doing so I also - removed the `ACTS_BUILD_EVERYTHING` CMake variable because the preset can be used to collect the "default" flags - removed the `ACTS_BUILD_EXAMPLES` CMake option for a similar reason. I kept the cmake variable because it is used to toggle things internally in our CMake refactor: physmon: enlarge etaRange for GX2F to match KF settings (#3412) blocked by: - https://github.com/acts-project/acts/pull/3411 refactor: Rework initial `qOverP` sigma in Examples (#3422) - Use relative `pt` resolution as parameter. Get initial `qOverP` sigma by combining relative `pt` resolution and `theta` sigma - Apply to `ParticleSmearing` - Wire to python - Disable smearing for truth smeared seeding to allow track finding encounter measurements fix: Avoid segfaults in bin adjustments (#3472) Previously, only the surface type was checked, and then a bounds type assumed. Then, the result of a `dynamic_cast` was used unchecked. This changes this to ensure correcteness by checking the `dynamic_cast`s. ci: Disable clang-tidy for external dependencies (#3477) When using CMake's FetchContent mechanism, the source code for those dependencies ends up in the `build/_deps/` directory, which was previously subject to analysis by clang-tidy, which can lead to errors rooted in external projects. This commit disables clang-tidy for that directory, resolving the issue. This commit comes from #3117. Co-authored-by: Fred <92879080+fredevb@users.noreply.github.com> fix: Skip outliers in `GreedyAmbiguityResolution` (#3452) Outliers should not be counted as measurements in the ambiguity resolution step build: Improve traccc dependency loading (#3478) This commit makes a few changes to the way some of the Acts R&D projects are loaded in Acts (i.e. detray, traccc, algebra-plugins), namely: 1. It adds code to load detray's dependencies if the Acts project is installed. 2. It updates the versions of detray and traccc so they are compatible. 3. It adds some documentation to the `thirdparty/` directory. 4. It refines the parameters for the CMake build systems of various projects to be more robust. This commit comes from https://github.com/acts-project/acts/pull/3117. Co-authored-by: Fred <92879080+fredevb@users.noreply.github.com> feat: Decouple SurfaceAccessor from source link implementations (#3445) Making the `TestSourceLink` a template that takes the geometry type for compatibility with both gens of the geometry. Adding the `findSurface` method to the `Experimental::Detector`, analogous to that of the `TrackingGeometry`. fix: Really handle holes after measurement selection in Core CKF (#3474) Looks like I lost the actual objective in https://github.com/acts-project/acts/pull/3413 which did not resolve the issue. After the refactoring of the measurement selector it is possible that we end up with no measurements after selection. That case was not handled by the Core CKF yet. https://github.com/acts-project/acts/pull/3413 was an attempt to fix the problem but the hole handling was shifted to the wrong place. We want to check for a hole after `trackStateCandidateCreator` and before `processNewTrackStates`.
2024-08-07T09:24:46.832695 image/svg+xml Matplotlib v3.7.2, https://matplotlib.org/ fix: Remove residual mentions of C++17 (#3455) This commit removes some residual mentions of C++17 in the source code which have become irrelevant since the switch to C++20. Although most of these are completely harmless, the `FindFilesystem.cmake` change is actually important as it was setting `CMAKE_CXX_STANDARD` as a non-cache variable, thereby overriding any other settings and potentially reverting builds back to C++17, which was breaking some traccc builds as @fredevb discovered. feat: Use track particle double matching by default in Examples (#3409) This should penalize tracks which only have a fraction of the measurements left by particles in the detector. chore: Use `ParticleHypothesis` for q/p handling in a few more cases (#3456) I found a few more cases where we handle q/p by hand. Using the `ParticleHypothesis` ensures correct sign and neutral handling. perf: Use `SympyStepper` over `EigenStepper` in Examples (#3459) This should improve CPU performance while keeping physics performance the same. fix: select binning dimension in cuboid volume builder (#3463) This lets us set in the config also other dimension than the previous `BinningValue::binX`. This is necessary, if we want to build a detector that is not parallel to the x-axis. The default value stays `BinningValue::binX` to not break anything. ### Note Volumes will be connected only in X-direction, since `BoundarySurfaceFace::positiveFaceYZ` is hardcoded. It might be possible to generalise this, but I didn't need that feature and it might overcomplicate the builder. feat: splitting fill and update function (#3465) Thi PR splits the `fill(...)` and `update(...)` function or `NavigationStateUpdators` of the `Gen2` geometry. This avoid uneccesary copying and multiple intersections in case of chained updaters. feat: Add CMake presets (#3135) Adds CMake presets (https://cmake.org/cmake/help/latest/manual/cmake-presets.7.html) to collect common configuration and build settings. The current list of presets: - `common` as a base for all the other presets. This enables everything necessary for running the ODD full chain examples with Fatras. It sets the cpp standard to 20, the generator to ninja and enables ccache. - `dev` uses `RelWithDebInfo` and enables `CMAKE_EXPORT_COMPILE_COMMANDS` and `ACTS_FORCE_ASSERTIONS` - `perf` uses `Release` sets a few compiler flags to keep frame pointers and enables `ACTS_BUILD_BENCHMARKS` - `ci-common` is the base for all CI presets. It enables the usual flags for what to build in the CI, uses `Release`, `-Werror` and enables `ACTS_FORCE_ASSERTIONS` and `ACTS_ENABLE_LOG_FAILURE_THRESHOLD` - `github-ci` will not change anything for now - `gitlab-ci` will switch to `RelWithDebInfo` to allow FPE monitoring While doing so I also - removed the `ACTS_BUILD_EVERYTHING` CMake variable because the preset can be used to collect the "default" flags - removed the `ACTS_BUILD_EXAMPLES` CMake option for a similar reason. I kept the cmake variable because it is used to toggle things internally in our CMake refactor: physmon: enlarge etaRange for GX2F to match KF settings (#3412) blocked by: - https://github.com/acts-project/acts/pull/3411 refactor: Rework initial `qOverP` sigma in Examples (#3422) - Use relative `pt` resolution as parameter. Get initial `qOverP` sigma by combining relative `pt` resolution and `theta` sigma - Apply to `ParticleSmearing` - Wire to python - Disable smearing for truth smeared seeding to allow track finding encounter measurements fix: Avoid segfaults in bin adjustments (#3472) Previously, only the surface type was checked, and then a bounds type assumed. Then, the result of a `dynamic_cast` was used unchecked. This changes this to ensure correcteness by checking the `dynamic_cast`s. ci: Disable clang-tidy for external dependencies (#3477) When using CMake's FetchContent mechanism, the source code for those dependencies ends up in the `build/_deps/` directory, which was previously subject to analysis by clang-tidy, which can lead to errors rooted in external projects. This commit disables clang-tidy for that directory, resolving the issue. This commit comes from #3117. Co-authored-by: Fred <92879080+fredevb@users.noreply.github.com> fix: Skip outliers in `GreedyAmbiguityResolution` (#3452) Outliers should not be counted as measurements in the ambiguity resolution step build: Improve traccc dependency loading (#3478) This commit makes a few changes to the way some of the Acts R&D projects are loaded in Acts (i.e. detray, traccc, algebra-plugins), namely: 1. It adds code to load detray's dependencies if the Acts project is installed. 2. It updates the versions of detray and traccc so they are compatible. 3. It adds some documentation to the `thirdparty/` directory. 4. It refines the parameters for the CMake build systems of various projects to be more robust. This commit comes from https://github.com/acts-project/acts/pull/3117. Co-authored-by: Fred <92879080+fredevb@users.noreply.github.com> feat: Decouple SurfaceAccessor from source link implementations (#3445) Making the `TestSourceLink` a template that takes the geometry type for compatibility with both gens of the geometry. Adding the `findSurface` method to the `Experimental::Detector`, analogous to that of the `TrackingGeometry`. fix: Really handle holes after measurement selection in Core CKF (#3474) Looks like I lost the actual objective in https://github.com/acts-project/acts/pull/3413 which did not resolve the issue. After the refactoring of the measurement selector it is possible that we end up with no measurements after selection. That case was not handled by the Core CKF yet. https://github.com/acts-project/acts/pull/3413 was an attempt to fix the problem but the hole handling was shifted to the wrong place. We want to check for a hole after `trackStateCandidateCreator` and before `processNewTrackStates`.
2024-08-07T09:24:47.158434 image/svg+xml Matplotlib v3.7.2, https://matplotlib.org/ fix: Remove residual mentions of C++17 (#3455) This commit removes some residual mentions of C++17 in the source code which have become irrelevant since the switch to C++20. Although most of these are completely harmless, the `FindFilesystem.cmake` change is actually important as it was setting `CMAKE_CXX_STANDARD` as a non-cache variable, thereby overriding any other settings and potentially reverting builds back to C++17, which was breaking some traccc builds as @fredevb discovered. feat: Use track particle double matching by default in Examples (#3409) This should penalize tracks which only have a fraction of the measurements left by particles in the detector. chore: Use `ParticleHypothesis` for q/p handling in a few more cases (#3456) I found a few more cases where we handle q/p by hand. Using the `ParticleHypothesis` ensures correct sign and neutral handling. perf: Use `SympyStepper` over `EigenStepper` in Examples (#3459) This should improve CPU performance while keeping physics performance the same. fix: select binning dimension in cuboid volume builder (#3463) This lets us set in the config also other dimension than the previous `BinningValue::binX`. This is necessary, if we want to build a detector that is not parallel to the x-axis. The default value stays `BinningValue::binX` to not break anything. ### Note Volumes will be connected only in X-direction, since `BoundarySurfaceFace::positiveFaceYZ` is hardcoded. It might be possible to generalise this, but I didn't need that feature and it might overcomplicate the builder. feat: splitting fill and update function (#3465) Thi PR splits the `fill(...)` and `update(...)` function or `NavigationStateUpdators` of the `Gen2` geometry. This avoid uneccesary copying and multiple intersections in case of chained updaters. feat: Add CMake presets (#3135) Adds CMake presets (https://cmake.org/cmake/help/latest/manual/cmake-presets.7.html) to collect common configuration and build settings. The current list of presets: - `common` as a base for all the other presets. This enables everything necessary for running the ODD full chain examples with Fatras. It sets the cpp standard to 20, the generator to ninja and enables ccache. - `dev` uses `RelWithDebInfo` and enables `CMAKE_EXPORT_COMPILE_COMMANDS` and `ACTS_FORCE_ASSERTIONS` - `perf` uses `Release` sets a few compiler flags to keep frame pointers and enables `ACTS_BUILD_BENCHMARKS` - `ci-common` is the base for all CI presets. It enables the usual flags for what to build in the CI, uses `Release`, `-Werror` and enables `ACTS_FORCE_ASSERTIONS` and `ACTS_ENABLE_LOG_FAILURE_THRESHOLD` - `github-ci` will not change anything for now - `gitlab-ci` will switch to `RelWithDebInfo` to allow FPE monitoring While doing so I also - removed the `ACTS_BUILD_EVERYTHING` CMake variable because the preset can be used to collect the "default" flags - removed the `ACTS_BUILD_EXAMPLES` CMake option for a similar reason. I kept the cmake variable because it is used to toggle things internally in our CMake refactor: physmon: enlarge etaRange for GX2F to match KF settings (#3412) blocked by: - https://github.com/acts-project/acts/pull/3411 refactor: Rework initial `qOverP` sigma in Examples (#3422) - Use relative `pt` resolution as parameter. Get initial `qOverP` sigma by combining relative `pt` resolution and `theta` sigma - Apply to `ParticleSmearing` - Wire to python - Disable smearing for truth smeared seeding to allow track finding encounter measurements fix: Avoid segfaults in bin adjustments (#3472) Previously, only the surface type was checked, and then a bounds type assumed. Then, the result of a `dynamic_cast` was used unchecked. This changes this to ensure correcteness by checking the `dynamic_cast`s. ci: Disable clang-tidy for external dependencies (#3477) When using CMake's FetchContent mechanism, the source code for those dependencies ends up in the `build/_deps/` directory, which was previously subject to analysis by clang-tidy, which can lead to errors rooted in external projects. This commit disables clang-tidy for that directory, resolving the issue. This commit comes from #3117. Co-authored-by: Fred <92879080+fredevb@users.noreply.github.com> fix: Skip outliers in `GreedyAmbiguityResolution` (#3452) Outliers should not be counted as measurements in the ambiguity resolution step build: Improve traccc dependency loading (#3478) This commit makes a few changes to the way some of the Acts R&D projects are loaded in Acts (i.e. detray, traccc, algebra-plugins), namely: 1. It adds code to load detray's dependencies if the Acts project is installed. 2. It updates the versions of detray and traccc so they are compatible. 3. It adds some documentation to the `thirdparty/` directory. 4. It refines the parameters for the CMake build systems of various projects to be more robust. This commit comes from https://github.com/acts-project/acts/pull/3117. Co-authored-by: Fred <92879080+fredevb@users.noreply.github.com> feat: Decouple SurfaceAccessor from source link implementations (#3445) Making the `TestSourceLink` a template that takes the geometry type for compatibility with both gens of the geometry. Adding the `findSurface` method to the `Experimental::Detector`, analogous to that of the `TrackingGeometry`. fix: Really handle holes after measurement selection in Core CKF (#3474) Looks like I lost the actual objective in https://github.com/acts-project/acts/pull/3413 which did not resolve the issue. After the refactoring of the measurement selector it is possible that we end up with no measurements after selection. That case was not handled by the Core CKF yet. https://github.com/acts-project/acts/pull/3413 was an attempt to fix the problem but the hole handling was shifted to the wrong place. We want to check for a hole after `trackStateCandidateCreator` and before `processNewTrackStates`.
2024-08-07T09:24:47.510564 image/svg+xml Matplotlib v3.7.2, https://matplotlib.org/ fix: Remove residual mentions of C++17 (#3455) This commit removes some residual mentions of C++17 in the source code which have become irrelevant since the switch to C++20. Although most of these are completely harmless, the `FindFilesystem.cmake` change is actually important as it was setting `CMAKE_CXX_STANDARD` as a non-cache variable, thereby overriding any other settings and potentially reverting builds back to C++17, which was breaking some traccc builds as @fredevb discovered. feat: Use track particle double matching by default in Examples (#3409) This should penalize tracks which only have a fraction of the measurements left by particles in the detector. chore: Use `ParticleHypothesis` for q/p handling in a few more cases (#3456) I found a few more cases where we handle q/p by hand. Using the `ParticleHypothesis` ensures correct sign and neutral handling. perf: Use `SympyStepper` over `EigenStepper` in Examples (#3459) This should improve CPU performance while keeping physics performance the same. fix: select binning dimension in cuboid volume builder (#3463) This lets us set in the config also other dimension than the previous `BinningValue::binX`. This is necessary, if we want to build a detector that is not parallel to the x-axis. The default value stays `BinningValue::binX` to not break anything. ### Note Volumes will be connected only in X-direction, since `BoundarySurfaceFace::positiveFaceYZ` is hardcoded. It might be possible to generalise this, but I didn't need that feature and it might overcomplicate the builder. feat: splitting fill and update function (#3465) Thi PR splits the `fill(...)` and `update(...)` function or `NavigationStateUpdators` of the `Gen2` geometry. This avoid uneccesary copying and multiple intersections in case of chained updaters. feat: Add CMake presets (#3135) Adds CMake presets (https://cmake.org/cmake/help/latest/manual/cmake-presets.7.html) to collect common configuration and build settings. The current list of presets: - `common` as a base for all the other presets. This enables everything necessary for running the ODD full chain examples with Fatras. It sets the cpp standard to 20, the generator to ninja and enables ccache. - `dev` uses `RelWithDebInfo` and enables `CMAKE_EXPORT_COMPILE_COMMANDS` and `ACTS_FORCE_ASSERTIONS` - `perf` uses `Release` sets a few compiler flags to keep frame pointers and enables `ACTS_BUILD_BENCHMARKS` - `ci-common` is the base for all CI presets. It enables the usual flags for what to build in the CI, uses `Release`, `-Werror` and enables `ACTS_FORCE_ASSERTIONS` and `ACTS_ENABLE_LOG_FAILURE_THRESHOLD` - `github-ci` will not change anything for now - `gitlab-ci` will switch to `RelWithDebInfo` to allow FPE monitoring While doing so I also - removed the `ACTS_BUILD_EVERYTHING` CMake variable because the preset can be used to collect the "default" flags - removed the `ACTS_BUILD_EXAMPLES` CMake option for a similar reason. I kept the cmake variable because it is used to toggle things internally in our CMake refactor: physmon: enlarge etaRange for GX2F to match KF settings (#3412) blocked by: - https://github.com/acts-project/acts/pull/3411 refactor: Rework initial `qOverP` sigma in Examples (#3422) - Use relative `pt` resolution as parameter. Get initial `qOverP` sigma by combining relative `pt` resolution and `theta` sigma - Apply to `ParticleSmearing` - Wire to python - Disable smearing for truth smeared seeding to allow track finding encounter measurements fix: Avoid segfaults in bin adjustments (#3472) Previously, only the surface type was checked, and then a bounds type assumed. Then, the result of a `dynamic_cast` was used unchecked. This changes this to ensure correcteness by checking the `dynamic_cast`s. ci: Disable clang-tidy for external dependencies (#3477) When using CMake's FetchContent mechanism, the source code for those dependencies ends up in the `build/_deps/` directory, which was previously subject to analysis by clang-tidy, which can lead to errors rooted in external projects. This commit disables clang-tidy for that directory, resolving the issue. This commit comes from #3117. Co-authored-by: Fred <92879080+fredevb@users.noreply.github.com> fix: Skip outliers in `GreedyAmbiguityResolution` (#3452) Outliers should not be counted as measurements in the ambiguity resolution step build: Improve traccc dependency loading (#3478) This commit makes a few changes to the way some of the Acts R&D projects are loaded in Acts (i.e. detray, traccc, algebra-plugins), namely: 1. It adds code to load detray's dependencies if the Acts project is installed. 2. It updates the versions of detray and traccc so they are compatible. 3. It adds some documentation to the `thirdparty/` directory. 4. It refines the parameters for the CMake build systems of various projects to be more robust. This commit comes from https://github.com/acts-project/acts/pull/3117. Co-authored-by: Fred <92879080+fredevb@users.noreply.github.com> feat: Decouple SurfaceAccessor from source link implementations (#3445) Making the `TestSourceLink` a template that takes the geometry type for compatibility with both gens of the geometry. Adding the `findSurface` method to the `Experimental::Detector`, analogous to that of the `TrackingGeometry`. fix: Really handle holes after measurement selection in Core CKF (#3474) Looks like I lost the actual objective in https://github.com/acts-project/acts/pull/3413 which did not resolve the issue. After the refactoring of the measurement selector it is possible that we end up with no measurements after selection. That case was not handled by the Core CKF yet. https://github.com/acts-project/acts/pull/3413 was an attempt to fix the problem but the hole handling was shifted to the wrong place. We want to check for a hole after `trackStateCandidateCreator` and before `processNewTrackStates`.
2024-08-07T09:24:47.834720 image/svg+xml Matplotlib v3.7.2, https://matplotlib.org/ fix: Remove residual mentions of C++17 (#3455) This commit removes some residual mentions of C++17 in the source code which have become irrelevant since the switch to C++20. Although most of these are completely harmless, the `FindFilesystem.cmake` change is actually important as it was setting `CMAKE_CXX_STANDARD` as a non-cache variable, thereby overriding any other settings and potentially reverting builds back to C++17, which was breaking some traccc builds as @fredevb discovered. feat: Use track particle double matching by default in Examples (#3409) This should penalize tracks which only have a fraction of the measurements left by particles in the detector. chore: Use `ParticleHypothesis` for q/p handling in a few more cases (#3456) I found a few more cases where we handle q/p by hand. Using the `ParticleHypothesis` ensures correct sign and neutral handling. perf: Use `SympyStepper` over `EigenStepper` in Examples (#3459) This should improve CPU performance while keeping physics performance the same. fix: select binning dimension in cuboid volume builder (#3463) This lets us set in the config also other dimension than the previous `BinningValue::binX`. This is necessary, if we want to build a detector that is not parallel to the x-axis. The default value stays `BinningValue::binX` to not break anything. ### Note Volumes will be connected only in X-direction, since `BoundarySurfaceFace::positiveFaceYZ` is hardcoded. It might be possible to generalise this, but I didn't need that feature and it might overcomplicate the builder. feat: splitting fill and update function (#3465) Thi PR splits the `fill(...)` and `update(...)` function or `NavigationStateUpdators` of the `Gen2` geometry. This avoid uneccesary copying and multiple intersections in case of chained updaters. feat: Add CMake presets (#3135) Adds CMake presets (https://cmake.org/cmake/help/latest/manual/cmake-presets.7.html) to collect common configuration and build settings. The current list of presets: - `common` as a base for all the other presets. This enables everything necessary for running the ODD full chain examples with Fatras. It sets the cpp standard to 20, the generator to ninja and enables ccache. - `dev` uses `RelWithDebInfo` and enables `CMAKE_EXPORT_COMPILE_COMMANDS` and `ACTS_FORCE_ASSERTIONS` - `perf` uses `Release` sets a few compiler flags to keep frame pointers and enables `ACTS_BUILD_BENCHMARKS` - `ci-common` is the base for all CI presets. It enables the usual flags for what to build in the CI, uses `Release`, `-Werror` and enables `ACTS_FORCE_ASSERTIONS` and `ACTS_ENABLE_LOG_FAILURE_THRESHOLD` - `github-ci` will not change anything for now - `gitlab-ci` will switch to `RelWithDebInfo` to allow FPE monitoring While doing so I also - removed the `ACTS_BUILD_EVERYTHING` CMake variable because the preset can be used to collect the "default" flags - removed the `ACTS_BUILD_EXAMPLES` CMake option for a similar reason. I kept the cmake variable because it is used to toggle things internally in our CMake refactor: physmon: enlarge etaRange for GX2F to match KF settings (#3412) blocked by: - https://github.com/acts-project/acts/pull/3411 refactor: Rework initial `qOverP` sigma in Examples (#3422) - Use relative `pt` resolution as parameter. Get initial `qOverP` sigma by combining relative `pt` resolution and `theta` sigma - Apply to `ParticleSmearing` - Wire to python - Disable smearing for truth smeared seeding to allow track finding encounter measurements fix: Avoid segfaults in bin adjustments (#3472) Previously, only the surface type was checked, and then a bounds type assumed. Then, the result of a `dynamic_cast` was used unchecked. This changes this to ensure correcteness by checking the `dynamic_cast`s. ci: Disable clang-tidy for external dependencies (#3477) When using CMake's FetchContent mechanism, the source code for those dependencies ends up in the `build/_deps/` directory, which was previously subject to analysis by clang-tidy, which can lead to errors rooted in external projects. This commit disables clang-tidy for that directory, resolving the issue. This commit comes from #3117. Co-authored-by: Fred <92879080+fredevb@users.noreply.github.com> fix: Skip outliers in `GreedyAmbiguityResolution` (#3452) Outliers should not be counted as measurements in the ambiguity resolution step build: Improve traccc dependency loading (#3478) This commit makes a few changes to the way some of the Acts R&D projects are loaded in Acts (i.e. detray, traccc, algebra-plugins), namely: 1. It adds code to load detray's dependencies if the Acts project is installed. 2. It updates the versions of detray and traccc so they are compatible. 3. It adds some documentation to the `thirdparty/` directory. 4. It refines the parameters for the CMake build systems of various projects to be more robust. This commit comes from https://github.com/acts-project/acts/pull/3117. Co-authored-by: Fred <92879080+fredevb@users.noreply.github.com> feat: Decouple SurfaceAccessor from source link implementations (#3445) Making the `TestSourceLink` a template that takes the geometry type for compatibility with both gens of the geometry. Adding the `findSurface` method to the `Experimental::Detector`, analogous to that of the `TrackingGeometry`. fix: Really handle holes after measurement selection in Core CKF (#3474) Looks like I lost the actual objective in https://github.com/acts-project/acts/pull/3413 which did not resolve the issue. After the refactoring of the measurement selector it is possible that we end up with no measurements after selection. That case was not handled by the Core CKF yet. https://github.com/acts-project/acts/pull/3413 was an attempt to fix the problem but the hole handling was shifted to the wrong place. We want to check for a hole after `trackStateCandidateCreator` and before `processNewTrackStates`.