00001 #ifndef CalibTracker_SiStripESProducers_SiStripGainESSource_H 00002 #define CalibTracker_SiStripESProducers_SiStripGainESSource_H 00003 00004 #include "FWCore/Framework/interface/ESProducer.h" 00005 #include "FWCore/Framework/interface/ESHandle.h" 00006 #include "FWCore/Framework/interface/EventSetupRecordIntervalFinder.h" 00007 #include "FWCore/ParameterSet/interface/ParameterSet.h" 00008 #include <memory> 00009 00010 class SiStripApvGain; 00011 class SiStripApvGainRcd; 00012 00018 class SiStripGainESSource : public edm::ESProducer, public edm::EventSetupRecordIntervalFinder { 00019 00020 public: 00021 00022 SiStripGainESSource( const edm::ParameterSet& ); 00023 virtual ~SiStripGainESSource() {;} 00024 00025 virtual std::auto_ptr<SiStripApvGain> produce( const SiStripApvGainRcd& ); 00026 00027 protected: 00028 00029 virtual void setIntervalFor( const edm::eventsetup::EventSetupRecordKey&, 00030 const edm::IOVSyncValue&, 00031 edm::ValidityInterval& ); 00032 00033 private: 00034 00035 SiStripGainESSource( const SiStripGainESSource& ); 00036 const SiStripGainESSource& operator=( const SiStripGainESSource& ); 00037 00038 virtual SiStripApvGain* makeGain() = 0; 00039 00040 }; 00041 00042 #endif // CalibTracker_SiStripESProducers_SiStripGainESSource_H 00043 00044