CMS 3D CMS Logo

DataMixingModule.h

Go to the documentation of this file.
00001 #ifndef DataMixingModule_h
00002 #define SimDataMixingModule_h
00003 
00015 #include "Mixing/Base/interface/BMixingModule.h"
00016 
00017 #include "FWCore/Framework/interface/Event.h"
00018 #include "FWCore/ParameterSet/interface/ParameterSet.h"
00019 #include "FWCore/Framework/interface/Selector.h"
00020 
00021 #include "DataFormats/Provenance/interface/ProductID.h"
00022 #include "DataFormats/Common/interface/Handle.h"
00023 
00024 #include "SimGeneral/DataMixingModule/plugins/DataMixingEMWorker.h"
00025 #include "SimGeneral/DataMixingModule/plugins/DataMixingHcalWorker.h"
00026 #include "SimGeneral/DataMixingModule/plugins/DataMixingMuonWorker.h"
00027 #include "SimGeneral/DataMixingModule/plugins/DataMixingSiStripWorker.h"
00028 #include "SimGeneral/DataMixingModule/plugins/DataMixingSiPixelWorker.h"
00029 
00030 #include <map>
00031 #include <vector>
00032 #include <string>
00033 
00034 
00035 namespace edm
00036 {
00037   class DataMixingModule : public BMixingModule
00038     {
00039     public:
00040 
00042       explicit DataMixingModule(const edm::ParameterSet& ps);
00043 
00045       virtual ~DataMixingModule();
00046 
00047       virtual void beginJob(edm::EventSetup const&iSetup);
00048 
00049       virtual void setBcrOffset();
00050       virtual void setSourceOffset(const unsigned int is);      
00051 
00052     private:
00053       // data specifiers
00054 
00055       // Ecal
00056       edm::InputTag EBrechitCollection_; // secondary name given to collection of EB rechits
00057       edm::InputTag EErechitCollection_; // secondary name given to collection of EE rechits
00058       edm::InputTag ESrechitCollection_; // secondary name given to collection of EE rechits
00059       std::string EBRecHitCollectionDM_; // secondary name to be given to EB collection of hits
00060       std::string EERecHitCollectionDM_; // secondary name to be given to EE collection of hits
00061       std::string ESRecHitCollectionDM_; // secondary name to be given to EE collection of hits
00062 
00063       // Hcal
00064       edm::InputTag HBHErechitCollection_; // secondary name given to collection of EB rechits
00065       edm::InputTag HOrechitCollection_  ; // secondary name given to collection of EB rechits
00066       edm::InputTag HFrechitCollection_  ; // secondary name given to collection of EB rechits
00067       edm::InputTag ZDCrechitCollection_ ; // secondary name given to collection of EB rechits
00068       std::string HBHERecHitCollectionDM_; // secondary name to be given to EB collection of hits
00069       std::string HORecHitCollectionDM_  ; // secondary name to be given to EB collection of hits
00070       std::string HFRecHitCollectionDM_  ; // secondary name to be given to EB collection of hits
00071       std::string ZDCRecHitCollectionDM_ ; // secondary name to be given to EB collection of hits
00072 
00073       // Muons
00074       edm::InputTag DTdigi_collection_;      // secondary name given to collection of DT digis
00075       edm::InputTag RPCdigi_collection_;     // secondary name given to collection of RPC digis
00076       edm::InputTag CSCstripdigi_collection_;// secondary name given to collection of CSC Strip digis
00077       edm::InputTag CSCwiredigi_collection_; // secondary name given to collection of CSC wire digis
00078 
00079       std::string DTDigiCollectionDM_;       // secondary name to be given to new DT digis
00080       std::string RPCDigiCollectionDM_;      // secondary name to be given to new RPC digis
00081       std::string CSCStripDigiCollectionDM_; // secondary name given to new collection of CSC Strip digis
00082       std::string CSCWireDigiCollectionDM_;  // secondary name given to new collection of CSC wire digis
00083 
00084       // SiStrips
00085       edm::InputTag Sistripdigi_collection_ ; // secondary name given to collection of SiStrip digis
00086       std::string SiStripDigiCollectionDM_  ; // secondary name to be given to new SiStrip digis
00087 
00088       // SiPixels
00089       edm::InputTag pixeldigi_collection_ ; // secondary name given to collection of SiPixel digis
00090       std::string PixelDigiCollectionDM_  ; // secondary name to be given to new SiPixel digis
00091 
00092       // Submodules to handle the individual detectors
00093 
00094       DataMixingEMWorker *EMWorker_ ;
00095 
00096       // Hcal 
00097       
00098       DataMixingHcalWorker *HcalWorker_ ;
00099 
00100       // Muons
00101 
00102       DataMixingMuonWorker *MuonWorker_ ;
00103 
00104       // Si-Strips
00105 
00106       DataMixingSiStripWorker *SiStripWorker_ ;
00107 
00108       // Pixels
00109 
00110       DataMixingSiPixelWorker *SiPixelWorker_ ;
00111 
00112 
00113       virtual void put(edm::Event &e) ;
00114       virtual void createnewEDProduct();
00115       virtual void addSignals(const edm::Event &e); 
00116       virtual void doPileUp(edm::Event &e);
00117       virtual void addPileups(const int bcr, edm::Event*,unsigned int EventId,unsigned int worker);
00118       virtual void getSubdetectorNames();
00119 
00120       // internally used information : subdetectors present in input
00121       std::vector<std::string> Subdetectors_;
00122 
00123       //      unsigned int eventId_; //=0 for signal, from 1-n for pileup events
00124 
00125       Selector * sel_;
00126       std::string label_;
00127 
00128     };
00129 }//edm
00130 
00131 #endif

Generated on Tue Jun 9 17:47:18 2009 for CMSSW by  doxygen 1.5.4