EDM4hep Discussion
Zoom
EDM4hep Live Notes
==================
Date: Oct 28, 2025
Indico: https://indico.cern.ch/event/1603089/
Connected: Tao, Juan, Andreas, Thomas, Brieuc, Sanghyun, Juraj, Birgit, Mateusz, Andre
Apologies:
### Upcoming workshops / conferences
https://github.com/orgs/key4hep/projects/4/views/1
## Progress and discussion
### LCWS
* Tutorial went well. 20-25 participants
* Slightly too long for timeframe at LCWS
* As a side product: experimental images of (partial / no generator) Key4hep stack on x86_64 and arm64
* Message that personpower is low for Key4hep seems to have been received
### Logo Poll
- **Final chance to vote**
- https://github.com/orgs/key4hep/discussions/3
### `SenseWireHit` addition
* https://github.com/key4hep/EDM4hep/pull/385
* Considered ready by DC tracking
* Digitization & tracking are working now
* Keeping this as extension will potentially lead to quite a messy cleanup when we move this to EDM4hep later
* Main question(?)
* How to interpret position. Different from other types in `TrackerHit`, but necessary for reconstruction as well.
* position through `TrackerHit` interface mostly used for visualization
* Digitizer has several SimHits linked to one SenseWireHit. Use several links to store this.
* Retrieval via `LinkNavigator`
* Angles could in principle be retrieved from geometry
* Convenient to have them in the datatype
* Similar to other tracker hits in EDM4hep
* Strategy for merging and updating dependencies
* Merge & tag in EDM4hep + "small release"
* Replace extenstion step by step
* Once extension is replaced everywhere, remove it entirely
* Let's us exercise how to do this
## Podio
* https://github.com/AIDASoft/podio/pulls
* https://github.com/AIDASoft/podio/issues
* https://github.com/orgs/AIDASoft/projects/2/views/1
### New tag v01-06
* https://github.com/AIDASoft/podio/releases/tag/v01-06
### Merged PRs
- Use a handle to a file or stream in the writers to check if we are done [#867](https://github.com/AIDASoft/podio/pull/867)
- Add ugly code to trigger an error when reading garbage [#846](https://github.com/AIDASoft/podio/pull/846)
- Make RNTupleReader::getEntries const [#865](https://github.com/AIDASoft/podio/pull/865)
- Fix reading an RNTuple with a deleted type, add a test to do so [#862](https://github.com/AIDASoft/podio/pull/862)
- Do not load the deprecated pythonization collection_subscript [#864](https://github.com/AIDASoft/podio/pull/864)
- Deprecate `isValid()` for collections and add `hasID()` [#860](https://github.com/AIDASoft/podio/pull/860)
### Make podio more permissive on "unreadable" inputs
* https://github.com/AIDASoft/podio/pull/863
* https://github.com/AIDASoft/podio/pull/869
* Fixes https://github.com/AIDASoft/podio/issues/859 in passing
* Main questions:
* What should be the default behavior?
* Do we need to keep backwards compatibility?
* Already fail at writing if users try to write only subset collections?
### Add a policy to change the behavior of the Frame on getting unavailable collections
* https://github.com/AIDASoft/podio/pull/868
* Default: empty collection (now), new additional policy: throw on non-existing collection
* Can be overridden by user
* Could also add similar policies to other places in the Frame (originally foreseen as part of the design)
* Main questions:
* Should policies be "Frame"-wide or changeable on every call that uses the policy (e.g. `get`)?
* Too flexible(?).
* Keep possibility in the toolkit but prescribe default for Key4hep
* Preference for throwing an exception on non-existent collections
* could also have `get` and `try_get` instead of policies
### Add the possibility to extract collections from a Frame
* https://github.com/AIDASoft/podio/pull/856
* Feature request from Acts (Paul)
* Not sure if the actual problem they have is not better solved with an appropriate DD4hep ParticleHandler
* Aware of the existing functionality in podio to do the remapping (e.g. `clone`-ing collections and manually re-setting relations)?
* could also use the type lists that we generate to do some variadic template things?
* Might still be useful as an "expert feature"?
* Could be useful for RDataFrame for mutating a collection(?)
* **How does this interact with the policies above?**
## EDM4hep
* https://github.com/key4hep/EDM4hep/pulls
* https://github.com/key4hep/EDM4hep/issues
* https://github.com/orgs/key4hep/projects/5
### New tag v00-99-03
* https://github.com/key4hep/EDM4hep/releases/tag/v00-99-03
* **Last pre-release before v01-00** No changes to existing types planned any longer.
### Merged PRs
- Fix missing std namespace for math functions, more hypot usage [#458](https://github.com/key4hep/EDM4hep/pull/458)
- Fix the warnings related to `isValid` being deprecated [#453](https://github.com/key4hep/EDM4hep/pull/453)
- Bump the minimum podio version to v01-06 [#456](https://github.com/key4hep/EDM4hep/pull/456)
- Remove unused variable in tools/CMakeLists.txt [#457](https://github.com/key4hep/EDM4hep/pull/457)
- Use std::hypot when possible, prefer std::sqrt or std::hypot to sqrt [#454](https://github.com/key4hep/EDM4hep/pull/454)
- Rework the generator related information structs [#446](https://github.com/key4hep/EDM4hep/pull/446)
- Do not build and extra library for the old schemas [#452](https://github.com/key4hep/EDM4hep/pull/452)
### Clarify `TrackerHitPlane` member description
* https://github.com/key4hep/EDM4hep/pull/455
* [ ] Check if correct
## Converter & MarlinWrapper
## AoB
## Next meeting:
* Nov 11, 09:00