Help us make Indico better by taking this survey! Aidez-nous à améliorer Indico en répondant à ce sondage !

EDM4hep Discussion

Europe/Zurich
Zoom

Zoom

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

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

Date: May 07, 2024
Indico: https://indico.cern.ch/event/1413652/

Connected: Tao, Sun, Andre, Jacopo, Pere, Thomas, Yufeng, Leonhard, Swathi, Brieuc, Sangyun, Graeme, Mateusz, Juraj, Benedikt, Frank

Apologies:

## Introduction and General Points

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

### FCCAnalyses license
- Apache2 (planned)
- ROOT is GPL (**with MathMore**), so once FCCAnalyses is compiled it effectively also becomes GPL.
    - Under discussion with CERN OSPO
    - GSL is the main problem
    - Nobody really knows what the legal situation is
- FCC code should be as permissive as possible
    - Make clear statement about what the code that we write is intended to do
    - Distribution might be GPL, but code should be Apache2 (or comparable)
- ATLAS and CMS were in a very similar situation and decided their code is Apache2, even if the distribution is de facto GPL
- Other GPL code of note:
    - ILCsoft
    - FastJet
    
## Podio
* https://github.com/AIDASoft/podio/pulls
* https://github.com/AIDASoft/podio/issues
* https://github.com/orgs/AIDASoft/projects/2/views/1

### Merged PRs
* CI: use different dev4 stack
    * https://github.com/AIDASoft/podio/pull/591
* Switch to more recent compilers for sanitizer workflows
    * https://github.com/AIDASoft/podio/pull/568
    
### RDataSource for podio
* https://github.com/AIDASoft/podio/pull/593
* Possible to have a generice `RDataSource` for all generated EDMs
* See [presentation](https://indico.cern.ch/event/1387419/contributions/5943467/attachments/2851061/4985208/podio%20(ROOT)DataSource.pdf) from Juraj for early results
    * Large memory and runtime overhead (x2 wrt "normal" FCCAnalyses) for simple cases (expected?)
    * Memory only increasing, what is going on?
        * To be understood. Could be ROOT baskets? Leak in podio?
    
### Pythonizations for collections
- https://github.com/AIDASoft/podio/pull/570
- Effectively done
    - `dev3` (root master) workflows failing due to cppyy issue
    - https://github.com/wlav/cppyy/issues/230 (also https://github.com/root-project/root/issues/15375)
    - Fixed on CPyCppyy on master
    - [ ] How to proceed? -> See if CPyCppyy fix can be included in ROOT
    
### Reader & Writer interface
* https://github.com/AIDASoft/podio/pull/522
* Effectively done
* One CI workflow (`clang-12` based failing), see [this comment](https://github.com/AIDASoft/podio/pull/522#issuecomment-2070762263)
    * [ ] Upgrade CI?
    * [ ] Check for `clang-15`
    
### 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
    
### Store GenericParameters as pairs of vectors
* https://github.com/AIDASoft/podio/issues/590

### Leak in SIO Frame reading
* https://github.com/AIDASoft/podio/issues/594

### 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


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

### Merged PRs
* Reverse the direction of the ParticleID relation(s)
    * https://github.com/key4hep/EDM4hep/pull/268
* Covariance matrix components
    * https://github.com/key4hep/EDM4hep/pull/287
* Fix datatypes table formatting and typos
    * https://github.com/key4hep/EDM4hep/pull/297

* Status of nightlies?
    * **YES**
    
### Reconstructed TOF 
* https://github.com/key4hep/EDM4hep/pull/299
* Do we need the 5 different path lengths and expected times for the 5 particle species?
    * Different track length / time for different species
    * Could create new tracks for the different species and link to that
* Refitting (and storing) the track might be prohibitive due to size (and information duplication)
    * No clear best solution to this yet. Needs some further discussion
    
## Converter & MarlinWrapper

* Enable collection renaming in standalone conversion
    * https://github.com/key4hep/k4EDM4hep2LcioConv/pull/61

* Possible issue in k4Clue because some conversions are not happening correctly
    * Problem happens before in CLIC reconstruction
    * Need to investigate where problem acutally is
    
## AoB

- Discuss MCParticle structure next meeting. Please read up on https://github.com/key4hep/EDM4hep/issues/208

## Next meeting:
* May 21, 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