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
HIClusterSubtractionin 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
HIJetConstituentModifierToolwas created in order to cope w/ this new structure. Before theHIClusterSubtractionapplies 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 theHIJetConstituentModifierToolto 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
HIClusterSubtractionclass. 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::UncalibratedJetConstituentis 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 methodgetClusterP4was 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
HIClusterSubtractionstructure, 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
HITowerWeightToollost in 21.9 and erroneously ported to master when forking
The corresponding JIRA ticket for the issue is ATLASRECT 5493
Edited by Riccardo Longo