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