Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 11:59:50

0001 #ifndef CalibTracker_SiStripESProducers_SiStripGainESSource_H
0002 #define CalibTracker_SiStripESProducers_SiStripGainESSource_H
0003 
0004 #include "FWCore/Framework/interface/ESProducer.h"
0005 #include "FWCore/Framework/interface/EventSetupRecordIntervalFinder.h"
0006 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0007 #include <memory>
0008 
0009 class SiStripApvGain;
0010 class SiStripApvGainRcd;
0011 
0012 /** 
0013     @class SiStripGainESSource
0014     @brief Pure virtual class for EventSetup sources of SiStripApvGain.
0015     @author R.Bainbridge
0016 */
0017 class SiStripGainESSource : public edm::ESProducer, public edm::EventSetupRecordIntervalFinder {
0018 public:
0019   SiStripGainESSource(const edm::ParameterSet&);
0020   SiStripGainESSource(const SiStripGainESSource&) = delete;
0021   const SiStripGainESSource& operator=(const SiStripGainESSource&) = delete;
0022   ~SiStripGainESSource() override { ; }
0023 
0024   virtual std::unique_ptr<SiStripApvGain> produce(const SiStripApvGainRcd&);
0025 
0026 protected:
0027   void setIntervalFor(const edm::eventsetup::EventSetupRecordKey&,
0028                       const edm::IOVSyncValue&,
0029                       edm::ValidityInterval&) override;
0030 
0031 private:
0032   virtual SiStripApvGain* makeGain() = 0;
0033 };
0034 
0035 #endif  // CalibTracker_SiStripESProducers_SiStripGainESSource_H