EDM4hep Discussion

→ Europe/Zurich
Zoom

Zoom

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

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

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:45 → 09:46
      Discussion 1m
      Speaker: Dr All