|
|
Go to the documentation of this file. 1 #ifndef FWCore_Framework_EDConsumerBase_h
2 #define FWCore_Framework_EDConsumerBase_h
51 class ModuleDescription;
52 class ProductResolverIndexHelper;
53 class ProductRegistry;
54 class ConsumesCollector;
58 namespace eventsetup {
102 std::map<std::string, ModuleDescription const*>
const& labelsToDesc,
120 template <
typename T>
125 template <
typename ProductType, BranchType B = InEvent>
127 TypeToGet tid = TypeToGet::make<ProductType>();
135 template <BranchType B>
140 template <
typename ProductType, BranchType B = InEvent>
142 TypeToGet tid = TypeToGet::make<ProductType>();
148 template <BranchType B>
153 template <
typename ProductType, BranchType B = InEvent>
155 TypeToGet tid = TypeToGet::make<ProductType>();
156 consumesMany<B>(tid);
161 template <BranchType B>
167 template <
typename ESProduct,
typename ESRecord, Transition Tr = Transition::Event>
169 return esConsumes<ESProduct, ESRecord, Tr>(
ESInputTag{});
172 template <
typename ESProduct,
typename ESRecord, Transition Tr = Transition::Event>
176 std::conditional_t<std::is_same_v<ESRecord, edm::DefaultRecord>,
179 eventsetup::heterocontainer::HCTypeTag::make<ESProduct>(),
211 unsigned short iDeltaToProductInstance,
212 unsigned short iDeltaToProcessName)
void modulesWhoseProductsAreConsumed(std::vector< ModuleDescription const * > &modules, ProductRegistry const &preg, std::map< std::string, ModuleDescription const * > const &labelsToDesc, std::string const &processName) const
unsigned int ProductResolverIndex
void consumesMany(const TypeToGet &id)
bool registeredToConsumeMany(TypeID const &, BranchType) const
std::array< std::vector< ESProxyIndex >, static_cast< unsigned int >edm::Transition::NumberOfTransitions)> esItemsToGetFromTransition_
unsigned int recordConsumes(BranchType iBranch, TypeToGet const &iType, edm::InputTag const &iTag, bool iAlwaysGets)
edm::InputTag const & checkIfEmpty(edm::InputTag const &tag)
edm::SoATuple< ESTokenLookupInfo, ESProxyIndex > m_esTokenInfo
ConsumesCollector consumesCollector()
Use a ConsumesCollector to gather consumes information from helper functions.
TokenLookupInfo(edm::TypeID const &iID, ProductResolverIndex iIndex, bool skipCurrentProcess, BranchType iBranch)
void itemsMayGet(BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const
std::vector< ProductResolverIndexAndSkipBit > const & itemsToGetFrom(BranchType iType) const
void throwConsumesCallAfterFrozen(TypeToGet const &, InputTag const &) const
bool registeredToConsume(ProductResolverIndex, bool, BranchType) const
unsigned int m_startOfComponentName
std::vector< char > m_tokenLabels
std::vector< ConsumesInfo > consumesInfo() const
ProductResolverIndexAndSkipBit uncheckedIndexFrom(EDGetToken) const
EDGetTokenT< ProductType > mayConsume(edm::InputTag const &tag)
typename default_record< T >::RecordT default_record_t
void itemsToGet(BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const
auto esConsumes(ESInputTag const &tag)
static EventSetupRecordKey makeKey()
edm::SoATuple< TokenLookupInfo, bool, LabelPlacement, edm::KindOfType > m_tokenInfo
eventsetup::DataKey m_key
eventsetup::EventSetupRecordKey m_record
unsigned short m_deltaToProcessName
void throwBadToken(edm::TypeID const &iType, EDGetToken iToken) const
void updateLookup(BranchType iBranchType, ProductResolverIndexHelper const &, bool iPrefetchMayGet)
virtual ~EDConsumerBase() noexcept(false)
void consumesMany(const TypeToGet &id)
std::array< std::vector< ProductResolverIndexAndSkipBit >, edm::NumBranchTypes > itemsToGetFromBranch_
bool containsCurrentProcessAlias_
void labelsForToken(EDGetToken iToken, Labels &oLabels) const
static const std::string B
ESProxyIndex const * esGetTokenIndices(edm::Transition iTrans) const
unsigned short m_deltaToProductInstance
const char * labelFor(ESTokenIndex) const
void throwBranchMismatch(BranchType, EDGetToken) const
LabelPlacement(unsigned int iStartOfModuleLabel, unsigned short iDeltaToProductInstance, unsigned short iDeltaToProcessName)
EDGetToken mayConsume(const TypeToGet &id, edm::InputTag const &tag)
ProductResolverIndexAndSkipBit m_index
EDGetTokenT< ProductType > consumes(edm::InputTag const &tag)
EDGetToken mayConsume(const TypeToGet &id, edm::InputTag const &tag)
ESTokenIndex recordESConsumes(Transition, eventsetup::EventSetupRecordKey const &, eventsetup::heterocontainer::HCTypeTag const &, edm::ESInputTag const &iTag)
EDGetToken consumes(const TypeToGet &id, edm::InputTag const &tag)
void throwTypeMismatch(edm::TypeID const &, EDGetToken) const
EDGetToken consumes(TypeToGet const &id, edm::InputTag const &tag)
ProductResolverIndexAndSkipBit indexFrom(EDGetToken, BranchType, TypeID const &) const
void convertCurrentProcessAlias(std::string const &processName)
Convert "@currentProcess" in InputTag process names to the actual current process name.
unsigned int m_startOfModuleLabel