EDM4hep Discussion
Zoom
EDM4hep Live Notes
==================
Date: Dec 5, 2023
Indico: https://indico.cern.ch/event/1353732/
Connected: Andre, Juraj, Juan, Leonhard, Tao, Thomas, Birgit, Mateusz, Brieuc, Graeme, Frank, Joseph
Apologies: Benedikt, Swathi,
## Introduction and General Points
### Upcoming workshops / conferences
https://github.com/orgs/key4hep/projects/4/views/1
## Progress and discussion
### interface types in podio
* Name for edm4hep type
* TrackerHit3D would capture what it is but breaks quite a few places and user code
* Reading tracker hits will be seamless
* Only places where things break is where TrackerHits are created or where a TrackerHitCollection is explicitly requested
* GenericTrackerHit better name than TrackerHitInterface
* Other possible use case
* Calorimeter hits, ACTS measurement, ...
* Schema evolution?
* Not really a concern, because that is done by the underlying concrete types
* No members in interface is that a use case?
* YAML validation would let it pass.
* Would work as a sort of `std::any` with restricted types
* Interfaces in interfaces?
* Potentially possible in memory
* I/O handling would become hard
* No clear use case at the moment(?)
## Podio
* https://github.com/AIDASoft/podio/pulls
* https://github.com/AIDASoft/podio/issues
* https://github.com/orgs/AIDASoft/projects/2/views/1
### New memory model for podio
* See also [presentation at Key4hep meeting](https://indico.cern.ch/event/1347189/)
* https://github.com/AIDASoft/podio/pull/514
* [x] merged
### Prototype code generation for Julia
* https://github.com/AIDASoft/podio/pull/473
* Probably needs some cleanup / separation of the different bits of language specific parts of code generation
* Merged already now, because other PRs also start to touch code generation bits again and we want to avoid having merge conflicts in them
* Not production ready yet at all
* Maintained by Benedikt, Graeme, Pere
* Merged now because it's easier to have it in to not have to fight git every time this is changed
* Limitations around different namespaces in datamodels
* Not really a concern in real life as EDMs life in one namespace usually
### Python bindings for RNTuple backend
* https://github.com/AIDASoft/podio/pull/488
### Make member getters return values for builtin types
* https://github.com/AIDASoft/podio/pull/519
* Should be slightly more performant
* Makes ExtraCode somewhat easier to write
### QoL improvements
* https://github.com/AIDASoft/podio/pull/521
* `import ROOT` only when necessary in `podio-dump` (speeds up `--help` and `--version`)
* https://github.com/AIDASoft/podio/pull/520
* Better error message when EDM library is not found when reading a collection from Frame
### Interface for readers / writers
* https://github.com/AIDASoft/podio/pull/522
* Would be nice for changing things easily at runtime without having to have multiple different readers
* Current "low level" readers are hard to cover with an interface (different FrameDataT)
## EDM4hep
* https://github.com/key4hep/EDM4hep/pulls
* https://github.com/key4hep/EDM4hep/issues
### Moving to double for MCParticle momentum
* Moving from `float` to `double` should be straight forward and can be done
* https://github.com/key4hep/EDM4hep/pull/237
* **Breaks in quite a few places throughout key4hep!**
* [ ] Prepare PRs and synchronize merge
## Converters & MarlinWrapper interplay
### Fix CI and tests for k4EDM4hep2LcioConv
* https://github.com/key4hep/k4EDM4hep2LcioConv/pull/40
### Always convert EventHeader collection
* https://github.com/key4hep/k4MarlinWrapper/pull/162
* [x] Waiting on https://github.com/key4hep/k4FWCore/pull/161 (?)
* [ ] CI not working due to https://github.com/key4hep/key4hep-spack/issues/547 (`jupytext` no longer available)
* restricts version of `pip` and makes building a stack hard (without having to have two versions of `pip`). Might just pull in older python versions instead
* Merge PR now without full CI and fix CI later / check other options
### Conversion of `TrackerHitPlane` from EDM4hep to LCIO
* https://github.com/key4hep/k4EDM4hep2LcioConv/pull/42
* Misssing entirely before
* In LCIO `TrackerHitPlane::setCovMatrix` does not exist!
* Information stored in EDM4hep will be lost during conversion
### Missing conversion / attachment of trackerHits to tracks
* https://github.com/key4hep/k4EDM4hep2LcioConv/issues/39
* Related: https://github.com/key4hep/EDM4hep/issues/218
* Uncertainties in U/V still to be handled
* Support for interface types in podio https://github.com/AIDASoft/podio/pull/516
* See also presentation
## AoB
* Changing branch name from `master` to `main`: Only k4geo is missing.
* Will be renamed in near future. Might have to update local repository to point to `main` instead of `master`
## Next meeting:
* Dec 19, 09:00