223 if (objectKey.empty()) {
224 edm::LogError(
"L1-O2O: L1TCaloParamsOnlineProd") <<
"Key is empty";
226 throw std::runtime_error(
"SummaryForFunctionManager: Calo | Faulty | Empty objectKey");
228 edm::LogError(
"L1-O2O: L1TCaloParamsOnlineProd") <<
"returning unmodified prototype of l1t::CaloParams";
229 return std::make_unique<const l1t::CaloParams>(baseSettings);
233 std::string tscKey = objectKey.substr(0, objectKey.find(
':'));
234 std::string rsKey = objectKey.substr(objectKey.find(
':') + 1, std::string::npos);
237 <<
"Producing L1TCaloParamsOnlineProd with TSC key = " << tscKey <<
" and RS key = " << rsKey;
241 std::string calol2_top_key, calol2_algo_key, calol2_hw_key;
243 std::map<std::string, std::string> calol2_algo_payloads;
245 std::map<std::string, std::string> topKeys =
249 calol1_top_key = topKeys[
"CALOL1_KEY"];
253 calol1_algo_payload =
258 calol2_top_key = topKeys[
"CALOL2_KEY"];
260 std::map<std::string, std::string> calol2_keys =
263 calol2_hw_key = calol2_keys[
"HW"];
267 calol2_algo_key = calol2_keys[
"ALGO"];
269 std::map<std::string, std::string> calol2_algo_keys =
275 for (
auto&
key : calol2_algo_keys)
276 calol2_algo_payloads[
key.second] =
280 }
catch (std::runtime_error&
e) {
283 throw std::runtime_error(
std::string(
"SummaryForFunctionManager: Calo | Faulty | ") +
e.what());
285 edm::LogError(
"L1-O2O: L1TCaloParamsOnlineProd") <<
"returning unmodified prototype of l1t::CaloParams";
286 return std::make_unique<const l1t::CaloParams>(baseSettings);
292 for (
auto& conf : calol2_algo_payloads) {
297 std::ofstream
output(
std::string(
"/tmp/").
append(calol2_hw_key.substr(0, calol2_hw_key.find(
'/'))).append(
".xml"));
298 output << calol2_hw_payload;
303 std::string(
"/tmp/").
append(calol1_algo_key.substr(0, calol1_algo_key.find(
'/'))).append(
".xml"));
304 output << calol1_algo_payload;
316 calol1.
addProcessor(
"processors",
"processors",
"-1",
"-1");
320 std::map<std::string, l1t::Parameter> calol1_conf = calol1.
getParameters(
"processors");
321 std::map<std::string, l1t::Mask> calol1_rs;
324 throw std::runtime_error(
"Parsing error for CaloLayer1");
326 }
catch (std::runtime_error&
e) {
329 throw std::runtime_error(
std::string(
"SummaryForFunctionManager: Calo | Faulty | ") +
e.what());
331 edm::LogError(
"L1-O2O: L1TCaloParamsOnlineProd") <<
"returning unmodified prototype of l1t::CaloParams";
332 return std::make_unique<const l1t::CaloParams>(baseSettings);
344 for (
auto& conf : calol2_algo_payloads) {
352 std::map<std::string, l1t::Parameter> calol2_conf = calol2.
getParameters(
"MP1");
353 std::map<std::string, l1t::Parameter> calol2_conf_demux = calol2.
getParameters(
"DEMUX");
354 calol2_conf.insert(calol2_conf_demux.begin(), calol2_conf_demux.end());
355 std::map<std::string, l1t::Mask> calol2_rs;
358 throw std::runtime_error(
"Parsing error for CaloLayer2");
360 }
catch (std::runtime_error&
e) {
363 throw std::runtime_error(
std::string(
"SummaryForFunctionManager: Calo | Faulty | ") +
e.what());
365 edm::LogError(
"L1-O2O: L1TCaloParamsOnlineProd") <<
"returning unmodified prototype of l1t::CaloParams";
366 return std::make_unique<const l1t::CaloParams>(baseSettings);
371 auto retval = std::make_unique<const l1t::CaloParams>(m_params_helper);
373 edm::LogInfo(
"L1-O2O: L1TCaloParamsOnlineProd") <<
"SummaryForFunctionManager: Calo | OK | All looks good";
void setConfigured(bool state=true) noexcept
Log< level::Error, false > LogError
const edm::ESGetToken< l1t::CaloParams, L1TCaloParamsRcd > baseSettings_token
l1t::OMDSReader m_omdsReader
PRODUCT const & get(ESGetToken< PRODUCT, T > const &iToken) const
void readDOMFromString(const std::string &str, xercesc::DOMDocument *&doc)
const std::map< std::string, Parameter > & getParameters(const char *processor) const
static std::map< std::string, std::string > fetch(const std::vector< std::string > &queryColumns, const std::string &table, const std::string &key, l1t::OMDSReader &m_omdsReader)
bool readCaloLayer2OnlineSettings(l1t::CaloParamsHelperO2O ¶msHelper, std::map< std::string, l1t::Parameter > &conf, std::map< std::string, l1t::Mask > &)
Log< level::Info, false > LogInfo
void readRootElement(TriggerSystem &aTriggerSystem, const std::string &sysId="")
bool readCaloLayer1OnlineSettings(l1t::CaloParamsHelperO2O ¶msHelper, std::map< std::string, l1t::Parameter > &conf, std::map< std::string, l1t::Mask > &)
void addProcessor(const char *processor, const char *role, const char *crate, const char *slot)
const unsigned int exclusiveLayer
const bool transactionSafe