Releases: acts-project/acts
Releases · acts-project/acts
v46.1.0
46.1.0
🚀 Features
- Bind more EDM types, simple python only demo script (#5271) by @benjaminhuth
- Add check for SurfaceArray grid + transform handling improvement (#5247) by @paulgessinger
- Add TGeoAxes python bindings (#5277) by @knutzk
- Inclination dependent
SurfaceArraylookup (#5186) by @andiwand - Python-only histogram writer and plotting utilities (#5276) by @benjaminhuth
🐛 Bug Fixes
- Limit external-eic-shell error reports to downstream use only (#4907) by @wdconinc
- Improve unused files check and exclude
Python(#5075) by @AJPfleger - Add missing const to Fpe monitoring (#5284) by @delitez
- Python version regex (#5299) by @benjaminhuth
🚜 Refactor
- Muon space point chi2 calculation -> simplification (#5294) by @junggjo9
- Push SurfaceGridLookup to .cpp file (#5285) by @paulgessinger
- Pass geo context to SurfaceArray lookup and return std::span (#5291) by @andiwand
- Split Fatras simulation header into single and multi particle sim (#5289) by @andiwand
📚 Documentation
- Improve pyproject.toml to include more information (#5306) by @benjaminhuth
- Update and extend docs on python bindings (#5302) by @benjaminhuth
🛠️ Build
- (deps) Bump https://github.com/pre-commit/mirrors-clang-format from v22.1.1 to 22.1.2 (#5297) by @dependabot[bot]
⚙️ Miscellaneous Tasks
- Remove outdate and/or unused CI scripts (#5214) by @AJPfleger
- Augment navigator logging messages (#5283) by @junggjo9
- Cleanup Geant4 simulation code (#5287) by @andiwand
- Bump dependencies package to v22.1.0 (#5292) by @paulgessinger
- Add unittest for rangeContainsValue function (#5293) by @junggjo9
- Bind free functions to namespace in FpeMonitoring plugin (#5290) by @andiwand
- Automated python requirements upgrades (#5298) by @github-actions[bot]
- Fix spack package repo ref (#5301) by @paulgessinger
- Changing material mapping default to navigation-less (#5281) by @asalzburger
- Rename Fatras
ParticleOutcometoSimulationOutcome(#5215) by @andiwand - Rename Fatras
ProcessTypetoGenerationProcess(#5213) by @andiwand - Follow-up after
SurfaceArraychanges in #5186 (#5307) by @andiwand
v46.0.0
46.0.0
🚨 BREAKING CHANGES
- Error handling for material mapping (#5031) by @andiwand
- Cleanup
SpacePointContainer2interface (#5144) by @andiwand - Cleanup
SeedContainer2interface (#5145) by @andiwand - Fix call signature for Material accumulator and mapper (#5181) by @asalzburger
- Move try all navigators to experimental namespace (#5233) by @andiwand
- Rename
accumulater->accumulator(#5209) by @AJPfleger - Rename
validater->validator(#5208) by @AJPfleger - Propagate the alignable volume to the Multilayer navigation policy (#5224) by @junggjo9
- Remove unused files (#5074) by @AJPfleger
- Distinct
MultiComponentTrackParameters(#5150) by @andiwand - One charge hypothesis (#5076) by @andiwand
- Make stepper bound params more explicit for propagation (#5240) by @andiwand
- Deprecate templated seeding (#5261) by @andiwand
- Generalize navigation options for external surfaces (#5243) by @andiwand
🚀 Features
- Python bindings for ObjVisualization3D (#5250) by @paulgessinger
- Chain method setting for Extent (#5244) by @paulgessinger
- Add Ranges utility
to(#5246) by @paulgessinger - Bindings for Spacepoints, Seeds and TrackContainer (#5242) by @paulgessinger
🐛 Bug Fixes
- Send transform to SrfArr in policy (#5238) by @paulgessinger
- Cmake: not all examples options set general examples (#5183) by @AJPfleger
- Pass proxy information to uv (#5178) by @fwyzard
- Cppcheck issues (#5217) by @asalzburger
- Make ROOT example python bindings respond to the correct flag (#5259) by @goblirsc
- Fix Fatras photon conversion (#5258) by @andiwand
- Fix GeoModel version compile switch (#5266) by @andiwand
- Spacepoint-Track association in GNN algorithm (#5263) by @benjaminhuth
🚜 Refactor
- Material designator with less boilerplate (#5221) by @paulgessinger
- Improved FPE mon, extend to macOS (#5231) by @paulgessinger
- Reduce verbosity of blueprint id assignment (#5245) by @paulgessinger
- Output improvement in TryAllNavPolicy (#5248) by @paulgessinger
- Combine try all navigators (#5232) by @andiwand
- Move logic into TrackerHitLocal (#5234) by @paulgessinger
📚 Documentation
- Improve ODD setup documentation, add redirects (#5237) by @paulgessinger
⚡ Performance
- Reduce number of redundant calls in strip seeding (#5239) by @mvessell96
🛠️ Build
- (cmake) Use tmpdir for uv python installation (#5235) by @paulgessinger
- (deps) Bump https://github.com/psf/black-pre-commit-mirror from 26.1.0 to 26.3.1 (#5273) by @dependabot[bot]
- (deps) Bump https://github.com/pre-commit/mirrors-clang-format from v22.1.0 to 22.1.1 (#5272) by @dependabot[bot]
- (deps) Bump https://github.com/BlankSpruce/gersemi from 0.26.0 to 0.26.1 (#5274) by @dependabot[bot]
⚙️ Miscellaneous Tasks
- Remove unused CI requirements (#5200) by @AJPfleger
- Bump Python version to 3.14 in github workflows (#5199) by @AJPfleger
- Pre-commit: bump code-spell
2.2.4->2.4.2(#5207) by @AJPfleger - Surface & Volume remove deprecated symbols (#5176) by @junggjo9
- Automated python requirements upgrades (#5241) by @github-actions[bot]
- Add a C++23 build (#5223) by @paulgessinger
- Cleanup Fatras interaction code (#5257) by @andiwand
- Centrally typedef truth info in Examples (#5254) by @andiwand
- Some clang-tidy fixes (#5262) by @andiwand
- Add a notification for Key4hep when the build fails (#5265) by @jmcarcell
- Use dependabot to update pre-commit (#5268) by @AJPfleger
- Automated python requirements upgrades (#5275) by @github-actions[bot]
- Bump ModuleMapGraph to version 1.4.0 (#5269) by @benjaminhuth
v45.5.1
v45.5.0
45.5.0
🚀 Features
- Surface bindings (#5197) by @asalzburger
- Material designator for homogeneous material for trapezoid and diamond bounds (#5202) by @dimitra97
- Math helper to compute cathetus (#5211) by @andiwand
- Python level write data handle (#5189) by @paulgessinger
- Extract ROOT histogram profiling to Plugin; Add 2D resolution profiles to Examples (#5196) by @andiwand
- Add
qOverPtandrelQoverPttoResPlotToolin Examples (#5194) by @andiwand - Mini-extension of IGrid interface (#5230) by @asalzburger
🐛 Bug Fixes
- Codegen dependencies check after #5201 (#5216) by @AJPfleger
- Update GridTripletSeedingAlgorithm.cpp (#5225) by @pbutti
- Cylinder stack properly propagates inner cylinder state (#5227) by @paulgessinger
🚜 Refactor
- Improve separation for GBTS (#5160) by @andiwand
- Replace dfelibs with Boost.Describe for CSV I/O (#5110) by @benjaminhuth
- Simplify angle calculation in CylindricalSpacePointGrid2 (#5222) by @AJPfleger
- Navigator - Move limits && surface selector into the plain options (#5226) by @junggjo9
📚 Documentation
🛠️ Build
- Install uv environments in build directory (#5220) by @benjaminhuth
⚙️ 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
45.4.0
🚀 Features
- Access to whiteboard from Python (#5158) by @paulgessinger
- Add concept for python declareAlgorithm (#5173) by @paulgessinger
- Examples
RootMeasurementPerformanceWriter(#5171) by @andiwand - Add Mille as optional thirdparty dependency (#5172) by @goblirsc
- 3d histograms support (#5182) by @pbutti
- Add naive component merger for GSF and benchmark (#4874) by @benjaminhuth
🐛 Bug Fixes
- ACTS_BUILD_EXAMPLES requires ACTS_BUILD_PLUGIN_ROOT (#5094) by @AJPfleger
- C++23 compilation compatibility (#5192) by @paulgessinger
- Make cmake FindXXX.cmake modules idempotent (#5191) by @benjaminhuth
- Don't run pip requirement updates on forks (#5190) by @AJPfleger
🚜 Refactor
- Separate Fatras python bindings, tests (#5185) by @paulgessinger
- Typed PODIO data handles (#5174) by @paulgessinger
- Whiteboard uses Any (#5188) by @paulgessinger
- Generalize
ContainerSubsetto arbitrary index container (#5175) by @andiwand
📚 Documentation
- Add link checker as post-processing step (#5167) by @paulgessinger
- Fix links in README.md (#5198) by @benjaminhuth
🛠️ Build
- (deps) Bump actions/upload-artifact from 6 to 7 (#5179) by @dependabot[bot]
- (deps) Bump actions/download-artifact from 7 to 8 (#5180) by @dependabot[bot]
⚙️ 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
45.3.0
🚀 Features
- Any & SourceLink API for type check (#5126) by @paulgessinger
- EDM4hep vertex type (#5127) by @paulgessinger
std::formatcompatible formatter for GeometryIdentifier (#5128) by @paulgessinger- Add const ref access to underlying DD4hep objects (#5129) by @paulgessinger
- Introduce infrastructure to make Volumes alignable (#4963) by @junggjo9
- Add
copyFromto space points and seeds for Seeding2 (#5109) by @andiwand - MultiWireVolumeBuilder can construct alignable tracking volumes (#5125) by @junggjo9
- Add jet kinematics into TrackSummaryWriter (#5035) by @delitez
- Part 1 of migration to GBTSv3 (#5138) by @jpreston-cern
- Introduce SKIP ProcessCode (#5155) by @asalzburger
- Add seeds from three layer combinatorics in the combinatorial seed solver for New Small Wheel (#5133) by @dimitra97
- Add GSF functions for solely parameter merging (#5151) by @andiwand
- First-class logging in python (#5156) by @paulgessinger
MultiComponentBoundTrackParameters::merge(#5137) by @andiwand- Sensor-local PODIO measurement type (#4123) by @paulgessinger
- RangeContainsSubstring helper function, useful for SensitiveSurfaceMapper (#5170) by @altsybee
🐛 Bug Fixes
- CompositeSpacePointLineFitter: Enable 3-hit fits and add sanity checks to the fitter (#5083) by @lmonaco99
- Broken
SpacePointContainer2named column access (#5142) by @andiwand - Raise and catch ModuleNotFoundError (#5163) by @paulgessinger
- Inconsistent particle collection after failing particles in Fatras (#5165) by @andiwand
🚜 Refactor
- Deprecate
SpacePointProxy2::resolvedIndex(#5111) by @andiwand - Rename packed
SpacePointContainer2columns (#5121) by @andiwand - Remove isDisc parameter + switch to TGeoAxes (#5118) by @paulgessinger
- Simplify GBTS
SpacePointContainer2handling (#5143) by @andiwand - Multi stepper composed of single stepper (#5103) by @andiwand
- Use dynamic linking for python wheel (#5149) by @benjaminhuth
- Rename and relocate GBTS (#5152) by @andiwand
- Move Examples to
Seeding2EDM (#5088) by @andiwand
🛠️ Build
- (deps) Bump eic/docker-run-action from 3 to 4 (#5147) by @dependabot[bot]
- (deps) Bump astral-sh/setup-uv from 5 to 7 (#5148) by @dependabot[bot]
⚙️ Miscellaneous Tasks
- Use cloneable ptr to default copy ctor && assignment (#5119) by @junggjo9
- Onnx plugin clang-tidy fixes (#5122) by @andiwand
- Do not require sonar for now (#5130) by @paulgessinger
- Actually disable sonar in sentinel (#5131) by @paulgessinger
- Enable compile headers for all plugins (#5123) by @andiwand
- Rework dependency environment for CI workflows (#5124) by @andiwand
- Supress warnings in helpers for module discovery (#5117) by @paulgessinger
- Sonar: drop coverage for PRs (#5132) by @paulgessinger
- Use uv to install cmakeperf in perf build step (#5141) by @paulgessinger
- Automated python requirements upgrades (#5146) by @github-actions[bot]
- Deprecate unused charge hypothesis types (#5134) by @andiwand
- Deprecate
BoundTrackParameter::toBound(#5135) by @andiwand - Remove navigator from material interactions and extract
UpdatablefromGsfUtils(#5140) by @andiwand - Move pytest for toroidal field into correct position (#5157) by @asalzburger
- More camel case
spacePoint(#5153) by @andiwand - Bump pybind11 to v3.0.1 (#5162) by @paulgessinger
- Some pytest improvements (#5164) by @paulgessinger
- Remove build performance test job (#5169) by @paulgessinger
- Add LCG109 build, drop LCG106a build (#5166) by @paulgessinger
- Update coverage scripts (#5038) by @paulgessinger
v45.2.0
45.2.0
🚀 Features
- Port
HoughVertexFinderto Seeding2 (#5108) by @andiwand - CloneablePtr (#5116) by @paulgessinger
- Template<holder_t> for PodioTrack(State)Container (#4974) by @wdconinc
🐛 Bug Fixes
- Local static initializer over global for particle data and photon conversion (#5098) by @andiwand
- Minor zenodo version filling fix (#5100) by @andiwand
- Policy state inconsistency in navigation (#5080) by @paulgessinger
- Mv {addnab -> eic}/docker-run-action (#5099) by @wdconinc
- Switch update pip requirements bot to
uv(#5087) by @AJPfleger
🚜 Refactor
VertexTruthMatcherExamples algorithm (#5054) by @andiwand- Rename
Acts::ActsVectortoActs::Vectorand 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
- Organize GSF utilities (#5062) by @andiwand
- Cleanup Examples (#5071) by @andiwand
- Fix a ton of clang-tidy issues (#5107) by @paulgessinger
- Remove
clang-tidyCI for now (#5114) by @andiwand - Use camel case
protoTrack(#5104) by @andiwand - Use
uvto generate python requirements (#5086) by @AJPfleger - Clang Tidy on GitHub Actions (#5090) by @paulgessinger
- Bump ModuleMapGraph version (#5115) by @benjaminhuth
- Cleanup Core GBTS (#5102) by @andiwand
- Move
ProtoTracksToParametersfrom GNN Examples to Utilities (#5113) by @andiwand - Automated python requirements upgrades (#5105) by @github-actions[bot]
- Use camel case
spacePoint(#5106) by @andiwand
v45.1.1
v45.1.0
45.1.0
🚀 Features
- Generate measurements with muon space points (#4901) by @AJPfleger
- Add k0 and lambda0 to the list of pdg ids (#5036) by @pbutti
- Expose plotting configuration to python bindings (#5053) by @pbutti
- Track to jet matching (#5050) by @delitez
- Add hasUncalibratedSourceLink to track state concept (#5064) by @paulgessinger
- Port hashing seeder prototype to
Seeding2(#4681) by @andiwand - Generate measurements<->particles maps with muon space points (#5091) by @AJPfleger
- Expose minTruthPt to python configuration (#5095) by @pbutti
🐛 Bug Fixes
- Increment particle number in EDM4hep conv gen particles (#5020) by @paulgessinger
- Revise copy and move of
SpacePointContainer2andSeedContainer2(#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
- Product, factorial, and binomial functions (#4967) by @AJPfleger
- Rework
PointwiseMaterialInteractionpart 2 (#5023) by @andiwand - Composite Space-point Line Fitter: adding tests with time & bugFix (#4964) by @lmonaco99
- Refactor examples plotting tools to not use ROOT (#4973) by @benjaminhuth
- Extract GSF functions part 1 (#5014) by @andiwand
- Cleanup toroid field, relocate to core (#5025) by @paulgessinger
- Revisit
Propagatorerror handling (#5044) by @andiwand - Remove
KalmanUpdateHelpersand refactor KF and GSF (#5015) by @andiwand - Remove unused using namespace (#5058) by @AJPfleger
- Add policy state to navigation system (#4981) by @paulgessinger
- Finalize unROOTing Examples (#5032) by @benjaminhuth
- Drop
BoundSquareMatrixandFreeSquareMatrixover existing shorthand (#5072) by @andiwand - Equip Shell constructor with GeometryContext (#5068) by @junggjo9
- Rework GSF outlier handling (#5047) by @andiwand
- Write measurements in geomodel_G4 chain (#5096) by @AJPfleger
📚 Documentation
- Doxygen fixes (#5037) by @paulgessinger
🛠️ Build
- Add flags, improve VDT discovery (#5028) by @paulgessinger
- Don't configure output paths if not top level (#5039) by @paulgessinger
- Disable
clang-tidyfor thirdparty (#5079) by @andiwand
⚙️ Miscellaneous Tasks
- Pimpl ModuleMapGraph (#5029) by @benjaminhuth
- Update git-cliff, release notes format (#5030) by @paulgessinger
- Automated python requirements upgrades (#5008) by @github-actions[bot]
- Bump histcmp to 0.8.2 (#5049) by @paulgessinger
- Another round of sonar fixes (#5040) by @paulgessinger
- Fix random typos (#5055) by @AJPfleger
- Rename
doPlotingtodoPlotting(double T) (#5056) by @AJPfleger - Correct use of
setupand(to) set up(#5057) by @AJPfleger - Add some debug output to the sonarcloud workflow (#5063) by @paulgessinger
- Sonar verbose mode on (#5066) by @paulgessinger
- Remove old seeders from Examples (#5051) by @andiwand
- Update Gbts code in
ExamplesandTrackFindingas well as change to fixed size variables (#5018) by @jpreston-cern - Make sonar load the actual PR sha instead of the branch (#5069) by @paulgessinger
- Store merge info for sonar job (#5077) by @paulgessinger
- Drop codereport step in clang-tidy job (#5082) by @paulgessinger
- Debug job: add safe directory for merge (#5085) by @paulgessinger
- Cleanup Example
GbtsSeedingAlgorithm(#5093) by @andiwand - Clean up
using namespace(#5078) by @AJPfleger
v45.0.0
45.0.0
🚨 BREAKING CHANGES
- Make
BetheHeitlerApproxvirtual (#4826) by @andiwandBetheHeitlerApproxand its subclasses are now abstract with virtual functions, breaking compile-time polymorphism. Template parametersNComponentsandPolyDegreewere removed fromAtlasBetheHeitlerApprox, 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 usingmaxComponents(), and pass them tomixture()instead of receiving return values.
- Remove all deprecated symbols (#4895) by @paulgessinger
- Deprecated APIs removed, including mutator methods on
GeometryIdentifier,Barcode,SimVertexBarcode, andTrackProxy, as well as convenience functions likecreateClusters(),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.
- Deprecated APIs removed, including mutator methods on
- Actors return Result instead of void (#4921) by @benjaminhuth
- Actor
act()methods now returnResult<void>instead ofvoid, enabling immediate error handling and propagation termination - Custom actors must update their
act()signature to returnResult<void>and returnResult<void>::success()orreturn {};on success, or an errorResulton failure
- Actor
- Remove
ISurfaceProviderand (Gen1)KDTTrackingGeometrybuilder &ProtoDetector(#4938) by @asalzburger- Removed classes and interfaces:
ISurfacesProvider,KDTreeTrackingGeometryBuilder,ProtoDetector, andKdtSurfacesProviderhave been deleted as part of deprecating Generation 1 tracking geometry infrastructure. - Use the newer Generation 3 geometry building system. If you were using
KDTreeTrackingGeometryBuilderor implementingISurfacesProvider, switch to the Blueprint-based geometry builder and related Gen3 components.
- Removed classes and interfaces:
- Rework
KalmanFitterlogic (#4694) by @andiwand- KalmanFitter interface changes: The
reversedFilteringoption was renamed toreverseFiltering, andreversedFilteringCovarianceScalingtoreverseFilteringCovarianceScaling. The default value for reverse filtering covariance scaling changed from1.0to100.0. - Track state mask changes: During Kalman filtering, the
Smoothedcomponent is no longer pre-allocated for predicted and filtered track states, breaking code that assumes this mask is present before smoothing. - Update option names (
reversedFiltering→reverseFiltering,reversedFilteringCovarianceScaling→reverseFilteringCovarianceScaling) and adjust the scaling factor if you explicitly set it to1.0(the new default100.0may be more appropriate).
- KalmanFitter interface changes: The
- Replace KF target strategy (#4835) by @andiwand
- Removed
KalmanFitterTargetSurfaceStrategyenum in favor of the more genericTrackExtrapolationStrategy - The
KalmanFitterOptions::referenceSurfaceStrategyfield now usesTrackExtrapolationStrategyinstead ofKalmanFitterTargetSurfaceStrategy - Replace
KalmanFitterTargetSurfaceStrategy::{first,last,firstOrLast}withTrackExtrapolationStrategy::{first,last,firstOrLast}respectively in your code
- Removed
- Reduce fitter templating (#4942) by @andiwand
- KalmanFitter, CombinatorialKalmanFilter, and Gx2Fitter no longer accept templated start parameters—they now require
BoundTrackParametersexplicitly - Replace template parameter
start_parameters_twithBoundTrackParametersin your fitter calls and ensure your starting parameters are of typeBoundTrackParameters
- KalmanFitter, CombinatorialKalmanFilter, and Gx2Fitter no longer accept templated start parameters—they now require
- Type erased track and track state proxies (#4889) by @paulgessinger
- ProxyAccessor now calls
proxy.hasColumn(key)instead ofproxy.container().hasColumn(key): Code usingProxyAccessorBase::hasColumn()will need to ensure proxy types implement ahasColumn()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
- ProxyAccessor now calls
- Rework
TrackStateType(#4945) by @andiwand- Renamed
TrackStateTypemap toTrackStateTypeMapand introduced a newTrackStateTypevalue 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).
- Renamed
- Rename thickness to layerThickness (#5013) by @junggjo9
- The
Layer::thickness()method has been renamed toLayer::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()withlayer->layerThickness()
- The
- Strongly type
MappingType(#5017) by @andiwandMappingTypechanged from unscopedenumto strongly-typedenum class, preventing implicit conversion tointand requiring explicit scopingHomogeneousSurfaceMaterialandBinnedSurfaceMaterialconstructors now require explicitsplitFactorparameter (value1) beforemappingType, as implicit conversion no longer provides the default- Use
MappingType::PreMappinginstead ofPreMapping, add explicitsplitFactorargument (typically1.0) when constructing material objects
- Rework
PointwiseMaterialInteractionpart 1 (#5016) by @andiwandMaterialUpdateStagerenamed toMaterialUpdateMode: The enum was renamed and its numeric values changed (PreUpdate: -1→1, FullUpdate: 0→3, PostUpdate: 1→2), plus a newNoUpdatevalue was added at 0.NoiseUpdateModestrongly typed: Changed from unscopedenumto scopedenum class, breaking code usingaddNoise/removeNoisewithoutNoiseUpdateMode::prefix.- Replace
MaterialUpdateStagewithMaterialUpdateMode, adjust numeric comparisons if any, and prefixNoiseUpdateModevalues withNoiseUpdateMode::(e.g.,addNoise→NoiseUpdateMode::addNoise).
🚀 Features
- Allow diamond bounds for the volume in the builder (#4868) by @dimitra97
- Add NVTX ranges to GNN code (#4527) by @benjaminhuth
- Straw line seeder (#4808) by @patrick-scholer
- Add ProtoAxisHelper (#4871) by @delitez
- Introduce indexed grid navigation policy for Gen3 (#4898) by @asalzburger
- Update GBTS with latest changes from Athena (#4908) by @jpreston-cern
- JSON converter for IndexGrid policy and display script (#4905) by @asalzburger
- Add install‑time git hash patching to ActsConfig.cmake (#4932) by @paulgessinger
- Sliding window alg for hough transform (#4906) by @tboldagh
- Updated authorlist, part 1 (#4917) by @asalzburger
- Add boost::histogram wrappers and ROOT converter (#4939) by @benjaminhuth
- Pip install acts, first steps (#4948) by @benjaminhuth
- Acts::Any gets
.emplacemethod for in-place construction (#4979) by @paulgessinger - Use CylinderNavigationPolicy in Gen3 GenericDetector (#4978) by @paulgessinger
- Ensure acts can still be built with EDM4hep 1.0 (#4976) by @tmadlener
- Teach the Navigator to treat free surfaces (#4494) by @junggjo9
- Support free sensitive surfaces (#5002) by @andiwand
SeedContainer2can point toSpacePointContainer2(#4977) by @andiwand- Wrapper function for tgeo geometry building (#4989) by @osbornjd
- Skip propagation errors in MaterialMappers (#5010) by @veprbl
- Use AnyConstTrackProxy for track constituents of jets (#4969) by @delitez
- Definitely not ATLAS toroidal field (#4765) by @davidedicroce
- Introduce the SurfacePlacementBase interface class (#5005) by @junggjo9
🐛 Bug Fixes
- Figure path after #4875 (#4880) by @AJPfleger
- Pass
ParticleHypothesisto root branch in CKF (#4885) by @andiwand - Re-targeting for
DirectNavigator(#4891) by @andiwand - New component mean implementation for GSF (#4753) by @benjaminhuth
- Import acts.examples before importing json modules (#4919) by @pbutti
- Fpe cmakelist fix typo (#4920) by @pbutti
- Attempt to fix FPE in clang19 build (#4894) by @tstreble-ATLAS
- Move DetectorElementBase pybind11 definition to Core (#4941) by @asalzburger
- BugFix Composite Space-point Line Fitter (#4950) by @lmonaco99
- Update nlohmanjson from 3.10.5 to 3.11.3 (#4961) by @timadye
- Sonar cloud issues and bug in defining upper right corner (#4955) by @tboldagh
- Use (cached) runtime type hash in Acts::Any (#4968) by @paulgessinger
- AnyTrack(State)Proxy from const input proxy (#4966) by @paulgessinger
- Import PodioReader from examples.edm4hep (#4975) by @delitez
- Use forward for universal reference arguments (#4997) by @paulgessinger
- Underflow in duplication evaluation (#5011) by @benjaminhuth
- Adapt Mat_map_surface_plot.C to read sur_type from geometry-map.json (#4931) by @veprbl
- Attach full namespace to PWMI in GX2F (#5026) by @andiwand
🚜 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...