Skip to content

Conversation

@guitargeek
Copy link
Contributor

This is a follow-up to #12040.

The RooAbsArg::redirectServer() method is dangerous and should not be used directly. It was for example used wrongly in HistFactory. In the RooAbsAnaConvPdf is was actually used correctly, but it's still better to use redirectServers() consistently, which avoids the new warnings you get when using redirectServer().

More detail in the commit description.

Also includes a commit that irons over RooFit with clang-tidy, adding some missing overrides.

Since commit 52ff06a, the usage of `replaceServer()` is discouraged
because it's too easy to forget to replace the proxy arguments as well,
resulting in de-syncing of proxies and servers.

To avoid the warning that is now printed when using `replaceServer` in
regular RooFit code, the usage of `replaceServer` in combination with
`RooRealProxy::setArg()` in RooAbsAnaConvPdf is replaced with
`redirectServers()`.
The implementation of `HistFactoryNavigation::ReplaceNode` was wrong,
which I spotted because it was the remaining place in RooFit where the
dangerous `RooAbsArg::replaceServer()` was used.

It didn't update the proxies accordingly, resulting in
proxy-server-desync, and it also didn't set the correct value and shape
server properties (it just hardcoded them both to `false` for the new
server instead of taking them over from the old server).
@phsft-bot
Copy link

Starting build on ROOT-debian10-i386/soversion, ROOT-performance-centos8-multicore/cxx17, ROOT-ubuntu18.04/nortcxxmod, ROOT-ubuntu2004/python3, mac12/noimt, mac11/cxx14, windows10/cxx14
How to customize builds

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 these fixes!

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.

3 participants