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, ProcessHistoryRegistry const &processHistoryRegistry, DelayedReader *reader=0)
 
void fillEventPrincipal (EventAuxiliary const &aux, ProcessHistoryRegistry const &processHistoryRegistry, EventSelectionIDVector &&eventSelectionIDs, BranchListIndexes &&branchListIndexes)
 
void fillEventPrincipal (EventAuxiliary const &aux, ProcessHistoryRegistry const &processHistoryRegistry, EventSelectionIDVector &&eventSelectionIDs, BranchListIndexes &&branchListIndexes, ProductProvenanceRetriever const &provRetriever, DelayedReader *reader=0, bool deepCopyRetriever=true)
 
BasicHandle getByProductID (ProductID const &oid) const
 
WrapperBase const * getIt (ProductID const &pid) const override
 
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
 
LuminosityBlockPrincipal const & luminosityBlockPrincipal () const
 
LuminosityBlockPrincipalluminosityBlockPrincipal ()
 
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, ProductProvenance const *productProvenance) const
 
RunNumber_t run () const
 
RunPrincipal const & runPrincipal () const
 
void setLuminosityBlockPrincipal (std::shared_ptr< LuminosityBlockPrincipal > const &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)
 
bool atEndTransition () const
 
const_iterator begin () const
 
iterator begin ()
 
BranchType const & branchType () const
 
CacheIdentifier_t cacheIdentifier () const
 
void clearPrincipal ()
 
void deleteProduct (BranchID const &id) const
 
const_iterator end () const
 
iterator end ()
 
