CMS 3D CMS Logo

List of all members | Classes | Public Types | Public Member Functions | Static Public Member Functions | Private Attributes
edm::ProductRegistryHelper Class Reference

#include <ProductRegistryHelper.h>

Inheritance diagram for edm::ProductRegistryHelper:
edm::ProducerBase edm::EDFilter edm::EDProducer edm::global::EDFilterBase edm::global::EDProducerBase edm::limited::EDFilterBase edm::limited::EDProducerBase edm::one::EDFilterBase edm::one::EDProducerBase edm::PuttableSourceBase edm::stream::EDFilterBase edm::stream::EDProducerBase

Classes

struct  BranchAliasSetter
 
struct  BranchAliasSetterT
 
struct  has_donotrecordparents
 
struct  TypeLabelItem
 

Public Types

typedef std::vector< TypeLabelItemTypeLabelList
 

Public Member Functions

virtual bool hasAbilityToProduceInLumis () const
 
virtual bool hasAbilityToProduceInRuns () const
 
template<class ProductType >
BranchAliasSetterT< ProductType > produces ()
 declare what type of product will make and with which optional label More...
 
template<class ProductType >
BranchAliasSetterT< ProductType > produces (std::string instanceName)
 
template<typename ProductType , BranchType B>
BranchAliasSetterT< ProductType > produces ()
 
template<typename ProductType , BranchType B>
BranchAliasSetterT< ProductType > produces (std::string instanceName)
 
template<typename ProductType , Transition B>
BranchAliasSetterT< ProductType > produces ()
 
template<typename ProductType , Transition B>
BranchAliasSetterT< ProductType > produces (std::string instanceName)
 
BranchAliasSetter produces (const TypeID &id, std::string instanceName=std::string(), bool recordProvenance=true)
 
template<BranchType B>
BranchAliasSetter produces (const TypeID &id, std::string instanceName=std::string(), bool recordProvenance=true)
 
template<Transition B>
BranchAliasSetter produces (const TypeID &id, std::string instanceName=std::string(), bool recordProvenance=true)
 
 ProductRegistryHelper ()
 
std::vector< bool > const & recordProvenanceList () const
 
TypeLabelList const & typeLabelList () const
 used by the fwk to register the list of products of this module More...
 
virtual ~ProductRegistryHelper () noexcept(false)
 

Static Public Member Functions

static void addToRegistry (TypeLabelList::const_iterator const &iBegin, TypeLabelList::const_iterator const &iEnd, ModuleDescription const &iDesc, ProductRegistry &iReg, ProductRegistryHelper *iProd, bool iIsListener=false)
 

Private Attributes

std::vector< bool > recordProvenanceList_
 
TypeLabelList typeLabelList_
 

Detailed Description

Definition at line 23 of file ProductRegistryHelper.h.

Member Typedef Documentation

Definition at line 86 of file ProductRegistryHelper.h.

Constructor & Destructor Documentation

edm::ProductRegistryHelper::~ProductRegistryHelper ( )
virtualnoexcept

Definition at line 18 of file ProductRegistryHelper.cc.

18 {}
edm::ProductRegistryHelper::ProductRegistryHelper ( )
inline

Definition at line 26 of file ProductRegistryHelper.h.

Member Function Documentation

void edm::ProductRegistryHelper::addToRegistry ( TypeLabelList::const_iterator const &  iBegin,
TypeLabelList::const_iterator const &  iEnd,
ModuleDescription const &  iDesc,
ProductRegistry iReg,
ProductRegistryHelper iProd,
bool  iIsListener = false 
)
static

Definition at line 34 of file ProductRegistryHelper.cc.

References edm::ProductRegistry::addProduct(), edm::BeginLuminosityBlock, edm::BeginRun, revisionDML::branchType(), edm::checkClassDictionaries(), edm::checkDictionary(), edm::checkDictionaryOfWrappedType(), edm::convertToBranchType(), edm::EndLuminosityBlock, edm::EndRun, mps_splice::entry, Exception, hasAbilityToProduceInLumis(), hasAbilityToProduceInRuns(), edm::InEvent, edm::isEndTransition(), edm::ProductRegistryHelper::TypeLabelItem::kSwitchAlias, edm::errors::LogicError, edm::ModuleDescription::moduleLabel(), edm::ModuleDescription::moduleName(), AlCaHLTBitMon_ParallelJobs::p, edm::ModuleDescription::parameterSetID(), edm::ModuleDescription::processName(), edm::setIsMergeable(), AlCaHLTBitMon_QueryRunRegistry::string, and edm::throwMissingDictionariesException().

