Draft: Decorate UFOs with cluster's energies.
Decorate UFOs with cluster's information (energies) -- Updated (18.12.24)
The goal of this MR is to add a block (FlowEnergyDecorator) that decorates the UFOs with the cluster's energies (an example of the use of this block in a config file is given in FatJetsFlow_clusters.yaml). To do this, the CSSKGParticleFlowObjects must be rebuilt, which is done using a new function CSSKMergingCfg defined in a parallel athena MR in PFlowCommonConfig.py in the DerivationJetEtMiss package. This rebuilding is done in the dump-single-btag command in the --clusters option. An example of a command line to extract cluster's energies with TDD is:
dump-single-btag --clusters -c training-dataset-dumper/configs/FatJetsFlow_clusters.json -o test_clusters.h5 path/to/input/file.root
The files added/modified with this MR are:
For the decorator itself:
- Addition of
FTagDumper/src/FlowEnergyDecorator.cxx/.h
(code for decorating UFOs); - Modification of
FTagDumper/CMakeLists.txt
(add FlowEnergyDecorator); - Modification of
FTagDumper/src/components/BTagTrainingPreprocessing_entries.cxx
(add FlowEnergyDecorator);
For the block:
- Addition of
FTagDumper/python/blocks/FlowEnergyDecorator.py
; - Modification of
FTagDumper/python/blocks/__init__.py
(to add the new block);
For the command:
- Modification of
FTagDumper/bin/dump-single-btag
(addition of an option --clusters that must be run to allow the decorator to access the cluster's info); - Modification of
FTagDumper/python/dumper.py
(addition of the --clusters option);
For the config:
- Addition of
configs/FatJetsFlow_clusters.json
(example of a configuration to have these energies in the .h5 output file with the use of the block);
For the grid:
- Addition of
FTagDumper/grid/inputs/xbb_tau.txt
(list of files to dump for X H->tautau tagging); - Modification of
FTagDumper/grid/grid-submit
(add a new mode xbb_tau corresponding to the dump-single-btag --clusters command, with the FatJetsFlow_clusters.json configuration and the xbb_tau.txt input files).
This MR is related to the new JIRA ticket that @dguest opened ATLJETMET-1931 (and to a previous one AFT-729 I did a few months ago which could probably be fully replaced by the one of Dan). He describes the 2 possible workarounds needed to access cluster's information in the current version of athena. The first solution is the one implemented here.
Remark: this method REQUIRES to remove new collections in the derivation (CSSKGChargedParticleFlowObjects/Neutral). This is implemented in the athena MR also mentionned above.