1 #ifndef art_Framework_Principal_Consumer_h 2 #define art_Framework_Principal_Consumer_h 76 #include "cetlib/exempt_ptr.h" 85 class ModuleDescription;
94 static cet::exempt_ptr<Consumer> non_module_context();
96 template <
typename T, BranchType = InEvent>
99 template <
typename T, BranchType = InEvent>
102 template <
typename Element, BranchType = InEvent>
108 template <
typename T, BranchType = InEvent>
111 template <
typename T, BranchType = InEvent>
112 void mayConsumeMany();
114 template <
typename Element, BranchType = InEvent>
130 void showMissingConsumes()
const;
136 bool moduleContext_{
true};
137 bool requireConsumes_{
false};
140 cet::exempt_ptr<ModuleDescription const> moduleDescription_{
nullptr};
145 template <
typename T, art::BranchType BT>
152 consumables_[BT].emplace_back(ConsumableType::Product,
160 template <
typename T, art::BranchType BT>
167 consumables_[BT].emplace_back(ConsumableType::Many,
TypeID{
typeid(T)});
170 template <
typename T, art::BranchType BT>
177 consumables_[BT].emplace_back(ConsumableType::ViewElement,
188 template <
typename T, art::BranchType BT>
195 consumables_[BT].emplace_back(ConsumableType::Product,
203 template <
typename T, art::BranchType BT>
210 consumables_[BT].emplace_back(ConsumableType::Many,
TypeID{
typeid(T)});
213 template <
typename T, art::BranchType BT>
220 consumables_[BT].emplace_back(ConsumableType::ViewElement,
std::array< ConsumableProductVectorPerBranch, NumBranchTypes > ConsumableProducts
ViewToken< Element > consumesView(InputTag const &)
ProductToken< T > mayConsume(InputTag const &)
constexpr T pi()
Returns the constant pi (up to 35 decimal digits of precision)
std::array< ConsumableProductSetPerBranch, NumBranchTypes > ConsumableProductSets
ProductToken< T > consumes(InputTag const &)
ViewToken< Element > mayConsumeView(InputTag const &)