Referenced by recordProvenanceList(), edm::ProducerBase::registerProducts(), and edm::ProducerBase::registrationCallback().

39  {
40  std::vector<std::string> missingDictionaries;
41  std::vector<std::string> producedTypes;
42  std::set<std::tuple<BranchType, std::type_index, std::string>> registeredProducts;
43 
44  for (TypeLabelList::const_iterator p = iBegin; p != iEnd; ++p) {
45  if (p->transition_ == Transition::BeginRun || p->transition_ == Transition::EndRun) {
46  if (not iProd->hasAbilityToProduceInRuns()) {
47  throwProducesWithoutAbility("Run", p->typeID_.userClassName());
48  }
49  } else if (p->transition_ == Transition::BeginLuminosityBlock ||
50  p->transition_ == Transition::EndLuminosityBlock) {
51  if (not iProd->hasAbilityToProduceInLumis()) {
52  throwProducesWithoutAbility("LuminosityBlock", p->typeID_.userClassName());
53  }
54  }
55  if (!checkDictionary(missingDictionaries, p->typeID_)) {
56  checkDictionaryOfWrappedType(missingDictionaries, p->typeID_);
57  producedTypes.emplace_back(p->typeID_.className());
58  continue;
59  }
60  auto branchType = convertToBranchType(p->transition_);
61  if (branchType != InEvent) {
62  std::tuple<BranchType, std::type_index, std::string> entry{
63  branchType, p->typeID_.typeInfo(), p->productInstanceName_};
64  if (registeredProducts.end() != registeredProducts.find(entry)) {
65  //ignore registration of items if in both begin and end transitions for now
66  // This is to work around ExternalLHEProducer
67  continue;
68  } else {
69  registeredProducts.insert(entry);
70  }
71  }
72 
73  TypeWithDict type(p->typeID_.typeInfo());
74  BranchDescription pdesc(branchType,
75  iDesc.moduleLabel(),
76  iDesc.processName(),
77  p->typeID_.userClassName(),
78  p->typeID_.friendlyClassName(),
79  p->productInstanceName_,
80  iDesc.moduleName(),
81  iDesc.parameterSetID(),
82  type,
83  true,
84  isEndTransition(p->transition_));
85  if (p->aliasType_ == TypeLabelItem::AliasType::kSwitchAlias) {
86  if (p->branchAlias_.empty()) {
88  << "Branch alias type has been set to SwitchAlias, but the alias content is empty.\n"
89  << "Please report this error to the FWCore developers";
90  }
91  pdesc.setSwitchAliasModuleLabel(p->branchAlias_);
92  }
93  setIsMergeable(pdesc);
94 
95  if (pdesc.transient()) {
96  if (!checkDictionary(missingDictionaries, pdesc.wrappedName(), pdesc.wrappedType())) {
97  // It is should be impossible to get here, because the only way to
98  // make it transient is in the line that causes the wrapped dictionary
99  // to be created. Just to be safe I leave this check here ...
100  producedTypes.emplace_back(pdesc.className());
101  continue;
102  }
103  } else {
104  // also check constituents of wrapped types if it is not transient
105  if (!checkClassDictionaries(missingDictionaries, pdesc.wrappedName(), pdesc.wrappedType())) {
106  producedTypes.emplace_back(pdesc.className());
107  continue;
108  }
109  }
110  if (!p->branchAlias_.empty())
111  pdesc.insertBranchAlias(p->branchAlias_);
112  iReg.addProduct(pdesc, iIsListener);
113  }
114 
115  if (!missingDictionaries.empty()) {
116  std::string context("Calling ProductRegistryHelper::addToRegistry, checking dictionaries for produced types");
117  throwMissingDictionariesException(missingDictionaries, context, producedTypes);
118  }
119  }
type
Definition: HCALResponse.h:21
void throwMissingDictionariesException(std::vector< std::string > &missingDictionaries, std::string const &context)
constexpr bool isEndTransition(Transition iValue)
Definition: Transition.h:25
bool checkDictionary(std::vector< std::string > &missingDictionaries, TypeID const &typeID)
bool checkClassDictionaries(std::vector< std::string > &missingDictionaries, TypeID const &typeID)
bool checkDictionaryOfWrappedType(std::vector< std::string > &missingDictionaries, TypeID const &unwrappedTypeID)
void setIsMergeable(BranchDescription &)
constexpr BranchType convertToBranchType(Transition iValue)
Definition: Transition.h:15
def branchType(schema, name)
Definition: revisionDML.py:114
virtual bool edm::ProductRegistryHelper::hasAbilityToProduceInLumis ( ) const
inlinevirtual

