Repository navigation
[6.40] [RF][HS3] Add structured interpolation support for HistFactory modifiers - #22961
Merged
guitargeek merged 6 commits intoJul 29, 2026
Merged
guitargeek merged 6 commits into
guitargeek merged 6 commits into
Conversation
(cherry picked from commit ff2d497)
(cherry picked from commit 58b6beb)
(cherry picked from commit 95964f4)
…able The mapping between the structured HS3 interpolation descriptors and the RooFit integer codes was spread across four functions (two per direction, one pair per interpolation class) plus a pair of dispatchers. They all encoded the same table and had to be kept mutually consistent by hand. Replace them with a single static table that mirrors the documented mapping, plus two generic lookups. The class-specific quirks (legacy code 3 aliasing code 2, and FlexibleInterpVar treating code 4 and 5 identically) are now captured by two explicit normalization lines rather than being scattered across switch cases. No behavioural change; all HS3 interpolation tests still pass. (cherry picked from commit 00afc54)
The analytical-integral routines carried several large commented-out blocks (old dirty-inhibit experiments, an abandoned numeric integral attempt, and two obsolete per-code interpolation loops), and the file ended with a fully commented-out printMetaArgs implementation. None of it is compiled; remove it. The git history preserves the old code for anyone who wants to revisit those ideas. No behavioural change. (cherry picked from commit 32846b3)
FlexibleInterpVar and PiecewiseInterpolation had an almost identical setInterpCodeForParam(): the same range check, the same code-3 -> code-2 aliasing (with the same explanatory comment), and the same error messages, differing only in the highest supported code and the class name in the log output. Keeping the code-3 rule correct meant editing it in two places in lockstep. Extract the shared logic into a small internal helper, Detail::setInterpolationCode(), used by both classes. Each override now just forwards its parameter list and maximum code and flags itself value-dirty when a code was stored. No behavioural change; the error messages are preserved verbatim. (cherry picked from commit 73f2d6e)
guitargeek
merged commit Jul 29, 2026
1ac9754
into
root-project:v6-40-00-patches
37 of 38 checks passed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Backport of #22844, requested by @guitargeek. For your information @Phmonski