Skip to content

23 linkage between low level and high level reco objects#81

Open
mt82 wants to merge 23 commits intomainfrom
23-linkage-between-low-level-and-high-level-reco-objects
Open

23 linkage between low level and high level reco objects#81
mt82 wants to merge 23 commits intomainfrom
23-linkage-between-low-level-and-high-level-reco-objects

Conversation

@mt82
Copy link
Copy Markdown
Member

@mt82 mt82 commented Mar 23, 2026

Summary

This implements the reconstructed particle–lower-level object linkage as described in the architecture sketch:
https://github.com/DUNE/duneanaobj/wiki/Reco-Particle--%E2%80%90--Lower-object-architecture-sketch

Changes

  • Added two identifier classes:
    • SRRecoParticleID to identify a reconstructed particle
    • SRRecoBaseID to identify a reconstructed low-level object
  • Introduced a common base class for reconstructed objects: SRRecoObjBase.
    All reconstructed object classes will inherit from this base.
  • Extended:
    • SRRecoParticle to hold an SRRecoParticleID
    • SRRecoObjBase to hold an SRRecoBaseID
      This establishes a bidirectional link between reconstructed particles and low-level reconstructed objects.
  • Added helper functions to retrieve:
    • SRRecoParticle instances from an SRRecoParticleID
    • SRRecoObjBase instances from an SRRecoBaseID

@mt82 mt82 requested a review from chenel March 23, 2026 14:42
@mt82 mt82 self-assigned this Mar 23, 2026
@mt82 mt82 linked an issue Mar 23, 2026 that may be closed by this pull request
Copy link
Copy Markdown
Collaborator

@chenel chenel left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is amazing. Thank you so much for following it through!

My only real comment that you'll see below is I think we want a state-checking method for the ...ID classes that encapsulates the logic checking whether they contain a valid value. I've implemented it in suggestions as an operator bool() overload, but we can discuss if IsValid() (or similar) would be better.

In order to actually merge this, I think we would want to have a paired ND_CAFMaker PR where we actually fill these fields in, so that we can be at least somewhat sure it does something sensible. Up to you whether you want to take a stab at that, or try to recruit someone else 😄

Comment thread duneanaobj/StandardRecord/SRRecoObjBase.h Outdated
Comment thread duneanaobj/StandardRecord/SREnums.h
Comment thread duneanaobj/StandardRecord/SREnums.h
Comment thread duneanaobj/StandardRecord/Navigate.ixx Outdated
Comment thread duneanaobj/StandardRecord/Navigate.ixx Outdated
@wyjang-uta
Copy link
Copy Markdown
Member

Thank you for the contribution @mt82 and a review, @chenel !

@mt82 Please update the commits based on the reviewer's feedback. Once the requested improvements are complete, we will proceed with merging this for the next release.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Linkage between 'low-level' and 'high-level' reco objects

3 participants