CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_4_1_8_patch12/src/SimGeneral/MixingModule/plugins/MixingWorkerBase.h

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       /*Normal constructor*/ 
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 }//edm
00075 
00076 #endif