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 theHIClusterSubtraction
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 theHIJetConstituentModifierTool
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 toxAOD::CalibratedJetConstituent
, whilexAOD::UncalibratedJetConstituent
is chosen in case the OriginCorrection was not applied. - Jet states, constituent states, and cluster states are all defined inHIJetRecDefs.h
, to allow for unified treatment in monitoring and analysis code. Also, a new methodgetClusterP4
was implemented in order to avoid the usage ofCaloCluster_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 newHIJetConstituentModifierTool
, 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