Skip to content

HIClusterSubtraction re-structuring for MT compatibility (ATLASRECT 5493)

HIClusterSubtraction class in HIJetRec/src being substantially changed in order to comply w/ MT rules. Major changes:

  • Each call of HIClusterSubtraction in HIJetAlg (2x, 1 for the cells, 1 for the clusters) now create a deep copy of the state of the art cluster (cells object creates a copy of the original, clusters object creates a copy of the cells' one) and update it w/ the corresponding subtraction, storing then it in a dedicated container.
  • A new HIJetConstituentModifierTool was created in order to cope w/ this new structure. Before the HIClusterSubtraction applies subtraction to clusters by modifying in place. It used RAW signal state to store subtracted kinematics. Unsubtracted energy stored in ALTCALIB state. All downstream algorithms/tools accessing a jet’s kinematics were getting the subtracted energy. In the new version, the deep copy modified w/ cluster subtraction (the last in the change) is being used by the HIJetConstituentModifierTool to properly associate jet constituents before any other modifier starts to act on them.
  • In the new flow, the Origin Correction is now applied in the HIClusterSubtraction class. This part of the code is still optional and can be activated via a configurable property. In case the Origin Correction is applied, the results are stored in CALIBRATED state. At the level of HIJetConstituentModifierTool, the JetConstituentScale is being set accordingly: if the OriginCorrection was enabled (via a global flag in HIJetRecFlags.py), the JetConstituentScale is set to xAOD::CalibratedJetConstituent, while xAOD::UncalibratedJetConstituent is chosen in case the OriginCorrection was not applied. - Jet states, constituent states, and cluster states are all defined in HIJetRecDefs.h, to allow for unified treatment in monitoring and analysis code. Also, a new method getClusterP4 was implemented in order to avoid the usage of CaloCluster_v1::p4() because this four-vector can never have negative energy. We usually keep clusters w/ negative E flipping eta and phi while storing after the subtraction. We want to retrieve the correct cluster kinematics when dealing with the constituents in the new HIJetConstituentModifierTool, therefore this method was implemented.
  • The Jet kinematics are built for both subtracted and subtraced+origin corrected constituents. In case the origin correction is not requested, only the first are built and the constituent scale is set accordingly.
  • Given the new HIClusterSubtraction structure, the "updateMode" and the corresponding property to enable it have been deleted (nothing is updated anymore, a new deep copy is being created each time)
  • The python scheduling of the algorithm has been modified according to all the input described above.
  • Restored default run setting in HITowerWeightTool lost in 21.9 and erroneously ported to master when forking

The corresponding JIRA ticket for the issue is ATLASRECT 5493

Edited by Riccardo Longo

Merge request reports