Skip to content

WIP: Update Track Labelling

Samuel Van Stroud requested to merge svanstro/updated-track-labelling into freshstart

As discussed in meetings [e.g. here], the current track labelling in the PerformanceFramework could be improved:

  • Definition of a B hadron track is not harmonised with tracking CP (who use this tool).
  • More granularity in track categories will allow for more advanced studies (e.g. looking at "Fake B" tracks or "Geant B" tracks).

Changes

  • The old v_jet_trk_orig branch (filled in BHadronBranches.cxx) has been renamed to v_jet_trk_orig_old. Keeping the information for now as it contains double b-tagging origin support which is not included in the new labels.
  • Add a copy of the InDetTrackTruthOriginTool from master. Versions in the current analysis releases don't contain recent updates which improve the "From B" labels. These files (btagAnalysis/src/components/IInDetTrackTruthOriginTool.h etc) can be easily removed in the future when using r22 analysis releases.
  • Add two branches in TrackBranches.cxx, truth_origin and truth_label. truth_origin saves directly the output from the InDetTrackTruthOriginTool, which is a bitwise flag giving inclusive labels for all the categories defined in btagAnalysis/src/components/InDetTrackTruthOriginDefs.h. As discussed, more useful for FTAG will be exclusive labels which are generated by the TrackBranches::get_track_label(...) function, which using a three digit scheme suggested by Valerio (see below).
  • Because I had problems running the BTagTrackAugmenter (previously noted here), I downgraded the Athena release from 21.2.87.0 to 21.2.38.0, and run with some modified jobOptions *_nom.py borrowed from @srettie (I also had to modify the accessors BTagTrackAccessors.hh). Any ideas on how to fix this and run with the standard setup.sh script and jobOptions.py please let me know!
Three digit exclusive track labelling scheme

One possible proposal for me for an exclusive labelling would be the following. I use a 3 digit code for easy regexp

0:  pu/fake : no match to a truth particle whatsoever of TMP<0.xx(*) with 0.xx a very low number
1:  good geant:  TMP>0.75(**) && isGeant
2:  fake geant :  TMP<0.75 && isGeant 
3:  good lepton: isELE/MUON && !isGeant && TMP>0.75 
4:  fake lepton : isELE/MUON  && !isGeant && TMP<0.75
5:  good hadron: !isELE/MUON && !isGeant && TMP>0.75 
6:  fake hadron : !isELE/MUON  && !isGeant && TMP<0.75

+10:  if the matched truth particle can be traced back to a weakly decaying D-hadron 
+100:  if the matched truth particle can be traced back to a weakly decaying B-hadron 

so a well matched semileptonic D hadron decay from a B will be: 113.

Edited by Samuel Van Stroud

Merge request reports