File indexing completed on 2023-10-25 10:03:35
0001 #include <memory>
0002 #include <string>
0003 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0004 #include "FWCore/Framework/interface/ModuleFactory.h"
0005 #include "FWCore/Framework/interface/ESProducer.h"
0006 #include "FWCore/Framework/interface/ESProductHost.h"
0007 #include "FWCore/Framework/interface/ESHandle.h"
0008 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0009 #include "CondFormats/DataRecord/interface/EcalCATIAGainRatiosRcd.h"
0010 #include "CondFormats/EcalObjects/interface/EcalCATIAGainRatios.h"
0011 #include "DataFormats/EcalDigi/interface/EcalConstants.h"
0012
0013
0014
0015 const int kEBChannels = ecalPh2::kEBChannels;
0016
0017 class EcalCATIAGainRatiosESProducer : public edm::ESProducer {
0018 public:
0019 EcalCATIAGainRatiosESProducer(const edm::ParameterSet& p);
0020
0021 typedef std::unique_ptr<EcalCATIAGainRatios> ReturnType;
0022
0023 ReturnType produce(const EcalCATIAGainRatiosRcd& iRecord);
0024
0025 private:
0026 double catiaGainRatio_;
0027 };
0028
0029 using namespace edm;
0030
0031 EcalCATIAGainRatiosESProducer::EcalCATIAGainRatiosESProducer(const edm::ParameterSet& p) {
0032 std::string myname = p.getParameter<std::string>("ComponentName");
0033 catiaGainRatio_ = p.getParameter<double>("CATIAGainRatio");
0034 setWhatProduced(this);
0035 }
0036
0037 EcalCATIAGainRatiosESProducer::ReturnType EcalCATIAGainRatiosESProducer::produce(const EcalCATIAGainRatiosRcd& iRecord) {
0038 auto prod = std::make_unique<EcalCATIAGainRatios>();
0039 for (int iChannel = 0; iChannel < kEBChannels; iChannel++) {
0040 EBDetId myEBDetId = EBDetId::unhashIndex(iChannel);
0041 double val = catiaGainRatio_;
0042 prod->setValue(myEBDetId.rawId(), val);
0043 }
0044
0045 return prod;
0046 }
0047
0048
0049 DEFINE_FWK_EVENTSETUP_MODULE(EcalCATIAGainRatiosESProducer);