eic / eic/EDM4eic

Remove `ReconstructedParticle::PDG` member?

Open
#34 0 comments 1 reaction 0 assignees View on GitHub
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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.