LArSoft  v07_13_02
Liquid Argon Software toolkit - http://larsoft.org/
ProductInfo.h
Go to the documentation of this file.
1 #ifndef art_Framework_Principal_ProductInfo_h
2 #define art_Framework_Principal_ProductInfo_h
3 
6 
7 #include <array>
8 #include <set>
9 #include <string>
10 #include <tuple>
11 #include <vector>
12 
13 namespace art {
14 
15  class ProductInfo {
16  public:
18 
19  explicit ProductInfo(ConsumableType const consumableType, TypeID const& tid)
20  : consumableType_{consumableType}, typeID_{tid}
21  {}
22 
23  explicit ProductInfo(ConsumableType const consumableType,
24  TypeID const& tid,
25  std::string const& l,
26  std::string const& i,
27  std::string const& pr)
28  : consumableType_{consumableType}
29  , typeID_{tid}
30  , label_{l}
31  , instance_{i}
32  , process_{pr}
33  {}
34 
35  // private:
38  std::string label_{};
39  std::string instance_{};
40  std::string process_{};
41  };
42 
43  inline bool
44  operator<(ProductInfo const& a, ProductInfo const& b)
45  {
46  return std::tie(
48  std::tie(
50  }
51 
52  using ConsumableProductVectorPerBranch = std::vector<ProductInfo>;
53  using ConsumableProductSetPerBranch = std::set<ProductInfo>;
54  using ConsumableProducts =
55  std::array<ConsumableProductVectorPerBranch, NumBranchTypes>;
56  using ConsumableProductSets =
57  std::array<ConsumableProductSetPerBranch, NumBranchTypes>;
58 }
59 
60 #endif /* art_Framework_Principal_ProductInfo_h */
61 
62 // Local Variables:
63 // mode: c++
64 // End:
ProductInfo(ConsumableType const consumableType, TypeID const &tid, std::string const &l, std::string const &i, std::string const &pr)
Definition: ProductInfo.h:23
std::string label_
Definition: ProductInfo.h:38
std::array< ConsumableProductVectorPerBranch, NumBranchTypes > ConsumableProducts
Definition: ProductInfo.h:55
std::string process_
Definition: ProductInfo.h:40
std::string instance_
Definition: ProductInfo.h:39
ProductInfo(ConsumableType const consumableType, TypeID const &tid)
Definition: ProductInfo.h:19
bool operator<(ProductInfo const &a, ProductInfo const &b)
Definition: ProductInfo.h:44
std::set< ProductInfo > ConsumableProductSetPerBranch
Definition: ProductInfo.h:53
HLT enums.
std::array< ConsumableProductSetPerBranch, NumBranchTypes > ConsumableProductSets
Definition: ProductInfo.h:57
std::vector< ProductInfo > ConsumableProductVectorPerBranch
Definition: ProductInfo.h:52
ConsumableType consumableType_
Definition: ProductInfo.h:36