EDM4hep Discussion

Europe/Zurich
Vidyo

Vidyo

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

Date: September 29, 2020
Indico: https://indico.cern.ch/event/960190/

This is a document for taking notes during EDM4hep meetings.

Connected: Weidong, Jiaheng, Wenxing, Tao, Andre, Clement, Frank, Sang Hyun, Thomas, Valentin, Placido

Apologies: Benedikt, Gerri

## Introduction and General Points


## Progress and Discussion


### Spack installation

* Updated CVMFS installation:
    * /cvmfs/sw.hsf.org/key4hep/setup.sh
    * Also used for fcc tutorial
    * Can this repository be part of the defaults?
* bundle package: use "rolling release model" and tag by date, or pin versions

* Added more python packages to key4hep-stack
* Spack as a developer tool:
    * PR:

### Nightly Builds and CI

* Entire build CI set up by Joseph
    * docker image: key4hep-container on dockerhub
    * http://dev1.bitquant.com.hk:8011/
    * add tests?


## Podio

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

* Fixes for python and root 6.22, update CI:
    * https://github.com/AIDASoft/podio/pull/141
    * Merged

* Fix meta data handling
    * https://github.com/AIDASoft/podio/pull/133
    * Should go before the SIO PR, this PR refactors the tests

#### Merged

* Fix a possible nullptr access in the Writers
    * https://github.com/AIDASoft/podio/pull/128
* Make internal maps non-mutable
    * https://github.com/AIDASoft/podio/pull/127
* Remove python unittests from installed files
    * https://github.com/AIDASoft/podio/pull/126
* Make CollectionIDTable use a std::mutex
    * https://github.com/AIDASoft/podio/pull/125
    

### Using SIO as backend

* Frank and Thomas looking into it
    * https://github.com/AIDASoft/podio/pull/130
    * IO and tests working
    * Small differences in behaviour of ROOTReader/Writer and SIOReader/Writer
    * Split test datamodel into small libraries separating SIO/ROOT/Datamodel?
        * How to load podioSioIO on demand?
        * standalone GaudiPluginManager
        * https://github.com/hegner/PM4hep
    * Add option to make RootIO optional on build/cmake time
    * Cmake: better isolation, reduce number of IFs
    * CMake functions to created libraries for different backends
        * Exercised with EDM4hep, make a PR with the changes
        * podio is backward compatible

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

### "event class" in podio

* Currently being perceived

### SOLVED: Non-const getter for collection
* original problem (in delphes plugin) has been worked around
* discussion about need for non-const access to collections still ongoing
* little bit related to "event class"
* use case "event overlay"
    * alternatively copy everything into new collection

### Multi-Threading

* More than one event "in flight" should be possible
* TM: root reader seems to be capable, root writer maybe not
* FG: easier to handle with "event class"
*

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

* Conversion from LCIO to EDM4HEP is almost completed, but we need more testing for the three associations:
    * MCRecoParticleAssociation
    * MCRecoCaloAssociation
    * MCRecoTrackerAssociation
* LCIOInput, an algorithm wrapper in Gaudi/K4FWCore
    * https://github.com/ihep-sft-group/LCIOInput
* K4LCIOReader:
    * https://github.com/ihep-sft-group/K4LCIOReader
* Used to reconstruct clusters with Pandora
    * Publish Pandora Interface on github

* working on spack recipe for CEPC software
    * will report in next meeting

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

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


### PRs

* Fix delphes EDM4Hep plugin
    * https://github.com/key4hep/EDM4hep/pull/79
    * Problem with the CI
        * podio taken from the wrong place at Runtime?
        * Need to set LD_LIBRARY_PATH to point to new podio
    * Ready for review
    * Add a mention of the example to the key4hep docs:
        * https://github.com/key4hep/key4hep-doc

### Release 1.0

* Need:
    * ~~Plugin~~
    * ~~Eventheader~~
    * ~~Meta Data (Event / Run Parameters)~~

## AOB

### Relevant Meetings

* Multi-Threaded Metadata Handling: Athena
    * https://indico.cern.ch/event/958266/
    * Wednesday September 30 16:00


* An Introduction to Modern CMake (HSF Software Developer Tools & Packaging Working Group)
    * https://indico.cern.ch/event/956862/
    * Wednesday September 30 17:00


### Update on postdoctoral grant from Hong Kong Innovation Technology Fund for HEP software development

* Possibility for founding of up-to 4 people
    * Grad students, post-docs
* Discussing with Graeme/HSF
* RnD for data analysis tools and system integration to study electro-weak meta stability
    * Looking for high performance components for data analysis

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

* October 13, 2020

 

 

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))
    • 09:25 10:00
      Discussion 35m
      Speaker: Dr All