Skip to content

Thor functors for MCTrackInfo

Jiahui Zhuo requested to merge jzhuo_FunTuple_MCRec into master

From the issue 283

Replacing the old MC TupleTool Reconstructed (MCTupleToolReconstructed.cpp), reimplementing the calculation of MCReconstructed (based on reconstructed particle and truth matching associations) and MCReconstructible (based on true MC track information), also add new functors and interfaces in order to access directly the reconstructed track and the true track information.

This MR is used on DaVinci!707 (merged).

Due to the lack of MCTrackInfo in DST, this only works with XDIGI/DIGI/LDST, but the DST support must be implemented (Maybe through proto particle).

Example: see the full example in here

from PyConf.dataflow import force_location
from DaVinci.mc_trackinfo import MC_TrackInfo, MC_Track

MCParticles = force_location("/Event/MC/Particles")
MC_TRINFO = MC_TrackInfo(MCParticles)
MC_TRACK  = MC_Track(MCParticles)

variables_B = FunctorCollection({
    "HAST"        : MC_TRINFO.HasT   ,
    "HASTT"       : MC_TRINFO.HasUT  ,
    "HASVELO"     : MC_TRINFO.HasVelo,
    "ACCT"        : MC_TRINFO.AccT   ,
    "ACCTT"       : MC_TRINFO.AccUT  ,
    "ACCVELO"     : MC_TRINFO.AccVelo,
    "REC_HAST"    : MC_TRACK.HasT    ,
    "REC_HASTT"   : MC_TRACK.HasUT   ,
    "REC_HASVELO" : MC_TRACK.HasVelo ,
    "RECONSTRUCTED"   : MC_TRACK.Reconstructed   ,
    "RECONSTRUCTIBLE" : MC_TRINFO.Reconstructible,
})

To-do:

  • MC Particle -> MC TrackInfo
  • MC Particle -> Reconstructed Track
  • MC Particle -> MC Reconstructed (new implementation)
  • MC Particle -> MC Reconstructible (new implementation)
  • Particle -> MC TrackInfo
  • Particle -> MC Reconstructed/Reconstructible
  • MAP_INPUT chain: Particle -> MC Particle -> This tool (Done by @amathad, Thanks! see)
  • DST support (only Hlt2 process, for Spruce support please see Moore#440 (comment 5651141))
  • Adding new functors for track
  • Optimization: only run algorithm on truth-matched MC particles

Discussions:

I'm afraid that DST doesn't have track information about each subdetector, like hasT1, hasT2, and hasT3 for now.

Actually, only Sprucing line doesn't persist MCTrackInfo, a Moore issue is created, thanks @ldufour!

The legacy tools like Reconstructed/Reconstructible may be deprecated, we can process a similar calculation inside of the TrackInfo algorithm and return a new property for it.

Done

@amathad @ldufour @pkoppenb

This MR require LHCb!3640 (merged)

Edited by Jiahui Zhuo

Merge request reports