00001 #ifndef MixingWorkerBase_h 00002 #define MixingWorkerBase_h 00003 00015 #include "FWCore/Framework/interface/Event.h" 00016 #include "FWCore/Framework/interface/Principal.h" 00017 #include "FWCore/Framework/interface/Selector.h" 00018 #include "Mixing/Base/interface/PileUp.h" 00019 #include "DataFormats/Provenance/interface/EventID.h" 00020 00021 namespace edm 00022 { 00023 class MixingModule; 00024 class EventSetup; 00025 00029 class MixingWorkerBase 00030 { 00031 public: 00032 00033 /*Normal constructor*/ 00034 MixingWorkerBase() {} 00035 00037 virtual ~MixingWorkerBase(); 00038 00040 virtual bool checkSignal(const edm::Event &e)=0; 00041 virtual void createnewEDProduct()=0; 00042 virtual void addSignals(const edm::Event &e) =0; 00043 virtual void addPileups(const int bcr, const edm::EventPrincipal&, 00044 unsigned int EventNr, int vertexOffset=0)=0; 00045 virtual void setBcrOffset()=0; 00046 virtual void setSourceOffset(const unsigned int s)=0; 00047 virtual void setTof()=0; 00048 virtual void put(edm::Event &e) =0; 00049 virtual void reload(const edm::EventSetup & setup){}; 00050 }; 00051 }//edm 00052 00053 #endif