void fillPrincipal (ProcessHistoryID const &hist, ProcessHistoryRegistry 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
 
bool isComplete () const
 
std::vector< unsigned int > const & lookupProcessOrder () const
 
void prefetchAsync (WaitingTask *waitTask, ProductResolverIndex index, bool skipCurrentProcess, 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 ()
 
DelayedReaderreader () const
 
void recombine (Principal &other, std::vector< BranchID > const &bids)
 
void resetFailedFromThisProcess ()
 
void setAtEndTransition (bool iAtEnd)
 
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 int const invalidBunchXing = EventAuxiliary::invalidBunchXing
 
static int const invalidStoreNumber = EventAuxiliary::invalidStoreNumber
 

Private Member Functions

edm::ThinnedAssociation const * getThinnedAssociation (edm::BranchID const &branchID) const
 
BranchID pidToBid (ProductID const &pid) const
 
std::shared_ptr< ProductProvenanceRetriever const > provRetrieverPtr () const
 
std::shared_ptr< ProductProvenanceRetriever > & provRetrieverPtr ()
 
unsigned int transitionIndex_ () const override
 

Private Attributes

EventAuxiliary aux_
 
std::shared_ptr< BranchIDListHelper const > branchIDListHelper_
 
BranchListIndexes branchListIndexes_
 
std::map< BranchListIndex, ProcessIndexbranchListIndexToProcessIndex_
 
EventSelectionIDVector eventSelectionIDs_
 
edm::propagate_const< std::shared_ptr< 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

Definition at line 48 of file EventPrincipal.h.

Definition at line 49 of file EventPrincipal.h.

Definition at line 51 of file EventPrincipal.h.

Constructor & Destructor Documentation

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.

References thinnedAssociationsHelper_.

37  :
38  Base(reg, reg->productLookup(InEvent), pc, InEvent, historyAppender,isForPrimaryProcess),
39  aux_(),
41  provRetrieverPtr_(new ProductProvenanceRetriever(streamIndex)),
43  branchIDListHelper_(branchIDListHelper),
44  thinnedAssociationsHelper_(thinnedAssociationsHelper),
47  streamID_(streamIndex) {
49  }
std::shared_ptr< ThinnedAssociationsHelper const > thinnedAssociationsHelper_
EventSelectionIDVector eventSelectionIDs_
BranchListIndexes branchListIndexes_
std::map< BranchListIndex, ProcessIndex > branchListIndexToProcessIndex_
std::shared_ptr< BranchIDListHelper const > branchIDListHelper_
EventAuxiliary aux_
edm::propagate_const< std::shared_ptr< ProductProvenanceRetriever > > provRetrieverPtr_
edm::propagate_const< std::shared_ptr< LuminosityBlockPrincipal > > luminosityBlockPrincipal_
edm::EventPrincipal::~EventPrincipal ( )
inlineoverride

Member Function Documentation

EventAuxiliary const& edm::EventPrincipal::aux ( ) const
inline
ProductID edm::EventPrincipal::branchIDToProductID ( BranchID const &  bid) const

Definition at line 221 of file EventPrincipal.cc.

References branchIDListHelper_, branchListIndexToProcessIndex_, Exception, mps_fire::i, edm::BranchID::isValid(), and edm::errors::NotFound.

Referenced by fillEventPrincipal(), edm::Event::makeProductID(), and productProvenanceRetrieverPtr().

221  {
222  if(!bid.isValid()) {
223  throw Exception(errors::NotFound, "InvalidID")
224  << "branchIDToProductID: invalid BranchID supplied\n";
225  }
226  typedef BranchIDListHelper::BranchIDToIndexMap BIDToIndexMap;
227  typedef BIDToIndexMap::const_iterator Iter;
228  typedef std::pair<Iter, Iter> IndexRange;
229 
230  IndexRange range = branchIDListHelper_->branchIDToIndexMap().equal_range(bid);
231  for(Iter it = range.first; it != range.second; ++it) {
232  BranchListIndex blix = it->second.first;
233  std::map<BranchListIndex, ProcessIndex>::const_iterator i = branchListIndexToProcessIndex_.find(blix);
234  if(i != branchListIndexToProcessIndex_.end()) {
235  ProductIndex productIndex = it->second.second;
236  ProcessIndex processIndex = i->second;
237  return ProductID(processIndex+1, productIndex+1);
238  }
239  }
240  // cannot throw, because some products may legitimately not have product ID's (e.g. pile-up).
241  return ProductID();
242  }
unsigned short BranchListIndex
std::map< BranchListIndex, ProcessIndex > branchListIndexToProcessIndex_
std::shared_ptr< BranchIDListHelper const > branchIDListHelper_
std::multimap< BranchID, IndexPair > BranchIDToIndexMap
unsigned short ProcessIndex
Definition: ProductID.h:25
unsigned short ProductIndex
Definition: ProductID.h:26
BranchListIndexes const & edm::EventPrincipal::branchListIndexes ( ) const
int edm::EventPrincipal::bunchCrossing ( ) const
inline

Definition at line 115 of file EventPrincipal.h.

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

115  {
116  return aux().bunchCrossing();
117  }
int bunchCrossing() const
EventAuxiliary const & aux() const
void edm::EventPrincipal::clearEventPrincipal ( )

Definition at line 52 of file EventPrincipal.cc.

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

Referenced by edm::VectorInputSource::clearEventPrincipal(), edm::SubProcess::processAsync(), and ~EventPrincipal().

52  {
54  aux_ = EventAuxiliary();
55  luminosityBlockPrincipal_ = nullptr; // propagate_const<T> has no reset() function
56  provRetrieverPtr_->reset();
58  }
void clearPrincipal()
Definition: Principal.cc:314
std::map< BranchListIndex, ProcessIndex > branchListIndexToProcessIndex_
EventAuxiliary aux_
edm::propagate_const< std::shared_ptr< ProductProvenanceRetriever > > provRetrieverPtr_
edm::propagate_const< std::shared_ptr< LuminosityBlockPrincipal > > luminosityBlockPrincipal_
EventSelectionIDVector const & edm::EventPrincipal::eventSelectionIDs ( ) const
EventAuxiliary::ExperimentType edm::EventPrincipal::ExperimentType ( ) const
inline

Definition at line 111 of file EventPrincipal.h.

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

111  {
112  return aux().experimentType();
113  }
ExperimentType experimentType() const
EventAuxiliary const & aux() const
void edm::EventPrincipal::fillEventPrincipal ( EventAuxiliary const &  aux,
ProcessHistoryRegistry const &  processHistoryRegistry,
DelayedReader reader = 0 
)

Definition at line 97 of file EventPrincipal.cc.

References aux(), aux_, branchIDListHelper_, branchIDToProductID(), branchListIndexes_, branchListIndexToProcessIndex_, edm::EventAuxiliary::event(), Exception, edm::Principal::fillPrincipal(), edm::invalidEventNumber, edm::errors::LogicError, edm::Principal::processHistory(), edm::EventAuxiliary::processHistoryID(), edm::Principal::processHistoryID(), parseEventContent::prod, productProvenanceRetrieverPtr(), edm::Principal::reader(), and edm::EventAuxiliary::setProcessHistoryID().

Referenced by fillEventPrincipal(), edm::RawInputSource::makeEvent(), edm::SubProcess::processAsync(), edm::StreamerInputSource::read(), edm::RootFile::readCurrentEvent(), LHESource::readEvent_(), edm::ProducerSourceBase::readEvent_(), and ~EventPrincipal().

99  {
100  if(aux.event() == invalidEventNumber) {
102  << "EventPrincipal::fillEventPrincipal, Invalid event number provided in EventAuxiliary, It is illegal for the event number to be 0\n";
103  }
104 
105  fillPrincipal(aux.processHistoryID(), processHistoryRegistry, reader);
106  aux_ = aux;
108 
109  if(branchListIndexes_.empty() and branchIDListHelper_->hasProducedProducts()) {
110  // Add index into BranchIDListRegistry for products produced this process
111  // if it hasn't already been filled in by the other fillEventPrincipal or by an earlier call to this function
112  branchListIndexes_.push_back(branchIDListHelper_->producedBranchListIndex());
113  }
114 
115  // Fill in helper map for Branch to ProductID mapping
116  ProcessIndex pix = 0;
117  for(auto const& blindex : branchListIndexes_) {
118  branchListIndexToProcessIndex_.insert(std::make_pair(blindex, pix));
119  ++pix;
120  }
121 
122  // Fill in the product ID's in the product holders.
123  for(auto& prod : *this) {
124  if (prod->singleProduct()) {
125  // If an alias is in the same process as the original then isAlias will be true.
126  // Under that condition, we want the ProductID to be the same as the original.
127  // If not, then we've internally changed the original BranchID to the alias BranchID
128  // in the ProductID lookup so we need the alias BranchID.
129  auto const & bd =prod->branchDescription();
130  prod->setProvenance(productProvenanceRetrieverPtr(),
131  processHistory(),
132  branchIDToProductID(bd.isAlias()?bd.originalBranchID(): bd.branchID()));
133  }
134  }
135  }
BranchListIndexes branchListIndexes_
std::map< BranchListIndex, ProcessIndex > branchListIndexToProcessIndex_
std::shared_ptr< BranchIDListHelper const > branchIDListHelper_
EventAuxiliary aux_
ProcessHistory const & processHistory() const
Definition: Principal.h:141
ProductID branchIDToProductID(BranchID const &bid) const
EventNumber_t const invalidEventNumber
ProcessHistoryID const & processHistoryID() const
Definition: Principal.h:145
ProductProvenanceRetriever const * productProvenanceRetrieverPtr() const
unsigned short ProcessIndex
Definition: ProductID.h:25
DelayedReader * reader() const
Definition: Principal.h:184
void setProcessHistoryID(ProcessHistoryID const &phid)
ProcessHistoryID const & processHistoryID() const
void fillPrincipal(ProcessHistoryID const &hist, ProcessHistoryRegistry const &phr, DelayedReader *reader)
Definition: Principal.cc:346
EventAuxiliary const & aux() const
EventNumber_t event() const
void edm::EventPrincipal::fillEventPrincipal ( EventAuxiliary const &  aux,
ProcessHistoryRegistry const &  processHistoryRegistry,
EventSelectionIDVector &&  eventSelectionIDs,
BranchListIndexes &&  branchListIndexes 
)

Definition at line 83 of file EventPrincipal.cc.

References branchIDListHelper_, branchListIndexes(), branchListIndexes_, eventSelectionIDs(), eventSelectionIDs_, and fillEventPrincipal().

86  {
89  if(branchIDListHelper_->hasProducedProducts()) {
90  // Add index into BranchIDListRegistry for products produced this process
91  branchListIndexes_.push_back(branchIDListHelper_->producedBranchListIndex());
92  }
93  fillEventPrincipal(aux,processHistoryRegistry,nullptr);
94  }
EventSelectionIDVector const & eventSelectionIDs() const
EventSelectionIDVector eventSelectionIDs_
BranchListIndexes branchListIndexes_
std::shared_ptr< BranchIDListHelper const > branchIDListHelper_
BranchListIndexes const & branchListIndexes() const
void fillEventPrincipal(EventAuxiliary const &aux, ProcessHistoryRegistry const &processHistoryRegistry, DelayedReader *reader=0)
EventAuxiliary const & aux() const
void edm::EventPrincipal::fillEventPrincipal ( EventAuxiliary const &  aux,
ProcessHistoryRegistry const &  processHistoryRegistry,
EventSelectionIDVector &&  eventSelectionIDs,
BranchListIndexes &&  branchListIndexes,
ProductProvenanceRetriever const &  provRetriever,
DelayedReader reader = 0,
bool  deepCopyRetriever = true 
)

Definition at line 61 of file EventPrincipal.cc.

References branchIDListHelper_, branchListIndexes(), branchListIndexes_, eventSelectionIDs(), eventSelectionIDs_, fillEventPrincipal(), and provRetrieverPtr_.

67  {
69  if (deepCopyRetriever) {
70  provRetrieverPtr_->deepCopy(provRetriever);
71  } else {
72  provRetrieverPtr_->mergeParentProcessRetriever(provRetriever);
73  }
75  if(branchIDListHelper_->hasProducedProducts()) {
76  // Add index into BranchIDListRegistry for products produced this process
77  branchListIndexes_.push_back(branchIDListHelper_->producedBranchListIndex());
78  }
79  fillEventPrincipal(aux,processHistoryRegistry,reader);
80  }
EventSelectionIDVector const & eventSelectionIDs() const
EventSelectionIDVector eventSelectionIDs_
BranchListIndexes branchListIndexes_
std::shared_ptr< BranchIDListHelper const > branchIDListHelper_
edm::propagate_const< std::shared_ptr< ProductProvenanceRetriever > > provRetrieverPtr_
BranchListIndexes const & branchListIndexes() const
DelayedReader * reader() const
Definition: Principal.h:184
void fillEventPrincipal(EventAuxiliary const &aux, ProcessHistoryRegistry const &processHistoryRegistry, DelayedReader *reader=0)
EventAuxiliary const & aux() const
BasicHandle edm::EventPrincipal::getByProductID ( ProductID const &  oid) const

Definition at line 260 of file EventPrincipal.cc.

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

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

260  {
261  BranchID bid = pidToBid(pid);
263  if(phb == nullptr) {
264  return BasicHandle(makeHandleExceptionFactory([pid]()->std::shared_ptr<cms::Exception> {
265  std::shared_ptr<cms::Exception> whyFailed(std::make_shared<Exception>(errors::ProductNotFound, "InvalidID"));
266  *whyFailed
267  << "get by product ID: no product with given id: " << pid << "\n";
268  return whyFailed;
269  }));
270  }
271 
272  // Was this already deleted?
273  if(phb->productWasDeleted()) {
275  }
276  // Check for case where we tried on demand production and
277  // it failed to produce the object
278  if(phb->unscheduledWasNotRun()) {
279  return BasicHandle(makeHandleExceptionFactory([pid]()->std::shared_ptr<cms::Exception> {
280  std::shared_ptr<cms::Exception> whyFailed(std::make_shared<Exception>(errors::ProductNotFound, "InvalidID"));
281  *whyFailed
282  << "get by ProductID: could not get product with id: " << pid << "\n"
283  << "Unscheduled execution not allowed to get via ProductID.\n";
284  return whyFailed;
285  }));
286  }
287  auto resolution = phb->resolveProduct(*this,false,nullptr,nullptr);
288 
289  auto data = resolution.data();
290  if(data) {
291  return BasicHandle(data->wrapper(), &(data->provenance()));
292  }
293  return BasicHandle(nullptr,nullptr);
294  }
BranchID pidToBid(ProductID const &pid) const
static void throwProductDeletedException(ProductID const &pid, edm::EventPrincipal::ConstProductResolverPtr const phb)
std::shared_ptr< HandleExceptionFactory > makeHandleExceptionFactory(T &&iFunctor)
Base::ConstProductResolverPtr ConstProductResolverPtr
char data[epos_bytes_allocation]
Definition: EPOS_Wrapper.h:82
ConstProductResolverPtr getProductResolver(BranchID const &oid) const
Definition: Principal.cc:489
WrapperBase const * edm::EventPrincipal::getIt ( ProductID const &  pid) const
overridevirtual

Implements edm::EDProductGetter.

Definition at line 297 of file EventPrincipal.cc.

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

Referenced by edm::StreamerInputSource::EventPrincipalHolder::getIt(), and productProvenanceRetrieverPtr().

297  {
298  return getByProductID(pid).wrapper();
299  }
BasicHandle getByProductID(ProductID const &oid) const
WrapperBase const * wrapper() const
Definition: BasicHandle.h:90
Provenance edm::EventPrincipal::getProvenance ( ProductID const &  pid,
ModuleCallingContext const *  mcc 
) const

Definition at line 408 of file EventPrincipal.cc.

References pidToBid().

Referenced by edm::Event::getProvenance(), and productProvenanceRetrieverPtr().

408  {
409  BranchID bid = pidToBid(pid);
410  return getProvenance(bid, mcc);
411  }
BranchID pidToBid(ProductID const &pid) const
Provenance getProvenance(ProductID const &pid, ModuleCallingContext const *mcc) const
edm::ThinnedAssociation const * edm::EventPrincipal::getThinnedAssociation ( edm::BranchID const &  branchID) const
private

Definition at line 424 of file EventPrincipal.cc.

References data, edm::WrapperBase::dynamicTypeInfo(), Exception, edm::Principal::getProductResolver(), edm::errors::LogicError, edm::Wrapper< T >::product(), edm::ProductData::wrapper(), and wrapper.

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

424  {
425 
426  ConstProductResolverPtr const phb = getProductResolver(branchID);
427 
428  if(phb == nullptr) {
430  << "EventPrincipal::getThinnedAssociation, ThinnedAssociation ProductResolver cannot be found\n"
431  << "This should never happen. Contact a Framework developer";
432  }
433  ProductData const* productData = (phb->resolveProduct(*this,false,nullptr,nullptr)).data();
434  if (productData == nullptr) {
435  return nullptr;
436  }
437  WrapperBase const* product = productData->wrapper();
438  if(!(typeid(edm::ThinnedAssociation) == product->dynamicTypeInfo())) {
440  << "EventPrincipal::getThinnedProduct, product has wrong type, not a ThinnedAssociation.\n";
441  }
442  Wrapper<ThinnedAssociation> const* wrapper = static_cast<Wrapper<ThinnedAssociation> const*>(product);
443  return wrapper->product();
444  }
Base::ConstProductResolverPtr ConstProductResolverPtr
char data[epos_bytes_allocation]
Definition: EPOS_Wrapper.h:82
ConstProductResolverPtr getProductResolver(BranchID const &oid) const
Definition: Principal.cc:489
static HepMC::HEPEVT_Wrapper wrapper
WrapperBase const * edm::EventPrincipal::getThinnedProduct ( ProductID const &  pid,
unsigned int &  key 
) const
overridevirtual

Implements edm::EDProductGetter.

Definition at line 302 of file EventPrincipal.cc.

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

Referenced by edm::StreamerInputSource::EventPrincipalHolder::getThinnedProduct(), and productProvenanceRetrieverPtr().

302  {
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; ++associatedBranches) {
310 
311  ThinnedAssociation const* thinnedAssociation =
312  getThinnedAssociation(associatedBranches->association());
313  if(thinnedAssociation == nullptr) 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  }
std::shared_ptr< ThinnedAssociationsHelper const > thinnedAssociationsHelper_
WrapperBase const * getThinnedProduct(ProductID const &pid, unsigned int &key) const override
BasicHandle getByProductID(ProductID const &oid) const
BranchID pidToBid(ProductID const &pid) const
edm::ThinnedAssociation const * getThinnedAssociation(edm::BranchID const &branchID) const
ProductID const & thinnedCollectionID() const
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 346 of file EventPrincipal.cc.

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

Referenced by edm::StreamerInputSource::EventPrincipalHolder::getThinnedProducts(), and productProvenanceRetrieverPtr().

348  {
349 
350  BranchID parent = pidToBid(pid);
351 
352  // Loop over thinned containers which were made by selecting elements from the parent container
353  for(auto associatedBranches = thinnedAssociationsHelper_->parentBegin(parent),
354  iEnd = thinnedAssociationsHelper_->parentEnd(parent);
355  associatedBranches != iEnd; ++associatedBranches) {
356 
357  ThinnedAssociation const* thinnedAssociation =
358  getThinnedAssociation(associatedBranches->association());
359  if(thinnedAssociation == nullptr) continue;
360 
361  if(associatedBranches->parent() != pidToBid(thinnedAssociation->parentCollectionID())) {
362  continue;
363  }
364 
365  unsigned nKeys = keys.size();
366  unsigned int doNotLookForThisIndex = std::numeric_limits<unsigned int>::max();
367  std::vector<unsigned int> thinnedIndexes(nKeys, doNotLookForThisIndex);
368  bool hasAny = false;
369  for(unsigned k = 0; k < nKeys; ++k) {
370  // Already found this one
371  if(foundContainers[k] != nullptr) continue;
372  // Already know this one is not in this thinned container
373  if(keys[k] == doNotLookForThisIndex) 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) continue;
394  if(thinnedIndexes[k] == doNotLookForThisIndex) continue;
395  keys[k] = thinnedIndexes[k];
396  }
397  } else {
398  for(unsigned k = 0; k < nKeys; ++k) {
399  if(thinnedIndexes[k] == doNotLookForThisIndex) continue;
400  keys[k] = thinnedIndexes[k];
401  foundContainers[k] = bhThinned.wrapper();
402  }
403  }
404  }
405  }
std::shared_ptr< ThinnedAssociationsHelper const > thinnedAssociationsHelper_
BasicHandle getByProductID(ProductID const &oid) const
BranchID pidToBid(ProductID const &pid) const
edm::ThinnedAssociation const * getThinnedAssociation(edm::BranchID const &branchID) const
void getThinnedProducts(ProductID const &pid, std::vector< WrapperBase const * > &foundContainers, std::vector< unsigned int > &keys) const override
int k[5][pyjets_maxn]
EventID const& edm::EventPrincipal::id ( void  ) const
inline

