6 #include "canvas_root_io/Streamers/BranchDescriptionStreamer.h" 23 std::unique_ptr<TTree> metaDataTree{
29 auto productRegistry = std::make_unique<art::ProductRegistry>();
30 auto* productRegistryPtr = productRegistry.get();
31 TBranch* productRegistryBranch = metaDataTree->GetBranch(
32 art::rootNames::metaBranchRootName<art::ProductRegistry>());
33 if (productRegistryBranch ==
nullptr) {
35 art::rootNames::metaBranchRootName<art::ProductRegistry>());
37 metaDataTree->SetBranchAddress(
38 art::rootNames::metaBranchRootName<art::ProductRegistry>(),
44 bool hasBranchIDLists{
false};
45 if (metaDataTree->GetBranch(
46 art::rootNames::metaBranchRootName<art::BranchIDLists>())) {
47 hasBranchIDLists =
true;
49 metaDataTree->SetBranchAddress(
50 art::rootNames::metaBranchRootName<art::BranchIDLists>(),
54 metaDataTree->GetEntry(0);
58 if (hasBranchIDLists) {
60 std::make_unique<art::BranchIDLists>(
std::move(branchIDLists));
61 metaDataTree->SetBranchAddress(
62 art::rootNames::metaBranchRootName<art::BranchIDLists>(),
nullptr);
66 for (
auto const& product : productRegistry->productList_) {
73 art::detail::BranchDescriptionStreamer::fluffRootTransients(
97 auto const& pd = pr.second;
98 return pd.friendlyClassName() == fcn && pd.moduleLabel() == label &&
99 pd.productInstanceName() == instance &&
104 return it ==
end ?
nullptr : &it->second;
117 std::map<art::ProductID, art::BranchDescription>
const&
end
while True: pbar.update(maxval-len(onlies[E][S])) #print iS, "/", len(onlies[E][S]) found = False for...
std::vector< BranchIDList > BranchIDLists
decltype(auto) constexpr cend(T &&obj)
ADL-aware version of std::cend.
art::BranchDescription const * productDescription(InfoForTypeLabelInstance const &info, std::string const &process) const
std::string friendlyClassName() const
const std::string instance
std::map< art::ProductID, art::BranchDescription > productIDToDescriptionMap_
BranchType branchType() const noexcept
void throwTreeNotFound(std::string const &treeName)
std::string const & metaDataTreeName()
std::map< art::ProductID, art::BranchDescription > const & productDescriptions() const
void updateFile(TFile *tFile)
std::string const & instance() const noexcept
constexpr bool isValid() const noexcept
void throwBranchNotFound(std::string const &branchName)
bool branchInRegistryOfAnyOpenedFile(art::ProductID const &) const
std::unique_ptr< art::BranchIDLists > branchIDLists_
std::string const & label() const noexcept
art::TypeID const & type() const noexcept
decltype(auto) constexpr cbegin(T &&obj)
ADL-aware version of std::cbegin.
cet::exempt_ptr< art::BranchIDLists const > branchIDLists() const
std::set< art::ProductID > allSeenProductIDs_
ProductID productID() const noexcept