![]() |
![]() |
00001 #ifndef DataMixingHcalDigiWorker_h 00002 #define SimDataMixingHcalDigiWorker_h 00003 00017 #include "FWCore/Framework/interface/Event.h" 00018 #include "FWCore/Framework/interface/EventPrincipal.h" 00019 #include "FWCore/Framework/interface/EventSetup.h" 00020 #include "FWCore/ParameterSet/interface/ParameterSet.h" 00021 00022 #include "CalibFormats/CaloObjects/interface/CaloSamples.h" 00023 #include "DataFormats/Provenance/interface/ProductID.h" 00024 #include "DataFormats/Common/interface/Handle.h" 00025 #include "DataFormats/HcalDigi/interface/HcalDigiCollections.h" 00026 #include "DataFormats/HcalDigi/interface/HBHEDataFrame.h" 00027 #include "DataFormats/HcalDigi/interface/HODataFrame.h" 00028 #include "DataFormats/HcalDigi/interface/HFDataFrame.h" 00029 00030 00031 #include <map> 00032 #include <vector> 00033 #include <string> 00034 00035 00036 namespace edm 00037 { 00038 class DataMixingHcalDigiWorker 00039 { 00040 public: 00041 00042 DataMixingHcalDigiWorker(); 00043 00045 explicit DataMixingHcalDigiWorker(const edm::ParameterSet& ps); 00046 00048 virtual ~DataMixingHcalDigiWorker(); 00049 00050 void putHcal(edm::Event &e,const edm::EventSetup& ES) ; 00051 void addHcalSignals(const edm::Event &e,const edm::EventSetup& ES); 00052 void addHcalPileups(const int bcr, const edm::EventPrincipal*,unsigned int EventId,const edm::EventSetup& ES); 00053 00054 00055 private: 00056 // data specifiers 00057 00058 // Hcal 00059 edm::InputTag HBHEdigiCollectionSig_; // secondary name given to collection of digis 00060 edm::InputTag HOdigiCollectionSig_ ; // secondary name given to collection of digis 00061 edm::InputTag HFdigiCollectionSig_ ; // secondary name given to collection of digis 00062 edm::InputTag ZDCdigiCollectionSig_ ; // secondary name given to collection of digis 00063 00064 edm::InputTag HBHEPileInputTag_; // InputTag for Pileup Digis collection 00065 edm::InputTag HOPileInputTag_ ; // InputTag for Pileup Digis collection 00066 edm::InputTag HFPileInputTag_ ; // InputTag for Pileup Digis collection 00067 edm::InputTag ZDCPileInputTag_ ; // InputTag for Pileup Digis collection 00068 00069 std::string HBHEDigiCollectionDM_; // secondary name to be given to collection of digis 00070 std::string HODigiCollectionDM_ ; // secondary name to be given to collection of digis 00071 std::string HFDigiCollectionDM_ ; // secondary name to be given to collection of digis 00072 std::string ZDCDigiCollectionDM_ ; // secondary name to be given to collection of digis 00073 00074 typedef std::multimap<DetId, CaloSamples> HBHEDigiMap; 00075 typedef std::multimap<DetId, CaloSamples> HFDigiMap; 00076 typedef std::multimap<DetId, CaloSamples> HODigiMap; 00077 typedef std::multimap<DetId, CaloSamples> ZDCDigiMap; 00078 00079 // typedef std::multimap<DetId, HBHEDataFrame> HBHEDigiMap; 00080 // typedef std::multimap<DetId, HFDataFrame> HFDigiMap; 00081 // typedef std::multimap<DetId, HODataFrame> HODigiMap; 00082 // typedef std::multimap<DetId, ZDCDataFrame> ZDCDigiMap; 00083 00084 HBHEDigiMap HBHEDigiStorage_; 00085 HFDigiMap HFDigiStorage_; 00086 HODigiMap HODigiStorage_; 00087 ZDCDigiMap ZDCDigiStorage_; 00088 00089 bool DoZDC_; 00090 00091 // unsigned int eventId_; //=0 for signal, from 1-n for pileup events 00092 00093 std::string label_; 00094 00095 }; 00096 }//edm 00097 00098 #endif