CMS 3D CMS Logo

List of all members | Public Member Functions | Static Public Attributes | Private Member Functions | Private Attributes
edm::InputTag Class Reference

#include <InputTag.h>

Public Member Functions

std::string encode () const
 
ProductResolverIndex indexFor (TypeID const &typeID, BranchType branchType, void const *productRegistry) const
 
 InputTag ()
 
 InputTag (std::string const &label, std::string const &instance, std::string const &processName="")
 
 InputTag (char const *label, char const *instance, char const *processName="")
 
 InputTag (std::string const &s)
 
 InputTag (InputTag const &other)
 
 InputTag (InputTag &&other)
 
std::string const & instance () const
 
std::string const & label () const
 
InputTagoperator= (InputTag const &other)
 
InputTagoperator= (InputTag &&other)
 
bool operator== (InputTag const &tag) const
 
std::string const & process () const
 
void tryToCacheIndex (ProductResolverIndex index, TypeID const &typeID, BranchType branchType, void const *productRegistry) const
 
bool willSkipCurrentProcess () const
 
 ~InputTag ()
 

Static Public Attributes

static const std::string kCurrentProcess
 
static const std::string kSkipCurrentProcess
 

Private Member Functions

bool calcSkipCurrentProcess () const
 

Private Attributes

char branchType_
 
std::atomic< unsigned int > index_
 
std::string instance_
 
std::string label_
 
std::string process_
 
void const * productRegistry_
 
bool skipCurrentProcess_
 
TypeID typeID_
 

Detailed Description

Definition at line 15 of file InputTag.h.

Constructor & Destructor Documentation

edm::InputTag::InputTag ( )

Definition at line 11 of file InputTag.cc.

12  : label_(),
13  instance_(),
14  process_(),
15  typeID_(),
16  productRegistry_(nullptr),
19  skipCurrentProcess_(false) {}
std::string instance_
Definition: InputTag.h:60
std::string process_
Definition: InputTag.h:61
std::string label_
Definition: InputTag.h:59
void const * productRegistry_
Definition: InputTag.h:64
bool skipCurrentProcess_
Definition: InputTag.h:70
char branchType_
Definition: InputTag.h:68
std::atomic< unsigned int > index_
Definition: InputTag.h:66
TypeID typeID_
Definition: InputTag.h:63
edm::InputTag::InputTag ( std::string const &  label,
std::string const &  instance,
std::string const &  processName = "" 
)

Definition at line 21 of file InputTag.cc.

22  : label_(label),
25  typeID_(),
26  productRegistry_(nullptr),
std::string instance_
Definition: InputTag.h:60
std::string process_
Definition: InputTag.h:61
bool calcSkipCurrentProcess() const
Definition: InputTag.cc:149
std::string label_
Definition: InputTag.h:59
void const * productRegistry_
Definition: InputTag.h:64
std::string const & label() const
Definition: InputTag.h:36
bool skipCurrentProcess_
Definition: InputTag.h:70
char branchType_
Definition: InputTag.h:68
std::string const & instance() const
Definition: InputTag.h:37
std::atomic< unsigned int > index_
Definition: InputTag.h:66
TypeID typeID_
Definition: InputTag.h:63
edm::InputTag::InputTag ( char const *  label,
char const *  instance,
char const *  processName = "" 
)

Definition at line 31 of file InputTag.cc.

32  : label_(label),
35  typeID_(),
36  productRegistry_(nullptr),
std::string instance_
Definition: InputTag.h:60
std::string process_
Definition: InputTag.h:61
bool calcSkipCurrentProcess() const
Definition: InputTag.cc:149
std::string label_
Definition: InputTag.h:59
void const * productRegistry_
Definition: InputTag.h:64
std::string const & label() const
Definition: InputTag.h:36
bool skipCurrentProcess_
Definition: InputTag.h:70
char branchType_
Definition: InputTag.h:68
std::string const & instance() const
Definition: InputTag.h:37
std::atomic< unsigned int > index_
Definition: InputTag.h:66
TypeID typeID_
Definition: InputTag.h:63
edm::InputTag::InputTag ( std::string const &  s)

the input string is of the form: label label:instance label:instance:process

Definition at line 41 of file InputTag.cc.

References calcSkipCurrentProcess(), edm::errors::Configuration, Exception, instance_, label_, process_, edm::separator(), skipCurrentProcess_, and edm::tokenize().

42  : label_(),
43  instance_(),
44  process_(),
45  typeID_(),
46  productRegistry_(nullptr),
49  skipCurrentProcess_(false) {
50  // string is delimited by colons
51  std::vector<std::string> tokens = tokenize(s, separator);
52  size_t nwords = tokens.size();
53  if (nwords > 3) {
54  throw edm::Exception(errors::Configuration, "InputTag") << "Input tag " << s << " has " << nwords << " tokens";
55  }
56  if (nwords > 0)
57  label_ = tokens[0];
58  if (nwords > 1)
59  instance_ = tokens[1];
60  if (nwords > 2)
61  process_ = tokens[2];
63  }
std::string instance_
Definition: InputTag.h:60
std::string process_
Definition: InputTag.h:61
bool calcSkipCurrentProcess() const
Definition: InputTag.cc:149
std::string label_
Definition: InputTag.h:59
void const * productRegistry_
Definition: InputTag.h:64
bool skipCurrentProcess_
Definition: InputTag.h:70
char branchType_
Definition: InputTag.h:68
static std::string const separator(":")
std::atomic< unsigned int > index_
Definition: InputTag.h:66
TypeID typeID_
Definition: InputTag.h:63
std::vector< std::string > tokenize(std::string const &input, std::string const &separator)
breaks the input string into tokens, delimited by the separator
edm::InputTag::~InputTag ( )

Definition at line 65 of file InputTag.cc.

