https://github.com/root-project/root

sort by:
Revision Author Date Message Commit Date
db1e838 "Update ROOT version files to v6.28/00." 03 February 2023, 14:34:27 UTC
dc908a0 [relnotes] Add Jira items for v6.28/00 03 February 2023, 14:05:54 UTC
342084d [relnotes] Add GitHub issues. 03 February 2023, 12:05:09 UTC
e4d191d [relnotes] Add REve. 03 February 2023, 11:24:24 UTC
fdd68fa [DF] Removing failing test with shorter friends (#12025) According to https://github.com/root-project/root/issues/9137, we get bogus data if a friend is shorter than the main tree. The datasetspec test acknowledges this, but still checks the results in the MT case. This miraculously seems to work most of the time, but we sometimes see failures in the nightlies, especially on macOS, so remove it. 02 February 2023, 20:18:24 UTC
d46b997 PYMVA: removed deprecated code 02 February 2023, 19:01:47 UTC
8b0281c [pymva] Use tensorflow.keras for building the test models 02 February 2023, 19:01:47 UTC
a840717 [pymva] Turn off printing of Keras log when predicting a model This fixes the larg output observed when running some Keras tests (e.g. testPyKerasRegression) 02 February 2023, 19:01:47 UTC
9c9e8c4 [tmva] Fix dependency for tutorials and tests Avoid that tutorials and some pymva test download at the same time the input data file. Fix also an issue with the RSofieReader tutorial 02 February 2023, 19:01:47 UTC
5344cdf [tmva][sofie] Small fixes in the parser when running in verbose mode 02 February 2023, 19:01:47 UTC
80eddd2 [RelNotes] Typos. 02 February 2023, 14:09:00 UTC
5ffba22 [relnotes] Remove stray sentence. 02 February 2023, 09:25:18 UTC
61f7588 [relnotes] Wording. 02 February 2023, 09:23:05 UTC
2b83ff5 [relmotes] Formatting, remove empty sections, small additions. 02 February 2023, 09:19:19 UTC
10ef719 [relnotes] Add llvm upgrade, builtin package upgrades, Python 3.11 support. (#12204) 01 February 2023, 22:54:14 UTC
813f445 [cmake] Remove deprecated alien option, deprecate gfal gsl_shared jemalloc monalisa pyroot_legacy tcmalloc xproofd. (#12203) * [cmake] Remove deprecated `alien` option. * cmake] Deprecate gfal gsl_shared jemalloc monalisa pyroot_legacy tcmalloc xproofd They seem to be unused by the LHC experiments; please complain if you rely on them. * [relnotes] Add build option deprecations. 01 February 2023, 22:53:50 UTC
a953141 [tmva][sofie] Fix Gather operator for handling indices tensor The Gather operator was wrongly emitting an error when the index tensor was an initialized tensor In addition it was not correctly using Clean_name for the index tensor name This fixes the Recurrent tests in Sofie models where the Gather operator was kept when using latest versions of onnxsim. Fixes also the Squeeze operator (handles as a Reshape) when the axes are passed as an inputs and not as an attribute Fixes an issue in ROperator_Reshape when getting removing `1` from the output shape (cherry picked from commit 7b35edbbd2a2a07ca54a8b4411d32cb37814888e) 01 February 2023, 15:31:23 UTC
186fb50 [tmva][sofie] Fix some valgrind issues in COnvTranspose (cherry picked from commit 821083f1263e73fdc16b5060c10b3a3380564657) 01 February 2023, 15:31:18 UTC
25939cd [PyROOT] Use non-deprecated API to initialize Python interpreter Taken from part of https://github.com/wlav/CPyCppyy/commit/64fd89050a66bf8cb119f236cadd365efa07b005 01 February 2023, 11:55:24 UTC
0af02d7 [DF] Avoid call to ctor/dtor of helper TChain object when possible (cherry picked from commit 1daa72d26588abc853ceb09e35f6daaa2899264b) 01 February 2023, 10:13:00 UTC
722c10c [DF] Make dataset group an optional data member of RSampleInfo There are cases in which an RSampleInfo is constructed but we don't have dataset group information available (e.g. for "empty source" loops, or in any case an RDatasetSpec was not provided). In this cases we now skip the (expensive) creation of the RDatasetGroup data member of RSampleInfo and we make it a hard error to request dataset group information. (cherry picked from commit 9db9815627bb98b1eb70dec15b0a0789c55f8076) 01 February 2023, 10:13:00 UTC
a854d11 [DF] Move vector instead of copying in RLoopManager construction (cherry picked from commit 33a43899226b2a9328c1791fb2716f9c4039ea44) 01 February 2023, 10:13:00 UTC
cfc26cd [DF][PyROOT] Avoid deprecated numpy.object 01 February 2023, 09:39:17 UTC
d60bdfb [tmva][pymva] Use correct python executable for the tests (cherry picked from commit 3487278bb6e7516fbd062e0980b55066b97cf6e8) 01 February 2023, 08:35:55 UTC
40f4d04 [cling] Keep private symbols private: llvm IR naming of private constants (CodeGenModule::createUnnamedGlobalFrom(), line 1136) will name private symbols without caring about possible name clashes. We will create these name clashes by marking such private symbols as weak ones, re-using previously emitted symbols (e.g. in JITDylib::defineImpl() where they get added to MUDefsOverridden and thus re-used instead of re-emitted). Let me see what happens when we keep private symbols private. In principle, the interpreter should have no means fo accessing them from another transaction - private symbols seem to be function-local ones. Fixes https://github.com/root-project/root/pull/12183 (cherry picked from commit 2d9a09b9623b3195a93dceafa08a5fe222fcc614) 31 January 2023, 21:48:27 UTC
73556b6 [llvm] Override llvm-visibility-default: We really need these symbols to be hidden. Solves https://github.com/root-project/root/issues/12170 ``` Unable to find target for this triple (no targets are registered) *** Break *** abort ``` where the llvm of PyTorch ends up using the RegisterTarget function of the llvm of cling. (cherry picked from commit 0363aedc30038df86b3723b0722216beb7626f4a) 31 January 2023, 20:28:09 UTC
0d621df [cmake] Use lcgpackages for libzmq.tar.gz: GitHub repacks archives from time to time, which changes the hash. (cherry picked from commit 43003424171111fb2d8ec6fd182001c57ed6901a) 31 January 2023, 10:57:14 UTC
61758c4 [foundation] Silence macOS / Xcode / clang warning on use of sprintf: There is no safe way if doing this, which is why the interface is now deprecated. Until it is removed, lie to the compiler that the buffer is large enough (which is no worse than what happened before this commit). 31 January 2023, 07:53:23 UTC
ebf7256 [base] Deprecate TDirectory::EncodeNameCycle(): It is broken by design, there is no way that this interface can be used in a safe way. Just get rid of it. 31 January 2023, 07:53:23 UTC
53e8fa0 [cling] For MSVC weak symbols, re-use even small funcs: Without, the JIT fails to compile roottest/root/aclic/misc/assertROOT7027.C correctly. (cherry picked from commit 5df5440cfe11afac9e62921a1589b476074e77bb) 31 January 2023, 07:52:54 UTC
792b4b2 [cling] JIT: find existing weak symbol without materializer: m_JIT.getSymbolAddress() invokes the symbol materializers, which compile (which is sort of okay) but also try autoloading (which totally is not okay). Instead, implement a function to search existing JIT symbols. This can be accelerated by looking up the whole set of symbols, instead of doing it symbol by symbol. I leave that refactoring for later... (cherry picked from commit bf75c61eac69db877c1de27059da4dc89d72006f) 31 January 2023, 07:52:54 UTC
fc74197 [cling] JIT: separate re-use of weak sym vars, funcs (NFCI). (cherry picked from commit e2b9a3d0e2a0bf86b3a0cf54e8d063cc49e71fd3) 31 January 2023, 07:52:54 UTC
3455465 [cling] JIT: only re-use *large* existing weak functions: Small functions might get inlined, and hiding their definition prevents the inliner from doing its job. (cherry picked from commit da267435763601112f64ae02f6e81306723c4858) 31 January 2023, 07:52:54 UTC
1598e3f [cling] Reuse existing weak symbols, also from JIT: With the upgrade to llvm-13, the JIT lost the ability to re-use existing weak symbols that the JIT had already emitted, instead only looking at dlsym. This causes a significant increase in JITted symbols, and thus a significant slow-down of cling / its JIT. This restores the old behavior, with an identical set of symbols that jet jitted. (cherry picked from commit 23ca9fe52d295ea2557884710714b13fd9715a36) 31 January 2023, 07:52:54 UTC
967341a [RF] Fix `HistFactoryNavigation::ReplaceNode` 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). 31 January 2023, 07:52:13 UTC
474d59d [RF] Do `redirectServers` and not `replaceServer` in RooAbsAnaConvPdf Since commit 52ff06a2f31, 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()`. 31 January 2023, 07:52:13 UTC
f6f30e5 [RF] Add missing `override` keywords to RooFit with clang-tidy 31 January 2023, 07:52:13 UTC
2699e2e [RF] Code format `RooBatchCompute.h` As this file will be changed several times in the coming days, it is now a good time to do this. 31 January 2023, 07:52:13 UTC
bee5736 [RF] Implement RooBMixDecay in `RooBatchCompute` for GPU support It was validated with the unbinned benchmarks in `rootbench` that the implementation is correct. 31 January 2023, 07:52:13 UTC
7714d99 [RF] Don't use small `int` types in RooBatchCompute One doesn't need to use `uint8_t` and `uint16_t` for index types, because it is not giving performance improvements. It's better to use `std::size_t`, which means in particular that the library will support an arbitrary number of input arguments now. This fixes running the ATLAS Higgs combination fit with the BatchMode. 31 January 2023, 07:52:13 UTC
c92233c [RF] Parametrize `testRooBinSamplingPdf` to cover BatchMode on and off 31 January 2023, 07:52:13 UTC
0684bf1 [RF] Implement `computeBatch()` in RooBinSamplingPdf This makes the ATLAS benchmark fits with the RooBinSamplingPdf work. 31 January 2023, 07:52:13 UTC
5a69c84 [RF] Fix duplicate ownership problem in RooMomentMorph(Func)ND The commit 4c9c5d6b49 fixed the memory leaking of the `RooMomentMorph(Func)ND::Grid2::_grid` member by deleting it in the constructor, but it didn't consider that the copy constructor didn't make a clone of the `_grid`, ending up with double ownership. Now, the copy constructor is also cloning the binnings, just like the regular constructor, and the double ownership is avoided. Closes #12155. 31 January 2023, 07:52:13 UTC
30d9e83 [relnotes] Add Guilherme! 30 January 2023, 14:37:09 UTC
c5cddcb unused variable Fixes https://github.com/root-project/root/issues/11971 leftover from https://github.com/root-project/root/commit/b1257ba27a7139e0c927693fded3b243b3f94b33 (cherry picked from commit 4ef94f4432a39ef5542cc4f00d46f079115b263d) 30 January 2023, 13:14:42 UTC
3a3269f Plot markers using their actual size which is greater than 1 on scaled displays. (#12055) (cherry picked from commit 9c2ea4309e24540518a1690387c2915e045418a5) 30 January 2023, 13:01:18 UTC
72e47b1 [NFC][VecOps] Fix example code snipptes in doxygen (cherry picked from commit c1d07a4f45a4d7f9f82b366615562c0fe75d845e) 30 January 2023, 12:59:29 UTC
06ce56f Add missing include to llvm Signals.h Same as https://github.com/llvm/llvm-project/commit/ff1681d (cherry picked from commit cae006fc3785381f74c7ebf237fd33439edbe454) 30 January 2023, 12:55:51 UTC
862a644 Fix gcc13 error in TCling.cxx Detect failure - possibly dangling reference to a temporary (cherry picked from commit ff73987f87c9c492bedbf7b438d803b30cc3b050) 30 January 2023, 12:55:46 UTC
95fadbb Fix compilation with gcc13. Missing #include <cstdint>. (cherry picked from commit 37ac6654194f90db625e760dcb2d48fd7938ba6d) 30 January 2023, 12:52:52 UTC
4efd8d5 [cmake] There is no CMAKE_EXE_FLAGS, use CMAKE_EXE_LINKER_FLAGS: This might fix e.g. `-mmacosx-version-min=12.6` not being passed to ACLiC, causing linker warnings about incompatible deployment targets. (cherry picked from commit 35d621dd1181dc17a7edd39d1e9774dfe4142130) 30 January 2023, 09:38:18 UTC
9ff1d02 CMake: fix incorrect version for finding llvm-config (#12150) Signed-off-by: Stephan Lachnit <stephanlachnit@debian.org> (cherry picked from commit 37b25218301d31ff54ed90e25aaf70db58cca1a1) 30 January 2023, 07:51:17 UTC
a85ad46 Add Baidyanath 29 January 2023, 15:01:50 UTC
3289b76 [RelNotes] Update name, affiliation of Yueh-Shun Li [6.28]. 29 January 2023, 14:49:12 UTC
21ed81f TTreeReader: error out for STL within TClonesArray. Currently this nesting is not supported and was previously silently returning incorrect information 27 January 2023, 20:26:49 UTC
58d1418 [RelNotes] Update name, affiliation of Yueh-Shun Li. 27 January 2023, 17:52:38 UTC
07823c7 [NFC] Update release notes for RVec (cherry picked from commit fa65b6d5c84e562e2f9a8c8262fe9cfff99c7c8e) 27 January 2023, 15:39:31 UTC
da69f4c [RelNotes] Add all known contributors with >1 commit (NFC). 27 January 2023, 15:36:56 UTC
39995a6 [cling] Re-enable CodeGen-OptLevel after llvm13 upgrade: With the upgrade, BackendPasses was modifying a TargetMachine that was not used by SimpleCompiler. Change that by - using a SimpleCompiler that uses IncrementalJIT::TM; - moving the TM creation to IncrementalJIT, and giving access to it This reduces the runtime of https://github.com/root-project/root/issues/11927 to - before llvm upgrade: 2.69s - llvm13, without this commit: ??? - llvm13, with this commit: 2.89s i.e, a slow-down of 7% (that is likely caused by the different emission mechanism of Orc-v2; to be confirmed...) (cherry picked from commit d3793f2bb8c5948f4c64947c7f76fb0b0e1a3567) 27 January 2023, 15:35:47 UTC
a6c611d [dictgen] Do not complain about headers in byproducts: During ROOT's build of Core.pcm, byproduct modules are built. rootcling was complaining about some headers not appearing in Core.pcm, despite them ending up in the byproduct pcms. Simply don't complain about headers not in the pcm if these headers are actually in a byproduct. In the same vein, do not forcefully include them in teh pcm, as they are already included in the byproduct which should be sufficient. This circumvents the warnings: ``` [2751/6001] Generating G__Core.cxx, ../lib/Core.pcm Warning in <CheckModuleValid>: after creating module "Core" the following headers are not part of that module: strlcpy.h (already part of top-level module "ROOT_Foundation_C") snprintf.h (already part of top-level module "ROOT_Foundation_C") ESTLType.h (already part of top-level module "ROOT_Foundation_Stage1_NoRTTI") TClassEdit.h (already part of top-level module "ROOT_Foundation_Stage1_NoRTTI") ThreadLocalStorage.h (already part of top-level module "ROOT_Foundation_C") ROOT/RStringView.hxx (already part of top-level module "ROOT_Foundation_Stage1_NoRTTI") TIsAProxy.h (already part of top-level module "ROOT_Foundation_Stage1_NoRTTI") TVirtualIsAProxy.h (already part of top-level module "ROOT_Foundation_Stage1_NoRTTI") ``` (cherry picked from commit a12ef5cf047445a952108763adc66908a17649ba) 27 January 2023, 15:35:34 UTC
a33cd99 [relnotes] Add various contributions from Vincenzo, Ivan, Enrico for v6.28 27 January 2023, 15:21:11 UTC
6cfdc07 [rmkdepend] Use snprintf against warning (GCC 12.2): ``` build/rmkdepend/include.c:306:28: warning: ‘%s’ directive writing up to 8190 bytes into a region of size between 1 and 8191 [-Wformat-overflow=] 306 | sprintf(path, "%s/%s", *pp, include); | ^~ ``` Apple needs to be told to expose snprintf... (cherry picked from commit 19909eb71a5ce5a066ca4588e62ff012dec0bb7c) 27 January 2023, 13:52:21 UTC
23e406f [cmake] Silence macOS linker warnings on -undefined dynamic_lookup: See https://github.com/root-project/root/issues/11937 for why that is currently needed. `flat_namespace` is not a solution. (cherry picked from commit 5ad4ab94d07b3b6a9b262f7c6746a2c1608d3a86) 27 January 2023, 13:31:12 UTC
a567664 Revert "[cmake] Xcode 14 warns about `-undefined dynamic_lookup`; simply suppress:" See https://github.com/root-project/root/issues/11937 for why `-flat_namespace` is bad. This reverts commit a05d4beded1481a86a65e450826352eb528b03e7. (cherry picked from commit 0e03b6afabf98089a0bff454490a4d7d6b3c8e7a) 27 January 2023, 13:31:12 UTC
09995ce [cmake] Disable llvm-assertions for ROOT=RelWithDebInfo: `verifyPreservedAnalysis()` is super slow these days. It gets run when assertions are one (!NDEBUG). Turn this off unless told to build a Debug build of ROOT (where time does not matter, and is expected to not be representative for reality) or where LLVM_BUILD_TYPE is turning asserts on. (cherry picked from commit 92c90e8deff323fd2eab700e384dd3944b754471) 27 January 2023, 13:30:50 UTC
5d0849d Check if a callfunc returns void before setting the return result. This fixes root-project/root#11930 27 January 2023, 06:48:08 UTC
856c933 [RF] xroofit improvements This gets rid of the define private public etc "hacks" that we previously present. There are a number of other improvements made in recent weeks too, these are all detailed in commits in the main xroofit repo. 26 January 2023, 16:27:12 UTC
7c5ef22 [RF] New tutorial about bias and numeric issues in binned fits A new `rf614_binned_fit_problems` tutorial is added in both C++ and Python. 26 January 2023, 16:27:12 UTC
52a60f4 Update `rf613_global_observables` 26 January 2023, 16:27:12 UTC
92abe00 [RF] Fix signature of `RooWorkspace::getSnapshots()` For ROOT 6.26, the `RooWorkspace::getSnapshots()` method was introduced in commit 460a58cb28. However, the signature was not what it should have been: it returned a copy of the snaphot list instead of a `const` reference. This is fixed now, which also uncovered a bug in some RooStats code where the snapshots are supposed to be transferred from one workspace to another, but they were just appended to the new list that was returned by `getSnapshots()`, so whe whole code had no effect. This is fixed now by correctly using `RooWorkspace::saveSnapshot()`. 26 January 2023, 16:27:12 UTC
7c498f3 [math] Add release notes for Math (Fitter classes and Minuit2) for 6.28 26 January 2023, 16:13:15 UTC
ab71e77 [tmva] Add release notes for new TMVA developments in 6.28 26 January 2023, 16:13:15 UTC
1aef2bf [tmva] Fix code generation in RSofieReader Create a separate scope for the parsing code to avoid creating objects in global ROOT interprter space. Handle better also errors when jitting the code by throwing run-time exceptions Improve debug messages in verbose mode 26 January 2023, 16:13:15 UTC
a118482 [tmva] Add a new tutorial for TMVA RSofieReader class Add also the correct dependency on the TMVA_Higgs_Classification tutorial for creating the input file 26 January 2023, 16:13:15 UTC
7df097e [tmva][sofie] Speed up SOFIE tests configuration Use a single executable to parse all ONNX input files and generate the appropriate headers. This speed up the parsing especially in the case of using ROOT files, since we avoid the initialization/loading of libraries for every file The CMakeFile is modified to generate automatically the C++ code to parse all input files Move also all input files in the same directory and not having a separcate onnx directory. This required adding support for serialization of some different types (e.g. int) than float in SOFIE_Common 26 January 2023, 16:13:15 UTC
c992f42 [tmva][sofie] Backport of fixes for supporting Dropout layer in Keras parser PR #12076 fix: ignore dropout layer in SOFIE Keras Parser fix: mimic dropout by identity operator fix: add function definition, map error, and if condition feat: add support for identity layer in SOFIE Keras Parser fix: identity operator should assign values in vector Revert "fix: identity operator should assign values in vector" This reverts commit f190789e97ca1b1e2342da328066067626c8d67b. 26 January 2023, 16:13:15 UTC
86754c0 [tmva] Fix the parallel running in ctest of some TMVA tutorial [tmva] More fixes to avoid timeout in TMVA tutorials commits from PR #12038 and #12041 26 January 2023, 16:13:15 UTC
b20d1fd [math] Do correctly the setting of initial variables in TLinearMinimizer The function TLinearMInimizer::SetVariable needs to return true otherwise the variable counting is not correct. Also fix the number of free variables of the Linear Minimizer 26 January 2023, 16:13:15 UTC
324f8e3 [tmva][sofie] Exclude parsing from Keras for Conv layer when using Python2 A function in the Python C API used when parsing Conv layer is available only in Python3 versions. Exclude running that code when using Python2. Also fix the test for the case the COnv parsing is notg available feat: GetValueFromDict method for handling dictionary access (commits from PR #11950) 26 January 2023, 16:13:15 UTC
63e1caf [hist] TH1::GetCumulative: fix error setting Assign the cumulative error to the newly generated histogram instead of the original one. 26 January 2023, 16:13:15 UTC
776667b [RF] Offsetting in `RooAbsPdf::fitTo()` for new test statistic classes The offsetting named argument to `RooAbsPdf::fitTo()`, is now also considered when using the new modular test statistics. 26 January 2023, 11:44:08 UTC
6596bc2 [graf] Additional options for `TPad::PlaceBox()` method This is needed so that the new RooBrowser doesn't need to access the private collision grid of the TPad. These additional options allow the placement of the box with choice of priority over directions as well as option to place within the margins of the pad. Wanted for 6.28 release too! 26 January 2023, 11:44:08 UTC
3accc81 [RF] Increase version number of `RooRealVar` In ecd98632, the class version of the `RooAbsArg` class was incremented. As explained in #8791, there are sometimes warnings in the IO of derived classes if their version number is not increased as well. Increasing the class version of RooRealVar indeed fixes this warning that one gets right now when reading old workspaces: ``` Warning in <TStreamerInfo::BuildCheck>: The StreamerInfo of class RooRealVar read from file toyws/WS-VHbb-STXS_mu_toy_new.root has the same version (=8) as the active class but a different checksum. You should update the version to ClassDef(RooRealVar,9). Do not try to write objects with the current class definition, the files will not be readable. Warning in <TStreamerInfo::CompareContent>: The following data member of the on-file layout version 8 of class 'RooRealVar' differs from the in-memory layout version 8: RooAbsBinning _binning; // vs unique_ptr<RooAbsBinning,default_delete<RooAbsBinning> > _binning; ``` 26 January 2023, 11:44:08 UTC
5b71171 Reset function sections before JITting (#12105) This makes all functions end up in the same text section, which is important for TCling on macOS to catch exceptions from constructors: Stack unwinding requires information about program addresses to find out which objects to destroy and what code should be called to handle the exception. These addresses are relocated against a single __text section when loading the produced MachO binary, which breaks if the call sites of global constructors end up in a separate init section. Fixes ROOT-10703 and ROOT-10962 (cherry picked from commit 028fcca0fa76111877751df876cf13968be602f9) 24 January 2023, 11:13:38 UTC
4e805fa Add ROOT files selection in RFileDialog tutorial 24 January 2023, 07:38:06 UTC
904a642 Provide ROOT file name in RFileDialog Fix issue reported in: https://root-forum.cern.ch/t/53224/ 24 January 2023, 07:38:06 UTC
6ab1508 [RF] Remove useless server clearing in `RooGenProdProj` It doesn't make sense to clear the servers in the beginning of the constructor when no servers were adeed yet. 24 January 2023, 07:00:19 UTC
5c1f498 [RF] Improve implementation of `RooAbsArg::redirectServers()` The `RooAbsArg::replaceServer()` function is quite dangerous to use, because it leaves your RooFit objects in an invalid state. See for example this code: ``` RooRealVar x("x", "x", -10, 10); RooRealVar mean("mean", "mean of gaussian", 1, -10, 10); RooRealVar sigma("sigma", "width of gaussian", 1, 0.1, 10); RooGaussian gauss("gauss", "gaussian PDF", x, mean, sigma); RooRealVar mean2(mean); gauss.replaceServer(mean, mean2, true, false); gauss.Print("v"); std::cout << "x : " << &gauss.getX() << std::endl; std::cout << "mean : " << &gauss.getMean() << std::endl; std::cout << "sigma: " << &gauss.getSigma() << std::endl; ``` Here, the proxy for `mean` will still point to the original `mean`, but the server was redirected to the copy `mean2`. This is dangerous, and desyncing of the proxy and server list are actually the underlying reason for a set of RooFit problems. The safter `RooAbsArg::redirectServers()` should always be used, becauese that one is also updating the proxies. Therefore, the `replaceServer()` interface is now marked as dangerous everywhere possible: in a printout when you use it, in the docs, and with the `R__SUGGEST_ALTERNATIVE` macro. Internally, the `replaceServer()` was also used in `redirectServers()`. But this was also causing problems: `replaceServer()` always adds the new server at the end of the server list, which means the list gets reordered. This can confuse usercode that rely on the server list being ordered (yes, that's not a good idea anyway, but there are many codes that do this). This reordering can also be seein in the example code above. Therefore, the `redirectServers()` function is now rewritten to replace the server without changing its position in the server list. This also means that the original server list doesn't need to be copied, as not iterators are invalidated. Furthermore, the `redirectServers()` is more optimized now. Before, it redundantly figured out whether a server was a value and/or shape server. Now, this is figured out only once when removing the original server from the client. In summary: this PR makes RooFit code safer and faster by changing `RooAbsArg::redirectServers()`. 24 January 2023, 07:00:19 UTC
d14bdde Extra public accessor methods 24 January 2023, 07:00:19 UTC
8928ee2 [RF] New way to fix compute graph with `RooAbsArg::compileForNormSet()` For the new RooFit BatchMode, the model pdf had to be "compiled" for a fixed normalization set before being evaluated by the RooFit driver. This step was implemented in a rather hacky way, because it only became clear gradually how important this step is, as many changes need to be done to the computation graph before it can be used by the BatchMode. It started by "unrolling" the normalization integrals such that they are separate nodes that can be evaluated by the RooFit driver. Then, it also covered the transformation of every RooProdPdf into a new object that exposes the full intenal computation graph that is cached by the RooProdPdf for a given norm set. These two changes where done in separate passes through the compute graph, and there was also a third pass to figure out dependencies and normalization sets in the graph, and some more recursive passes the attach new servers. This all became very compilcated and hard to debug, as the separate passes through the graph interfered with each other as well. With all the lessons learned, this commit suggests a new more general way to compile a model for a given normalization set. It is now done in a **single recursive pass through the graph** via the newly-proposed function `RooAbsArg::compileForNormSet(RooAbsArg const& normSet, context)`. It's job is to make a clone of the RooAbsArg where the normalization set is fixed to `normSet`, given some context. Now, the details of unrolling the integrals of a RooAbsPdf and replacing the RooProdPdfs can be implemented in the overload for this function of the specific class. There is even an overload for the RooSimultaneous now, which contains all the logic of making the RooSimultaenous ready for the NLL creation. There are still some rough edges in the new interface, but it is already a big step forward that will make debugging much easier because it's now much less compilcated to understand how the computation graph is set up by the BatchMode. Also, this makes the speed of NLL creation with the BatchMode on par with the speed of `createNLL()` without BatchMode. Finally, this is also the groundwork for some future RooFit developments, like the analytical convolution support for the GPU. To implement this, it will also be beneficial to compile the analytical convolution classes for a given normalization set, which can now be done in an easy modular way. 24 January 2023, 07:00:19 UTC
a51b693 [RF] Explicit `BatchMode("off")` in testRooSimultaneous if needed There was an obvious place in a unit test where `BatchMode("off")` was required in createNLL, because the created NLL was compared to another one with `BatchMode("cpu")`. 24 January 2023, 07:00:19 UTC
766af81 [RF] Refactor genContext generation in RooSimultaneous In the `RooSimultaneous::genContext` function, the logic that figures out which `RooAbsGenContext` implementation to instantiate needs to know the list of all category components. The way to figure this out depends on the type of the index category, and this logic is also reused in the `RooAbsGenContext` implementations for the RooSimultaneous. That's why it is now factored out into a protected function called `RooSimultaneous::flattenCatList()`. 24 January 2023, 07:00:19 UTC
6940e41 [RF] Make genContext functions of RooSimultaneous public Plus some code modernization of the gen context implementations 24 January 2023, 07:00:19 UTC
26fb84a [math] KahanSum release notes 24 January 2023, 07:00:19 UTC
66484a4 [math] KahanSum: add operator== and !=, add += doxygen note 24 January 2023, 07:00:19 UTC
89c8b32 [NFC] Extend TDirectoryAtomicAdapter comments 23 January 2023, 12:44:31 UTC
b84cef7 Check empty pointset in REvePointSetProjected::UpdateProjection 23 January 2023, 07:13:37 UTC
9ce042f Correction in BuildRenderData: Use local TGeoManger when create TGeo shape 23 January 2023, 07:13:37 UTC
ec8798a [RF] RooProduct schema-evolved i/o bug fix Handle case where p0 or p1 are null -> ensure not null by time expectProxyIs is called. 22 January 2023, 20:01:50 UTC
6045df2 [math] Delete copying of `TFoamCell` The docs said explicitly to not use the copy constructor and the copy assignment, so these operators should be deleted, as well as moving. 22 January 2023, 20:01:50 UTC
back to top