EDM4hep Discussion

Europe/Zurich
Zoom

Zoom

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

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

Date: Jun 4, 2024
Indico: https://indico.cern.ch/event/1423788/

Connected: Andre, Yufeng, Sanghyun, Graeme, Valentin, Swathi, Juraj, Pere, Leonhard, Brieuc, Mateusz, Benedikt, Juan, Thomas, Frank

Apologies: Alvaro

## Introduction and General Points

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

### EDM4hep finalization meeting
* Ideally before summer
* In person meeting hard / impossible to decide on a date
* Longer zoom meeting to discuss and finalize
    * Fallback to next meeting in case there is no slot 
    
## Podio
* https://github.com/AIDASoft/podio/pulls
* https://github.com/AIDASoft/podio/issues
* https://github.com/orgs/AIDASoft/projects/2/views/1

### Merged PRs
* Reader & Writer interface
    * https://github.com/AIDASoft/podio/pull/522
* Add ExtraCode declarationFile and implementationFile
    * https://github.com/AIDASoft/podio/pull/601
    
### 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
* [ ] Waiting for some downstream PRs to be merged for transparent switch

### Fix param type determination for python bindings on macOS
* https://github.com/AIDASoft/podio/pull/602
* Issue not reproducible by ROOT team(?)
* Removed automatic determination entirely and replaced it by an easier to read / maintain list of types
* **Ready for review / merge**
    
### Proper install prefix for python bindings
* https://github.com/AIDASoft/podio/pull/599
* **Ready for review / merge**

### Improve generated interface function name to obtain the actual type
* https://github.com/AIDASoft/podio/pull/595
* `getValue` -> `as` (+ deprecation of `getValue`)
```cpp
auto hit = track.getTrackerHits()[0];
hit.as<TrackerHitPlane>();
``` 
* **Ready for review / merge**

### Add a parameter `cloneRelations` for `clone` to be able not to clone the collections
* https://github.com/AIDASoft/podio/pull/609
* Necessary for more flexible cloning that allows to reset relations
* Default value for `cloneRelations` is set to `true` to keep the current behavior
* Add functionality for `Mutable` types to "edit" their one-to-many relations?
    * Is there a use case? No obvious one, implement this when it becomes necessary
* Documentation that clearly shows what is happening

### Add a header file including all collections
* https://github.com/AIDASoft/podio/pull/606
* Generate a header file that includes the full generated datamodel for convenience
* Convenience feature
* [ ] Change name to `edm4hep/edm4hep.h`


### Add more overloads and python bindings for `getName`
* https://github.com/AIDASoft/podio/pull/608
* Add overloads taking a `podio::ObjectID` or any (user facing) object of a podio generated datamodel
    * Naming for these overloads could be `getCollectionName`?
* Use case for ObjectID?
    * Remove the functionality to obtain the name from ObjectID / object
* Finalize again in smaller round to see what is actually needed

### Add documentation for cmake macros
* https://github.com/AIDASoft/podio/pull/607
* Decide offline wheter to split it into two PRs

### Document `Collection` comparison with `Container` named requirement
* https://github.com/AIDASoft/podio/pull/598
* Document how a podio collection behaves wrt to a the [`Container` requirement](https://en.cppreference.com/w/cpp/named_req/Container)
* Including static test to detect when something changes
* **Ready for review**
* Effectively none of the algorithms of the STL should work (as defined by the standard)
    * Not the biggest problem as in practice at least the ones that don't mutate things work
    * Mainly because we are not fulfilling some named requirements for our iterators


### RDataSource for podio
* https://github.com/AIDASoft/podio/pull/593
* Possible to have a generice `RDataSource` for all generated EDMs
* Some comments to be addressed
        
### 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


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

### Merged PRs
* Use `declarationFile` instead of #include in CovMatrix components
    * https://github.com/key4hep/EDM4hep/pull/308

### Update schema diagram to reflect the new ParticleID to ReconstructedParticle relation
* https://github.com/key4hep/EDM4hep/pull/303
* Setting version to v0.99

### Use MurmurHash3 to hash the algorithm name for the algorithm type in ParticleIDMeta
* https://github.com/key4hep/EDM4hep/pull/307
* Needs some work in converter
* MurmurHash3 is a detail of the implementation so we should not expose it
    * [ ] Check if the converter needs this

### Remove the dQ/dx related information from the Track
* https://github.com/key4hep/EDM4hep/pull/311
* Intra datamodel consistency for information

### add GeneratorInformation definition
* https://github.com/key4hep/EDM4hep/pull/310
* As discussed during the last meeting
* Effectively done
* Open discussion for polarization / spin that needs to happen with HepMC authors
    * Outside of the scope of this PR

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

## Next meeting:
* June 18, 09:00

There are minutes attached to this event. Show them.
    • 1
      Introduction
      Speakers: Andre Sailer (CERN), Frank-Dieter Gaede (Deutsches Elektronen-Synchrotron (DE)), Thomas Madlener (Deutsches Elektronen-Synchrotron (DESY))
    • 2
      Discussion
      Speaker: Dr All