Back to home page

Project CMSSW displayed by LXR

 
 

    


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 }  // namespace edm
0051 #endif