EDM4hep Discussion
Zoom
EDM4hep Live Notes
==================
Date: Jan 20, 2026
Indico: https://indico.cern.ch/event/1638492/
Connected: Juan, Bohdan, Juraj, Andreas, Thomas, Andre, Brieuc
Apologies:
### Upcoming workshops / conferences
https://github.com/orgs/key4hep/projects/4/views/1
## Progress and discussion
## Podio
* https://github.com/AIDASoft/podio/issues
* https://github.com/AIDASoft/podio/pulls
* https://github.com/orgs/AIDASoft/projects/2/views/1
### New tag v01-07
* https://github.com/AIDASoft/podio/releases/tag/v01-07
* Available from spack
* **NOTE: EDM4hep <= 00-99-04 does not build with this tag**
* Some ongoing investigation about issues building this on macOS w/ spack
* See [PR comment](https://github.com/spack/spack-packages/pull/3041#issuecomment-3767058588) and below
* Plan to have a v01-07-01 tag with a fix for this soon
### Merged PRs
Not yet included in v01-07
- find `Python3` in `find_dependency` [#927](https://github.com/AIDASoft/podio/pull/927)
- include `Python.h` before standard headers [#926](https://github.com/AIDASoft/podio/pull/926)
- Fix typo in `RNTupleWriter.cc` [#924](https://github.com/AIDASoft/podio/pull/924)
- Make link collection iterators behave consistently with generated collection iterators [#922](https://github.com/AIDASoft/podio/pull/922)
Included in v01-07
- Fix the name of the fixture for the read_garbage test [#921](https://github.com/AIDASoft/podio/pull/921)
- Fix a bug in `checkConsistentColls` [#916](https://github.com/AIDASoft/podio/pull/916)
- Remove the llvm-header-guard check for clang-tidy [#915](https://github.com/AIDASoft/podio/pull/915)
- Make the python writers have the same behavior as the C++ writers [#897](https://github.com/AIDASoft/podio/pull/897)
- Make sure a file is closed after opening it [#917](https://github.com/AIDASoft/podio/pull/917)
- Use a cache for compiled jinja templates [#913](https://github.com/AIDASoft/podio/pull/913)
- Bump urllib3 from 2.6.0 to 2.6.3 in /doc [#914](https://github.com/AIDASoft/podio/pull/914)
- fix: install into free-threaded python3.14t/site-packages prefixes [#911](https://github.com/AIDASoft/podio/pull/911)
- Forward-declare PyObject not to have to include Python.h [#910](https://github.com/AIDASoft/podio/pull/910)
- feat: change exposed TU-local entities to inline [#909](https://github.com/AIDASoft/podio/pull/909)
- feat: move Pythonizations implementations to source files [#908](https://github.com/AIDASoft/podio/pull/908)
- podio-dump: Make -e -1 dump all of the entries [#906](https://github.com/AIDASoft/podio/pull/906)
- Add a cmake option to toggle schema evolution tests with code generation [#902](https://github.com/AIDASoft/podio/pull/902)
- podio-merge-files: add progress bar [#901](https://github.com/AIDASoft/podio/pull/901)
- Create a per ref concurrency group for doc building [#904](https://github.com/AIDASoft/podio/pull/904)
- Move black to earlier in the pre-commit config [#903](https://github.com/AIDASoft/podio/pull/903)
### Make pythonization for collection subscript header only again
* https://github.com/AIDASoft/podio/pull/928
* Originally changed in https://github.com/AIDASoft/podio/pull/908 for enabling c++ module support
* Breaks on macOS (confirmed with spack only atm!)
* Possible other fix for macOS breaks linux builds ...
* (Almost) restore original behavior from pre #908
* Likely still possible to make modules with this. To be checked
### `podio-dump` output of MCParticle could be improved
* https://github.com/AIDASoft/podio/issues/920
* TL;DR: `dumpevent` gives nicer output than `podio-dump`, but fixing that is not strictly trivial
* Might be necessary to come up with a `edm4hep-dump` with dedicated "nicer" printing
* For MCParticles can use `eede`
### [WIP] Make it possible to construct collections from ranges of handles
* https://github.com/AIDASoft/podio/pull/923
* Make it (easily) possible to construct a podio collection from any range of handles
* See discussion in https://github.com/AIDASoft/podio/issues/778 for a motivation
* Could potentially also significantly improve / simplify k4FWCore, since we would no longer have to carry `podio::CollectionBase`s around, but could just use standard `std::vector` for example and we simply populate the Frame late.
* Would probaly require the possibility to take ownership of collections from Frames on the input side
### [WiP] Improve usability of LinkNavigator from python
* https://github.com/AIDASoft/podio/issues/918
* https://github.com/AIDASoft/podio/pull/919
* `podio::LinkNavigator` very hard / cumbersome to use from python
* This PR is an attempt at resolving some parts of that
* [ ] Waiting for feedback
### [WIP] Add CMake presets and start to use them in CI
* https://github.com/AIDASoft/podio/pull/905
* Group common build options together to simplify configuring "standard" builds of podio
* [ ] Anything speaking against this?
* [ ] Naming of presets?
### [WIP] Support installation of C++20 modules (with non-ROOT functionality)
* https://github.com/AIDASoft/podio/pull/907
* Add a podio c++ module (if compiler support is there)
* Some refactoring of code
* Mainly adding of some scaffolding code for CMake module generation + actual podio module
* core generated EDM libraries also can be used via modules (code gen part of PR)
* https://github.com/AIDASoft/podio/pull/908 lifted out of here
* Might have to partially revert that to work around the current macOS build issues related to the pythonizations
* Promises faster build times
* ROOT (and other I/O parts) do not become modules yet (would require changes there)
## EDM4hep
* https://github.com/key4hep/EDM4hep/pulls
* https://github.com/key4hep/EDM4hep/issues
* https://github.com/orgs/key4hep/projects/5
### Merged PRs
- Keep xml merging script running regardless of which python cmake finds [#476](https://github.com/key4hep/EDM4hep/pull/476)
- Bump the minimal version of podio to 1.7 [#470](https://github.com/key4hep/EDM4hep/pull/470)
- Bump the EDM4hep version to 1.0 in the schema diagram [#471](https://github.com/key4hep/EDM4hep/pull/471)
- Fix formatting to comply with clang-format for ExtraCode files [#472](https://github.com/key4hep/EDM4hep/pull/472)
- fix: install into free-threaded python3.14t/site-packages prefixes [#469](https://github.com/key4hep/EDM4hep/pull/469)
- Consistently name intrinsic Cluster angles [#465](https://github.com/key4hep/EDM4hep/pull/465)
- Store old schema versions explicitly [#464](https://github.com/key4hep/EDM4hep/pull/464)
### Add a fast simulation bit to the MCParticle
* https://github.com/key4hep/EDM4hep/pull/474
* Requires integration into DD4hep (ongoing)
* https://github.com/AIDASoft/DD4hep/pull/1503
## Converter & MarlinWrapper
## AoB
* Merge EDM4hep & Key4hep meetings now that EDM4hep 1.0 makes need for a dedicated meeting low(er)?
* Discuss again next EDM4hep / Key4hep meeting
### HepMC3 -> EDM4hep writing upstreamed to HepMC3
* [x] https://gitlab.cern.ch/hepmc/HepMC3/-/merge_requests/399
## Next meeting:
* Feb 03, 09:00