Definition at line 99 of file EventPrincipal.h.

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

Referenced by edm::DataMixingEcalDigiWorkerProd::addEcalPileups(), edm::DataMixingEMWorker::addEMPileups(), edm::DataMixingEMDigiWorker::addEMPileups(), edm::DataMixingGeneralTrackWorker::addGeneralTrackPileups(), edm::DataMixingHcalWorker::addHcalPileups(), edm::DataMixingHcalDigiWorker::addHcalPileups(), edm::DataMixingHcalDigiWorkerProd::addHcalPileups(), edm::DataMixingMuonWorker::addMuonPileups(), sistrip::SpyEventMatcher::addNextEventToMap(), edm::DataMixingPileupCopy::addPileupInfo(), edm::DataMixingSiPixelWorker::addSiPixelPileups(), edm::DataMixingSiPixelMCDigiWorker::addSiPixelPileups(), edm::DataMixingSiStripWorker::addSiStripPileups(), edm::DataMixingSiStripRawWorker::addSiStripPileups(), edm::DataMixingSiStripMCDigiWorker::addSiStripPileups(), edm::DataMixingTrackingParticleWorker::addTrackingParticlePileups(), edm::EDLooperBase::doDuringLoop(), edm::StreamSchedule::finishedPaths(), edm::SecSourceAnalyzer::getBranches(), luminosityBlock(), edm::RecordEventID< T >::operator()(), edm::MixingModule::pileAllWorkers(), edm::DataMixingModule::pileWorker(), edm::InputSource::readEvent(), edm::PoolSource::readEvent_(), edm::StreamSchedule::reportSkipped(), run(), edm::OccurrenceTraits< EventPrincipal, BranchActionStreamBegin >::setStreamContext(), and edm::Path::workerFinished().

