LArSoft  v07_13_02
Liquid Argon Software toolkit - http://larsoft.org/
KeptProvenance.h
Go to the documentation of this file.
1 #ifndef art_Framework_IO_Root_detail_KeptProvenance_h
2 #define art_Framework_IO_Root_detail_KeptProvenance_h
3 
4 // =============================================================
5 // KeptProvenance: Auxiliary class to handle provenance
6 // information...so I don't lose my mind in
7 // RootOutputFile::fillBranches.
8 
12 
13 #include <set>
14 
15 namespace art {
16 
17  class Principal;
18 
19  namespace detail {
20 
22  public:
23  KeptProvenance(DropMetaData dropMetaData,
24  bool dropMetaDataForDroppedData,
25  std::set<ProductID>& branchesWithStoredHistory);
26 
30 
31  auto
32  begin() const
33  {
34  return provenance_.begin();
35  }
36  auto
37  end() const
38  {
39  return provenance_.end();
40  }
41 
42  void insertAncestors(ProductProvenance const& iGetParents,
43  Principal const& principal);
44 
45  private:
48  std::set<ProductID>& branchesWithStoredHistory_;
49  std::set<ProductProvenance> provenance_{};
50  };
51  }
52 }
53 
54 #endif /* art_Framework_IO_Root_detail_KeptProvenance_h */
55 
56 // Local variables:
57 // mode: c++
58 // End:
DropMetaData const dropMetaData_
ProductProvenance const & insert(ProductProvenance const &)
unsigned char ProductStatus
Definition: ProductStatus.h:12
bool const dropMetaDataForDroppedData_
ProductProvenance const & emplace(ProductID, ProductStatus)
void insertAncestors(ProductProvenance const &iGetParents, Principal const &principal)
KeptProvenance(DropMetaData dropMetaData, bool dropMetaDataForDroppedData, std::set< ProductID > &branchesWithStoredHistory)
std::set< ProductProvenance > provenance_
std::set< ProductID > & branchesWithStoredHistory_
HLT enums.
void setStatus(ProductProvenance const &, ProductStatus)