You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
[RF] Don't deep clone the RooAbsArg in RooAbsReal::getPropagatedError
The `RooAbsReal::getPropagatedError()` function was using some of the
most expensive operations in RooFit for larger computation graphs:
cloning the model, and figuring out parameters and observables.
This was done for no apparent reason, as the `RooAbsReal` is not mutated
by `getPropagaterError`. Parameter values are slightly changed for
reevaluation, but they are reset right after. A final call to `getVal()`
is enough to reset the original state, which is much more efficient than
cloning everything.
This commit also adds a check if the parameters in the RooAbsReal have
the same values as in the fit result (otherwise the logic of
getPropagatedError() is broken).
This change was motivated by the following forum post:
https://root-forum.cern.ch/t/getpropagatederror-method-taking-too-long-to-run/50392
0 commit comments