Reimplemented in edm::stream::EDFilter< T >, edm::stream::EDFilter< edm::GlobalCache< AlCaIsoTracks::Counters > >, edm::stream::EDFilter< edm::GlobalCache< AlCaHEMuons::Counters > >, edm::stream::EDFilter< edm::GlobalCache< prescale::Efficiency > >, edm::stream::EDFilter< edm::GlobalCache< PythiaFilterIsoTracks::Counters > >, edm::stream::EDFilter<>, edm::stream::EDFilter< edm::GlobalCache< AlCaIsoTracksProdFilter::Counters > >, edm::stream::EDFilter< edm::GlobalCache< trigger::Efficiency > >, edm::stream::EDFilter< edm::GlobalCache< AlCaHBHEMuons::Counters > >, edm::stream::EDFilter< edm::GlobalCache< AlCaIsolatedBunch::Counters > >, edm::stream::EDFilter< edm::GlobalCache< AlCaLowPUHBHEMuons::Counters > >, edm::stream::EDFilter< edm::GlobalCache< AlCaGammaJet::Counters > >, edm::limited::EDFilter< T >, edm::limited::EDProducer< T >, edm::global::EDFilter< T >, edm::global::EDFilter< edm::RunCache< leef::RunErrors >, edm::LuminosityBlockCache< LumiErrors >, edm::EndLuminosityBlockProducer >, edm::global::EDFilter<>, edm::global::EDFilter< edm::StreamCache< externalgen::StreamCache >, edm::RunCache< externalgen::RunCache >, edm::EndRunProducer, edm::LuminosityBlockCache< externalgen::LumiCache >, edm::LuminosityBlockSummaryCache< GenLumiInfoProduct >, edm::BeginLuminosityBlockProducer, edm::EndLuminosityBlockProducer >, edm::global::EDFilter< EndRunProducer, BeginLuminosityBlockProducer, EndLuminosityBlockProducer, RunCache< gen::RunCache >, LuminosityBlockSummaryCache< gen::LumiSummary >, StreamCache< gen::StreamCache< HAD, DEC > > >, edm::global::EDFilter< EndRunProducer, BeginLuminosityBlockProducer, EndLuminosityBlockProducer, RunCache< gen::GenRunCache >, LuminosityBlockSummaryCache< gen::GenLumiSummary >, StreamCache< gen::GenStreamCache< HAD, DEC > > >, edm::global::EDProducer< T >, edm::one::EDProducer< T >, edm::global::EDProducer< edm::BeginLuminosityBlockProducer >, edm::global::EDProducer<>, edm::global::EDProducer< edm::BeginRunProducer >, edm::global::EDProducer< edm::EndLuminosityBlockProducer, edm::LuminosityBlockCache< Sums > >, edm::global::EDProducer< edm::LuminosityBlockCache< pr::Cache > >, edm::global::EDProducer< edm::EndLuminosityBlockProducer >, edm::global::EDProducer< edm::StreamCache< CSCTriggerPrimitivesBuilder > >, edm::global::EDProducer< edm::StreamCache< LumiCacheInfoHolder >, edm::RunCache< DynamicWeightChoice >, edm::RunSummaryCache< CounterMap >, edm::EndRunProducer >, edm::global::EDProducer< edm::RunCache< ConvertParticle > >, edm::global::EDProducer< edm::RunCache< IDto3Charge > >, edm::global::EDProducer< edm::ExternalWork >, edm::global::EDProducer< edm::RunCache< GEMROMapping > >, edm::one::EDProducer< edm::one::WatchRuns, edm::one::WatchLuminosityBlocks, edm::one::SharedResources, edm::EndLuminosityBlockProducer, edm::EndRunProducer >, edm::one::EDProducer< edm::Accumulator, edm::EndLuminosityBlockProducer, edm::EndRunProducer, edm::one::WatchLuminosityBlocks, edm::one::WatchRuns, edm::one::SharedResources >, edm::one::EDProducer< edm::BeginLuminosityBlockProducer >, edm::one::EDProducer< edm::one::WatchRuns, edm::BeginLuminosityBlockProducer, edm::EndRunProducer >, edm::one::EDProducer<>, edm::one::EDProducer< edm::BeginRunProducer >, edm::one::EDProducer< EndRunProducer, one::WatchLuminosityBlocks >, edm::one::EDProducer< EndRunProducer, one::WatchLuminosityBlocks, one::SharedResources >, edm::one::EDProducer< edm::EndRunProducer, edm::EndLuminosityBlockProducer, edm::one::WatchRuns, edm::one::WatchLuminosityBlocks >, edm::one::EDProducer< edm::RunCache< meedm::Void >, edm::LuminosityBlockCache< meedm::Void >, edm::EndLuminosityBlockProducer, edm::EndRunProducer, edm::one::SharedResources >, edm::one::EDProducer< edm::EndLuminosityBlockProducer >, edm::one::EDProducer< edm::Accumulator, edm::EndRunProducer, edm::one::WatchRuns, T... >, edm::one::EDProducer< edm::RunCache< edm::ConditionsInRunBlock >, edm::LuminosityBlockCache< edm::ConditionsInLumiBlock >, edm::EndRunProducer, edm::EndLuminosityBlockProducer >, edm::one::EDProducer< edm::EndLuminosityBlockProducer, edm::one::WatchLuminosityBlocks, edm::Accumulator >, edm::one::EDProducer< edm::one::WatchLuminosityBlocks, edm::EndLuminosityBlockProducer >, edm::one::EDProducer< edm::one::WatchRuns, edm::one::SharedResources >, edm::one::EDProducer< edm::one::SharedResources, edm::one::WatchRuns >, edm::one::EDProducer< edm::one::WatchRuns >, edm::one::EDProducer< edm::BeginRunProducer, edm::EndRunProducer >, edm::one::EDProducer< edm::EndLuminosityBlockProducer, edm::one::WatchLuminosityBlocks >, edm::one::EDProducer< one::WatchRuns, EndRunProducer >, edm::one::EDProducer< edm::EndRunProducer >, edm::one::EDProducer< edm::one::SharedResources >, edm::one::EDFilter< T >, edm::one::EDFilter<>, edm::one::EDFilter< EndRunProducer, BeginLuminosityBlockProducer, EndLuminosityBlockProducer, one::WatchRuns, one::WatchLuminosityBlocks, one::SharedResources >, edm::one::EDFilter< EndRunProducer, BeginLuminosityBlockProducer, EndLuminosityBlockProducer, one::WatchLuminosityBlocks, one::SharedResources >, edm::one::EDFilter< edm::one::WatchLuminosityBlocks >, edm::one::EDFilter< edm::one::SharedResources >, and edm::PuttableSourceBase.

