d040ada | moneta | 25 May 2022, 14:09:15 UTC | [RF] Correctly restore the error definition in the Minimizer class after computing the contour This resets correctly the original error definition in the Minimizer class and fixes the problem of calling two times RooMinimizer::contour() (issue #10440) | 25 May 2022, 14:09:15 UTC |
9114cac | Javier Lopez-Gomez | 23 May 2022, 12:37:26 UTC | [ntuple] RRecordField: allow for manually providing member offsets * Provide a constructor that takes the list of member offsets and corresponding C++ type. This is required for `std::pair` and `std::tuple` fields. Make the private members protected. * Given that RRecordField takes the ownership of the child fields passed in the `std::vector<std::unique_ptr<Detail::RFieldBase>> &itemFields`, provide also a constructor that takes a rvalue reference. | 24 May 2022, 09:15:57 UTC |
9464ac7 | Javier Lopez-Gomez | 23 May 2022, 12:32:12 UTC | [ntuple] RRecordField: cache the member offsets during construction Compute the offset for each member in the `RRecordField` constructor and reuse this information in other member functions. | 24 May 2022, 09:15:57 UTC |
a2b1005 | Jakob Blomer | 23 May 2022, 13:49:50 UTC | [DF] Allow for RDF creation from RNTuple object | 24 May 2022, 06:35:36 UTC |
0496657 | Jakob Blomer | 22 May 2022, 20:26:41 UTC | [ntuple] Fix compilation on macOS 10.15 | 23 May 2022, 20:08:57 UTC |
8e6f723 | Axel Naumann | 20 May 2022, 14:27:25 UTC | [cmake] Bump Vc to 1.4.3; fixes macOS warnings: the patch is now included in the release; remove it. | 23 May 2022, 07:29:02 UTC |
cf78f40 | Jakob Blomer | 20 May 2022, 12:53:01 UTC | [ntuple] Use RVec collection type in dimuon tutorial | 21 May 2022, 12:29:22 UTC |
d53419e | Jakob Blomer | 20 May 2022, 12:23:34 UTC | [DF] Fix-up reading of cardinality column in ntuple unit test | 21 May 2022, 12:29:22 UTC |
6e52fc6 | Jakob Blomer | 19 May 2022, 22:31:32 UTC | [DF] Replace std::vector by RVec in RNTuple collections | 21 May 2022, 12:29:22 UTC |
e6cb89c | Vincenzo Eduardo Padulano | 11 May 2022, 17:37:26 UTC | [DF][NFC] Adapt test to refactoring | 20 May 2022, 21:25:16 UTC |
ec2d62b | Vincenzo Eduardo Padulano | 11 May 2022, 08:18:58 UTC | [DF] Refactor dependency between head node and its backend In local RDataFrame, the RLoopManager class has information about the data source and also how to execute the computation graph. For example, it knows how to call into TTreeProcessorMT if the user requested IMT. Similarly, in distributed RDataFrame the head node object now contains all the info and functions needed to: 1. Create logical ranges of the current data source 2. Create an RDataFrame object in a certain distributed task, starting from one of the previously created ranges 3. Call the functions that rebuild and execute the graph of that particular RDataFrame instance The dependency of the head node from an execution backend is now explicitly stated, by having a positional argument in the __init__ method of the HeadNode class which takes a backend object. The HeadNode.HeadNode class is now also an abstract class and the methods needed for the points 1 and 2 above are properly labeled as abstractmethod. The ComputationGraphGenerator module now has no class, but just free functions to regenerate the computation graph inside a distributed task and then trigger it. The BaseBackend class now is just responsible to define a function that calls the correct backend API to launch distributed mapper/reducer tasks, without knowing The Ranges.DataRange class has been defined as a common super class for logical ranges of different data sources. | 20 May 2022, 21:25:16 UTC |
20077df | Jakob Blomer | 19 May 2022, 21:32:57 UTC | [ntuple] Fix use of TClassRef in RNTuple streamer | 20 May 2022, 14:48:22 UTC |
bb1e739 | Jakob Blomer | 18 May 2022, 22:03:02 UTC | [ntuple] Read compressed anchors | 20 May 2022, 14:48:22 UTC |
3c5171c | Jakob Blomer | 18 May 2022, 22:02:46 UTC | [ntuple] Fix typo | 20 May 2022, 14:48:22 UTC |
194a299 | Jakob Blomer | 18 May 2022, 17:27:11 UTC | [ntuple] Improve RNTuple class documentation (NFC) | 20 May 2022, 14:48:22 UTC |
ff4f6ea | Jakob Blomer | 18 May 2022, 17:25:15 UTC | [ntuple] Fix typo in code comment (NFC) Co-authored-by: Javier Lopez-Gomez <javier.lopez.gomez@cern.ch> | 20 May 2022, 14:48:22 UTC |
f6da1a8 | Jakob Blomer | 18 May 2022, 08:40:53 UTC | [ntuple] Let RNTuple inherit from RFileNTupleAnchor | 20 May 2022, 14:48:22 UTC |
d456608 | Jakob Blomer | 16 May 2022, 08:58:11 UTC | [ntuple] Fix RNTupleTester friend declaration | 20 May 2022, 14:48:22 UTC |
e5003e0 | Jakob Blomer | 16 May 2022, 07:22:39 UTC | [ntuple] Fix-up code comment (NFC) | 20 May 2022, 14:48:22 UTC |
2614232 | Jakob Blomer | 13 May 2022, 12:45:09 UTC | [ntuple] Improve code comment (NFC) | 20 May 2022, 14:48:22 UTC |
a19930b | Jakob Blomer | 13 May 2022, 12:42:13 UTC | [ntuple] Use initial class version 3 for RNTuple | 20 May 2022, 14:48:22 UTC |
bedd2a2 | Jakob Blomer | 16 May 2022, 07:11:52 UTC | [ntuple] Add unit test for TFile embedding | 20 May 2022, 14:48:22 UTC |
fb54ca6 | Jakob Blomer | 11 May 2022, 07:51:10 UTC | [ntuple] Remove unused linkdef pragma | 20 May 2022, 14:48:22 UTC |
fc9f3c6 | Jakob Blomer | 11 May 2022, 07:47:58 UTC | [ntuple] Cleanup headers and comments | 20 May 2022, 14:48:22 UTC |
1c91fa9 | Jakob Blomer | 11 May 2022, 07:35:25 UTC | [ntuple] Fix-up code documentation | 20 May 2022, 14:48:22 UTC |
e9e4c71 | Jakob Blomer | 11 May 2022, 06:52:53 UTC | [ntuple] Align key order in minifile with TFile behavior | 20 May 2022, 14:48:22 UTC |
b722c26 | Jakob Blomer | 10 May 2022, 08:03:17 UTC | [ntuple] Fixup streaming of RNTuple object [WIP] | 20 May 2022, 14:48:22 UTC |
9a6b8a4 | Jakob Blomer | 09 May 2022, 15:53:44 UTC | [ntuple] Improve code documentation | 20 May 2022, 14:48:22 UTC |
70db07f | Jakob Blomer | 09 May 2022, 14:23:21 UTC | [ntuple] Provide RNTupleReader factory method using an RNTuple | 20 May 2022, 14:48:22 UTC |
9d01fce | Jakob Blomer | 09 May 2022, 12:39:06 UTC | [ntuple] Document RNTuple, RFileNTupleAnchor | 20 May 2022, 14:48:22 UTC |
cba1466 | Jakob Blomer | 09 May 2022, 11:45:50 UTC | [ntuple] Make RNTuple::GetAnchor() private | 20 May 2022, 14:48:22 UTC |
7169a75 | Jakob Blomer | 09 May 2022, 08:49:40 UTC | [ntuple] Fix-up writing of RNTuple anchors with TFile | 20 May 2022, 14:48:22 UTC |
2e8ac2f | Jakob Blomer | 08 May 2022, 22:23:24 UTC | [ntuple] Allow for creation of file pages source from anchor (WIP) | 20 May 2022, 14:48:22 UTC |
e1270f8 | Jakob Blomer | 06 May 2022, 20:33:05 UTC | [ntuple] Register file container when reading/streaming RNTuple object | 20 May 2022, 14:48:22 UTC |
f798c7c | Jakob Blomer | 06 May 2022, 20:08:30 UTC | [ntuple] Add custom streamer to RNTuple | 20 May 2022, 14:48:22 UTC |
2bf2b68 | Jakob Blomer | 06 May 2022, 20:01:46 UTC | [ntuple] Move RFileNTupleAnchor::Merge to RNTuple | 20 May 2022, 14:48:22 UTC |
70608d4 | Jakob Blomer | 06 May 2022, 19:56:47 UTC | [ntuple] Remove RFileNTupleAnchor == operator | 20 May 2022, 14:48:22 UTC |
2ca7bca | Jakob Blomer | 06 May 2022, 19:49:52 UTC | [ntuple] Let RNTuple inherit from RFileNTupleAnchor | 20 May 2022, 14:48:22 UTC |
5abd7d7 | Jakob Blomer | 06 May 2022, 09:58:02 UTC | [ntuple] Remove unnecessary utility function | 20 May 2022, 14:48:22 UTC |
4b64fd5 | Enrico Guiraud | 19 May 2022, 22:21:44 UTC | [DF] Reuse nominal Defines whenever possible Due to faulty logic, we were using different RDefine objects for each systematic variation even if the define itself did not depend on the systematic variation under consideration. | 20 May 2022, 14:05:25 UTC |
cd80082 | Vincenzo Eduardo Padulano | 11 May 2022, 13:24:17 UTC | Remove VariationsNode and simplify node creation | 20 May 2022, 13:21:28 UTC |
c5b1418 | Enrico Guiraud | 09 May 2022, 08:52:26 UTC | [DF] Fix wrong downcast in {RRange,RFilter}::GetVariedFilter When previous node of a RRange or RFilter node was a RJittedFilter, we were wrongly downcasting _varied_ filters to the RJittedFilter type, but varied filters are _not_ jitted filters, they are copies of the actual concrete filter. With this patch, if the type of the previous node is RJittedFilter, we treat it everywhere as the generic base class RFilterBase, which fixes the problem and it is consistent with what we already do in RVariedAction. | 20 May 2022, 13:09:34 UTC |
a5c24e8 | Enrico Guiraud | 29 April 2022, 13:24:59 UTC | [DF] Add test for Vary with a Filter after a jitted Filter The test is fixed in the next commit. | 20 May 2022, 13:09:34 UTC |
001eabf | Enrico Guiraud | 18 May 2022, 14:15:30 UTC | [DF] Add missing include in SimpleFiller.h | 19 May 2022, 22:13:55 UTC |
8f44e67 | Enrico Guiraud | 18 May 2022, 13:55:52 UTC | [DF] Factor sanity checks out of method body For readability. | 19 May 2022, 22:13:55 UTC |
fbfe1f2 | Enrico Guiraud | 18 May 2022, 08:47:30 UTC | [NFC][DF] Add a couple of clarifying comments | 19 May 2022, 22:13:55 UTC |
abcb913 | Enrico Guiraud | 18 May 2022, 08:47:09 UTC | [DF] Mark final method final | 19 May 2022, 22:13:55 UTC |
d262262 | Enrico Guiraud | 22 April 2022, 16:17:02 UTC | [ntuple] Fix lifetime management of RVec elements during reads When reading RVecs, we now: - destroy excess elements if size is reduced w.r.t. the previous entry, for consistency with std::vector I/O - generate new values for new elements if size is increased w.r.t. the previous entry -- only if needed instead of unconditionally as before - when reallocating, we call destructors on the old elements and generate the corresponding new elements in the new memory buffer | 19 May 2022, 22:10:23 UTC |
2c4905b | Enrico Guiraud | 14 April 2022, 15:41:58 UTC | [ntuple][NFC] clang-format fixes | 19 May 2022, 22:10:23 UTC |
bfcba15 | Enrico Guiraud | 18 October 2021, 08:21:31 UTC | [ntuple] Factor out type-erased retrieval of RVec data members | 19 May 2022, 22:10:23 UTC |
d2bd8c6 | Enrico Guiraud | 15 October 2021, 19:03:36 UTC | [ntuple] Also test RNTuple+empty RVec entries | 19 May 2022, 22:10:23 UTC |
b616db8 | Enrico Guiraud | 15 October 2021, 19:01:30 UTC | [ntuple] Use constexpr where appropriate Co-authored-by: Philippe Canal <pcanal@fnal.gov> | 19 May 2022, 22:10:23 UTC |
1d84278 | Enrico Guiraud | 15 October 2021, 18:58:53 UTC | [ntuple] Do not destroy RVec elements before reading in new ones RNTuple does not explicitly destroy existing values when reading, it only overwrites the bytes. | 19 May 2022, 22:10:23 UTC |
b36e184 | Enrico Guiraud | 11 October 2021, 17:07:28 UTC | [ntuple] Evaluate RRVecField value size only once and cache it | 19 May 2022, 22:10:23 UTC |
243a3d6 | Enrico Guiraud | 30 July 2021, 15:57:01 UTC | [ntuple] Add RPrintValueVisitor support for RVecs Plus tests for type-erased and non-type-erased value printing. | 19 May 2022, 22:10:23 UTC |
a329793 | Enrico Guiraud | 11 October 2021, 16:29:40 UTC | [ntuple] Make RField<RVec<T>> inherit from RRVecField This removes some code duplication and makes it possible for specialized RField<RVec<T>> instances to act as general RRVecField instances for what regards visitor implementations (immediately useful to implement a single RPrintValueVisitor for all RVec fields). | 19 May 2022, 22:10:23 UTC |
449e9a0 | Enrico Guiraud | 08 October 2021, 09:37:37 UTC | [ntuple] Test reading back std::vectors as RVecs | 19 May 2022, 22:10:23 UTC |
576f758 | Enrico Guiraud | 29 July 2021, 12:33:57 UTC | [ntuple] Remove special-casing of RVec<bool> With RVec's redesign, RVec<bool> now behaves consistently with all other RVec<T>'s (it does not inherit vector<bool>'s behavior). | 19 May 2022, 22:10:23 UTC |
03cee63 | Enrico Guiraud | 29 July 2021, 12:32:23 UTC | [ntuple] Add RRVecField, for type-erased I/O of RVec | 19 May 2022, 22:10:23 UTC |
45b4bd7 | Enrico Guiraud | 20 July 2021, 17:23:16 UTC | [ntuple] Add test for type-erased reads of RVecs | 19 May 2022, 22:10:23 UTC |
1d27190 | Jonas Rembser | 18 May 2022, 23:09:06 UTC | [RF] Avoid setting oper mode to `Auto` in RooAbsReal::computeBatch With all the recent BatchMode developments, it is not necessary anymore to set the operation mode to `Auto` in `RooAbsReal::computeBatch` to make the RooAbsCachedPdf work. Doing this results in a big speedup for the batch mode, bringing the runitme for stressRooFit down from 8 to 7 seconds for the CPU mode (without the BatchMode, the stressRooFit suite takes 7.7 seconds to run). | 19 May 2022, 17:29:31 UTC |
d3378d1 | Jonas Rembser | 18 May 2022, 22:13:28 UTC | [RF] Don't use `RooAbsReal::getVal()` in RooFitDriver anymore For scalar nodes, the RooFitDriver was still doing the evaluation via `RooAbsReal::getVal()` this was because of a problem with the normalization sets of constrained pdfs in the BatchMode. This problem got resolved in this commit, so it's now possible to go for `computeBatch` all the way now. | 19 May 2022, 17:29:31 UTC |
849e34c | Enrico Guiraud | 19 May 2022, 15:44:22 UTC | [NFC][DF] Fix error message in Vary | 19 May 2022, 16:12:40 UTC |
ed6edb1 | Enrico Guiraud | 26 April 2022, 20:24:45 UTC | [DF] Make RCsvDS::FreeRecords private It should never have been public, and there is no reason users should ever call this (users typically do not even instantiate or handle RCsvDS objects directly but only through RDF). | 19 May 2022, 15:38:11 UTC |
48277ac | Enrico Guiraud | 26 April 2022, 20:15:14 UTC | [DF] Mark final methods final in RCsvDS | 19 May 2022, 15:38:11 UTC |
355ba2b | Enrico Guiraud | 26 April 2022, 20:05:20 UTC | [DF][NFC] Remove extra empty line | 19 May 2022, 15:38:11 UTC |
ad4023c | Enrico Guiraud | 26 April 2022, 20:04:35 UTC | [DF] Minor simplification in RCsvDS logic | 19 May 2022, 15:38:11 UTC |
feb43fd | Simeon Ehrig | 16 May 2022, 16:47:19 UTC | DynamicLibraryManager::loadLibrary if the parameter resolve is false The error occurs only when `loadLibrary()` is called with the argument `resolved = false`. A const string reference is not possible here because a temporary copy of lResolved would be referenced. The return type of libStem.str() has the value type prvalue. Therefore, lResolved requires the same type and the compiler inserts a copy constructor to satisfy this. For more details see rule 3.3.1 here: https://en.cppreference.com/w/cpp/language/operator_other#Conditional_operator | 19 May 2022, 13:25:34 UTC |
5c35604 | Jonas Rembser | 10 May 2022, 14:40:58 UTC | [RF] Avoid using test statistics constructors directly in user code The direct creation of RooFit test statistics instances is discouraged because the more configurable `createNLL` and `createChi2` should be prefered. | 19 May 2022, 11:16:49 UTC |
78ffbda | Jonas Rembser | 17 May 2022, 13:37:22 UTC | [RF] Add logging to dataset feature in RooMinimizer Add the possibility to get the parameter values for each function evaluation during the minimization. This is useful to get a consistent minimization path for benchmarking. | 19 May 2022, 10:32:09 UTC |
2d6ef96 | Jonas Rembser | 17 May 2022, 11:27:06 UTC | [RF] Inline RooAbsMinimizerFcn members to be less verbose | 19 May 2022, 10:32:09 UTC |
725fec1 | Enrico Guiraud | 18 May 2022, 08:53:19 UTC | [DF] Do not ask cling a typeid if it does not know the type Before this patch, in order to assert that the column type returned by a Vary expression matched the type of the column we always asked cling to provide a type id for the existing column via TypeName2TypeID(GetColumnType(colName)). That failed if the column had a type not known to the interpreter, e.g. because it was Define'd and the expression returned a user-defined type. With this patch we use the typeid information coming from the RDefine node if it is available, otherwise we try with cling. | 19 May 2022, 07:47:34 UTC |
ec11ec4 | Ivan Kabadzhov | 12 May 2022, 10:00:39 UTC | [DF] Teach `Vary` to accept `Stats` Small reorganization of the code inside the FillHelper, e.g. use a single `MakeNew` instance, and introduce `ResetIfPossible` overloads. Corresponding tests added. | 18 May 2022, 18:48:58 UTC |
b31361d | Javier Lopez-Gomez | 18 May 2022, 12:46:11 UTC | [ntuple] Replace old uses of `std::runtime_error` by `RException` | 18 May 2022, 17:14:57 UTC |
66e201c | Jonas Rembser | 18 May 2022, 15:34:26 UTC | [RF] Correctly implement additional dataset feature in HistFactory In HistFactory, the presence of a `Channel::GetAdditionalDatas` function hinted to the possibility of defining additional datases for a HistFactory model, besides the nominal observations dataset named `"obsData"`. When reading a user-generated HistFactory XML, the additional datasets were in fact read into the `Channel::fAdditionalData` member, and corresponding RooDataSets were created in the per-channel proto workspaces. However, when defining the Measurement object in C++ and dumping the XML via `PrintXML`, the additional datasets were not considered. They were also not considered when merging the datasets in the per-channel proto workspaces into the simultaneous dataset. This commit suggests to implement this correctly. Now, one can define additional datasets as follows in the XML: ```xml <Data HistoName="data" InputFile="data/example.root" HistoPath="" Name="addData"/> ``` If there is no `Name` tag, the RooDataSet in the workspace will use the `HistoName` as its name. Closes #10538. | 18 May 2022, 16:41:20 UTC |
ebd8801 | Jonas Rembser | 09 May 2022, 22:35:42 UTC | [RF] Some code cleaning and modernization in HistFactory | 18 May 2022, 16:41:20 UTC |
839b363 | Chris Jones | 18 May 2022, 15:59:04 UTC | Minor Geometry optimization (#10576) * Return node created in AddNode call * Allow skipping of voxelization in CloseGeometry call | 18 May 2022, 15:59:04 UTC |
120866f | Jonas Rembser | 22 October 2021, 07:38:16 UTC | [RF] Remove entry masking feature from RooDataHist This commit removes some functions from the RooFit data classes: * `RooAbsData::valid()` (virtual method that was overridden in RooDataHist but not RooDataSet) * `RooDataHist::valid(std::size_t i)` and `RooDataHist::valid()` * `RooDataHist::cacheValidEntries()` The `cacheValidEntries` method was originally intended to be used in `RooAbsOptTestStatistic` to mask histogram entries out of the variable range in case of a subrange fit. The reasons why `cacheValidEntries` and the related `valid()` methods should be removed are: 1. It is redundant. In a subrange fit, the `RooAbsOptTestStatistic` is creating a clone of the dataset with the subrange only using `RooAbsData::reduce()`. So all entries are valid by definition. 2. RooDataHist and RooDataSet have inconistent implementations. For the RooDataHist, `valid()` tells you "if bin `i` is considered valid within the current range definitions of all observables" (according to the documentation). For the RooDataSet, it always returns `true`. This inconsistency leaves plenty of room for error, and means that a subrange selection relying on `RooAbsData::vaild()` would be broken anyway because it wouldn't work with RooDataSet. 3. The masking of out-of-range entries unnessecarily increases the `mutable` state of the RooDataHist, which can cause trouble if one updates the observable range but then forgets to call `cacheValidEntries()`. 4. Even the documentation said that `RooDataHist::cacheValidEntries()` was a "shortcut function only for RooAbsOptTestStatistic". Why keep it if `RooAbsOptTestStatistic` doesn't even use it in a meaningful way anymore? | 18 May 2022, 15:28:06 UTC |
30d9e62 | Jonas Rembser | 12 May 2022, 08:09:07 UTC | [RF] Make non-command arg constructors of `RooChi2Var` private In the RooChi2Var, there was another case of inconsistency between constructors that seemingly do the same but actually don't. A RooChi2Var should be created with the constructors that take RooFit command arguments. However, there were also other constructors used by the RooFit test statistic implementation details (i.e. in `RooAbsOptTestStatistic::create`) that when used with default aruments behave inconsistently with the command arg constructors: the default error type is different, and errors will be estimated from the pdf and not from the data. This lead to the confusing situation that when creates a `RooChi2Var` without any command arguments, the default error mode is suddenly different. This inconsistency should be removed by having only the command argument constructors part of the public interface. Making these constructors private should not be a problem. There were already considered implementaiton details before, and their interface was already changed anyway to use the configuration structs in 6.26. Nobody has complained about that so far. Closes #10557. | 18 May 2022, 15:21:22 UTC |
ba38b68 | Enrico Guiraud | 16 May 2022, 11:33:03 UTC | [DF] Fix documentation of two Vary overloads The git diff looks "complicated" but I actually just swapped which function corresponds to which docstring. This should effectively be a non-functional change. | 18 May 2022, 08:30:08 UTC |
365289f | pamputt | 18 May 2022, 08:19:10 UTC | Fix typo (#10601) | 18 May 2022, 08:19:10 UTC |
8fbe6b3 | Jakob Blomer | 17 May 2022, 08:03:52 UTC | [ntuple] Fix vector field unit test | 17 May 2022, 20:30:18 UTC |
8f05559 | Axel Naumann | 16 May 2022, 11:49:40 UTC | [cmake] Use lcgpackages@cern, rather than unstable github: hashes are not stable when downloading release sources from github, see https://security.stackexchange.com/a/240209 https://github.com/root-project/root/issues/10503 | 17 May 2022, 19:03:31 UTC |
a538080 | Axel Naumann | 17 May 2022, 10:02:45 UTC | [tree] Improve doc for TTree::SetAutoSave(). (NFC) | 17 May 2022, 19:03:01 UTC |
58d0313 | Olivier Couet | 17 May 2022, 14:42:17 UTC | Simple TGraph ctor (#10588) * Simple TGraph ctor * More doc * add step parameter | 17 May 2022, 14:42:17 UTC |
0c47421 | Jonas Rembser | 16 May 2022, 13:30:48 UTC | [RF] Move DataMap handling out of RooBatchCompute The RooBatchCompute library should not need to know about the data map implementation. It does not depend on the architecture, and also there are often incompatibilities when using `std::map` (or `std::unordered_map`) with nvcc with the standard library headers on the system. | 17 May 2022, 10:11:36 UTC |
4ffb163 | Jonas Rembser | 13 May 2022, 10:01:37 UTC | [RF] Replace `Double_t` with `double` in RooFit The standard `double` was used in new RooFit code for a few years now, and it's better to update also the old code for consistency. This helps also for doxygen, when the a function with one way of specifying the double is referenced by a signature that uses the other way. | 17 May 2022, 08:57:57 UTC |
4feb08d | Jonas Rembser | 11 May 2022, 10:13:39 UTC | [RF] Introducing binned likelihood fit optimization in HistFactory In a binned likelihood fit, it is possible to skip the PDF normalization when the unnormalized binned PDF can be interpreted directly in terms of event yields. This is now done by default for models HistFactory models, which results in great speedups for binned fits with many channels. Some RooFit users like ATLAS were already using this for a long time, so this feature is battle-tested. To disable this optimization when using the `hist2workspace` executable, add the `-disable_binned_fit_optimization` command line argument. Directly in C++, you can also set the `binnedFitOptimization` to `false` in the HistFactory configuration as follows: ```C++ RooStats::HistFactory::MakeModelAndMeasurementFast(measurement, {.binnedFitOptimization=false}); ``` If your compiler doesn't support aggregate initialization with designators, you need to create and edit the configuration struct explicitely: ```C++ RooStats::HistFactory::HistoToWorkspaceFactoryFast::Configuration hfCfg; hfCfg.binnedFitOptimization = false; RooStats::HistFactory::MakeModelAndMeasurementFast(measurement, hfCfg); ``` | 16 May 2022, 19:57:11 UTC |
67fd82e | Jonas Rembser | 09 May 2022, 23:05:44 UTC | [RF] Remove private `HistoToWorkspaceFactoryFast::SetObsToExpected` The `HistoToWorkspaceFactoryFast::SetObsToExpected` member function was not part of the public interface and used nowhere. It should be removed. | 16 May 2022, 19:57:11 UTC |
e35ef22 | Ivan Kabadzhov | 16 May 2022, 08:12:50 UTC | [core] Remove obsolete (related to `std::iterator`) defines | 16 May 2022, 18:51:40 UTC |
fa6c16a | Ivan Kabadzhov | 16 May 2022, 08:10:33 UTC | [core] Fix type definitions inside `RIndexIter` | 16 May 2022, 18:51:40 UTC |
2f0e3b3 | Ivan Kabadzhov | 13 May 2022, 09:19:29 UTC | [core] Avoid deprecated `std::iterator` Deprecated `std::iterator` since C++17 is substituted in: * `TViewPubFunctionsIter` * `TBtreeIter` * `TListIter` * `TMapIter` * `TObjArrayIter` * `TOrdCollectionIter` * `TRefArrayIter` * `RIndexIter` | 16 May 2022, 18:51:40 UTC |
ae19a4f | Philippe Canal | 19 April 2022, 20:55:26 UTC | stdpair: Don't reuse of emulated StreamerInfo (when having compiled info) Also: don't read past the end of the array of StreamerInfo (the indices start at -1) | 16 May 2022, 17:42:44 UTC |
39e1f13 | Jonas Rembser | 15 May 2022, 09:53:56 UTC | [tree] Return `const&` and not TString by value in TTreeDrawArgsParser When the returned TString is directly a class member of `TTreeDrawArgsParser`, a const reference can be returned instead of making a copy. This fixes some warnings I spotted when compiling with gcc 12.1.0: ``` root/proof/proofplayer/src/TProofDraw.cxx: In member function ‘virtual void TProofDrawHist::SlaveBegin(TTree*)’: root/proof/proofplayer/src/TProofDraw.cxx:783:51: warning: dangling pointer to an unnamed temporary may be used [-Wdangling-pointer=] 783 | if (objname && strlen(objname) > 0 && strcmp(objname, "htemp")) { | ~~~~~~^~~~~~~~~~~~~~~~~~ root/proof/proofplayer/src/TProofDraw.cxx:782:62: note: unnamed temporary defined here 782 | const char *objname = fTreeDrawArgsParser.GetObjectName(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~ root/proof/proofplayer/src/TProofDraw.cxx:789:30: warning: dangling pointer to an unnamed temporary may be used [-Wdangling-pointer=] 789 | PDB(kDraw,1) Info("SlaveBegin", "original object '%s' not found" | ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 790 | " or it is not a histogram", objname); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ root/proof/proofplayer/src/TProofDraw.cxx:782:62: note: unnamed temporary defined here 782 | const char *objname = fTreeDrawArgsParser.GetObjectName(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~ root/proof/proofplayer/src/TProofDraw.cxx:784:60: warning: dangling pointer to an unnamed temporary may be used [-Wdangling-pointer=] 784 | TH1 *hist = dynamic_cast<TH1*> (fInput->FindObject(objname)); | ~~~~~~~~~~~~~~~~~~^~~~~~~~~ root/proof/proofplayer/src/TProofDraw.cxx:782:62: note: unnamed temporary defined here 782 | const char *objname = fTreeDrawArgsParser.GetObjectName(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~ root/proof/proofplayer/src/TProofDraw.cxx:783:38: warning: dangling pointer to an unnamed temporary may be used [-Wdangling-pointer=] 783 | if (objname && strlen(objname) > 0 && strcmp(objname, "htemp")) { | ~~~~~~~~~~~~~~~~^~~ root/proof/proofplayer/src/TProofDraw.cxx:782:62: note: unnamed temporary defined here 782 | const char *objname = fTreeDrawArgsParser.GetObjectName(); ``` Indeed, `GetObjectName()` returns a temporary `TString` here, and with the implicit `const char*` conversion we get a dangling pointer to the TString data. | 16 May 2022, 16:36:02 UTC |
30cb85b | Jakob Blomer | 16 May 2022, 07:42:04 UTC | [ntuple] Remove pre-C++17 header guards | 16 May 2022, 14:06:26 UTC |
aeda9a2 | Olivier Couet | 16 May 2022, 12:48:11 UTC | [skip-ci] Update rel-notes (#10587) | 16 May 2022, 12:48:11 UTC |
7cc8d9b | Olivier Couet | 16 May 2022, 12:42:17 UTC | Implement the option "File" (#10584) * Implement the option "File" The current file name is painted on the bottom right of each plot if the option `File` is set on via `gStyle->SetOptFile()`. * Better positionning | 16 May 2022, 12:42:17 UTC |
4571fd6 | Jonas Rembser | 14 May 2022, 10:02:23 UTC | [math] Avoid warnings about deleting unallocated objects in `TDecompLU` The logic in `TDecompLU` where a separate `bool` was tracking if a given pointer should be "deleted" caused some compiler errors warnings like: ``` root/math/matrix/src/TDecompLU.cxx: In static member function ‘static Bool_t TDecompLU::InvertLU(TMatrixD&, Double_t, Double_t*)’: root/math/matrix/src/TDecompLU.cxx:883:17: warning: ‘void operator delete [](void*)’ called on unallocated object ‘workd’ [-Wfree-nonheap-object] 883 | delete [] pWorkd; | ^~~~~~ root/src/root/math/matrix/src/TDecompLU.cxx:847:13: note: declared here 847 | Double_t workd[kWorkMax]; ``` This commit proposes to rewrite the logic that there is always a well-defined owning pointer that has to be "deleted" if it's not `nullptr`. | 16 May 2022, 12:31:08 UTC |
d11df7c | Jonas Rembser | 07 May 2022, 09:47:36 UTC | [RF] Don't cast to `TObject*` anymore when using logger with `nullptr` This is not necessary anymore, since an overload was added to `RooMsgService::log` that deals with the `nullptr` type directly. | 16 May 2022, 12:30:11 UTC |
afe5873 | Jonas Rembser | 10 April 2022, 15:46:01 UTC | [RF] Fix nullptr dereferencing in `RooMsgService::match` There was a possible nullptr dereferencing before in case a message stream was enabled for a specific class, and then one logs something for the same topic but passing a `nullptr` to the messaging service. In that case, the `RooMsgService::match` should check if the pointer is not a `nullptr` before proceeding to the class matching. | 16 May 2022, 12:30:11 UTC |