00001 #ifndef HcalDigiProducer_h 00002 #define HcalDigiProducer_h 00003 00004 #include "FWCore/Framework/interface/EDProducer.h" 00005 #include "FWCore/Framework/interface/Event.h" 00006 #include "FWCore/Framework/interface/EventSetup.h" 00007 #include "FWCore/ParameterSet/interface/ParameterSet.h" 00008 #include "SimCalorimetry/HcalSimAlgos/interface/HcalDigitizerTraits.h" 00009 #include "SimDataFormats/CaloHit/interface/PCaloHitContainer.h" 00010 #include "SimCalorimetry/CaloSimAlgos/interface/CaloTDigitizer.h" 00011 #include "SimCalorimetry/HcalSimAlgos/interface/HcalSimParameterMap.h" 00012 #include "SimCalorimetry/HcalSimAlgos/interface/HcalShape.h" 00013 #include "SimCalorimetry/HcalSimAlgos/interface/HFShape.h" 00014 #include "SimCalorimetry/HcalSimAlgos/interface/ZDCShape.h" 00015 #include "SimCalorimetry/HcalSimAlgos/interface/HcalElectronicsSim.h" 00016 #include "SimCalorimetry/HcalSimAlgos/interface/HBHEHitFilter.h" 00017 #include "SimCalorimetry/HcalSimAlgos/interface/HFHitFilter.h" 00018 #include "SimCalorimetry/HcalSimAlgos/interface/HOHitFilter.h" 00019 #include "SimCalorimetry/HcalSimAlgos/interface/ZDCHitFilter.h" 00020 #include "SimCalorimetry/CaloSimAlgos/interface/CaloHitResponse.h" 00021 #include "SimCalorimetry/HcalSimAlgos/interface/HcalAmplifier.h" 00022 #include "SimCalorimetry/HcalSimAlgos/interface/HcalCoderFactory.h" 00023 #include "SimCalorimetry/HcalSimAlgos/interface/HcalHitCorrection.h" 00024 00025 00026 00027 class HcalDigiProducer : public edm::EDProducer 00028 { 00029 public: 00030 00031 explicit HcalDigiProducer(const edm::ParameterSet& ps); 00032 virtual ~HcalDigiProducer(); 00033 00035 virtual void produce(edm::Event& e, const edm::EventSetup& c); 00036 00037 private: 00039 void fillFakeHits(); 00042 void checkGeometry(const edm::EventSetup& eventSetup); 00043 00045 typedef CaloTDigitizer<HBHEDigitizerTraits> HBHEDigitizer; 00046 typedef CaloTDigitizer<HODigitizerTraits> HODigitizer; 00047 typedef CaloTDigitizer<HFDigitizerTraits> HFDigitizer; 00048 typedef CaloTDigitizer<ZDCDigitizerTraits> ZDCDigitizer; 00049 00050 HcalSimParameterMap * theParameterMap; 00051 CaloVShape * theHcalShape; 00052 CaloVShape * theHFShape; 00053 CaloVShape * theZDCShape; 00054 CaloVShape * theHcalIntegratedShape; 00055 CaloVShape * theHFIntegratedShape; 00056 CaloVShape * theZDCIntegratedShape; 00057 00058 CaloHitResponse * theHBHEResponse; 00059 CaloHitResponse * theHOResponse; 00060 CaloHitResponse * theHFResponse; 00061 CaloHitResponse * theZDCResponse; 00062 00063 HcalAmplifier * theAmplifier; 00064 HcalCoderFactory * theCoderFactory; 00065 HcalElectronicsSim * theElectronicsSim; 00066 00067 HBHEHitFilter theHBHEHitFilter; 00068 HFHitFilter theHFHitFilter; 00069 HOHitFilter theHOHitFilter; 00070 ZDCHitFilter theZDCHitFilter; 00071 00072 HcalHitCorrection * theHitCorrection; 00073 CaloVNoiseSignalGenerator * theHPDNoiseGenerator; 00074 00075 HBHEDigitizer * theHBHEDigitizer; 00076 HODigitizer* theHODigitizer; 00077 HFDigitizer* theHFDigitizer; 00078 ZDCDigitizer* theZDCDigitizer; 00079 00080 bool doZDC; 00081 00082 std::string hitsProducer_; 00083 00084 }; 00085 00086 #endif 00087