15 descriptions_for_branch_type(
BranchType const bt,
19 for (
auto const& pd : descriptions) {
20 if (pd.branchType() != bt) {
23 result.try_emplace(pd.productID(), pd);
28 using ProductTables_t = std::array<ProductTable, NumBranchTypes>;
33 ProductTables_t result{{}};
45 , descriptions{descriptions_for_branch_type(bt, descs)}
50 cet::exempt_ptr<art::BranchDescription const>
53 if (
auto it = descriptions.find(pid); it !=
cend(descriptions)) {
54 return cet::make_exempt_ptr(&it->second);
66 : tables_{createProductTables(descriptions)}
decltype(auto) constexpr cend(T &&obj)
ADL-aware version of std::cend.
std::vector< BranchDescription > ProductDescriptions
ViewLookup_t createViewLookups(ProductDescriptionsByID const &descriptions)
cet::exempt_ptr< BranchDescription const > description(ProductID) const
ProductLookup_t createProductLookups(ProductDescriptionsByID const &descriptions)
static ProductTables invalid()
std::map< ProductID, BranchDescription > ProductDescriptionsByID
ProductLookup_t productLookup