65 {}
edm::InputTag::InputTag ( InputTag const &  other)

Definition at line 67 of file InputTag.cc.

References branchType_, index_, productRegistry_, edm::ProductResolverIndexInitializing, and typeID_.

68  : label_(other.label()),
69  instance_(other.instance()),
70  process_(other.process()),
71  typeID_(),
72  productRegistry_(nullptr),
75  skipCurrentProcess_(other.willSkipCurrentProcess()) {
76  ProductResolverIndex otherIndex = other.index_.load();
77  if (otherIndex < ProductResolverIndexInitializing) {
78  branchType_ = other.branchType_;
79  typeID_ = other.typeID_;
80  productRegistry_ = other.productRegistry_;
81  index_.store(otherIndex);
82  }
83  }
unsigned int ProductResolverIndex
std::string instance_
Definition: InputTag.h:60
std::string process_
Definition: InputTag.h:61
std::string label_
Definition: InputTag.h:59
void const * productRegistry_
Definition: InputTag.h:64
bool skipCurrentProcess_
Definition: InputTag.h:70
char branchType_
Definition: InputTag.h:68
std::atomic< unsigned int > index_
Definition: InputTag.h:66
TypeID typeID_
Definition: InputTag.h:63
edm::InputTag::InputTag ( InputTag &&  other)

Definition at line 85 of file InputTag.cc.

References branchType_, index_, trackingPlots::other, productRegistry_, edm::ProductResolverIndexInitializing, and typeID_.

86  : label_(std::move(other.label())),
87  instance_(std::move(other.instance())),
88  process_(std::move(other.process())),
89  typeID_(),
90  productRegistry_(nullptr),
93  skipCurrentProcess_(other.willSkipCurrentProcess()) {
94  ProductResolverIndex otherIndex = other.index_.load();
95  if (otherIndex < ProductResolverIndexInitializing) {
96  branchType_ = other.branchType_;
97  typeID_ = other.typeID_;
98  productRegistry_ = other.productRegistry_;
99  index_.store(otherIndex);
100  }
101  }
unsigned int ProductResolverIndex
std::string instance_
Definition: InputTag.h:60
std::string process_
Definition: InputTag.h:61
std::string label_
Definition: InputTag.h:59
void const * productRegistry_
Definition: InputTag.h:64
bool skipCurrentProcess_
Definition: InputTag.h:70
char branchType_
Definition: InputTag.h:68
std::atomic< unsigned int > index_
Definition: InputTag.h:66
def move(src, dest)
Definition: eostools.py:511
TypeID typeID_
Definition: InputTag.h:63

Member Function Documentation

bool edm::InputTag::calcSkipCurrentProcess ( ) const
private

Definition at line 149 of file InputTag.cc.

References kSkipCurrentProcess, p1, p2, and process_.

Referenced by InputTag().

149  {
150  char const* p1 = kSkipCurrentProcess.c_str();
151  char const* p2 = process_.c_str();
152  while (*p1 && (*p1 == *p2)) {
153  ++p1;
154  ++p2;
155  }
156  return *p1 == *p2;
157  }
static const std::string kSkipCurrentProcess
Definition: InputTag.h:53
std::string process_
Definition: InputTag.h:61
double p2[4]
Definition: TauolaWrapper.h:90
double p1[4]
Definition: TauolaWrapper.h:89
std::string edm::InputTag::encode ( ) const

Definition at line 159 of file InputTag.cc.

References instance_, label_, process_, mps_fire::result, edm::separator(), and AlCaHLTBitMon_QueryRunRegistry::string.

