a3ff83f | Axel Naumann | 07 November 2023, 14:35:55 UTC | [ci] Build the binaries for workflow dispatch! (cherry picked from commit 628613228f0e3d84f9af39cbd4ba27ad090c299c) | 08 November 2023, 07:31:38 UTC |
8e27680 | Axel Naumann | 06 November 2023, 14:23:09 UTC | [foundation] Update version file to 6.30.00. | 06 November 2023, 16:07:43 UTC |
f2b8d33 | Axel Naumann | 06 November 2023, 13:24:48 UTC | [relnotes] Update for 6.30.00. | 06 November 2023, 16:07:43 UTC |
a4151c6 | Axel Naumann | 06 November 2023, 16:06:34 UTC | [cmake] Fix distsrc script. | 06 November 2023, 16:07:43 UTC |
2aa22c3 | Jonas Rembser | 31 October 2023, 12:48:43 UTC | [RF] Yet another fix to bin-by-bin offsetting In simultaneous fits with more than one channel, the NLL variable adds by default a normalization term so that the probability is normalized over the full measurement including all channels. In case of bin-by-bin offsetting, this should not be done because the same term appears in the likelihood in the denominator and cancels out. Also, fixes a problem where the name of the `_offsetPdf` was not correctly reset (previously, only the name of the proxy was changed, not the name of the pdf). | 01 November 2023, 15:29:48 UTC |
70b521d | Jonas Rembser | 31 October 2023, 23:40:23 UTC | [tmva] Move `stressTMVA` inside tmva subdirectory This is done so that it is built in the same cmake project as ROOT itself, so that we can query the `tmva-gpu` and `tmva-cpu` flags. | 01 November 2023, 15:29:18 UTC |
84090a0 | Jonas Rembser | 31 October 2023, 23:27:49 UTC | [cmake] Look for `CUDAToolkit` when building with `tmva-gpu` This is a follow-up to 15a14ae6b4c. The `FindCUDA` module is deprecated since CMake 3.10 and the mentioned commit therefore removed the usage of it. This was fine for RooFit, but TMVA not only compiles sources with the NVidia compiler but also uses the CUDA toolkit in regular C++. Therefore, that commit broke the TMVA GPU features. Unfortunately, I didn't notice before, because of this check in `cmake/modules/SearchInstalledSoftware.cmake`: ```cmake if(tmva-gpu AND NOT CUDA_FOUND) set(tmva-gpu OFF CACHE BOOL "Disabled because cuda not found" FORCE) endif() ``` The `CUDA_FOUND` variable is not set anymore now that `FindCUDA` is not used. That means that `tmva-gpu` was silently disabled, and not building successfully (which I had wrongly concluded because of the absence of errors). This check needs to be replaced with `if( NOT CMAKE_CUDA_COMPILER)`. As recommended in the CMake docs, this should be done with the `FindCUDAToolkit` module, which is what this PR suggests. The `CUDA_ADD_EXECUTABLE` command is also replaced with the regular `add_executable`, because `CUDA_ADD_EXECUTABLE` was also deprecated with `FindCUDA`. Furthermore, all `cuda AND tmva-gpu` checks were replaced with only `tmva-gpu`, because `tmva-gpu` implies `cuda`. See also: * https://cmake.org/cmake/help/latest/module/FindCUDA.html * https://cmake.org/cmake/help/latest/module/FindCUDAToolkit.html | 01 November 2023, 15:29:18 UTC |
e6f8a43 | moneta | 01 November 2023, 12:52:25 UTC | [tmva][sofie] Fix the issue with GNN receivers/senders different for every event The SOFIE GNN must support having different senders and receivers (adjacent matrix) for every event as it is the case in the GraphNet library This is now achieved by including the list(vector) of sender/receivers in the GNN data structure which is passed to the generated infer function. Before the list was used as a static data member of the generated GNN secton class | 01 November 2023, 15:28:25 UTC |
d62f723 | Marta Czurylo | 01 November 2023, 08:50:00 UTC | [DF] Avoid usage of Mathmore/gsl in df106 tutorials | 01 November 2023, 15:19:20 UTC |
601001f | Sergey Linev | 31 October 2023, 08:20:11 UTC | [jsroot] 7.5.2 31/10/2023 1. Fix - proper fit pars display in stats, proper #chi^{2} 2. Fix - several bugs in TFormula parsing 3. Fix - correctly use saved buffer in TF1/TF2 4. Fix - properly adjust size of stats box 5. Fix - support pol0..pol9 functions 6. Fix - TGraph bar width should be at least 1 pixel 7. Fix - prevent drawing of empty TGraph | 31 October 2023, 22:44:38 UTC |
4dcf194 | Sergey Linev | 30 October 2023, 15:03:22 UTC | [jsroot] 7.5.x 30/10/2023 Fix - support pol0..pol9 functions Fix - TGraph bar width should be at least 1 pixel Fix - support TMath::sq() function | 31 October 2023, 22:44:38 UTC |
d3a0a51 | Sergey Linev | 30 October 2023, 09:23:27 UTC | [webcanvas] always store TF1 values, use full range One cannot detect if stored values are wrong or if function cannot be evaluated on client side. Therefore always store in the fSave buffer. Contrary to master branch use full range of TF1 function when calling TF1::Save(). Only this variant works properly. | 31 October 2023, 22:44:38 UTC |
9b29767 | Sergey Linev | 26 October 2023, 14:15:34 UTC | [webcanvas] fill content for TGraph2D histogram If none of valid TGraph2D options are specified, ROOT creates histogram and draw it with content taken from Delunay approximation. This mode is now supported by web canvas | 31 October 2023, 22:44:38 UTC |
cfbec10 | Sergey Linev | 26 October 2023, 11:43:24 UTC | [webcanvas] also search for objects in TMultiGraph list functions Create title when TMultiGraph draw axes | 31 October 2023, 22:44:38 UTC |
9a4c124 | Sergey Linev | 26 October 2023, 11:29:26 UTC | [webcanvas] support functions drawing from TMultiGraph One need to call TF1::Save() to be able use it properly | 31 October 2023, 22:44:38 UTC |
742ccab | Sergey Linev | 30 October 2023, 12:31:29 UTC | [http] allow recursion in THttpServer::ProcessRequests() When inside requests processing gSystem->ProcessEvents called again, let properly process these events - if they called from the same thread. | 31 October 2023, 22:44:38 UTC |
bd1bab2 | Sergey Linev | 26 October 2023, 15:43:29 UTC | Add testing for TF3::Save | 31 October 2023, 22:43:40 UTC |
682fb7c | Sergey Linev | 26 October 2023, 15:38:47 UTC | Add testing of TF2::Save | 31 October 2023, 22:43:40 UTC |
c6c8361 | Sergey Linev | 26 October 2023, 15:32:10 UTC | Add testing of TF1::Save Both default and explicit range should provide proper approximation and handle boundaries | 31 October 2023, 22:43:40 UTC |
b1c48e7 | Sergey Linev | 30 October 2023, 13:38:41 UTC | Rename fNsave -> nsave local variable in TF1::GetSave Avoid confusion with old data member which was present in TF1 class until ROOT6 | 31 October 2023, 22:43:40 UTC |
072583b | Sergey Linev | 27 October 2023, 11:59:18 UTC | Fix TF1/TF2/TF3 GetSave methods When right boundary bins was used, fSave array index was out of range while (xbin+1, ybin+1, zbin+1) are used for approximation. Therefore always use at maximum npx-1 as bin index. | 31 October 2023, 22:43:40 UTC |
f46098b | Sergey Linev | 27 October 2023, 10:54:28 UTC | Fix TF3::Save with default args Same as for TF1 reduce number of saved bins. In such case position will be exactly at the center of histogram bins | 31 October 2023, 22:43:40 UTC |
6c6414b | Sergey Linev | 27 October 2023, 10:43:18 UTC | Fix TF2::Save with default args Same as for TF1 reduce number of saved bins. In such case position will be exactly at the center of histogram bins | 31 October 2023, 22:43:40 UTC |
9b5260e | Sergey Linev | 27 October 2023, 09:24:15 UTC | Fix TF1::Save with default args One should reduce size of saved buffer to get proper dx out of it | 31 October 2023, 22:43:40 UTC |
ab22484 | Olivier Couet | 30 October 2023, 13:17:30 UTC | TScatter release notes | 31 October 2023, 22:42:46 UTC |
af5c087 | Bertrand Bellenot | 31 October 2023, 10:18:16 UTC | [v6-30][skip-ci] Remove the deprecated exceptions option from the CI | 31 October 2023, 22:41:58 UTC |
0969950 | Bertrand Bellenot | 31 October 2023, 12:29:07 UTC | [v6-30][cmake] set the `exceptions` flag to `IGNORE` to silent deprecation warning (thanks Jonas for the hint) | 31 October 2023, 22:39:38 UTC |
341bdb5 | Axel Naumann | 28 October 2023, 22:39:27 UTC | [relnotes] Fill some obvious gaps: TScatter, tree, PyROOT, JSROOT, tutorials, doxygen. | 28 October 2023, 22:41:37 UTC |
9703955 | Axel Naumann | 28 October 2023, 22:01:29 UTC | [relnotes] Mention ROOT_MAX_THREADS and alien removal; fomatting. | 28 October 2023, 22:02:53 UTC |
8a45e8c | Axel Naumann | 28 October 2023, 13:16:25 UTC | [cocoa] Fix wrong boundary of cocoa to-bitmap: From Timur! Fixes black area on top of canvas region in non-batch (i.e. interactive) GUI save-as. I.e. fixes issue #13964. | 28 October 2023, 19:09:49 UTC |
a52f604 | Jonas Rembser | 28 October 2023, 13:02:10 UTC | [PyROOT] Fix typo in recent PyROOT commit `Metho_` -> `Method_` | 28 October 2023, 14:44:53 UTC |
7887caa | Danilo Piparo | 18 September 2023, 21:43:17 UTC | [Dict] Correct dicts with rootcling+sel xml These changes allow the user to generate a dictionary with rootcling and selecting classes with a selection XML file, the selection file format of genreflex, instead of a traditional LinkDef file. Fixes https://github.com/root-project/root/issues/13543 | 28 October 2023, 11:04:34 UTC |
4cbfb0e | Axel Naumann | 12 October 2023, 09:05:22 UTC | [matrix] Fix TMatrixTSparse::SetMatrixArray for RowLwb!=0: Addresses https://github.com/root-project/root/issues/13848 Thanks, Eddy! | 27 October 2023, 14:42:00 UTC |
9961907 | Pere Mato | 26 October 2023, 09:11:27 UTC | Make FindMySQL.cmake more tolerant | 27 October 2023, 14:32:20 UTC |
11abbf6 | Marta Czurylo | 27 October 2023, 14:04:53 UTC | [backport][relnotes] Relnote update Marta - df106 tutorials (#13960) * [RelNotes][DF] Update RelNotes from Marta: df106 tutorials | 27 October 2023, 14:04:53 UTC |
712044a | Axel Naumann | 26 October 2023, 11:19:18 UTC | [relnotes] Mention deprecated + removed modules. | 27 October 2023, 13:39:45 UTC |
771dbed | Axel Naumann | 13 October 2023, 14:13:40 UTC | [cmake] Deprecate exceptions oracle pythia6 pythia6_nolink pyroot-python2: they should be removed in 6.32. | 27 October 2023, 13:39:45 UTC |
f895dc9 | Axel Naumann | 13 October 2023, 14:03:27 UTC | [cmake] Remove build options already deprecated for 6.28. Co-authored-by: Bertrand Bellenot <bellenot@users.noreply.github.com> | 27 October 2023, 13:39:45 UTC |
f5040c3 | Vincenzo Eduardo Padulano | 26 October 2023, 15:27:49 UTC | [relnotes] Add 6.30 contributions by Vincenzo | 27 October 2023, 07:45:17 UTC |
b1b1f89 | moneta | 24 October 2023, 16:11:19 UTC | [mathcore] Fix creating the ParameterSetting when calling SetFCN This fixes using the fit2dHist.C when using the global fit (user defined FCN) This PR fixes #13906 | 27 October 2023, 07:12:03 UTC |
3032bba | Olivier Couet | 20 October 2023, 07:23:09 UTC | Fix Cocoa GUI for MacOS14 and Clang15 (#13885) * Fix Cocoa GUI for MacOS14 and clang5 * Fix the text editor (Thanks Timur !) (cherry picked from commit 6593d774ea90fbd9e5a139c1e429ac2da6125a98) | 26 October 2023, 14:48:18 UTC |
f1fbcf5 | Sergey Linev | 26 October 2023, 09:02:16 UTC | [jsroot] 7.5.x 26/10/2023 with proper stats box size | 26 October 2023, 13:35:39 UTC |
758ed28 | Sergey Linev | 26 October 2023, 07:19:53 UTC | [tbrowser] ensure that TCanvas created when web mode is not active In "classical" TBrowser one want to use normal TCanvas - even if rootrc configured differently. Therefore change gEnv values for the time when canvas is created | 26 October 2023, 13:35:39 UTC |
07adf4b | Sergey Linev | 25 October 2023, 14:40:34 UTC | [jsroot] 7.5.x 25/10/2023 1. Fix - proper fit pars display in stats, proper #chi^{2} 2. Fix - several bugs in TFormula parsing 3. Fix - correctly use saved buffer in TF1/TF2 | 26 October 2023, 07:04:14 UTC |
99e51da | Sergey Linev | 25 October 2023, 12:29:04 UTC | Paint TF1 with default "lf" draw option also when "sames" was provided In some old examples "same" and "sames" draw options for TF1 was used. Currently if "sames" used for TF1 - plain histogram painting is performed which is wrong for the function. Also improve PMC/PLC/PFC handling | 26 October 2023, 07:04:14 UTC |
480013d | Sergey Linev | 24 October 2023, 15:26:23 UTC | [webcanvas] specify real range(s) for TF1::Save calls Otherwise TF1::Save store wrong values, which difficult to use | 26 October 2023, 07:04:14 UTC |
27bddaf | Sergey Linev | 23 October 2023, 14:13:00 UTC | [webcanvas] Support histogram creation for TGraph2D While histogram not stored with TGraph2D, it should be append to the pad list of primitives and drawn independently | 26 October 2023, 07:04:14 UTC |
dbf60c5 | Sergey Linev | 23 October 2023, 08:23:24 UTC | [webcanvas] handle TF1::Save also in hist list of functions | 26 October 2023, 07:04:14 UTC |
d95230f | Jonas Rembser | 25 October 2023, 16:07:26 UTC | [RelNote] Added QuillPusher to the release notes For his work on the RooFit Developer Documentation. | 25 October 2023, 22:40:05 UTC |
5c26f4f | Jonas Rembser | 25 October 2023, 15:59:47 UTC | [RF] Some improvements to docs In particular, make sure that the brief class description is not too verbose and does not repeat the class name. | 25 October 2023, 22:40:05 UTC |
360c76c | Jonas Rembser | 24 October 2023, 20:51:55 UTC | [RF] Improve developer documentation * Correct code highlighting in doxygen * Fix some references to other functions and classes in the reference guide * Add a section that summarizes the relevent implementation details for RooFit AD | 25 October 2023, 22:40:05 UTC |
2e103b1 | Jonas Rembser | 24 October 2023, 17:34:11 UTC | [RF] Introduce RooFit Developer Documentation | 25 October 2023, 22:40:05 UTC |
57ba833 | Christian Tacke | 24 October 2023, 18:25:40 UTC | fix: Use TKey::ReadObject<T> instead of ReadObj ReadObj returns an owning pointer. Using dynamic_cast and ignoring the "not castable" case can leak memory. See: https://root-forum.cern.ch/t/possible-leak-with-dynamic-cast-and-tkey-readobj/56799 | 25 October 2023, 22:40:05 UTC |
cf8a573 | moneta | 24 October 2023, 21:18:53 UTC | [minuit2] Use a lower tolerance for deciding if using 1./g2 in the seed covariance Use precision.Eps() instead of precision.Eps2() for threshold for the lower values for the initial seed covariance matrix | 25 October 2023, 22:40:05 UTC |
c9f6df1 | moneta | 24 October 2023, 15:18:18 UTC | [roofit][tutorials] Do not force using Minuit for contour tutorial After previous commits finding the contour works now in Minuit2 | 25 October 2023, 22:40:05 UTC |
5978ead | moneta | 24 October 2023, 15:13:02 UTC | [minuit2] Fix in Minos Error for limits needs to take care when limits are not present In this case the limit value is zero, so a special treatment is needed to check if a limit is present or not Add also suggestion by Jonas review | 25 October 2023, 22:40:05 UTC |
efdb0f5 | moneta | 21 October 2023, 17:45:51 UTC | [minuit2] Use an value of 1 for the covariance estimated in MnSeed when g2 is zero When g2 is zero better using an arbitrary value of 1 in the covariance then a very large one, which can be problematic. This commit restores what is so far used in the legacy TMinuit | 25 October 2023, 22:40:05 UTC |
8506fd8 | moneta | 20 October 2023, 18:18:46 UTC | [minuit2] Fix a bug in computing Minos error when close to the limit The computed value of the Minos error was WRONG when parameter+error is over the limit, but the minos point is before the limit. Thsi can happen for example when computing a limit on a fraction parameter that is bound to be less than 1. | 25 October 2023, 22:40:05 UTC |
067d044 | moneta | 20 October 2023, 18:00:17 UTC | [minuit2] Fix searching of a new point in MnContour When searching for a new point between p1 and p2, if MnCross fails, retry using a position closer to p1 instead of the middle. Thsi is what is done in old TMinuit. Minuit2 was trying to switch direction of the search and this was causing finding points in the opposite side of contour and messing up the order. Improve also debugging of MnContour | 25 October 2023, 22:40:05 UTC |
0c8f39b | Sergey Linev | 23 October 2023, 11:06:36 UTC | Update TGraph2D properties before painting TGraph2DPainter keep pointers on TGraph2D data, but was not checking if these values were changed. Fixes problem reported https://root-forum.cern.ch/t/56816/ | 25 October 2023, 09:17:45 UTC |
f63ea46 | Vincenzo Eduardo Padulano | 24 October 2023, 14:30:01 UTC | [PyROOT] Fix distributed RDataFrame tests due to error serialization This commit enables serialization of the Python proxy defined within cppyy to the C++ std::runtime_error class. By doing so, we avoid errors that happen in certain configurations of Dask tasks where a std::runtime_error may be thrown within the event loop itself. Recent CI failures report the following: ``` RDataFrame::Run: event loop was interrupted Warning in <TBufferFile::WriteObjectAny>: since runtime_error has no public constructor which can be called without argument, objects of this class can not be read with the current library. You will need to add a default constructor before attempting to read it. Warning in <TStreamerInfo::Build>: runtime_error: base class exception has no streamer or dictionary it will not be saved Warning in <TStreamerInfo::Build>: runtime_error: __cow_string has no streamer or dictionary, data member "_M_msg" will not be saved Error in <TClass::New>: cannot create object of class runtime_error Error in <TBufferFile::ReadObject>: could not create object of class runtime_error *** Break *** segmentation violation ``` This is due to the fact that for some reason the std::runtime_error object is serialized at the end of the function scope within the Dask task. The culprit is the [tblib](https://github.com/ionelmc/python-tblib) Python package, a dependency of Dask. Its most recent version (3.0.0) released on October 22th changes the pickling behaviour of exception objects, which is now evidently more enforced than before. Downgrading to previous versions of tblib make the errors above disappear in the distributed RDataFrame tests. | 25 October 2023, 07:24:47 UTC |
2b57744 | Jonas Rembser | 23 October 2023, 16:47:31 UTC | [RF] More member initialization in class declarations in RooFit | 24 October 2023, 20:47:04 UTC |
e84e3d9 | Jonas Rembser | 21 October 2023, 13:36:09 UTC | [RF] Avoid need for `R__HAS_CUDA` In RooFit, there are checks if ROOT is build with CUDA only in the `.cxx` implementation files, not in the public headers. We therefore don't need a `R__HAS_CUDA` in the ROOT configuration. The `R__HAS_CUDA` flag was only introduced in ROOT 6.26 and it was never advocated to users, so it should be safe to remove it. | 24 October 2023, 20:47:04 UTC |
acc38f7 | Jonas Rembser | 21 October 2023, 13:35:19 UTC | [RF] No need to check `R__HAS_MATHMORE` in roofitmore sources The `roofitmore` is only compiled anyway if mathmore is available. | 24 October 2023, 20:47:04 UTC |
132abe9 | Jonas Rembser | 21 October 2023, 11:03:01 UTC | [RF] Remove `R__HAS_ROOFIT_MULTIPROCESS` from ROOT configuration The `R__HAS_ROOFIT_MULTIPROCESS` is not used in any public header files, so it's not needed. In the RooFit implementation, it is replaced with a `ROOFIT_MULTIPROCESS` define that is part of the RooFitCore target. The `R__HAS_ROOFIT_MULTIPROCESS` was only introduced in ROOT 6.26 and it was never advocated to users, so it should be safe to remove it. | 24 October 2023, 20:47:04 UTC |
00be4ce | Jonas Rembser | 21 October 2023, 10:55:13 UTC | [RF] Move stressRooFit and stressRooStats to `roofit` directory This allows us to better control the test parameters in CMake with common RooFit configuration varaibles, without having to "leak" this information outside the RooFit build configuration. For example, we now don't run the stress tests with the legacy evaluation backend if RooFit is not built with it. | 24 October 2023, 20:47:04 UTC |
00eb2b1 | Jonas Rembser | 23 October 2023, 19:40:30 UTC | [PyROOT] Add patch for commit that avoids failing CPython 3.12 assert | 24 October 2023, 20:47:04 UTC |
19753c5 | Jonas Rembser | 20 October 2023, 16:56:32 UTC | [PyROOT] Prevent functions from crashing due to Python 3.12 assert Since Python 3.12, in the implementation of 'classobject.h' the function PyMethod_GET_SELF performs an assert to check that the passed function argument is a method: ``` \#define _PyMethod_CAST(meth) \ (assert(PyMethod_Check(meth)), _Py_CAST(PyMethodObject*, meth)) [...] static inline PyObject* PyMethod_GET_SELF(PyObject *meth) { return _PyMethod_CAST(meth)->im_self; } ``` It's fair that the assert fails, because the Python type of `meth` in this context is not a `PyMethod_Type`, but the `CustomInstanceMethod_Type` from cppyy. However, as can be seen in the implementation of `CustomInstanceMethod_New`, the actual C++ type that implements this custom cppy type is just the regular `PyMethodObject`. Hence, this commit suggests new assert-free `CustomInstanceMethod_GET_*` macros that replace the `PyMethod_GET_*` macros in the context of the `CustomInstanceMethod` implementation. | 24 October 2023, 20:47:04 UTC |
3913d94 | Jonas Rembser | 23 October 2023, 19:18:03 UTC | [RF] Don't check Minos output code in RooStats LikelihoodInterval Don't check the Minos output code, because if the Minos errors are at the limit, Minuit2 will return nonzero, unlike Minuit 1. This case where the errors are at limit should not cause a failure though. The `stressRooStats` test suite actively provokes it, by fitting a dataset with a single observed value that corresponds to a best-fit parameter value at the limit. With these changes, the `stressRooStats` suite will also pass with Minuit2 and BatchMode, which is now added as a unit test. | 24 October 2023, 20:47:04 UTC |
63f8959 | Vincenzo Eduardo Padulano | 20 October 2023, 13:41:48 UTC | [PyROOT] Avoid SyntaxWarning about invalid escape sequence As suggested by https://docs.python.org/3/whatsnew/3.12.html#other-language-changes | 24 October 2023, 20:47:04 UTC |
e6ca18b | Jonas Rembser | 23 October 2023, 09:48:52 UTC | [Math][Minuit2] Avoid duplicating strategy customization code | 24 October 2023, 20:47:04 UTC |
0ef9542 | will buttinger | 09 August 2023, 13:21:11 UTC | [Math][Minuit2] Allow strategy3 to test convergence during minimization | 24 October 2023, 20:47:04 UTC |
7444da3 | will buttinger | 27 June 2023, 11:36:44 UTC | [Math][Minuit2] New Minuit2 strategy for improved Hessian calculation New Minuit2 strategy for improved Hessian calculation and return without making positive definite. This proposed new Strategy in minuit2 is the same migrad behaviour as Strategy=2 but with the following changes to the Hesse calculation: * The step and g2 tolerances have been zeroed so that the 7 cycles are forced in the diagonal-term calculation. This was found to be necessary in cases where asimov datasets were used for the minimization and there were very few iterations for the approximate covariance to be determined from. * Central finite difference is used for mixed partial derivatives. This requires 3 extra function evaluations per derivative, but is necessary in the case of minima where there is high curvature (in the case of high stats) and the forward finite difference (default) behaviour leads incorrectly to a non-positive-definite covariance matrix * Return the uncorrected covariance matrix, even if it is not positive definite. This useful for checking just how far from positive-definiteness the matrix is by being able to examine the eigenvalues. Additionally, a lower bound on the precision allowed for the spread of eigenvalues of the "hessian" correlation matrix (computing a correlation matrix with the hessian as if it was a covariance matrix) was reduced from 1e-6 to 1e-12 (see MnHesse.cxx) ... it is not clear why 1e-6 was the lower bound previously, but current machine precision can beat that (I get locally 1e-8). I left a comment about whether this lower bound should be made configurable or not... This new strategy was tested with a model with high statistics (almost 50 million events) where the migrad minimization was successful but the hessian was being forced positive definite. With this new Strategy 3 the hessian is accurate and positive definite in all cases tested. | 24 October 2023, 20:47:04 UTC |
65c7f2e | Jonas Rembser | 23 October 2023, 10:51:57 UTC | Apply `clang-tidy` suggestions to tutorials For the tutorials, this is good to do in particular, since they are also examples for good coding practices to the users. | 24 October 2023, 20:47:04 UTC |
a4b939d | Jonas Rembser | 20 October 2023, 15:07:37 UTC | [hist] Apply `clang-tidy` suggestions This commit is applying several harmless suggestions by `clang-tidy`. | 24 October 2023, 20:47:04 UTC |
aad1aa5 | Marta Czurylo | 23 October 2023, 08:23:15 UTC | [DF] Fix AddProgressbar to AddProgressBar and related typos | 23 October 2023, 12:02:20 UTC |
d3954ff | Danilo Piparo | 17 October 2023, 09:49:02 UTC | [PyROOT] Value printing: jit once per type This chane is an optimization of the PyROOT value printing. Instead of jitting the value printing at every invocation of the __str__ method, the jitting now happens only once per type. The printer function pointers are stored in a map. The time needed to print is now equivalent to the previous one only for the first print, much faster afterwards. The memory used is also much lower, since traces in the AST are left only at the first print and only the type name and function pointer are stored in an unordered_map. Fixes https://github.com/root-project/root/issues/12817 | 22 October 2023, 05:32:48 UTC |
1830272 | Jonas Rembser | 20 October 2023, 17:49:42 UTC | [RF] Apply `clang-tidy` suggestions to RooFit | 20 October 2023, 20:41:07 UTC |
49d63be | Jonas Rembser | 19 October 2023, 08:20:26 UTC | [RF] Don't forget to copy `_refRangeName` in RooBernstein copy c'tor Thanks to this forum post for reporting this: https://root-forum.cern.ch/t/roofit-how-to-fit-a-pdf-i-e-roobernstein-with-supporting-interval-smaller-than-data-range | 20 October 2023, 20:41:07 UTC |
9916aba | Jonas Rembser | 20 October 2023, 10:08:58 UTC | [RF] Migrate `stressHistFactory` to gtest in `histfactory/test` It was not meaningful to have a clone on the `stressRooFit` tests suite just for a single test that compares pdf values, and it didn't even use the reference file mechanism from `RooUnitTest`. Since future unit tests are not added to the `stress` suites anymore but added as gtests, we might as well also migrate the single test that was formerly `stressHistFactory`. | 20 October 2023, 20:41:07 UTC |
eea8aea | Jonas Rembser | 20 October 2023, 11:43:18 UTC | [RF] Make it possible to compile RooFit without old test statistics This is a very useful developer tool, because one can see what the coverage of RooFit is if the legacy evaluation backend is not present, without having to worry that is is still used in some code path. | 20 October 2023, 20:41:07 UTC |
78246ca | Jonas Rembser | 20 October 2023, 13:18:28 UTC | [RF] Support and test binned likelihood code path with `Offset("bin")` This is important for full HistFactory model support. | 20 October 2023, 20:41:07 UTC |
6c154c2 | Jonas Rembser | 20 October 2023, 08:38:47 UTC | [RF] Add `RooHelpers.h` that I accidentally removed back to CMake file | 20 October 2023, 20:41:07 UTC |
3f271da | Jonas Rembser | 18 October 2023, 08:58:54 UTC | [RF] Also support `Offset("bin")` in simul. fits with legacy backend Also support the `Offset("bin")` feature in simultaneous fits with the legacy evaluation backend (e.g., the old test statistic classes). In this case, The top-level `RooNLLVar` actually doesn't do anything but contains pointers to the NLLs for the individual channels. The function call to enable the offsetting must be delegated to those. A unit test that covers this is also implemented. Note that for the new CPU evaluation backend, this is working already. | 20 October 2023, 20:41:07 UTC |
7f39c05 | Jonas Rembser | 17 October 2023, 15:58:25 UTC | [RF] Fix copy-paste typo in `EvalBackend::Cuda()` It should return `Value::Cuda` of course. | 20 October 2023, 20:41:07 UTC |
e402204 | Marta Czurylo | 19 October 2023, 13:29:24 UTC | [DF] Don't run 'dataframe/df106_HiggsToFourLeptons.C' if there is no xrootd | 20 October 2023, 14:41:43 UTC |
304ce40 | Marta Czurylo | 23 August 2023, 13:23:01 UTC | [DF] Add systematic variations to tutorials Implemented the systematic variations in the Higgs to Four Leptons tutorial. The revised plot shows the up and down variations of the total Monte Carlo weight (scale factor), together with the uncertainty band in between those lines. The C++ version of the full tutorial is now also available. Co-authored-by: Julia Mathe <julia.mathe@cern.ch> | 20 October 2023, 14:41:43 UTC |
0c435ab | Marta Czurylo | 18 October 2023, 14:43:00 UTC | [DF] Better phrase ProgressBar output (per file being processed) | 19 October 2023, 12:15:20 UTC |
468e0de | Marta Czurylo | 18 October 2023, 14:39:13 UTC | [DF] Add finalize method of the ProgressBar The final status is now printed after all files and all events are processed. It is a one line replacing the "live" progress bar printing. The fix of the `get_tty_size()` function for Mac is implemented as well. | 19 October 2023, 12:15:20 UTC |
5db318b | Marta Czurylo | 17 October 2023, 15:01:38 UTC | [DF] Add ProgressBarAction class as a friend of ProgressHelper class | 19 October 2023, 12:15:20 UTC |
514ffa8 | Marta Czurylo | 17 October 2023, 14:57:15 UTC | [DF] Place ProgressHelper class inside namespace Experimental | 19 October 2023, 12:15:20 UTC |
c49d792 | Danilo Piparo | 06 September 2023, 14:32:58 UTC | [Cling] Simplify std::tuple/pair value printer By using std::apply, now available after moving to C++17, the implementation can be greatly simplified. | 19 October 2023, 11:26:06 UTC |
66b19e7 | Vincenzo Eduardo Padulano | 18 January 2023, 11:41:51 UTC | [DF][NFC] remove tests of hidden pythonizations | 19 October 2023, 07:47:55 UTC |
4f04396 | Vincenzo Eduardo Padulano | 14 December 2022, 14:56:24 UTC | [DF] Hide Pythonizations of Define, Filter The Pythonizations of the RDataFrame API which leverage Numba to JIT Python functions currently only work for Define and Filter. For the moment, we hide this functionality until all common RDataFrame operations are supported. | 19 October 2023, 07:47:55 UTC |
ed9fe8e | Sergey Linev | 17 October 2023, 06:34:30 UTC | [webcanvas] make default off for the TWebCanvas Only when explicitly --web option specified web canvas will be used | 19 October 2023, 06:50:56 UTC |
f06830a | Sergey Linev | 18 October 2023, 12:01:22 UTC | [jsroot] 7.5.1 18/10/2023 1. Fix - expand item in hierarchy painter 2. Fix - correctly use saved TF1 values for non-equidistant bins #270 3. Fix - in log scales replace 10^1 label by 10 4. Fix - vertical align of log labels on X axis 5. Fix - second click of the same item in hierarchy painter Branch 7.5 of jsroot is base for 6.30 release | 19 October 2023, 06:49:57 UTC |
0e07543 | Stefan Wunsch | 25 March 2021, 12:14:10 UTC | [PyROOT] Test that RVec is accessible from the ROOT namespace | 18 October 2023, 16:52:48 UTC |
cd05719 | Stefan Wunsch | 15 April 2020, 14:21:35 UTC | [PyROOT] Add test for implicit import from the ROOT namespace | 18 October 2023, 16:52:48 UTC |
4ce49b3 | Stefan Wunsch | 18 October 2023, 15:08:40 UTC | [Doc][NFC] Add `index.md` for vecops tutorials Closes #7701. | 18 October 2023, 16:52:48 UTC |
cfc687f | Jonas Rembser | 18 October 2023, 13:29:40 UTC | [io] Don't use `R__ALWAYS_INLINE` In TBufferJSON The `R__ALWAYS_INLINE` macro was introduced by commit b7c9be5 in TBufferJSON. However, it breaks the build with GCC and the `-Og` flag, for debug-compatible optimizations: ```txt In member function ‘void TBufferJSON::JsonWriteFastArray(const T*, Int_t, const char*, void (TBufferJSON::*)(const T*, Int_t, const char*)) [with T = bool]’, inlined from ‘virtual void TBufferJSON::WriteFastArray(const Bool_t*, Int_t)’ at /home/rembserj/spaces/master-debug/root/src/root/io/io/src/TBufferJSON.cxx:3296:22: /home/rembserj/spaces/master-debug/root/src/root/io/io/src/TBufferJSON.cxx:3034:23: error: inlining failed in call to ‘always_inline’ ‘void TBufferJSON::JsonWriteArrayCompress(const T*, Int_t, const char*) [with T = bool]’: function not considered for inlining 3034 | R__ALWAYS_INLINE void TBufferJSON::JsonWriteArrayCompress(const T *vname, Int_t arrsize, const char *typname) ``` Libraries other than ROOT have also encountered similar problems: https://github.com/Cyan4973/xxHash/pull/804 The `R__ALWAYS_INLINE` macro is probably not necessary for these templated functions, because the compiler figures out itself whether it's worth to inline the templated functions or not. | 18 October 2023, 16:52:48 UTC |