21 return StatusCode::SUCCESS;
26 if (writeHandle.isValid()) {
27 ATH_MSG_DEBUG(
"CondHandle " << writeHandle.fullKey() <<
" is already valid."
28 <<
". In theory this should not be called, but may happen"
29 <<
" if multiple concurrent events are being processed out of order.");
30 return StatusCode::SUCCESS;
34 std::unique_ptr<NswAsBuiltDbData> writeCdo{std::make_unique<NswAsBuiltDbData>()};
38 if (!readHandle.isValid()) {
39 ATH_MSG_ERROR(
"Null pointer to the read MM/ASBUILTPARAMS conditions object");
40 return StatusCode::FAILURE;
42 writeHandle.addDependency(readHandle);
43 ATH_MSG_INFO(
"Size of MM/ASBUILTPARAMS CondAttrListCollection " << readHandle.fullKey()
44 <<
" ->size()= " << readHandle->size());
45 unsigned int nLines{0};
48 const std::string
data{*(
static_cast<const std::string*
>((atr[
"data"]).addressOfData()))};
49 ATH_MSG_DEBUG(__FILE__<<
":"<<__LINE__<<
" data load is " <<
data <<
" FINISHED HERE ");
50 writeCdo->microMegaData = std::make_unique<NswAsBuilt::StripCalculator>();
51 writeCdo->microMegaData->parseJSON(
data);
55 ATH_MSG_FATAL(nLines <<
" data objects were loaded for MM/ASBUILTPARAMS! Expected only one for this validity range!");
56 return StatusCode::FAILURE;
60 ATH_MSG_INFO(
"Load micromega as-built constants from a JSON file");
62 if (!thefile.good()) {
64 return StatusCode::FAILURE;
68 writeCdo->microMegaData = std::make_unique<NswAsBuilt::StripCalculator>();
69 writeCdo->microMegaData->parseJSON(
buffer.str());
72 if (!writeCdo->microMegaData) {
73 ATH_MSG_ERROR(
"No AsBuilt constants were loaded. Please check the algorithm configucration");
74 return StatusCode::FAILURE;
76 ATH_CHECK(writeHandle.record(std::move(writeCdo)));
77 return StatusCode::SUCCESS;