EDM4hep Discussion

Europe/Zurich
Zoom

Zoom

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

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

There are minutes attached to this event. Show them.
    • 1
      Introduction
      Speakers: Andre Sailer (CERN), Frank-Dieter Gaede (Deutsches Elektronen-Synchrotron (DE)), Thomas Madlener (Deutsches Elektronen-Synchrotron (DESY))
    • 2
      Discussion
      Speaker: Dr All