35 ". Note: UseHV Overrides hv limit and chanstat values in joboptions!!");
38 return StatusCode::SUCCESS;
45 return StatusCode::SUCCESS;
51 if (writeHandle.isValid()) {
52 ATH_MSG_DEBUG(
"CondHandle " << writeHandle.fullKey() <<
" is already valid."
53 <<
". In theory this should not be called, but may happen"
54 <<
" if multiple concurrent events are being processed out of order.");
55 return StatusCode::SUCCESS;
61 if (readCdoState==
nullptr) {
62 ATH_MSG_FATAL(
"Null pointer to the read conditions object (state)");
63 return StatusCode::FAILURE;
66 writeHandle.addDependency(readHandleState);
67 ATH_MSG_INFO(
"Size of CondAttrListCollection " << readHandleState.fullKey() <<
" readCdo->size()= " << readCdoState->size());
68 ATH_MSG_INFO(
"Range of state input is " << readHandleState.getRange());
71 std::unique_ptr<SCT_DCSStatCondData> writeCdoState{std::make_unique<SCT_DCSStatCondData>()};
76 std::string paramState{
"STATE"};
80 for (; attrListState!=endState; ++attrListState) {
84 if (
payload.exists(paramState) and not
payload[paramState].isNull()) {
85 unsigned int val{
payload[paramState].data<
unsigned int>()};
86 unsigned int hvstate{(
val >> 4) & 0xF};
87 unsigned int lvstate{
val & 0xF};
89 and not ((hvstate==
ON or hvstate==
MANUAL)
90 and (lvstate==
ON or lvstate==
MANUAL)))
97 writeCdoState->fill(channelNumber, paramState);
99 writeCdoState->remove(channelNumber, paramState);
102 ATH_MSG_WARNING(paramState <<
" does not exist for ChanNum " << channelNumber);
110 if (readCdoHV==
nullptr) {
111 ATH_MSG_FATAL(
"Null pointer to the read conditions object (HV)");
112 return StatusCode::FAILURE;
115 writeHandle.addDependency(readHandleHV);
116 ATH_MSG_INFO(
"Size of CondAttrListCollection " << readHandleHV.fullKey() <<
" readCdo->size()= " << readCdoHV->size());
117 ATH_MSG_INFO(
"Range of HV input is " << readHandleHV.getRange());
119 std::string paramHV{
"HVCHVOLT_RECV"};
123 for (; attrListHV!=endHV; ++attrListHV) {
128 float hvval{
payload[paramHV].data<
float>()};
130 writeCdoState->fill(channelNumber, paramHV);
132 writeCdoState->remove(channelNumber, paramHV);
135 ATH_MSG_WARNING(paramHV <<
" does not exist for ChanNum " << channelNumber);
141 if (writeHandle.record(std::move(writeCdoState)).isFailure()) {
142 ATH_MSG_FATAL(
"Could not record SCT_DCSStatCondData " << writeHandle.key()
143 <<
" with EventRange " << writeHandle.getRange()
144 <<
" into Conditions Store");
145 return StatusCode::FAILURE;
147 ATH_MSG_INFO(
"recorded new CDO " << writeHandle.key() <<
" with range " << writeHandle.getRange() <<
" into Conditions Store");
149 return StatusCode::SUCCESS;
155 return StatusCode::SUCCESS;