diff --git a/CalibCalorimetry/HcalPlugins/src/HBHEDarkeningEP.cc b/CalibCalorimetry/HcalPlugins/src/HBHEDarkeningEP.cc index a569fd1e43df3..7928a64b21450 100644 --- a/CalibCalorimetry/HcalPlugins/src/HBHEDarkeningEP.cc +++ b/CalibCalorimetry/HcalPlugins/src/HBHEDarkeningEP.cc @@ -8,9 +8,28 @@ #include #include -HBHEDarkeningEP::HBHEDarkeningEP(const edm::ParameterSet& pset) : pset_(pset) { +HBHEDarkeningEP::HBHEDarkeningEP(const edm::ParameterSet& pset) + : drdA_(pset.getParameter("drdA")), + drdB_(pset.getParameter("drdB")), + ieta_shift_(pset.getParameter("ieta_shift")) { setWhatProduced(this); findingRecord(); + + const std::vector& p_dosemaps = pset.getParameter>("dosemaps"); + dosemaps_.reserve(p_dosemaps.size()); + for (const auto& p_dosemap : p_dosemaps) { + dosemaps_.push_back({p_dosemap.getParameter("file"), p_dosemap.getParameter("energy")}); + } + + //initialize years + const std::vector& p_years = pset.getParameter>("years"); + years_.reserve(p_years.size()); + for (const auto& p_year : p_years) { + years_.emplace_back(p_year.getParameter("year"), + p_year.getParameter("intlumi"), + p_year.getParameter("lumirate"), + p_year.getParameter("energy")); + } } HBHEDarkeningEP::~HBHEDarkeningEP() {} @@ -45,30 +64,12 @@ void HBHEDarkeningEP::fillDescriptions(edm::ConfigurationDescriptions& descripti // ------------ method called to produce the data ------------ HBHEDarkeningEP::ReturnType HBHEDarkeningEP::produce(const HBHEDarkeningRecord& iRecord) { //initialize dose maps - std::vector p_dosemaps = pset_.getParameter>("dosemaps"); std::map>> dosemaps; - for (const auto& p_dosemap : p_dosemaps) { - edm::FileInPath fp = p_dosemap.getParameter("file"); - int file_energy = p_dosemap.getParameter("energy"); - dosemaps.emplace(file_energy, HBHEDarkening::readDoseMap(fp.fullPath())); - } - - //initialize years - std::vector p_years = pset_.getParameter>("years"); - std::vector years; - years.reserve(p_years.size()); - for (const auto& p_year : p_years) { - years.emplace_back(p_year.getParameter("year"), - p_year.getParameter("intlumi"), - p_year.getParameter("lumirate"), - p_year.getParameter("energy")); + for (const auto& p_dosemap : dosemaps_) { + dosemaps.emplace(p_dosemap.file_energy, HBHEDarkening::readDoseMap(p_dosemap.fp.fullPath())); } - return std::make_unique(pset_.getParameter("ieta_shift"), - pset_.getParameter("drdA"), - pset_.getParameter("drdB"), - std::move(dosemaps), - std::move(years)); + return std::make_unique(ieta_shift_, drdA_, drdB_, std::move(dosemaps), years_); } DEFINE_FWK_EVENTSETUP_SOURCE(HBHEDarkeningEP); diff --git a/CalibCalorimetry/HcalPlugins/src/HBHEDarkeningEP.h b/CalibCalorimetry/HcalPlugins/src/HBHEDarkeningEP.h index 3b6a646032314..d0f2126dc83f1 100644 --- a/CalibCalorimetry/HcalPlugins/src/HBHEDarkeningEP.h +++ b/CalibCalorimetry/HcalPlugins/src/HBHEDarkeningEP.h @@ -32,7 +32,15 @@ class HBHEDarkeningEP : public edm::ESProducer, public edm::EventSetupRecordInte edm::ValidityInterval&) override; private: - const edm::ParameterSet& pset_; + struct Dosemap { + edm::FileInPath fp; + int file_energy; + }; + std::vector dosemaps_; + std::vector years_; + const double drdA_; + const double drdB_; + const int ieta_shift_; }; #endif