JetCalibTools structural re-work
This implements some improvements to the structure of JetCalibTools which were recently discussed in the Jet/MET software & validation group and at the Hadronic Calibration Workshop. The main changes are:
- A new base class,
JetCalibrationStep
, is introduced to provide common functionality/interface for the individual calibration methods. This is a standalone class, not a Tool. -
ResidualOffsetCorrection
is now a standalone class (not aJetCalibrationStep
), as it doesn't actually calibrate anything - it's only a helper forJetPileupCorrection
. - The individual calibration steps are no longer Tools in the Athena sense: they aren't configurable from python (there was no case in which a user was supposed to do this anyway).
-
JetCalibrationToolBase
has been rendered obsolete and removed.JetCalibrationTool
now inherits directly from its interfaces andAsgTool
. - The logical structure of
JetCalibrationTool
has been simplified. It's now about 150 lines shorter, and there's only onevector<CalibrationStep>
which includes all steps, even for expert usage. - The handling of time-dependent in situ calibrations has been streamlined. Each
InSituDataCorrection
now holds its own run number interval of validity (which is all runs unless otherwise specified) outside of whichcalibrate(...)
does nothing. This improves over the previous logic whereJetCalibrationTool
conditionally calledcalibrate(...)
based on the corresponding validity interval, requiring additional bookkeeping. - Some other obsolete code has been removed (file finding which has been superseded by PathResolver, etc.).
- A few minor memory leaks have been remedied.
- General improvements to code style have been made in various places.
The goal here is to make JetCalibTools more accessible for the general ATLAS population to read, work with, and contribute to. These changes are complementary to the lower-level configuration/data access proposals from @sschramm.
Tagging @sawyer, @schaarsc, @mswiatlo, @camacho for Jet/Etmiss. @jbossios might also be interested. All comments from anyone are welcome.