99  {
100  return aux().id();
101  }
EventID const & id() const
EventAuxiliary const & aux() const
bool edm::EventPrincipal::isReal ( ) const
inline

Definition at line 107 of file EventPrincipal.h.

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

107  {
108  return aux().isRealData();
109  }
bool isRealData() const
EventAuxiliary const & aux() const
LuminosityBlockNumber_t edm::EventPrincipal::luminosityBlock ( ) const
inline

Definition at line 129 of file EventPrincipal.h.

References id(), and edm::EventID::luminosityBlock().

Referenced by Types.EventID::cppID(), Types.LuminosityBlockID::cppID(), and edm::PoolSource::readEvent_().

129  {
130  return id().luminosityBlock();
131  }
EventID const & id() const
LuminosityBlockNumber_t luminosityBlock() const
Definition: EventID.h:40
LuminosityBlockPrincipal const& edm::EventPrincipal::luminosityBlockPrincipal ( ) const
inline

Definition at line 83 of file EventPrincipal.h.

References luminosityBlockPrincipal_.

Referenced by edm::EDLooperBase::doDuringLoop(), and runPrincipal().

83  {
85  }
edm::propagate_const< std::shared_ptr< LuminosityBlockPrincipal > > luminosityBlockPrincipal_
LuminosityBlockPrincipal& edm::EventPrincipal::luminosityBlockPrincipal ( )
inline

