Skip to content

Schedule B-tagging on jets in GNNVertexFitterAlgCfg; Update algorithm in GNNVertexFitterTool

As suggested by @dguest, the easiest solution for the time being to fix the GNNVertexFitterAlg is to avoid the BTagging object entirely. This MR configures GN2 to run directly on the jets, and then adjusts the GNNVertexFitterAlg to read the decorations from the jets rather than the BTagging object.

This also implements several changes to the algorithm used in GNNVertexFitterTool:

  • Removes the selections on the vertices by default. Since these may be an analysis-specific choice, it makes more sense to apply any vertex-level selections downstream. The selection on maxChi2 is kept though to avoid very poorly fitted vertices.
  • Removes the vertex with the largest number of primary tracks, unless requested in the config with includePrimaryVertex. This aligns with the vertex finding definition used in puma.
  • Decorates vertices with the number of heavy-flavour tracks in the vertex (nHFtrk)
  • Adds an option for inclusive vertex fitting (doInclusiveVertexing), where all candidate vertices are merged into one before attempting a fit. Nothing fancy is done here if the fit fails.
  • Adds an option to remove vertices with zero heavy flavour tracks (removeNonHFVertices), once again to align with the puma implementation. This is only set to True by default in the inclusive vertex fitting scenario. In the exclusive case such vertices can be filtered downstream using nHFtrk.

The FTAGX derivation kernels are also updated to run two instances of the algorithm, one exclusive and one inclusive. There are then two output containers, GNNVertices and InclusiveGNNVertices for the two approaches. This could potentially be useful downstream, in particular for comparing to other vertexing approaches being studied.

Note that the GNN vertex fitting is left off by default to still not introduce any issues in DAOD productions. To turn it on, one needs to set

--preExec "flags.BTagging.GNNVertexFitter = True"

cc @bdong, @svanstro, @lmcelhin, @lapereir, @jmwagner

Edited by Jackson Carl Burzynski

Merge request reports