Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-07-28 22:48:42

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                            ProductRegistry& 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 }  // namespace edm
0056 #endif