00001 #ifndef DataMixingHcalWorker_h 00002 #define SimDataMixingHcalWorker_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 #include "DataFormats/HcalRecHit/interface/HcalRecHitCollections.h" 00025 00026 #include <map> 00027 #include <vector> 00028 #include <string> 00029 00030 00031 namespace edm 00032 { 00033 class DataMixingHcalWorker 00034 { 00035 public: 00036 00037 DataMixingHcalWorker(); 00038 00040 explicit DataMixingHcalWorker(const edm::ParameterSet& ps); 00041 00043 virtual ~DataMixingHcalWorker(); 00044 00045 void putHcal(edm::Event &e) ; 00046 void addHcalSignals(const edm::Event &e); 00047 void addHcalPileups(const int bcr, edm::EventPrincipal*,unsigned int EventId); 00048 00049 00050 private: 00051 // data specifiers 00052 00053 // Hcal 00054 edm::InputTag HBHErechitCollectionSig_; // secondary name given to collection of EB rechits 00055 edm::InputTag HOrechitCollectionSig_ ; // secondary name given to collection of EB rechits 00056 edm::InputTag HFrechitCollectionSig_ ; // secondary name given to collection of EB rechits 00057 edm::InputTag ZDCrechitCollectionSig_ ; // secondary name given to collection of EB rechits 00058 00059 edm::InputTag HBHEPileRecHitInputTag_ ; // InputTag for HB RecHits for Pileup 00060 edm::InputTag HOPileRecHitInputTag_ ; // InputTag for HO RecHits for Pileup 00061 edm::InputTag HFPileRecHitInputTag_ ; // InputTag for HF RecHits for Pileup 00062 edm::InputTag ZDCPileRecHitInputTag_ ; // InputTag for ZDC RecHits for Pileup 00063 00064 std::string HBHERecHitCollectionDM_; // secondary name to be given to EB collection of hits 00065 std::string HORecHitCollectionDM_ ; // secondary name to be given to EB collection of hits 00066 std::string HFRecHitCollectionDM_ ; // secondary name to be given to EB collection of hits 00067 std::string ZDCRecHitCollectionDM_ ; // secondary name to be given to EB collection of hits 00068 00069 typedef std::multimap<DetId, HBHERecHit> HBHERecHitMap; 00070 typedef std::multimap<DetId, HFRecHit> HFRecHitMap; 00071 typedef std::multimap<DetId, HORecHit> HORecHitMap; 00072 typedef std::multimap<DetId, ZDCRecHit> ZDCRecHitMap; 00073 00074 HBHERecHitMap HBHERecHitStorage_; 00075 HFRecHitMap HFRecHitStorage_; 00076 HORecHitMap HORecHitStorage_; 00077 ZDCRecHitMap ZDCRecHitStorage_; 00078 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