Skip to content

FlavourTagging: New inclusive tagger

@mfuehrin @vchobano @wendelj This MR implements a new inclusive tagging model that is documented in LHCb-PAPER-2025-024 "Inclusive B-meson flavour tagging algorithm at LHCb"

  • Implements the architecture of the new inclusive tagger, which requires two major changes to TTTagging:
    1. The new inclusive tagger reuses tagging decisions of other single taggers (such a recycling tagger is marked "deferred" and runs last and receives a list of previous tag decisions, mistags, and tagger types (LHCb::Tagger))
      • This is controlled by a new boolean property of the ITagger interface m_deferred_tagger
    2. The new algorithm requires a looser track selection than what is currently implemented in BTaggingTool.h for increased tagging power
      • Track selections applied by TupleToolTagging (defined my GaudiProperties in BTaggingTool.h) are therefore loosened
        • MinIPPU = 0 (was 3)
        • MinDistPhi = 0 (was 0.005)
        • MinTheta = 0 (was 0.012)
        • MaxPT = 100000 (was 10)
      • To not break existing taggers, all taggers are marked as legacy taggers by default and receive the same inputs as always.
        • Controlled by another new boolean property in ITagger m_legacySelectionPreAutumn2025 which is true by default.
        • When set to false, the track input is TaggingIFTTracks/Particles instead of TaggingParticles/Particles and the new looser selection is applied. Only two taggers currently use this: The DevelopmentTagger and the newest version of the inclusive tagger implemented here. Therefore, the TagPartsFeatures of the Development Tagger can in the future be used to train other models if needed.
      • TaggingIFTTracks particle location is removed. It is no longer needed, as it creates inconsistencies in tuple processing, and for users of the IFT. TaggingIFTTracks stays, but it is set by DaVinci as configured by the FT developer.

To achieve perfect agreement between the training data and the data entering the tagger now, we load two particle containers and keep the two selections, the legacy selection and the new selection, separate. We validate the three taggers trained on B02JpsiK*, B+2JpsiK+, and Bs2JpsiPhi by comparing the output of the reference implementation in Python with the decisions generated by DaVinci, which show perfect agreement within numerical imprecision.

TODO:

Edited by Vukan Jevtic

Merge request reports

Loading