Referenced by TriggerHelper::acceptDcs(), GenericTriggerEventFlag::acceptDcs(), TriggerHelper::acceptGt(), GenericTriggerEventFlag::acceptGtLogicalExpression(), TriggerHelper::acceptHlt(), GenericTriggerEventFlag::acceptHlt(), SiStripDigitizer::accumulate(), cms::SiPixelDigitizer::accumulate(), cms::Phase2TrackerDigitizer::accumulate_local(), trigger::TriggerFilterObjectWithRefs::addCollectionTag(), AlCaDiJetsProducer::AlCaDiJetsProducer(), AlCaGammaJetProducer::AlCaGammaJetProducer(), AlphaTVarProducer::AlphaTVarProducer(), CSCALCTDigiValidation::analyze(), CSCCLCTDigiValidation::analyze(), CSCStripDigiValidation::analyze(), CSCWireDigiValidation::analyze(), CSCComparatorDigiValidation::analyze(), HLTTauDQML1Plotter::analyze(), TriggerSummaryAnalyzerAOD::analyze(), TriggerSummaryAnalyzerRAW::analyze(), EwkMuLumiMonitorDQM::analyze(), MuTriggerAnalyzer::analyze(), FourVectorHLT::analyze(), HLTrigReport::analyze(), L1TriggerJSONMonitoring::analyze(), HLTriggerJSONMonitoring::analyze(), pat::PATTriggerEventProducer::beginLuminosityBlock(), pat::PATTriggerEventProducer::beginRun(), edm::CFWriter::CFWriter(), edm::MixingWorker< T >::checkSignal(), trigger::TriggerEvent::collectionIndex(), FSQ::HandlerTemplate< TInputCandidateType, TOutputCandidateType, filter >::count(), pat::helper::SimpleIsolator::description(), pat::helper::IsoDepositIsolator::description(), DiJetVarProducer::DiJetVarProducer(), egammaisolation::EgammaRecHitExtractor::EgammaRecHitExtractor(), edm::encode(), DimuonStatistics::endJob(), AlignmentProducerBase::endRunImpl(), TriggerSummaryProducerAOD::fillFilterObjectMembers(), HLTHighLevel::filter(), trigger::TriggerEvent::filterIndex(), trigger::TriggerEventWithRefs::filterIndex(), FSQ::HandlerTemplate< TInputCandidateType, TOutputCandidateType, filter >::getAndStoreTokens(), HLTDoubletDZ< T1, T2 >::getCollections(), FSQ::HandlerTemplate< TInputCandidateType, TOutputCandidateType, filter >::getFilteredCands(), FWPSetTableManager::handleEntry(), pat::TriggerObject::hasCollection(), pat::TriggerObjectStandAlone::hasCollection(), edm::HiMixingModule::HiMixingModule(), HLTCTPPSLocalTrackFilter::HLTCTPPSLocalTrackFilter(), HLTDiJetAveEtaFilter< T >::HLTDiJetAveEtaFilter(), HLTDiJetAveFilter< T >::HLTDiJetAveFilter(), HLTDiJetEtaTopologyFilter< T >::HLTDiJetEtaTopologyFilter(), HLTDoublet< T1, T2 >::HLTDoublet(), HLTEcalTowerFilter::HLTEcalTowerFilter(), HLTEventAnalyzerAOD::HLTEventAnalyzerAOD(), HLTEventAnalyzerRAW::HLTEventAnalyzerRAW(), HLTExclDiJetFilter< T >::HLTExclDiJetFilter(), HLTFatJetMassFilter< jetType >::HLTFatJetMassFilter(), HLTFiltCand::HLTFiltCand(), HLTSummaryFilter::hltFilter(), HLTDoublet< T1, T2 >::hltFilter(), HLTJetSortedVBFFilter< T >::hltFilter(), HLTForwardBackwardJetsFilter< T >::HLTForwardBackwardJetsFilter(), HLTGlobalSums< T >::HLTGlobalSums(), HLTHemiDPhiFilter::HLTHemiDPhiFilter(), HLTJetEtaTopologyFilter< T >::HLTJetEtaTopologyFilter(), HLTJetTag< T >::HLTJetTag(), HLTJetTagWithMatching< T >::HLTJetTagWithMatching(), HLTJetVBFFilter< T >::HLTJetVBFFilter(), HLTMonoJetFilter< T >::HLTMonoJetFilter(), HLTMuonDimuonL2Filter::HLTMuonDimuonL2Filter(), HLTMuonDimuonL2FromL1TFilter::HLTMuonDimuonL2FromL1TFilter(), HLTMuonDimuonL3Filter::HLTMuonDimuonL3Filter(), HLTMuonIsoFilter::HLTMuonIsoFilter(), HLTMuonL1Filter::HLTMuonL1Filter(), HLTMuonL1RegionalFilter::HLTMuonL1RegionalFilter(), HLTMuonL1TFilter::HLTMuonL1TFilter(), HLTMuonL1toL3TkPreFilter::HLTMuonL1toL3TkPreFilter(), HLTMuonL1TRegionalFilter::HLTMuonL1TRegionalFilter(), HLTMuonL1TtoL3TkPreFilter::HLTMuonL1TtoL3TkPreFilter(), HLTMuonL2FromL1TPreFilter::HLTMuonL2FromL1TPreFilter(), HLTMuonL2PreFilter::HLTMuonL2PreFilter(), HLTMuonL3PreFilter::HLTMuonL3PreFilter(), HLTMuonPFIsoFilter::HLTMuonPFIsoFilter(), HLTMuonTrimuonL3Filter::HLTMuonTrimuonL3Filter(), HLTPixlMBFilt::HLTPixlMBFilt(), HLTPixlMBForAlignmentFilter::HLTPixlMBForAlignmentFilter(), HLTPrescaleRecorder::HLTPrescaleRecorder(), HLTRFilter::HLTRFilter(), HLTRHemisphere::HLTRHemisphere(), HLTrigReport::HLTrigReport(), HLTSinglet< T >::HLTSinglet(), HLTSmartSinglet< T >::HLTSmartSinglet(), HLTSummaryFilter::HLTSummaryFilter(), HLTHighLevel::init(), TriggerHelper::initRun(), GenericTriggerEventFlag::initRun(), edm::MixingModule::MixingModule(), ZGoldenFilter::newEvent(), pat::PATMETSlimmer::OneMETShift::OneMETShift(), ZGoldenFilter::operator()(), cand::parser::operator<<(), PrescaleWeightProvider::prescaleWeight(), AlignmentProducerBase::processEvent(), PdfWeightProducer::produce(), AlCaGammaJetProducer::produce(), pat::PATMETProducer::produce(), AlCaDiJetsProducer::produce(), pat::PATTriggerMatchEmbedder< PATObjectType >::produce(), pat::PATTriggerEventProducer::produce(), pat::PATTriggerProducer::produce(), RazorVarProducer::RazorVarProducer(), SeedMultiplicityAnalyzer::SeedMultiplicityAnalyzer(), pat::TriggerObject::setCollection(), TreeBranch::TreeBranch(), trigger::TriggerEvent::TriggerFilterObject::TriggerFilterObject(), and trigger::TriggerEventWithRefs::TriggerFilterObject::TriggerFilterObject().

159  {
160  //NOTE: since the encoding gets used to form the configuration hash I did not want
161  // to change it so that not specifying a process would cause two colons to appear in the
162  // encoding and thus not being backwards compatible
164  if (!instance_.empty() || !process_.empty()) {
165  result += separator + instance_;
166  }
167  if (!process_.empty()) {
168  result += separator + process_;
169  }
170  return result;
171  }
std::string instance_
Definition: InputTag.h:60
std::string process_
Definition: InputTag.h:61
std::string label_
Definition: InputTag.h:59
static std::string const separator(":")
ProductResolverIndex edm::InputTag::indexFor ( TypeID const &  typeID,
BranchType  branchType,
void const *  productRegistry 
) const

Definition at line 177 of file InputTag.cc.