Definition at line 87 of file EventPrincipal.h.

References luminosityBlockPrincipal_.

87  {
89  }
edm::propagate_const< std::shared_ptr< LuminosityBlockPrincipal > > luminosityBlockPrincipal_
bool edm::EventPrincipal::luminosityBlockPrincipalPtrValid ( ) const
inline

Definition at line 91 of file EventPrincipal.h.

References luminosityBlockPrincipal_, run(), setLuminosityBlockPrincipal(), and setRunAndLumiNumber().

91  {
92  return (luminosityBlockPrincipal_) ? true : false;
93  }
edm::propagate_const< std::shared_ptr< LuminosityBlockPrincipal > > luminosityBlockPrincipal_
void edm::EventPrincipal::mergeProvenanceRetrievers ( EventPrincipal other)
inline

Definition at line 173 of file EventPrincipal.h.

References edm::Principal::getProvenance(), getThinnedAssociation(), pidToBid(), provRetrieverPtr(), provRetrieverPtr_, and transitionIndex_().

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

173  {
174  provRetrieverPtr_->mergeProvenanceRetrievers(other.provRetrieverPtr());
175  }
edm::propagate_const< std::shared_ptr< ProductProvenanceRetriever > > provRetrieverPtr_
BranchID edm::EventPrincipal::pidToBid ( ProductID const &  pid) const
private

