#include <EDConsumerBase.h>
Classes | |
struct | LabelPlacement |
struct | TokenLookupInfo |
Public Types | |
typedef ProductLabels | Labels |
Public Member Functions | |
std::vector< ConsumesInfo > | consumesInfo () const |
EDConsumerBase () | |
ProductHolderIndexAndSkipBit | indexFrom (EDGetToken, BranchType, TypeID const &) const |
void | itemsMayGet (BranchType, std::vector< ProductHolderIndexAndSkipBit > &) const |
void | itemsToGet (BranchType, std::vector< ProductHolderIndexAndSkipBit > &) const |
std::vector < ProductHolderIndexAndSkipBit > const & | itemsToGetFromEvent () const |
void | labelsForToken (EDGetToken iToken, Labels &oLabels) const |
void | modulesDependentUpon (const std::string &iProcessName, std::vector< const char * > &oModuleLabels) const |
void | modulesWhoseProductsAreConsumed (std::vector< ModuleDescription const * > &modules, ProductRegistry const &preg, std::map< std::string, ModuleDescription const * > const &labelsToDesc, std::string const &processName) const |
bool | registeredToConsume (ProductHolderIndex, bool, BranchType) const |
bool | registeredToConsumeMany (TypeID const &, BranchType) const |
void | updateLookup (BranchType iBranchType, ProductHolderIndexHelper const &) |
virtual | ~EDConsumerBase () |
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) |
EDConsumerBase (const EDConsumerBase &)=delete | |
const EDConsumerBase & | operator= (const EDConsumerBase &)=delete |
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 | frozen_ |
std::vector < ProductHolderIndexAndSkipBit > | itemsToGetFromEvent_ |
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 75 of file EDConsumerBase.h.
|
private |
Enumerator | |
---|---|
kLookupInfo | |
kAlwaysGets | |
kLabels | |
kKind |
Definition at line 178 of file EDConsumerBase.h.
|
inline |
Definition at line 53 of file EDConsumerBase.h.
|
virtual |
Definition at line 51 of file EDConsumerBase.cc.
|
privatedelete |
|
private |
Definition at line 79 of file EDConsumerBase.cc.
References kWasEmpty, and edm::InputTag::label().
Referenced by consumes(), and mayConsume().
|
inlineprotected |
Definition at line 95 of file EDConsumerBase.h.
References checkIfEmpty(), and recordConsumes().
Referenced by AlCaECALRecHitReducer::AlCaECALRecHitReducer(), MixCollectionValidation::bookHistograms(), BTagPerformanceAnalyzerMC::BTagPerformanceAnalyzerMC(), BTagPerformanceAnalyzerOnData::BTagPerformanceAnalyzerOnData(), pat::CandidateSummaryTable::CandidateSummaryTable(), edm::ConsumesCollector::consumes(), EcalPileUpDepMonitor::EcalPileUpDepMonitor(), EGammaCutBasedEleIdAnalyzer::EGammaCutBasedEleIdAnalyzer(), EmDQMReco::EmDQMReco(), edm::EventContentAnalyzer::EventContentAnalyzer(), EcalDQMonitorTask::formSchedule(), GoodSeedProducer::GoodSeedProducer(), HITrackClusterRemover::HITrackClusterRemover(), HLTMuonIsoFilter::HLTMuonIsoFilter(), HLTMuonPFIsoFilter::HLTMuonPFIsoFilter(), JetTagProducer::JetTagProducer(), edm::OutputModule::keepThisBranch(), edm::one::OutputModuleBase::keepThisBranch(), edm::global::OutputModuleBase::keepThisBranch(), cms::METSignificanceProducer::METSignificanceProducer(), MultiplicityCorrelator::MultiplicityCorrelator(), MuonProducer::MuonProducer(), MuonTrackValidator::MuonTrackValidator(), NoPileUpPFMEtProducer::NoPileUpPFMEtProducer(), pat::PATElectronProducer::PATElectronProducer(), pat::PATGenericParticleProducer::PATGenericParticleProducer(), pat::PATJetProducer::PATJetProducer(), pat::PATMuonProducer::PATMuonProducer(), pat::PATPackedCandidateProducer::PATPackedCandidateProducer(), pat::PATPFParticleProducer::PATPFParticleProducer(), pat::PATPhotonProducer::PATPhotonProducer(), pat::PATSingleVertexSelector::PATSingleVertexSelector(), pat::PATTauProducer::PATTauProducer(), pat::PATVertexAssociationProducer::PATVertexAssociationProducer(), PFTrackProducer::PFTrackProducer(), PrimaryVertexAnalyzer4PUSlimmed::PrimaryVertexAnalyzer4PUSlimmed(), ReducedEGProducer::ReducedEGProducer(), SeedMultiplicityAnalyzer::SeedMultiplicityAnalyzer(), SiStripMonitorDigi::SiStripMonitorDigi(), and TrackingParticleNumberOfLayersProducer::TrackingParticleNumberOfLayersProducer().
|
inlineprotected |
Definition at line 100 of file EDConsumerBase.h.
References checkIfEmpty(), edm::InEvent, and recordConsumes().
|
inlineprotected |
Definition at line 105 of file EDConsumerBase.h.
References checkIfEmpty(), and recordConsumes().
|
protected |
Use a ConsumesCollector to gather consumes information from helper functions.
Definition at line 71 of file EDConsumerBase.cc.
References EnergyCorrector::c.
Referenced by AlcaBeamMonitor::AlcaBeamMonitor(), AlcaBeamSpotProducer::AlcaBeamSpotProducer(), IsolatedParticlesGeneratedJets::analyze(), BCToEFilter::BCToEFilter(), BeamMonitor::BeamMonitor(), BeamMonitorBx::BeamMonitorBx(), BeamSpotAnalyzer::BeamSpotAnalyzer(), TSGFromL1Muon::beginRun(), FastTSGFromL2Muon::beginRun(), DTTrigTest::beginRun(), CandIsoDepositProducer::CandIsoDepositProducer(), CandIsolatorFromDeposits::CandIsolatorFromDeposits(), ConfigurableAnalysis::ConfigurableAnalysis(), CorrectedECALPFClusterProducer::CorrectedECALPFClusterProducer(), CorrectedMETProducerT< T >::CorrectedMETProducerT(), CosmicsMuonIdProducer::CosmicsMuonIdProducer(), CosmicSplitterValidation::CosmicSplitterValidation(), CSCDigiValidation::CSCDigiValidation(), CSCMonitorModule::CSCMonitorModule(), CSCRecHitValidation::CSCRecHitValidation(), CtfSpecialSeedGenerator::CtfSpecialSeedGenerator(), edm::DataMixingModule::DataMixingModule(), DTTrigProd::DTTrigProd(), EcalCosmicsHists::EcalCosmicsHists(), EcalDQMonitorTask::EcalDQMonitorTask(), EcalRecHitProducer::EcalRecHitProducer(), EcalSelectiveReadoutValidation::EcalSelectiveReadoutValidation(), EcalUncalibRecHitProducer::EcalUncalibRecHitProducer(), EDMtoMEConverter::EDMtoMEConverter(), EgammaHLTPixelMatchElectronProducers::EgammaHLTPixelMatchElectronProducers(), EgHLTOfflineSource::EgHLTOfflineSource(), ElectronSeedProducer::ElectronSeedProducer(), EopTreeWriter::EopTreeWriter(), EventWithHistoryEDFilter::EventWithHistoryEDFilter(), edm::FilterWrapper< T >::FilterWrapper(), FSQDiJetAve::FSQDiJetAve(), GEDPhotonProducer::GEDPhotonProducer(), GlobalCosmicMuonProducer::GlobalCosmicMuonProducer(), GlobalTrackQualityProducer::GlobalTrackQualityProducer(), HighPtTrackEcalDetIdProducer::HighPtTrackEcalDetIdProducer(), HLTAnalyzer::HLTAnalyzer(), HLTBitAnalyzer::HLTBitAnalyzer(), HLTExoticaValidator::HLTExoticaValidator(), HLTHiggsValidator::HLTHiggsValidator(), HLTMuonIsoFilter::HLTMuonIsoFilter(), HLTMuonValidator::HLTMuonValidator(), HLTTauDQMOfflineSource::HLTTauDQMOfflineSource(), cms::CkfDebugTrackCandidateMaker::initDebugger(), InterestingTrackEcalDetIdProducer::InterestingTrackEcalDetIdProducer(), IsolatedTracksCone::IsolatedTracksCone(), JetCorrectorProducer< T >::JetCorrectorProducer(), JetMETHLTOfflineSource::JetMETHLTOfflineSource(), L1GlobalTrigger::L1GlobalTrigger(), L1MuGlobalMuonTrigger::L1MuGlobalMuonTrigger(), l1t::L1TDigiToRaw::L1TDigiToRaw(), L2MuonIsolationProducer::L2MuonIsolationProducer(), L3MuonCombinedRelativeIsolationProducer::L3MuonCombinedRelativeIsolationProducer(), L3MuonIsolationProducer::L3MuonIsolationProducer(), LogMessageMonitor::LogMessageMonitor(), pat::helper::ManyThingsToValueMaps< Adaptor, Collection, value_type >::ManyThingsToValueMaps(), edm::MixingModule::MixingModule(), pat::ModifiedObjectProducer< T >::ModifiedObjectProducer(), MuIsoDepositProducer::MuIsoDepositProducer(), MultiplicityCorrelator::MultiplicityCorrelator(), MultiplicityInvestigator::MultiplicityInvestigator(), MultiplicityTimeCorrelations::MultiplicityTimeCorrelations(), MultiTrackValidator::MultiTrackValidator(), MuonAssociatorEDProducer::MuonAssociatorEDProducer(), MuonCaloCleanerAllCrossed::MuonCaloCleanerAllCrossed(), MuonCaloDistanceProducer::MuonCaloDistanceProducer(), MuonDetCleaner::MuonDetCleaner(), MuonIdProducer::MuonIdProducer(), cms::MuonMETValueMapProducer::MuonMETValueMapProducer(), MuonProducer::MuonProducer(), MuonSeedGenerator::MuonSeedGenerator(), MuonSeedProducer::MuonSeedProducer(), MuonShowerInformationProducer::MuonShowerInformationProducer(), MuonTimingProducer::MuonTimingProducer(), MuonToTrackingParticleAssociatorEDProducer::MuonToTrackingParticleAssociatorEDProducer(), MuPFIsoEmbedder::MuPFIsoEmbedder(), OscarMTProducer::OscarMTProducer(), pat::PATCleaner< PATObjType >::PATCleaner(), pat::PATCompositeCandidateProducer::PATCompositeCandidateProducer(), pat::PATElectronSlimmer::PATElectronSlimmer(), pat::PATJetSlimmer::PATJetSlimmer(), pat::PATMETProducer::PATMETProducer(), pat::PATMuonSlimmer::PATMuonSlimmer(), pat::PATPhotonSlimmer::PATPhotonSlimmer(), pat::PATTauSlimmer::PATTauSlimmer(), PFCandIsolatorFromDeposits::PFCandIsolatorFromDeposits(), PFRecHitProducer::PFRecHitProducer(), PFRecoTauChargedHadronProducer::PFRecoTauChargedHadronProducer(), PFRecoTauDiscriminationByNProngs::PFRecoTauDiscriminationByNProngs(), PFTauPrimaryVertexProducer::PFTauPrimaryVertexProducer(), PhotonConversionTrajectorySeedProducerFromQuadruplets::PhotonConversionTrajectorySeedProducerFromQuadruplets(), PhotonConversionTrajectorySeedProducerFromSingleLeg::PhotonConversionTrajectorySeedProducerFromSingleLeg(), PhotonProducer::PhotonProducer(), PixelTracksProducer::PixelTracksProducer(), PlottingDevice::PlottingDevice(), RecoTauPiZeroProducer::RecoTauPiZeroProducer(), RecoTauProducer::RecoTauProducer(), ReduceHcalRecHitCollectionProducer::ReduceHcalRecHitCollectionProducer(), SeedGeneratorFromRegionHitsEDProducer::SeedGeneratorFromRegionHitsEDProducer(), SeedMultiplicityAnalyzer::SeedMultiplicityAnalyzer(), SelectReplacementCandidates::SelectReplacementCandidates(), SETMuonSeedProducer::SETMuonSeedProducer(), SingleTopTChannelLeptonDQM::SingleTopTChannelLeptonDQM(), SiPixelRawToDigi::SiPixelRawToDigi(), SiStripDCSFilter::SiStripDCSFilter(), SiStripMonitorCluster::SiStripMonitorCluster(), SiStripMonitorDigi::SiStripMonitorDigi(), SiStripMonitorTrack::SiStripMonitorTrack(), TagProbeFitTreeProducer::TagProbeFitTreeProducer(), Tau3MuSkim::Tau3MuSkim(), TauTagValidation::TauTagValidation(), cms::TCMETProducer::TCMETProducer(), TopDiLeptonHLTOfflineDQM::TopDiLeptonHLTOfflineDQM(), TopDiLeptonOfflineDQM::TopDiLeptonOfflineDQM(), TopSingleLeptonDQM::TopSingleLeptonDQM(), TopSingleLeptonHLTOfflineDQM::TopSingleLeptonHLTOfflineDQM(), TrackingMonitor::TrackingMonitor(), TrajectorySeedProducer::TrajectorySeedProducer(), TriggerValidator::TriggerValidator(), TSGFromL1Muon::TSGFromL1Muon(), TSGFromL2Muon::TSGFromL2Muon(), TtDilepEvtSolutionMaker::TtDilepEvtSolutionMaker(), TtSemiEvtSolutionMaker::TtSemiEvtSolutionMaker(), Type2CorrectionProducer::Type2CorrectionProducer(), and VirtualJetProducer::VirtualJetProducer().
std::vector< ConsumesInfo > EDConsumerBase::consumesInfo | ( | ) | const |
Definition at line 501 of file EDConsumerBase.cc.
References kAlwaysGets, kKind, kLabels, kLookupInfo, m_tokenInfo, m_tokenLabels, and query::result.
|
inlineprotected |
Definition at line 125 of file EDConsumerBase.h.
Referenced by edm::ConsumesCollector::consumesMany().
|
inlineprotected |
Definition at line 130 of file EDConsumerBase.h.
|
inlineprotected |
Definition at line 135 of file EDConsumerBase.h.
References recordConsumes().
ProductHolderIndexAndSkipBit EDConsumerBase::indexFrom | ( | EDGetToken | iToken, |
BranchType | iBranch, | ||
TypeID const & | iType | ||
) | const |
Definition at line 197 of file EDConsumerBase.cc.
References edm::EDGetToken::index(), info(), kLookupInfo, likely, m_tokenInfo, edm::ProductHolderIndexInvalid, throwBadToken(), throwBranchMismatch(), throwTypeMismatch(), and unlikely.
Referenced by edm::PrincipalGetAdapter::getByToken_().
void EDConsumerBase::itemsMayGet | ( | BranchType | iBranch, |
std::vector< ProductHolderIndexAndSkipBit > & | oIndices | ||
) | const |
Definition at line 252 of file EDConsumerBase.cc.
References prof2calltree::count, kAlwaysGets, kLookupInfo, m_tokenInfo, and edm::ProductHolderIndexInvalid.
void EDConsumerBase::itemsToGet | ( | BranchType | iBranch, |
std::vector< ProductHolderIndexAndSkipBit > & | oIndices | ||
) | const |
Definition at line 216 of file EDConsumerBase.cc.
References prof2calltree::count, kAlwaysGets, kLookupInfo, m_tokenInfo, and edm::ProductHolderIndexInvalid.
Referenced by updateLookup().
|
inline |
Definition at line 62 of file EDConsumerBase.h.
References itemsToGetFromEvent_.
void EDConsumerBase::labelsForToken | ( | EDGetToken | iToken, |
Labels & | oLabels | ||
) | const |
Definition at line 288 of file EDConsumerBase.cc.
References edm::EDGetToken::index(), cmsHarvester::index, kLabels, HLT_25ns14e33_v1_cff::labels, m_tokenInfo, m_tokenLabels, edm::ProductLabels::module, edm::ProductLabels::process, edm::ProductLabels::productInstance, and dqm_diff::start.
Referenced by EgammaBasicClusters::analyze(), AlCaElectronsTest::analyze(), EnergyScaleAnalyzer::analyze(), HLTScalers::analyze(), EgammaObjects::analyzeElectrons(), EgammaObjects::analyzePhotons(), ElectronTagProbeAnalyzer::bookHistograms(), TkAlCaRecoMonitor::bookHistograms(), ElectronAnalyzer::bookHistograms(), HLTVertexPerformanceAnalyzer::dqmBeginRun(), HLTBTagPerformanceAnalyzer::dqmBeginRun(), TriggerRatesMonitor::dqmBeginRun(), edm::PrincipalGetAdapter::labelsForToken(), edm::PrincipalGetAdapter::makeFailToGetException(), MuonSimHitsValidAnalyzer::MuonSimHitsValidAnalyzer(), GenTrackMatcher::produce(), ReducedESRecHitCollectionProducer::produce(), ReducedRecHitCollectionProducer::produce(), EcalTrigPrimProducer::produce(), SeedClusterRemover::produce(), HITrackClusterRemover::produce(), cms::CosmicTrackFinder::produce(), and edm::PrincipalGetAdapter::throwAmbiguousException().
|
inlineprotected |
Definition at line 110 of file EDConsumerBase.h.
References checkIfEmpty(), and recordConsumes().
Referenced by edm::ConsumesCollector::mayConsume(), pat::PATJetUpdater::PATJetUpdater(), pat::PATMETProducer::PATMETProducer(), and cms::PFMETProducer::PFMETProducer().
|
inlineprotected |
|
inlineprotected |
Definition at line 120 of file EDConsumerBase.h.
References checkIfEmpty(), and recordConsumes().
void EDConsumerBase::modulesDependentUpon | ( | const std::string & | iProcessName, |
std::vector< const char * > & | oModuleLabels | ||
) | const |
Definition at line 382 of file EDConsumerBase.cc.
References cmsHarvester::index, info(), kLabels, kLookupInfo, HLT_25ns14e33_v1_cff::labels, m_tokenInfo, m_tokenLabels, or, FSQHLTOfflineSource_cfi::processName, and dqm_diff::start.
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 445 of file EDConsumerBase.cc.
References edm::ProductHolderIndexHelper::index(), edm::InEvent, j, kKind, kLabels, kLookupInfo, m_tokenInfo, m_tokenLabels, matches, edmConvertToStreamModule::modules, edm::preg, edm::ProductHolderIndexInvalid, edm::ProductRegistry::productLookup(), and edm::ProductHolderIndexHelper::relatedIndexes().
|
privatedelete |
|
private |
Definition at line 87 of file EDConsumerBase.cc.
References frozen_, cmsHarvester::index, edm::InputTag::instance(), edm::TypeToGet::kind(), edm::InputTag::label(), visualization-live-secondInstance_cfg::m, m_tokenInfo, m_tokenLabels, edm::InputTag::process(), edm::ProductHolderIndexInvalid, AlCaHLTBitMon_QueryRunRegistry::string, throwConsumesCallAfterFrozen(), edm::TypeToGet::type(), and edm::InputTag::willSkipCurrentProcess().
Referenced by consumes(), consumesMany(), and mayConsume().
bool EDConsumerBase::registeredToConsume | ( | ProductHolderIndex | iIndex, |
bool | skipCurrentProcess, | ||
BranchType | iBranch | ||
) | const |
Definition at line 299 of file EDConsumerBase.cc.
References kLookupInfo, m_tokenInfo, and edm::PRODUCT_TYPE.
Referenced by edm::Principal::findProductByLabel().
bool EDConsumerBase::registeredToConsumeMany | ( | TypeID const & | iType, |
BranchType | iBranch | ||
) | const |
Definition at line 322 of file EDConsumerBase.cc.
References kLookupInfo, m_tokenInfo, edm::PRODUCT_TYPE, and edm::ProductHolderIndexInvalid.
Referenced by edm::Principal::getManyByType().
|
private |
Definition at line 357 of file EDConsumerBase.cc.
References edm::TypeID::className(), Exception, edm::EDGetToken::index(), and edm::EDGetToken::isUninitialized().
Referenced by indexFrom().
|
private |
Definition at line 352 of file EDConsumerBase.cc.
References edm::BranchTypeToString(), Exception, edm::EDGetToken::index(), kLookupInfo, and m_tokenInfo.
Referenced by indexFrom().
|
private |
Definition at line 366 of file EDConsumerBase.cc.
References Exception, and edm::TypeToGet::type().
Referenced by recordConsumes().
|
private |
Definition at line 347 of file EDConsumerBase.cc.
References edm::TypeID::className(), Exception, edm::EDGetToken::index(), kLookupInfo, and m_tokenInfo.
Referenced by indexFrom().
void EDConsumerBase::updateLookup | ( | BranchType | iBranchType, |
ProductHolderIndexHelper const & | iHelper | ||
) |
Definition at line 136 of file EDConsumerBase.cc.
References frozen_, i, edm::ProductHolderIndexHelper::index(), cmsHarvester::index, edm::InEvent, info(), itemsToGet(), itemsToGetFromEvent_, j, kAlwaysGets, class-composition::kind, kKind, kLabels, kLookupInfo, HLT_25ns14e33_v1_cff::labels, m_tokenInfo, m_tokenLabels, matches, edm::ProductHolderIndexInvalid, and edm::ProductHolderIndexHelper::relatedIndexes().
|
friend |
Definition at line 89 of file EDConsumerBase.h.
|
friend |
Definition at line 90 of file EDConsumerBase.h.
|
private |
Definition at line 187 of file EDConsumerBase.h.
Referenced by recordConsumes(), and updateLookup().
|
private |
Definition at line 185 of file EDConsumerBase.h.
Referenced by itemsToGetFromEvent(), and updateLookup().
|
private |
Definition at line 179 of file EDConsumerBase.h.
Referenced by consumesInfo(), indexFrom(), itemsMayGet(), itemsToGet(), labelsForToken(), modulesDependentUpon(), modulesWhoseProductsAreConsumed(), recordConsumes(), registeredToConsume(), registeredToConsumeMany(), throwBranchMismatch(), throwTypeMismatch(), and updateLookup().
|
private |
Definition at line 183 of file EDConsumerBase.h.
Referenced by consumesInfo(), labelsForToken(), modulesDependentUpon(), modulesWhoseProductsAreConsumed(), recordConsumes(), and updateLookup().