References branchType_, index_, productRegistry_, edm::ProductResolverIndexInitializing, edm::ProductResolverIndexInvalid, and typeID_.

Referenced by edm::Principal::findProductByLabel(), and willSkipCurrentProcess().

179  {
181 
182  // This will no longer be necessary when the compiler supports the memory
183  // order associated with atomics.
184  __sync_synchronize();
185 
186  if (index < ProductResolverIndexInitializing && typeID_ == typeID && branchType_ == branchType &&
187  productRegistry_ == productRegistry) {
188  return index;
189  }
191  }
unsigned int ProductResolverIndex
void const * productRegistry_
Definition: InputTag.h:64
char branchType_
Definition: InputTag.h:68
std::atomic< unsigned int > index_
Definition: InputTag.h:66
def branchType(schema, name)
Definition: revisionDML.py:114
TypeID typeID_
Definition: InputTag.h:63
std::string const& edm::InputTag::instance ( ) const
inline

Definition at line 37 of file InputTag.h.

References instance_.

Referenced by hcaldqm::DQTask::_getCalibType(), PedestalTask::_isApplicable(), LEDTask::_isApplicable(), HFRaddamTask::_process(), NoCQTask::_process(), DigiComparisonTask::_process(), TPComparisonTask::_process(), QIE10Task::_process(), TPTask::_process(), PedestalTask::_process(), RawTask::_process(), RecHitTask::_process(), LEDTask::_process(), DigiPhase1Task::_process(), DigiTask::_process(), UMNioTask::_process(), LaserTask::_process(), edm::Adjuster< T >::Adjuster(), AlCaHBHEMuonProducer::AlCaHBHEMuonProducer(), AlCaIsoTracksProducer::AlCaIsoTracksProducer(), ZDCQIE10Task::analyze(), FCDTask::analyze(), CSCTFanalyzer::analyze(), L1GtPatternGenerator::analyze(), SiStripSpyDisplayModule::analyze(), pat::PATTriggerEventProducer::beginRun(), pat::PATTriggerProducer::beginRun(), HGCalValidator::bookHistograms(), MultiTrackValidator::bookHistograms(), MuonTrackResidualAnalyzer::bookHistograms(), MuonTrackAnalyzer::bookHistograms(), MuonTrackValidator::bookHistograms(), edm::CFWriter::branchesActivate(), edm::MixingModule::branchesActivate(), BTVHLTOfflineSource::BTVHLTOfflineSource(), edm::MixingWorker< T >::checkSignal(), CSCTFAnalyzer::CSCTFAnalyzer(), CSCTFPacker::CSCTFPacker(), L1GtPatternGenerator::extractGlobalTriggerData(), edm::Principal::findProductByLabel(), FSQDiJetAve::FSQDiJetAve(), edm::LuminosityBlock::getByLabel(), edm::Run::getByLabel(), edm::Principal::getByLabel(), fwlite::LuminosityBlockBase::getByLabelImpl(), fwlite::RunBase::getByLabelImpl(), fwlite::EventBase::getByLabelImpl(), JetPlusTrackCorrector::getElectrons(), JetPlusTrackCorrector::getMuons(), GlobalDigisAnalyzer::GlobalDigisAnalyzer(), GlobalDigisProducer::GlobalDigisProducer(), GlobalHitsAnalyzer::GlobalHitsAnalyzer(), GlobalHitsProdHist::GlobalHitsProdHist(), GlobalHitsProducer::GlobalHitsProducer(), GlobalRecHitsAnalyzer::GlobalRecHitsAnalyzer(), GlobalRecHitsProducer::GlobalRecHitsProducer(), pat::TriggerObjectStandAlone::hasCollection(), edm::HiMixingModule::HiMixingModule(), HLTInclusiveVBFSource::HLTInclusiveVBFSource(), HLTMuonMatchAndPlotContainer::HLTMuonMatchAndPlotContainer(), JetMETHLTOfflineSource::JetMETHLTOfflineSource(), JetPlusTrackCorrector::jetTrackAssociation(), JetPlusTrackCorrector::jtaUsingEventData(), L1CaloTowerTreeProducer::L1CaloTowerTreeProducer(), L1TCSCTF::L1TCSCTF(), MuonProducer::labelOrInstance(), EcalDeadCellTriggerPrimitiveFilter::loadEcalDigis(), LowPtGsfElectronSeedValueMapsProducer::LowPtGsfElectronSeedValueMapsProducer(), edm::MixingModule::MixingModule(), MuonAssociatorEDProducer::MuonAssociatorEDProducer(), edm::InputTagMatch::operator()(), InputTagHash::operator()(), l1t::L1TGlobalUtilHelper::operator()(), L1GtUtilsHelper::operator()(), TriggerSummaryProducerAOD::OrderInputTag::operator()(), edm::operator<<(), pat::PATTriggerEventProducer::PATTriggerEventProducer(), pat::PATTriggerProducer::PATTriggerProducer(), MuonAssociatorEDProducer::produce(), EcalTBWeightUncalibRecHitProducer::produce(), EgammaHLTHybridClusterProducer::produce(), EleIsoDetIdCollectionProducer::produce(), EgammaSCCorrectionMaker::produce(), HiEgammaSCCorrectionMaker::produce(), GamIsoDetIdCollectionProducer::produce(), AlCaHBHEMuonProducer::produce(), MuonProducer::produce(), AlCaIsoTracksProducer::produce(), PYBIND11_MODULE(), edm::EDConsumerBase::recordConsumes(), edm::ThinningProducer< Collection, Selector >::registerThinnedAssociations(), and edm::HiMixingModule::verifyRegistry().

37 { return instance_; }
std::string instance_
Definition: InputTag.h:60
std::string const& edm::InputTag::label ( ) const
inline

Definition at line 36 of file InputTag.h.

