CMS 3D CMS Logo

List of all members | Public Types | Public Member Functions | Private Member Functions | Private Attributes
edm::PrincipalGetAdapter Class Reference

#include <PrincipalGetAdapter.h>

Public Types

typedef std::vector< BasicHandleBasicHandleVec
 

Public Member Functions

template<typename PROD >
bool checkIfComplete () const
 
BranchDescription const & getBranchDescription (TypeID const &type, std::string const &productInstanceName) const
 
BranchDescription const & getBranchDescription (unsigned int iPutTokenIndex) const
 
BasicHandle getByLabel_ (TypeID const &tid, InputTag const &tag, ModuleCallingContext const *mcc) const
 
BasicHandle getByLabel_ (TypeID const &tid, std::string const &label, std::string const &instance, std::string const &process, ModuleCallingContext const *mcc) const
 
BasicHandle getByToken_ (TypeID const &id, KindOfType kindOfType, EDGetToken token, ModuleCallingContext const *mcc) const
 
EDConsumerBase const * getConsumer () const
 
template<typename PROD >
void getManyByType (std::vector< Handle< PROD > > &results, ModuleCallingContext const *mcc) const
 
void getManyByType_ (TypeID const &tid, BasicHandleVec &results, ModuleCallingContext const *mcc) const
 
BasicHandle getMatchingSequenceByLabel_ (TypeID const &typeID, InputTag const &tag, ModuleCallingContext const *mcc) const
 
BasicHandle getMatchingSequenceByLabel_ (TypeID const &typeID, std::string const &label, std::string const &instance, std::string const &process, ModuleCallingContext const *mcc) const
 
ProductID const & getProductID (unsigned int iPutTokenIndex) const
 
EDPutToken::value_type getPutTokenIndex (TypeID const &type, std::string const &productInstanceName) const
 
SharedResourcesAcquirergetSharedResourcesAcquirer () const
 
TypeID const & getTypeIDForPutTokenIndex (EDPutToken::value_type index) const
 
bool isComplete () const
 
void labelsForToken (EDGetToken const &iToken, ProductLabels &oLabels) const
 
ModuleDescription const & moduleDescription () const
 
size_t numberOfProductsConsumed () const
 
PrincipalGetAdapteroperator= (PrincipalGetAdapter const &)=delete
 
Principal const & principal () const
 
 PrincipalGetAdapter (Principal const &pcpl, ModuleDescription const &md, bool isComplete)
 
 PrincipalGetAdapter (PrincipalGetAdapter const &)=delete
 
ProcessHistory const & processHistory () const
 
EDProductGetter const * prodGetter () const
 
std::string const & productInstanceLabel (EDPutToken) const
 
std::vector< edm::ProductResolverIndex > const & putTokenIndexToProductResolverIndex () const
 
std::vector< bool > const & recordProvenanceList () const
 
void setConsumer (EDConsumerBase const *iConsumer)
 
void setProducer (ProducerBase const *iProd)
 
void setSharedResourcesAcquirer (SharedResourcesAcquirer *iSra)
 
Transition transition () const
 
 ~PrincipalGetAdapter ()
 

Private Member Functions

BranchType const & branchType () const
 
BasicHandle makeFailToGetException (KindOfType, TypeID const &, EDGetToken) const
 
void throwAmbiguousException (TypeID const &productType, EDGetToken token) const
 
void throwUnregisteredPutException (TypeID const &type, std::string const &productInstanceLabel) const
 

Private Attributes

EDConsumerBase const * consumer_
 
bool isComplete_
 
ModuleDescription const & md_
 
Principal const & principal_
 
ProducerBase const * prodBase_ = nullptr
 
SharedResourcesAcquirerresourcesAcquirer_
 

Detailed Description

Definition at line 132 of file PrincipalGetAdapter.h.

Member Typedef Documentation

◆ BasicHandleVec

Definition at line 173 of file PrincipalGetAdapter.h.

Constructor & Destructor Documentation

◆ PrincipalGetAdapter() [1/2]

