EDM4hep Discussion

→ Europe/Zurich
Zoom

Zoom

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

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

Date: June 1, 2021
Indico: https://indico.cern.ch/event/1044074/
This is a document for taking notes during EDM4hep meetings.

Connected: Benedikt, Andre, Thomas, Tao, Zou, Wenxing, Frank, Clement, Gerri, Valentin, Juraj, Graeme, Sanghyun, Joseph

Apologies: Placido

## Introduction and General Points

* vCHEP
    * Paper re-submission deadline: June 04 (Friday)

* EPS
https://www.eps-hep2021.eu/programme/
    * Abstract submitted

## Progress and Discussion

## Podio

###  Support for multiple input sources in parallel
* https://github.com/AIDASoft/podio/issues/190
* Please read and maybe comment
* Presentation by Benedikt at next meeting

### Benchmarking

* Discuss how to integrate with validation in Key4hep

### Issues/PRs

* Fixed width integer types
    * https://github.com/key4hep/EDM4hep/issues/112
    * Needs a bit of adaptation for code generation
    * Merged
    * Move to fixed width types in edm4hep?
        * Makes sense and "doesn't hurt us".
    * Doubles/floats? Are they are guaranteed to be fixed size?
        * standard defines only minimum width
        * `<cstdint>` available for floats?
        

* Root performance fixes
    * https://github.com/AIDASoft/podio/pull/180
    * Merged

* Number of fixes [WIP]:
    * https://github.com/AIDASoft/podio/pull/177
    * Pulled apart into smaller PRs:
        * https://github.com/AIDASoft/podio/pull/193
            * Not working with ROOT 6.20/04 and older
            * New (stable) pyroot in 6.22 (to be confirmed?)
            * Merged
            * Propagation of "const" to python? `Const` classes are there only for making things const in python (or were in the past)
            * Check if this is still necessary.
        * https://github.com/AIDASoft/podio/pull/192
            * Merged
            
    * Reference collections not yet "ported". 

#### Constness in python
* Currently solved by `Const` classes
* Also useful for `auto` type deduction, where `const auto` can be necessary otherwise to get something fully correct
* LCIO solved with flag in collections
* Do we need python writing?
    * probably yes, for writing ntuple like data

#### Make a tag after all the warnings are fixed

#### Heap-use-after-free

* https://github.com/AIDASoft/podio/issues/174
* Not a problem in frameworks, but if collections used outside of them
* Deep inside the memory management of podio, so not easy to fix
* Happens more often with clang than with gcc, but could be compiler options.
    * Flagged by address-sanitizer
* Maybe requires deep changes. Change for reference counting of object classes.

#### c++ concepts
* BH: add compile time checks for class behaviours: e.g., movable

#### issue w/ ROOT and (vectors of) non-copyable collections
* happens in ROOT 6.22 
* PM: there is a patch available in LCG repository
    * ROOT team is working on a general solution

#### What are the different branches in the root file?
* https://github.com/AIDASoft/podio/issues/169
* Encode more information in the _relation_ branch names?
* Related to use in RDataFrame/RNTupe, directly looking at root file content
* Are branch names an implementation detail?
* backward compatibility "Impossible" (?)

#### Schema Evolution
- https://github.com/AIDASoft/podio/issues/86
- Discussion: https://indico.cern.ch/event/1030566/

#### Multi-Threading

#### "event class" in podio

* Currently being perceived

### PRs
* https://github.com/AIDASoft/podio/pulls

### Meta Data

#### Usage of "metadata" for user defined data
* need to check if current implementation addresses all use cases
* need test use-cases

### EventStore

### Features

* Subset collections?

#### framework ROOTWriter
* Could be refactored to use more standalone things via Gaudi Tools and Services
* Could potentially more easily write `std::vector`s or other "generic" types
    * Ideally put "generic" data types also in standalone podio
    * How to best allow for "extensions" to an EDM? 
    
## LCIOConverters
* https://github.com/key4hep/k4LCIOReader

## EDM4hep
https://github.com/key4hep/EDM4hep/pulls


### MCParticle Endpoint
* https://github.com/key4hep/EDM4hep/issues/113
* Keep podio simple by not allowing getters/setters to access multiple internal states. Use utility functions for this use case, if needed.


### EDM4hep tools
https://github.com/key4hep/EDM4hep-utils

### Issues

## AOB

### Next meeting:

* June 15, 2021

 
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))
    • 10:00 → 10:01
      Discussion 1m
      Speaker: Dr All