Releases: acts-project/acts
Releases · acts-project/acts
v38.0.0
38.0.0
🚀 Features
- Add a benchmark executable for Track EDM (#3834) by @paulgessinger
- Add optional context type getter (#3853) by @paulgessinger
- (geo) Add Gen3 hierarchy search to
lowestTrackingVolume
(#3818) by @paulgessinger - Free parameter estimation from seed (#3832) by @andiwand
- Full_chain_test.py config with command-line options (#3811) by @timadye
- Track parameters lookup estimation examples (#3823) by @ssdetlab
- (util) Add
overloaded
helper (#3816) by @paulgessinger - Add statistics to propagation (#3450) by @andiwand
- Update GNN plugin (#3876) by @benjaminhuth
- Use RootTracksummaryWriter without truth information (#3886) by @benjaminhuth
- Helpers to calculate residuals, chi2 and unbiased states (#3877) by @andiwand
- Allow copy of measurements in Examples (#3911) by @andiwand
- Add JSON detector element (#3851) by @benjaminhuth
🐛 Bug Fixes
- Drop
removeNeutral
from particle pre-selection in Examples (#3830) by @andiwand - Track selector printouts to be in line with actual cuts (#3815) by @pbutti
- Remove false-positive warning in GCC14 (#3817) by @paulgessinger
- OneAPI 2025 Fixes, main branch (2024.11.11.) (#3846) by @krasznaa
- Make
SeedingPerformanceWriter
thread-safe (#3850) by @andiwand - Silence compiler warning in tbb header about old-style casts. (#3824) by @goetzgaycken
- TryAllNavigationPolicy config exposed to python (#3822) by @paulgessinger
RandomSeed
with 32 bit in Examples (#3860) by @andiwand- Potential Out of Bounds in Root file reading (#3870) by @dave7895
- Estimate entry size before sorting in ROOT readers (#3871) by @andiwand
- User
localtime_r
instead oflocaltime
(#3872) by @paulgessinger - Add check on expected measurements on surface before marking as hole (#3892) by @pbutti
- Boost progress include fails on next boost major release (#3896) by @AJPfleger
- Change MTJ test dynamic column names (#3914) by @paulgessinger
🚜 Refactor
- Remove
CalculateResiduals.hpp
(#3837) by @andiwand - Fuse initial and final sim particles in Examples (#3804) by @andiwand
- Use mathematical constants from
std::numbers
(#3781) by @AJPfleger - (gx2f) Pull out material counting (#3839) by @AJPfleger
- Expose IMaterialDecorator::decorate to python (#3819) by @paulgessinger
- 🚨 BREAKING: Remove free parameter estimation function (#3802) by @paulgessinger
- (gx2f) Make function to update parameter (#3840) by @AJPfleger
- (gx2f) Make material work for |eta| > 2 (#3726) by @AJPfleger
- 🚨 BREAKING: Use
consteval
onhashString
(#3833) by @paulgessinger - Remove Tesla conversion in
estimateTrackParamsFromSeed
(#3835) by @andiwand - 🚨 BREAKING: Rewrote the ambiguity solver for clarity and added Optional Hits Selector (#3805) by @Ragansu
- 🚨 BREAKING: Remove
bFieldMin
fromestimateTrackParamsFromSeed
(#3863) by @andiwand - Digitization cleanup in Examples (#3865) by @andiwand
- Reduce abort output in GX2F to DEBUG (#3888) by @paulgessinger
- 🚨 BREAKING: Deduplicate
estimateTrackParamsFromSeed
code (#3866) by @andiwand - Avoid
new
/delete
in a number of places. (#3828) by @paulgessinger - 🚨 BREAKING: Explicit
isPresent()
in cylinder volume builder (#3796) by @AJPfleger - 🚨 BREAKING: Single type/alias for intersection status (#3898) by @andiwand
- Remove custom scalar in classes (#3894) by @AJPfleger
- 🚨 BREAKING: Remove alias
IntersectionStatus::missed
(#3899) by @andiwand - 🚨 BREAKING: Remove
ActsScalar
(#3873) by @AJPfleger - Allow TrackState measurement setting without extra initialization (#3907) by @paulgessinger
- Convert to bound state also on empty sensitive surfaces. (#3855) by @goetzgaycken
- Cleanup some more detector code in Examples (#3908) by @andiwand
- Reworked
HitSelector
in Examples (#3836) by @andiwand - Allow track selection without reference surface (#3791) by @benjaminhuth
- 🚨 BREAKING: Clean track EDM projector (#3605) by @andiwand
- Replace
ParticleSmearing
withTrackParameterSmearing
in Examples (#3784) by @andiwand
📚 Documentation
- Adding cvarni to citation (#3867) by @CarloVarni
- (sphinx) Remove outdated warnings from ignore list (#3878) by @AJPfleger
- Remove http-relics for license (#3902) by @AJPfleger
🧪 Testing
- Enable commented checks in bounding box tests (#3829) by @AJPfleger
🛠️ Build
- LC_ALL=C for DD4hep in setup (#3844) by @paulgessinger
- Make Boost 1.85 a hard failure when building the Examples (#3843) by @paulgessinger
- Update
FindFilesystem.cmake
(#3905) by @paulgessinger
⚙️ Miscellaneous Tasks
- Add check for mathematical constants (no macros) (#3774) by @AJPfleger
- Remove
M_PI
relics (#3845) by @AJPfleger - Remove redundant cmake flags (#3842) by @AJPfleger
- Remove obsolete requirements file for exatrkx tests (#3848) by @AJPfleger
- Update PR template (#3858) by @paulgessinger
- Move requirements file for fpe-masks (#3884) by @AJPfleger
- Bump Python requirements (#3875) by @AJPfleger
- Add action for all pip requirements updates (#3883) by @AJPfleger
- Add milestone workflow (#3887) by @paulgessinger
- Cleanup some Geant4 Examples code (#3895) by @andiwand
- Wrong directory formating in update-pip bot (#3903) by @AJPfleger
- 🚨 BREAKING: Clean some Material code (#3897) by @andiwand
- Replace some couts with logger (#3912) by @AJPfleger
- (physmon) Make configuration of all the fitters the same (#3916) by @AJPfleger
v37.4.0
37.4.0
🚀 Features
- Add standalone digitization coordinates converter (#3765) by @ntadej
- Log-uniform p/pt distributions for Examples (#3790) by @andiwand
- Logger passed to Gbts and Orthogonal seeders (#3807) by @CarloVarni
- ProxyAccessor constructor can now be constexpr (#3757) by @timadye
🐛 Bug Fixes
- AddAmbiguityResolution writeTrackSummary/writeTrackStates (#3809) by @timadye
- Restore Orthogonal seedfinder default constructor (#3827) by @paulgessinger
- Default label for GraphViz::Node (#3821) by @paulgessinger
- DummyLogger can now be cloned (#3831) by @paulgessinger
🚜 Refactor
- Remove
pythia8
prefix from root files in Examples (#3798) by @andiwand - Remove
TruthSeedSelector
from Examples (#3808) by @andiwand - FPE safe eta/theta conversion (#3788) by @andiwand
- Rename PortalShell connect outer to fill (#3820) by @paulgessinger
- (gx2f) Container to represent the mathematical gx2f-system (#3806) by @AJPfleger
v37.3.0
37.3.0
🚀 Features
🐛 Bug Fixes
- Make callable args universal references (#3789) by @paulgessinger
- Remove a number of Sonar issues (#3780) by @paulgessinger
- Do not use requires in class EDM definition (#3731) by @CarloVarni
- Protect TrackSelector against eta=nan (#3785) by @timadye
- MeasSel error output, config check (#3794) by @paulgessinger
- Require TBB to be found by cmake (#3507) by @benjaminhuth
- Wrong definition of the constraint (#3803) by @CarloVarni
🚜 Refactor
- Rework random parameter and covariance generation (#3777) by @andiwand
- Replace
fabs(
andsqrtf(
withstd::abs
andstd::sqrt(
(#3787) by @AJPfleger - Improve log in seeding (#3792) by @CarloVarni
- (gx2f) Analyse temporary track in an extra function (#3799) by @AJPfleger
- (gx2f) Improve logging (#3801) by @AJPfleger
- Tweak
Sequencer
alias handling and logging in Examples (#3793) by @andiwand
🛠️ Build
- Unconditionally load Boost in CMake config (#3779) by @stephenswat
⚙️ Miscellaneous Tasks
- Bump dependency tarball version to v5 (#3782) by @paulgessinger
- Dependency URL not set correctly (#3786) by @AJPfleger
- (tests) Brush over surface tests (#3783) by @AJPfleger
- Update PR template, add cut-off marker (#3741) by @paulgessinger
- Change coverage badge from codecov to sonarcloud (#3797) by @AJPfleger
v37.2.0
37.2.0
🚀 Features
- Track parameters json converter (#3724) by @ssdetlab
- Make it possible to turn off warnings in GSF (#3739) by @benjaminhuth
- Add tracking efficiency vs z0 (#3764) by @ntadej
- Add
AngleHelpers.hpp
to help with eta/theta conversions (#3767) by @andiwand - (nav) Gen3 Navigation policies and factory (#3760) by @paulgessinger
🐛 Bug Fixes
- Handle Fatras immediate abort edge case (#3744) by @andiwand
- Fix nMeasurements() comment (#3740) by @timadye
- TrackSelector remove broken m_noEtaCuts (#3640) by @timadye
- Don't use
mp.get_context("spawn")
in test (#3753) by @paulgessinger - Move
default
constructor impl in CPP file (#3752) by @paulgessinger #include <algorithm>
in HoughTransformUtils forstd::sort
(#3758) by @wdconinc- TrackFinding: skip second pass if out of bounds (#3751) by @paulgessinger
- DetrayMaterialConversion for Gen2 (#3748) by @asalzburger
- Potential segfault in AthenaDumpReader (#3721) by @benjaminhuth
- Guarantee angle periodicity after KF filtering and smoothing (#3684) by @andiwand
- Make
DataHandle
type check more robust (#3768) by @andiwand - Improve
TrackParameterHelpers.hpp
(#3766) by @andiwand
🚜 Refactor
- Explicit
hasStackTraces()
in FPE (#3727) by @AJPfleger - Group all ROOT writers together (#3746) by @andiwand
- Rework particle selection in Examples (#3742) by @andiwand
- Rename
VertexPerformanceWriter
toVertexNTupleWriter
(#3745) by @andiwand - Rename
TrackFinderPerformanceWriter
in Examples (#3737) by @andiwand - Rename
CKFPerformanceWriter
in Examples (#3763) by @andiwand - Explicit constructors (non-core) (#3761) by @AJPfleger
- Use structured bindings (#3632) by @AJPfleger
- Generalizing telescope seeding interface (#3725) by @ssdetlab
🧪 Testing
⚙️ Miscellaneous Tasks
- Use
TrackFitterPerformance
writer for CKF (#3735) by @andiwand - Download dependencies as tarball (#3520) by @paulgessinger
- Reset
ccache
caches (#3771) by @andiwand - Fix license header in pre commit hooks (#3773) by @andiwand
- Update exclude list for unused files (#3776) by @AJPfleger
- Tweak DD4hep log level (#3778) by @andiwand
v37.1.0
37.1.0
🚀 Features
- GeoModel changes for Gen1 ITk (#3685) by @benjaminhuth
- Add some SVG glue code to help displaying proto material (#3692) by @asalzburger
- (util) Add builder class for "chain" delegates (#3696) by @paulgessinger
- Update AthenaDumpReader, allow reading only SPs (#3709) by @benjaminhuth
- Add GeoSimplePolygonBrep to GeoModelToDetectorVolume (#3713) by @Matthewharri
- Delayed Grid construction for Portals (#3718) by @paulgessinger
- Adding dot graph possibility (#3730) by @asalzburger
- Allow reflection of track parameters (#3682) by @andiwand
- Add
estimateTrackParamCovariance
to Core (#3683) by @andiwand
🐛 Bug Fixes
material_recoding.py
conditional loading of GeoModel (#3703) by @paulgessinger- Copy whole trackstate did not copy calibrated (#3693) by @benjaminhuth
- 3ul instead of 3 for size_t (#3706) by @CarloVarni
- Fix name BranchState (#3707) by @timadye
- Adapt scripts to GeoModel updates (#3711) by @asalzburger
- CylVolStack resizing issue (#3715) by @paulgessinger
- Make charge smearing optional in digi config (#3710) by @stephenswat
- (geo) CylVolStack reuses gaps if exist (#3716) by @paulgessinger
- Incorrect sanity check in TrackingVolume removed (#3734) by @paulgessinger
- Implement
DirectNavigator
direction handling (#3702) by @andiwand - FPE monitoring boost discovery, addr2line fallback (#3747) by @paulgessinger
🚜 Refactor
- Set convertMaterial as configurable (#3604) by @galocco
- (geo) Geometry visualization update (#3681) by @paulgessinger
- (geo) Teach ProtoLayer to respect local coordinate system (#3697) by @paulgessinger
- Remove quick math helpers (#3701) by @andiwand
- Do not insert space points if not inside grid boundaries (#3698) by @CarloVarni
- Z and r axis in grid for seeding are Open instead of Bound (#3712) by @CarloVarni
- Only compute middle range once per bin (#3714) by @CarloVarni
- Python binding bits and pieces (#3717) by @paulgessinger
- Combine material, measurement and hole handling in Core CKF
filter
(#3723) by @andiwand - Add some requirements (#3720) by @CarloVarni
- Integrate source link container into measurements container in Examples (#3732) by @andiwand
📚 Documentation
- Add comment on computation of impact parameter from the doublet (#3728) by @CarloVarni
⚡ Performance
- Avoid allocations in
TrapezoidBounds::inside
(#3705) by @andiwand std::sqrt
overstd::hypot
in Core (#3694) by @andiwand
🧪 Testing
- Add GeoModel plugin to Downstream project test (#3704) by @paulgessinger
🛠️ Build
- Use correct GM variables in cmake config (#3699) by @paulgessinger
- Pick up GeoModel v6 or v7 (#3736) by @paulgessinger
⚙️ Miscellaneous Tasks
- Remove some unnecessary includes (#3700) by @jmcarcell
- Add pre-commit check for leftover git conflict markers (#3708) by @benjaminhuth
- Physmon for KF and GSF refitting (#3733) by @andiwand
v37.0.1
v37.0.0
37.0.0
🚀 Features
- Memory dense
MeasurementContainer
for Examples (#3528) by @andiwand - Detray geometry/material conversion in examples (#3579) by @asalzburger
- Allow user to supply root branch to Core CKF (#3534) by @andiwand
- Add counters to propagation summary (#3602) by @asalzburger
- Generalized conversion of FullPhysicalVolume (#3585) by @Berggren-Jonas
- Broadcast dataflow check to python (#3624) by @asalzburger
- Improvements to multitrajectory iterators (#3619) by @stephenswat
- (util) Add GraphViz helper types (#3635) by @paulgessinger
- Allow digitization to save cells (#3626) by @stephenswat
- Add Detray surface grid converter (#3608) by @asalzburger
- Add measurement emplace functions (#3627) by @stephenswat
- Added new SVG functionality (#3649) by @asalzburger
- 🚨 BREAKING: Track-EDM like implementation for the space points, to be used in the seeding (#3432) by @CarloVarni
- Allow detray sterile/non-sterile propagation (#3652) by @asalzburger
- Support seed from N space points (#3645) by @CarloVarni
- Enable geant4 propagation xcheck (#3657) by @asalzburger
- Adding possibility to read flat surface container (#3668) by @asalzburger
- (geo) TrackingVolume gets portal storage (#3673) by @paulgessinger
- (geo) TrackingVolume gets surface storage (#3675) by @paulgessinger
- Allow volume constrain for propagation (#3470) by @andiwand
- (geo) Extent designated initialization (#3680) by @paulgessinger
- 🚨 BREAKING: (fix + chore) streamline nSegments usage (#3419) by @asalzburger
- Allow Style setting for IndexedSurfaceGrid in Svg (#3686) by @asalzburger
- Add test for space point edm (#3690) by @CarloVarni
- Gen 3 portal shells (#3564) by @paulgessinger
- 🚨 BREAKING: Add a radius bin to the grid (#3662) by @CarloVarni
- Add support for Timed Clusterization (#3654) by @CarloVarni
🐛 Bug Fixes
- Allow resetting reference surface in Track EDM (#3586) by @andiwand
- 🚨 BREAKING: Make material validity checks and construction explicit (#3494) by @AJPfleger
- Remove pre-C++20
std::identity
implementation (#3599) by @AJPfleger - Stitch tracks correctly after second pass in Examples Track Finding (#3597) by @andiwand
- Adding GeomentryId to detray portals (#3606) by @asalzburger
- Remove
using namespace
in Detray plugin header (#3616) by @paulgessinger - Reject outliers while trimming track states in Core CKF (#3644) by @andiwand
- Reject material states when no measurements are found yet in Core CKF (#3648) by @andiwand
- Added GeoShapeSubtraction converter for the failing conversion of RPCs to SensitiveSurface (#3592) by @Berggren-Jonas
- Kf+gsf: correct hole-tagging for edge case (#3637) by @AJPfleger
- Replace asctime with
strftime
for safer date formatting (#3658) by @AJPfleger - (gx2f) New error
UsedUnreachableMeasurements
(#3653) by @AJPfleger - Fix Warning messages (#3679) by @CarloVarni
- Correct initial
q/p
covariance term inTrackParamsEstimationAlgorithm
in Examples (#3665) by @andiwand - Fit iterator traits for ContainerIndexIterator (#3689) by @CarloVarni
- BinUtility was auto-convertible from Transform3 (#3691) by @paulgessinger
🚜 Refactor
- Write smoothed states in GX2F (#3584) by @andiwand
- 🚨 BREAKING: Remove
Utilities/detail/Subspace.hpp
(#3589) by @andiwand - Rework tracklet handling in Examples track finding (#3587) by @andiwand
- 🚨 BREAKING: Template algorithms on track container frontend
TrackContainer
(#3193) by @andiwand - 🚨 BREAKING: Remove
EventData/TrackHelpers.hpp
(#3588) by @andiwand - Write unbiased states only for smoothed in
RootTrackStatesWriter
(#3561) by @andiwand - 🚨 BREAKING: Remove deprecated API (#3591) by @andiwand
- Volume holds bounds as mutable (#3595) by @paulgessinger
- 🚨 BREAKING: Path handling to use
std::filesystem
(#3308) by @AJPfleger - 🚨 BREAKING: Replace
EigenStepper
extension list with single extension (#2865) by @andiwand - Replace
Acts::min_max
withstd::ranges::minmax_element
(#3601) by @AJPfleger - 🚨 BREAKING: Rename
EigenStepper
dense extension (#3603) by @andiwand - Update
to_array
(#3600) by @AJPfleger - Modernise GeometryHierarchyMap (#3594) by @AJPfleger
- Add C++23
std::ranges::contains
place holder (#3598) by @AJPfleger - Changed the GeoModelToDetectorVolume to be able to return Acts::Volumes (#3576) by @Berggren-Jonas
- Use
std::ranges::sort
andreverse
(#3596) by @AJPfleger - 🚨 BREAKING:
VolumeBounds
becomes a scoped enum (#3513) by @paulgessinger - Make
ViewConfig
usable with designated initializers (#3613) by @paulgessinger - TrackingGeometry interface cleanup (#3612) by @paulgessinger
- Improved Python bindings for algebra types (#3611) by @paulgessinger
- Modified from_json in AmbiguityConfigJson for easier implementation in Athena (#3628) by @Ragansu
- Visualization3D location and API (#3622) by @paulgessinger
- (geo) Portal(Link)+Surface verbosity reduction (#3636) by @paulgessinger
- Reduce abuse of auto in mbf smoother (#3630) by @CarloVarni
- 🚨 BREAKING: SourceLink setting only via rvalue reference (#3488) by @paulgessinger
- Remove Sequencer dataflow override (#3625) by @paulgessinger
- 🚨 BREAKING: Fuse
Actor
andAborter
(#3573) by @andiwand - 🚨 BREAKING: Converge to naming
sourceLink
(#3647) by @AJPfleger - Remove MPL library (#3642) by @stephenswat
- 🚨 BREAKING: Return all track states from Core CKF (#3391) by @andiwand
- Remove redundant
operator!=
, introduceoperator<=>
(#3660) by @AJPfleger - Remove
inline
fromconstexpr
functions for clarity (#3659) by @AJPfleger - Use
contains
for maps and sets (#3670) by @AJPfleger - Modernise type traits (#3655) by @AJPfleger
- 🚨 BREAKING: Remove mean reduction from
MultiEigenStepperLoop
(#3671) by @andiwand - Enhance
RootTrackParameterWriter
with residuals and pulls (#3666) by @andiwand - Removed maxHits condition from ScoreBasedAmbiguitySolver (#3676) by @Ragansu
- Use
std::ranges:find
,find_if
,find_if_not
(#3614) by @AJPfleger - Unify proxy iterator types (#3664) by @stephenswat
- Use
std::ranges::all_of
,any_of
,none_of
(#3593) by @AJPfleger - 🚨 BREAKING: Do not use geometry extent during seeding (#3688) by @CarloVarni
- (geo) Add portals + surfaces to closeGeometry and visitSurfaces (#3678) by @paulgessinger
- Use std::atan2 instead of atan2f (#3695) by @CarloVarni
📚 Documentation
- Add minimal Spack spec for ACTS core (#3638) by @stephenswat
⚡ Performance
🧪 Testing
- (gx2f) Remove ToyDetectorYdirection relic (#3669) by @AJPfleger
🛠️ Build
- Update traccc to v0.16.0 (#3634) by @stephenswat
- Use
patch
to apply patch for Annoy (#3667) by @paulgessinger - Use tarball download for Annoy (#3672) by @paulgessinger
⚙️ Miscellaneous Tasks
- (sonarcloud) Fix shallow clone (#3590) by @AJPfleger
- Fix doc commment flavor in BoundingBox (#3621) by @paulgessinger
- Synchronize versions (#3631) by @asalzburger
- Run clang-tidy on the ActSVG plugin (#3639) by @stephenswat
- Update ACTSVG version (#3643) by @asalzburger
- Update to detray version v0.75.3 (#3646) by @asalzburger
- Bump core count in GitLab CI to 8 (#3651) by @paulgessinger
- Require Sonar Analysis (#3663) by @paulgessinger
- GitLab
-j6
(#3677) by @paulgessinger - Update license header (#3623) by @AJPfleger
v36.3.2
v36.3.1
v36.3.0
36.3.0
🚀 Features
- Renavigation for Gen1 (#3437) by @andiwand
- (geo) Gen3 portal links (#3531) by @paulgessinger
- Add B-field accessors to Python bindings (#3554) by @stephenswat
- Detray material conversion (#3546) by @asalzburger
- Add covfie magnetic field plugin (#3479) by @stephenswat
- Gen3 geometry Portals (#3501) by @paulgessinger
- Adding unit tests for
DetrayGeometryConverter
andDetrayMaterialConverter
(#3572) by @asalzburger - Introduce navigation stream (#3538) by @asalzburger
- Hashing seeding algorithm (#3148) by @CouthuresJeremy
- (gx2f) Material effects - multiple scattering (#3292) by @AJPfleger
- Allow Core CKF to skip the start surface (#3535) by @andiwand
- GeoModel conversion for TGC, sTGC and MicroMega (#3540) by @Berggren-Jonas
🐛 Bug Fixes
- Remove outdated full chain (#3553) by @AJPfleger
- Handle if all branches are stopped after filtering in Core CKF (#3555) by @andiwand
- (gx2f) Correct trackstates for material surfaces (#3556) by @AJPfleger
- Make
RootTrackStatesWriter
FPE safe (#3559) by @andiwand - Add G4 log level tweaking on algorithm initialization (#3570) by @benjaminhuth
- Correct a typo in a printout in the BinningData.hpp (#3577) by @veprbl
- Return
nullptr
if outside tracking geometry inTrackingGeometry::lowestTrackingVolume
(#3481) by @andiwand - Clear the m_r vector (#3583) by @asalzburger
◀️ Revert
🚜 Refactor
- (gx2f) Logic for multipleScattering option (no effect yet) (#3551) by @AJPfleger
- (gx2f) Remove outdated navigation abort conditions (#3552) by @AJPfleger
- Add C++20 track parameter, navigator, and stepper concepts (#3492) by @stephenswat
- Some refactorings around the G4 simulation (#3532) by @benjaminhuth
- Remove far limit hack from
Layer::compatibleSurfaces
(#3558) by @andiwand - (gx2f) Early exit for
addToGx2fSums
(#3568) by @AJPfleger - (gx2f) Early exit for the Actor (#3566) by @AJPfleger
- Rework G4 surface mapping to make it more robust (#3562) by @benjaminhuth
- Remove
calculateTrackQuantities
from Core CKF (#3567) by @andiwand - Remove target volume estimation from
Navigator
(#3242) by @andiwand - Remove remaining detection idiom usage (#3547) by @stephenswat
- Rework projector (#3529) by @andiwand
- Remove input source links from fitting algorithm (#3580) by @benjaminhuth
- Remove GX2F start volume checks (#3581) by @andiwand
📚 Documentation
- Add documentation on Spack builds (#3550) by @stephenswat
⚡ Performance
- Improve Hough Transform performance (#3461) by @dimitra97
🧪 Testing
⚙️ Miscellaneous Tasks
- Add pre-commit hooks for most of our linting (#3560) by @paulgessinger
- Make license check work with single files (#3569) by @paulgessinger
- (physmon) Fix weird numbers at end of log file (#3571) by @AJPfleger