EDM4hep Discussion

→ Europe/Zurich
Zoom

Zoom

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

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

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
      interface types in podio 20m
      Speaker: Thomas Madlener (Deutsches Elektronen-Synchrotron (DESY))
    • 09:45 → 09:46
      Discussion 1m
      Speaker: Dr All