Skip to content

refactor: Read Bethe-Heitler-Approx from json#5599

Draft
benjaminhuth wants to merge 6 commits into
acts-project:mainfrom
benjaminhuth:refactor/gsf-bha-file-format
Draft

refactor: Read Bethe-Heitler-Approx from json#5599
benjaminhuth wants to merge 6 commits into
acts-project:mainfrom
benjaminhuth:refactor/gsf-bha-file-format

Conversation

@benjaminhuth

Copy link
Copy Markdown
Member

So far, ACTS had a reader for the custom ATLAS/Athena native parameterization format. However, this format is non-standard and untested. This replaces this by introducing a json-based reading, and also adds a file to the repository that encodes the default parameterization used in ATLAS.

@github-actions github-actions Bot added Component - Core Affects the Core module Component - Examples Affects the Examples module Component - Plugins Affects one or more Plugins Track Fitting labels Jun 17, 2026
@github-actions github-actions Bot added this to the next milestone Jun 17, 2026
- Rename class to PolynomialBetheHeitlerApprox
- Add deprecated typedef for backwards compatibility
- Deprecate loadFromFiles member function with message to use loadBetheHeitlerApproxFromJson instead
- Update all references in JSON converter, reader, Python bindings, and tests
- Keep makeDefaultBetheHeitlerApprox free function working with new class name
- Add RangeData struct with lowX0, highX0, data, and transform
- Add new constructor taking std::vector<RangeData>
- Deprecate old two-range constructor
- Update mixture() to iterate through ranges
- Update loadFromFiles to create ranges vector internally
- Update makeDefaultBetheHeitlerApprox to use new constructor
- Update JSON converter to handle N ranges with components array
- Update JSON reader to parse ranges array
- Update Python bindings for new constructor
- Remove duplicate BetheHeitlerApproxJsonConverter::RangeData
- Update JSON converter to use PolynomialBetheHeitlerApprox::RangeData
- Update JSON reader to use core RangeData type
- Simplify code by removing redundant type definitions
- Use Acts::Range1D<double> for storing x0 range bounds
- Use structured bindings in for loop for cleaner code
- Use range.contains() for range lookups
- Fix JSON converter to make from_json/to_json available via ADL
@github-actions

Copy link
Copy Markdown
Contributor

📊: Physics performance monitoring for 2866162

Full contents

physmon summary

@benjaminhuth benjaminhuth force-pushed the refactor/gsf-bha-file-format branch from 2866162 to 697bdb7 Compare June 17, 2026 12:14
- Move constructor implementation to source file
- Sort ranges by minimum value in constructor
- Validate that ranges don't overlap using Range1D methods
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Component - Core Affects the Core module Component - Examples Affects the Examples module Component - Plugins Affects one or more Plugins Track Fitting

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant