#include <EDConsumerBase.h>
Classes | |
struct | LabelPlacement |
struct | TokenLookupInfo |
Public Types | |
typedef ProductLabels | Labels |
Protected Member Functions | |
template<typename ProductType , BranchType B = InEvent> | |
EDGetTokenT< ProductType > | consumes (edm::InputTag const &tag) |
EDGetToken | consumes (const TypeToGet &id, edm::InputTag const &tag) |
template<BranchType B> | |
EDGetToken | consumes (TypeToGet const &id, edm::InputTag const &tag) |
ConsumesCollector | consumesCollector () |
Use a ConsumesCollector to gather consumes information from helper functions. More... | |
template<typename ProductType , BranchType B = InEvent> | |
void | consumesMany () |
void | consumesMany (const TypeToGet &id) |
template<BranchType B> | |
void | consumesMany (const TypeToGet &id) |
template<typename ProductType , BranchType B = InEvent> | |
EDGetTokenT< ProductType > | mayConsume (edm::InputTag const &tag) |
EDGetToken | mayConsume (const TypeToGet &id, edm::InputTag const &tag) |
template<BranchType B> | |
EDGetToken | mayConsume (const TypeToGet &id, edm::InputTag const &tag) |
Private Types | |
enum | { kLookupInfo, kAlwaysGets, kLabels, kKind } |
Private Member Functions | |
edm::InputTag const & | checkIfEmpty (edm::InputTag const &tag) |
unsigned int | recordConsumes (BranchType iBranch, TypeToGet const &iType, edm::InputTag const &iTag, bool iAlwaysGets) |
void | throwBadToken (edm::TypeID const &iType, EDGetToken iToken) const |
void | throwBranchMismatch (BranchType, EDGetToken) const |
void | throwConsumesCallAfterFrozen (TypeToGet const &, InputTag const &) const |
void | throwTypeMismatch (edm::TypeID const &, EDGetToken) const |
Private Attributes | |
bool | containsCurrentProcessAlias_ |
bool | frozen_ |
std::array< std::vector< ProductResolverIndexAndSkipBit >, edm::NumBranchTypes > | itemsToGetFromBranch_ |
edm::SoATuple< TokenLookupInfo, bool, LabelPlacement, edm::KindOfType > | m_tokenInfo |
std::vector< char > | m_tokenLabels |
Friends | |
class | ConsumesCollector |
template<typename T > | |
class | WillGetIfMatch |
Description: Allows declaration of what data is being consumed
Usage: The EDM modules all inherit from this base class
Definition at line 49 of file EDConsumerBase.h.
Definition at line 85 of file EDConsumerBase.h.
|
private |
Enumerator | |
---|---|
kLookupInfo | |
kAlwaysGets | |
kLabels | |
kKind |
Definition at line 184 of file EDConsumerBase.h.
|
inline |
Definition at line 53 of file EDConsumerBase.h.
References indexFrom(), itemsMayGet(), itemsToGet(), noexcept, operator=(), uncheckedIndexFrom(), and ~EDConsumerBase().
|
virtualnoexcept |
|
delete |
|
default |
|
private |
Definition at line 80 of file EDConsumerBase.cc.
References kWasEmpty, and edm::InputTag::label().
Referenced by consumes(), consumesMany(), and mayConsume().
|
inlineprotected |
Definition at line 105 of file EDConsumerBase.h.
References TtFullHadDaughter::B, checkIfEmpty(), and recordConsumes().
Referenced by AlCaECALRecHitReducer::AlCaECALRecHitReducer(), CrossingFramePSimHitToPSimHitsConverter::CrossingFramePSimHitToPSimHitsConverter(), ElectronMVANtuplizer::ElectronMVANtuplizer(), edm::EventContentAnalyzer::EventContentAnalyzer(), HLTMuonIsoFilter::HLTMuonIsoFilter(), HLTMuonPFIsoFilter::HLTMuonPFIsoFilter(), JetCollectionReducerT< T >::JetCollectionReducerT(), edm::OutputModule::keepThisBranch(), edm::SubProcess::keepThisBranch(), edm::one::OutputModuleBase::keepThisBranch(), edm::global::OutputModuleBase::keepThisBranch(), edm::limited::OutputModuleBase::keepThisBranch(), edm::LogErrorHarvester::LogErrorHarvester(), MultiplicityCorrelator::MultiplicityCorrelator(), MultiTrackValidator::MultiTrackValidator(), pat::PATPackedCandidateProducer::PATPackedCandidateProducer(), PhotonMVANtuplizer::PhotonMVANtuplizer(), SeedMultiplicityAnalyzer::SeedMultiplicityAnalyzer(), ShallowSimhitClustersProducer::ShallowSimhitClustersProducer(), TrackingParticleNumberOfLayersProducer::TrackingParticleNumberOfLayersProducer(), and TTClusterBuilder< T >::TTClusterBuilder().
|
inlineprotected |
Definition at line 110 of file EDConsumerBase.h.
References checkIfEmpty(), edm::InEvent, and recordConsumes().
|
inlineprotected |
Definition at line 115 of file EDConsumerBase.h.
References TtFullHadDaughter::B, checkIfEmpty(), and recordConsumes().
|
protected |
Use a ConsumesCollector to gather consumes information from helper functions.
Definition at line 72 of file EDConsumerBase.cc.
References EnergyCorrector::c, and kWasEmpty.
Referenced by AlcaBeamSpotProducer::AlcaBeamSpotProducer(), IsolatedParticlesGeneratedJets::analyze(), edm::AnalyzerWrapper< T >::AnalyzerWrapper(), BCToEFilter::BCToEFilter(), BeamMonitorBx::BeamMonitorBx(), BeamSpotAnalyzer::BeamSpotAnalyzer(), DTTrigTest::beginRun(), CaloParticleDebugger::CaloParticleDebugger(), ConfigurableAnalysis::ConfigurableAnalysis(), CosmicSplitterValidation::CosmicSplitterValidation(), edm::OutputModule::doPreallocate(), edm::global::OutputModuleBase::doPreallocate(), edm::limited::OutputModuleBase::doPreallocate(), edm::one::OutputModuleBase::doPreallocate(), EcalCosmicsHists::EcalCosmicsHists(), EDMtoMEConverter::EDMtoMEConverter(), EgammaHLTPixelMatchElectronProducers::EgammaHLTPixelMatchElectronProducers(), ElectronMVANtuplizer::ElectronMVANtuplizer(), EopTreeWriter::EopTreeWriter(), EventWithHistoryEDFilter::EventWithHistoryEDFilter(), edm::FilterWrapper< T >::FilterWrapper(), HcalIsoTrkAnalyzer::HcalIsoTrkAnalyzer(), HGCalTriggerNtupleManager::HGCalTriggerNtupleManager(), HighPtTrackEcalDetIdProducer::HighPtTrackEcalDetIdProducer(), HLTBitAnalyzer::HLTBitAnalyzer(), HLTMuonIsoFilter::HLTMuonIsoFilter(), cms::CkfDebugTrackCandidateMaker::initDebugger(), IsolatedTracksCone::IsolatedTracksCone(), L1EventTreeProducer::L1EventTreeProducer(), L1MuGlobalMuonTrigger::L1MuGlobalMuonTrigger(), pat::helper::ManyThingsToValueMaps< Adaptor, Collection, value_type >::ManyThingsToValueMaps(), pat::PATMETSlimmer::maybeReadShifts(), MultiplicityCorrelator::MultiplicityCorrelator(), MultiplicityInvestigator::MultiplicityInvestigator(), MultiplicityTimeCorrelations::MultiplicityTimeCorrelations(), MuPFIsoEmbedder::MuPFIsoEmbedder(), OccupancyPlots::OccupancyPlots(), edm::OutputModule::OutputModule(), edm::global::OutputModuleBase::OutputModuleBase(), edm::limited::OutputModuleBase::OutputModuleBase(), edm::one::OutputModuleBase::OutputModuleBase(), edm::PathStatusFilter::PathStatusFilter(), PlottingDevice::PlottingDevice(), QuickTrackAssociatorByHitsProducer::QuickTrackAssociatorByHitsProducer(), ReduceHcalRecHitCollectionProducer::ReduceHcalRecHitCollectionProducer(), SeedMultiplicityAnalyzer::SeedMultiplicityAnalyzer(), SiStripDCSFilter::SiStripDCSFilter(), edm::SubProcess::SubProcess(), TagProbeFitTreeProducer::TagProbeFitTreeProducer(), Tau3MuSkim::Tau3MuSkim(), TtDilepEvtSolutionMaker::TtDilepEvtSolutionMaker(), and TtSemiEvtSolutionMaker::TtSemiEvtSolutionMaker().
std::vector< ConsumesInfo > EDConsumerBase::consumesInfo | ( | ) | const |
Definition at line 530 of file EDConsumerBase.cc.
References kAlwaysGets, kKind, kLabels, kLookupInfo, m_tokenInfo, m_tokenLabels, and mps_fire::result.
|
inlineprotected |
Definition at line 135 of file EDConsumerBase.h.
|
inlineprotected |
|
inlineprotected |
Definition at line 145 of file EDConsumerBase.h.
References TtFullHadDaughter::B, checkIfEmpty(), recordConsumes(), GlobalPosition_Frontier_DevDB_cff::tag, throwBadToken(), throwBranchMismatch(), throwConsumesCallAfterFrozen(), and throwTypeMismatch().
void EDConsumerBase::convertCurrentProcessAlias | ( | std::string const & | processName | ) |
Convert "@currentProcess" in InputTag process names to the actual current process name.
Definition at line 479 of file EDConsumerBase.cc.
References containsCurrentProcessAlias_, frozen_, edm::InputTag::kCurrentProcess, kLabels, m_tokenInfo, m_tokenLabels, eostools::move(), modifiedElectrons_cfi::processName, and AlCaHLTBitMon_QueryRunRegistry::string.
ProductResolverIndexAndSkipBit EDConsumerBase::indexFrom | ( | EDGetToken | iToken, |
BranchType | iBranch, | ||
TypeID const & | iType | ||
) | const |
Definition at line 204 of file EDConsumerBase.cc.
References edm::EDGetToken::index(), info(), kLookupInfo, LIKELY, m_tokenInfo, edm::ProductResolverIndexInvalid, throwBadToken(), throwBranchMismatch(), throwTypeMismatch(), and UNLIKELY.
Referenced by EDConsumerBase(), and edm::PrincipalGetAdapter::getByToken_().
void EDConsumerBase::itemsMayGet | ( | BranchType | iBranch, |
std::vector< ProductResolverIndexAndSkipBit > & | oIndices | ||
) | const |
Definition at line 265 of file EDConsumerBase.cc.
References KineDebug3::count(), kAlwaysGets, kLookupInfo, m_tokenInfo, and edm::ProductResolverIndexInvalid.
Referenced by EDConsumerBase(), and updateLookup().
void EDConsumerBase::itemsToGet | ( | BranchType | iBranch, |
std::vector< ProductResolverIndexAndSkipBit > & | oIndices | ||
) | const |
Definition at line 229 of file EDConsumerBase.cc.
References KineDebug3::count(), kAlwaysGets, kLookupInfo, m_tokenInfo, and edm::ProductResolverIndexInvalid.
Referenced by EDConsumerBase(), and updateLookup().
|
inline |
Definition at line 71 of file EDConsumerBase.h.
References itemsToGetFromBranch_, registeredToConsume(), registeredToConsumeMany(), and updateLookup().
Referenced by edm::PrincipalGetAdapter::numberOfProductsConsumed().
void EDConsumerBase::labelsForToken | ( | EDGetToken | iToken, |
Labels & | oLabels | ||
) | const |
Definition at line 301 of file EDConsumerBase.cc.
References edm::EDGetToken::index(), kLabels, tablePrinter::labels, m_tokenInfo, m_tokenLabels, edm::ProductLabels::module, edm::ProductLabels::process, edm::ProductLabels::productInstance, and command_line::start.
Referenced by AlCaElectronsTest::analyze(), EnergyScaleAnalyzer::analyze(), EgammaObjects::analyzeElectrons(), EgammaObjects::analyzePhotons(), HLTVertexPerformanceAnalyzer::dqmBeginRun(), HLTBTagPerformanceAnalyzer::dqmBeginRun(), TriggerBxMonitor::dqmBeginRun(), TriggerRatesMonitor::dqmBeginRun(), TrackingNtuple::fillSeeds(), TrackingNtuple::fillTracks(), EcalSimpleUncalibRecHitFilter::filter(), EcalMIPRecHitFilter::filter(), HLTBTagPerformanceAnalyzer::HLTBTagPerformanceAnalyzer(), HLTVertexPerformanceAnalyzer::HLTVertexPerformanceAnalyzer(), edm::PrincipalGetAdapter::labelsForToken(), edm::PrincipalGetAdapter::makeFailToGetException(), MultiTrackValidator::MultiTrackValidator(), HIPixelTrackFilterProducer::produce(), HIProtoTrackFilterProducer::produce(), and edm::PrincipalGetAdapter::throwAmbiguousException().
|
inlineprotected |
Definition at line 120 of file EDConsumerBase.h.
References TtFullHadDaughter::B, checkIfEmpty(), and recordConsumes().
|
inlineprotected |
Definition at line 125 of file EDConsumerBase.h.
References triggerObjects_cff::id, and GlobalPosition_Frontier_DevDB_cff::tag.
|
inlineprotected |
Definition at line 130 of file EDConsumerBase.h.
References TtFullHadDaughter::B, checkIfEmpty(), and recordConsumes().
void EDConsumerBase::modulesWhoseProductsAreConsumed | ( | std::vector< ModuleDescription const * > & | modules, |
ProductRegistry const & | preg, | ||
std::map< std::string, ModuleDescription const * > const & | labelsToDesc, | ||
std::string const & | processName | ||
) | const |
Definition at line 422 of file EDConsumerBase.cc.
References edm::ProductResolverIndexHelper::index(), edm::InEvent, kKind, kLabels, kLookupInfo, m_tokenInfo, m_tokenLabels, patRefSel_triggerMatching_cfi::matches, electrons_cff::modules, edm::ProductRegistry::productLookup(), edm::ProductResolverIndexInvalid, and edm::ProductResolverIndexHelper::relatedIndexes().
|
delete |
Referenced by EDConsumerBase().
|
default |
|
private |
Definition at line 88 of file EDConsumerBase.cc.
References containsCurrentProcessAlias_, frozen_, edm::InputTag::instance(), edm::InputTag::kCurrentProcess, edm::TypeToGet::kind(), edm::InputTag::label(), funct::m, m_tokenInfo, m_tokenLabels, edm::InputTag::process(), edm::ProductResolverIndexInvalid, AlCaHLTBitMon_QueryRunRegistry::string, throwConsumesCallAfterFrozen(), edm::TypeToGet::type(), and edm::InputTag::willSkipCurrentProcess().
Referenced by consumes(), consumesMany(), and mayConsume().
bool EDConsumerBase::registeredToConsume | ( | ProductResolverIndex | iIndex, |
bool | skipCurrentProcess, | ||
BranchType | iBranch | ||
) | const |
Definition at line 312 of file EDConsumerBase.cc.
References kLookupInfo, and m_tokenInfo.
Referenced by edm::Principal::findProductByLabel(), and itemsToGetFrom().
bool EDConsumerBase::registeredToConsumeMany | ( | TypeID const & | iType, |
BranchType | iBranch | ||
) | const |
Definition at line 327 of file EDConsumerBase.cc.
References kLookupInfo, m_tokenInfo, and edm::ProductResolverIndexInvalid.
Referenced by edm::Principal::getManyByType(), and itemsToGetFrom().
|
private |
Definition at line 355 of file EDConsumerBase.cc.
References edm::TypeID::className(), Exception, edm::EDGetToken::index(), and edm::EDGetToken::isUninitialized().
Referenced by consumesMany(), and indexFrom().
|
private |
Definition at line 350 of file EDConsumerBase.cc.
References edm::BranchTypeToString(), Exception, edm::EDGetToken::index(), kLookupInfo, and m_tokenInfo.
Referenced by consumesMany(), and indexFrom().
|
private |
Definition at line 364 of file EDConsumerBase.cc.
References edm::ProductRegistry::aliasToOriginal(), Exception, AlCaHLTBitMon_QueryRunRegistry::string, edmPickEvents::target, and edm::TypeToGet::type().
Referenced by consumesMany(), and recordConsumes().
|
private |
Definition at line 345 of file EDConsumerBase.cc.
References edm::TypeID::className(), Exception, edm::EDGetToken::index(), kLookupInfo, and m_tokenInfo.
Referenced by consumesMany(), and indexFrom().
ProductResolverIndexAndSkipBit EDConsumerBase::uncheckedIndexFrom | ( | EDGetToken | iToken | ) | const |
Definition at line 223 of file EDConsumerBase.cc.
References edm::EDGetToken::index(), kLookupInfo, and m_tokenInfo.
Referenced by EDConsumerBase(), edm::OutputModule::productsUsedBySelection(), edm::one::OutputModuleBase::productsUsedBySelection(), edm::global::OutputModuleBase::productsUsedBySelection(), and edm::limited::OutputModuleBase::productsUsedBySelection().
void EDConsumerBase::updateLookup | ( | BranchType | iBranchType, |
ProductResolverIndexHelper const & | iHelper, | ||
bool | iPrefetchMayGet | ||
) |
Definition at line 140 of file EDConsumerBase.cc.
References containsCurrentProcessAlias_, frozen_, mps_fire::i, edm::ProductResolverIndexHelper::index(), info(), itemsMayGet(), itemsToGet(), itemsToGetFromBranch_, kAlwaysGets, callgraph::kind, kKind, kLabels, kLookupInfo, tablePrinter::labels, m_tokenInfo, m_tokenLabels, patRefSel_triggerMatching_cfi::matches, edm::ProductResolverIndexInvalid, and edm::ProductResolverIndexHelper::relatedIndexes().
Referenced by edm::SubProcess::beginJob(), and itemsToGetFrom().
|
friend |
Definition at line 99 of file EDConsumerBase.h.
|
friend |
Definition at line 100 of file EDConsumerBase.h.
|
private |
Definition at line 194 of file EDConsumerBase.h.
Referenced by convertCurrentProcessAlias(), recordConsumes(), and updateLookup().
|
private |
Definition at line 193 of file EDConsumerBase.h.
Referenced by convertCurrentProcessAlias(), recordConsumes(), and updateLookup().
|
private |
Definition at line 191 of file EDConsumerBase.h.
Referenced by itemsToGetFrom(), and updateLookup().
|
private |
Definition at line 185 of file EDConsumerBase.h.
Referenced by consumesInfo(), convertCurrentProcessAlias(), indexFrom(), itemsMayGet(), itemsToGet(), labelsForToken(), modulesWhoseProductsAreConsumed(), recordConsumes(), registeredToConsume(), registeredToConsumeMany(), throwBranchMismatch(), throwTypeMismatch(), uncheckedIndexFrom(), and updateLookup().
|
private |
Definition at line 189 of file EDConsumerBase.h.
Referenced by consumesInfo(), convertCurrentProcessAlias(), labelsForToken(), modulesWhoseProductsAreConsumed(), recordConsumes(), and updateLookup().