Definition at line 212 of file EventPrincipal.cc.

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

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

212  {
213  if(!pid.isValid()) {
214  throw Exception(errors::ProductNotFound, "InvalidID")
215  << "get by product ID: invalid ProductID supplied\n";
216  }
218  }
BranchListIndexes branchListIndexes_
std::shared_ptr< BranchIDListHelper const > branchIDListHelper_
BranchID productIDToBranchID(ProductID const &pid, BranchIDLists const &lists, BranchListIndexes const &indexes)
ProductProvenanceRetriever const* edm::EventPrincipal::productProvenanceRetrieverPtr ( ) const
inline
std::shared_ptr<ProductProvenanceRetriever const> edm::EventPrincipal::provRetrieverPtr ( ) const
inlineprivate

Definition at line 187 of file EventPrincipal.h.

References edm::get_underlying_safe(), and provRetrieverPtr_.

Referenced by mergeProvenanceRetrievers().

edm::propagate_const< std::shared_ptr< ProductProvenanceRetriever > > provRetrieverPtr_
std::shared_ptr< T > & get_underlying_safe(propagate_const< std::shared_ptr< T >> &iP)
std::shared_ptr<ProductProvenanceRetriever>& edm::EventPrincipal::provRetrieverPtr ( )
inlineprivate

