00001 // system include files 00002 #include <memory> 00003 #include "boost/shared_ptr.hpp" 00004 00005 // user include files 00006 #include "FWCore/Framework/interface/ModuleFactory.h" 00007 #include "FWCore/Framework/interface/ESProducer.h" 00008 00009 class CastorDbService; 00010 class CastorDbRecord; 00011 00012 #include "CondFormats/DataRecord/interface/CastorChannelQualityRcd.h" 00013 #include "CondFormats/DataRecord/interface/CastorElectronicsMapRcd.h" 00014 #include "CondFormats/DataRecord/interface/CastorGainWidthsRcd.h" 00015 #include "CondFormats/DataRecord/interface/CastorGainsRcd.h" 00016 #include "CondFormats/DataRecord/interface/CastorPedestalWidthsRcd.h" 00017 #include "CondFormats/DataRecord/interface/CastorPedestalsRcd.h" 00018 #include "CondFormats/DataRecord/interface/CastorQIEDataRcd.h" 00019 00020 class CastorDbProducer : public edm::ESProducer { 00021 public: 00022 CastorDbProducer( const edm::ParameterSet& ); 00023 ~CastorDbProducer(); 00024 00025 boost::shared_ptr<CastorDbService> produce( const CastorDbRecord& ); 00026 00027 // callbacks 00028 void pedestalsCallback (const CastorPedestalsRcd& fRecord); 00029 void pedestalWidthsCallback (const CastorPedestalWidthsRcd& fRecord); 00030 void gainsCallback (const CastorGainsRcd& fRecord); 00031 void gainWidthsCallback (const CastorGainWidthsRcd& fRecord); 00032 void QIEDataCallback (const CastorQIEDataRcd& fRecord); 00033 void channelQualityCallback (const CastorChannelQualityRcd& fRecord); 00034 void electronicsMapCallback (const CastorElectronicsMapRcd& fRecord); 00035 00036 private: 00037 // ----------member data --------------------------- 00038 boost::shared_ptr<CastorDbService> mService; 00039 std::vector<std::string> mDumpRequest; 00040 std::ostream* mDumpStream; 00041 };