EDM4hep Discussion
Zoom
EDM4hep Live Notes
==================
Date: Feb 13, 2024
Indico: https://indico.cern.ch/event/1382047/
Connected: Birgit, Andre, Graeme, Brieuc, Benedikt, Swathi, Juan, Tao, Thomas, Mateusz
Apologies: Juraj, Alvaro
## Introduction and General Points
### Upcoming workshops / conferences
https://github.com/orgs/key4hep/projects/4/views/1
2nd FCC US workshop https://indico.mit.edu/event/876/
## Progress and discussion
## Podio
* https://github.com/AIDASoft/podio/pulls
* https://github.com/AIDASoft/podio/issues
* https://github.com/orgs/AIDASoft/projects/2/views/1
### v00-99 tag
* Pre-release for v1.0
* Cleanup PRs:
* Make `schema_version` mandatory in definition: https://github.com/AIDASoft/podio/pull/556
* Remove deprecated functionality from Frame interface (python & c++): https://github.com/AIDASoft/podio/pull/557
### Mutable references for Mutable types
* https://github.com/AIDASoft/podio/pull/553
* Generate `getXYZ` functions that return a mutable reference for mutable types
* Previously present only for non-builtin types, i.e. components (but wihtout the `get` prefix)
* Discovered by Paul (ACTS) as inconsistent. He used components as workaround until now. This would allow him to use datatypes instead and solve a few other requests / issues from ACTS.
### 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)
* [ ] Check python side again to make it consistent with c++
### Templated associations
* [ ] Check error messages (from compiler)
* [ ] Make sure that this is transparent to read from disk
* Potentially put in after v1.0
* Battle test this
* Explicit associations in yaml file have their advantage
## EDM4hep
* https://github.com/key4hep/EDM4hep/pulls
* https://github.com/key4hep/EDM4hep/issues
* https://github.com/orgs/key4hep/projects/5
### New tag(s) v00-10-04 and v00-10-05
* Use v00-10-05!
### Strategy for commiting changes
* Sprint like change in one go. Break nightlies for a few days and fix stuff immediately
* [ ] Need to find a date to do that
### Moving to double for MCParticle momentum
* Moving from `float` to `double` should be straight forward and can be done
* **This was not a change with automatic schema evolution capabilities from ROOT**
* See: https://github.com/key4hep/k4MarlinWrapper/issues/170
* Reverted in https://github.com/key4hep/EDM4hep/pull/266
* New PR: https://github.com/key4hep/EDM4hep/pull/267
* [ ] Add check to datamodel comparison in podio
* [ ] Add to validation to catch this earlier
### `TrackerHit` interface
* https://github.com/key4hep/EDM4hep/pull/252
* [x] Naming?
* Moving current `TrackerHit` to `TrackerHit3D` breaks in a few places. Could use a new name for the interface instead?
* Several PRs open in affected repos to make this a transparent switch (can be merged independently)
### Reversal of direction of some relations
- https://github.com/key4hep/EDM4hep/pull/268
- `ParticleID` should point to `ReconstructedParticle`
- Remove `ParticleID` from `Cluster` (unused in ILD standard reconstruction)
- [ ] Remove in LCIO as well
- This is a sort of almost requirement for the reversal, as otherwise the `ParticleID` needs two relations, one to the `Cluster` and one to the `ReconstructedParticle`
- Related PR:
- Make the converter deal with this
- https://github.com/key4hep/k4EDM4hep2LcioConv/pull/51
- Prerequisite of multithreading
- Orthogonal to the rest of the breaking changes
- Need to check how existing workflows map into workflows after the changes
- May need some tools to make things easier
- Physics validation will become a lot of work
- Should be OK with a "before" histogram and a new "after" version
- Also used in k4SimDelphes
- Aim for before FCC tutorial / workshop at MIT (early to mid March)
### Avoid having relation / member names the same as type
* https://github.com/key4hep/EDM4hep/issues/247
* Deprecate compatibility overloads
### Ways to store multiple event weights
* https://github.com/key4hep/EDM4hep/issues/242
## Converter & MarlinWrapper
## AoB
* How shall we deal with EDM4hep breaking changes and existing FCC samples
* Drift chamber dataformat: https://github.com/BrieucF/k4RecTracker/blob/DChitGlobal/DCHdigi/dataFormatExtension/driftChamberHit.yaml
## Next meeting:
* Feb 27, 09:00