EDM4hep Discussion
Zoom
EDM4hep Live Notes
==================
Date: April 11, 2023
Indico: https://indico.cern.ch/event/1274721/
Connected: Juan, Tao, Wenxing, Swathi, Brieuc, Joseph, Sang Hyun, Thomas, Frank, Benedikt, Juraj
Apologies:
## Introduction and General Points
### Upcoming workshops / conferences
https://github.com/orgs/key4hep/projects/4/views/1
#### LCWS abstract submission deadline: March 31
* https://indico.slac.stanford.edu/event/7467/overview
#### Upcoming FCC US workshop
* https://indico.cern.ch/event/1244371/timetable/
* FCCSW tutorials will be given
#### Snowmass follow up discussion
* Mid April (before FCC workshop)
* Internal discussion, no action from us (still follow activities)
## Progress and discussion
## Dual Readout with small data model extension
* Migrate to `RawTimeSeries` after CEPC DriftChamber PR is merged
## Framework `PodioOutput` writes broken files when dropping collections
* https://github.com/key4hep/k4FWCore/issues/95
* Definitely solved with `Frame` based I/O, soon enough?
* Check `PodioOutput` if it can be made to write "proper" files. (Juraj will take a look)
## `ddsim` stores its output in `Frames` now (DD4hep >= 1.24)
* https://github.com/AIDASoft/DD4hep/pull/1041
* [ ] Need updates to k4FWCore to be able to read these files
* Need to identify the Gaudi interface to fulfill
* See https://github.com/key4hep/k4FWCore/issues/94
* Need to divide work. Will discuss offline (Benedikt, Thomas)
* Benedikt at testing stage, should be ready this week
## Podio
* https://github.com/AIDASoft/podio/pulls
* https://github.com/AIDASoft/podio/issues
* https://github.com/orgs/AIDASoft/projects/1/views/1
### Decouple buffer creation from collection interface
* https://github.com/AIDASoft/podio/pull/394
* Introduces `CollectionBufferFactory`
* Necessary for templated associations
* Plan to hook schema evolution into this as well
### Templated (arbitrary) associations
* https://github.com/AIDASoft/podio/pull/257
* [Preliminary documentation](https://github.com/AIDASoft/podio/blob/c648ced0d83ffd0d393c99dc962492cb2948254a/doc/associations.md)
* Can association "meta data" (to/from types) be inferred from files?
* Yes though not extremely easily at the moment
* For EDMs put the most required ones into the shared library
* How often do users want associations that are not yet declared? Have to find out.
### RNTuple support
* https://github.com/AIDASoft/podio/pull/395
* Restarted by Juan
* RNTuple interface change in ROOT v6.28 (minimum required ROOT then)
* Hitting a ROOT issue(?) https://github.com/AIDASoft/podio/issues/385
### `constexpr const char*` names in generated types
* https://github.com/AIDASoft/podio/pull/402
* Has been requested
* using `string_view` in interfaces is a **breaking change**
* Deprecate `string` versions first and see where warnings pop up in the stack.
* Would make it slightly cheaper to carry around type information at run time
### Removal of deprecated EventStore
* When do we want to do that? After `Frame` is in framework
* Have to make sure to update examples accordingly
### Writing unreadable files
* https://github.com/AIDASoft/podio/issues/382
* in framework probably handled by framework
* real issue for multithreading (order of insertion)
* related: https://github.com/AIDASoft/podio/issues/381
* having 1:1 relation of `name` -> `id` would solve insertion order
* Different contents of frames are a backend constraint from ROOT
* Might be enforced better (i.e. with an actual crash) with RNTuple
### collection iterator dereferences not working as "expected"
* https://github.com/AIDASoft/podio/issues/281
* Arguably work as intended. Handles are just handles, they can't know whether they handle something from a collection or a free standing object.
* Replace the `bug` label
* Document current behavior properly
* Real fix would require quite some design work
* Have to figure out how to make this work with ranges
## EDM4hep
* https://github.com/key4hep/EDM4hep/pulls
* https://github.com/key4hep/EDM4hep/issues
## AoB
* Big picture presentation for Key4hep / podio / EDM4hep with goals for this year
* Help get everyone on the same page
* Schedule for one of the next meetings
## Next meeting:
* April 25, 2023; 09:00