References label_.

Referenced by hcaldqm::DQTask::_getCalibType(), PedestalTask::_isApplicable(), LEDTask::_isApplicable(), HFRaddamTask::_process(), NoCQTask::_process(), DigiComparisonTask::_process(), TPComparisonTask::_process(), QIE10Task::_process(), TPTask::_process(), PedestalTask::_process(), RawTask::_process(), RecHitTask::_process(), LEDTask::_process(), DigiPhase1Task::_process(), DigiTask::_process(), UMNioTask::_process(), LaserTask::_process(), AlCaHBHEMuonProducer::AlCaHBHEMuonProducer(), AlCaIsoTracksProducer::AlCaIsoTracksProducer(), ZDCQIE10Task::analyze(), FCDTask::analyze(), GctDigiToPsbText::analyze(), CSCTFAnalyzer::analyze(), CSCTFanalyzer::analyze(), L1TDTTF::analyze(), SimplePhotonAnalyzer::analyze(), ParticleListDrawer::analyze(), JetTester::analyze(), DQMHcalIsoTrackAlCaReco::analyze(), L1GtPatternGenerator::analyze(), L1TDTTPG::analyze(), L1TCSCTPG::analyze(), SUSY_HLT_SingleLepton::analyze(), L1GtTrigReport::analyze(), LepHTMonitor::analyze(), SiPixelErrorsDigisToCalibDigis::analyze(), L1TRPCTPG::analyze(), L1TCSCTF::analyze(), L1TCompare::analyze(), METMonitor::analyze(), JetTester_HeavyIons::analyze(), HTMonitor::analyze(), IsoTrackCalibration::analyze(), GctErrorAnalyzer::analyze(), StudyHLT::analyze(), HcalIsoTrkAnalyzer::analyze(), BPHMonitor::analyze(), SiStripSpyDisplayModule::analyze(), ZToMuMuGammaAnalyzer::analyze(), PhotonAnalyzer::analyze(), IsoTrig::analyze(), L1MuonRecoTreeProducer::analyze(), BeamDivergenceVtxGenerator::BeamDivergenceVtxGenerator(), BeamHaloAnalyzer::BeamHaloAnalyzer(), GsfElectronDataAnalyzer::beginJob(), GsfElectronMCFakeAnalyzer::beginJob(), DQMAnalyzer::beginJob(), GsfElectronFakeAnalyzer::beginJob(), pat::PATTriggerEventProducer::beginLuminosityBlock(), SiStripLAProfileBooker::beginRun(), pat::PATTriggerEventProducer::beginRun(), LHE2HepMCConverter::beginRun(), pat::PATTriggerProducer::beginRun(), SiPixelOfflineCalibAnalysisBase::beginRun(), SiPixelTrackResidualModule::book(), SiPixelHitEfficiencyModule::book(), SiPixelRecHitModule::book(), SiPixelClusterModule::book(), SiPixelDigiModule::book(), ScoutingTestAnalyzer::bookHistograms(), PrimaryVertexMonitor::bookHistograms(), EwkElecDQM::bookHistograms(), EwkMuDQM::bookHistograms(), BTagPerformanceAnalyzerOnData::bookHistograms(), BTagPerformanceAnalyzerMC::bookHistograms(), HGCalValidator::bookHistograms(), JetTester::bookHistograms(), MultiTrackValidator::bookHistograms(), SUSY_HLT_SingleLepton::bookHistograms(), SiPixelTrackResidualSource::bookHistograms(), TTbar_GenLepAnalyzer::bookHistograms(), LepHTMonitor::bookHistograms(), MuonTrackResidualAnalyzer::bookHistograms(), SiPixelClusterSource::bookHistograms(), MuonTrackAnalyzer::bookHistograms(), TrackingMonitor::bookHistograms(), JetTester_HeavyIons::bookHistograms(), JetAnalyzer_HeavyIons_matching::bookHistograms(), JetAnalyzer_HeavyIons::bookHistograms(), MuonTrackValidator::bookHistograms(), SiPixelHLTSource::bookMEs(), SiPixelRawDataErrorSource::bookMEs(), edm::CFWriter::branchesActivate(), edm::MixingModule::branchesActivate(), BTVHLTOfflineSource::BTVHLTOfflineSource(), edm::EDConsumerBase::checkIfEmpty(), edm::MixingWorker< T >::checkSignal(), CosmicMuonLinksProducer::CosmicMuonLinksProducer(), reco::CSCHaloDataProducer::CSCHaloDataProducer(), CSCTFAnalyzer::CSCTFAnalyzer(), CSCTFPacker::CSCTFPacker(), edm::DataMixingHcalDigiWorker::DataMixingHcalDigiWorker(), edm::DataMixingSiStripRawWorker::DataMixingSiStripRawWorker(), DumpGctDigis::doEM(), DumpGctDigis::doEnergySums(), DumpGctDigis::doFibres(), DumpGctDigis::doInternEM(), DumpGctDigis::doJets(), DumpGctDigis::doRctEM(), DumpGctDigis::doRegions(), BTagPerformanceHarvester::dqmEndJob(), METTesterPostProcessorHarvesting::dqmEndJob(), DataCertificationJetMET::dqmEndJob(), JetTesterPostProcessor::dqmEndJob(), DTHitAssociator::DTHitAssociator(), EcalDeadCellTriggerPrimitiveFilter::EcalDeadCellTriggerPrimitiveFilter(), EcalPileUpDepMonitor::EcalPileUpDepMonitor(), ElectronIsolatorFromEffectiveArea::ElectronIsolatorFromEffectiveArea(), ElectronSeedMerger::ElectronSeedMerger(), ScoutingTestAnalyzer::endRun(), AlignmentMonitorMuonVsCurvature::event(), AlignmentMonitorMuonSystemMap1D::event(), AlignmentMonitorSegmentDifferences::event(), HLTConfigData::extract(), L1GtPatternGenerator::extractGlobalTriggerData(), TopDecayChannelFilter< S >::filter(), ClusterMultiplicityFilter::filter(), ElectronIsolatorFromEffectiveArea::filter(), AlCaIsoTracksFilter::filter(), edm::Principal::findProductByLabel(), FSQDiJetAve::FSQDiJetAve(), GEMHitAssociator::GEMHitAssociator(), edm::LuminosityBlock::getByLabel(), edm::Run::getByLabel(), edm::Principal::getByLabel(), fwlite::LuminosityBlockBase::getByLabelImpl(), fwlite::RunBase::getByLabelImpl(), fwlite::EventBase::getByLabelImpl(), JetPlusTrackCorrector::getElectrons(), JetPlusTrackCorrector::getMuons(), LogErrorEventFilter::globalBeginLuminosityBlock(), GlobalDigisAnalyzer::GlobalDigisAnalyzer(), GlobalDigisProducer::GlobalDigisProducer(), GlobalHitsAnalyzer::GlobalHitsAnalyzer(), GlobalHitsProdHist::GlobalHitsProdHist(), GlobalHitsProducer::GlobalHitsProducer(), GlobalRecHitsAnalyzer::GlobalRecHitsAnalyzer(), GlobalRecHitsProducer::GlobalRecHitsProducer(), pat::TriggerObjectStandAlone::hasCollection(), HcalHitSelection::HcalHitSelection(), edm::HiMixingModule::HiMixingModule(), HitPairEDProducer::HitPairEDProducer(), HLTEgammaL1MatchFilterRegional::hltFilter(), HLTEgammaL1TMatchFilterRegional::hltFilter(), HLTMuonL3PreFilter::hltFilter(), HLTMinDPhiMETFilter::hltFilter(), HLTMuonDimuonL3Filter::hltFilter(), HLTInclusiveVBFSource::HLTInclusiveVBFSource(), HLTMhtProducer::HLTMhtProducer(), HLTMuonMatchAndPlotContainer::HLTMuonMatchAndPlotContainer(), HLTRechitsToDigis::HLTRechitsToDigis(), WMuNuValidator::init_histograms(), DTHitAssociator::initEvent(), MuonTruth::initEvent(), RPCHitAssociator::initEvent(), GEMHitAssociator::initEvent(), PrescaleWeightProvider::initRun(), InputGenJetsParticleSelector::InputGenJetsParticleSelector(), JetAnalyzer_HeavyIons::JetAnalyzer_HeavyIons(), JetAnalyzer_HeavyIons_matching::JetAnalyzer_HeavyIons_matching(), JetExtender::JetExtender(), JetMETHLTOfflineSource::JetMETHLTOfflineSource(), JetTester::JetTester(), JetTester_HeavyIons::JetTester_HeavyIons(), JetPlusTrackCorrector::jetTrackAssociation(), JetPlusTrackCorrector::jtaUsingEventData(), L1CaloTowerTreeProducer::L1CaloTowerTreeProducer(), L1Comparator::L1Comparator(), L1GlobalTriggerPSB::L1GlobalTriggerPSB(), L1GtTrigReport::L1GtTrigReport(), L1GtUtilsHelper::L1GtUtilsHelper(), L1TCompare::L1TCompare(), L1TComparisonResultFilter< T >::L1TComparisonResultFilter(), L1TCSCTF::L1TCSCTF(), L1TDTTF::L1TDTTF(), L1TDTTPG::L1TDTTPG(), l1t::L1TGlobalUtilHelper::L1TGlobalUtilHelper(), l1t::L1TStage2CaloAnalyzer::L1TStage2CaloAnalyzer(), MuonProducer::labelOrInstance(), EcalDeadCellTriggerPrimitiveFilter::loadEcalDigis(), EmDQM::makePSetForEgammaGenericFilter(), EmDQM::makePSetForEgammaGenericQuadraticFilter(), EmDQM::makePSetForElectronGenericFilter(), CSCTriggerPrimitivesReader::MCStudies(), MultiTrackValidator::MultiTrackValidator(), MuonAssociatorEDProducer::MuonAssociatorEDProducer(), MuonIdVal::MuonIdVal(), cms::MuonMET::MuonMET(), MuonSeedOrcaPatternRecognition::MuonSeedOrcaPatternRecognition(), MuonTruth::MuonTruth(), edm::InputTagMatch::operator()(), DTSegmentSelector::operator()(), InputTagHash::operator()(), l1t::L1TGlobalUtilHelper::operator()(), L1GtUtilsHelper::operator()(), TriggerSummaryProducerAOD::OrderInputTag::operator()(), edm::operator<<(), pat::PATTriggerEventProducer::PATTriggerEventProducer(), pat::PATTriggerProducer::PATTriggerProducer(), PF_PU_AssoMap::PF_PU_AssoMap(), PFCand_AssoMap::PFCand_AssoMap(), citk::PFIsolationSumProducerForPUPPI::PFIsolationSumProducerForPUPPI(), PFLinker::PFLinker(), PixelTrackReconstruction::PixelTrackReconstruction(), edm::service::RandomNumberGeneratorService::postEventRead(), edm::service::RandomNumberGeneratorService::preBeginLumi(), PrescaleWeightProvider::PrescaleWeightProvider(), MuonAssociatorEDProducer::produce(), JetExtender::produce(), EcalRecalibRecHitProducer::produce(), EcalTBWeightUncalibRecHitProducer::produce(), CastorDigiToRaw::produce(), L3MuonCandidateProducerFromMuons::produce(), HcalDigiToRaw::produce(), cms::MuonMET::produce(), CSCTFPacker::produce(), HLTHtMhtProducer::produce(), EgammaEcalRecHitIsolationProducer::produce(), NoPileUpPFMEtProducer::produce(), PFLinker::produce(), GEMChamberMasker::produce(), ME0ChamberMasker::produce(), PFCand_AssoMap::produce(), HiEgammaSCCorrectionMaker::produce(), TtEvtBuilder< C >::produce(), RecoTauGenericJetRegionProducer< JetType, CandType >::produce(), HLTTrackMETProducer::produce(), SiStripElectronAssociator::produce(), PF_PU_AssoMap::produce(), CSCTriggerPrimitivesProducer::produce(), GEDPhotonProducer::produce(), pat::PATTauProducer::produce(), HcalHitSelection::produce(), AlCaHBHEMuonProducer::produce(), pat::PATTriggerEventProducer::produce(), RPCChamberMasker::produce(), pat::PATTriggerProducer::produce(), pat::JetCorrFactorsProducer::produce(), ShiftedJetProducerT< T, Textractor >::produce(), AlCaIsoTracksProducer::produce(), PYBIND11_MODULE(), edm::service::RandomNumberGeneratorService::RandomNumberGeneratorService(), L1GlobalTriggerPSB::receiveGctObjectData(), edm::EDConsumerBase::recordConsumes(), ReducedEGProducer::ReducedEGProducer(), edm::ThinningProducer< Collection, Selector >::registerThinnedAssociations(), RPCHitAssociator::RPCHitAssociator(), MuonAlignmentFromReference::run(), SiStripElectronAssociator::SiStripElectronAssociator(), TauTagValidation::TauTagValidation(), TrackingMonitor::TrackingMonitor(), TracktoRPC::TracktoRPC(), and edm::HiMixingModule::verifyRegistry().

