Skip to content

WIP:Add NCellPerLayer decorator to jets in AOD

Jeff Dandoy requested to merge jdandoy/athena:JetNCellPerLayer into 21.0

Following Chris Young's studies on forward jet BCID dependence (here), we'd like to add the number of cells associated with a jet in each layer, to possibly allow for a bcid-dependent energy correction, dependent on the number of affected cells in a given calorimeter technology associated to a jet.

Changes are made following strategy of the EnergyPerSampling variable. Tested on 500 events from a recent SUSY signal sample (with diboson like final states), leading to a 0.5% size increase.

The only concern is that when adding the new jet moment in the middle of JetAttributes.h, it leads to a crash in the RAWtoESD job for many HLT jets containers (xAOD::JetTrigAuxContainer_v2), which have an error like the following:

Fatal [RootTreeContainer] STL C++ Exception: SG::ExcAuxTypeMismatch: Type mismatch for aux variable `::ECPSFraction' (984); old type is float new type is int

ECPSFraction is a jet moment that comes a short distance later in the list. It seems something may depend on the ordering of these enums, but it's not clear to me where. For now the new jet moment is added at the bottom of the list, and the jobs run successfully. It would be nice to understand this issue and move the new enum to the appropriate place in the list, and to ensure there are no unintended consequences of the merge. Any advice from the experts would be appreciated.

Set back to WIP, to make sure the NCellsPerSampling is also saved in the CaloCalTopoClustersAux

Sincerely, Jeff

Tagging @sschramm @cyoung @mhodgkin @khoo @loch @williams @wbalunas.

Edited by Jeff Dandoy

Merge request reports