Skip to content

JetHitAssociation: Allow for Phase-2 detector geometry

Christof Sauer requested to merge csauer/athena:trackless-btagging-run4 into main

The "JetHitAssociation" tool encountered issues with missing containers when processing a run-4 dataset. This problem was resolved by updating the configuration of the "PrepDataToxAOD" algorithm and modifying the input container names for the "JetHitAssociation" tool based on the detector's geometry.

I am sharing this initial version of a MR in order to gather feedback, as this marks my first contribution to this framework.

Problem Description:

Our objective is to train a GNN based on ITk hit clusters for the baseline phase-2 geometry of the ATLAS detector. We are starting with simulated hits for single-lepton ttbar events. Ultimately, we aim to have an AOD file containing the hits (within a specific radius with respect to the jet axis). For Run-2/3, the hits can be saved after the reconstruction using the following command:

Reco_tf.py --preExec "flags.BTagging.Trackless = True; flags.BTagging.Trackless_dR=0.2; flags.BTagging.Trackless_JetPtMin=20'" …

This process works well with pre HL-LHC configurations. The container that should be present in the AOD after the reconstruction are

JetAssociatedPixelClusters and JetAssociatedSCTClusters,

which contain the ID and SCT hits (associated to the jet), respectively. However, this process no longer works when a Run-4 dataset is used, as the ID and SCT are replaced by the ITk (pixels and strips).

Proposed Solution:

At present, the modifications to the existing code are minimal and are intended to serve as a starting point for further suggestions and improvements.

In order to achieve the desired result (i.e., JetAssociatedPixel/SCTClusters being present in the AOD), the following two modifications are necessary to the jet-hit association configuration file [1]:

  1. Import the correct config of the inner detector depending on the detector geometry to configure the PrepDataToxAOD algorithm(s),
  2. Change input containers to the HitAssociation Algorithm (PixelClusters, SCT_Clusters or ITkStripClusters, ITkStripClusters).

I have tested the changes in this MR, and it produces the desired results (I also tested backwards compatibility using a run-3 dataset); however, further modifications are needed as leaving the names of the output containers unchanged introduces inconsistencies as, e.g., the SCT does not exist anymore in case of the phase 2 geometry – maybe it would be an idea to sacrifice the distinction of ID and SCT in favor of a generic Pixel and Strip dichotomy? Last but not least, I'm assume the modifications to the code may not align with the standard coding practices; I kindly request your feedback on this matter too.


[1] athena/PhysicsAnalysis/JetTagging/JetHitAssociation/python/JetHitAssociationConfig.py

Merge request reports