Skip to content

[HS3] Align RooFit HS3 JSON I/O with the current HS3 naming and HistFactory conventions.#22735

Open
Phmonski wants to merge 2 commits into
root-project:masterfrom
Phmonski:fix/hs3-spec-alignment
Open

[HS3] Align RooFit HS3 JSON I/O with the current HS3 naming and HistFactory conventions.#22735
Phmonski wants to merge 2 commits into
root-project:masterfrom
Phmonski:fix/hs3-spec-alignment

Conversation

@Phmonski

@Phmonski Phmonski commented Jul 1, 2026

Copy link
Copy Markdown
Contributor

Summary

Align RooFit HS3 JSON I/O with the current HS3 naming and HistFactory conventions.

  • Replace RooBinWidthFunction HS3 type binwidth with:
    • binvolume for divideByBinWidth == false
    • inverse_binvolume for divideByBinWidth == true
  • Stop exporting divideByBinWidth and remove legacy binwidth import support.
  • Extend generic expression cleanup for floor, ceil, abs, tan, asin, acos, atan, PI, and EULER.
  • Treat PI and EULER as reserved expression constants on import.
  • Migrate HistFactory modifier export from constraint_name to constraint, and omit constraint_type.
  • Keep HistFactory import compatibility for constraint, constraint_name, and legacy constraint_type.
  • Export const: true for parameters whose min >= max.
  • Export both RooHistFunc and ParamHistFunc as step.
  • Add a step importer dispatcher that selects RooHistFunc for data and ParamHistFunc for parameters.
  • Keep legacy histogram import support for old RooHistFunc HS3 files.
  • Rename the following exporter keys:
    • generic_function -> generic
    • gauss_model_function -> gauss_resolution_model
    • truth_model_function -> delta_resolution_model
    • mixture_model -> mixture_resolution_model
    • fft_conv_pdf -> fft_convolution_dist

Tests

Added focused coverage in testRooFitHS3.cxx for:

  • binvolume / inverse_binvolume export and import
  • fixed-range parameter export as const: true
  • step export/import dispatch for RooHistFunc and ParamHistFunc
  • HistFactory constraint export with legacy constraint_name import
  • generic expression cleanup for new function names and constants

[x] Tested locally

@github-actions

github-actions Bot commented Jul 1, 2026

Copy link
Copy Markdown

Test Results

    21 files      21 suites   3d 7h 0m 49s ⏱️
 3 874 tests  3 852 ✅ 0 💤 22 ❌
72 425 runs  72 371 ✅ 0 💤 54 ❌

For more details on these failures, see this check.

Results for commit 636e449.

♻️ This comment has been updated with latest results.

@Phmonski

Phmonski commented Jul 2, 2026

Copy link
Copy Markdown
Contributor Author

This PR contains a bug that is investigated.

@Phmonski Phmonski force-pushed the fix/hs3-spec-alignment branch from bf36555 to 636e449 Compare July 3, 2026 07:55
@Phmonski Phmonski force-pushed the fix/hs3-spec-alignment branch from 636e449 to 98c0bd8 Compare July 6, 2026 09:16
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants