Remove `ReconstructedParticle::PDG` member?
- Dominant language
- C++
- Stars
- 4
- Forks
- 7
- Avg merge
- 1d 8h
- Merged PRs (30d)
- 3
Description
**Is your feature request related to a problem? Please describe.**
After some discussion in recent Software & Computing meetings, there may be some interest in removing the scalar member `PDG` from `ReconstructedParticle`, which in EICrecon is presently used for true PDG. Some points from these discussions:
- `MCRecoParticleAssociation::getSim::getPDG` can be used to provide true PDG instead
- not every out `ReconstructedParticle` object will be found in a `MCRecoParticleAssociation`, do those have a true PDG?
- what should we do about members which may depend on PDG, such as `ReconstructedParticle::mass`? Or are these members filled without knowledge of the true PDG?
- Removing member `PDG` brings us closer to EDM4hep model; it would be nice to switch to `edm4hep::ReconstructedParticle`, however, relations such as vertex, track, and cluster are to the EDM4eic objects, so this does not seem practical at this time
- Removing member `PDG` will break:
- Juggler
- Any EICrecon reconstruction algorithms which use it
- User analysis code
- `ReconstructedParticle::getParticleIDUsed` and `ReconstructedParticle::getParticleIDs` will be used for PID objects, which in turn contain the PDG value(s) from PID
Let's use this Github issue to continue the discussion and eventually converge on a path forward for the future.
@sly2j @Chao1009 @wdconinc @mdiefent
Contributor guide
No contributing guide indexed for this repository
Research direction
Start by reviewing the ReconstructedParticle model and the MCRecoParticleAssociation::getSim::getPDG path. Trace how PDG, mass, PID objects, and relations are used by Juggler, reconstruction algorithms, and analysis code. Done means the project has resolved whether PDG should be removed and documented the migration and compatibility plan.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- data
- Issue type
- Refactor
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100