Thor functors for MCTrackInfo
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
This MR require LHCb!3640 (merged)