36 { return label_; }
std::string label_
Definition: InputTag.h:59
InputTag & edm::InputTag::operator= ( InputTag const &  other)

Definition at line 103 of file InputTag.cc.

References branchType_, index_, instance_, label_, edm::NumBranchTypes, process_, productRegistry_, edm::ProductResolverIndexInitializing, edm::ProductResolverIndexInvalid, skipCurrentProcess_, and typeID_.

103  {
104  if (this != &other) {
105  label_ = other.label_;
106  instance_ = other.instance_;
107  process_ = other.process_;
108  skipCurrentProcess_ = other.skipCurrentProcess_;
109 
110  ProductResolverIndex otherIndex = other.index_.load();
111  if (otherIndex < ProductResolverIndexInitializing) {
112  branchType_ = other.branchType_;
113  typeID_ = other.typeID_;
114  productRegistry_ = other.productRegistry_;
115  index_.store(otherIndex);
116  } else {
118  typeID_ = TypeID();
119  productRegistry_ = nullptr;
121  }
122  }
123  return *this;
124  }
unsigned int ProductResolverIndex
std::string instance_
Definition: InputTag.h:60
std::string process_
Definition: InputTag.h:61
std::string label_
Definition: InputTag.h:59
void const * productRegistry_
Definition: InputTag.h:64
bool skipCurrentProcess_
Definition: InputTag.h:70
char branchType_
Definition: InputTag.h:68
std::atomic< unsigned int > index_
Definition: InputTag.h:66
TypeID typeID_
Definition: InputTag.h:63
InputTag & edm::InputTag::operator= ( InputTag &&  other)

