1 #ifndef FWCore_Framework_EDConsumerBase_h
2 #define FWCore_Framework_EDConsumerBase_h
39 class ProductHolderIndexHelper;
40 class ConsumesCollector;
73 template <
typename ProductType, BranchType B=InEvent>
75 TypeToGet tid=TypeToGet::make<ProductType>();
83 template <BranchType B>
88 template <
typename ProductType, BranchType B=InEvent>
90 TypeToGet tid=TypeToGet::make<ProductType>();
96 return mayConsume<InEvent>(id,
tag);
99 template <BranchType B>
104 template <
typename ProductType, BranchType B=InEvent>
106 TypeToGet tid=TypeToGet::make<ProductType>();
107 consumesMany<B>(tid);
112 consumesMany<InEvent>(id);
115 template <BranchType B>
144 unsigned short iDeltaToProductInstance,
145 unsigned short iDeltaToProcessName):
void itemsMayGet(BranchType, std::vector< ProductHolderIndex > &) const
const EDConsumerBase & operator=(const EDConsumerBase &)=delete
ProductHolderIndex indexFrom(EDGetToken, BranchType, TypeID const &) const
void updateLookup(BranchType iBranchType, ProductHolderIndexHelper const &)
void consumesMany(const TypeToGet &id)
void throwTypeMismatch(edm::TypeID const &, EDGetToken) const
LabelPlacement(unsigned int iStartOfModuleLabel, unsigned short iDeltaToProductInstance, unsigned short iDeltaToProcessName)
void itemsToGet(BranchType, std::vector< ProductHolderIndex > &) const
void throwBadToken(edm::TypeID const &iType, EDGetToken iToken) const
const char * productInstance
unsigned short m_deltaToProcessName
unsigned int ProductHolderIndex
edm::SoATuple< TokenLookupInfo, bool, LabelPlacement, edm::KindOfType > m_tokenInfo
EDGetTokenT< ProductType > consumes(edm::InputTag const &tag)
unsigned int recordConsumes(BranchType iBranch, TypeToGet const &iType, edm::InputTag const &iTag, bool iAlwaysGets)
void consumesMany(const TypeToGet &id)
EDGetToken mayConsume(const TypeToGet &id, edm::InputTag const &tag)
ConsumesCollector consumesCollector()
Use a ConsumesCollector to gather consumes information from helper functions.
unsigned short m_deltaToProductInstance
void throwBranchMismatch(BranchType, EDGetToken) const
EDGetToken mayConsume(const TypeToGet &id, edm::InputTag const &tag)
std::vector< char > m_tokenLabels
EDGetToken consumes(TypeToGet const &id, edm::InputTag const &tag)
TokenLookupInfo(edm::TypeID const &iID, ProductHolderIndex iIndex, BranchType iBranch)
virtual ~EDConsumerBase()
void labelsForToken(EDGetToken iToken, Labels &oLabels) const
EDGetTokenT< ProductType > mayConsume(edm::InputTag const &tag)
ProductHolderIndex m_index
unsigned int m_startOfModuleLabel
EDGetToken consumes(const TypeToGet &id, edm::InputTag const &tag)