CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_5_3_3/src/SimGeneral/DataMixingModule/plugins/DataMixingMuonWorker.h

Go to the documentation of this file.
00001 #ifndef DataMixingMuonWorker_h
00002 #define SimDataMixingMuonWorker_h
00003 
00017 #include "FWCore/Framework/interface/Event.h"
00018 #include "FWCore/Framework/interface/EventPrincipal.h"
00019 #include "FWCore/ParameterSet/interface/ParameterSet.h"
00020 #include "FWCore/Framework/interface/Selector.h"
00021 
00022 #include "DataFormats/Provenance/interface/ProductID.h"
00023 #include "DataFormats/Common/interface/Handle.h"
00024 
00025 //DT
00026 #include "DataFormats/DTDigi/interface/DTDigiCollection.h"
00027 //RPC
00028 #include "DataFormats/RPCDigi/interface/RPCDigiCollection.h"
00029 //CSC
00030 #include "DataFormats/CSCDigi/interface/CSCStripDigiCollection.h"
00031 #include "DataFormats/CSCDigi/interface/CSCWireDigiCollection.h"
00032 #include "DataFormats/CSCDigi/interface/CSCComparatorDigiCollection.h"
00033 
00034 #include <map>
00035 #include <vector>
00036 #include <string>
00037 
00038 
00039 namespace edm
00040 {
00041   class DataMixingMuonWorker
00042     {
00043     public:
00044 
00045       DataMixingMuonWorker();
00046 
00048       explicit DataMixingMuonWorker(const edm::ParameterSet& ps);
00049 
00051       virtual ~DataMixingMuonWorker();
00052 
00053       void putMuon(edm::Event &e) ;
00054       void addMuonSignals(const edm::Event &e); 
00055       void addMuonPileups(const int bcr, const edm::EventPrincipal*,unsigned int EventId);
00056 
00057 
00058     private:
00059       // data specifiers
00060 
00061       edm::InputTag DTdigi_collectionSig_; // secondary name given to collection of DT digis
00062       edm::InputTag RPCdigi_collectionSig_; // secondary name given to collection of RPC digis
00063       edm::InputTag CSCDigiTagSig_; // primary? name given to collection of CSC digis
00064       edm::InputTag DTDigiTagSig_; // primary? name given to collection of DT digis
00065       edm::InputTag RPCDigiTagSig_; // primary? name given to collection of RPC digis
00066       edm::InputTag CSCstripdigi_collectionSig_; // secondary name given to collection of CSC Strip digis
00067       edm::InputTag CSCwiredigi_collectionSig_; // secondary name given to collection of CSC wire digis
00068       edm::InputTag CSCCompdigi_collectionSig_; // secondary name given to collection of CSC wire digis
00069 
00070       edm::InputTag DTPileInputTag_       ; // InputTag for pileup DTs
00071       edm::InputTag RPCPileInputTag_      ; // InputTag for pileup RPCs
00072       edm::InputTag CSCWirePileInputTag_  ; // InputTag for pileup CSC Wires
00073       edm::InputTag CSCStripPileInputTag_ ; // InputTag for pileup CSC Strips
00074       edm::InputTag CSCCompPileInputTag_ ; // InputTag for pileup CSC Comparators
00075 
00076       std::string DTDigiCollectionDM_; // secondary name to be given to new DT digis
00077       std::string RPCDigiCollectionDM_; // secondary name to be given to new RPC digis
00078       std::string CSCStripDigiCollectionDM_; // secondary name given to new collection of CSC Strip digis
00079       std::string CSCWireDigiCollectionDM_; // secondary name given to new collection of CSC wire digis
00080       std::string CSCComparatorDigiCollectionDM_; // secondary name given to new collection of CSC comparator digis
00081 
00082       // just hold our own DigiCollections - order of digis in layer doesn't appear to matter...
00083       // will make a copy and put this back into the event...
00084 
00085       DTDigiCollection* OurDTDigis_;  
00086       RPCDigiCollection* OurRPCDigis_;  
00087       CSCStripDigiCollection* OurCSCStripDigis_;  
00088       CSCWireDigiCollection* OurCSCWireDigis_;  
00089       CSCComparatorDigiCollection* OurCSCComparatorDigis_;  
00090 
00091       //      unsigned int eventId_; //=0 for signal, from 1-n for pileup events
00092 
00093       Selector * sel_;
00094       std::string label_;
00095 
00096     };
00097 }//edm
00098 
00099 #endif