Definition at line 126 of file InputTag.cc.

References branchType_, index_, instance_, label_, eostools::move(), edm::NumBranchTypes, trackingPlots::other, process_, productRegistry_, edm::ProductResolverIndexInitializing, edm::ProductResolverIndexInvalid, skipCurrentProcess_, and typeID_.

126  {
127  if (this != &other) {
128  label_ = std::move(other.label_);
129  instance_ = std::move(other.instance_);
130  process_ = std::move(other.process_);
131  skipCurrentProcess_ = other.skipCurrentProcess_;
132 
133  ProductResolverIndex otherIndex = other.index_.load();
134  if (otherIndex < ProductResolverIndexInitializing) {
135  branchType_ = other.branchType_;
136  typeID_ = other.typeID_;
137  productRegistry_ = other.productRegistry_;
138  index_.store(otherIndex);
139  } else {
141  typeID_ = TypeID();
142  productRegistry_ = nullptr;
144  }
145  }
146  return *this;
147  }
unsigned int ProductResolverIndex
std::string instance_
Definition: InputTag.h:60
std::string process_
Definition: InputTag.h:61
std::string label_
Definition: InputTag.h:59
void const * productRegistry_
Definition: InputTag.h:64
bool skipCurrentProcess_
Definition: InputTag.h:70
char branchType_
Definition: InputTag.h:68
std::atomic< unsigned int > index_
Definition: InputTag.h:66
def move(src, dest)
Definition: eostools.py:511
TypeID typeID_
Definition: InputTag.h:63
bool edm::InputTag::operator== ( InputTag const &  tag) const

Definition at line 173 of file InputTag.cc.

References instance_, label_, and process_.

Referenced by willSkipCurrentProcess().

173  {
174  return (label_ == tag.label_) && (instance_ == tag.instance_) && (process_ == tag.process_);
175  }
std::string instance_
Definition: InputTag.h:60
std::string process_
Definition: InputTag.h:61
std::string label_
Definition: InputTag.h:59
std::string const& edm::InputTag::process ( ) const
inline

an empty string means find the most recently produced product with the label and instance

Definition at line 40 of file InputTag.h.

References process_.

