- Apr 17, 2021
-
-
Enrico Guiraud authored
-
Enrico Guiraud authored
-
Enrico Guiraud authored
Before this patch, given a TTree with a branch with name different from its leaf, e.g. like this: ``` *Br 0 :NUD_total_ADC : nud_total_adc/D ``` TTreeReaderValue failed to retrieve the leaf when the named passed to the constructor was just "NUD_total_ADC" (while it worked fine with "NUD_total_ADC.nud_total_adc"). In comparison, in a similar situation `TTree::Draw` "tries harder" and it assumes that the desired leaf is the first sub-leaf of the specified branch. With this patch, TTreeReaderValue tries `FindLeaf` after `GetLeaf` and as a last resort it picks the branch sub-leaf if it exists and it is unique. This fixes #6881.
-
Enrico Guiraud authored
-
Bertrand Bellenot authored
* [core] Next bunch of changes for Win64 - Replace some more `long` types by `Longptr_t` - Fix pointer formatting (use `%zx` and `size_t` for architecture dependent format) - Fix several `warning C4267: 'argument': conversion from 'size_t' to 'Ssiz_t', possible loss of data` * [skip-ci] Fix compilation warning on i386 platforms Fix warning: format %zx expects argument of type size_t, but argument 2 has type Long_t {aka long int} [-Wformat=]
-
- Apr 16, 2021
-
-
Jonas Rembser authored
The custom hash table implementation RooHashTable is only used in RooLinkedList for a transient data member. By using std::unordered_map instead, RooHashTable gets obsolete and could be deprecated.
-
Sergey Linev authored
After use of asign operator some fields can be destroyed twice
-
Sergey Linev authored
-
Sergey Linev authored
-
Olivier Couet authored
-
Olivier Couet authored
This PR makes the TFile Layout documentation visible in the Doxygen ROOT reference Guide. - The .txt file have been turned into markdown - Doxyfile have io/doc/TFile folder as input - References/links between the pages have been setup - The \tableofcontents Doxygen functionality has been turned ON - Some typos have been fixed Still two links need to be resolved: http://root.cern.ch/root/RootDoc.html http://root.cern.ch/root/htmldoc/examples/Version302.news.html
-
- Apr 15, 2021
-
-
Stefan Wunsch authored
-
Olivier Couet authored
-
Jonas Rembser authored
Events are double counted if one accidentally defines overlapping ranges and uses them in a multi-range fit. This happened for example in Jira issue ROOT-9548 where the whole dataset was double counted, leading to the parameter uncertainties being underestimated by a factor of sqrt(2). That situation should be avoided. This commit introduces a check for overlapping ranges before the multi-range likelihood is created.
-
Jonas Rembser authored
-
Jonas Rembser authored
The RooFit test statistic classes give wrong results if they are constructed from multiple comma-separated ranges. This can cause errors, such as the one reported in Jira issue ROOT-10038. This commit suggests to throw an exception if multiple comma-separated ranges are detected.
-
Jonas Rembser authored
-
Sergey Linev authored
Fix many warnings, use jquery dialog instead of prompt() or alert()
-
Sergey Linev authored
Let run ping.cxx from any other subdir
-
Sergey Linev authored
-
Stefan Wunsch authored
-
Stefan Wunsch authored
-
Stefan Wunsch authored
-
Stefan Wunsch authored
Fixes #7561 Co-authored-by:
Enrico Guiraud <enrico.guiraud@cern.ch>
-
Philippe Canal authored
This makes a difference for associative containers. For reading the iterator are iterating over the 'TStaging' object rather than the collection. For writing we need to iterated over the collection
-
Philippe Canal authored
The intent was to prevent the creation of sub branch with 2 consecutives dots and to avoid a dot between the branch name of the collection and the underscore for name of the index leaf. The major problem of the first try is that the name of the top level branch was changed from "t." to "t" making existing code search for the branch by fullname failing. Fix #7281 This effectively ammends/corrects d225f942 Before v6.23 ****************************************************************************** *Tree :tree : treelibrated tree * *Entries : 10000 : Total = 485042 bytes File Size = 177202 * * : : Tree compression factor = 2.74 * ****************************************************************************** *Br 0 :t. : Int_t t._ * *Entries : 10000 : Total Size= 83464 bytes File Size = 12844 * *Baskets : 4 : Basket Size= 32000 bytes Compression= 6.25 * *............................................................................* *Br 1 :t..fUniqueID : UInt_t fUniqueID[t._] * *Entries : 10000 : Total Size= 80935 bytes File Size = 12857 * *Baskets : 4 : Basket Size= 32000 bytes Compression= 6.25 * *............................................................................* *Br 2 :t..fBits : UInt_t fBits[t._] * *Entries : 10000 : Total Size= 80903 bytes File Size = 12879 * *Baskets : 4 : Basket Size= 32000 bytes Compression= 6.24 * *............................................................................* *Br 3 :t..e : Double_t e[t._] * *Entries : 10000 : Total Size= 121029 bytes File Size = 65937 * *Baskets : 6 : Basket Size= 32000 bytes Compression= 1.83 * *............................................................................* *Br 4 :t..t : Double_t t[t._] * *Entries : 10000 : Total Size= 121029 bytes File Size = 71633 * *Baskets : 6 : Basket Size= 32000 bytes Compression= 1.68 * *............................................................................* After the first try: ****************************************************************************** *Tree :tree : treelibrated tree * *Entries : 10000 : Total = 484998 bytes File Size = 177400 * * : : Tree compression factor = 2.73 * ****************************************************************************** *Br 0 :t : Int_t t_ * *Entries : 10000 : Total Size= 83438 bytes File Size = 12838 * *Baskets : 4 : Basket Size= 32000 bytes Compression= 6.26 * *............................................................................* *Br 1 :t.fUniqueID : UInt_t fUniqueID[t_] * *Entries : 10000 : Total Size= 80925 bytes File Size = 12852 * *Baskets : 4 : Basket Size= 32000 bytes Compression= 6.25 * *............................................................................* *Br 2 :t.fBits : UInt_t fBits[t_] * *Entries : 10000 : Total Size= 80893 bytes File Size = 12869 * *Baskets : 4 : Basket Size= 32000 bytes Compression= 6.24 * *............................................................................* *Br 3 :t.e : Double_t e[t_] * *Entries : 10000 : Total Size= 121017 bytes File Size = 66198 * *Baskets : 6 : Basket Size= 32000 bytes Compression= 1.82 * *............................................................................* *Br 4 :t.t : Double_t t[t_] * *Entries : 10000 : Total Size= 121017 bytes File Size = 71609 * *Baskets : 6 : Basket Size= 32000 bytes Compression= 1.68 * *............................................................................* Now: ****************************************************************************** *Tree :tree : treelibrated tree * *Entries : 10000 : Total = 485003 bytes File Size = 177402 * * : : Tree compression factor = 2.73 * ****************************************************************************** *Br 0 :t. : Int_t t_ * *Entries : 10000 : Total Size= 83444 bytes File Size = 12844 * *Baskets : 4 : Basket Size= 32000 bytes Compression= 6.25 * *............................................................................* *Br 1 :t.fUniqueID : UInt_t fUniqueID[t_] * *Entries : 10000 : Total Size= 80925 bytes File Size = 12852 * *Baskets : 4 : Basket Size= 32000 bytes Compression= 6.25 * *............................................................................* *Br 2 :t.fBits : UInt_t fBits[t_] * *Entries : 10000 : Total Size= 80893 bytes File Size = 12869 * *Baskets : 4 : Basket Size= 32000 bytes Compression= 6.24 * *............................................................................* *Br 3 :t.e : Double_t e[t_] * *Entries : 10000 : Total Size= 121017 bytes File Size = 66198 * *Baskets : 6 : Basket Size= 32000 bytes Compression= 1.82 * *............................................................................* *Br 4 :t.t : Double_t t[t_] * *Entries : 10000 : Total Size= 121017 bytes File Size = 71609 * *Baskets : 6 : Basket Size= 32000 bytes Compression= 1.68 * *............................................................................*
-
Philippe Canal authored
This test is also 'stressing' the interpreter and in particular the increase in the number of symbols. This leads to a noticeable reduction of the speed of the test (or more exactly the loading/setting up of the test). In addition some of the nightly run on VM which can lead to performance variance (at least on this test) of a factor 4. In a good day on one of 'failing' vm, the 100 iterations takes 400s, during the nightlies it oftens takes 800s to 1000s ... the timeout limit is 1200s, so it is reached from time to time.
-
Vincenzo Eduardo Padulano authored
Bring utility functions from TTreeProcessorMT in their own namespace, to make them available for internal use in other ROOT sources.
-
Enrico Guiraud authored
We want to warn users if a RResultPtr returned by a lazy Snapshot action is destroyed before the event loop is run, but _only_ if there are no other RResultPtr objects that share ownership of the result, i.e. if there is no way to trigger this Snapshot in the future.
-
Enrico Guiraud authored
Test that we don't warn needlessly if a RResultPtr corresponding to a lazy Snapshot action is destroyed _but_ other RResultPtr instances share ownership of the result.
-
- Apr 14, 2021
-
-
Enrico Guiraud authored
In order to specialize cling's value-printing logic for collections we perform some SFINAE checks. Among other things, the checks assert that `++(obj.begin())` is well-formed. That compiles for `std::vector` and other collections with "fat" iterators, but does not compile for collections that use raw pointers as iterators: ```cpp auto beg(std::vector<int> &v) { return v.begin(); } int *beg2(std::vector<int> &v) { return &v[0]; } int main() { std::vector<int> v{1,2,3}; beg(v) += 1; //beg2(v) += 1; // does not compile - beg2(v) is not an lvalue return 0; } ``` Requiring instead `std::begin(obj)` to be well-formed should be backward compatible and it should allow collections that use raw pointers as iterators to also be pretty-printed by cling. Co-authored-by:
Axel Naumann <Axel.Naumann@cern.ch>
-
Jim Pivarski authored
Update freesegments.txt to include 64-bit case and correct an off-by-one error in the description of fLast.
-
Jim Pivarski authored
Update TDirectory.txt to include 64-bit case and the reinterpretation of Modified and Writable as a version.
-
Jim Pivarski authored
-
Jim Pivarski authored
-
Jonas Rembser authored
Benchmarking showed that calculating the bin indices in ParamHistFunc on the fly is faster than caching them in a std::vector.
-
Jonas Rembser authored
-
Jonas Rembser authored
The ParamHistFunc in the histfactory has a persistent std::map<int,int> data member. It can be replaced with a std::vector<int> where the previous key is the index in the vector. This is much faster. Schema evolution is not a problem here. With this commit, the data member is made non-persistent because it can be computed from other persistent data members.
-
Axel Naumann authored
we have lots of proper usage now, and it would need to be adapted to current TBB not offering task_scheduler_init anymore. (cherry picked from commit 1bb8f9a0)
-
Stefan Wunsch authored
-