17 return StatusCode::SUCCESS;
25 if (writeHandle.isValid()) {
27 return StatusCode::SUCCESS;
30 std::unique_ptr<LArBadFebCont> badFebCont=std::make_unique<LArBadFebCont>();
37 if (attrList==
nullptr) {
39 return StatusCode::FAILURE;
41 writeHandle.addDependency(readHandle);
44 unsigned int chanSize = (*attrList)[
"ChannelSize"].data<
unsigned int>();
45 unsigned int stateSize = (*attrList)[
"StatusWordSize"].data<
unsigned int>();
46 unsigned int endian = (*attrList)[
"Endianness"].data<
unsigned int>();
47 unsigned int version = (*attrList)[
"Version"].data<
unsigned int>();
49 std::vector<std::pair<HWIdentifier,LArBadFeb> > bcVec =
50 LArBadChanBlobUtils::decodeBlob<LArBadFeb>( &
blob, chanSize, stateSize, endian,
53 for (
auto& idBC : bcVec) {
54 badFebCont->
add(idBC.first,idBC.second);
68 for (
auto& idBC : bcVec) {
69 badFebCont->
add(idBC.first,idBC.second);
75 size_t nChanBeforeMege=badFebCont->
size();
78 ATH_MSG_INFO(
"Read a total of " << badFebCont->
size() <<
" problematic febs from database");
79 if (nChanBeforeMege!=badFebCont->
size()) {
80 ATH_MSG_INFO(
"Merged " << nChanBeforeMege-badFebCont->
size() <<
" duplicate entries");
83 if(writeHandle.record(std::move(badFebCont)).isFailure()) {
86 <<
" with EventRange " << writeHandle.getRange()
87 <<
" into Conditions Store");
88 return StatusCode::FAILURE;
92 <<
" with EventRange " << writeHandle.getRange()
93 <<
" into Conditions Store");
96 return StatusCode::SUCCESS;