PrincipalGetAdapter::PrincipalGetAdapter ( Principal const &  pcpl,
ModuleDescription const &  md,
bool  isComplete 
)

Definition at line 22 of file PrincipalGetAdapter.cc.

23  : //putProducts_(),
24  principal_(pcpl),
25  md_(md),
26  consumer_(nullptr),
27  resourcesAcquirer_(nullptr),

◆ ~PrincipalGetAdapter()

PrincipalGetAdapter::~PrincipalGetAdapter ( )

Definition at line 30 of file PrincipalGetAdapter.cc.

30 {}

◆ PrincipalGetAdapter() [2/2]

edm::PrincipalGetAdapter::PrincipalGetAdapter ( PrincipalGetAdapter const &  )
delete

Member Function Documentation

◆ branchType()

BranchType const & PrincipalGetAdapter::branchType ( ) const
private

Definition at line 131 of file PrincipalGetAdapter.cc.

131 { return principal_.branchType(); }

References edm::Principal::branchType(), and principal_.

Referenced by getByToken_(), and transition().

◆ checkIfComplete()

template<typename PROD >
bool PrincipalGetAdapter::checkIfComplete ( ) const
inline

◆ getBranchDescription() [1/2]

BranchDescription const & PrincipalGetAdapter::getBranchDescription ( TypeID const &  type,
std::string const &  productInstanceName 
) const

Definition at line 220 of file PrincipalGetAdapter.cc.

221  {
222  ProductResolverIndexHelper const& productResolverIndexHelper = principal_.productLookup();
223  ProductResolverIndex index = productResolverIndexHelper.index(
224  PRODUCT_TYPE, type, md_.moduleLabel().c_str(), productInstanceName.c_str(), md_.processName().c_str());
226  throwUnregisteredPutException(type, productInstanceName);
227  }
228  ProductResolverBase const* phb = principal_.getProductResolverByIndex(index);
229  assert(phb != nullptr);
230  return phb->branchDescription();
231  }

References cms::cuda::assert(), edm::ProductResolverBase::branchDescription(), edm::Principal::getProductResolverByIndex(), edm::ProductResolverIndexHelper::index(), md_, edm::ModuleDescription::moduleLabel(), principal_, edm::ModuleDescription::processName(), edm::PRODUCT_TYPE, edm::Principal::productLookup(), edm::ProductResolverIndexInvalid, throwUnregisteredPutException(), and UNLIKELY.

◆ getBranchDescription() [2/2]

BranchDescription const & PrincipalGetAdapter::getBranchDescription ( unsigned int  iPutTokenIndex) const

Definition at line 233 of file PrincipalGetAdapter.cc.

233  {
234  auto index = prodBase_->putTokenIndexToProductResolverIndex()[iPutTokenIndex];
235  ProductResolverBase const* phb = principal_.getProductResolverByIndex(index);
236  assert(phb != nullptr);
237  return phb->branchDescription();
238  }

References cms::cuda::assert(), edm::ProductResolverBase::branchDescription(), edm::Principal::getProductResolverByIndex(), principal_, prodBase_, and edm::ProducerBase::putTokenIndexToProductResolverIndex().

◆ getByLabel_() [1/2]

BasicHandle PrincipalGetAdapter::getByLabel_ ( TypeID const &  tid,
InputTag const &  tag,
ModuleCallingContext const *  mcc 
) const

◆ getByLabel_() [2/2]

BasicHandle PrincipalGetAdapter::getByLabel_ ( TypeID const &  tid,
std::string const &  label,
std::string const &  instance,
std::string const &  process,
ModuleCallingContext const *  mcc 
) const

◆ getByToken_()

BasicHandle PrincipalGetAdapter::getByToken_ ( TypeID const &  id,
KindOfType  kindOfType,
EDGetToken  token,
ModuleCallingContext const *  mcc 
) const

Definition at line 147 of file PrincipalGetAdapter.cc.

150  {
151  ProductResolverIndexAndSkipBit indexAndBit = consumer_->indexFrom(token, branchType(), id);
152  ProductResolverIndex index = indexAndBit.productResolverIndex();
153  bool skipCurrentProcess = indexAndBit.skipCurrentProcess();
155  return makeFailToGetException(kindOfType, id, token);
157  // This deals with ambiguities where the process is specified
159  }
160  bool ambiguous = false;
161  BasicHandle h =
162  principal_.getByToken(kindOfType, id, index, skipCurrentProcess, ambiguous, resourcesAcquirer_, mcc);
163  if (ambiguous) {
164  // This deals with ambiguities where the process is not specified
166  } else if (!h.isValid()) {
167  return makeFailToGetException(kindOfType, id, token);
168  }
169  return h;
170  }

References branchType(), consumer_, edm::Principal::getByToken(), h, edm::EDConsumerBase::indexFrom(), makeFailToGetException(), principal_, edm::ProductResolverIndexAndSkipBit::productResolverIndex(), edm::ProductResolverIndexAmbiguous, edm::ProductResolverIndexInvalid, resourcesAcquirer_, edm::ProductResolverIndexAndSkipBit::skipCurrentProcess(), throwAmbiguousException(), unpackBuffers-CaloStage2::token, and UNLIKELY.

Referenced by edm::OccurrenceForOutput::getByToken(), edm::Run::getByToken(), edm::LuminosityBlock::getByToken(), edm::Event::getByToken(), edm::OccurrenceForOutput::getHandle(), edm::LuminosityBlock::getHandle(), edm::Run::getHandle(), and edm::Event::getHandle().

◆ getConsumer()

EDConsumerBase const* edm::PrincipalGetAdapter::getConsumer ( ) const
inline

Definition at line 144 of file PrincipalGetAdapter.h.

144 { return consumer_; }

References consumer_.

Referenced by edm::Event::fillLuminosityBlock(), and edm::LuminosityBlock::fillRun().

◆ getManyByType()

template<typename PROD >
void PrincipalGetAdapter::getManyByType ( std::vector< Handle< PROD > > &  results,
ModuleCallingContext const *  mcc 
) const
inline

Definition at line 317 of file PrincipalGetAdapter.h.

318  {
319  BasicHandleVec bhv;
320  this->getManyByType_(TypeID(typeid(PROD)), bhv, mcc);
321 
322  // Go through the returned handles; for each element,
323  // 1. create a Handle<PROD> and
324  //
325  // This function presents an exception safety difficulty. If an
326  // exception is thrown when converting a handle, the "got
327  // products" record will be wrong.
328  //
329  // Since EDProducers are not allowed to use this function,
330  // the problem does not seem too severe.
331  //
332  // Question: do we even need to keep track of the "got products"
333  // for this function, since it is *not* to be used by EDProducers?
334  std::vector<Handle<PROD> > products;
335 
336  typename BasicHandleVec::iterator it = bhv.begin();
337  typename BasicHandleVec::iterator end = bhv.end();
338 
339  while (it != end) {
340  products.push_back(convert_handle<PROD>(std::move(*it)));
341  ++it;
342  }
343  results.swap(products);
344  }

References end, getManyByType_(), eostools::move(), PROD, edm::es::products(), and bookConverter::results.

Referenced by edm::LuminosityBlock::getManyByType(), edm::Run::getManyByType(), and edm::Event::getManyByType().

◆ getManyByType_()

void PrincipalGetAdapter::getManyByType_ ( TypeID const &  tid,
BasicHandleVec results,
ModuleCallingContext const *  mcc 
) const

◆ getMatchingSequenceByLabel_() [1/2]

BasicHandle PrincipalGetAdapter::getMatchingSequenceByLabel_ ( TypeID const &  typeID,
InputTag const &  tag,
ModuleCallingContext const *  mcc 
) const

◆ getMatchingSequenceByLabel_() [2/2]

BasicHandle PrincipalGetAdapter::getMatchingSequenceByLabel_ ( TypeID const &  typeID,
std::string const &  label,
std::string const &  instance,
std::string const &  process,
ModuleCallingContext const *  mcc 
) const

◆ getProductID()

ProductID const & PrincipalGetAdapter::getProductID ( unsigned int  iPutTokenIndex) const

Definition at line 240 of file PrincipalGetAdapter.cc.

240  {
241  auto index = prodBase_->putTokenIndexToProductResolverIndex()[iPutTokenIndex];
242  ProductResolverBase const* phb = principal_.getProductResolverByIndex(index);
243  assert(phb != nullptr);
244  auto prov = phb->stableProvenance();
245  assert(prov != nullptr);
246  return prov->productID();
247  }

References cms::cuda::assert(), edm::Principal::getProductResolverByIndex(), principal_, prodBase_, edm::ProducerBase::putTokenIndexToProductResolverIndex(), and edm::ProductResolverBase::stableProvenance().

Referenced by edm::Event::emplaceImpl(), edm::Event::getRefBeforePut(), and edm::Event::putImpl().

◆ getPutTokenIndex()

EDPutToken::value_type PrincipalGetAdapter::getPutTokenIndex ( TypeID const &  type,
std::string const &  productInstanceName 
) const

Definition at line 267 of file PrincipalGetAdapter.cc.

268  {
269  auto tran = transition();
270  size_t index = 0;
271  for (auto const& tl : prodBase_->typeLabelList()) {
272  if ((tran == tl.transition_) and (type == tl.typeID_) and (productInstanceName == tl.productInstanceName_)) {
273  return index;
274  }
275  ++index;
276  }
277  throwUnregisteredPutException(type, productInstanceName);
279  }

References SiStripPI::max, prodBase_, throwUnregisteredPutException(), transition(), and edm::ProducerBase::typeLabelList().

Referenced by edm::Event::getRefBeforePut(), edm::Run::put(), edm::LuminosityBlock::put(), and edm::Event::put().

◆ getSharedResourcesAcquirer()

SharedResourcesAcquirer* edm::PrincipalGetAdapter::getSharedResourcesAcquirer ( ) const
inline

Definition at line 147 of file PrincipalGetAdapter.h.

147 { return resourcesAcquirer_; }

References resourcesAcquirer_.

Referenced by edm::Event::fillLuminosityBlock(), and edm::LuminosityBlock::fillRun().

◆ getTypeIDForPutTokenIndex()

TypeID const & PrincipalGetAdapter::getTypeIDForPutTokenIndex ( EDPutToken::value_type  index) const

◆ isComplete()

bool edm::PrincipalGetAdapter::isComplete ( ) const
inline

Definition at line 153 of file PrincipalGetAdapter.h.

153 { return isComplete_; }

References isComplete_.

Referenced by checkIfComplete(), edm::OccurrenceForOutput::getByToken(), and transition().

◆ labelsForToken()

void PrincipalGetAdapter::labelsForToken ( EDGetToken const &  iToken,
ProductLabels oLabels 
) const

◆ makeFailToGetException()

BasicHandle PrincipalGetAdapter::makeFailToGetException ( KindOfType  kindOfType,
TypeID const &  productType,
EDGetToken  token 
) const
private

Definition at line 88 of file PrincipalGetAdapter.cc.

90  {
93  //no need to copy memory since the exception will no occur after the
94  // const char* have been deleted
95  return BasicHandle(
96  makeHandleExceptionFactory([labels, kindOfType, productType]() -> std::shared_ptr<cms::Exception> {
97  std::shared_ptr<cms::Exception> exception(std::make_shared<Exception>(errors::ProductNotFound));
98  if (kindOfType == PRODUCT_TYPE) {
99  *exception << "Principal::getByToken: Found zero products matching all criteria\nLooking for type: "
100  << productType << "\n"
101  << "Looking for module label: " << labels.module << "\n"
102  << "Looking for productInstanceName: " << labels.productInstance << "\n"
103  << (0 == labels.process[0] ? "" : "Looking for process: ") << labels.process << "\n";
104  } else {
105  *exception << "Principal::getByToken: Found zero products matching all criteria\nLooking for a container "
106  "with elements of type: "
107  << productType << "\n"
108  << "Looking for module label: " << labels.module << "\n"
109  << "Looking for productInstanceName: " << labels.productInstance << "\n"
110  << (0 == labels.process[0] ? "" : "Looking for process: ") << labels.process << "\n";
111  }
112  return exception;
113  }));
114  }

References consumer_, cppFunctionSkipper::exception, SummaryClient_cfi::labels, edm::EDConsumerBase::labelsForToken(), edm::makeHandleExceptionFactory(), edm::PRODUCT_TYPE, edm::errors::ProductNotFound, and unpackBuffers-CaloStage2::token.

Referenced by getByToken_().

◆ moduleDescription()

ModuleDescription const& edm::PrincipalGetAdapter::moduleDescription ( ) const
inline

Definition at line 177 of file PrincipalGetAdapter.h.

177 { return md_; }

References md_.

Referenced by edm::Event::fillLuminosityBlock(), and edm::LuminosityBlock::fillRun().

◆ numberOfProductsConsumed()

size_t PrincipalGetAdapter::numberOfProductsConsumed ( ) const

Definition at line 82 of file PrincipalGetAdapter.cc.

82 { return consumer_->itemsToGetFrom(InEvent).size(); }

References consumer_, edm::InEvent, and edm::EDConsumerBase::itemsToGetFrom().

Referenced by edm::Event::setConsumer().

◆ operator=()

PrincipalGetAdapter& edm::PrincipalGetAdapter::operator= ( PrincipalGetAdapter const &  )
delete

◆ principal()

Principal const& edm::PrincipalGetAdapter::principal ( ) const
inline

◆ processHistory()

ProcessHistory const & PrincipalGetAdapter::processHistory ( ) const

◆ prodGetter()

EDProductGetter const * PrincipalGetAdapter::prodGetter ( ) const

Definition at line 297 of file PrincipalGetAdapter.cc.

297 { return principal_.prodGetter(); }

References principal_, and edm::Principal::prodGetter().

Referenced by edm::Event::getRefBeforePut().

◆ productInstanceLabel()

std::string const & PrincipalGetAdapter::productInstanceLabel ( EDPutToken  iToken) const

Definition at line 281 of file PrincipalGetAdapter.cc.

281  {
282  return prodBase_->typeLabelList()[iToken.index()].productInstanceName_;
283  }

References edm::EDPutToken::index(), prodBase_, and edm::ProducerBase::typeLabelList().

Referenced by edm::Run::put(), edm::LuminosityBlock::put(), and edm::Event::put().

◆ putTokenIndexToProductResolverIndex()

std::vector< edm::ProductResolverIndex > const & PrincipalGetAdapter::putTokenIndexToProductResolverIndex ( ) const

◆ recordProvenanceList()

std::vector< bool > const & PrincipalGetAdapter::recordProvenanceList ( ) const

Definition at line 293 of file PrincipalGetAdapter.cc.

293  {
295  }

References prodBase_, and edm::ProducerBase::recordProvenanceList().

Referenced by edm::Event::commit_aux(), and edm::Event::setProducer().

◆ setConsumer()

void edm::PrincipalGetAdapter::setConsumer ( EDConsumerBase const *  iConsumer)
inline

◆ setProducer()

void edm::PrincipalGetAdapter::setProducer ( ProducerBase const *  iProd)
inline

◆ setSharedResourcesAcquirer()

void edm::PrincipalGetAdapter::setSharedResourcesAcquirer ( SharedResourcesAcquirer iSra)
inline

◆ throwAmbiguousException()

void PrincipalGetAdapter::throwAmbiguousException ( TypeID const &  productType,
EDGetToken  token 
) const
private

Definition at line 116 of file PrincipalGetAdapter.cc.

116  {
119  cms::Exception exception("AmbiguousProduct");
120  exception << "Principal::getByToken: More than 1 product matches all criteria\nLooking for a container with "
121  "elements of type: "
122  << productType << "\n"
123  << "Looking for module label: " << labels.module << "\n"
124  << "Looking for productInstanceName: " << labels.productInstance << "\n"
125  << (0 == labels.process[0] ? "" : "Looking for process: ") << labels.process << "\n"
126  << "This can only occur with get function calls using a Handle<View> argument.\n"
127  << "Try a get not using a View or change the instance name of one of the products";
128  throw exception;
129  }

References consumer_, cppFunctionSkipper::exception, SummaryClient_cfi::labels, edm::EDConsumerBase::labelsForToken(), and unpackBuffers-CaloStage2::token.

Referenced by getByToken_().

◆ throwUnregisteredPutException()

void PrincipalGetAdapter::throwUnregisteredPutException ( TypeID const &  type,
std::string const &  productInstanceLabel 
) const
private

Definition at line 195 of file PrincipalGetAdapter.cc.

196  {
197  std::ostringstream str;
198  for (auto branchDescription : principal_.productRegistry().allBranchDescriptions()) {
199  if (branchDescription->moduleLabel() == md_.moduleLabel() and
200  branchDescription->processName() == md_.processName()) {
201  str << *branchDescription << "-----\n";
202  }
203  }
205  << "Illegal attempt to 'put' an unregistered product.\n"
206  << "No product is registered for\n"
207  << " product friendly class name: '" << type.friendlyClassName() << "'\n"
208  << " module label: '" << md_.moduleLabel() << "'\n"
209  << " product instance name: '" << productInstanceName << "'\n"
210  << " process name: '" << md_.processName() << "'\n"
211 
212  << "The following data products are registered for production by " << md_.moduleLabel() << ":\n"
213  << str.str() << '\n'
214  << "To correct the problem:\n"
215  " 1) make sure the proper 'produce' call is being made in the module's constructor,\n"
216  " 2) if 'produce' exists and uses a product instance name make sure that same name is used during the "
217  "'put' call.";
218  }

References edm::ProductRegistry::allBranchDescriptions(), Exception, edm::errors::InsertFailure, md_, edm::ModuleDescription::moduleLabel(), principal_, edm::ModuleDescription::processName(), edm::Principal::productRegistry(), and str.

Referenced by getBranchDescription(), and getPutTokenIndex().

◆ transition()

Transition PrincipalGetAdapter::transition ( ) const

Definition at line 249 of file PrincipalGetAdapter.cc.

249  {
250  if (LIKELY(principal().branchType() == InEvent)) {
251  return Transition::Event;
252  }
253  if (principal().branchType() == InRun) {
254  if (isComplete()) {
255  return Transition::EndRun;
256  } else {
257  return Transition::BeginRun;
258  }
259  }
260  if (isComplete()) {
262  }
264  //Must be lumi
265  }

References edm::BeginLuminosityBlock, edm::BeginRun, branchType(), edm::EndLuminosityBlock, edm::EndRun, edm::Event, edm::InEvent, edm::InRun, isComplete(), LIKELY, and principal().

Referenced by edm::LuminosityBlock::commit_(), edm::Run::commit_(), and getPutTokenIndex().

Member Data Documentation

◆ consumer_

EDConsumerBase const* edm::PrincipalGetAdapter::consumer_
private

◆ isComplete_

bool edm::PrincipalGetAdapter::isComplete_
private

Definition at line 247 of file PrincipalGetAdapter.h.

Referenced by isComplete().

◆ md_

ModuleDescription const& edm::PrincipalGetAdapter::md_
private

◆ principal_

Principal const& edm::PrincipalGetAdapter::principal_
private

◆ prodBase_

ProducerBase const* edm::PrincipalGetAdapter::prodBase_ = nullptr
private

◆ resourcesAcquirer_

