19 m_writeStmt =
nullptr;
35 fetchLastData(fillMap);
43 "SELECT cv.name, cv.logic_id, cv.id1, cv.id2, cv.id3, cv.maps_to, " 44 " d.actual_vmon, h.nominal_value , d.change_date " 50 ".HV_MAPPING h on h.DPID = d.DPID " 53 ".CHANNELVIEW cv on cv.logic_id=h.logic_id WHERE cv.maps_to = cv.name " 54 " AND d.change_date> :1 AND d.actual_vmon is not null order by change_date ";
56 m_readStmt->setSQL(query);
58 m_readStmt->setDate(1, dh.
tmToDate(timeStart));
60 rset = m_readStmt->executeQuery();
61 }
catch (SQLException&
e) {
62 #if defined(_GLIBCXX_USE_CXX11_ABI) && (_GLIBCXX_USE_CXX11_ABI == 0) 63 throw(std::runtime_error(
std::string(
"RunDCSHVDat::getBarrelRset(): ") + e.getMessage() +
" " +
query));
65 throw(std::runtime_error(
std::string(
"RunDCSHVDat::getBarrelRset(): error code ") +
66 std::to_string(e.getErrorCode()) +
" " + query));
77 "SELECT cv.name, cv.logic_id, cv.id1, cv.id2, cv.id3, cv.maps_to, " 78 " d.actual_vmon, '800' nominal_value , d.change_date " 84 ".EE_HVA_MAPPING h on h.DPID = d.DPID " 87 ".CHANNELVIEW cv on cv.logic_id=h.logic_id WHERE cv.maps_to = cv.name " 88 " AND d.change_date> :1 AND d.actual_vmon is not null order by change_date ";
90 m_readStmt->setSQL(query);
92 m_readStmt->setDate(1, dh.
tmToDate(timeStart));
94 rset = m_readStmt->executeQuery();
95 }
catch (SQLException&
e) {
96 #if defined(_GLIBCXX_USE_CXX11_ABI) && (_GLIBCXX_USE_CXX11_ABI == 0) 97 throw(std::runtime_error(
std::string(
"RunDCSHVDat::getBarrelRset(): ") + e.getMessage() +
" " +
query));
99 throw(std::runtime_error(
std::string(
"RunDCSHVDat::getBarrelRset(): error code ") +
100 std::to_string(e.getErrorCode()) +
" " + query));
111 "SELECT cv.name, cv.logic_id, cv.id1, cv.id2, cv.id3, cv.maps_to, " 112 " d.actual_vmon, '600' nominal_value , d.change_date " 118 ".EE_HVD_MAPPING h on h.DPID = d.DPID " 121 ".CHANNELVIEW cv on cv.logic_id=h.logic_id WHERE cv.maps_to = cv.name " 122 " AND d.change_date> :1 AND d.actual_vmon is not null order by change_date ";
124 m_readStmt->setSQL(query);
126 m_readStmt->setDate(1, dh.
tmToDate(timeStart));
128 rset = m_readStmt->executeQuery();
129 }
catch (SQLException&
e) {
130 #if defined(_GLIBCXX_USE_CXX11_ABI) && (_GLIBCXX_USE_CXX11_ABI == 0) 131 throw(std::runtime_error(
std::string(
"RunDCSHVDat::getBarrelRset(): ") + e.getMessage() +
" " +
query));
133 throw(std::runtime_error(
std::string(
"RunDCSHVDat::getBarrelRset(): error code ") +
134 std::to_string(e.getErrorCode()) +
" " + query));
162 "SELECT cv.name, cv.logic_id, cv.id1, cv.id2, cv.id3, cv.maps_to, " 163 " d.VALUE_NUMBER, h.nominal_value , d.CHANGE_DATE " 166 ".FWCAENCHANNEL_LV d " 170 " h.DPID = d.DPID join channelview cv on cv.logic_id=h.logic_id WHERE cv.maps_to = cv.name and " 171 "DPE_NAME='ACTUAL_VMON' ";
173 m_readStmt->setSQL(query);
174 rset = m_readStmt->executeQuery();
175 }
catch (SQLException&
e) {
176 #if defined(_GLIBCXX_USE_CXX11_ABI) && (_GLIBCXX_USE_CXX11_ABI == 0) 177 throw(std::runtime_error(
std::string(
"RunDCSHVDat::getBarrelRset(): ") + e.getMessage() +
" " +
query));
179 throw(std::runtime_error(
std::string(
"RunDCSHVDat::getBarrelRset(): error code ") +
180 std::to_string(e.getErrorCode()) +
" " + query));
189 "SELECT cv.name, cv.logic_id, cv.id1, cv.id2, cv.id3, cv.maps_to, " 190 " d.value_number, '800' NOMINAL_VALUE , d.CHANGE_DATE " 193 ".FWCAENCHANNEL_LV d " 196 ".EE_HVA_MAPPING h on " 197 " h.DPID = d.DPID join channelview cv on cv.logic_id=h.logic_id WHERE cv.maps_to = cv.name and " 198 "dpe_name='ACTUAL_VMON' ";
200 m_readStmt->setSQL(query);
201 rset = m_readStmt->executeQuery();
202 }
catch (SQLException&
e) {
203 #if defined(_GLIBCXX_USE_CXX11_ABI) && (_GLIBCXX_USE_CXX11_ABI == 0) 204 throw(std::runtime_error(
std::string(
"RunDCSHVDat::getEndcapAnodeRset(): ") + e.getMessage() +
" " +
query));
206 throw(std::runtime_error(
std::string(
"RunDCSHVDat::getEndcapAnodeRset(): error code ") +
207 std::to_string(e.getErrorCode()) +
" " + query));
216 "SELECT cv.name, cv.logic_id, cv.id1, cv.id2, cv.id3, cv.maps_to, " 217 " d.value_number, '600' NOMINAL_VALUE , d.CHANGE_DATE " 220 ".FWCAENCHANNEL_LV d " 223 ".EE_HVD_MAPPING h on " 224 " h.DPID = d.DPID join channelview cv on cv.logic_id=h.logic_id WHERE cv.maps_to = cv.name and " 225 "dpe_name='ACTUAL_VMON' ";
227 m_readStmt->setSQL(query);
228 rset = m_readStmt->executeQuery();
229 }
catch (SQLException&
e) {
230 #if defined(_GLIBCXX_USE_CXX11_ABI) && (_GLIBCXX_USE_CXX11_ABI == 0) 231 throw(std::runtime_error(
std::string(
"RunDCSHVDat::getEndcapDynodeRset(): ") + e.getMessage() +
" " +
query));
233 throw(std::runtime_error(
std::string(
"RunDCSHVDat::getEndcapDynodeRset(): error code ") +
234 std::to_string(e.getErrorCode()) +
" " + query));
243 std::pair<EcalLogicID, RunDCSHVDat>
p;
248 while (rset->next()) {
256 dat.
setHV(rset->getFloat(7));
258 Date sinceDate = rset->getDate(9);
261 if (p.first.getName() ==
"EB_HV_channel") {
262 setStatusForBarrel(dat, sinceTm);
264 setStatusForEndcaps(dat, sinceTm);
269 }
catch (SQLException&
e) {
270 #if defined(_GLIBCXX_USE_CXX11_ABI) && (_GLIBCXX_USE_CXX11_ABI == 0) 271 throw(std::runtime_error(
std::string(
"RunDCSHVDat::fetchData(): ") + e.getMessage()));
273 throw(std::runtime_error(
std::string(
"RunDCSHVDat::fetchData(): error code ") + std::to_string(e.getErrorCode())));
289 while (rset->next()) {
297 dat.
setHV(rset->getFloat(7));
302 Timestamp ora_timestamp = rset->getTimestamp(9);
304 #if defined(_GLIBCXX_USE_CXX11_ABI) && (_GLIBCXX_USE_CXX11_ABI == 0) 305 sinceTm.
setToString(ora_timestamp.toText(
"yyyy-mm-dd hh24:mi:ss", 0));
308 unsigned int month = 0;
309 unsigned int day = 0;
310 unsigned int hour = 0;
311 unsigned int minute = 0;
314 ora_timestamp.getDate(year, month, day);
315 ora_timestamp.getTime(hour, minute, second, fs);
316 const std::tm
tt = {.tm_sec =
static_cast<int>(
second),
317 .tm_min = static_cast<int>(minute),
318 .tm_hour =
static_cast<int>(hour),
319 .tm_mday = static_cast<int>(day),
320 .tm_mon =
static_cast<int>(month),
321 .tm_year = year - 1900,
327 char tt_str[30] = {0};
328 if (std::strftime(tt_str,
sizeof(tt_str),
"%F %T", &
tt)) {
331 throw std::runtime_error(
"RunDCSHVDat::fillTheMapByTime: failed to generate the date string");
336 if (ec.
getName() ==
"EB_HV_channel") {
337 setStatusForBarrel(dat, sinceTm);
339 setStatusForEndcaps(dat, sinceTm);
342 std::pair<EcalLogicID, RunDCSHVDat>
d;
345 std::pair<Tm, std::pair<EcalLogicID, RunDCSHVDat> >
p;
352 my_data_list->push_back(pp);
355 std::cout <<
"DCS DB : size:" << my_data_list->size() <<
" Tm " << sinceTm.
str() <<
" " << ec.
getID1() <<
" " 358 std::cout <<
"DCS DB : size:" << my_data_list->size() << std::endl;
360 }
catch (SQLException&
e) {
361 #if defined(_GLIBCXX_USE_CXX11_ABI) && (_GLIBCXX_USE_CXX11_ABI == 0) 362 throw(std::runtime_error(
std::string(
"RunDCSHVDat::fetchData(): ") + e.getMessage()));
364 throw(std::runtime_error(
std::string(
"RunDCSHVDat::fetchData(): error code ") + std::to_string(e.getErrorCode())));
373 int t_now_gmt_micros = t_now_gmt.
microsTime();
374 return t_now_gmt_micros;
378 int t_now_gmt_micros = nowMicroseconds();
383 if (hv_diff * 1000 > maxHVDifferenceEB) {
386 if (dat.
getHV() * 1000 < minHV) {
391 long long d = (t_now_gmt_micros - sinceTm.
microsTime());
392 if (d > maxDifference) {
393 result = -d / 1000000;
399 int t_now_gmt_micros = nowMicroseconds();
404 if (dat.
getHV() * 1000 < minHV) {
409 long long d = (t_now_gmt_micros - sinceTm.
microsTime());
410 if (d > maxDifference) {
411 result = -d / 1000000;
417 this->checkConnection();
422 std::pair<EcalLogicID, RunDCSHVDat>
p;
427 fillTheMap(rset, fillMap);
428 rset = getEndcapAnodeRset();
430 fillTheMap(rset, fillMap);
431 rset = getEndcapDynodeRset();
433 fillTheMap(rset, fillMap);
434 }
catch (SQLException&
e) {
435 #if defined(_GLIBCXX_USE_CXX11_ABI) && (_GLIBCXX_USE_CXX11_ABI == 0) 436 throw(std::runtime_error(
std::string(
"RunDCSHVDat::fetchData(): ") + e.getMessage()));
438 throw(std::runtime_error(
std::string(
"RunDCSHVDat::fetchData(): error code ") + std::to_string(e.getErrorCode())));
445 this->checkConnection();
449 std::list<DataReducer<RunDCSHVDat>::MyData<
RunDCSHVDat> > my_data_list;
452 std::pair<EcalLogicID, RunDCSHVDat>
p;
455 ResultSet* rset1 = getBarrelRset(timeStart);
456 fillTheMapByTime(rset1, &my_data_list);
458 ResultSet* rset2 = getEndcapAnodeRset(timeStart);
459 fillTheMapByTime(rset2, &my_data_list);
461 ResultSet* rset3 = getEndcapDynodeRset(timeStart);
462 fillTheMapByTime(rset3, &my_data_list);
468 }
catch (SQLException&
e) {
469 #if defined(_GLIBCXX_USE_CXX11_ABI) && (_GLIBCXX_USE_CXX11_ABI == 0) 470 throw(std::runtime_error(
std::string(
"RunDCSHVDat::fetchData(): ") + e.getMessage()));
472 throw(std::runtime_error(
std::string(
"RunDCSHVDat::fetchData(): error code ") + std::to_string(e.getErrorCode())));
void setDataList(std::list< MyData< T > > _list)
oracle::occi::ResultSet ResultSet
float getHVNominal() const
void setStatusForEndcaps(RunDCSHVDat &, const Tm &)
ResultSet * getEndcapDynodeRset()
void writeDB(const EcalLogicID *ecid, const RunDCSHVDat *item, RunIOV *iov) noexcept(false)
ResultSet * getEndcapAnodeRset()
ResultSet * getBarrelRset()
void fetchHistoricalData(std::list< std::pair< Tm, std::map< EcalLogicID, RunDCSHVDat > > > *fillMap, const Tm &timeStart) noexcept(false)
void setToCurrentGMTime()
void fetchData(std::map< EcalLogicID, RunDCSHVDat > *fillMap, RunIOV *iov) noexcept(false)
void setStatusForBarrel(RunDCSHVDat &, const Tm &)
uint64_t microsTime() const
U second(std::pair< T, U > const &p)
std::string getName() const
oracle::occi::Date tmToDate(const Tm &inTm) const
void getReducedDataList(std::list< std::pair< Tm, DataMap > > *my_new_list)
void fetchLastData(std::map< EcalLogicID, RunDCSHVDat > *fillMap) noexcept(false)
void prepareWrite() noexcept(false) override
void setTimeStatus(int t)
void setToString(const std::string s) noexcept(false)
void setHVNominal(float t)
void fillTheMapByTime(ResultSet *rset, std::list< DataReducer< RunDCSHVDat >::MyData< RunDCSHVDat > > *my_data_list)
void fillTheMap(ResultSet *, std::map< EcalLogicID, RunDCSHVDat > *)
Tm dateToTm(oracle::occi::Date &date) const
How EventSelector::AcceptEvent() decides whether to accept an event for output otherwise it is excluding the probing of A single or multiple positive and the trigger will pass if any such matching triggers are PASS or EXCEPTION[A criterion thatmatches no triggers at all is detected and causes a throw.] A single negative with an expectation of appropriate bit checking in the decision and the trigger will pass if any such matching triggers are FAIL or EXCEPTION A wildcarded negative criterion that matches more than one trigger in the trigger list("!*","!HLTx*"if it matches 2 triggers or more) will accept the event if all the matching triggers are FAIL.It will reject the event if any of the triggers are PASS or EXCEPTION(this matches the behavior of"!*"before the partial wildcard feature was incorporated).Triggers which are in the READY state are completely ignored.(READY should never be returned since the trigger paths have been run