Skip to content

feat: switch to ODD v6.0.2 with staged build options#5278

Draft
asalzburger wants to merge 5 commits intoacts-project:mainfrom
asalzburger:feat-odd-v6
Draft

feat: switch to ODD v6.0.2 with staged build options#5278
asalzburger wants to merge 5 commits intoacts-project:mainfrom
asalzburger:feat-odd-v6

Conversation

@asalzburger
Copy link
Copy Markdown
Contributor

@asalzburger asalzburger commented Mar 23, 2026

This PR takes profit of the new staged building of the ODD v6.0.2.

  • It introduces staged building with boolean flags and tests those.
  • It adds the muon hits to the key4hep copy tests (as they appear now)

It will change a some output variables because the detector will not be identical if only the Tracker is built.

--- END COMMIT MESSAGE ---

Any further description goes here, @-mentions are ok here!

  • Use a conventional commits prefix: quick summary
    • We mostly use feat, fix, refactor, docs, chore and build types.
  • A milestone will be assigned by one of the maintainers

@asalzburger asalzburger changed the title feat: switch to ODD v6.0.0 / only build Tracker feat: switch to ODD v6.0.2 / only build Tracker Mar 23, 2026
@github-actions github-actions bot added this to the next milestone Mar 23, 2026
@github-actions github-actions bot added the Infrastructure Changes to build tools, continous integration, ... label Mar 23, 2026
Copy link
Copy Markdown
Member

@paulgessinger paulgessinger left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this should be configurable when calling the Python function, and I think we should have a Python test that builds the odd with different configurations.

Could you look into that?

@asalzburger
Copy link
Copy Markdown
Contributor Author

asalzburger commented Mar 23, 2026

I think this should be configurable when calling the Python function, and I think we should have a Python test that builds the odd with different configurations.

Could you look into that?

Sure, that was the plan - I wanted to see how bad it looks by just shooting at it ... in terms of CI.

Now I see that some tests already require the Calo to be there ... so this should obviously be part of this PR.

@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Mar 23, 2026

📊: Physics performance monitoring for c0ad5db

Full contents

physmon summary

@asalzburger asalzburger changed the title feat: switch to ODD v6.0.2 / only build Tracker feat: switch to ODD v6.0.2 with staged build options Mar 24, 2026
We are supporting still two type of material mapping approaches: 
a - one using the propagator / navigator
b - a robust one using only line intersections

This PR removes the first option and only keeps the second, for the
moment volume mapping is (for a short time) not supported, it will be
integrated into b.

## What changed

### Removed legacy algorithm path 
- Deleted
Examples/Algorithms/MaterialMapping/include/ActsExamples/MaterialMapping/CoreMaterialMapping.hpp
- Deleted
Examples/Algorithms/MaterialMapping/src/CoreMaterialMapping.cpp
- Replaced legacy MaterialMapping implementation with former core-based
implementation:
- Updated
Examples/Algorithms/MaterialMapping/include/ActsExamples/MaterialMapping/MaterialMapping.hpp
- Updated Examples/Algorithms/MaterialMapping/src/MaterialMapping.cpp

### MaterialMapping now uses Acts::MaterialMapper and outputs
mapped/unmapped tracks.

### Removed old core mapper infrastructure from Core/Material:
- Deleted Core/include/Acts/Material/SurfaceMaterialMapper.hpp
- Deleted Core/include/Acts/Material/VolumeMaterialMapper.hpp
- Deleted Core/src/Material/SurfaceMaterialMapper.cpp
- Deleted Core/src/Material/VolumeMaterialMapper.cpp

### Removed associated unit tests:
- Deleted Tests/UnitTests/Core/Material/SurfaceMaterialMapperTests.cpp
- Deleted Tests/UnitTests/Core/Material/VolumeMaterialMapperTests.cpp

### Updated build wiring:
- Examples/Algorithms/MaterialMapping/CMakeLists.txt
- Core/src/Material/CMakeLists.txt
- Tests/UnitTests/Core/Material/CMakeLists.txt


--- END COMMIT MESSAGE ---

With a simple sequence of 3 commands one can now re-create the ODD
material maps:
```sh
python material_recording.py -n1000 -t1000 -o odd_material_geant4
python material_mapping.py -n 1000000 -i odd_material_geant4.root  -o odd_material
python material_validation.py -n 1000 -t 1000 -m odd_material_map.root -o odd_material_validated -p
```

Output is as follows:

<img width="793" height="631" alt="overlay_profile_ratio_v_eta_t_X0"
src="https://github.com/user-attachments/assets/976b6005-0c57-416e-9ad1-26c1e919fcda"
/>


Any further description goes here, @-mentions are ok here!

- Use a *conventional commits* prefix: [quick
summary](https://www.conventionalcommits.org/en/v1.0.0/#summary)
- We mostly use `feat`, `fix`, `refactor`, `docs`, `chore` and `build`
types.
- A milestone will be assigned by one of the maintainers
@sonarqubecloud
Copy link
Copy Markdown

@andiwand andiwand marked this pull request as draft March 26, 2026 09:30
@andiwand
Copy link
Copy Markdown
Contributor

@asalzburger this picked up some changes from a different branch

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Infrastructure Changes to build tools, continous integration, ...

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants