CMS 3D CMS Logo

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

#include <EventPrincipal.h>

Inheritance diagram for edm::EventPrincipal:
edm::Principal edm::EDProductGetter

Public Types

typedef EventAuxiliary Auxiliary
 
typedef Principal Base
 
typedef Base::ConstProductResolverPtr ConstProductResolverPtr
 
- Public Types inherited from edm::Principal
typedef std::vector< BasicHandleBasicHandleVec
 
typedef unsigned long CacheIdentifier_t
 
typedef boost::filter_iterator< FilledProductPtr, ProductResolverCollection::const_iterator > const_iterator
 
typedef ProductResolverBase const * ConstProductResolverPtr
 
typedef boost::filter_iterator< FilledProductPtr, ProductResolverCollection::iterator > iterator
 
typedef std::string ProcessName
 
typedef ProcessHistory::const_iterator ProcessNameConstIterator
 
typedef std::vector< propagate_const< std::shared_ptr< ProductResolverBase > > > ProductResolverCollection
 
typedef std::shared_ptr< ProductResolverBaseSharedProductPtr
 
typedef ProductResolverCollection::size_type size_type
 

Public Member Functions

EventAuxiliary const & aux () const
 
ProductID branchIDToProductID (BranchID const &bid) const
 
BranchListIndexes const & branchListIndexes () const
 
int bunchCrossing () const
 
void clearEventPrincipal ()
 
 EventPrincipal (std::shared_ptr< ProductRegistry const > reg, std::shared_ptr< BranchIDListHelper const > branchIDListHelper, std::shared_ptr< ThinnedAssociationsHelper const > thinnedAssociationsHelper, ProcessConfiguration const &pc, HistoryAppender *historyAppender, unsigned int streamIndex=0, bool isForPrimaryProcess=true)
 
EventSelectionIDVector const & eventSelectionIDs () const
 
EventAuxiliary::ExperimentType ExperimentType () const
 
void fillEventPrincipal (EventAuxiliary const &aux, ProcessHistory const *processHistory, DelayedReader *reader=nullptr)
 
void fillEventPrincipal (EventAuxiliary const &aux, ProcessHistory const *processHistory, EventSelectionIDVector eventSelectionIDs, BranchListIndexes branchListIndexes)
 
void fillEventPrincipal (EventAuxiliary const &aux, ProcessHistory const *processHistory, EventSelectionIDVector eventSelectionIDs, BranchListIndexes branchListIndexes, ProductProvenanceRetriever const &provRetriever, DelayedReader *reader=nullptr, bool deepCopyRetriever=true)
 
BasicHandle getByProductID (ProductID const &oid) const
 
WrapperBase const * getIt (ProductID const &pid) const override
 
Provenance getProvenance (BranchID const &bid, ModuleCallingContext const *mcc) const
 
Provenance getProvenance (ProductID const &pid, ModuleCallingContext const *mcc) const
 
WrapperBase const * getThinnedProduct (ProductID const &pid, unsigned int &key) const override
 
void getThinnedProducts (ProductID const &pid, std::vector< WrapperBase const * > &foundContainers, std::vector< unsigned int > &keys) const override
 
EventID const & id () const
 
bool isReal () const
 
LuminosityBlockNumber_t luminosityBlock () const
 
LuminosityBlockPrincipalluminosityBlockPrincipal ()
 
LuminosityBlockPrincipal const & luminosityBlockPrincipal () const
 
bool luminosityBlockPrincipalPtrValid () const
 
void mergeProvenanceRetrievers (EventPrincipal &other)
 
ProductProvenanceRetriever const * productProvenanceRetrieverPtr () const
 
void put (BranchDescription const &bd, std::unique_ptr< WrapperBase > edp, ProductProvenance const &productProvenance) const
 
void put (ProductResolverIndex index, std::unique_ptr< WrapperBase > edp, ParentageID productProvenance) const
 
void putOnRead (BranchDescription const &bd, std::unique_ptr< WrapperBase > edp, std::optional< ProductProvenance > productProvenance) const
 
RunNumber_t run () const
 
RunPrincipal const & runPrincipal () const
 
void setLuminosityBlockPrincipal (LuminosityBlockPrincipal *lbp)
 
void setRunAndLumiNumber (RunNumber_t run, LuminosityBlockNumber_t lumi)
 
int storeNumber () const
 
StreamID streamID () const
 
Timestamp const & time () const
 
 ~EventPrincipal () override
 
- Public Member Functions inherited from edm::Principal
void adjustIndexesAfterProductRegistryAddition ()
 
bool adjustToNewProductRegistry (ProductRegistry const &reg)
 
iterator begin ()
 
const_iterator begin () const
 
BranchType const & branchType () const
 
CacheIdentifier_t cacheIdentifier () const
 
void clearPrincipal ()
 
void deleteProduct (BranchID const &id) const
 
iterator end ()
 
const_iterator end () const
 
void fillPrincipal (ProcessHistoryID const &hist, ProcessHistory const *phr, DelayedReader *reader)
 
ProductData const * findProductByTag (TypeID const &typeID, InputTag const &tag, ModuleCallingContext const *mcc) const
 
void getAllProvenance (std::vector< Provenance const * > &provenances) const
 
void getAllStableProvenance (std::vector< StableProvenance const * > &provenances) const
 
BasicHandle getByLabel (KindOfType kindOfType, TypeID const &typeID, InputTag const &inputTag, EDConsumerBase const *consumes, SharedResourcesAcquirer *sra, ModuleCallingContext const *mcc) const
 
BasicHandle getByLabel (KindOfType kindOfType, TypeID const &typeID, std::string const &label, std::string const &instance, std::string const &process, EDConsumerBase const *consumes, SharedResourcesAcquirer *sra, ModuleCallingContext const *mcc) const
 
BasicHandle getByToken (KindOfType kindOfType, TypeID const &typeID, ProductResolverIndex index, bool skipCurrentProcess, bool &ambiguous, SharedResourcesAcquirer *sra, ModuleCallingContext const *mcc) const
 
void getManyByType (TypeID const &typeID, BasicHandleVec &results, EDConsumerBase const *consumes, SharedResourcesAcquirer *sra, ModuleCallingContext const *mcc) const
 
ProductResolverBasegetModifiableProductResolver (BranchID const &oid)
 
ConstProductResolverPtr getProductResolver (BranchID const &oid) const
 
ConstProductResolverPtr getProductResolverByIndex (ProductResolverIndex const &oid) const
 
Provenance getProvenance (BranchID const &bid, ModuleCallingContext const *mcc) const
 
std::vector< unsigned int > const & lookupProcessOrder () const
 
void prefetchAsync (WaitingTask *waitTask, ProductResolverIndex index, bool skipCurrentProcess, ServiceToken const &token, ModuleCallingContext const *mcc) const
 
 Principal (std::shared_ptr< ProductRegistry const > reg, std::shared_ptr< ProductResolverIndexHelper const > productLookup, ProcessConfiguration const &pc, BranchType bt, HistoryAppender *historyAppender, bool isForPrimaryProcess=true)
 
ProcessConfiguration const & processConfiguration () const
 
ProcessHistory const & processHistory () const
 
ProcessHistoryID const & processHistoryID () const
 
EDProductGetter const * prodGetter () const
 
ProductResolverIndexHelper const & productLookup () const
 
ProductRegistry const & productRegistry () const
 
void readAllFromSourceAndMergeImmediately (MergeableRunProductMetadata const *mergeableRunProductMetadata=nullptr)
 
DelayedReaderreader () const
 
void recombine (Principal &other, std::vector< BranchID > const &bids)
 
void setupUnscheduled (UnscheduledConfigurator const &)
 
size_t size () const
 
 ~Principal () override
 
- Public Member Functions inherited from edm::EDProductGetter
 EDProductGetter ()
 
 EDProductGetter (EDProductGetter const &)=delete
 
EDProductGetter const & operator= (EDProductGetter const &)=delete
 
unsigned int transitionIndex () const
 
virtual ~EDProductGetter ()
 

Static Public Attributes

static const int invalidBunchXing = EventAuxiliary::invalidBunchXing
 
static const int invalidStoreNumber = EventAuxiliary::invalidStoreNumber
 

Private Member Functions

void changedIndexes_ () final
 
void commonFillEventPrincipal (EventAuxiliary const &aux, ProcessHistory const *processHistory, DelayedReader *reader)
 
edm::ThinnedAssociation const * getThinnedAssociation (edm::BranchID const &branchID) const
 
BranchID pidToBid (ProductID const &pid) const
 
std::shared_ptr< ProductProvenanceRetriever > & provRetrieverPtr ()
 
std::shared_ptr< ProductProvenanceRetriever const > provRetrieverPtr () const
 
unsigned int transitionIndex_ () const override
 
void updateBranchListIndexes (BranchListIndexes &&)
 
bool wasBranchListIndexesChangedFromInput (BranchListIndexes const &) const
 

Private Attributes

EventAuxiliary aux_
 
std::shared_ptr< BranchIDListHelper const > branchIDListHelper_
 
BranchListIndexes branchListIndexes_
 
std::vector< ProcessIndexbranchListIndexToProcessIndex_
 
EventSelectionIDVector eventSelectionIDs_
 
edm::propagate_const< LuminosityBlockPrincipal * > luminosityBlockPrincipal_
 
edm::propagate_const< std::shared_ptr< ProductProvenanceRetriever > > provRetrieverPtr_
 
StreamID streamID_
 
std::shared_ptr< ThinnedAssociationsHelper const > thinnedAssociationsHelper_
 

Additional Inherited Members

- Static Public Member Functions inherited from edm::EDProductGetter
static void assignEDProductGetter (EDProductGetter const *&)
 
static EDProductGetter const * switchProductGetter (EDProductGetter const *)
 These can only be used internally by the framework. More...
 
- Protected Member Functions inherited from edm::Principal
void addProduct_ (std::unique_ptr< ProductResolverBase > phb)
 
void addProductOrThrow (std::unique_ptr< ProductResolverBase > phb)
 
template<typename F >
void applyToResolvers (F iFunc)
 
ProductResolverBasegetExistingProduct (BranchID const &branchID)
 
ProductResolverBase const * getExistingProduct (BranchID const &branchID) const
 
ProductResolverBase const * getExistingProduct (ProductResolverBase const &phb) const
 
void putOrMerge (BranchDescription const &bd, std::unique_ptr< WrapperBase > edp) const
 

Detailed Description

Definition at line 46 of file EventPrincipal.h.

Member Typedef Documentation

◆ Auxiliary

Definition at line 48 of file EventPrincipal.h.

◆ Base

Definition at line 49 of file EventPrincipal.h.

◆ ConstProductResolverPtr

Definition at line 51 of file EventPrincipal.h.

Constructor & Destructor Documentation

◆ EventPrincipal()

edm::EventPrincipal::EventPrincipal ( std::shared_ptr< ProductRegistry const >  reg,
std::shared_ptr< BranchIDListHelper const >  branchIDListHelper,
std::shared_ptr< ThinnedAssociationsHelper const >  thinnedAssociationsHelper,
ProcessConfiguration const &  pc,
HistoryAppender historyAppender,
unsigned int  streamIndex = 0,
bool  isForPrimaryProcess = true 
)

Definition at line 30 of file EventPrincipal.cc.

37  : Base(reg, reg->productLookup(InEvent), pc, InEvent, historyAppender, isForPrimaryProcess),
38  aux_(),
40  provRetrieverPtr_(new ProductProvenanceRetriever(streamIndex, *reg)),
42  branchIDListHelper_(branchIDListHelper),
43  thinnedAssociationsHelper_(thinnedAssociationsHelper),
46  streamID_(streamIndex) {
48 
49  for (auto& prod : *this) {
50  if (prod->singleProduct()) {
51  prod->setProductProvenanceRetriever(productProvenanceRetrieverPtr());
52  }
53  }
54  }

References cms::cuda::assert(), dumpMFGeometry_cfg::prod, productProvenanceRetrieverPtr(), and thinnedAssociationsHelper_.

◆ ~EventPrincipal()

edm::EventPrincipal::~EventPrincipal ( )
inlineoverride

Definition at line 61 of file EventPrincipal.h.

61 {}

Member Function Documentation

◆ aux()

EventAuxiliary const& edm::EventPrincipal::aux ( ) const
inline

◆ branchIDToProductID()

ProductID edm::EventPrincipal::branchIDToProductID ( BranchID const &  bid) const

Definition at line 229 of file EventPrincipal.cc.

229  {
230  if (!bid.isValid()) {
231  throw Exception(errors::NotFound, "InvalidID") << "branchIDToProductID: invalid BranchID supplied\n";
232  }
233  typedef BranchIDListHelper::BranchIDToIndexMap BIDToIndexMap;
234  typedef BIDToIndexMap::const_iterator Iter;
235  typedef std::pair<Iter, Iter> IndexRange;
236 
237  IndexRange range = branchIDListHelper_->branchIDToIndexMap().equal_range(bid);
238  for (Iter it = range.first; it != range.second; ++it) {
239  BranchListIndex blix = it->second.first;
240  if (blix < branchListIndexToProcessIndex_.size()) {
241  auto v = branchListIndexToProcessIndex_[blix];
243  ProductIndex productIndex = it->second.second;
244  ProcessIndex processIndex = v;
245  return ProductID(processIndex + 1, productIndex + 1);
246  }
247  }
248  }
249  // cannot throw, because some products may legitimately not have product ID's (e.g. pile-up).
250  return ProductID();
251  }

