36 return StatusCode::SUCCESS;
44 return StatusCode::FAILURE;
52 std::unique_ptr<LArFebRodMapping> febRodMap=std::make_unique<LArFebRodMapping>(onlineID);
58 const coral::Blob& blobFebRod=(*attr)[
"FebHashToRODs"].data<coral::Blob>();
59 const unsigned nFebRod=blobFebRod.size()/
sizeof(uint32_t);
62 <<
" from identifier dictionary, got " << nFebRod <<
" from mapping database.");
63 return StatusCode::FAILURE;
66 febRodMap->m_pFebHashtoROD=
static_cast<const uint32_t*
>(blobFebRod.startingAddress());
69 std::set<HWIdentifier> allReadoutModuleIds;
70 for (
unsigned i=0;i<nFebRod;++i) {
71 allReadoutModuleIds.insert(
HWIdentifier(febRodMap->m_pFebHashtoROD[i]));
75 febRodMap->m_readoutModuleIDVec.reserve(allReadoutModuleIds.size());
76 std::copy(allReadoutModuleIds.begin(),allReadoutModuleIds.end(),std::back_inserter(febRodMap->m_readoutModuleIDVec));
78 msg(MSG::INFO) <<
"Done reading Feb/Rod mapping. Found " << nFebRod <<
" Febs and " << febRodMap->m_readoutModuleIDVec.size() <<
" Rods" <<
endmsg;
80 if(writeHandle.
record(std::move(febRodMap)).isFailure()) {
81 ATH_MSG_ERROR(
"Could not record LArFebRodMapping object with "
83 <<
" with EventRange " << writeHandle.
getRange()
84 <<
" into Conditions Store");
85 return StatusCode::FAILURE;
87 ATH_MSG_INFO(
"recorded new " << writeHandle.
key() <<
" with range " << writeHandle.
getRange() <<
" into Conditions Store");
90 return StatusCode::SUCCESS;