Definition at line 188 of file EventPrincipal.h.

References edm::get_underlying_safe(), and provRetrieverPtr_.

edm::propagate_const< std::shared_ptr< ProductProvenanceRetriever > > provRetrieverPtr_
std::shared_ptr< T > & get_underlying_safe(propagate_const< std::shared_ptr< T >> &iP)
void edm::EventPrincipal::put ( BranchDescription const &  bd,
std::unique_ptr< WrapperBase edp,
ProductProvenance const &  productProvenance 
) const

Definition at line 156 of file EventPrincipal.cc.

References edm::BranchDescription::branchID(), Exception, edm::Principal::getExistingProduct(), edm::errors::InsertFailure, edm::ProductProvenanceRetriever::insertIntoSet(), eostools::move(), and productProvenanceRetrieverPtr().

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

159  {
160 
161  // assert commented out for DaqSource. When DaqSource no longer uses put(), the assert can be restored.
162  //assert(produced());
163  if(edp.get() == nullptr) {
164  throw Exception(errors::InsertFailure, "Null Pointer")
165  << "put: Cannot put because ptr to product is null."
166  << "\n";
167  }
168  productProvenanceRetrieverPtr()->insertIntoSet(productProvenance);
169  auto phb = getExistingProduct(bd.branchID());
170  assert(phb);
171  // ProductResolver assumes ownership
172  phb->putProduct(std::move(edp));
173  }
ProductResolverBase * getExistingProduct(BranchID const &branchID)
Definition: Principal.cc:429
ProductProvenanceRetriever const * productProvenanceRetrieverPtr() const
void insertIntoSet(ProductProvenance provenanceProduct) const
def move(src, dest)
Definition: eostools.py:510
void edm::EventPrincipal::put ( ProductResolverIndex  index,
std::unique_ptr< WrapperBase edp,
ParentageID  productProvenance 
) const

Definition at line 176 of file EventPrincipal.cc.

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

179  {
180  if(edp.get() == nullptr) {
181  throw Exception(errors::InsertFailure, "Null Pointer")
182  << "put: Cannot put because ptr to product is null."
183  << "\n";
184  }
185  auto phb = getProductResolverByIndex(index);
186 
187  productProvenanceRetrieverPtr()->insertIntoSet(ProductProvenance(phb->branchDescription().branchID(), std::move(parentage)));
188 
189  assert(phb);
190  // ProductResolver assumes ownership
191  phb->putProduct(std::move(edp));
192 
193  }
ProductProvenanceRetriever const * productProvenanceRetrieverPtr() const
void insertIntoSet(ProductProvenance provenanceProduct) const
ConstProductResolverPtr getProductResolverByIndex(ProductResolverIndex const &oid) const
Definition: Principal.cc:498
def move(src, dest)
Definition: eostools.py:510
void edm::EventPrincipal::putOnRead ( BranchDescription const &  bd,
std::unique_ptr< WrapperBase edp,
ProductProvenance const *  productProvenance 
) const

Definition at line 196 of file EventPrincipal.cc.

References edm::BranchDescription::branchID(), edm::Principal::getExistingProduct(), edm::ProductProvenanceRetriever::insertIntoSet(), eostools::move(), edm::BranchDescription::produced(), and productProvenanceRetrieverPtr().

Referenced by productProvenanceRetrieverPtr(), and edm::StreamerInputSource::read().

199  {
200 
201  assert(!bd.produced());
202  if (productProvenance) {
203  productProvenanceRetrieverPtr()->insertIntoSet(*productProvenance);
204  }
205  auto phb = getExistingProduct(bd.branchID());
206  assert(phb);
207  // ProductResolver assumes ownership
208  phb->putProduct(std::move(edp));
209  }
ProductResolverBase * getExistingProduct(BranchID const &branchID)
Definition: Principal.cc:429
ProductProvenanceRetriever const * productProvenanceRetrieverPtr() const
void insertIntoSet(ProductProvenance provenanceProduct) const
def move(src, dest)
Definition: eostools.py:510
RunNumber_t edm::EventPrincipal::run ( void  ) const
inline

Definition at line 133 of file EventPrincipal.h.

References id(), edm::EventID::run(), and runPrincipal().

