00001 #ifndef DataMixingMuonWorker_h 00002 #define SimDataMixingMuonWorker_h 00003 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 //DT 00025 #include "DataFormats/DTDigi/interface/DTDigiCollection.h" 00026 //RPC 00027 #include "DataFormats/RPCDigi/interface/RPCDigiCollection.h" 00028 //CSC 00029 #include "DataFormats/CSCDigi/interface/CSCStripDigiCollection.h" 00030 #include "DataFormats/CSCDigi/interface/CSCWireDigiCollection.h" 00031 00032 #include <map> 00033 #include <vector> 00034 #include <string> 00035 00036 00037 namespace edm 00038 { 00039 class DataMixingMuonWorker 00040 { 00041 public: 00042 00043 DataMixingMuonWorker(); 00044 00046 explicit DataMixingMuonWorker(const edm::ParameterSet& ps); 00047 00049 virtual ~DataMixingMuonWorker(); 00050 00051 void putMuon(edm::Event &e) ; 00052 void addMuonSignals(const edm::Event &e); 00053 void addMuonPileups(const int bcr, edm::Event*,unsigned int EventId); 00054 00055 00056 private: 00057 // data specifiers 00058 00059 edm::InputTag DTdigi_collection_; // secondary name given to collection of DT digis 00060 edm::InputTag RPCdigi_collection_; // secondary name given to collection of RPC digis 00061 edm::InputTag CSCDigiTag_; // primary? name given to collection of CSC digis 00062 edm::InputTag DTDigiTag_; // primary? name given to collection of DT digis 00063 edm::InputTag RPCDigiTag_; // primary? name given to collection of RPC digis 00064 edm::InputTag CSCstripdigi_collection_; // secondary name given to collection of CSC Strip digis 00065 edm::InputTag CSCwiredigi_collection_; // secondary name given to collection of CSC wire digis 00066 00067 std::string DTDigiCollectionDM_; // secondary name to be given to new DT digis 00068 std::string RPCDigiCollectionDM_; // secondary name to be given to new RPC digis 00069 std::string CSCStripDigiCollectionDM_; // secondary name given to new collection of CSC Strip digis 00070 std::string CSCWireDigiCollectionDM_; // secondary name given to new collection of CSC wire digis 00071 00072 // just hold our own DigiCollections - order of digis in layer doesn't appear to matter... 00073 // will make a copy and put this back into the event... 00074 00075 DTDigiCollection* OurDTDigis_; 00076 RPCDigiCollection* OurRPCDigis_; 00077 CSCStripDigiCollection* OurCSCStripDigis_; 00078 CSCWireDigiCollection* OurCSCWireDigis_; 00079 00080 // unsigned int eventId_; //=0 for signal, from 1-n for pileup events 00081 00082 Selector * sel_; 00083 std::string label_; 00084 00085 }; 00086 }//edm 00087 00088 #endif