References branchIDListHelper_, branchListIndexToProcessIndex_, Exception, edm::BranchID::isValid(), SiStripPI::max, edm::errors::NotFound, FastTimerService_cff::range, and findQualityFiles::v.

Referenced by edm::Event::makeProductID(), and updateBranchListIndexes().

◆ branchListIndexes()

BranchListIndexes const & edm::EventPrincipal::branchListIndexes ( ) const

◆ bunchCrossing()

int edm::EventPrincipal::bunchCrossing ( ) const
inline

Definition at line 100 of file EventPrincipal.h.

100 { return aux().bunchCrossing(); }

References aux(), and edm::EventAuxiliary::bunchCrossing().

◆ changedIndexes_()

void edm::EventPrincipal::changedIndexes_ ( )
finalprivatevirtual

Reimplemented from edm::Principal.

Definition at line 255 of file EventPrincipal.cc.

255 { provRetrieverPtr_->update(productRegistry()); }

References edm::Principal::productRegistry(), and provRetrieverPtr_.

◆ clearEventPrincipal()

void edm::EventPrincipal::clearEventPrincipal ( )

Definition at line 56 of file EventPrincipal.cc.

56  {
58  aux_ = EventAuxiliary();
59  //do not clear luminosityBlockPrincipal_ since
60  // it is only connected at beginLumi transition
61  provRetrieverPtr_->reset();
62  }

References aux_, edm::Principal::clearPrincipal(), and provRetrieverPtr_.

◆ commonFillEventPrincipal()

void edm::EventPrincipal::commonFillEventPrincipal ( EventAuxiliary const &  aux,
ProcessHistory const *  processHistory,
DelayedReader reader 
)
private

Definition at line 116 of file EventPrincipal.cc.

118  {
119  if (aux.event() == invalidEventNumber) {
120  throw Exception(errors::LogicError) << "EventPrincipal::fillEventPrincipal, Invalid event number provided in "
121  "EventAuxiliary, It is illegal for the event number to be 0\n";
122  }
123 
125  aux_ = aux;
127  }

References aux(), aux_, edm::EventAuxiliary::event(), Exception, edm::Principal::fillPrincipal(), edm::invalidEventNumber, edm::errors::LogicError, edm::Principal::processHistory(), edm::EventAuxiliary::processHistoryID(), edm::Principal::processHistoryID(), edm::Principal::reader(), and edm::EventAuxiliary::setProcessHistoryID().

Referenced by fillEventPrincipal().

◆ eventSelectionIDs()

EventSelectionIDVector const & edm::EventPrincipal::eventSelectionIDs ( ) const

◆ ExperimentType()

EventAuxiliary::ExperimentType edm::EventPrincipal::ExperimentType ( ) const
inline

Definition at line 98 of file EventPrincipal.h.

98 { return aux().experimentType(); }

References aux(), and edm::EventAuxiliary::experimentType().

◆ fillEventPrincipal() [1/3]

void edm::EventPrincipal::fillEventPrincipal ( EventAuxiliary const &  aux,
ProcessHistory const *  processHistory,
DelayedReader reader = nullptr 
)

Definition at line 103 of file EventPrincipal.cc.

105  {
106  if (branchListIndexes_.empty() and branchIDListHelper_->hasProducedProducts()) {
107  // Add index into BranchIDListRegistry for products produced this process
108  // if it hasn't already been filled in by the other fillEventPrincipal or by an earlier call to this function
109  BranchListIndexes indexes;
110  indexes.push_back(branchIDListHelper_->producedBranchListIndex());
112  }
114  }

References aux(), branchIDListHelper_, branchListIndexes_, commonFillEventPrincipal(), eostools::move(), edm::Principal::processHistory(), edm::Principal::reader(), and updateBranchListIndexes().

Referenced by edm::IDGeneratorSourceBase< PuttableSourceBase >::doReadEvent(), edm::RawInputSource::makeEvent(), edm::StreamerInputSource::read(), edm::RootFile::readCurrentEvent(), edm::TestSource::readEvent_(), and LHESource::readEvent_().

◆ fillEventPrincipal() [2/3]

void edm::EventPrincipal::fillEventPrincipal ( EventAuxiliary const &  aux,
ProcessHistory const *  processHistory,
EventSelectionIDVector  eventSelectionIDs,
BranchListIndexes  branchListIndexes 
)

Definition at line 87 of file EventPrincipal.cc.

90  {
92 
94  if (branchIDListHelper_->hasProducedProducts()) {
95  // Add index into BranchIDListRegistry for products produced this process
96  branchListIndexes.push_back(branchIDListHelper_->producedBranchListIndex());
97  }
99  }
101  }

References aux(), branchIDListHelper_, branchListIndexes(), commonFillEventPrincipal(), eventSelectionIDs(), eventSelectionIDs_, eostools::move(), edm::Principal::processHistory(), updateBranchListIndexes(), and wasBranchListIndexesChangedFromInput().

◆ fillEventPrincipal() [3/3]

void edm::EventPrincipal::fillEventPrincipal ( EventAuxiliary const &  aux,
ProcessHistory const *  processHistory,
EventSelectionIDVector  eventSelectionIDs,
BranchListIndexes  branchListIndexes,
ProductProvenanceRetriever const &  provRetriever,
DelayedReader reader = nullptr,
bool  deepCopyRetriever = true 
)

Definition at line 64 of file EventPrincipal.cc.

70  {
72  if (deepCopyRetriever) {
73  provRetrieverPtr_->deepCopy(provRetriever);
74  } else {
75  provRetrieverPtr_->mergeParentProcessRetriever(provRetriever);
76  }
78  if (branchIDListHelper_->hasProducedProducts()) {
79  // Add index into BranchIDListRegistry for products produced this process
80  branchListIndexes.push_back(branchIDListHelper_->producedBranchListIndex());
81  }
83  }
85  }

References aux(), branchIDListHelper_, branchListIndexes(), commonFillEventPrincipal(), eventSelectionIDs(), eventSelectionIDs_, eostools::move(), edm::Principal::processHistory(), provRetrieverPtr_, edm::Principal::reader(), updateBranchListIndexes(), and wasBranchListIndexesChangedFromInput().

◆ getByProductID()

BasicHandle edm::EventPrincipal::getByProductID ( ProductID const &  oid) const

Definition at line 267 of file EventPrincipal.cc.

