EDM4hep Discussion
Zoom
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