32template<
class RooArgSetPo
inter_t>
33std::unique_ptr<RooArgSet> makeSnapshot(RooArgSetPointer_t
const &set)
37 auto out = std::make_unique<RooArgSet>();
38 set->snapshot(*out,
false);
55 for (std::size_t iArr = 0; iArr <
_asArr.size(); ++iArr) {
57 for (std::size_t i = 0; i <
_clArr.size(); ++i) {
69 *
this = std::move(tmp);
87 std::array<RooArgSet *, 4> sets{set1, set2, set3, set4};
90 for (std::size_t i = 0; i <
_clArr.size(); ++i) {
93 bool match =
_clArr[i] == codeList;
96 for (std::size_t iArr = 0; iArr < 4; ++iArr) {
97 if ((
_asArr[iArr][i] && !sets[iArr]) || (!
_asArr[iArr][i] && sets[iArr]))
102 for (std::size_t iArr = 0; iArr < 4; ++iArr) {
103 if (
_asArr[iArr][i] && sets[iArr] && !sets[iArr]->equals(*
_asArr[iArr][i]))
113 _clArr.push_back(codeList);
114 for (std::size_t iArr = 0; iArr < 4; ++iArr) {
115 _asArr[iArr].emplace_back(makeSnapshot(sets[iArr]));
size_t size(const MatrixT &matrix)
retrieve the size of a square matrix
Registry for analytical integration codes.
int store(const std::vector< int > &codeList, RooArgSet *set1=nullptr, RooArgSet *set2=nullptr, RooArgSet *set3=nullptr, RooArgSet *set4=nullptr)
Store given arrays of integer codes, and up to four RooArgSets in the registry (each setX pointer may...
std::vector< std::vector< int > > _clArr
! Array of array of code lists
std::array< std::vector< std::unique_ptr< RooArgSet > >, 4 > _asArr
! Array of RooArgSet pointers
RooAICRegistry(std::size_t size=10)
RooAICRegistry & operator=(const RooAICRegistry &other)
Copy assignment.
std::size_t size() const
Number of stored code lists.
RooArgSet is a container object that can hold multiple RooAbsArg objects.