CMS 3D CMS Logo

EventPrincipal.cc
Go to the documentation of this file.
2 
26 
27 #include <algorithm>
28 #include <cassert>
29 #include <limits>
30 #include <memory>
31 
32 namespace edm {
33  EventPrincipal::EventPrincipal(std::shared_ptr<ProductRegistry const> reg,
34  std::shared_ptr<BranchIDListHelper const> branchIDListHelper,
35  std::shared_ptr<ThinnedAssociationsHelper const> thinnedAssociationsHelper,
36  ProcessConfiguration const& pc,
37  HistoryAppender* historyAppender,
38  unsigned int streamIndex,
39  bool isForPrimaryProcess,
40  ProcessBlockHelperBase const* processBlockHelper)
41  : Base(reg, reg->productLookup(InEvent), pc, InEvent, historyAppender, isForPrimaryProcess),
42  aux_(),
43  luminosityBlockPrincipal_(nullptr),
44  provRetrieverPtr_(new ProductProvenanceRetriever(streamIndex, *reg)),
45  eventSelectionIDs_(),
46  branchIDListHelper_(branchIDListHelper),
47  processBlockHelper_(processBlockHelper),
48  thinnedAssociationsHelper_(thinnedAssociationsHelper),
49  branchListIndexes_(),
50  branchListIndexToProcessIndex_(),
51  streamID_(streamIndex) {
53 
54  for (auto& prod : *this) {
55  if (prod->singleProduct()) {
56  prod->setProductProvenanceRetriever(productProvenanceRetrieverPtr());
57  }
58  }
59  }
60 
63  aux_ = EventAuxiliary();
64  //do not clear luminosityBlockPrincipal_ since
65  // it is only connected at beginLumi transition
66  provRetrieverPtr_->reset();
67  }
68 
70  ProcessHistory const* processHistory,
71  EventSelectionIDVector eventSelectionIDs,
72  BranchListIndexes branchListIndexes,
73  EventToProcessBlockIndexes const& eventToProcessBlockIndexes,
74  ProductProvenanceRetriever const& provRetriever,
76  bool deepCopyRetriever) {
78  if (deepCopyRetriever) {
79  provRetrieverPtr_->deepCopy(provRetriever);
80  } else {
81  provRetrieverPtr_->mergeParentProcessRetriever(provRetriever);
82  }
84  if (branchIDListHelper_->hasProducedProducts()) {
85  // Add index into BranchIDListRegistry for products produced this process
86  branchListIndexes.push_back(branchIDListHelper_->producedBranchListIndex());
87  }
89  }
92  }
93 
95  ProcessHistory const* processHistory,
96  EventSelectionIDVector eventSelectionIDs,
97  BranchListIndexes branchListIndexes) {
99 
101  if (branchIDListHelper_->hasProducedProducts()) {
102  // Add index into BranchIDListRegistry for products produced this process
103  branchListIndexes.push_back(branchIDListHelper_->producedBranchListIndex());
104  }
106  }
108  }
109 
111  ProcessHistory const* processHistory,
113  if (branchListIndexes_.empty() and branchIDListHelper_->hasProducedProducts()) {
114  // Add index into BranchIDListRegistry for products produced this process
115  // if it hasn't already been filled in by the other fillEventPrincipal or by an earlier call to this function
116  BranchListIndexes indexes;
117  indexes.push_back(branchIDListHelper_->producedBranchListIndex());
119  }
121  }
122 
124  ProcessHistory const* processHistory,
126  if (aux.event() == invalidEventNumber) {
127  throw Exception(errors::LogicError) << "EventPrincipal::fillEventPrincipal, Invalid event number provided in "
128  "EventAuxiliary, It is illegal for the event number to be 0\n";
129  }
130 
132  aux_ = aux;
134  }
135 
137  //fromInput does not contain entries for what is being produced in this job.
138  auto end = branchListIndexes_.end();
139  if (end != branchListIndexes_.begin() and branchIDListHelper_->hasProducedProducts()) {
140  --end;
141  }
142 
143  return not std::equal(fromInput.begin(), fromInput.end(), branchListIndexes_.begin(), end);
144  }
145 
149  // Fill in helper map for Branch to ProductID mapping
150  if (not branchListIndexes_.empty()) {
151  ProcessIndex pix = 0;
152  branchListIndexToProcessIndex_.resize(1 + *std::max_element(branchListIndexes_.begin(), branchListIndexes_.end()),
154  for (auto const& blindex : branchListIndexes_) {
155  branchListIndexToProcessIndex_[blindex] = pix;
156  ++pix;
157  }
158  }
159 
160  // Fill in the product ID's in the product holders.
161  for (auto& prod : *this) {
162  if (prod->singleProduct()) {
163  // If an alias is in the same process as the original then isAlias will be true.
164  // Under that condition, we want the ProductID to be the same as the original.
165  // If not, then we've internally changed the original BranchID to the alias BranchID
166  // in the ProductID lookup so we need the alias BranchID.
167 
168  auto const& bd = prod->branchDescription();
169  prod->setProductID(branchIDToProductID(bd.isAlias() ? bd.originalBranchID() : bd.branchID()));
170  }
171  }
172  }
173 
175 
178  assert(lumi == luminosityBlockPrincipal_->luminosityBlock());
179  EventNumber_t event = aux_.id().event();
180  aux_.id() = EventID(run, lumi, event);
181  }
182 
184 
186  std::unique_ptr<WrapperBase> edp,
187  ProductProvenance const& productProvenance) const {
188  // assert commented out for DaqSource. When DaqSource no longer uses put(), the assert can be restored.
189  //assert(produced());
190  if (edp.get() == nullptr) {
191  throw Exception(errors::InsertFailure, "Null Pointer") << "put: Cannot put because ptr to product is null."
192  << "\n";
193  }
194  productProvenanceRetrieverPtr()->insertIntoSet(productProvenance);
195  auto phb = getExistingProduct(bd.branchID());
196  assert(phb);
197  // ProductResolver assumes ownership
198  dynamic_cast<ProductPutterBase const*>(phb)->putProduct(std::move(edp));
199  }
200 
201  void EventPrincipal::put(ProductResolverIndex index, std::unique_ptr<WrapperBase> edp, ParentageID parentage) const {
202  if (edp.get() == nullptr) {
203  throw Exception(errors::InsertFailure, "Null Pointer") << "put: Cannot put because ptr to product is null."
204  << "\n";
205  }
206  auto phb = getProductResolverByIndex(index);
207 
209  ProductProvenance(phb->branchDescription().branchID(), std::move(parentage)));
210 
211  assert(phb);
212  // ProductResolver assumes ownership
213  dynamic_cast<ProductPutterBase const*>(phb)->putProduct(std::move(edp));
214  }
215 
217  std::unique_ptr<WrapperBase> edp,
218  std::optional<ProductProvenance> productProvenance) const {
219  assert(!bd.produced());
220  if (productProvenance) {
221  productProvenanceRetrieverPtr()->insertIntoSet(std::move(*productProvenance));
222  }
223  auto phb = getExistingProduct(bd.branchID());
224  assert(phb);
225  // ProductResolver assumes ownership
226  dynamic_cast<ProductPutterBase const*>(phb)->putProduct(std::move(edp));
227  }
228 
230  if (!pid.isValid()) {
231  throw Exception(errors::ProductNotFound, "InvalidID") << "get by product ID: invalid ProductID supplied\n";
232  }
233  return productIDToBranchID(pid, branchIDListHelper_->branchIDLists(), branchListIndexes_);
234  }
235 
237  if (!bid.isValid()) {
238  throw Exception(errors::NotFound, "InvalidID") << "branchIDToProductID: invalid BranchID supplied\n";
239  }
240  typedef BranchIDListHelper::BranchIDToIndexMap BIDToIndexMap;
241  typedef BIDToIndexMap::const_iterator Iter;
242  typedef std::pair<Iter, Iter> IndexRange;
243 
244  IndexRange range = branchIDListHelper_->branchIDToIndexMap().equal_range(bid);
245  for (Iter it = range.first; it != range.second; ++it) {
246  BranchListIndex blix = it->second.first;
247  if (blix < branchListIndexToProcessIndex_.size()) {
248  auto v = branchListIndexToProcessIndex_[blix];
250  ProductIndex productIndex = it->second.second;
251  ProcessIndex processIndex = v;
252  return ProductID(processIndex + 1, productIndex + 1);
253  }
254  }
255  }
256  // cannot throw, because some products may legitimately not have product ID's (e.g. pile-up).
257  return ProductID();
258  }
259 
262  }
263 
264  unsigned int EventPrincipal::transitionIndex_() const { return streamID_.value(); }
265 
267 
268  static void throwProductDeletedException(ProductID const& pid,
271  exception << "get by product ID: The product with given id: " << pid << "\ntype: " << phb->productType()
272  << "\nproduct instance name: " << phb->productInstanceName() << "\nprocess name: " << phb->processName()
273  << "\nwas already deleted. This is a configuration error. Please change the configuration of the module "
274  "which caused this exception to state it reads this data.";
275  throw exception;
276  }
277 
279  BranchID bid = pidToBid(pid);
281  if (phb == nullptr) {
282  return BasicHandle(makeHandleExceptionFactory([pid]() -> std::shared_ptr<cms::Exception> {
283  std::shared_ptr<cms::Exception> whyFailed(std::make_shared<Exception>(errors::ProductNotFound, "InvalidID"));
284  *whyFailed << "get by product ID: no product with given id: " << pid << "\n";
285  return whyFailed;
286  }));
287  }
288 
289  // Was this already deleted?
290  if (phb->productWasDeleted()) {
292  }
293  // Check for case where we tried on demand production and
294  // it failed to produce the object
295  if (phb->unscheduledWasNotRun()) {
296  return BasicHandle(makeHandleExceptionFactory([pid]() -> std::shared_ptr<cms::Exception> {
297  std::shared_ptr<cms::Exception> whyFailed(std::make_shared<Exception>(errors::ProductNotFound, "InvalidID"));
298  *whyFailed << "get by ProductID: could not get product with id: " << pid << "\n"
299  << "Unscheduled execution not allowed to get via ProductID.\n";
300  return whyFailed;
301  }));
302  }
303  auto resolution = phb->resolveProduct(*this, false, nullptr, nullptr);
304 
305  auto data = resolution.data();
306  if (data) {
307  return BasicHandle(data->wrapper(), &(data->provenance()));
308  }
309  return BasicHandle(nullptr, nullptr);
310  }
311 
312  WrapperBase const* EventPrincipal::getIt(ProductID const& pid) const { return getByProductID(pid).wrapper(); }
313 
314  std::optional<std::tuple<WrapperBase const*, unsigned int>> EventPrincipal::getThinnedProduct(
315  ProductID const& pid, unsigned int key) const {
317  pid,
318  key,
320  [this](ProductID const& p) { return pidToBid(p); },
321  [this](BranchID const& b) { return getThinnedAssociation(b); },
322  [this](ProductID const& p) { return getIt(p); });
323  }
324 
326  std::vector<WrapperBase const*>& foundContainers,
327  std::vector<unsigned int>& keys) const {
329  pid,
331  [this](ProductID const& p) { return pidToBid(p); },
332  [this](BranchID const& b) { return getThinnedAssociation(b); },
333  [this](ProductID const& p) { return getIt(p); },
334  foundContainers,
335  keys);
336  }
337 
339  unsigned int key,
340  ProductID const& thinnedID) const {
341  BranchID parent = pidToBid(parentID);
342  BranchID thinned = pidToBid(thinnedID);
343 
344  try {
346  parentID, parent, key, thinnedID, thinned, *thinnedAssociationsHelper_, [this](BranchID const& branchID) {
347  return getThinnedAssociation(branchID);
348  });
349  if (auto factory = std::get_if<detail::GetThinnedKeyFromExceptionFactory>(&ret)) {
350  return [func = *factory]() {
351  auto ex = func();
352  ex.addContext("Calling EventPrincipal::getThinnedKeyFrom()");
353  return ex;
354  };
355  } else {
356  return ret;
357  }
358  } catch (Exception& ex) {
359  ex.addContext("Calling EventPrincipal::getThinnedKeyFrom()");
360  throw ex;
361  }
362  }
363 
365  BranchID bid = pidToBid(pid);
366  return getProvenance(bid);
367  }
368 
370  BranchID bid = pidToBid(pid);
371  return getStableProvenance(bid);
372  }
373 
375 
377 
380  }
381 
383  ConstProductResolverPtr const phb = getProductResolver(branchID);
384 
385  if (phb == nullptr) {
387  << "EventPrincipal::getThinnedAssociation, ThinnedAssociation ProductResolver cannot be found\n"
388  << "This should never happen. Contact a Framework developer";
389  }
390  ProductData const* productData = (phb->resolveProduct(*this, false, nullptr, nullptr)).data();
391  if (productData == nullptr) {
392  return nullptr;
393  }
394  WrapperBase const* product = productData->wrapper();
395  if (!(typeid(edm::ThinnedAssociation) == product->dynamicTypeInfo())) {
397  << "EventPrincipal::getThinnedProduct, product has wrong type, not a ThinnedAssociation.\n";
398  }
400  return wrapper->product();
401  }
402 
403 } // namespace edm
edm::ProductDeletedException
Definition: ProductDeletedException.h:28
edm::detail::getThinnedProduct
std::optional< std::tuple< WrapperBase const *, unsigned int > > getThinnedProduct(ProductID const &pid, unsigned int key, ThinnedAssociationsHelper const &thinnedAssociationsHelper, F1 pidToBid, F2 getThinnedAssociation, F3 getByProductID)
Definition: getThinned_implementation.h:287
runTheMatrix.ret
ret
prodAgent to be discontinued
Definition: runTheMatrix.py:543
ThinnedAssociationsHelper.h
edm::RunNumber_t
unsigned int RunNumber_t
Definition: RunLumiEventNumber.h:14
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:191
edm::EventPrincipal::luminosityBlockPrincipal_
edm::propagate_const< LuminosityBlockPrincipal * > luminosityBlockPrincipal_
Definition: EventPrincipal.h:184
edm::LuminosityBlockPrincipal::runPrincipal
RunPrincipal const & runPrincipal() const
Definition: LuminosityBlockPrincipal.h:45
edm::EventPrincipal::aux
EventAuxiliary const & aux() const
Definition: EventPrincipal.h:108
ModuleCallingContext.h
ProductResolverBase.h
edm::ProductResolverIndex
unsigned int ProductResolverIndex
Definition: ProductResolverIndex.h:8
edm::EventPrincipal::luminosityBlockPrincipal
LuminosityBlockPrincipal const & luminosityBlockPrincipal() const
Definition: EventPrincipal.h:85
edm::EventToProcessBlockIndexes
Definition: EventToProcessBlockIndexes.h:12
cms::Exception::addContext
void addContext(std::string const &context)
Definition: Exception.cc:165
FunctorHandleExceptionFactory.h
edm::BasicHandle
Definition: BasicHandle.h:43
edm::EventPrincipal::aux_
EventAuxiliary aux_
Definition: EventPrincipal.h:182
edm::errors::LogicError
Definition: EDMException.h:37
BranchIDListHelper.h
edm
HLT enums.
Definition: AlignableModifier.h:19
edm::ProductData::wrapper
WrapperBase const * wrapper() const
Definition: ProductData.h:35
edm::EventPrincipal::getIt
WrapperBase const * getIt(ProductID const &pid) const override
Definition: EventPrincipal.cc:312
deep_tau::DeepTauBase::BasicDiscriminator
BasicDiscriminator
Definition: DeepTauBase.h:115
RunLumiEventNumber.h
edm::EventPrincipal::thinnedAssociationsHelper_
std::shared_ptr< ThinnedAssociationsHelper const > thinnedAssociationsHelper_
Definition: EventPrincipal.h:193
edm::EventPrincipal::getThinnedProduct
std::optional< std::tuple< WrapperBase const *, unsigned int > > getThinnedProduct(ProductID const &pid, unsigned int key) const override
Definition: EventPrincipal.cc:314
edm::LuminosityBlockPrincipal
Definition: LuminosityBlockPrincipal.h:31
edm::BranchListIndexes
std::vector< BranchListIndex > BranchListIndexes
Definition: BranchListIndex.h:18
edm::ThinnedAssociation
Definition: ThinnedAssociation.h:15
Algorithms.h
edm::EventPrincipal::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, ProcessBlockHelperBase const *processBlockHelper=nullptr)
Definition: EventPrincipal.cc:33
cms::cuda::assert
assert(be >=bs)
edm::ProcessIndex
unsigned short ProcessIndex
Definition: ProductID.h:25
edm::Principal
Definition: Principal.h:56
DelayedReader.h
edm::StreamID::value
unsigned int value() const
Definition: StreamID.h:43
relativeConstraints.keys
keys
Definition: relativeConstraints.py:89
ProductRegistry.h
wrapper
static HepMC::HEPEVT_Wrapper wrapper
Definition: BeamHaloProducer.cc:47
edm::Principal::processHistory
ProcessHistory const & processHistory() const
Definition: Principal.h:140
findQualityFiles.v
v
Definition: findQualityFiles.py:179
edm::errors::NotFound
Definition: EDMException.h:57
watchdog.const
const
Definition: watchdog.py:83
edm::LuminosityBlockNumber_t
unsigned int LuminosityBlockNumber_t
Definition: RunLumiEventNumber.h:13
edm::EventPrincipal::processBlockHelper_
ProcessBlockHelperBase const * processBlockHelper_
Definition: EventPrincipal.h:192
edm::ProductIndex
unsigned short ProductIndex
Definition: ProductID.h:26
getThinned_implementation.h
edm::Principal::getProductResolverByIndex
ConstProductResolverPtr getProductResolverByIndex(ProductResolverIndex const &oid) const
Definition: Principal.cc:562
edm::Wrapper
Definition: Product.h:10
edm::EventPrincipal::setRunAndLumiNumber
void setRunAndLumiNumber(RunNumber_t run, LuminosityBlockNumber_t lumi)
Definition: EventPrincipal.cc:176
edm::EventPrincipal::productProvenanceRetrieverPtr
ProductProvenanceRetriever const * productProvenanceRetrieverPtr() const
Definition: EventPrincipal.h:118
edm::Exception
Definition: EDMException.h:77
edm::ProductProvenanceLookup::insertIntoSet
void insertIntoSet(ProductProvenance provenanceProduct) const
Definition: ProductProvenanceLookup.cc:42
edm::makeHandleExceptionFactory
std::shared_ptr< HandleExceptionFactory > makeHandleExceptionFactory(T &&iFunctor)
Definition: FunctorHandleExceptionFactory.h:45
edm::EventPrincipal::branchListIndexes
BranchListIndexes const & branchListIndexes() const
Definition: EventPrincipal.cc:376
EDMException.h
SharedResourcesAcquirer.h
edm::errors::ProductNotFound
Definition: EDMException.h:33
edm::EventPrincipal::eventToProcessBlockIndexes_
EventToProcessBlockIndexes eventToProcessBlockIndexes_
Definition: EventPrincipal.h:197
edm::detail::getThinnedKeyFrom_implementation
std::variant< unsigned int, GetThinnedKeyFromExceptionFactory, std::monostate > getThinnedKeyFrom_implementation(ProductID const &parentID, BranchID const &parent, unsigned int key, ProductID const &thinnedID, BranchID thinned, ThinnedAssociationsHelper const &thinnedAssociationsHelper, F &&getThinnedAssociation)
Definition: getThinned_implementation.h:394
edm::EventPrincipal::provRetrieverPtr_
edm::propagate_const< std::shared_ptr< ProductProvenanceRetriever > > provRetrieverPtr_
Definition: EventPrincipal.h:187
edm::EventPrincipal::changedIndexes_
void changedIndexes_() final
Definition: EventPrincipal.cc:266
edm::EventPrincipal::ConstProductResolverPtr
Base::ConstProductResolverPtr ConstProductResolverPtr
Definition: EventPrincipal.h:53
edm::ProductProvenance
Definition: ProductProvenance.h:24
edm::EventPrincipal::getThinnedAssociation
edm::ThinnedAssociation const * getThinnedAssociation(edm::BranchID const &branchID) const
Definition: EventPrincipal.cc:382
edm::Principal::processHistoryID
ProcessHistoryID const & processHistoryID() const
Definition: Principal.h:142
DQM.reader
reader
Definition: DQM.py:105
EventPrincipal.h
BranchListIndex.h
edm::invalidEventNumber
const EventNumber_t invalidEventNumber
Definition: RunLumiEventNumber.h:16
edm::BranchID
Definition: BranchID.h:14
edm::Principal::reader
DelayedReader * reader() const
Definition: Principal.h:187
Provenance.h
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:554
edm::BranchIDListHelper::BranchIDToIndexMap
std::multimap< BranchID, IndexPair > BranchIDToIndexMap
Definition: BranchIDListHelper.h:18
edm::Hash< ParentageType >
edm::BranchListIndex
unsigned short BranchListIndex
Definition: BranchListIndex.h:17
edm::EventNumber_t
unsigned long long EventNumber_t
Definition: RunLumiEventNumber.h:12
edm::InEvent
Definition: BranchType.h:11
edm::Principal::end
const_iterator end() const
Definition: Principal.h:163
b
double b
Definition: hdecay.h:118
edm::EventPrincipal::put
void put(BranchDescription const &bd, std::unique_ptr< WrapperBase > edp, ProductProvenance const &productProvenance) const
Definition: EventPrincipal.cc:185
edm::BasicHandle::wrapper
WrapperBase const * wrapper() const noexcept(true)
Definition: BasicHandle.h:73
ProductPutterBase.h
edm::Principal::productRegistry
ProductRegistry const & productRegistry() const
Definition: Principal.h:146
edm::EventAuxiliary
Definition: EventAuxiliary.h:14
edm::WrapperBase::dynamicTypeInfo
std::type_info const & dynamicTypeInfo() const
Definition: WrapperBase.h:42
edm::EventPrincipal::getThinnedKeyFrom
OptionalThinnedKey getThinnedKeyFrom(ProductID const &parent, unsigned int key, ProductID const &thinned) const override
Definition: EventPrincipal.cc:338
cppFunctionSkipper.exception
exception
Definition: cppFunctionSkipper.py:10
edm::ProcessBlockHelperBase
Definition: ProcessBlockHelperBase.h:18
edm::EventPrincipal::getProvenance
Provenance const & getProvenance(ProductID const &pid) const
Definition: EventPrincipal.cc:364
AlCaHLTBitMon_ParallelJobs.p
def p
Definition: AlCaHLTBitMon_ParallelJobs.py:153
edm::ProcessBlockHelperBase::processBlockIndex
virtual unsigned int processBlockIndex(std::string const &processName, EventToProcessBlockIndexes const &) const =0
edm::Principal::fillPrincipal
void fillPrincipal(DelayedReader *reader)
Definition: Principal.cc:402
SiStripPI::max
Definition: SiStripPayloadInspectorHelper.h:169
edm::StableProvenance
Definition: StableProvenance.h:30
edm::EventPrincipal::branchListIndexToProcessIndex_
std::vector< ProcessIndex > branchListIndexToProcessIndex_
Definition: EventPrincipal.h:199
edm::EventPrincipal::setLuminosityBlockPrincipal
void setLuminosityBlockPrincipal(LuminosityBlockPrincipal *lbp)
Definition: EventPrincipal.cc:174
printConversionInfo.aux
aux
Definition: printConversionInfo.py:19
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:123
edm::EventPrincipal::putOnRead
void putOnRead(BranchDescription const &bd, std::unique_ptr< WrapperBase > edp, std::optional< ProductProvenance > productProvenance) const
Definition: EventPrincipal.cc:216
edm::EventPrincipal::eventSelectionIDs
EventSelectionIDVector const & eventSelectionIDs() const
Definition: EventPrincipal.cc:374
edm::WrapperBase
Definition: WrapperBase.h:23
ProductIDToBranchID.h
edm::Principal::getExistingProduct
ProductResolverBase * getExistingProduct(BranchID const &branchID)
Definition: Principal.cc:501
edm::HistoryAppender
Definition: HistoryAppender.h:13
edm::EventPrincipal::updateBranchListIndexes
void updateBranchListIndexes(BranchListIndexes &&)
Definition: EventPrincipal.cc:146
BranchIDList.h
TrackCollections2monitor_cff.func
func
Definition: TrackCollections2monitor_cff.py:359
edm::Principal::clearPrincipal
void clearPrincipal()
Definition: Principal.cc:382
AlCaHLTBitMon_QueryRunRegistry.string
string string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
LuminosityBlockPrincipal.h
edm::ProductID::isValid
bool isValid() const
Definition: ProductID.h:32
edm::EventPrincipal::eventSelectionIDs_
EventSelectionIDVector eventSelectionIDs_
Definition: EventPrincipal.h:189
SimL1EmulatorRepack_CalouGT_cff.processName
processName
Definition: SimL1EmulatorRepack_CalouGT_cff.py:17
edm::EventPrincipal::getByProductID
BasicHandle getByProductID(ProductID const &oid) const
Definition: EventPrincipal.cc:278
edm::EventPrincipal::fillEventPrincipal
void fillEventPrincipal(EventAuxiliary const &aux, ProcessHistory const *processHistory, DelayedReader *reader=nullptr)
Definition: EventPrincipal.cc:110
edm::OptionalThinnedKey
std::variant< unsigned int, detail::GetThinnedKeyFromExceptionFactory, std::monostate > OptionalThinnedKey
Definition: EDProductGetter.h:39
edm::EventPrincipal::getThinnedProducts
void getThinnedProducts(ProductID const &pid, std::vector< WrapperBase const * > &foundContainers, std::vector< unsigned int > &keys) const override
Definition: EventPrincipal.cc:325
edm::ProductProvenanceRetriever
Definition: ProductProvenanceRetriever.h:37
edm::EventPrincipal::getStableProvenance
StableProvenance const & getStableProvenance(ProductID const &pid) const
Definition: EventPrincipal.cc:369
edm::throwProductDeletedException
static void throwProductDeletedException(ProductID const &pid, edm::EventPrincipal::ConstProductResolverPtr const phb)
Definition: EventPrincipal.cc:268
edm::EventPrincipal::run
RunNumber_t run() const
Definition: EventPrincipal.h:114
Wrapper.h
eostools.move
def move(src, dest)
Definition: eostools.py:511
writedatasetfile.run
run
Definition: writedatasetfile.py:27
edm::EventPrincipal::clearEventPrincipal
void clearEventPrincipal()
Definition: EventPrincipal.cc:61
edm::EventAuxiliary::processHistoryID
ProcessHistoryID const & processHistoryID() const
Definition: EventAuxiliary.h:61
edm::EventPrincipal::branchIDToProductID
ProductID branchIDToProductID(BranchID const &bid) const
Definition: EventPrincipal.cc:236
Exception
Definition: hltDiff.cc:245
edm::EventPrincipal::processBlockIndex
unsigned int processBlockIndex(std::string const &processName) const override
Definition: EventPrincipal.cc:260
edm::ProductData
Definition: ProductData.h:20
BasicHandle.h
edm::EventPrincipal::streamID_
StreamID streamID_
Definition: EventPrincipal.h:201
ProductDeletedException.h
edm::BranchID::isValid
bool isValid() const
Definition: BranchID.h:22
ThinnedAssociation.h
edm::DelayedReader
Definition: DelayedReader.h:29
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::transitionIndex_
unsigned int transitionIndex_() const override
Definition: EventPrincipal.cc:264
edm::BranchDescription
Definition: BranchDescription.h:32
edm::EventPrincipal::pidToBid
BranchID pidToBid(ProductID const &pid) const
Definition: EventPrincipal.cc:229
edm::ProcessHistory
Definition: ProcessHistory.h:13
edm::detail::getThinnedProducts
void getThinnedProducts(ProductID const &pid, ThinnedAssociationsHelper const &thinnedAssociationsHelper, F1 pidToBid, F2 getThinnedAssociation, F3 getByProductID, std::vector< WrapperBase const * > &foundContainers, std::vector< unsigned int > &keys)
Definition: getThinned_implementation.h:334
edm::RunPrincipal
Definition: RunPrincipal.h:34
edm::Provenance
Definition: Provenance.h:34
event
Definition: event.py:1
edm::EventID
Definition: EventID.h:31
edm::EventSelectionIDVector
std::vector< EventSelectionID > EventSelectionIDVector
Definition: EventSelectionID.h:16
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
edm::EventPrincipal::runPrincipal
RunPrincipal const & runPrincipal() const
Definition: EventPrincipal.cc:183
ProcessBlockHelperBase.h
class-composition.parent
parent
Definition: class-composition.py:98
edm::EventAuxiliary::setProcessHistoryID
void setProcessHistoryID(ProcessHistoryID const &phid)
Definition: EventAuxiliary.h:62
edm::EventPrincipal::eventToProcessBlockIndexes
EventToProcessBlockIndexes const & eventToProcessBlockIndexes() const
Definition: EventPrincipal.cc:378
edm::ProductID
Definition: ProductID.h:27
edm::ProcessConfiguration
Definition: ProcessConfiguration.h:14
edm::EventPrincipal::branchListIndexes_
BranchListIndexes branchListIndexes_
Definition: EventPrincipal.h:195
edm::EventPrincipal::wasBranchListIndexesChangedFromInput
bool wasBranchListIndexesChangedFromInput(BranchListIndexes const &) const
Definition: EventPrincipal.cc:136