EDM4hep Discussion
Vidyo
EDM4hep Live Notes
==================
Date: November 24, 2020
Indico: https://indico.cern.ch/event/978067/
This is a document for taking notes during EDM4hep meetings.
Connected: Tao, Wenxing, Andre, Sang Hyun, Thomas, Clement, Frank, Graeme, Valentin, Joseph, Benedikt, Placido, Pere, Gerri
Apologies:
## Introduction and General Points
## Progress and Discussion
### HSF podio Presentation
* This afternoon, 17:06 CET
* https://indico.cern.ch/event/941278/contributions/4084844/
## Podio
### Issues
#### CollectionIterator does not fully satisfy iterator concept
* https://github.com/AIDASoft/podio/issues/150
* For const collections, would be useful, e.g. using std::find on the collection
#### Idea: True reference collections
* https://github.com/AIDASoft/podio/issues/146
* remove indirection
* to test if there are performance indications
* FG: use case could be subset collections
* FG: Remove difference between reference collections and non-reference collections
* TM: not clear if collection types can be the same
* Would be very useful
* otherwise functions need to be templated; functions based on begin/end to iterators
### PRs
* https://github.com/AIDASoft/podio/pulls
#### CMake handle standard args
* https://github.com/AIDASoft/podio/pull/149
* Review: Andre
#### Disable collection operator=
* https://github.com/AIDASoft/podio/pull/154
* Review: Benedikt
#### Make EventStore non-copyable
* https://github.com/AIDASoft/podio/pull/152
* failing test? spurious? consistent?
### c++ concepts
* BH: add compile time checks for class behaviours: e.g., movable
### Using SIO as backend
* Merged
### 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?
* Related to use in RDataFrame
* Encode more information in the _relation_ branch names?
### Multi-Threading
See minutes of https://indico.cern.ch/event/969468/
--> Open issue(s) for further discussion
* Thomas and Benedikt discussing and started to work, nothing to report yet
#### "event class" in podio
* Currently being perceived
### Meta Data
#### Usage of "metadata" for user defined data
* need to check if current implementation addresses all use cases
* need test use-cases
### Issues following MetaData Developments
* cannot write out event data previously read from file
* Issue: https://github.com/AIDASoft/podio/issues/103
* Test: https://github.com/AIDASoft/podio/pull/102
* TM: have fix, but break framework core handling of collections
* there seems to be a fix in the Gaudi ROOTWriter in FCC-EDM !?
* historical reason, fixes and developments should be back ported to PODIO
* ...
#### Writing second file with another tree
* https://github.com/key4hep/K4FWCore/issues/10
* this problem only happens in the GAUDI framework
* if user tries to write an additional ROOT file
* to be addressed
### EventStore
### Schema Evolution
- Version for object descriptions, etc.
- Open issue: https://github.com/AIDASoft/podio/issues/86
### Features
* Subset collections?
## LCIOConverters
* k4LCIOReader:
* https://github.com/key4hep/k4LCIOReader
* Moved k4LCIOReader code to key4hep project
## EDM4hep
https://github.com/key4hep/EDM4hep/pulls
### Issues
#### k4FWCore: cannot read collections back
* https://github.com/key4hep/k4FWCore/issues/27
### DD4hep output plugin
--> Moving to DD4hep
#### Testing the ddg4 plugin of edm4hep
* LCG stack not working?
* https://github.com/AIDASoft/DD4hep/pull/740
* try basing on dev3/dev4, hsf installation
### Repository is getting too big
* github pages branch is getting large
* Can they be created on the fly?
* Use a different host for the website
### Tracker Hit
* Q: Tracker hit input to tracking algorithms?
* A: In LCIO different traker hits: Planar and Cylindrical using inheritance. Still needs to be adressed how to do this in EDM4hep.
* Q: Is inheritance needed?
* Q: What to use for Driftchambers?
* Open issue:
### Need review of EDM4hepDelphes output
* Output is not stored if no tracks or towers created (?)
* Allow also other types to be part of the list
* Allow construction in a more general way (VV)
* Need to assume there is a complete list of reconstructed particles?
* Relations:
* FCCSW: Issue with more than one RecoParticle pointing to one MCParticle
* In LCIO to Delphes, conversion happens later than in edm4hep, maybe delphes does de-duplication?
* TODO: open issue in edm4hep with reproducer (VV)
--> Moving to separate repository
#### Reworking output handling
- TM: better address edge cases
- TM + CH: FCC cases, not sure if delphes or output
- https://github.com/key4hep/k4SimDelphes/pull/5
- TM: How and what to test?
-
### PRs
https://github.com/key4hep/EDM4hep/pulls/
### Release 1.0
* Need:
* ~~Plugin~~
* ~~Eventheader~~
* ~~Meta Data (Event / Run Parameters)~~
## AOB
### Generator infrastructure in FCCSW moved to EDM4hep
* VV: show at next key4hep
### Framework integration of k4SimDelphes
* On hold until delphes output reworked
* Started with updating the Gaudi documentation
* New cmake in Gaudi v35
### Dual Read-out calorimeter for FCC
* Special data structure used for that simulation
* Tried to use edm4hep, some issues
* Present in a future meeting
### Conditions handling in Belle2
* Benedikt, or Martin Ritter
### Feedback from FCC tutorial for snowmass
* Common question: What are the different branches in the root file?
* ``uproot`` was also used to access the root file
* Basically re-implemented event store
* Associations
* Try to get this into the, e.g., podio repository
### Next meeting:
* December 8, 2020