267  {
268  BranchID bid = pidToBid(pid);
270  if (phb == nullptr) {
271  return BasicHandle(makeHandleExceptionFactory([pid]() -> std::shared_ptr<cms::Exception> {
272  std::shared_ptr<cms::Exception> whyFailed(std::make_shared<Exception>(errors::ProductNotFound, "InvalidID"));
273  *whyFailed << "get by product ID: no product with given id: " << pid << "\n";
274  return whyFailed;
275  }));
276  }
277 
278  // Was this already deleted?
279  if (phb->productWasDeleted()) {
281  }
282  // Check for case where we tried on demand production and
283  // it failed to produce the object
284  if (phb->unscheduledWasNotRun()) {
285  return BasicHandle(makeHandleExceptionFactory([pid]() -> std::shared_ptr<cms::Exception> {
286  std::shared_ptr<cms::Exception> whyFailed(std::make_shared<Exception>(errors::ProductNotFound, "InvalidID"));
287  *whyFailed << "get by ProductID: could not get product with id: " << pid << "\n"
288  << "Unscheduled execution not allowed to get via ProductID.\n";
289  return whyFailed;
290  }));
291  }
292  auto resolution = phb->resolveProduct(*this, false, nullptr, nullptr);
293 
294  auto data = resolution.data();
295  if (data) {
296  return BasicHandle(data->wrapper(), &(data->provenance()));
297  }
298  return BasicHandle(nullptr, nullptr);
299  }

References data, edm::Principal::getProductResolver(), edm::makeHandleExceptionFactory(), pidToBid(), edm::errors::ProductNotFound, L1TObjectsTimingClient_cff::resolution, and edm::throwProductDeletedException().

Referenced by edm::Event::getByProductID_(), getIt(), getThinnedProduct(), and getThinnedProducts().

◆ getIt()

WrapperBase const * edm::EventPrincipal::getIt ( ProductID const &  pid) const
overridevirtual

Implements edm::EDProductGetter.

Definition at line 301 of file EventPrincipal.cc.

301 { return getByProductID(pid).wrapper(); }

References getByProductID(), and edm::BasicHandle::wrapper().

◆ getProvenance() [1/2]

Provenance edm::Principal::getProvenance

Definition at line 796 of file Principal.cc.

796  {
798  if (phb == nullptr) {
800  }
801 
802  if (phb->unscheduledWasNotRun()) {
803  if (not phb->resolveProduct(*this, false, nullptr, mcc).data()) {
804  throwProductNotFoundException("getProvenance(onDemand)", errors::ProductNotFound, bid);
805  }
806  }
807  return *phb->provenance();
808  }

◆ getProvenance() [2/2]

Provenance edm::EventPrincipal::getProvenance ( ProductID const &  pid,
ModuleCallingContext const *  mcc 
) const

Definition at line 410 of file EventPrincipal.cc.

410  {
411  BranchID bid = pidToBid(pid);
412  return getProvenance(bid, mcc);
413  }

References pidToBid().

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

◆ getThinnedAssociation()

edm::ThinnedAssociation const * edm::EventPrincipal::getThinnedAssociation ( edm::BranchID const &  branchID) const
private

Definition at line 419 of file EventPrincipal.cc.

419  {
420  ConstProductResolverPtr const phb = getProductResolver(branchID);
421 
422  if (phb == nullptr) {
424  << "EventPrincipal::getThinnedAssociation, ThinnedAssociation ProductResolver cannot be found\n"
425  << "This should never happen. Contact a Framework developer";
426  }
427  ProductData const* productData = (phb->resolveProduct(*this, false, nullptr, nullptr)).data();
428  if (productData == nullptr) {
429  return nullptr;
430  }
431  WrapperBase const* product = productData->wrapper();
432  if (!(typeid(edm::ThinnedAssociation) == product->dynamicTypeInfo())) {
434  << "EventPrincipal::getThinnedProduct, product has wrong type, not a ThinnedAssociation.\n";
435  }
436  Wrapper<ThinnedAssociation> const* wrapper = static_cast<Wrapper<ThinnedAssociation> const*>(product);
437  return wrapper->product();
438  }

References watchdog::const, data, edm::WrapperBase::dynamicTypeInfo(), Exception, edm::Principal::getProductResolver(), edm::errors::LogicError, edm::ProductData::wrapper(), and wrapper.

Referenced by getThinnedProduct(), and getThinnedProducts().

◆ getThinnedProduct()

WrapperBase const * edm::EventPrincipal::getThinnedProduct ( ProductID const &  pid,
unsigned int &  key 
) const
overridevirtual

Implements edm::EDProductGetter.

Definition at line 303 of file EventPrincipal.cc.

303  {
304  BranchID parent = pidToBid(pid);
305 
306  // Loop over thinned containers which were made by selecting elements from the parent container
307  for (auto associatedBranches = thinnedAssociationsHelper_->parentBegin(parent),
308  iEnd = thinnedAssociationsHelper_->parentEnd(parent);
309  associatedBranches != iEnd;
310  ++associatedBranches) {
311  ThinnedAssociation const* thinnedAssociation = getThinnedAssociation(associatedBranches->association());
312  if (thinnedAssociation == nullptr)
313  continue;
314 
315  if (associatedBranches->parent() != pidToBid(thinnedAssociation->parentCollectionID())) {
316  continue;
317  }
318 
319  unsigned int thinnedIndex = 0;
320  // Does this thinned container have the element referenced by key?
321  // If yes, thinnedIndex is set to point to it in the thinned container
322  if (!thinnedAssociation->hasParentIndex(key, thinnedIndex)) {
323  continue;
324  }
325  // Get the thinned container and return a pointer if we can find it
326  ProductID const& thinnedCollectionPID = thinnedAssociation->thinnedCollectionID();
327  BasicHandle bhThinned = getByProductID(thinnedCollectionPID);
328  if (!bhThinned.isValid()) {
329  // Thinned container is not found, try looking recursively in thinned containers
330  // which were made by selecting elements from this thinned container.
331  WrapperBase const* wrapperBase = getThinnedProduct(thinnedCollectionPID, thinnedIndex);
332  if (wrapperBase != nullptr) {
333  key = thinnedIndex;
334  return wrapperBase;
335  } else {
336  continue;
337  }
338  }
339  key = thinnedIndex;
340  return bhThinned.wrapper();
341  }
342  return nullptr;
343  }

References getByProductID(), getThinnedAssociation(), edm::ThinnedAssociation::hasParentIndex(), edm::BasicHandle::isValid(), crabWrapper::key, class-composition::parent, edm::ThinnedAssociation::parentCollectionID(), pidToBid(), thinnedAssociationsHelper_, edm::ThinnedAssociation::thinnedCollectionID(), and edm::BasicHandle::wrapper().

◆ getThinnedProducts()

void edm::EventPrincipal::getThinnedProducts ( ProductID const &  pid,
std::vector< WrapperBase const * > &  foundContainers,
std::vector< unsigned int > &  keys 
) const
overridevirtual