Definition at line 168 of file ProductRegistryHelper.h.

Referenced by addToRegistry().

168 { return false; }
virtual bool edm::ProductRegistryHelper::hasAbilityToProduceInRuns ( ) const
inlinevirtual

Reimplemented in edm::stream::EDFilter< T >, edm::stream::EDFilter< edm::GlobalCache< AlCaIsoTracks::Counters > >, edm::stream::EDFilter< edm::GlobalCache< AlCaHEMuons::Counters > >, edm::stream::EDFilter< edm::GlobalCache< prescale::Efficiency > >, edm::stream::EDFilter< edm::GlobalCache< PythiaFilterIsoTracks::Counters > >, edm::stream::EDFilter<>, edm::stream::EDFilter< edm::GlobalCache< AlCaIsoTracksProdFilter::Counters > >, edm::stream::EDFilter< edm::GlobalCache< trigger::Efficiency > >, edm::stream::EDFilter< edm::GlobalCache< AlCaHBHEMuons::Counters > >, edm::stream::EDFilter< edm::GlobalCache< AlCaIsolatedBunch::Counters > >, edm::stream::EDFilter< edm::GlobalCache< AlCaLowPUHBHEMuons::Counters > >, edm::stream::EDFilter< edm::GlobalCache< AlCaGammaJet::Counters > >, edm::limited::EDFilter< T >, edm::limited::EDProducer< T >, edm::global::EDFilter< T >, edm::global::EDFilter< edm::RunCache< leef::RunErrors >, edm::LuminosityBlockCache< LumiErrors >, edm::EndLuminosityBlockProducer >, edm::global::EDFilter<>, edm::global::EDFilter< edm::StreamCache< externalgen::StreamCache >, edm::RunCache< externalgen::RunCache >, edm::EndRunProducer, edm::LuminosityBlockCache< externalgen::LumiCache >, edm::LuminosityBlockSummaryCache< GenLumiInfoProduct >, edm::BeginLuminosityBlockProducer, edm::EndLuminosityBlockProducer >, edm::global::EDFilter< EndRunProducer, BeginLuminosityBlockProducer, EndLuminosityBlockProducer, RunCache< gen::RunCache >, LuminosityBlockSummaryCache< gen::LumiSummary >, StreamCache< gen::StreamCache< HAD, DEC > > >, edm::global::EDFilter< EndRunProducer, BeginLuminosityBlockProducer, EndLuminosityBlockProducer, RunCache< gen::GenRunCache >, LuminosityBlockSummaryCache< gen::GenLumiSummary >, StreamCache< gen::GenStreamCache< HAD, DEC > > >, edm::global::EDProducer< T >, edm::one::EDProducer< T >, edm::global::EDProducer< edm::BeginLuminosityBlockProducer >, edm::global::EDProducer<>, edm::global::EDProducer< edm::BeginRunProducer >, edm::global::EDProducer< edm::EndLuminosityBlockProducer, edm::LuminosityBlockCache< Sums > >, edm::global::EDProducer< edm::LuminosityBlockCache< pr::Cache > >, edm::global::EDProducer< edm::EndLuminosityBlockProducer >, edm::global::EDProducer< edm::StreamCache< CSCTriggerPrimitivesBuilder > >, edm::global::EDProducer< edm::StreamCache< LumiCacheInfoHolder >, edm::RunCache< DynamicWeightChoice >, edm::RunSummaryCache< CounterMap >, edm::EndRunProducer >, edm::global::EDProducer< edm::RunCache< ConvertParticle > >, edm::global::EDProducer< edm::RunCache< IDto3Charge > >, edm::global::EDProducer< edm::ExternalWork >, edm::global::EDProducer< edm::RunCache< GEMROMapping > >, edm::one::EDProducer< edm::one::WatchRuns, edm::one::WatchLuminosityBlocks, edm::one::SharedResources, edm::EndLuminosityBlockProducer, edm::EndRunProducer >, edm::one::EDProducer< edm::Accumulator, edm::EndLuminosityBlockProducer, edm::EndRunProducer, edm::one::WatchLuminosityBlocks, edm::one::WatchRuns, edm::one::SharedResources >, edm::one::EDProducer< edm::BeginLuminosityBlockProducer >, edm::one::EDProducer< edm::one::WatchRuns, edm::BeginLuminosityBlockProducer, edm::EndRunProducer >, edm::one::EDProducer<>, edm::one::EDProducer< edm::BeginRunProducer >, edm::one::EDProducer< EndRunProducer, one::WatchLuminosityBlocks >, edm::one::EDProducer< EndRunProducer, one::WatchLuminosityBlocks, one::SharedResources >, edm::one::EDProducer< edm::EndRunProducer, edm::EndLuminosityBlockProducer, edm::one::WatchRuns, edm::one::WatchLuminosityBlocks >, edm::one::EDProducer< edm::RunCache< meedm::Void >, edm::LuminosityBlockCache< meedm::Void >, edm::EndLuminosityBlockProducer, edm::EndRunProducer, edm::one::SharedResources >, edm::one::EDProducer< edm::EndLuminosityBlockProducer >, edm::one::EDProducer< edm::Accumulator, edm::EndRunProducer, edm::one::WatchRuns, T... >, edm::one::EDProducer< edm::RunCache< edm::ConditionsInRunBlock >, edm::LuminosityBlockCache< edm::ConditionsInLumiBlock >, edm::EndRunProducer, edm::EndLuminosityBlockProducer >, edm::one::EDProducer< edm::EndLuminosityBlockProducer, edm::one::WatchLuminosityBlocks, edm::Accumulator >, edm::one::EDProducer< edm::one::WatchLuminosityBlocks, edm::EndLuminosityBlockProducer >, edm::one::EDProducer< edm::one::WatchRuns, edm::one::SharedResources >, edm::one::EDProducer< edm::one::SharedResources, edm::one::WatchRuns >, edm::one::EDProducer< edm::one::WatchRuns >, edm::one::EDProducer< edm::BeginRunProducer, edm::EndRunProducer >, edm::one::EDProducer< edm::EndLuminosityBlockProducer, edm::one::WatchLuminosityBlocks >, edm::one::EDProducer< one::WatchRuns, EndRunProducer >, edm::one::EDProducer< edm::EndRunProducer >, edm::one::EDProducer< edm::one::SharedResources >, edm::one::EDFilter< T >, edm::one::EDFilter<>, edm::one::EDFilter< EndRunProducer, BeginLuminosityBlockProducer, EndLuminosityBlockProducer, one::WatchRuns, one::WatchLuminosityBlocks, one::SharedResources >, edm::one::EDFilter< EndRunProducer, BeginLuminosityBlockProducer, EndLuminosityBlockProducer, one::WatchLuminosityBlocks, one::SharedResources >, edm::one::EDFilter< edm::one::WatchLuminosityBlocks >, edm::one::EDFilter< edm::one::SharedResources >, and edm::PuttableSourceBase.

