EDM4hep Discussion

→ Europe/Zurich
Zoom

Zoom

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

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

Date: Mar 12, 2024
Indico: https://indico.cern.ch/event/1393283/

Connected: Andre, Mateusz, Swathi, Pere, Leonhard, Jacopo, Juan, Tao, Joseph, Thomas, Juraj, Sanghyun, Frank, Gerri

Apologies: Brieuc, Benedikt

## Introduction and General Points

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

- [ ] Clarify whether there is a WLCG/HSF workshop preceeding CHEP
    
## Progress and discussion

### ParticleID handling in EDM4hep
- See presentation
- Use Gaudi TES as cache for multimap (reco -> PID) or PIDHandler?
- [ ] Write utility PIDHandler prototype to see how things work / perform

    
#### Things still left to fix
- CEPCSW has been taken out of the nightlies since we were aware of quite a few things that break and that we couldn't fix in the two days we were working on the rest
    - https://github.com/cepc/CEPCSW/issues/263
    - Try to get this back into nightlies as quickly as possible
- podio schema evolution script does not detect that `Vector3f` -> `Vector3d` is not supported
    - https://github.com/AIDASoft/podio/issues/563
    
### More things (re)discovered during sprint
- Usage differences of `float` vs `double` wrt LCIO: https://github.com/key4hep/EDM4hep/issues/265
- Subtle differences in integer type vs LCIO: https://github.com/key4hep/EDM4hep/issues/271
- Dedicated covariance matrix components (ala EDM4eic): https://github.com/key4hep/EDM4hep/issues/154 and https://github.com/key4hep/EDM4hep/issues/262
    - [ ] Give it a try
- Time field in `SimCalorimeterHit`: https://github.com/key4hep/EDM4hep/issues/147
    - [ ] No plans to add this. Close
    
## Data translation in EDM4hep from pre 1.0 to 1.0
- See presentation
- Only has to be done for **one** release before 1.0 and **one** release afterwards
- Possible in one step?
    - E.g. read leaves and recompose in new format
    - Could generate "introspection" functionality
        - Yes, but will be a lot of work and somewhat backend dependent
    - Two step process is backend indpendent

## Podio
* https://github.com/AIDASoft/podio/pulls
* https://github.com/AIDASoft/podio/issues
* https://github.com/orgs/AIDASoft/projects/2/views/1


### Open PRs for v1.0
- RNTuple API update integration: https://github.com/AIDASoft/podio/pull/547
    - Stabilized again in ROOT, now can proceed to fix it on our end 
    - Writing seems to work, but buffers cannot yet be read back
    
### Frame serialization / deserialization
- https://github.com/AIDASoft/podio/issues/565
- Not part of v1.0

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

### Reversal of direction of some relations
- https://github.com/key4hep/EDM4hep/pull/268
- `ParticleID` should point to `ReconstructedParticle`
- Remove `ParticleID` from `Cluster` (unused in ILD standard reconstruction)
    - [ ] Remove in LCIO as well?
    - This is a sort of almost requirement for the reversal, as otherwise the `ParticleID` needs two relations, one to the `Cluster` and one to the `ReconstructedParticle`
    - Brieuc reported a use case for the `Cluster`
        - For now solved with using the `type` member and the `shapeParameters`
- Related PRs:
    - Make the converter deal with this: https://github.com/key4hep/k4EDM4hep2LcioConv/pull/51
    - Fix usage in k4SimDelphes: https://github.com/key4hep/k4SimDelphes/pull/117
    
### Covariance matrix components
- https://github.com/key4hep/EDM4hep/pull/284
- EIC proposal may not be completely portable (padding between members is not defined by standard). Things should work on "sane platforms".
    - Existing already in EDM4hep (e.g. `VectorNx`)
    - [ ] Add test to catch this early in case we ever have a platform where this is not working as expected.
- Interface requests:
    - `operator()(int, int)` double index access (like EIC)
- Part of the motivation is to remove `std::array` because that doesn't work with RDataFrame nicely yet
    - [ ] Follow up with ROOT again
    - Only for `Describe` or for general usage.
- [ ] Port functionality

## Converter & MarlinWrapper

- Enable compiler warnings and fix them: https://github.com/key4hep/k4EDM4hep2LcioConv/pull/53
    - Switch to non-deprecated overloads: https://github.com/key4hep/k4MarlinWrapper/pull/174
- Refactor EDM4hep -> LCIO conversion for more consistency between conversion directions: https://github.com/key4hep/k4EDM4hep2LcioConv/pull/54
    - Switch to new functionality:
    - https://github.com/key4hep/k4MarlinWrapper/pull/176
    - ParticleID handling builds on top of this

## AoB

- Technical student Jacopo started to work on EDM4hep data from LEP (starting with Aleph)

## Next meeting:
* Mar 26, 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:10 → 09:25
      ParticleID handling update 15m
      Speaker: Thomas Madlener (Deutsches Elektronen-Synchrotron (DESY))
    • 09:50 → 09:51
      Discussion 1m
      Speaker: Dr All