Referenced by Types.EventID::cppID(), Types.LuminosityBlockID::cppID(), luminosityBlockPrincipalPtrValid(), and edm::PoolSource::readEvent_().

133  {
134  return id().run();
135  }
RunNumber_t run() const
Definition: EventID.h:39
EventID const & id() const
RunPrincipal const & edm::EventPrincipal::runPrincipal ( ) const

Definition at line 151 of file EventPrincipal.cc.

References luminosityBlockPrincipal(), and edm::LuminosityBlockPrincipal::runPrincipal().

Referenced by run().

151  {
153  }
RunPrincipal const & runPrincipal() const
LuminosityBlockPrincipal const & luminosityBlockPrincipal() const
void edm::EventPrincipal::setLuminosityBlockPrincipal ( std::shared_ptr< LuminosityBlockPrincipal > const &  lbp)

Definition at line 138 of file EventPrincipal.cc.

References luminosityBlockPrincipal_.

Referenced by luminosityBlockPrincipalPtrValid(), and edm::SubProcess::processAsync().

138  {
140  }
edm::propagate_const< std::shared_ptr< LuminosityBlockPrincipal > > luminosityBlockPrincipal_
void edm::EventPrincipal::setRunAndLumiNumber ( RunNumber_t  run,
LuminosityBlockNumber_t  lumi 
)

Definition at line 143 of file EventPrincipal.cc.

References aux_, edm::EventID::event(), edm::EventAuxiliary::id(), and luminosityBlockPrincipal_.

Referenced by luminosityBlockPrincipalPtrValid().

143  {
144  assert(run == luminosityBlockPrincipal_->run());
145  assert(lumi == luminosityBlockPrincipal_->luminosityBlock());
146  EventNumber_t event = aux_.id().event();
147  aux_.id() = EventID(run, lumi, event);
148  }
EventNumber_t event() const
Definition: EventID.h:41
RunNumber_t run() const
unsigned long long EventNumber_t
EventAuxiliary aux_
edm::propagate_const< std::shared_ptr< LuminosityBlockPrincipal > > luminosityBlockPrincipal_
EventID const & id() const
Definition: event.py:1
int edm::EventPrincipal::storeNumber ( ) const
inline

Definition at line 119 of file EventPrincipal.h.

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

119  {
120  return aux().storeNumber();
121  }
int storeNumber() const
EventAuxiliary const & aux() const
StreamID edm::EventPrincipal::streamID ( ) const
inline
Timestamp const& edm::EventPrincipal::time ( ) const
inline

Definition at line 103 of file EventPrincipal.h.

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

Referenced by edm::EDLooperBase::doDuringLoop(), edm::InputSource::readEvent(), and edm::OccurrenceTraits< EventPrincipal, BranchActionStreamBegin >::setStreamContext().

103  {
104  return aux().time();
105  }
Timestamp const & time() const
EventAuxiliary const & aux() const
unsigned int edm::EventPrincipal::transitionIndex_ ( ) const
overrideprivatevirtual

Implements edm::EDProductGetter.

Definition at line 245 of file EventPrincipal.cc.

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

Referenced by mergeProvenanceRetrievers().

245  {
246  return streamID_.value();
247  }
unsigned int value() const
Definition: StreamID.h:46

Member Data Documentation

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

Definition at line 201 of file EventPrincipal.h.

Referenced by branchIDToProductID(), fillEventPrincipal(), and pidToBid().

BranchListIndexes edm::EventPrincipal::branchListIndexes_
private

Definition at line 204 of file EventPrincipal.h.

Referenced by branchListIndexes(), fillEventPrincipal(), and pidToBid().

std::map<BranchListIndex, ProcessIndex> edm::EventPrincipal::branchListIndexToProcessIndex_
private

Definition at line 206 of file EventPrincipal.h.

Referenced by branchIDToProductID(), clearEventPrincipal(), and fillEventPrincipal().

EventSelectionIDVector edm::EventPrincipal::eventSelectionIDs_
private

Definition at line 199 of file EventPrincipal.h.

Referenced by eventSelectionIDs(), and fillEventPrincipal().

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

Definition at line 52 of file EventPrincipal.h.

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

Definition at line 53 of file EventPrincipal.h.

edm::propagate_const<std::shared_ptr<LuminosityBlockPrincipal> > edm::EventPrincipal::luminosityBlockPrincipal_
private
edm::propagate_const<std::shared_ptr<ProductProvenanceRetriever> > edm::EventPrincipal::provRetrieverPtr_
private
StreamID edm::EventPrincipal::streamID_
private

Definition at line 208 of file EventPrincipal.h.

Referenced by streamID(), and transitionIndex_().

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

Definition at line 202 of file EventPrincipal.h.

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