File indexing completed on 2025-03-13 02:32:12
0001 #ifndef Mixing_Base_SecondaryEventProvider_h
0002 #define Mixing_Base_SecondaryEventProvider_h
0003
0004 #include "FWCore/Framework/interface/WorkerManager.h"
0005 #include "FWCore/Framework/interface/Frameworkfwd.h"
0006 #include "FWCore/ServiceRegistry/interface/ServiceRegistryfwd.h"
0007
0008 #include <memory>
0009 #include <string>
0010 #include <vector>
0011
0012 namespace edm {
0013 class ModuleCallingContext;
0014
0015 class SecondaryEventProvider {
0016 public:
0017 SecondaryEventProvider(std::vector<ParameterSet>& psets,
0018 SignallingProductRegistryFiller& pregistry,
0019 std::shared_ptr<ProcessConfiguration> processConfiguration);
0020
0021 void beginRun(RunPrincipal& run,
0022 const edm::EventSetupImpl& setup,
0023 ModuleCallingContext const*,
0024 StreamContext& sContext);
0025 void beginLuminosityBlock(LuminosityBlockPrincipal& lumi,
0026 const edm::EventSetupImpl& setup,
0027 ModuleCallingContext const*,
0028 StreamContext& sContext);
0029
0030 void endRun(RunPrincipal& run,
0031 const edm::EventSetupImpl& setup,
0032 ModuleCallingContext const*,
0033 StreamContext& sContext);
0034 void endLuminosityBlock(LuminosityBlockPrincipal& lumi,
0035 const edm::EventSetupImpl& setup,
0036 ModuleCallingContext const*,
0037 StreamContext& sContext);
0038
0039 void setupPileUpEvent(EventPrincipal& ep, const EventSetupImpl& setup, StreamContext& sContext);
0040
0041 void beginJob(ProductRegistry const& iRegistry,
0042 eventsetup::ESRecordsToProductResolverIndices const&,
0043 GlobalContext const&);
0044 void endJob(ExceptionCollector& exceptionCollector, GlobalContext const& globalContext) {
0045 workerManager_.endJob(exceptionCollector, globalContext);
0046 }
0047
0048 void beginStream(edm::StreamID, StreamContext const&);
0049 void endStream(edm::StreamID, StreamContext const&, ExceptionCollector&);
0050
0051 private:
0052 std::unique_ptr<ExceptionToActionTable> exceptionToActionTable_;
0053 WorkerManager workerManager_;
0054 };
0055 }
0056 #endif