This code makes two changes to the JES code.
For events with mu/NPV not within range for the 3D pileup correction TH2, the correction is taken to be the highest value of mu/NPV. This should fix the behavior of the correction for high pileup events, which were showing strange behavior.
This also adds functionality which will allow the use of p-splines for the JES correction. For simplicity, these corrections are in the form of a finely binned TH1, which avoids importing additional packages into Athena.
Currently, the low-pT extrapolation can only be done with a linear fit, which is taken from the spline histogram. It would be nice to improve the treatment of this for the future, but I have checked that the results behave as expected.
The output of these results has been validated with the output from DeriveJetScales, and the results look as expected. Once this is merged, a more complete validation will be done with the full stats.