SharedResourcesAcquirer* edm::PrincipalGetAdapter::resourcesAcquirer_
private
SummaryClient_cfi.labels
labels
Definition: SummaryClient_cfi.py:61
edm::ModuleDescription::moduleLabel
std::string const & moduleLabel() const
Definition: ModuleDescription.h:43
edm::PrincipalGetAdapter::principal
Principal const & principal() const
Definition: PrincipalGetAdapter.h:165
edm::PrincipalGetAdapter::principal_
Principal const & principal_
Definition: PrincipalGetAdapter.h:238
edm::ProductResolverIndex
unsigned int ProductResolverIndex
Definition: ProductResolverIndex.h:8
edm::EDConsumerBase::Labels
ProductLabels Labels
Definition: EDConsumerBase.h:97
edm::PRODUCT_TYPE
Definition: ProductKindOfType.h:5
edm::Transition::Event
h
FWCore Framework interface EventSetupRecordImplementation h
Helper function to determine trigger accepts.
Definition: L1TUtmAlgorithmRcd.h:4
edm::PrincipalGetAdapter::getManyByType_
void getManyByType_(TypeID const &tid, BasicHandleVec &results, ModuleCallingContext const *mcc) const
Definition: PrincipalGetAdapter.cc:187
cms::cuda::assert
assert(be >=bs)
bookConverter.results
results
Definition: bookConverter.py:144
edm::ModuleDescription::processName
std::string const & processName() const
Definition: ModuleDescription.cc:47
edm::Principal::processHistory
ProcessHistory const & processHistory() const
Definition: Principal.h:139
edm::PrincipalGetAdapter::isComplete
bool isComplete() const
Definition: PrincipalGetAdapter.h:153
edm::EDConsumerBase::itemsToGetFrom
std::vector< ProductResolverIndexAndSkipBit > const & itemsToGetFrom(BranchType iType) const
Definition: EDConsumerBase.h:82
edm::PrincipalGetAdapter::md_
ModuleDescription const & md_
Definition: PrincipalGetAdapter.h:242
edm::InRun
Definition: BranchType.h:11
edm::ProducerBase::putTokenIndexToProductResolverIndex
std::vector< edm::ProductResolverIndex > const & putTokenIndexToProductResolverIndex() const
Definition: ProducerBase.h:93
edm::Principal::getProductResolverByIndex
ConstProductResolverPtr getProductResolverByIndex(ProductResolverIndex const &oid) const
Definition: Principal.cc:535
edm::es::products
ESProducts< std::remove_reference_t< TArgs >... > products(TArgs &&... args)
Definition: ESProducts.h:128
end
#define end
Definition: vmac.h:39
edm::makeHandleExceptionFactory
std::shared_ptr< HandleExceptionFactory > makeHandleExceptionFactory(T &&iFunctor)
Definition: FunctorHandleExceptionFactory.h:45
edm::detail::has_mergeProduct_function::value
static constexpr bool value
Definition: WrapperDetail.h:101
edm::ProducerBase::typeLabelList
TypeLabelList const & typeLabelList() const
used by the fwk to register the list of products of this module
Definition: ProductRegistryHelper.cc:20
edm::PrincipalGetAdapter::makeFailToGetException
BasicHandle makeFailToGetException(KindOfType, TypeID const &, EDGetToken) const
Definition: PrincipalGetAdapter.cc:88
edm::errors::ProductNotFound
Definition: EDMException.h:33
edm::PrincipalGetAdapter::throwUnregisteredPutException
void throwUnregisteredPutException(TypeID const &type, std::string const &productInstanceLabel) const
Definition: PrincipalGetAdapter.cc:195
UNLIKELY
#define UNLIKELY(x)
Definition: Likely.h:21
GlobalPosition_Frontier_DevDB_cff.tag
tag
Definition: GlobalPosition_Frontier_DevDB_cff.py:11
edm::PrincipalGetAdapter::prodBase_
ProducerBase const * prodBase_
Definition: PrincipalGetAdapter.h:246
str
#define str(s)
Definition: TestProcessor.cc:48
edm::Principal::branchType
BranchType const & branchType() const
Definition: Principal.h:179
edm::errors::InsertFailure
Definition: EDMException.h:35
edm::PrincipalGetAdapter::transition
Transition transition() const
Definition: PrincipalGetAdapter.cc:249
edm::InEvent
Definition: BranchType.h:11
h
edm::Transition::BeginLuminosityBlock
edm::PrincipalGetAdapter::consumer_
EDConsumerBase const * consumer_
Definition: PrincipalGetAdapter.h:244
edm::Principal::productRegistry
ProductRegistry const & productRegistry() const
Definition: Principal.h:145
edm::ProducerBase::recordProvenanceList
std::vector< bool > const & recordProvenanceList() const
Definition: ProductRegistryHelper.h:91
edm::Principal::productLookup
ProductResolverIndexHelper const & productLookup() const
Definition: Principal.h:147
cppFunctionSkipper.exception
exception
Definition: cppFunctionSkipper.py:10
SiStripPI::max
Definition: SiStripPayloadInspectorHelper.h:169
LaserDQM_cfg.process
process
Definition: LaserDQM_cfg.py:3
edm::ProductResolverIndexInvalid
Definition: ProductResolverIndex.h:16
edm::ProductRegistry::allBranchDescriptions
std::vector< BranchDescription const * > allBranchDescriptions() const
Definition: ProductRegistry.cc:211
instance
static PFTauRenderPlugin instance
Definition: PFTauRenderPlugin.cc:70
edm::ProductResolverIndexAmbiguous
Definition: ProductResolverIndex.h:18
edm::EDConsumerBase::labelsForToken
void labelsForToken(EDGetToken iToken, Labels &oLabels) const
Definition: EDConsumerBase.cc:347
edm::Principal::getByToken
BasicHandle getByToken(KindOfType kindOfType, TypeID const &typeID, ProductResolverIndex index, bool skipCurrentProcess, bool &ambiguous, SharedResourcesAcquirer *sra, ModuleCallingContext const *mcc) const
Definition: Principal.cc:578
type
type
Definition: HCALResponse.h:21
edm::Transition::EndLuminosityBlock
eostools.move
def move(src, dest)
Definition: eostools.py:511
edm::Principal::prodGetter
EDProductGetter const * prodGetter() const
Definition: Principal.h:91
edm::Principal::getManyByType
void getManyByType(TypeID const &typeID, BasicHandleVec &results, EDConsumerBase const *consumes, SharedResourcesAcquirer *sra, ModuleCallingContext const *mcc) const
Definition: Principal.cc:614
edm::ELEMENT_TYPE
Definition: ProductKindOfType.h:5
LIKELY
#define LIKELY(x)
Definition: Likely.h:20
edm::Transition::BeginRun
Exception
Definition: hltDiff.cc:246
edm::PrincipalGetAdapter::resourcesAcquirer_
SharedResourcesAcquirer * resourcesAcquirer_
Definition: PrincipalGetAdapter.h:245
edm::PrincipalGetAdapter::isComplete_
bool isComplete_
Definition: PrincipalGetAdapter.h:247
edm::Principal::getByLabel
BasicHandle getByLabel(KindOfType kindOfType, TypeID const &typeID, InputTag const &inputTag, EDConsumerBase const *consumes, SharedResourcesAcquirer *sra, ModuleCallingContext const *mcc) const
Definition: Principal.cc:540
AlignmentPI::index
index
Definition: AlignmentPayloadInspectorHelper.h:46
edm::PrincipalGetAdapter::throwAmbiguousException
void throwAmbiguousException(TypeID const &productType, EDGetToken token) const
Definition: PrincipalGetAdapter.cc:116
cms::Exception
Definition: Exception.h:70
PROD
#define PROD(A, B)
Definition: Simplify_begin.h:55
edm::Transition::EndRun
edm::PrincipalGetAdapter::BasicHandleVec
std::vector< BasicHandle > BasicHandleVec
Definition: PrincipalGetAdapter.h:173
label
const char * label
Definition: PFTauDecayModeTools.cc:11
edm::EDConsumerBase::indexFrom
ProductResolverIndexAndSkipBit indexFrom(EDGetToken, BranchType, TypeID const &) const
Definition: EDConsumerBase.cc:260
edm::PrincipalGetAdapter::branchType
BranchType const & branchType() const
Definition: PrincipalGetAdapter.cc:131
unpackBuffers-CaloStage2.token
token
Definition: unpackBuffers-CaloStage2.py:316