EDM4hep Discussion
Zoom
EDM4hep Live Notes
==================
Date: Nov 14, 2024
Indico: https://indico.cern.ch/event/1480465/
Connected: Andre, Leonhard, Juraj, Juan, Thomas, Birgit, Mateusz, Jacopo, Tao, Frank, Pere, Sanghyun, Juan
Apologies:
## Introduction and General Points
### Upcoming workshops / conferences
https://github.com/orgs/key4hep/projects/4/views/1
## 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
### Merged PRs
* Make accessing single elements in empty parameter vectors return an empty optional [#694](https://github.com/AIDASoft/podio/pull/694)
* Add compatibility with pathlib.Path to python readers [#699](https://github.com/AIDASoft/podio/pull/699)
* Add deprecation warning when building with c++17 [#700](https://github.com/AIDASoft/podio/pull/700)
* Make sure that reader still works with newer ROOT versions [#702](https://github.com/AIDASoft/podio/pull/702)
* Fix tests when SIO is off [#704](https://github.com/AIDASoft/podio/pull/704)
* Remove unnecessary code in GenericParameters.h [#706](https://github.com/AIDASoft/podio/pull/706)
### Add `links` category for YAML definitions
* https://github.com/AIDASoft/podio/pull/691
* As required by EDM4hep
* Generates the necessary "boilerplate"
* [x] Generate test file to check julia bindings before merging
* [ ] Checking why ROOT file structure is not as expected
### Require c++ 20 and remove c++17 support
* https://github.com/AIDASoft/podio/pull/698
* https://github.com/AIDASoft/podio/pull/700 (make c++17 a warning at cmake stage)
* [x] How formal do we want / need to be with this wrt versioning?
* Technically a breaking change
* podio has `SameMajorVersion` as compatibility setting in exported CMake configs -> will break in places where we have `find_package(podio 1.0)`
* **Put warning into next tag. Remove in next-to-next tag and don't make a v2.0**
### Add a tool to merge several podio files into a single one ([#681](https://github.com/AIDASoft/podio/pull/681))
* [x] Add metadata about which files were merged
* Hardcoding `metadata-category-name` and `metadata-parameter-name` would allow to more consistently check if a file is merged or not.
### No real support yet for reading multiple RNTuple files
* Originally `TChain` equivalent was not supported by `RNTuple`. Now it is
* Juan working on this
## EDM4hep
* https://github.com/key4hep/EDM4hep/pulls
* https://github.com/key4hep/EDM4hep/issues
* https://github.com/orgs/key4hep/projects/5
### Merged PRs
* Make sure to only run tests with compatible root versions [#381](https://github.com/key4hep/EDM4hep/pull/381)
### Added SimDRCalorimeterHit for dual-readout
* https://github.com/key4hep/EDM4hep/pull/380
* Crystal dual-readout team, tbc. what the goal is here
* To be seen whether this can be handled by existing CalorimeterHit
### [WIP] Switch to templated links and remove explicit declarations from yaml file
* https://github.com/key4hep/EDM4hep/pull/373
* Transparent reading of old (generated) link collections
* Some "schema evolution" code necessary
* Example of how adding a new link looks like at the moment
* Create a header with typedef
* Use `PODIO_DECLARE_LINK` to instantiate the necessary buffer creation code for a given type
* Make a new dedicated `links`(?) category in the YAML file?
* Yes, keeps EDM4hep self-contained
* [ ] Make a separate PR that introduces that
* Do we need schema evolution from non-templated links?
* Yes, we had a tagged version (`v00-99`) of EDM4hep with the non-templated links
### Zenodo Batch, Author / Contributor list
* https://github.com/key4hep/EDM4hep/pull/375
* [ ] Prepare a `CITATION.cff` file to point to some publication (once it's ready).
* Decide on a case by case basis on whether inclusion to the authors is warranted
### Run information storage
* E.g. Conversion from LEP data (run energy)
* *Run* frame parameters? Dedicated datatype (*RunHeader*)?
* Want to access run data for each event
* Write them separately from the events
* Lookup runs via the runNumber from the `EventHeader`
* Cache *Run*
* Gaudi has `EventContext` for storing run number, lumi block, etc.
* Has to be filled by some service at **beginning of event loop**, algorithms only get `const EventContext&`
* Created by `EventSelector` in Gaudi
* Use LEP data as starting point and define contents from there
## Converter & MarlinWrapper
## AoB
## Next meeting:
* Dec 03, 9:00 CET