Implements edm::EDProductGetter.

Definition at line 345 of file EventPrincipal.cc.

347  {
348  BranchID parent = pidToBid(pid);
349 
350  // Loop over thinned containers which were made by selecting elements from the parent container
351  for (auto associatedBranches = thinnedAssociationsHelper_->parentBegin(parent),
352  iEnd = thinnedAssociationsHelper_->parentEnd(parent);
353  associatedBranches != iEnd;
354  ++associatedBranches) {
355  ThinnedAssociation const* thinnedAssociation = getThinnedAssociation(associatedBranches->association());
356  if (thinnedAssociation == nullptr)
357  continue;
358 
359  if (associatedBranches->parent() != pidToBid(thinnedAssociation->parentCollectionID())) {
360  continue;
361  }
362 
363  unsigned nKeys = keys.size();
364  unsigned int doNotLookForThisIndex = std::numeric_limits<unsigned int>::max();
365  std::vector<unsigned int> thinnedIndexes(nKeys, doNotLookForThisIndex);
366  bool hasAny = false;
367  for (unsigned k = 0; k < nKeys; ++k) {
368  // Already found this one
369  if (foundContainers[k] != nullptr)
370  continue;
371  // Already know this one is not in this thinned container
372  if (keys[k] == doNotLookForThisIndex)
373  continue;
374  // Does the thinned container hold the entry of interest?
375  // Modifies thinnedIndexes[k] only if it returns true and
376  // sets it to the index in the thinned collection.
377  if (thinnedAssociation->hasParentIndex(keys[k], thinnedIndexes[k])) {
378  hasAny = true;
379  }
380  }
381  if (!hasAny) {
382  continue;
383  }
384  // Get the thinned container and set the pointers and indexes into
385  // it (if we can find it)
386  ProductID thinnedCollectionPID = thinnedAssociation->thinnedCollectionID();
387  BasicHandle bhThinned = getByProductID(thinnedCollectionPID);
388  if (!bhThinned.isValid()) {
389  // Thinned container is not found, try looking recursively in thinned containers
390  // which were made by selecting elements from this thinned container.
391  getThinnedProducts(thinnedCollectionPID, foundContainers, thinnedIndexes);
392  for (unsigned k = 0; k < nKeys; ++k) {
393  if (foundContainers[k] == nullptr)
394  continue;
395  if (thinnedIndexes[k] == doNotLookForThisIndex)
396  continue;
397  keys[k] = thinnedIndexes[k];
398  }
399  } else {
400  for (unsigned k = 0; k < nKeys; ++k) {
401  if (thinnedIndexes[k] == doNotLookForThisIndex)
402  continue;
403  keys[k] = thinnedIndexes[k];
404  foundContainers[k] = bhThinned.wrapper();
405  }
406  }
407  }
408  }

References getByProductID(), getThinnedAssociation(), edm::ThinnedAssociation::hasParentIndex(), edm::BasicHandle::isValid(), dqmdumpme::k, relativeConstraints::keys, SiStripPI::max, class-composition::parent, edm::ThinnedAssociation::parentCollectionID(), pidToBid(), thinnedAssociationsHelper_, edm::ThinnedAssociation::thinnedCollectionID(), and edm::BasicHandle::wrapper().

◆ id()

EventID const& edm::EventPrincipal::id ( void  ) const
inline

◆ isReal()

bool edm::EventPrincipal::isReal ( ) const
inline

Definition at line 96 of file EventPrincipal.h.

96 { return aux().isRealData(); }

References aux(), and edm::EventAuxiliary::isRealData().

◆ luminosityBlock()

LuminosityBlockNumber_t edm::EventPrincipal::luminosityBlock ( ) const
inline

◆ luminosityBlockPrincipal() [1/2]

LuminosityBlockPrincipal& edm::EventPrincipal::luminosityBlockPrincipal ( )
inline

Definition at line 83 of file EventPrincipal.h.

83 { return *luminosityBlockPrincipal_; }

References luminosityBlockPrincipal_.

◆ luminosityBlockPrincipal() [2/2]

LuminosityBlockPrincipal const& edm::EventPrincipal::luminosityBlockPrincipal ( ) const
inline

◆ luminosityBlockPrincipalPtrValid()

bool edm::EventPrincipal::luminosityBlockPrincipalPtrValid ( ) const
inline

Definition at line 85 of file EventPrincipal.h.

85 { return luminosityBlockPrincipal_ != nullptr; }

References luminosityBlockPrincipal_.

◆ mergeProvenanceRetrievers()

void edm::EventPrincipal::mergeProvenanceRetrievers ( EventPrincipal other)
inline

Definition at line 142 of file EventPrincipal.h.

142  {
143  provRetrieverPtr_->mergeProvenanceRetrievers(other.provRetrieverPtr());
144  }

References trackingPlots::other, and provRetrieverPtr_.

Referenced by edm::PoolSource::readEvent_().

◆ pidToBid()

BranchID edm::EventPrincipal::pidToBid ( ProductID const &  pid) const
private

Definition at line 222 of file EventPrincipal.cc.

222  {
223  if (!pid.isValid()) {
224  throw Exception(errors::ProductNotFound, "InvalidID") << "get by product ID: invalid ProductID supplied\n";
225  }
226  return productIDToBranchID(pid, branchIDListHelper_->branchIDLists(), branchListIndexes_);
227  }

References branchIDListHelper_, branchListIndexes_, Exception, edm::ProductID::isValid(), edm::productIDToBranchID(), and edm::errors::ProductNotFound.

Referenced by getByProductID(), getProvenance(), getThinnedProduct(), and getThinnedProducts().

◆ productProvenanceRetrieverPtr()

ProductProvenanceRetriever const* edm::EventPrincipal::productProvenanceRetrieverPtr ( ) const
inline

◆ provRetrieverPtr() [1/2]

std::shared_ptr<ProductProvenanceRetriever>& edm::EventPrincipal::provRetrieverPtr ( )
inlineprivate

Definition at line 159 of file EventPrincipal.h.

References edm::get_underlying_safe(), and provRetrieverPtr_.

◆ provRetrieverPtr() [2/2]

std::shared_ptr<ProductProvenanceRetriever const> edm::EventPrincipal::provRetrieverPtr ( ) const
inlineprivate

Definition at line 156 of file EventPrincipal.h.

156  {
158  }

References edm::get_underlying_safe(), and provRetrieverPtr_.

◆ put() [1/2]

void edm::EventPrincipal::put ( BranchDescription const &  bd,
std::unique_ptr< WrapperBase edp,
ProductProvenance const &  productProvenance 
) const

Definition at line 178 of file EventPrincipal.cc.

