Skip to content

[RF] Address the RooFormulaVar re-indexing issue during serialization#22850

Open
tekinertekin wants to merge 1 commit into
root-project:masterfrom
tekinertekin:rooformulavar-reindex-21371
Open

[RF] Address the RooFormulaVar re-indexing issue during serialization#22850
tekinertekin wants to merge 1 commit into
root-project:masterfrom
tekinertekin:rooformulavar-reindex-21371

Conversation

@tekinertekin

Copy link
Copy Markdown

This Pull request:

RooFormulaVar @n indices were inconsistent after a write-read cycle in cases where some of the unused parameters have been trimmed, causing incorrect results. We now use the method RooFormula::reindexedFormulaForUsedVars(), which re-indexes the saved formula expression to the position of the usedVariables(), in the 4 spots where _formExpr is being set (both constructors, copy constructor and redirectServersHook). The code was authored by me. Claude Opus 4.8 assisted with reproducing the bug, local builds/tests, and reviewing the code — it did not generate any of the code. This is the binary/TFile equivalent of the same bug fixed in #17291; it came from there because that path wasn't tested — this PR closes that gap.

Added a regression test RooFormula.SerializationWithUnusedParam.

Fix For:

Fixes #21371

Checklist:

  • tested changes locally
  • updated the docs (if necessary)

This PR fixes #21371

RooFormulaVar @n indices were inconsistent after a write-read cycle in cases where some of the unused parameters have been trimmed, causing incorrect results. We now use the method RooFormula::reindexedFormulaForUsedVars(), which re-indexes the saved formula expression to the position of the usedVariables(), in the 4 spots where _formExpr is being set (both constructors, copy constructor and redirectServersHook).

Fixes root-project#21371
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

RooFormulaVar @N parameter indices silently shift after workspace serialization

3 participants