Bugfix and optimization for new JER smearing
The JetCalibTools implementation has sub-optimal CPU performance, namely it was creating projections from a TH2 each time it was called due to the need to interpolate only in one dimension. This has now been fixed by projecting and caching all bins once during the initialize() method and then using them directly. The speedup is considerable and may be somehow also related to a problem observed on the PATHelp list. This is not entirely clear, as the underlying cause may EventLoop related and just be hidden due to the substantial CPU reduction from this update. Either way, this is a useful CPU reduction and if the other problem re-appears in more intensive uses, then it can be further investigated. In addition, the process of debugging this slowdown led to the discovery of a bug in the new resolution recommendations. If the tool was configured for GeV inputs, everything was fine. However, if the tool was configured for MeV inputs, then the tool was using the wrong values for smearing. The impact of this mistake was strongly suppressed due to only the difference between data and MC being applied (and this difference is roughly constant with pT), but it is still a non-negligible effect. Former-commit-id: 9e73f2c5bce8c7ed0348f65f6125d87fbd4e086e
Showing
- Reconstruction/Jet/JetCalibTools/JetCalibTools/CalibrationMethods/JetSmearingCorrection.h 8 additions, 3 deletions.../JetCalibTools/CalibrationMethods/JetSmearingCorrection.h
- Reconstruction/Jet/JetCalibTools/Root/JetSmearingCorrection.cxx 110 additions, 111 deletions...truction/Jet/JetCalibTools/Root/JetSmearingCorrection.cxx
- Reconstruction/Jet/JetCalibTools/util/JetCalibTools_SmearingPlots.cxx 53 additions, 10 deletions...on/Jet/JetCalibTools/util/JetCalibTools_SmearingPlots.cxx
Loading
Please register or sign in to comment