9 #include "CoralBase/AttributeListException.h"
13 , m_ignoreRecoverable(true)
14 , m_readKey(
"/GLOBAL/DETSTATUS/DEFECTS")
45 return StatusCode::SUCCESS;
53 if(writeHandle.isValid()) {
55 ATH_MSG_DEBUG(
"CondHandle " << writeHandle.fullKey() <<
" is already valid.");
56 return StatusCode::SUCCESS;
60 std::unique_ptr<AthenaAttributeList> attribListW = std::make_unique<AthenaAttributeList>(*
m_attribListSpec);
61 (*attribListW)[
"Accept"].setValue(
true);
65 if (attrListCol ==
nullptr) {
67 return StatusCode::FAILURE;
70 ATH_MSG_DEBUG(
"Col range " <<
" iov min " << attrListCol->minRange().start().event() <<
" iov max " << attrListCol->minRange().stop().event());
75 if (attrListCol->chanAttrListPair(*defect_iter) != attrListCol->end()){
77 &(attrListCol->attributeList( (*defect_iter) ));
78 ATH_MSG_DEBUG(
"FOUND CHANNEL " << (*defect_iter) <<
" is: " << (*attrList)[
"present"].data<bool>());
79 ATH_MSG_DEBUG(
"current channel : " << (*defect_iter) <<
" Name : " << attrListCol->chanName(*defect_iter) <<
" : iovrange " << attrListCol->iovRange(*defect_iter).start().event() <<
" : " << attrListCol->iovRange(*defect_iter).stop().event());
80 ATH_MSG_DEBUG(
"Check address " << attrList <<
" : " << *attrList);
81 if ((*attrList)[
"present"].data<bool>() != 0){
85 (*attribListW)[
"Accept"].setValue(
false);
91 writeHandle.addDependency(readHandle);
93 if(writeHandle.record(attribListW.release()).isFailure()) {
94 ATH_MSG_ERROR(
"Could not record DQ AthenaAttributeList object with "
96 <<
" with EventRange " << writeHandle.getRange()
97 <<
" into Conditions Store");
98 return StatusCode::FAILURE;
100 ATH_MSG_INFO(
"recorded new " << writeHandle.key() <<
" with range " << writeHandle.getRange() <<
" into Conditions Store");
102 return StatusCode::SUCCESS;