Definition at line 166 of file ProductRegistryHelper.h.

Referenced by addToRegistry().

166 { return false; }
template<class ProductType >
BranchAliasSetterT<ProductType> edm::ProductRegistryHelper::produces ( )
inline

declare what type of product will make and with which optional label

the statement

produces<ProductType>("optlabel");

should be added to the producer ctor for every product

Definition at line 108 of file ProductRegistryHelper.h.

References AlCaHLTBitMon_QueryRunRegistry::string.

Referenced by CaloTruthAccumulator::CaloTruthAccumulator(), CastorDigiProducer::CastorDigiProducer(), EcalDigiProducer::EcalDigiProducer(), EcalTBDigiProducer::EcalTBDigiProducer(), EcalTimeDigiProducer::EcalTimeDigiProducer(), FTLDigitizerBase::FTLDigitizerBase(), HcalDigiProducer::HcalDigiProducer(), HcalTBDigiProducer::HcalTBDigiProducer(), HGCDigiProducer::HGCDigiProducer(), MTDDigitizerBase::MTDDigitizerBase(), pat::PATPackedCandidateProducer::PATPackedCandidateProducer(), cms::Phase2TrackerDigitizer::Phase2TrackerDigitizer(), PhotonIDValueMapProducer::PhotonIDValueMapProducer(), cms::PileupVertexAccumulator::PileupVertexAccumulator(), PreMixingCaloParticleWorker::PreMixingCaloParticleWorker(), edm::PreMixingCrossingFrameWorker< T >::PreMixingCrossingFrameWorker(), PreMixingDigiSimLinkWorker< DigiSimLinkCollection >::PreMixingDigiSimLinkWorker(), PreMixingEcalWorker::PreMixingEcalWorker(), PreMixingHcalWorker::PreMixingHcalWorker(), PreMixingHGCalWorker::PreMixingHGCalWorker(), PreMixingMuonWorker< DigiCollection >::PreMixingMuonWorker(), edm::PreMixingPileupCopy::PreMixingPileupCopy(), PreMixingSiPixelWorker::PreMixingSiPixelWorker(), PreMixingSiStripWorker::PreMixingSiStripWorker(), PreMixingTrackingParticleWorker::PreMixingTrackingParticleWorker(), hitTripletEDProducerT::ImplSeedingHitSets::produces(), hitTripletEDProducerT::ImplIntermediateHitTriplets::produces(), RecoTrackAccumulator::RecoTrackAccumulator(), VariableNTupler::registerleaves(), StringBasedNTupler::registerleaves(), fastsim::TrackerSimHitProducer::registerProducts(), cms::SiPixelDigitizer::SiPixelDigitizer(), SiStripDigitizer::SiStripDigitizer(), edm::SwitchProducer::SwitchProducer(), and TrackingTruthAccumulator::TrackingTruthAccumulator().