180  {
181  // assert commented out for DaqSource. When DaqSource no longer uses put(), the assert can be restored.
182  //assert(produced());
183  if (edp.get() == nullptr) {
184  throw Exception(errors::InsertFailure, "Null Pointer") << "put: Cannot put because ptr to product is null."
185  << "\n";
186  }
187  productProvenanceRetrieverPtr()->insertIntoSet(productProvenance);
188  auto phb = getExistingProduct(bd.branchID());
189  assert(phb);
190  // ProductResolver assumes ownership
191  phb->putProduct(std::move(edp));
192  }

References cms::cuda::assert(), Exception, edm::Principal::getExistingProduct(), edm::errors::InsertFailure, edm::ProductProvenanceRetriever::insertIntoSet(), eostools::move(), and productProvenanceRetrieverPtr().

Referenced by FedRawDataInputSource::read(), and LHESource::readEvent_().

◆ put() [2/2]

void edm::EventPrincipal::put ( ProductResolverIndex  index,
std::unique_ptr< WrapperBase edp,
ParentageID  productProvenance 
) const

Definition at line 194 of file EventPrincipal.cc.

194  {
195  if (edp.get() == nullptr) {
196  throw Exception(errors::InsertFailure, "Null Pointer") << "put: Cannot put because ptr to product is null."
197  << "\n";
198  }
199  auto phb = getProductResolverByIndex(index);
200 
202  ProductProvenance(phb->branchDescription().branchID(), std::move(parentage)));
203 
204  assert(phb);
205  // ProductResolver assumes ownership
206  phb->putProduct(std::move(edp));
207  }

References cms::cuda::assert(), Exception, edm::Principal::getProductResolverByIndex(), edm::errors::InsertFailure, edm::ProductProvenanceRetriever::insertIntoSet(), eostools::move(), and productProvenanceRetrieverPtr().

◆ putOnRead()

void edm::EventPrincipal::putOnRead ( BranchDescription const &  bd,
std::unique_ptr< WrapperBase edp,
std::optional< ProductProvenance productProvenance 
) const

Definition at line 209 of file EventPrincipal.cc.

211  {
212  assert(!bd.produced());
213  if (productProvenance) {
214  productProvenanceRetrieverPtr()->insertIntoSet(std::move(*productProvenance));
215  }
216  auto phb = getExistingProduct(bd.branchID());
217  assert(phb);
218  // ProductResolver assumes ownership
219  phb->putProduct(std::move(edp));
220  }

References cms::cuda::assert(), edm::Principal::getExistingProduct(), edm::ProductProvenanceRetriever::insertIntoSet(), eostools::move(), and productProvenanceRetrieverPtr().

Referenced by edm::StreamerInputSource::read().

◆ run()

RunNumber_t edm::EventPrincipal::run ( ) const
inline

◆ runPrincipal()

RunPrincipal const & edm::EventPrincipal::runPrincipal ( ) const

◆ setLuminosityBlockPrincipal()

void edm::EventPrincipal::setLuminosityBlockPrincipal ( LuminosityBlockPrincipal lbp)

Definition at line 167 of file EventPrincipal.cc.

167 { luminosityBlockPrincipal_ = lbp; }

References luminosityBlockPrincipal_.

◆ setRunAndLumiNumber()

void edm::EventPrincipal::setRunAndLumiNumber ( RunNumber_t  run,
LuminosityBlockNumber_t  lumi 
)

Definition at line 169 of file EventPrincipal.cc.

169  {
171  assert(lumi == luminosityBlockPrincipal_->luminosityBlock());
172  EventNumber_t event = aux_.id().event();
173  aux_.id() = EventID(run, lumi, event);
174  }

References cms::cuda::assert(), aux_, edm::EventID::event(), edm::EventAuxiliary::id(), luminosityBlockPrincipal_, and run().

Referenced by edm::OneLumiPoolSource::readEvent_().

◆ storeNumber()

int edm::EventPrincipal::storeNumber ( ) const
inline

Definition at line 102 of file EventPrincipal.h.

102 { return aux().storeNumber(); }

References aux(), and edm::EventAuxiliary::storeNumber().

◆ streamID()

StreamID edm::EventPrincipal::streamID ( ) const
inline

◆ time()

Timestamp const& edm::EventPrincipal::time ( ) const
inline

◆ transitionIndex_()

unsigned int edm::EventPrincipal::transitionIndex_ ( ) const
overrideprivatevirtual

Implements edm::EDProductGetter.

Definition at line 253 of file EventPrincipal.cc.

253 { return streamID_.value(); }

References streamID_, and edm::StreamID::value().

◆ updateBranchListIndexes()

void edm::EventPrincipal::updateBranchListIndexes ( BranchListIndexes &&  branchListIndexes)
private

Definition at line 139 of file EventPrincipal.cc.

