Skip to content

Releases: acts-project/acts

v45.5.0

11 Mar 14:00

Choose a tag to compare

45.5.0

🚀 Features

🐛 Bug Fixes

🚜 Refactor

📚 Documentation

🛠️ Build

⚙️ Miscellaneous Tasks

  • Pre-commit: bump black-jupyter 24.4.2 -> 26.1.0 (#5203) by @AJPfleger
  • Pre-commit: bump gersemi 0.15.0 -> 0.26.0 (#5204) by @AJPfleger
  • Pre-commit: bump pre-commit-hooks 3.2.0 -> 6.0.0 (#5205) by @AJPfleger
  • Pre-commit: bump clang-format v18.1.8 -> v22.1.0 (#5206) by @AJPfleger
  • Make use of cathetus helper (#5218) by @andiwand
  • Automated python requirements upgrades (#5219) by @github-actions[bot]

v45.4.0

06 Mar 21:06

Choose a tag to compare

45.4.0

🚀 Features

🐛 Bug Fixes

🚜 Refactor

📚 Documentation

🛠️ Build

⚙️ Miscellaneous Tasks

  • Automated python requirements upgrades (#5177) by @github-actions[bot]
  • CompSpacePointAuxiliaries - Improve test coverage (#5120) by @junggjo9
  • Move hello world to algorithms (#5184) by @asalzburger
  • Auto update pip requirements for codegen (#5201) by @AJPfleger

v45.3.0

27 Feb 21:46

Choose a tag to compare

45.3.0

🚀 Features

🐛 Bug Fixes

  • CompositeSpacePointLineFitter: Enable 3-hit fits and add sanity checks to the fitter (#5083) by @lmonaco99
  • Broken SpacePointContainer2 named column access (#5142) by @andiwand
  • Raise and catch ModuleNotFoundError (#5163) by @paulgessinger
  • Inconsistent particle collection after failing particles in Fatras (#5165) by @andiwand

🚜 Refactor

🛠️ Build

⚙️ Miscellaneous Tasks

v45.2.0

19 Feb 13:02

Choose a tag to compare

45.2.0

🚀 Features

🐛 Bug Fixes

🚜 Refactor

  • VertexTruthMatcher Examples algorithm (#5054) by @andiwand
  • Rename Acts::ActsVector to Acts::Vector and co (#5073) by @andiwand
  • Move jet class from plugins to EventData, remove FastJet as plugin (#5089) by @delitez
  • Generalize track parameter estimation further (#5112) by @andiwand

⚙️ Miscellaneous Tasks

v45.1.1

14 Feb 18:01

Choose a tag to compare

45.1.1

🐛 Bug Fixes

  • Policy state inconsistency in navigation (#5080)

v45.1.0

13 Feb 08:08

Choose a tag to compare

45.1.0

🚀 Features

🐛 Bug Fixes

  • Increment particle number in EDM4hep conv gen particles (#5020) by @paulgessinger
  • Revise copy and move of SpacePointContainer2 and SeedContainer2 (#5024) by @andiwand
  • Add missing std except include in MathHelpers.hpp (#5043) by @tstreble-ATLAS
  • Duplicate layers in HoughCell (#4987) by @kciesla93
  • Bin number underflow in HoughVertexFinder (#5060) by @pbalek
  • Speedup surface lookup Mat_map_surface_plot.C using precomputed map (#5046) by @veprbl
  • Changes to the setup script to make the acts installation more portable (#5061) by @pbutti
  • IterativeVertexFinder: const reference instead of copying (#5097) by @juw
  • Harmonise full_chain.py updates (#5065) by @timadye

🚜 Refactor

📚 Documentation

🛠️ Build

⚙️ Miscellaneous Tasks

v45.0.0

29 Jan 18:33

Choose a tag to compare

45.0.0

🚨 BREAKING CHANGES

  • Make BetheHeitlerApprox virtual (#4826) by @andiwand
    • BetheHeitlerApprox and its subclasses are now abstract with virtual functions, breaking compile-time polymorphism. Template parameters NComponents and PolyDegree were removed from AtlasBetheHeitlerApprox, requiring dynamic allocation and losing compile-time constant expressions.
    • The mixture() method signature changed from returning a static array/vector to requiring a pre-allocated span as input parameter, fundamentally altering the API contract and object ownership model.
    • Replace template instantiations with polymorphic pointers (e.g., std::unique_ptr<BetheHeitlerApprox>), pre-allocate mixture buffers using maxComponents(), and pass them to mixture() instead of receiving return values.
  • Remove all deprecated symbols (#4895) by @paulgessinger
    • Deprecated APIs removed, including mutator methods on GeometryIdentifier, Barcode, SimVertexBarcode, and TrackProxy, as well as convenience functions like createClusters(), toInternalUnits() methods, and material map type aliases.
    • Replace mutable methods (setVolume(), setBoundary(), etc.) with immutable alternatives (withVolume(), withBoundary(), etc.) that return new instances instead of modifying in place.
  • Actors return Result instead of void (#4921) by @benjaminhuth
    • Actor act() methods now return Result<void> instead of void, enabling immediate error handling and propagation termination
    • Custom actors must update their act() signature to return Result<void> and return Result<void>::success() or return {}; on success, or an error Result on failure
  • Remove ISurfaceProvider and (Gen1) KDTTrackingGeometry builder & ProtoDetector (#4938) by @asalzburger
    • Removed classes and interfaces: ISurfacesProvider, KDTreeTrackingGeometryBuilder, ProtoDetector, and KdtSurfacesProvider have been deleted as part of deprecating Generation 1 tracking geometry infrastructure.
    • Use the newer Generation 3 geometry building system. If you were using KDTreeTrackingGeometryBuilder or implementing ISurfacesProvider, switch to the Blueprint-based geometry builder and related Gen3 components.
  • Rework KalmanFitter logic (#4694) by @andiwand
    • KalmanFitter interface changes: The reversedFiltering option was renamed to reverseFiltering, and reversedFilteringCovarianceScaling to reverseFilteringCovarianceScaling. The default value for reverse filtering covariance scaling changed from 1.0 to 100.0.
    • Track state mask changes: During Kalman filtering, the Smoothed component is no longer pre-allocated for predicted and filtered track states, breaking code that assumes this mask is present before smoothing.
    • Update option names (reversedFilteringreverseFiltering, reversedFilteringCovarianceScalingreverseFilteringCovarianceScaling) and adjust the scaling factor if you explicitly set it to 1.0 (the new default 100.0 may be more appropriate).
  • Replace KF target strategy (#4835) by @andiwand
    • Removed KalmanFitterTargetSurfaceStrategy enum in favor of the more generic TrackExtrapolationStrategy
    • The KalmanFitterOptions::referenceSurfaceStrategy field now uses TrackExtrapolationStrategy instead of KalmanFitterTargetSurfaceStrategy
    • Replace KalmanFitterTargetSurfaceStrategy::{first,last,firstOrLast} with TrackExtrapolationStrategy::{first,last,firstOrLast} respectively in your code
  • Reduce fitter templating (#4942) by @andiwand
    • KalmanFitter, CombinatorialKalmanFilter, and Gx2Fitter no longer accept templated start parameters—they now require BoundTrackParameters explicitly
    • Replace template parameter start_parameters_t with BoundTrackParameters in your fitter calls and ensure your starting parameters are of type BoundTrackParameters
  • Type erased track and track state proxies (#4889) by @paulgessinger
    • ProxyAccessor now calls proxy.hasColumn(key) instead of proxy.container().hasColumn(key): Code using ProxyAccessorBase::hasColumn() will need to ensure proxy types implement a hasColumn() method
    • New concept requirements for track proxies: Track proxy types must now satisfy stricter concepts (TrackProxyLike, ConstTrackProxyConcept, MutableTrackProxyConcept) and provide specific type aliases and methods
  • Rework TrackStateType (#4945) by @andiwand
    • Renamed TrackStateType map to TrackStateTypeMap and introduced a new TrackStateType value type, breaking any code that references the old map type directly.
    • Replaced bitset-style .test() methods on track state flags with dedicated helper methods (e.g., .test(TrackStateFlag::MeasurementFlag).hasMeasurement(), combined measurement checks → .isMeasurement()).
    • Replace .typeFlags().test(TrackStateFlag::XXXFlag) with .typeFlags().hasXXX() or .typeFlags().isXXX() (e.g., .hasOutlier(), .isOutlier(), .isMeasurement() for measurement-and-not-outlier).
  • Rename thickness to layerThickness (#5013) by @junggjo9
    • The Layer::thickness() method has been renamed to Layer::layerThickness() across the ACTS Core geometry API
    • This affects all code calling thickness() on Layer objects (ConeLayer, CylinderLayer, DiscLayer, PlaneLayer)
    • Replace all calls to layer->thickness() with layer->layerThickness()
  • Strongly type MappingType (#5017) by @andiwand
    • MappingType changed from unscoped enum to strongly-typed enum class, preventing implicit conversion to int and requiring explicit scoping
    • HomogeneousSurfaceMaterial and BinnedSurfaceMaterial constructors now require explicit splitFactor parameter (value 1) before mappingType, as implicit conversion no longer provides the default
    • Use MappingType::PreMapping instead of PreMapping, add explicit splitFactor argument (typically 1.0) when constructing material objects
  • Rework PointwiseMaterialInteraction part 1 (#5016) by @andiwand
    • MaterialUpdateStage renamed to MaterialUpdateMode: The enum was renamed and its numeric values changed (PreUpdate: -1→1, FullUpdate: 0→3, PostUpdate: 1→2), plus a new NoUpdate value was added at 0.
    • NoiseUpdateMode strongly typed: Changed from unscoped enum to scoped enum class, breaking code using addNoise/removeNoise without NoiseUpdateMode:: prefix.
    • Replace MaterialUpdateStage with MaterialUpdateMode, adjust numeric comparisons if any, and prefix NoiseUpdateMode values with NoiseUpdateMode:: (e.g., addNoiseNoiseUpdateMode::addNoise).

🚀 Features

🐛 Bug Fixes

🚜 Refactor

  • RAII RootBranchPtr class to avoid raw pointers (#4822) by @paulgessinger
  • Muon Mockup Detector: use ACTS chamber frame to describe cuboids instead of geoModel local frame (#4896) by @lmonaco99
  • Rename ConvexPolygonVolumeBounds to DiamondVolumeBounds (#4878) by @dimitra97
  • Extend the track and track state proxy concepts (#4897) by @paulgessinger
  • Use templates where possible for compile-time checks and optimizations...
Read more

v44.4.0

05 Dec 17:43

Choose a tag to compare

44.4.0

🚀 Features

🐛 Bug Fixes

🚜 Refactor

📚 Documentation

  • Add information about setting up pre-commit (#4872) by @pbutti

⚙️ Miscellaneous Tasks

v44.3.0

26 Nov 13:49

Choose a tag to compare

44.3.0

🚀 Features

🐛 Bug Fixes

🚜 Refactor

📚 Documentation

🛠️ Build

⚙️ Miscellaneous Tasks

v44.2.0

14 Nov 02:48

Choose a tag to compare

44.2.0

🚀 Features

🐛 Bug Fixes

🚜 Refactor

📚 Documentation

🧪 Testing

🛠️ Build

⚙️ Miscellaneous Tasks