Systematics management cleanup
For ease of review, the more bread-and-butter changes have been externalized to this MR: !699 (merged)
Release notes
Systematics management has been refactored significantly
- New class TQSystematicsManager makes systematics management from SFramework now available in QFramework
- TSModelBuilder now uses TQSystematicsManager
- TQSystematicsHandler (aka yellow band factory) now also uses TQSystematicsManager
This achieves the ability to (for the first time) have a completely coherent implementation of systematic uncertainties for pre- and postfit.
Details
This MR contains several major types of changes:
- Old legacy code from SFramework has been removed. This mostly affects the (now removed)
TSHWWUtils
as well as the (significantly slimmed down)ActionCreateModels
- SFramework unit tests have been made a lot more restrictive by propagating escape codes of actions to the
TSStatisticsManager
- const correctness has been improved throughout
TQHistogramUtils
- code has been moved from SFramework to QFramework (
TSSystematicsManager
->TQSystematicsManager
, new classTSSystematicsManager
inherits from `TQSystematicsManager and adds a few wrapper functions for compatibility) -
TQSystematicsHandler
(aka the yellow band maker) has been completely rewritten and now usesTQSystematicsManager
as a backend.
The major achievements of this MR include:
- significant reduction in code duplication
- removal of dead code
- speedup of yellow band making
- implementation of advanced variation computations in yellow band maker
This MR is part of the "histogramming harmonization" effort.
Edited by Carsten Burgard