108  {
109  return produces<ProductType, InEvent>(std::string());
110  }
template<class ProductType >
BranchAliasSetterT<ProductType> edm::ProductRegistryHelper::produces ( std::string  instanceName)
inline

Definition at line 113 of file ProductRegistryHelper.h.

References eostools::move().

113  {
114  return produces<ProductType, InEvent>(std::move(instanceName));
115  }
def move(src, dest)
Definition: eostools.py:511
template<typename ProductType , BranchType B>
BranchAliasSetterT<ProductType> edm::ProductRegistryHelper::produces ( )
inline

Definition at line 118 of file ProductRegistryHelper.h.

References AlCaHLTBitMon_QueryRunRegistry::string.

118  {
119  return produces<ProductType, B>(std::string());
120  }
template<typename ProductType , BranchType B>
BranchAliasSetterT<ProductType> edm::ProductRegistryHelper::produces ( std::string  instanceName)
inline

Definition at line 123 of file ProductRegistryHelper.h.

References TtFullHadDaughter::B, edm::InEvent, and eostools::move().

123  {
124  TypeID tid(typeid(ProductType));
125  return BranchAliasSetterT<ProductType>{
127  }
static const std::string B
def move(src, dest)
Definition: eostools.py:511
template<typename ProductType , Transition B>
BranchAliasSetterT<ProductType> edm::ProductRegistryHelper::produces ( )
inline

Definition at line 130 of file ProductRegistryHelper.h.

References AlCaHLTBitMon_QueryRunRegistry::string.

130  {
131  return produces<ProductType, B>(std::string());
132  }
template<typename ProductType , Transition B>
BranchAliasSetterT<ProductType> edm::ProductRegistryHelper::produces ( std::string  instanceName)
inline

Definition at line 135 of file ProductRegistryHelper.h.

References TtFullHadDaughter::B, edm::Event, and eostools::move().

135  {
136  TypeID tid(typeid(ProductType));
137  return BranchAliasSetterT<ProductType>{produces<B>(
139  }
static const std::string B
def move(src, dest)
Definition: eostools.py:511
BranchAliasSetter edm::ProductRegistryHelper::produces ( const TypeID id,
std::string  instanceName = std::string(),
bool  recordProvenance = true 
)
inline

Definition at line 141 of file ProductRegistryHelper.h.

References triggerObjects_cff::id, MuonErrorMatrixAdjuster_cfi::instanceName, and eostools::move().

143  {
144  return produces<Transition::Event>(id, std::move(instanceName), recordProvenance);
145  }
def move(src, dest)
Definition: eostools.py:511
template<BranchType B>
BranchAliasSetter edm::ProductRegistryHelper::produces ( const TypeID id,
std::string  instanceName = std::string(),
bool  recordProvenance = true 
)
inline

Definition at line 148 of file ProductRegistryHelper.h.

References TtFullHadDaughter::B, edm::convertToTransition(), edm::InEvent, MuonErrorMatrixAdjuster_cfi::instanceName, eostools::move(), recordProvenanceList_, and typeLabelList_.

150  {
151  unsigned int index = typeLabelList_.size();
153  recordProvenanceList_.push_back(recordProvenance and B == InEvent);
154  return BranchAliasSetter{typeLabelList_.back(), EDPutToken{static_cast<unsigned int>(index)}};
155  }
static const std::string B
constexpr Transition convertToTransition(BranchType iValue)
Definition: Transition.h:20
std::vector< bool > recordProvenanceList_
def move(src, dest)
Definition: eostools.py:511
template<Transition B>
BranchAliasSetter edm::ProductRegistryHelper::produces ( const TypeID id,
std::string  instanceName = std::string(),
bool  recordProvenance = true 
)
inline

Definition at line 157 of file ProductRegistryHelper.h.

References TtFullHadDaughter::B, edm::Event, MuonErrorMatrixAdjuster_cfi::instanceName, eostools::move(), recordProvenanceList_, and typeLabelList_.

159  {
160  unsigned int index = typeLabelList_.size();
161  typeLabelList_.emplace_back(B, id, std::move(instanceName));
162  recordProvenanceList_.push_back(recordProvenance and B == Transition::Event);
163  return BranchAliasSetter{typeLabelList_.back(), EDPutToken{index}};
164  }
static const std::string B
std::vector< bool > recordProvenanceList_
def move(src, dest)
Definition: eostools.py:511
std::vector<bool> const& edm::ProductRegistryHelper::recordProvenanceList ( ) const
inline
ProductRegistryHelper::TypeLabelList const & edm::ProductRegistryHelper::typeLabelList ( ) const

Member Data Documentation

std::vector<bool> edm::ProductRegistryHelper::recordProvenanceList_
private

Definition at line 172 of file ProductRegistryHelper.h.

Referenced by produces(), and recordProvenanceList().

TypeLabelList edm::ProductRegistryHelper::typeLabelList_
private

Definition at line 171 of file ProductRegistryHelper.h.

Referenced by produces(), and typeLabelList().