92{
93
94 auto attrList = getAttrList();
95
96
97 IOVTime iovTimeStart(attrList[
"RunNumber"].data<unsigned int>(),0);
98 IOVTime iovTimeStop(attrList[
"RunNumber"].data<unsigned int>()+1,0);
99 IOVRange iovRange(iovTimeStart, iovTimeStop);
100
101 auto sor = std::make_unique<SOR>(true);
102 sor->add(SOR::ChanNum{0}, attrList);
103 sor->add(SOR::ChanNum{0}, iovRange);
104 sor->resetMinRange();
105 sor->addNewStart(iovTimeStart);
106 sor->addNewStop(iovTimeStop);
107
108
109 if ( m_detStore->transientContains<SOR>(m_sorpath) ) {
110 const SOR * oldsor = m_detStore->retrieve<const SOR>(m_sorpath);
111 ATH_MSG_INFO(
"Overwriting SOR contents (a dump of the old one follows):");
112 oldsor->dump();
113 ATH_CHECK( m_detStore->overwrite(std::move(sor), m_sorpath,
true) );
114 }
115 else {
117 ATH_CHECK( m_detStore->record(std::move(sor), m_sorpath,
true) );
118 }
119 const SOR * recsor = m_detStore->retrieve<const SOR>(m_sorpath);
120
123
125 recsor->dump();
126
127 return StatusCode::SUCCESS;
128}
#define ATH_CHECK
Evaluate an expression and check for errors.
Basic time unit for IOVSvc.