-
Notifications
You must be signed in to change notification settings - Fork 1.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[v626][RF] Backports of RooFit PRs to v6-26-00-patches
: Part 8
#10114
Merged
guitargeek
merged 13 commits into
root-project:v6-26-00-patches
from
guitargeek:v6-26-00-patches_roofit_backports_1
Mar 14, 2022
Merged
[v626][RF] Backports of RooFit PRs to v6-26-00-patches
: Part 8
#10114
guitargeek
merged 13 commits into
root-project:v6-26-00-patches
from
guitargeek:v6-26-00-patches_roofit_backports_1
Mar 14, 2022
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
…ion order is >= 10.
If NDEBUG is defined, the variables are unused and Clang warns about them.
- fix an error message (text was misleading) - correclty initialize a data member - allow initialHesse to be used with Minimizer option in fitTo
In older CUDA versions, the `cudaStreamWaitEvent` function didn't have a default `flags` parameter. Compare for example the newest CUDA: https://docs.nvidia.com/cuda/cuda-runtime-api/group__CUDART__STREAM.html With CUDA 10.2: https://docs.nvidia.com/cuda/archive/10.2/cuda-runtime-api/group__CUDART__STREAM.html#group__CUDART__STREAM
In the CPU mode, the order in which the RooFit objects are evaluated is not dynamic and there is no need to use the code path for heterogeneous evaluation. This speeds up the pure CPU mode significantly.
The `RooAbsReal::getValues` has already been established as the entry point for evaluating RooFit objects with the batch mode and it should not be broken. In 6.26, the `getValues` function was broken to fall back on the scalar mode all the time, because the `evaluateSpan` funtions it used got replaced by `computeBatch`. In this commit, the desired behavior of using the BatchMode is restored by using the RooFitDriver. To that end, a new constructor has been added to the RooFitDriver that takes a `RooBatchCompute::RunContext` directly. The override of `getValues` in RooAbsPdf was also removed now, because it's the job of the RooFitDriver to treat pdfs correctly.
The RooPlot constructor from TH1 had an option to disable the bin width correction, but this argument was not even used when the RooHist was created with Poisson errors, which is the default case. The Bin width correction was always done in this case, no matter what was the value of `correctForBinWith`. However, when SumW2 errors are used, the `correctForBinWith` parameter was actually considered! This caused inconsitent behavior, because when plotting a `RooDataHist` the `correctForBinWith` parameter is hardcoded to `false, meaning the bin width correction is done for Poisson errors but not for SumW2 errors. This commit fixes this behavior by following the precedent set by the more common Poisson error: the `correctForBinWith` parameter is consistently ignored, and an exception is thrown when it's false. Consequently, the `correctForBinWith` parameter is also not hardcoded to `false` in `RooDataHist::plotOn` anymore. The correct way to disable the bin width correction is to enable the interpretation as a density when importing a TH1 to a RooDataHist. This commit fixes a bug reported on the forum.
Missing when compiled with -Ddev=ON option
The dependencies are changed to linker libraries only, so they are no dependencies of the dictionary generation anymore. This should also fix compile errors reported on the forum.
* the `JSONTool::Export` function should not be part of the public interface, which should only provide high-level JSON printing and writing functionality * the signature of the constructor was changed to take a reference instead of a pointer, because it can't be `nullptr`
In case of named arguments, the RooFormula will replace the argument names with` x[0]` to `x[n]`. There are two things that can go wrong if RooFormula is not implemented right. First, if there is a variable named "x" it should only be substituted if the matching substring is not followed by "[", to not replace existing x[i]. Second, variables with integer names like "0" should only be substituted if the match is not followed by a "]", again to avoid replacing x[i]. This test checks that these cases are handled correctly. The second case was so far not dealt with correctly, but with this commit it is. A corresponding unit test was also implemented. The preprocessor commands in `RooFormula` were also reorganized slightly, such that one can test the `TPRegexp` backend simply by commenting out the `define ROOFORMULA_HAVE_STD_REGEX`.
guitargeek
requested review from
bellenot,
lmoneta and
hageboeck
as code owners
March 14, 2022 14:24
Starting build on |
23 tasks
Build failed on windows10/cxx14. Failing tests: |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This is a backport of all the RooFit PRs that were merged to
master
tov6-26-00-patches
(in the right order, to not have the commit history diverge too much).cudaStreamWaitEvent
#10051