File indexing completed on 2025-03-14 23:36:16
0001 #include "FWCore/Framework/interface/OccurrenceForOutput.h"
0002
0003 #include "DataFormats/Common/interface/TriggerResults.h"
0004 #include "DataFormats/Provenance/interface/Provenance.h"
0005 #include "DataFormats/Provenance/interface/StableProvenance.h"
0006 #include "FWCore/Common/interface/TriggerResultsByName.h"
0007 #include "FWCore/Framework/interface/Principal.h"
0008 #include "FWCore/ParameterSet/interface/Registry.h"
0009 #include "FWCore/Utilities/interface/Algorithms.h"
0010 #include "FWCore/Utilities/interface/InputTag.h"
0011
0012 namespace edm {
0013
0014 OccurrenceForOutput::OccurrenceForOutput(Principal const& p,
0015 ModuleDescription const& md,
0016 ModuleCallingContext const* moduleCallingContext,
0017 bool isAtEnd)
0018 : provRecorder_(p, md, isAtEnd), moduleCallingContext_(moduleCallingContext) {}
0019
0020 OccurrenceForOutput::~OccurrenceForOutput() {}
0021
0022 void OccurrenceForOutput::setConsumer(EDConsumerBase const* iConsumer) { provRecorder_.setConsumer(iConsumer); }
0023
0024 Principal const& OccurrenceForOutput::principal() const { return provRecorder_.principal(); }
0025
0026 ProcessHistoryID const& OccurrenceForOutput::processHistoryID() const { return principal().processHistoryID(); }
0027
0028 Provenance OccurrenceForOutput::getProvenance(BranchID const& bid) const {
0029 return provRecorder_.principal().getProvenance(bid);
0030 }
0031
0032 StableProvenance const& OccurrenceForOutput::getStableProvenance(BranchID const& bid) const {
0033 return provRecorder_.principal().getStableProvenance(bid);
0034 }
0035
0036 void OccurrenceForOutput::getAllProvenance(std::vector<Provenance const*>& provenances) const {
0037 provRecorder_.principal().getAllProvenance(provenances);
0038 }
0039
0040 void OccurrenceForOutput::getAllStableProvenance(std::vector<StableProvenance const*>& provenances) const {
0041 provRecorder_.principal().getAllStableProvenance(provenances);
0042 }
0043
0044 std::vector<ProductDescription const*> OccurrenceForOutput::productDescriptions() const {
0045 return principal().productDescriptions();
0046 }
0047
0048 ProductRegistry const& OccurrenceForOutput::productRegistry() const { return principal().productRegistry(); }
0049
0050 ProcessHistory const& OccurrenceForOutput::processHistory() const { return provRecorder_.processHistory(); }
0051
0052 size_t OccurrenceForOutput::size() const { return provRecorder_.principal().size(); }
0053
0054 BasicHandle OccurrenceForOutput::getByToken(EDGetToken token, TypeID const& typeID) const {
0055 auto result = provRecorder_.getByToken_(typeID, PRODUCT_TYPE, token, moduleCallingContext_);
0056 if (result.failedToGet()) {
0057 return result;
0058 }
0059 if (!provRecorder_.isComplete() && result.wrapper()->isMergeable()) {
0060 principal_get_adapter_detail::throwOnPrematureRead("RunOrLumi", typeID, token);
0061 }
0062 return result;
0063 }
0064 }