139  {
142  // Fill in helper map for Branch to ProductID mapping
143  if (not branchListIndexes_.empty()) {
144  ProcessIndex pix = 0;
145  branchListIndexToProcessIndex_.resize(1 + *std::max_element(branchListIndexes_.begin(), branchListIndexes_.end()),
147  for (auto const& blindex : branchListIndexes_) {
148  branchListIndexToProcessIndex_[blindex] = pix;
149  ++pix;
150  }
151  }
152 
153  // Fill in the product ID's in the product holders.
154  for (auto& prod : *this) {
155  if (prod->singleProduct()) {
156  // If an alias is in the same process as the original then isAlias will be true.
157  // Under that condition, we want the ProductID to be the same as the original.
158  // If not, then we've internally changed the original BranchID to the alias BranchID
159  // in the ProductID lookup so we need the alias BranchID.
160 
161  auto const& bd = prod->branchDescription();
162  prod->setProductID(branchIDToProductID(bd.isAlias() ? bd.originalBranchID() : bd.branchID()));
163  }
164  }
165  }

References branchIDToProductID(), branchListIndexes(), branchListIndexes_, branchListIndexToProcessIndex_, SiStripPI::max, eostools::move(), and dumpMFGeometry_cfg::prod.

Referenced by fillEventPrincipal().

◆ wasBranchListIndexesChangedFromInput()

bool edm::EventPrincipal::wasBranchListIndexesChangedFromInput ( BranchListIndexes const &  fromInput) const
private

Definition at line 129 of file EventPrincipal.cc.

129  {
130  //fromInput does not contain entries for what is being produced in this job.
131  auto end = branchListIndexes_.end();
132  if (end != branchListIndexes_.begin() and branchIDListHelper_->hasProducedProducts()) {
133  --end;
134  }
135 
136  return not std::equal(fromInput.begin(), fromInput.end(), branchListIndexes_.begin(), end);
137  }

References branchIDListHelper_, branchListIndexes_, edm::Principal::end(), and cond::serialization::equal().

Referenced by fillEventPrincipal().

Member Data Documentation

◆ aux_

EventAuxiliary edm::EventPrincipal::aux_
private

◆ branchIDListHelper_

std::shared_ptr<BranchIDListHelper const> edm::EventPrincipal::branchIDListHelper_
private

◆ branchListIndexes_

BranchListIndexes edm::EventPrincipal::branchListIndexes_
private

◆ branchListIndexToProcessIndex_

std::vector<ProcessIndex> edm::EventPrincipal::branchListIndexToProcessIndex_
private

Definition at line 182 of file EventPrincipal.h.

Referenced by branchIDToProductID(), and updateBranchListIndexes().

◆ eventSelectionIDs_

EventSelectionIDVector edm::EventPrincipal::eventSelectionIDs_
private

Definition at line 175 of file EventPrincipal.h.

Referenced by eventSelectionIDs(), and fillEventPrincipal().

◆ invalidBunchXing

const int edm::EventPrincipal::invalidBunchXing = EventAuxiliary::invalidBunchXing
static

Definition at line 52 of file EventPrincipal.h.

◆ invalidStoreNumber

const int edm::EventPrincipal::invalidStoreNumber = EventAuxiliary::invalidStoreNumber
static

Definition at line 53 of file EventPrincipal.h.

◆ luminosityBlockPrincipal_

edm::propagate_const<LuminosityBlockPrincipal*> edm::EventPrincipal::luminosityBlockPrincipal_
private

◆ provRetrieverPtr_

edm::propagate_const<std::shared_ptr<ProductProvenanceRetriever> > edm::EventPrincipal::provRetrieverPtr_
private

◆ streamID_

StreamID edm::EventPrincipal::streamID_
private

Definition at line 184 of file EventPrincipal.h.

Referenced by streamID(), and transitionIndex_().

◆ thinnedAssociationsHelper_

std::shared_ptr<ThinnedAssociationsHelper const> edm::EventPrincipal::thinnedAssociationsHelper_
private

Definition at line 178 of file EventPrincipal.h.

Referenced by EventPrincipal(), getThinnedProduct(), and getThinnedProducts().

FastTimerService_cff.range
range
Definition: FastTimerService_cff.py:34
edm::EventAuxiliary::event
EventNumber_t event() const
Definition: EventAuxiliary.h:72
edm::EventPrincipal::branchIDListHelper_
std::shared_ptr< BranchIDListHelper const > branchIDListHelper_
Definition: EventPrincipal.h:177
edm::EventPrincipal::luminosityBlockPrincipal_
edm::propagate_const< LuminosityBlockPrincipal * > luminosityBlockPrincipal_
Definition: EventPrincipal.h:170
edm::LuminosityBlockPrincipal::runPrincipal
RunPrincipal const & runPrincipal() const
Definition: LuminosityBlockPrincipal.h:45
edm::EventPrincipal::aux
EventAuxiliary const & aux() const
Definition: EventPrincipal.h:104
edm::EventPrincipal::luminosityBlockPrincipal
LuminosityBlockPrincipal const & luminosityBlockPrincipal() const
Definition: EventPrincipal.h:81
edm::EventPrincipal::aux_
EventAuxiliary aux_
Definition: EventPrincipal.h:168
edm::EventAuxiliary::storeNumber
int storeNumber() const
Definition: EventAuxiliary.h:78
edm::errors::LogicError
Definition: EDMException.h:37
deep_tau::DeepTauBase::BasicDiscriminator
BasicDiscriminator
Definition: DeepTauBase.h:115
edm::EventPrincipal::thinnedAssociationsHelper_
std::shared_ptr< ThinnedAssociationsHelper const > thinnedAssociationsHelper_
Definition: EventPrincipal.h:178
edm::EventPrincipal::getThinnedProduct
WrapperBase const * getThinnedProduct(ProductID const &pid, unsigned int &key) const override
Definition: EventPrincipal.cc:303
edm::BranchListIndexes
std::vector< BranchListIndex > BranchListIndexes
Definition: BranchListIndex.h:18
edm::ThinnedAssociation
Definition: ThinnedAssociation.h:14
cms::cuda::assert
assert(be >=bs)
edm::ProcessIndex
unsigned short ProcessIndex
Definition: ProductID.h:25
edm::StreamID::value
unsigned int value() const
Definition: StreamID.h:42
relativeConstraints.keys
keys
Definition: relativeConstraints.py:89
wrapper
static HepMC::HEPEVT_Wrapper wrapper
Definition: BeamHaloProducer.cc:47
edm::Principal::processHistory
ProcessHistory const & processHistory() const
Definition: Principal.h:139
findQualityFiles.v
v
Definition: findQualityFiles.py:179
edm::errors::NotFound
Definition: EDMException.h:57
edm::EventID::luminosityBlock
LuminosityBlockNumber_t luminosityBlock() const
Definition: EventID.h:39
watchdog.const
const
Definition: watchdog.py:83
edm::EventPrincipal::id
EventID const & id() const
Definition: EventPrincipal.h:92
edm::EventAuxiliary::bunchCrossing
int bunchCrossing() const
Definition: EventAuxiliary.h:76
edm::ProductIndex
unsigned short ProductIndex
Definition: ProductID.h:26
edm::EventPrincipal::getProvenance
Provenance getProvenance(ProductID const &pid, ModuleCallingContext const *mcc) const
Definition: EventPrincipal.cc:410
edm::Principal::getProductResolverByIndex
ConstProductResolverPtr getProductResolverByIndex(ProductResolverIndex const &oid) const
Definition: Principal.cc:535
edm::EventPrincipal::productProvenanceRetrieverPtr
ProductProvenanceRetriever const * productProvenanceRetrieverPtr() const
Definition: EventPrincipal.h:114
edm::Principal::fillPrincipal
void fillPrincipal(ProcessHistoryID const &hist, ProcessHistory const *phr, DelayedReader *reader)
Definition: Principal.cc:394
edm::makeHandleExceptionFactory
std::shared_ptr< HandleExceptionFactory > makeHandleExceptionFactory(T &&iFunctor)
Definition: FunctorHandleExceptionFactory.h:45
edm::EventPrincipal::branchListIndexes
BranchListIndexes const & branchListIndexes() const
Definition: EventPrincipal.cc:417
edm::errors::ProductNotFound
Definition: EDMException.h:33
edm::EventPrincipal::provRetrieverPtr_
edm::propagate_const< std::shared_ptr< ProductProvenanceRetriever > > provRetrieverPtr_
Definition: EventPrincipal.h:173
edm::ProductProvenanceRetriever::insertIntoSet
void insertIntoSet(ProductProvenance provenanceProduct) const
Definition: ProductProvenanceRetriever.cc:121
edm::EventPrincipal::ConstProductResolverPtr
Base::ConstProductResolverPtr ConstProductResolverPtr
Definition: EventPrincipal.h:51
edm::EventPrincipal::getThinnedAssociation
edm::ThinnedAssociation const * getThinnedAssociation(edm::BranchID const &branchID) const
Definition: EventPrincipal.cc:419
edm::Principal::processHistoryID
ProcessHistoryID const & processHistoryID() const
Definition: Principal.h:141
edm::invalidEventNumber
const EventNumber_t invalidEventNumber
Definition: RunLumiEventNumber.h:16
edm::Principal::reader
DelayedReader * reader() const
Definition: Principal.h:185
dumpMFGeometry_cfg.prod
prod
Definition: dumpMFGeometry_cfg.py:24
edm::EventAuxiliary::id
EventID const & id() const
Definition: EventAuxiliary.h:63
L1TObjectsTimingClient_cff.resolution
resolution
Definition: L1TObjectsTimingClient_cff.py:52
edm::errors::InsertFailure
Definition: EDMException.h:35
edm::Principal::getProductResolver
ConstProductResolverPtr getProductResolver(BranchID const &oid) const
Definition: Principal.cc:527
edm::BranchIDListHelper::BranchIDToIndexMap
std::multimap< BranchID, IndexPair > BranchIDToIndexMap
Definition: BranchIDListHelper.h:18
edm::BranchListIndex
unsigned short BranchListIndex
Definition: BranchListIndex.h:17
trackingPlots.other
other
Definition: trackingPlots.py:1465
edm::EventNumber_t
unsigned long long EventNumber_t
Definition: RunLumiEventNumber.h:12
edm::InEvent
Definition: BranchType.h:11
dqmdumpme.k
k
Definition: dqmdumpme.py:60
edm::Principal::end
const_iterator end() const
Definition: Principal.h:162
edm::BasicHandle::wrapper
WrapperBase const * wrapper() const noexcept(true)
Definition: BasicHandle.h:73
edm::EventAuxiliary::experimentType
ExperimentType experimentType() const
Definition: EventAuxiliary.h:75
edm::EventID::run
RunNumber_t run() const
Definition: EventID.h:38
edm::Principal::productRegistry
ProductRegistry const & productRegistry() const
Definition: Principal.h:145
edm::ThinnedAssociation::thinnedCollectionID
ProductID const & thinnedCollectionID() const
Definition: ThinnedAssociation.h:19
edm::get_underlying_safe
std::shared_ptr< T > & get_underlying_safe(propagate_const< std::shared_ptr< T >> &iP)
Definition: get_underlying_safe.h:40
SiStripPI::max
Definition: SiStripPayloadInspectorHelper.h:169
edm::EventPrincipal::branchListIndexToProcessIndex_
std::vector< ProcessIndex > branchListIndexToProcessIndex_
Definition: EventPrincipal.h:182
edm::EventID::event
EventNumber_t event() const
Definition: EventID.h:40
edm::EventPrincipal::commonFillEventPrincipal
void commonFillEventPrincipal(EventAuxiliary const &aux, ProcessHistory const *processHistory, DelayedReader *reader)
Definition: EventPrincipal.cc:116
edm::EventPrincipal::eventSelectionIDs
EventSelectionIDVector const & eventSelectionIDs() const
Definition: EventPrincipal.cc:415
edm::Principal::getExistingProduct
ProductResolverBase * getExistingProduct(BranchID const &branchID)
Definition: Principal.cc:474
edm::EventAuxiliary::time
Timestamp const & time() const
Definition: EventAuxiliary.h:66
edm::EventPrincipal::updateBranchListIndexes
void updateBranchListIndexes(BranchListIndexes &&)
Definition: EventPrincipal.cc:139
edm::EventPrincipal::Base
Principal Base
Definition: EventPrincipal.h:49
edm::Principal::clearPrincipal
void clearPrincipal()
Definition: Principal.cc:373
edm::EventPrincipal::eventSelectionIDs_
EventSelectionIDVector eventSelectionIDs_
Definition: EventPrincipal.h:175
edm::EventPrincipal::getByProductID
BasicHandle getByProductID(ProductID const &oid) const
Definition: EventPrincipal.cc:267
edm::EventPrincipal::getThinnedProducts
void getThinnedProducts(ProductID const &pid, std::vector< WrapperBase const * > &foundContainers, std::vector< unsigned int > &keys) const override
Definition: EventPrincipal.cc:345
edm::throwProductDeletedException
static void throwProductDeletedException(ProductID const &pid, edm::EventPrincipal::ConstProductResolverPtr const phb)
Definition: EventPrincipal.cc:257
edm::EventPrincipal::run
RunNumber_t run() const
Definition: EventPrincipal.h:110
eostools.move
def move(src, dest)
Definition: eostools.py:511
edm::EventAuxiliary::processHistoryID
ProcessHistoryID const & processHistoryID() const
Definition: EventAuxiliary.h:61
edm::EventPrincipal::branchIDToProductID
ProductID branchIDToProductID(BranchID const &bid) const
Definition: EventPrincipal.cc:229
Exception
Definition: hltDiff.cc:246
edm::EventPrincipal::streamID_
StreamID streamID_
Definition: EventPrincipal.h:184
data
char data[epos_bytes_allocation]
Definition: EPOS_Wrapper.h:79
AlignmentPI::index
index
Definition: AlignmentPayloadInspectorHelper.h:46
edm::productIDToBranchID
BranchID productIDToBranchID(ProductID const &pid, BranchIDLists const &lists, BranchListIndexes const &indexes)
Definition: ProductIDToBranchID.cc:11
edm::EventPrincipal::pidToBid
BranchID pidToBid(ProductID const &pid) const
Definition: EventPrincipal.cc:222
edm::EventAuxiliary::isRealData
bool isRealData() const
Definition: EventAuxiliary.h:74
edm::throwProductNotFoundException
static void throwProductNotFoundException(char const *where, errors::ErrorCodes error, BranchID const &bid)
Definition: Principal.cc:47
event
Definition: event.py:1
crabWrapper.key
key
Definition: crabWrapper.py:19
cond::serialization::equal
bool equal(const T &first, const T &second)
Definition: Equal.h:32
lumi
Definition: LumiSectionData.h:20
class-composition.parent
parent
Definition: class-composition.py:88
edm::EventAuxiliary::setProcessHistoryID
void setProcessHistoryID(ProcessHistoryID const &phid)
Definition: EventAuxiliary.h:62
edm::EventPrincipal::branchListIndexes_
BranchListIndexes branchListIndexes_
Definition: EventPrincipal.h:180
edm::EventPrincipal::wasBranchListIndexesChangedFromInput
bool wasBranchListIndexesChangedFromInput(BranchListIndexes const &) const
Definition: EventPrincipal.cc:129