EDM4hep Discussion

→ Europe/Zurich
Zoom

Zoom

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

EDM4hep Live Notes
==================

Date: Apr 23, 2024
Indico: https://indico.cern.ch/event/1409361/

Connected: Andre, Brieuc, Graeme, Jacopo, Joseph, Juan, Juraj, Leonhard, Mateusz, Pere, Swathi, Tao, Thomas, Frank, Gerri, Sanghyun, Sung Won

Apologies:

## Introduction and General Points

### Upcoming workshops / conferences
https://github.com/orgs/key4hep/projects/4/views/1
    
## Progress and discussion

### ParticleID & related utilities
* See presentation
* ParticleID utils in https://github.com/key4hep/EDM4hep/pull/268
* Used in converter: https://github.com/key4hep/k4EDM4hep2LcioConv/pull/51
* Used in wrapper: https://github.com/key4hep/k4MarlinWrapper/pull/181
* Restriction for having all ParticleIDs into one ReconstructedParticle collection only there for LCIO (and also for).
* Where does the metadata go? Into the `metadata` Frame
* Make the assignment of `algorithmTypes` less error prone. E.g. a hash


## Podio
* https://github.com/AIDASoft/podio/pulls
* https://github.com/AIDASoft/podio/issues
* https://github.com/orgs/AIDASoft/projects/2/views/1

### Merged PRs
* Fix OneToManyRelations and VectorMembers in cloned objects
    - https://github.com/AIDASoft/podio/pull/583
    - These were not working properly when trying to add new elements to cloned objects
* Fix leak in the buffer vectorMembers when reading SIO frames
    - https://github.com/AIDASoft/podio/pull/589
    - Potentially a left over from refactorings during the introduction of the CollectionBuffer factory
* Make it possible to get the name from a collectionID
    - Useful and necessary for the ParticleID (metadata) conversion
    - https://github.com/AIDASoft/podio/pull/586
* Improves in error / exception messages and general checks
    - https://github.com/AIDASoft/podio/pull/578
    - https://github.com/AIDASoft/podio/pull/577
    - https://github.com/AIDASoft/podio/pull/588
* Cleanup, documentation improvements, ...
    - https://github.com/AIDASoft/podio/pull/573
    - https://github.com/AIDASoft/podio/pull/574
    - https://github.com/AIDASoft/podio/pull/584
    - https://github.com/AIDASoft/podio/pull/587
    - https://github.com/AIDASoft/podio/pull/585
    - https://github.com/AIDASoft/podio/pull/585
    
### Pythonizations for collections
- Python collections can be accessed out of bounds without an `IndexError`
- https://github.com/AIDASoft/podio/issues/458
- Use `cppyy` call back to implement it via `Collection::at`
- https://github.com/AIDASoft/podio/pull/570
- Needs a rebase

### Change of return types for GenericParamters (and Frame parameters)
* Currently no way of distinguishing between empty (default valued) and unet parameters
* https://github.com/AIDASoft/podio/pull/580
* Make `getParameter` return a `std::optional<T>` and have a way to differentiate.
* Do the same for collections?
    * Not completely straight forward using a `std::optional`, because we return by `const&`
* Use references in `optional`? E.g. `boost::optional` would support this
    * Could also use vectors that can be checked for emptyness
    
### Store GenericParameters as pairs of vectors
* [ ] Open issue


### Frame serialization / deserialization
* https://github.com/AIDASoft/podio/issues/565
* Not part of v1.0
* Proposal from D. Lawrence: https://github.com/AIDASoft/podio/pull/579

## EDM4hep
* https://github.com/key4hep/EDM4hep/pulls
* https://github.com/key4hep/EDM4hep/issues
* https://github.com/orgs/key4hep/projects/5 

### Merged PRs
* Improve Doxygen configuration
    - Include only what is necessary and keep dependencies out 
    - https://github.com/key4hep/EDM4hep/pull/289 
* Make sure to give the `EDM4hep::utils` target a more discernible library name
    * https://github.com/key4hep/EDM4hep/pull/295

### Covariance matrix components
- https://github.com/key4hep/EDM4hep/pull/284
- https://github.com/key4hep/EDM4hep/pull/287
- Introduce helper functionality to hide storage details and make access using enums
- Some downstream breakages
- Now with common functionality in separate `ipp` file that is included in `ExtraCode`
- How does this interact with `RDataFrame` and the `std::array` handling?
    - [ ] Need to check
- Are the "indices" interchangeable? Yes, the symmetry of the covariance is handled correctly.

### Reversal of direction of some relations
- https://github.com/key4hep/EDM4hep/pull/268
- See above and presentation

## Converter & MarlinWrapper


## AoB


## Next meeting:
* May 07, 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:50 → 09:51
      Discussion 1m
      Speaker: Dr All