Go to the documentation of this file.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
00025 class MixingWorkerBase
00026 {
00027 public:
00028
00030 explicit MixingWorkerBase():
00031 minBunch_(-5),
00032 maxBunch_(3),
00033 bunchSpace_(75),
00034 subdet_(std::string(" ")),
00035 label_(std::string(" ")),
00036 labelCF_(std::string(" ")),
00037 maxNbSources_(5),
00038 mixProdStep2_(false)
00039 {
00040 tag_=InputTag();
00041 tagSignal_=InputTag();
00042 }
00043
00044
00045 MixingWorkerBase(int minBunch,int maxBunch,int bunchSpace,std::string &subdet, std::string& label,std::string& labelCF, unsigned int maxNbSources, InputTag &tag, InputTag &tagCF ,bool mixProdStep2);
00046
00048 virtual ~MixingWorkerBase();
00049 virtual void put(edm::Event &e) =0;
00050 virtual void createnewEDProduct()=0;
00051 virtual bool checkSignal(const edm::Event &e)=0;
00052 virtual void addSignals(const edm::Event &e) =0;
00053 virtual void addPileups(const int bcr, EventPrincipal *,unsigned int EventNr,int vertexOffset=0)=0;
00054 virtual void setBcrOffset()=0;
00055 virtual void setSourceOffset(const unsigned int s)=0;
00056 virtual void setTof()=0;
00057
00058 protected:
00059 int const minBunch_;
00060 int const maxBunch_;
00061 int const bunchSpace_;
00062 std::string const subdet_;
00063 std::string const label_;
00064 std::string const labelCF_;
00065 unsigned int const maxNbSources_;
00066 InputTag tag_;
00067 InputTag tagSignal_;
00068 bool mixProdStep2_;
00069
00070 private:
00071 unsigned int eventNr_;
00072
00073 };
00074 }
00075
00076 #endif