00001 #ifndef DataMixingHcalDigiWorkerProd_h 00002 #define SimDataMixingHcalDigiWorkerProd_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 #include "FWCore/Framework/interface/Selector.h" 00022 00023 #include "CalibFormats/CaloObjects/interface/CaloSamples.h" 00024 #include "DataFormats/Provenance/interface/ProductID.h" 00025 #include "DataFormats/Common/interface/Handle.h" 00026 #include "DataFormats/HcalDigi/interface/HcalDigiCollections.h" 00027 #include "DataFormats/HcalDigi/interface/HBHEDataFrame.h" 00028 #include "DataFormats/HcalDigi/interface/HODataFrame.h" 00029 #include "DataFormats/HcalDigi/interface/HFDataFrame.h" 00030 #include "SimCalorimetry/HcalSimProducers/interface/HcalDigitizer.h" 00031 #include "SimCalorimetry/HcalSimAlgos/interface/HcalSignalGenerator.h" 00032 #include "SimGeneral/DataMixingModule/plugins/HcalNoiseStorage.h" 00033 00034 #include <map> 00035 #include <vector> 00036 #include <string> 00037 00038 00039 namespace edm 00040 { 00041 class DataMixingHcalDigiWorkerProd 00042 { 00043 public: 00044 00046 explicit DataMixingHcalDigiWorkerProd(const edm::ParameterSet& ps); 00047 00049 virtual ~DataMixingHcalDigiWorkerProd(); 00050 00051 void putHcal(edm::Event &e,const edm::EventSetup& ES); 00052 void addHcalSignals(const edm::Event &e,const edm::EventSetup& ES); 00053 void addHcalPileups(const int bcr, edm::EventPrincipal*,unsigned int EventId,const edm::EventSetup& ES); 00054 00055 00056 private: 00057 // data specifiers 00058 00059 // Hcal 00060 // edm::InputTag HBHEdigiCollectionSig_; // secondary name given to collection of digis 00061 // edm::InputTag HOdigiCollectionSig_ ; // secondary name given to collection of digis 00062 //edm::InputTag HFdigiCollectionSig_ ; // secondary name given to collection of digis 00063 //edm::InputTag ZDCdigiCollectionSig_ ; // secondary name given to collection of digis 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 std::string HBHEDigiCollectionDM_; // secondary name to be given to collection of digis 00069 std::string HODigiCollectionDM_ ; // secondary name to be given to collection of digis 00070 std::string HFDigiCollectionDM_ ; // secondary name to be given to collection of digis 00071 std::string ZDCDigiCollectionDM_ ; // secondary name to be given to collection of digis 00072 00073 HcalDigitizer* myHcalDigitizer_; 00074 HBHESignalGenerator theHBHESignalGenerator; 00075 HOSignalGenerator theHOSignalGenerator; 00076 HFSignalGenerator theHFSignalGenerator; 00077 ZDCSignalGenerator theZDCSignalGenerator; 00078 00079 00080 Selector * sel_; 00081 std::string label_; 00082 00083 }; 00084 }//edm 00085 00086 #endif