Referenced by TriggerHelper::acceptHltLogicalExpression(), GenericTriggerEventFlag::acceptHltLogicalExpression(), L1TDTTF::analyze(), CandidateTriggerObjectProducer::beginRun(), PixelVTXMonitor::beginRun(), HLTrigReport::beginRun(), pat::PATTriggerEventProducer::beginRun(), pat::PATTriggerProducer::beginRun(), TrackerDpgAnalysis::beginRun(), HGCalValidator::bookHistograms(), MultiTrackValidator::bookHistograms(), MuonTrackResidualAnalyzer::bookHistograms(), MuonTrackAnalyzer::bookHistograms(), MuonTrackValidator::bookHistograms(), EwkMuLumiMonitorDQM::dqmBeginRun(), FSQDiJetAve::dqmBeginRun(), EmDQM::dqmBeginRun(), ZeeCandidateFilter::filter(), edm::Principal::findProductByLabel(), edm::Principal::getByLabel(), fwlite::LuminosityBlockBase::getByLabelImpl(), fwlite::RunBase::getByLabelImpl(), fwlite::EventBase::getByLabelImpl(), JetPlusTrackCorrector::getElectrons(), JetPlusTrackCorrector::getMuons(), LogErrorEventFilter::globalBeginLuminosityBlock(), HLTriggerJSONMonitoring::globalBeginRun(), pat::TriggerObjectStandAlone::hasCollection(), HLTDQMTagAndProbeEff< TagType, TagCollType, ProbeType, ProbeCollType >::HLTDQMTagAndProbeEff(), PrescaleWeightProvider::initRun(), TriggerHelper::initRun(), GenericTriggerEventFlag::initRun(), JetPlusTrackCorrector::jetTrackAssociation(), JetPlusTrackCorrector::jtaUsingEventData(), L1TDTTF::L1TDTTF(), L1TDTTPG::L1TDTTPG(), EmDQM::makePSetForEgammaDoubleEtDeltaPhiFilter(), EmDQM::makePSetForEgammaGenericFilter(), EmDQM::makePSetForEgammaGenericQuadraticFilter(), EmDQM::makePSetForElectronGenericFilter(), EmDQM::makePSetForEtFilter(), EmDQM::makePSetForL1SeedFilter(), EmDQM::makePSetForL1SeedToSuperClusterMatchFilter(), EmDQM::makePSetForOneOEMinusOneOPFilter(), EmDQM::makePSetForPixelMatchFilter(), BPHMonitor::matchToTrigger(), edm::InputTagMatch::operator()(), InputTagHash::operator()(), l1t::L1TGlobalUtilHelper::operator()(), L1GtUtilsHelper::operator()(), TriggerSummaryProducerAOD::OrderInputTag::operator()(), edm::operator<<(), pat::PATTriggerProducer::PATTriggerProducer(), PrescaleWeightProvider::PrescaleWeightProvider(), CandidateTriggerObjectProducer::produce(), PYBIND11_MODULE(), edm::service::RandomNumberGeneratorService::RandomNumberGeneratorService(), edm::service::RandomNumberGeneratorService::readFromLuminosityBlock(), edm::EDConsumerBase::recordConsumes(), and edm::ThinningProducer< Collection, Selector >::registerThinnedAssociations().

40 { return process_; }
std::string process_
Definition: InputTag.h:61
void edm::InputTag::tryToCacheIndex ( ProductResolverIndex  index,
TypeID const &  typeID,
BranchType  branchType,
void const *  productRegistry 
) const

Definition at line 193 of file InputTag.cc.

References revisionDML::branchType(), branchType_, index_, productRegistry_, edm::ProductResolverIndexInitializing, edm::ProductResolverIndexInvalid, and typeID_.

Referenced by edm::Principal::findProductByLabel(), and willSkipCurrentProcess().

196  {
197  unsigned int invalidValue = static_cast<unsigned int>(ProductResolverIndexInvalid);
198  if (index_.compare_exchange_strong(invalidValue, static_cast<unsigned int>(ProductResolverIndexInitializing))) {
199  typeID_ = typeID;
201  productRegistry_ = productRegistry;
202 
203  // This will no longer be necessary when the compiler supports the memory
204  // order associated with atomics.
205  __sync_synchronize();
206 
207  index_.store(index);
208  }
209  }
void const * productRegistry_
Definition: InputTag.h:64
char branchType_
Definition: InputTag.h:68
std::atomic< unsigned int > index_
Definition: InputTag.h:66
def branchType(schema, name)
Definition: revisionDML.py:114
TypeID typeID_
Definition: InputTag.h:63
bool edm::InputTag::willSkipCurrentProcess ( ) const
inline

Member Data Documentation

char edm::InputTag::branchType_
mutableprivate

Definition at line 68 of file InputTag.h.

Referenced by indexFor(), InputTag(), operator=(), and tryToCacheIndex().

std::atomic<unsigned int> edm::InputTag::index_
mutableprivate

Definition at line 66 of file InputTag.h.

Referenced by indexFor(), InputTag(), operator=(), and tryToCacheIndex().

std::string edm::InputTag::instance_
private

Definition at line 60 of file InputTag.h.

Referenced by encode(), InputTag(), instance(), operator=(), and operator==().

const std::string edm::InputTag::kCurrentProcess
static
const std::string edm::InputTag::kSkipCurrentProcess
static
std::string edm::InputTag::label_
private
std::string edm::InputTag::process_
private

Definition at line 61 of file InputTag.h.

Referenced by calcSkipCurrentProcess(), encode(), InputTag(), operator=(), operator==(), and process().

void const* edm::InputTag::productRegistry_
mutableprivate

Definition at line 64 of file InputTag.h.

Referenced by indexFor(), InputTag(), operator=(), and tryToCacheIndex().

bool edm::InputTag::skipCurrentProcess_
private

Definition at line 70 of file InputTag.h.

Referenced by InputTag(), operator=(), and willSkipCurrentProcess().

TypeID edm::InputTag::typeID_
mutableprivate

Definition at line 63 of file InputTag.h.

Referenced by indexFor(), InputTag(), operator=(), and tryToCacheIndex().