Skip to content

[RF] Remove flattening of nested RooSimultaneous in the constructor - #23669

Open
guitargeek wants to merge 1 commit into
root-project:masterfrom
guitargeek:rf-sim-nested-replication-644
Open

guitargeek wants to merge 1 commit into
root-project:masterfrom
guitargeek:rf-sim-nested-replication-644

Conversation

@guitargeek

@guitargeek guitargeek commented Oct 9, 2026 •

Copy link
Copy Markdown
Contributor

The flattening of RooSimultaneous components into a one-level RooSimultaneous over a RooSuperCategory was deprecated in ROOT 6.42 and is now removed. RooSimultaneous components are kept as they are, which also allows adding them with addPdf().

Nested RooSimultaneous in "switch mode", whose index category is a parameter, now work. To support them also for toy generation and for plotting slices of the outer RooSimultaneous, the generator contexts and RooSimultaneous::plotOn() use the selected component of a nested RooSimultaneous whose index category is not generated or projected.

If the index category of a nested RooSimultaneous is in the dataset, creating the likelihood fails with a clear error for all evaluation backends. The check covers RooSimultaneous nested at any depth, also below a RooSimultaneous in switch mode.

RooSimultaneous objects that were flattened by previous ROOT versions and are read from files are not affected.

The internal RooSimultaneous::InitializationOutput struct and RooSimultaneous::initialize() function are removed.

🤖 Done with the help of AI

@guitargeek guitargeek self-assigned this Oct 9, 2026
@github-actions

github-actions Bot commented Oct 9, 2026 •

Copy link
Copy Markdown

Test Results

    23 files      23 suites   3d 18h 53m 53s ⏱️
 3 883 tests  3 883 ✅ 0 💤 0 ❌
79 793 runs  79 793 ✅ 0 💤 0 ❌

Results for commit 39ab298.

♻️ This comment has been updated with latest results.

@guitargeek
guitargeek force-pushed the rf-sim-nested-replication-644 branch from 50c6ff3 to 31c019c Compare October 29, 2026 15:31
The flattening of RooSimultaneous components into a one-level
RooSimultaneous over a RooSuperCategory was deprecated in ROOT 6.42 and
is now removed. RooSimultaneous components are kept as they are, which
also allows adding them with `addPdf()`.

Nested RooSimultaneous in "switch mode", whose index category is a
parameter, now work. To support them also for toy generation and for
plotting slices of the outer RooSimultaneous, the generator contexts and
`RooSimultaneous::plotOn()` use the selected component of a nested
RooSimultaneous whose index category is not generated or projected.

If the index category of a nested RooSimultaneous is in the dataset,
creating the likelihood fails with a clear error for all evaluation
backends. The check covers RooSimultaneous nested at any depth, also
below a RooSimultaneous in switch mode.

RooSimultaneous objects that were flattened by previous ROOT versions
and are read from files are not affected.

The internal `RooSimultaneous::InitializationOutput` struct and
`RooSimultaneous::initialize()` function are removed.

🤖 Done with the help of AI
@guitargeek
guitargeek force-pushed the rf-sim-nested-replication-644 branch from 31c019c to 39ab298 Compare October 30, 2026 19:10
@guitargeek
guitargeek marked this pull request as ready for review October 30, 2026 19:19

This branch has not been deployed

No deployments
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.

1 participant