EDM4hep Discussion

Europe/Zurich
Zoom

Zoom

Zoom Meeting ID
98484040528
Host
Andre Sailer
Useful links
Join via phone
Zoom URL

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

There are minutes attached to this event. Show them.
    • 09:00 09:05
      Introduction 5m
      Speakers: Andre Sailer (CERN), Frank-Dieter Gaede (Deutsches Elektronen-Synchrotron (DE)), Thomas Madlener (Deutsches Elektronen-Synchrotron (DESY))
    • 09:10 09:30
      SenseWireHit inclusion discussion 20m
    • 09:50 09:51
      Discussion 1m
      Speaker: Dr All