Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 11:58:31

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