Skip to content

Conversation

guitargeek
Copy link
Contributor

The RooFixedProdPdf used an antipattern that should be avoided, and it was actually causing some problems in fits with the new CPU evaluation backend.

The problem was that the class held on to some RooAbsArgs for its evaluation in some containers that were separate from RooFit server-client interface (the container was the
std::unique_ptr<RooProdPdf::CacheElem>).

This commit fixes the situation by avoiding this cache element member completely and consistently using the server proxies instead.

The RooFixedProdPdf used an antipattern that should be avoided, and it
was actually causing some problems in fits with the new CPU evaluation
backend.

The problem was that the class held on to some RooAbsArgs for its
evaluation in some containers that were separate from RooFit
server-client interface (the container was the
`std::unique_ptr<RooProdPdf::CacheElem>`).

This commit fixes the situation by avoiding this cache element member
completely and consistently using the server proxies instead.
Copy link
Member

@lmoneta lmoneta left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM!
Thank you Jonas for the fix

Copy link

github-actions bot commented Oct 6, 2025

Test Results

    22 files      22 suites   3d 17h 52m 54s ⏱️
 3 685 tests  3 681 ✅ 0 💤 4 ❌
79 145 runs  79 141 ✅ 0 💤 4 ❌

For more details on these failures, see this check.

Results for commit 80eeb3d.

@guitargeek guitargeek merged commit 101beeb into root-project:master Oct 7, 2025
25 of 27 checks passed
@guitargeek guitargeek deleted the roofixedprodpdf branch October 7, 2025 09:57
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.

2 participants