Add option to decorate original jet container instead of shallow copy
The purpose of this MR is to support the option to decorate an original jet collection with muon-in-jet and PtReco corrections, instead of creating a new jet collection. This is useful for the training-dataset-dumper, which is a jet-level, rather than event-level, framework. Two steering functions are now available:
- decorateBJetCalibration(...) to decorate a given jet collection without modification of its 4-momenta
- applyBJetCalibration(...) can be used as usual. The only difference is that the output jets will now also have (somewhat redundant) decorations for the various corrections, which need not be saved in a given framework implementation.
To support this, some member functions have been factorized (e.g. correction calculation and modification of jet collection are now separate)
The BJetCalibrationAlg has a new member variable to control which of the two options is used. Interactions with previously existing tool/algorithm are unchanged. It also has a flag to run the correction on all jets, ignoring any b-jet selection.
The BJetCalibrationSystAlg has not been modified.