Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:30:37

0001 #ifndef MixingWorkerBase_h
0002 #define MixingWorkerBase_h
0003 
0004 /** \class MixingWorkerBase
0005  *
0006  * MixingWorkerBase is an auxiliary class for the MixingModule
0007  *
0008  * \author Ursula Berthon, LLR Palaiseau
0009  *
0010  * \version   1st Version JMarch 2008
0011 
0012  *
0013  ************************************************************/
0014 
0015 #include "FWCore/Framework/interface/Event.h"
0016 #include "FWCore/Framework/interface/Principal.h"
0017 #include "Mixing/Base/interface/PileUp.h"
0018 #include "DataFormats/Provenance/interface/EventID.h"
0019 
0020 namespace edm {
0021   class MixingModule;
0022   class ModuleCallingContext;
0023   class EventSetup;
0024 
0025   /*! This class allows MixingModule to store a vector of
0026    *  MixingWorkers, which are templated.
0027    */
0028   class MixingWorkerBase {
0029   public:
0030     /*Normal constructor*/
0031     MixingWorkerBase() {}
0032 
0033     /**Default destructor*/
0034     virtual ~MixingWorkerBase();
0035 
0036     /**Steps in BMixingModule::produce*/
0037     virtual bool checkSignal(const edm::Event &e) = 0;
0038     virtual void createnewEDProduct() = 0;
0039     virtual void addSignals(const edm::Event &e) = 0;
0040     virtual void addPileups(const edm::EventPrincipal &, ModuleCallingContext const *, unsigned int EventNr) = 0;
0041     virtual void setBcrOffset() = 0;
0042     virtual void setSourceOffset(const unsigned int s) = 0;
0043     virtual void setTof() = 0;
0044     virtual void put(edm::Event &e) = 0;
0045     virtual void reload(int minBunch, int maxBunch, int bunchSpace){};
0046   };
0047 }  // namespace edm
0048 
0049 #endif