00001 #ifndef CastorDigiProducer_h 00002 #define CastorDigiProducer_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/CastorSim/src/CastorDigitizerTraits.h" 00009 #include "SimDataFormats/CaloHit/interface/PCaloHitContainer.h" 00010 #include "SimCalorimetry/CaloSimAlgos/interface/CaloTDigitizer.h" 00011 #include "SimCalorimetry/CastorSim/src/CastorSimParameterMap.h" 00012 #include "SimCalorimetry/CastorSim/src/CastorShape.h" 00013 #include "SimCalorimetry/CastorSim/src/CastorElectronicsSim.h" 00014 #include "SimCalorimetry/CastorSim/src/CastorHitFilter.h" 00015 #include "SimCalorimetry/CaloSimAlgos/interface/CaloHitResponse.h" 00016 #include "SimCalorimetry/CastorSim/src/CastorAmplifier.h" 00017 #include "SimCalorimetry/CastorSim/src/CastorCoderFactory.h" 00018 #include "SimCalorimetry/CastorSim/src/CastorHitCorrection.h" 00019 00020 00021 class CastorDigiProducer : public edm::EDProducer 00022 { 00023 public: 00024 00025 explicit CastorDigiProducer(const edm::ParameterSet& ps); 00026 virtual ~CastorDigiProducer(); 00027 00029 virtual void produce(edm::Event& e, const edm::EventSetup& c); 00030 00031 private: 00033 void sortHits(const edm::PCaloHitContainer & hits); 00035 void fillFakeHits(); 00038 void checkGeometry(const edm::EventSetup& eventSetup); 00039 00041 typedef CaloTDigitizer<CastorDigitizerTraits> CastorDigitizer; 00042 00043 CastorSimParameterMap * theParameterMap; 00044 CaloVShape * theCastorShape; 00045 CaloVShape * theCastorIntegratedShape; 00046 00047 CaloHitResponse * theCastorResponse; 00048 00049 CastorAmplifier * theAmplifier; 00050 CastorCoderFactory * theCoderFactory; 00051 CastorElectronicsSim * theElectronicsSim; 00052 00053 CastorHitFilter theCastorHitFilter; 00054 00055 CastorHitCorrection * theHitCorrection; 00056 00057 CastorDigitizer* theCastorDigitizer; 00058 00059 std::vector<PCaloHit> theCastorHits; 00060 00061 }; 00062 00063 #endif 00064