File indexing completed on 2023-07-04 00:49:22
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
0007 #include <memory>
0008 #include <string>
0009 #include <vector>
0010
0011 namespace edm {
0012 class ModuleCallingContext;
0013
0014 class SecondaryEventProvider {
0015 public:
0016 SecondaryEventProvider(std::vector<ParameterSet>& psets,
0017 ProductRegistry& pregistry,
0018 std::shared_ptr<ProcessConfiguration> processConfiguration);
0019
0020 void beginRun(RunPrincipal& run,
0021 const edm::EventSetupImpl& setup,
0022 ModuleCallingContext const*,
0023 StreamContext& sContext);
0024 void beginLuminosityBlock(LuminosityBlockPrincipal& lumi,
0025 const edm::EventSetupImpl& setup,
0026 ModuleCallingContext const*,
0027 StreamContext& sContext);
0028
0029 void endRun(RunPrincipal& run,
0030 const edm::EventSetupImpl& setup,
0031 ModuleCallingContext const*,
0032 StreamContext& sContext);
0033 void endLuminosityBlock(LuminosityBlockPrincipal& lumi,
0034 const edm::EventSetupImpl& setup,
0035 ModuleCallingContext const*,
0036 StreamContext& sContext);
0037
0038 void setupPileUpEvent(EventPrincipal& ep, const EventSetupImpl& setup, StreamContext& sContext);
0039
0040 void beginJob(ProductRegistry const& iRegistry, eventsetup::ESRecordsToProductResolverIndices const&);
0041 void endJob() { workerManager_.endJob(); }
0042
0043 void beginStream(edm::StreamID iID, StreamContext& sContext);
0044 void endStream(edm::StreamID iID, StreamContext& sContext);
0045
0046 private:
0047 std::unique_ptr<ExceptionToActionTable> exceptionToActionTable_;
0048 WorkerManager workerManager_;
0049 };
0050 }
0051 #endif