sort by:
Revision Author Date Message Commit Date
92a35a8 Update for 6.26/14. 28 November 2023, 00:59:39 UTC
41212a8 Fix wrongly formatted core team list 28 November 2023, 00:59:27 UTC
d80bdcf "Update ROOT version files to v6.26/13." 27 November 2023, 22:53:45 UTC
560de48 "Update ROOT version files to v6.26/12." 27 November 2023, 22:53:45 UTC
61713ad [relnotes] Update for 6.26/12. 27 November 2023, 22:53:27 UTC
a40379c [webgui] use classical browser by default 27 November 2023, 21:22:21 UTC
171bed8 [webgui] always use loopback Disregard of rootrc parameters always assign loopback. FastCGI is also disabled for the moment; it is alternative to civetweb 27 November 2023, 21:21:59 UTC
f93c4f0 [webgui] use loopback by default Default value is on in C++ code, but was remained off in system.rootrc and over-rulling C++ (cherry picked from commit 7d500ff00a902c4e2db65b72660493ee2c33e1ac) 26 November 2023, 12:54:07 UTC
932848e [jsroot] 6.3.x 31/10/2023 with critical fixes from v7 Fix - do not draw empty TGraph Fix - do not exclusion if distance too small Fix - correctly open channel in web window Fix - correctly get bin for RH3 31 October 2023, 12:05:11 UTC
29a2817 [df] Add regression test for #12043 03 October 2023, 20:56:33 UTC
72a8cef [df] Avoid clearing sample callbacks after event loop Sample callbacks can be registered by an RAction or an RDefinePerSample instance. In both cases, the lifetime of the callback is tied to the lifetime of the object itself. Avoid eager clearing of the callbacks so to not interfer with the normal functioning. 03 October 2023, 20:56:33 UTC
e352c60 [df] Add RDefinePerSample to CMakeLists.txt 03 October 2023, 17:13:09 UTC
4da8566 [RF][HF] Remove commented-out `Systematic` class from HistFactory Yesterday, I accidentally added a LinkDef entry for `RooStats::HistFactory::Systematic` (2607947ee3) as I didn't realize that this class was commented out. This commit removes this LinkDef entry again, and removes the commented-out class declaration such that these mistakes don't happen again. 02 October 2023, 12:30:47 UTC
20368cf [io] Validate fList data member in TDirectory::RecursiveRemove 01 October 2023, 16:48:36 UTC
4ddb69b [io] Do not initialize gROOT in TDirectory destructor 01 October 2023, 16:48:36 UTC
7ce25a8 Add unittest for TDirectoryFile destructor With the reproducer described in https://github.com/root-project/root/issues/13691. The test *must* link to some library that is not automatically ignored when loading PCMs in TCling::RegisterModule in order to trigger the segfault. 01 October 2023, 16:48:36 UTC
947c6fe [RF][HF] Add missing LinkDefs for systematics classes in HistFactory This completes the list of LinkDef entries for the classes in `RooStats/HistFactory/Systematics.h`. Closes #12967. 26 September 2023, 22:10:04 UTC
79c33fe [PyROOT] Test TGraph[Asymm,Benti,Multi]Errors getters 08 September 2023, 08:28:29 UTC
7f09a9b [PyROOT] Extend Pythonization of TGraph* getters Extend the regex passed to 'compose_method' to include 'E*(low,high)[d]' getters. 08 September 2023, 08:28:29 UTC
fb22ea9 [core] Do not provide our own strlcpy if glibc >= 2.38 Since version 2.38, glibc provides strlcpy and strlcat. No need to provide our own. In fact ROOT's definitions clash with glibc's: the latter are marked `noexcept`. 29 August 2023, 08:43:31 UTC
9583d15 Delete the object held by gROOT after we reset the globals. For example this allows unique_ptr to be deleted first and thus inform TROOT if need be. Fix #13462 16 August 2023, 22:45:58 UTC
2f33648 [TCling] Fix suppression of enum forward declarations There can be multiple attributes in the forward declaration, see the added test in roottest/cling/dict/enum (reduced from a case reported by CMS in https://github.com/cms-sw/cmssw/issues/42234), so we have to look for the last closing parentheses. (cherry picked from commit 9d2f7612a6e88d3a7148b19e131402349bac509b) 27 July 2023, 11:10:06 UTC
fe72f2f [skip-ci] with the new doxygen the doc footer was corrupted (#12885) (cherry picked from commit d05fe4830381c2ebd435ae8111be3807802ccbbf) (cherry picked from commit e92a6046d0d368864942d22920d1eb7cbb79904f) 26 May 2023, 12:30:42 UTC
98dcad9 TTreeCache::FillBuffer extent internal code doc 23 May 2023, 23:57:35 UTC
475a8e5 TTreeCache: handle binary search failure 23 May 2023, 23:57:35 UTC
919d2e9 TTree::Cache Use binary search instead of linear search for first basket. On an extreme example: 15,272,928 entries 152,739 baskets (and as many clusters) 10,000 Actual TTreeCache buffer size (minimum allowed) 8,442 estimated buffer size of TTreeCache (1.5 times compressed buffer size) 400 bytes per baskets 100 entries per baskets (i.e. per clusters) 25 number of cluster per TTreeCache buffer for single branch with default size. 1 float per entry (reading a single branch). we gain 20% run time on a call to `Tree::Draw` 23 May 2023, 23:57:35 UTC
bff7aa1 TTreeCache correct place cache (avoid O(N^2) behavior Prior to this change, the cache of which basket to start the search on would restart from the first basket at each cluster iteration (i.e. for filling the cache with with clusters) On an extreme example: 15,272,928 entries 152,739 baskets (and as many clusters) 10,000 Actual TTreeCache buffer size (minimum allowed) 8,442 estimated buffer size of TTreeCache (1.5 times compressed buffer size) 400 bytes per baskets 100 entries per baskets (i.e. per clusters) 25 number of cluster per TTreeCache buffer for single branch with default size. 1 float per entry (reading a single branch). This ends up repairing the performance of a simple `TTree::Draw` of a single branch from 1 hour back down to 7s (performance seem in v6.12). This correct an issue introduced by commit 73f6223d0c9 first since in v6.14/00 This fixes #12649 23 May 2023, 23:57:35 UTC
f2c75a0 Always enable cache in TTreePlayer unless explicitly disabled. Previously depending whether the TTreeCache was globally enabled or disabled and whether fAutoFlush was set or not, the TTreeCache would be enabled or not. In particular no longer rely on TTree::Streamer setting fCacheSize to an estimated value when the TTreeCache is disabled globally (The old code lead to the cache being enabled even-though it was disabled). Note/Reminder: `TTreePlayer::Process` (and hence `TTree::Draw`) does not rely on the global setting on whether the cache should be used or not and only respect an explicit disabling of the cache for the specific `TTree` being used. 23 May 2023, 23:57:35 UTC
39a9c4c Add TTree::EnableCache 23 May 2023, 23:57:35 UTC
2114420 TTree::GetCacheAutoSize factor out size calculation 23 May 2023, 23:57:35 UTC
8ed1808 TreeCache fallback size should not use cacheFactor 23 May 2023, 23:57:35 UTC
f4e645e HistFactory: open channel and combined files only once 23 May 2023, 22:35:48 UTC
a25c523 Fix seldom crash in TPad::ShowGuidelines In some cases gPad can be set to tmpGuideLinePad, which is deleted any time ShowGuidelines method is called. In that case pointer on this temporary pad should be removed from TContext object 08 May 2023, 08:06:02 UTC
6a220a3 Add missing #include <cstdint> Fixes compilation error with gcc 13 07 May 2023, 19:55:44 UTC
775bbc6 Fix compilation with gcc13. Missing #include <cstdint>. 07 May 2023, 19:55:44 UTC
e1d7c7a [RF] Fix off-by-one error in HistoToWorkspaceFactoryFast There is an error here that was introduced in `dc65afe`: https://github.com/root-project/root/blob/6abb8e90d9bea276269f375a67855c4065813343/roofit/histfactory/src/HistoToWorkspaceFactoryFast.cxx#L760-L762 This error should only be thrown when the number of observables is not 1, 2 or 3, but currently fires if the number is equal to 3. See the change from `dc65afe` here where the mistake is evident: https://github.com/root-project/root/commit/dc65afe00ec72d18ebc5d31e7b2d6b50c6a20423#diff-42ea09980f1ed2bacde4381f212c35d78be6ddedccf746953dc99d6455525d8aL1256-R1221 The conditional should be `if (fObsNameVec.empty() || fObsNameVec.size() > 3)` This needs to be backported to ROOT 6.26 and 6.28 to make it into the next patch releases. Thanks to @CoffeeIntoScience for reporting this bug! 25 April 2023, 11:24:31 UTC
0edacdf [RF] Don't throw an error if `roobatchcompute` lib was already loaded The `roobatchcompute` library dynamically loads the most performant implementation library that the CPU supports. However, it throws an error if the library was already loaded. Indeed, in most usecases it's correct that the implementation library is not loaded before the RooBatchCompute main library is initialized, but if a RooFit script is executed via `gInterpreter->LoadMacro("Macro_Name.cxx++")`, the library is already loaded the second time the macro is launched like this. Hence, it's better is the `batchcompute` library throws no exception if the implementation is already loaded. This fixes a problem reported on the forum: https://root-forum.cern.ch/t/roofit-computation-library-libroobatchcompute-avx2-was-loaded-before-roofit-initialisation-began/54580 25 April 2023, 11:24:31 UTC
d169650 MakeProject: workaound deficiency in gcc 11.2 warning On Ubuntu 22, gcc 11.2 with get the apparently spurious message: aliceesdProjectSource.cxx: In copy constructor ‘AliESDkink::AliESDkink(const AliESDkink&)’: aliceesdProjectSource.cxx:992:54: warning: writing 16 bytes into a region of size 8 [-Wstringop-overflow=] 992 | for (Int_t i=0;i<4;i++) (&(fTPCdensity[0][0]))[i] = (&(rhs.fTPCdensity[0][0]))[i]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from aliceesdProjectHeaders.h:20, from aliceesdProjectSource.cxx:3: AliESDkink.h:36:26: note: destination object ‘AliESDkink::fTPCdensity’ of size 8 36 | Float_t fTPCdensity[2][2]; //tpc cluster density before and after kink | ^~~~~~~~~~~ I.e. complaining about having only 8 bytes when 16 are reserved. We work around this issue by using: for (Int_t i=0;i<4;i++) reinterpret_cast<Float_t*>(fTPCdensity)[i] = (&(rhs.fTPCdensity[0][0]))[i]; 21 April 2023, 17:52:01 UTC
cec589f Allow splitting of TTime objects 19 April 2023, 23:01:09 UTC
29ebdcb TClassTable: white space 06 April 2023, 22:52:13 UTC
c2f65c0 TClassTable: move table creation trigger out of critical section 06 April 2023, 22:52:13 UTC
0a855ec TClassTable rename RAII class to NormalizeThenLock and add doc 06 April 2023, 22:52:13 UTC
bf8939f TClassTable: Remove obsolete FindElement The name normalization must be done outside of the TClassTable critical section, so both the normalization and lock taking needs to be done outside the FindElement function. Then rename the remaning function (FindElementImpl) into the now available FindElement. Both are private functions 06 April 2023, 22:52:13 UTC
5b5f205 TClassTable: fix data race between dlopen and other use This fixes #12552 This commit add a mutex for the TClassTable inner operations. Several changes were needed to insure that operation that can either take the ROOT global lock or recursively call TClassTable are executed outside of the TClassTable critical sections. 06 April 2023, 22:52:13 UTC
d6bc746 NFC: TClassTable updated white space and newlines 06 April 2023, 22:52:13 UTC
38994b6 Fully qualify ROOT namespace 06 April 2023, 22:52:13 UTC
35e0f6e [VecOps] Avoid -ffast-math The performance gains are unclear and the option can harm users linking against the library with gcc<13, see also https://gcc.gnu.org/bugzilla/show_bug.cgi?id=55522 . (cherry picked from commit 3cfb0da6078ca9ebdb4d006c56102eaff1a1b45f) 03 April 2023, 15:52:56 UTC
ac72372 [VecOps] Avoid unnecessarily large allocations when masking We only need to allocate storage for the elements that pass the mask, not for as many elements as the original array had. 03 April 2023, 15:52:56 UTC
7ff8559 [VecOps] Make sure lifetime of elements is started when masking Before this commit the implementation of RVecN::operator[](const RVecN<V, M> &conds) implicitly assumed that the value type be trivially-constructible: it was using reserve + copy-assignment + manual resizing to fill the returned vector, which never properly initializes the new elements. This commits changes that to a reserve + push_back, which properly constructs the new elements in place. This fixes #12398. 03 April 2023, 15:52:56 UTC
5858905 Fix the copying of TF2 or TF3 objects in TEfficiency::Fit 17 March 2023, 17:02:55 UTC
b08941f [RF] Support `RooAbsCategoryLValue::setBin()` for non-existing ranges In `RooAbsCategoryLValue::setBin()`, there is a check for passing a named binning, because the function doesn't support named binnings. However, if a binning with that name doesn't exist, it is fine to not error out, because the default range is used. 16 February 2023, 09:24:39 UTC
cb99ef5 [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()`. 16 February 2023, 09:24:39 UTC
300183c fix also classification test 08 February 2023, 11:58:26 UTC
020226e [tmva][pymva] Use correct python executable for the tests 08 February 2023, 11:58:26 UTC
e79fa9e Add support in the Keras RModel parser to models where the batch size is not defined. In this case define a RModel with batch size=1 08 February 2023, 11:58:26 UTC
a2d13d5 Re-enable registration of thread-local gDirectory to gROOT. Registrering the thread-local gDirectory with the gROOT (which is special TDirectory) allows to keep the shared_pointer alive until gROOT is destructed. Technically we would only need to keep around the one associated with the main thread. Thread local storage (and hence the original shared_ptr for the thread local gDirectory) is destructed (even for the thread local associated with the main thread) before the static storage is destructed. So prior to this commit, the main thread's gDirectory shared pointer was destructed before the start of the TROOT destructor and then TDirectory::CleanTargets when using explicitly 'gDirectory' was reading deleted memory. 27 January 2023, 21:15:57 UTC
03c011e [NFC] Extend TDirectoryAtomicAdapter comments 27 January 2023, 21:15:57 UTC
295ce33 [NFC] Extend TDirectoryAtomicAdapter comments 27 January 2023, 21:15:57 UTC
ee347fa TDirectory remove redundant lock. It was only lock the access to a atomic that since it is held by a shared pointer is guarantee to exist when it was used in connjunction with the lock 27 January 2023, 21:15:57 UTC
0743f73 TDirectory::CleanTargets: add code comment, remove dead code 27 January 2023, 21:15:57 UTC
b9a0da8 Improve TDirectory code comments 27 January 2023, 21:15:57 UTC
a342b08 Remove TThreadSlots's kDirectoryThreadSlot 27 January 2023, 21:15:57 UTC
36c2b7b Do not register gROOT with the context and gDirectory 27 January 2023, 21:15:57 UTC
de386a0 Remove CINT code guard in TDirectory.h 27 January 2023, 21:15:57 UTC
640df90 Factor out the gDirectory registration 27 January 2023, 21:15:57 UTC
ef4324f Split TDirectory::cd into 2 implementation. Separate the 2 implementation so that the parameter less implementation can focus on the gDirectory update while the implementation taking a path parameter can focus in the path search (and then call the other one). 27 January 2023, 21:15:57 UTC
101adba Slight extension of TDirectory::cd*'s documentation 27 January 2023, 21:15:57 UTC
d90c7ba Add comment why TDirectory::CleanTargets can not use gROOT for ctxt reset 27 January 2023, 21:15:57 UTC
817f5d5 Better reset value for the other thread gDirectory We now apply the same algorithm for the reset value of other's thread gDirectory (point to 'this' file) as we do for the local gDirectory. 27 January 2023, 21:15:57 UTC
4e5210f Must NOT reset gDirectory to gROOT even in threads In the previous implementation at every lookup of the thread local gDirectory, its value was checked against nullptr and if it was, it was reset to gROOT. This disabled the pattern of setting gDirectory to nullptr to prevent any registration of newly create Histogram or TTree. This pattern is used for example in TGraph2D::GetHistogram. The net result was that the pattern work perfectly if it was run on the main thread but failed if it was run in a thread. For example, in the case of TGraph2D::GetHistogram, when this was called on a thread, the ownership was shared between the TGraph2D and gROOT but TGraph2D does not implement RecursiveRemove (since it does not need to, since it does not expect shared ownership) and thus there was case of double deletion or access after delete of the histogram. 27 January 2023, 21:15:57 UTC
222b9e1 Resolve race condition between thread tear down and file closing. In the previous implementation, the TFile retained the address of the thread local gDirectory pointer. However once the thread is tear down that address is now invalid. Instead we now create a shared_pointer. One copy is thread local (and the 'official' location of the thread local gDirectory). Other copies are held by the TFile in their list of gDirectories to be updated at closure. Note: We no longer use TThread as the holder of the thread local for gDirectory. 27 January 2023, 21:15:57 UTC
0d8ab5d TROOT::GetFile avoid nullptr dereference 27 January 2023, 21:15:57 UTC
11ec154 Fix race condition between RegisterContext and gDirectory cleanup. Description of the race conditions: (1) thread one create TFile, gDirectory now points to that file. (2) thread two delete TFile, the destructor calls CleanTargets which has 4 distinct phase (a) take the TFile spin lock and update all the TContext that points to the file (b) still hold the spin lock, clean the other thread's directory. (c) deal with the TContext that were being destructed at the same time (d) update the local gDirectory If between (2)(a) and (2)(b), thread (1) starts the creation of a TContext, and is held at the start of RegisterContext after thread 2 release the spin lock, thread 1 might awaken only after the TFile object has been deleted and thus RegisterContext would access delete memory. If during the destruction of the TFile by thread 2, thread (1) starts the creation of a TContext, but is suspended right before the start of RegisterContext, when it comes back it will use deleted memory to try to acquire the spin lock. 27 January 2023, 21:15:57 UTC
145d8a4 Reenable the cleanup of gDirectory in other threads upon file deletion. This fixes #11907 Inadvertently a previous commit (79a669bb1cd0ccd8bcaeb6c8f6b09c5ced761ac7) disabled the ability to cleanup the thread local gDirectory in other threads when the TFile they pointed to is deleted. 27 January 2023, 21:15:57 UTC
2acfbf3 unify two lines docu returning same value 27 January 2023, 21:15:57 UTC
791e483 [core/base] prevent null deref in decode cycle found by clang-tidy 27 January 2023, 21:15:57 UTC
d79ded0 Improve namecycle documentation 27 January 2023, 21:15:57 UTC
2d3ba9c Fix compilation error in rbrowsable Move GetContent method to TDirectoryElement where it should be. 27 January 2023, 12:51:32 UTC
e47e338 Add ROOT files selection in RFileDialog tutorial 24 January 2023, 07:39:22 UTC
80c1ab6 Provide ROOT file name in RFileDialog Fix issue reported in: https://root-forum.cern.ch/t/53224/ 24 January 2023, 07:39:22 UTC
58c6a86 Remove unused variables all over These were updated / set, but not used. Recent Clang is able to detect and warn about this pattern. 28 December 2022, 10:03:15 UTC
5822744 TMemFile: Use mode SysOpen Pass it for consistency, even though the implementation will ignore it. 28 December 2022, 10:03:15 UTC
62f8389 TFormulaParsingTests: Check both fits in test6 28 December 2022, 10:03:15 UTC
dea5725 testGSLIntegration: Print correct variable 28 December 2022, 10:03:15 UTC
f24eb89 TBits: Use logical and / or to silence Clang warning warning: use of bitwise '&' with boolean operands and warning: use of bitwise '|' with boolean operands 28 December 2022, 10:03:15 UTC
c950f2c TVirtualQConnection: Remove broken SetArg overload Recent Clang complains: warning: 'sizeof (val)' will return the size of the pointer, not the array itself This is correct: If T is an array, "const T*" is a pointer to an array (not a pointer to the first element!). Then sizeof(val) is the size of a pointer, while sizeof(val[0]) is the size of the array behind it. The correct expression could have been sizeof(*val) / sizeof((*val)[0]), but I find it highly unlikely that somebody passes in a pointer to an array. 28 December 2022, 10:03:15 UTC
f50f0db [core,graf2d,gui,proof] Remove unused variable warnings in macOS Cocoa (#10574) Remove unused variable warnings in macOS Cocoa builds. Fixes #10572. Co-authored-by: Javier Lopez-Gomez <javier.lopez.gomez@cern.ch> 28 December 2022, 10:03:15 UTC
219e246 [RF] Disable BatchMode code path in RooBinIntegrator for now The batched evaluation mode in the RooBinIntegrator was still implemented with the old `getValues()` interface. Nowadays, `getValues()` can still be used, but it's not the intended entry point to the batched evaluation anymore. There is still a compatibility layer, but it has lots of overhead because the new `RooFitDriver` is created everytime `getValues()` is called. Therefore, it is better to disable the batched evaluation code path for now. Until the `RooRealBinding` is refactored to not create a new RooFitDriver everytime `getValues()` is called. 28 December 2022, 10:03:15 UTC
e362ece [RF] Avoid redundant code in RooBinIntegrator constructor The one constructor can just be implemented in terms of the other. A case of undefined behavior was also fixed, where the `ClassName()` function was called in the constructor of RooBinIntegrator (it's not allowed to call virtual functions in the constructor). Instead, the class name is now hardcoded. 28 December 2022, 10:03:15 UTC
a4bd1f8 [tmvagui] Fix snprintf warning: ``` rulevisCorr.cxx:173:43: error: ‘snprintf’ output may be truncated before the last format character [-Werror=format-truncation=] 173 | snprintf( cn, 20, "rulecorr%d_", countCanvas+1 ); | ^ rulevisCorr.cxx:173:21: note: ‘snprintf’ output between 11 and 21 bytes into a destination of size 20 173 | snprintf( cn, 20, "rulecorr%d_", countCanvas+1 ); | ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ``` (backport from master) 21 December 2022, 12:35:24 UTC
44994ee TTree Bulk IO prevent leak of ready-to-reuse basket 09 December 2022, 18:26:00 UTC
bfc94bf TBranch::GetEntriesSerialized avoid leaking TBaskets This applies fixes that were introduce to GetBulkEntries in 61c9927f1ab and 60ad1481a66 09 December 2022, 18:26:00 UTC
19cefc0 [cmake] Switch CMP0135 to OLD: We always wanted to use "old", and my prior attept to convince CMake to use "DOWNLOAD_EXTRACT_TIMESTAMP false" did not work because it should be `true`. From the doc: > When specified with a true value, the timestamps of the extracted files will match those in the archive. But instead of passing this to each and every ExternalProject_Add, just switch the global policy to OLD. 08 December 2022, 21:46:09 UTC
532f4ef TTreeReaderArrayBase::CreateProxy Improve numerical type matching. This applies the change similar to 16f11e363c5 and 53a610fa2de that were done on TTreeReaderValue to the array case. In particular it properly handle the double/Double32_t, float/Float16_t, Long64_t, char/signed char 'spurrious' difference/rejection. 08 December 2022, 00:15:36 UTC
7985d2e Avoid TPad::fFrame double delete when read from file This fixes #11747 As seen in https://github.com/cms-sw/cmssw/issues/40091 the code in `TPad::Close`: ``` if (fPrimitives) fPrimitives->Clear(); if (fView) { if (!ROOT::Detail::HasBeenDeleted(fView)) delete fView; fView = nullptr; } if (fFrame) { if (!ROOT::Detail::HasBeenDeleted(fFrame)) delete fFrame; fFrame = nullptr; } ``` is failing in the case of reading a pad from a file in at least some circumstances. `TPad::Streamer` explicit set the bit `kCanDelete` on all objects in the list of primitives, thus including the view and the frame which have their `kCanDelete` bit explicitly reset elsewhere (in the code run during the initial creation of the frame and view). This means that avoiding the a double deletion (the first is now during the `fPrimitives->Clear()`) relies on the heuristic of `HasBeenDeleted` to work properly, at least in the case seen in cmssw above) it does not and lead to crash. 08 December 2022, 00:15:36 UTC
49b0cea [RF] Use explicit normalization set in RooBinSamplingPdf In the `RooBinSamplingPdf`, the underlying PDF is evaluated with a call to `getVal()` without normalization set. This is not a good idea, becaues it implicitly assumes that the PDF was evaluated with the right normalization range the last time and breaks the case where you set the normalization range of the PDF with `setNormRange()`. It is better to evaluate the PDF explicitly normalized and then declate the RooBinSamplingPdf as self normalized. Some unnecessary printouts in the corresponding unit tests are also removed. 07 December 2022, 22:46:43 UTC
4a4587b [RF] Fix normalization issues with RooGenericPdf and RooFormulaVar As a normalization set within `evaluate()`, the RooGenericPdf used the `RooAbsPdf::_normSet` member, and the RooFormulaVar used the `RooAbsReal::_lastNSet` member. Both of them are not supposed to be used outside the implementation of `RooAbsPdf::getValV()` and `RooAbsReal::getValV()` and they are unreliable in any other context. Actually, in `evaluate()`, one should always use the normalization set from the proxy, which is in this case a RooArgList (see for example how the RooAddition does it). This commit suggests to do that for the RooGenericPdf and RooFormulaVar. This change fixes the following Jira issue: [ROOT-5101](https://sft.its.cern.ch/jira/browse/ROOT-5101) A new unit test is implemented in `testGenericPdf` to cover the problem reported in that issue. 07 December 2022, 22:46:43 UTC
0328916 Provide json_fwd.hpp for nlohmann 3.9.1 For systems with old nlohmann/json.hpp ROOT fails to build while it can find not matching json_fwd.hpp. 24 November 2022, 12:14:37 UTC
e79ef2e [cmake] Tell CMake >= 3.24 to use tared timestamps: Newer CMake uses extraction timestamps for extracted files, instead of the timestamp as stored in the tar file, see https://cmake.org/cmake/help/latest/policy/CMP0135.html#policy:CMP0135 This causes (massive) problems with configure/Makefile tar files, where the configure/Makefile dependencies (e.g. autoconf input files) might be newer than configure/Makefile, causing configure/Makefile to wanting to regenerate themselves because they are supposedly out of date. This is https://gitlab.kitware.com/cmake/cmake/-/issues/24003 For anything with "./configure", force the timestamp as stored in the tar file. 22 November 2022, 10:11:58 UTC
c698832 [RF] Remove error in `RooWorkspace::getSnapshot()` if no snapshot found In this forum post, the point was made that `RooWorkspace::getSnapshot()` should not print an error if a snapshot with the passed name is not found. https://root-forum.cern.ch/t/roofit-check-if-snapshot-exist-without-showing-objecthandling-error Just like in the other `RooWorkspace` access functions, like `arg()`, `pdf()`, or `function()`, users expect to use `getSnapshot()` also to query if a snapshot exists and check if the returned value is `nullptr`. So there should be no error printed in `getSnapshot()` itself. If it is actually an error for th caller that no snapshot has been found, an error or exception should be raised by the caller. 21 November 2022, 10:03:51 UTC
back to top