The work in ATR-29039 deferred the creation of the MenuSequenceCA for all signatures. In the case of the jet slice, we were still generating the SelectionCA
at chain configuration time, and holding these SelectionCA
objects eventually led to ATR-29211 when we reached the end of the job in the fast menu generation and had not merged those CAs.
Construction of the full jet chain steps while supporting many types of jet collections in multiple stages requires passing of information, in particular the data dependencies, between steps. These data dependencies were being created in parallel with the configuration of the reconstruction sequences. To keep the information passing while deferring the reconstruction configuration, we must factorise the operation of determining the data dependencies.
Hash and comparison functions are added to JetInputConstit
to facilitate comparisons specifically for the reclustered jet case.
Steps:
- I extracted the data dependencies into a new set of functions, verifying that for a variety of standard jet collections, they reproduce the
JetDefinition
config objects and collection names as in the full reconstruction generators. Specifically, they generate dicts of all jet collections/definitions produced in a sequence, marking the final output, which is the main thing transferred between steps. - I then used the data dependency functions to provide the necessary information during the step creation, while moving all CA generation into the deferred
MenuSequenceCA
generator calls. This seems to eliminate all unmerged CA errors. For the exotic jet sequences, this was already trivially possible, as they are quite standalone. The returned configuration is identical.
I'd be willing to put this in as is, to avoid having the unmerged CA check off for any longer, and could follow up on removing the redundant parts of the jet reconstruction configuration in another MR.