CMS 3D CMS Logo

EcalCondDBInterface.h
Go to the documentation of this file.
1 /***********************************************/
2 /* EcalCondDBInterface.h */
3 /* */
4 /* */
5 /* Interface to the Ecal Conditions DB. */
6 /***********************************************/
7 
8 #ifndef ECALCONDDBINTERFACE_HH
9 #define ECALCONDDBINTERFACE_HH
10 
11 #include <iostream>
12 #include <string>
13 #include <vector>
14 #include <map>
15 #include <stdexcept>
17 
33 
36 
38 public:
39  /******************\
40  - public methods -
41  \******************/
42 
53  : EcalDBConnection(host, sid, user, pass, port) {
54  // call the parent constructor
55 
56  // create a DateHandler
57  dh = new DateHandler(env, conn);
58  }
59 
68  // call the parent constructor
69 
70  // create a DateHandler
71  dh = new DateHandler(env, conn);
72  }
73 
78  // call the parent destructor
79 
80  // destroy the DateHandler
81  delete (dh);
82  }
83 
87  inline DateHandler* getDateHandler() { return dh; }
88 
100  int id3 = EcalLogicID::NULLID,
101  std::string mapsTo = "") noexcept(false);
102 
108  std::vector<EcalLogicID> getEcalLogicIDMappedTo(int logic_id, std::string maps_to);
109 
110  std::vector<EcalLogicID> getEcalLogicIDForLMR(int lmr_logic_id);
111  std::vector<EcalLogicID> getEcalLogicIDForLMR(const EcalLogicID& lmr_logic_id);
112  std::vector<EcalLogicID> getEcalLogicIDForLMPN(int lmr_logic_id);
113  std::vector<EcalLogicID> getEcalLogicIDForLMPN(const EcalLogicID& lmr_logic_id);
114 
121  EcalLogicID getEcalLogicID(int logicID) noexcept(false);
122 
132  std::vector<EcalLogicID> getEcalLogicIDSet(std::string name,
133  int fromId1 = EcalLogicID::NULLID,
134  int toId1 = EcalLogicID::NULLID,
135  int fromId2 = EcalLogicID::NULLID,
136  int toId2 = EcalLogicID::NULLID,
137  int fromId3 = EcalLogicID::NULLID,
138  int toId3 = EcalLogicID::NULLID,
139  std::string mapsTo = "") noexcept(false);
140 
141  std::map<int, int> getEcalLogicID2LmrMap();
142  std::vector<EcalLogicID> getEcalLogicIDSetOrdered(std::string name,
143  int fromId1,
144  int toId1,
145  int fromId2 = EcalLogicID::NULLID,
146  int toId2 = EcalLogicID::NULLID,
147  int fromId3 = EcalLogicID::NULLID,
148  int toId3 = EcalLogicID::NULLID,
149  std::string mapsTo = "",
150  int orderedBy = EcalLogicID::NULLID) noexcept(false);
151 
155  void insertRunIOV(RunIOV* iov) noexcept(false);
156  // updates the end time of an iov
157  void updateRunIOV(RunIOV* iov) noexcept(false);
158  void updateRunIOVStartTime(RunIOV* iov) noexcept(false);
159  void updateRunIOVEndTime(RunIOV* iov) noexcept(false);
160 
161  void updateRunConfig(ODRunConfigInfo* od) noexcept(false);
162 
163  void insertLmfIOV(LMFIOV* iov) noexcept(false);
164  void insertLmfLmrSubIOV(LMFLmrSubIOV* iov) noexcept(false);
165  void insertLmfSeq(LMFSeqDat* iov) noexcept(false);
166  void insertLmfRunIOV(LMFRunIOV* iov) noexcept(false);
167  void insertLmfDat(LMFDat* dat) noexcept(false);
168  void insertLmfDat(std::list<LMFDat*> dat) noexcept(false);
169 
174  std::list<ODDelaysDat> fetchFEDelaysForRun(RunIOV* iov) noexcept(false);
175 
180 
187 
188  RunIOV fetchRunIOV(std::string location, const Tm& t) noexcept(false);
189 
193  void insertMonRunIOV(MonRunIOV* iov) noexcept(false);
194 
198  void insertDCUIOV(DCUIOV* iov) noexcept(false);
199 
203  MonRunIOV fetchMonRunIOV(RunTag* runtag, MonRunTag* montag, run_t run, subrun_t monrun) noexcept(false);
204 
208  DCUIOV fetchDCUIOV(DCUTag* tag, const Tm& evenTm) noexcept(false);
209 
213  LMFRunIOV fetchLMFRunIOV(RunTag* runtag, LMFRunTag* lmftag, run_t run, subrun_t lmfrun) noexcept(false);
214  bool fetchLMFRunIOV(const LMFSeqDat&, LMFRunIOV&, int lmr, int type, int color) const;
215  RunIOV fetchLMFLastRun() const;
216 
220  CaliIOV fetchCaliIOV(CaliTag* tag, const Tm& evenTm) noexcept(false);
221 
225  RunList fetchRunList(const RunTag& tag) noexcept(false);
226  RunList fetchRunList(const RunTag& tag, int min_run, int max_run) noexcept(false);
227  RunList fetchNonEmptyRunList(const RunTag& tag, int min_run, int max_run) noexcept(false);
228  RunList fetchNonEmptyGlobalRunList(const RunTag& tag, int min_run, int max_run) noexcept(false);
229  RunList fetchRunListByLocation(const RunTag& tag, int min_run, int max_run, const LocationDef& locDef) noexcept(false);
231  int min_run,
232  int max_run,
233  const LocationDef& locDef) noexcept(false);
234  RunList fetchRunListLastNRuns(const RunTag& tag, int max_run, int n_runs) noexcept(false);
235 
241  DCSPTMTempList fetchDCSPTMTempList(const EcalLogicID& ecid, const Tm& start, const Tm& end) noexcept(false);
242 
243  MonRunList fetchMonRunList(const RunTag& tag, const MonRunTag& monruntag) noexcept(false);
244  MonRunList fetchMonRunList(const RunTag& tag, const MonRunTag& monruntag, int min_run, int max_run) noexcept(false);
246  const MonRunTag& monruntag,
247  int max_run,
248  int n_runs) noexcept(false);
249 
250  /*
251  * Insert a set of data at the given iov. If the iov does not yet
252  * exist in the database they will be written. Nothing is committed in the the event of
253  * an exception
254  */
255  // XXX TODO: Split declaration and definition using a macro
256  // XXX Naive method causes linker errors...
257  // XXX See example FWCore/Framework/interface/eventSetupGetImplementation.h
258 
259  template <class DATT, class IOVT>
260  void insertDataSet(const std::map<EcalLogicID, DATT>* data, IOVT* iov) noexcept(false) {
261  try {
262  iov->setConnection(env, conn);
263  // if it has not yet been written then write
264  if (iov->getID() == 0) {
265  std::cout << "IOV was not set we retrieve it from DB" << std::endl;
266  iov->fetchID();
267  }
268  if (iov->getID() == 0) {
269  std::cout << "IOV was not written we write it" << std::endl;
270  iov->writeDB();
271  }
272 
273  DATT dataIface;
274  dataIface.setConnection(env, conn);
275  dataIface.prepareWrite();
276 
277  const EcalLogicID* channel;
278  const DATT* dataitem;
279  typedef typename std::map<EcalLogicID, DATT>::const_iterator CI;
280  for (CI p = data->begin(); p != data->end(); ++p) {
281  channel = &(p->first);
282  dataitem = &(p->second);
283  dataIface.writeDB(channel, dataitem, iov);
284  }
285  conn->commit();
286  dataIface.terminateWriteStatement();
287  } catch (std::runtime_error& e) {
288  conn->rollback();
289  throw(e);
290  } catch (...) {
291  conn->rollback();
292  throw(std::runtime_error("EcalCondDBInterface::insertDataSet: Unknown exception caught"));
293  }
294  }
295 
296  //test for DB Array insertion
297  template <class DATT, class IOVT>
298  void insertDataArraySet(const std::map<EcalLogicID, DATT>* data, IOVT* iov) noexcept(false) {
299  try {
300  iov->setConnection(env, conn);
301  if (iov->getID() == 0) {
302  std::cout << "IOV was not set we retrieve it from DB" << std::endl;
303  iov->fetchID();
304  }
305  if (iov->getID() == 0) {
306  std::cout << "IOV was not written we write it" << std::endl;
307  iov->writeDB();
308  }
309 
310  std::cout << "id=" << iov->getID() << std::endl;
311 
312  DATT dataIface;
313  dataIface.setConnection(env, conn);
314  dataIface.prepareWrite();
315 
316  dataIface.writeArrayDB(data, iov);
317  conn->commit();
318 
319  dataIface.terminateWriteStatement();
320 
321  } catch (std::runtime_error& e) {
322  conn->rollback();
323  throw(e);
324  } catch (...) {
325  conn->rollback();
326  throw(std::runtime_error("EcalCondDBInterface::insertDataSet: Unknown exception caught"));
327  }
328  }
329 
330  template <class DATT, class IOVT>
331  void insertDataSetVector(const std::vector<EcalLogicID>& ecid,
332  const std::vector<IOVT>& run_iov,
333  const std::vector<DATT>& data) noexcept(false) {
334  int nruns = run_iov.size();
335 
336  if (run_iov.size() != ecid.size() && ecid.size() != data.size()) {
337  throw(std::runtime_error("EcalCondDBInterface::insertDataSetVector: vector sizes are different.."));
338  }
339 
340  try {
341  DATT dataIface;
342  dataIface.setConnection(env, conn);
343  dataIface.prepareWrite();
344 
345  for (int i = 0; i < nruns; i++) {
346  run_iov[i].setConnection(env, conn);
347  run_iov[i].writeDB();
348 
349  dataIface.writeDB(&ecid[i], &data[i], &run_iov[i]);
350 
351  conn->commit();
352  }
353  } catch (std::runtime_error& e) {
354  conn->rollback();
355  throw(e);
356  } catch (...) {
357  conn->rollback();
358  throw(std::runtime_error("EcalCondDBInterface::insertDataSet: Unknown exception caught"));
359  }
360  }
361 
362  // CONFIG DB methods
363 
364  template <class ICONF>
365  void insertConfigSet(ICONF* iconf) noexcept(false) {
366  try {
367  iconf->setConnection(env, conn);
368  iconf->prepareWrite();
369  // if it has not yet been written then write
370  iconf->writeDB();
371  std::cout << "iconf inserted with ID=" << iconf->getId() << std::endl;
372  conn->commit();
373  iconf->terminateWriteStatement();
374  } catch (std::runtime_error& e) {
375  conn->rollback();
376  throw(e);
377  } catch (...) {
378  conn->rollback();
379  throw(std::runtime_error("EcalCondDBInterface::insertDataSet: Unknown exception caught"));
380  }
381  }
382 
383  /*
384  * Fetch a config set
385  */
386  template <class ICONF>
387  void fetchConfigSet(ICONF* iconf) noexcept(false) {
388  iconf->clear();
389  iconf->setConnection(env, conn);
390  iconf->createReadStatement();
391  iconf->fetchData(iconf);
392  iconf->terminateReadStatement();
393  }
394 
395  /*
396  * Fetch a config set
397  */
398  template <class ICONF>
399  void fetchLastConfigSet(ICONF* iconf) noexcept(false) {
400  iconf->clear();
401  iconf->setConnection(env, conn);
402  iconf->createReadStatement();
403  iconf->fetchLastData(iconf);
404  iconf->terminateReadStatement();
405  }
406 
407  /*
408  * Insert a config data set
409  */
410  template <class DATT, class ICONF>
411  void insertConfigDataSet(const std::vector<DATT> data, ICONF* iconf) noexcept(false) {
412  try {
413  iconf->setConnection(env, conn);
414  // if it has not yet been written then write
415  if (iconf->getId() == 0) {
416  std::cout << "EcalCondDBInterface>> config_id was not set we retrieve it from DB" << std::endl;
417  iconf->fetchID();
418  }
419  if (iconf->getId() == 0) {
420  std::cout << "EcalCondDBInterface>> configuration info was not written we write it" << std::endl;
421  iconf->writeDB();
422  }
423 
424  DATT dataIface;
425  dataIface.setConnection(env, conn);
426  dataIface.prepareWrite();
427 
428  const DATT* dataitem;
429 
430  for (int p = 0; p != data->size(); ++p) {
431  dataitem = data[p];
432  dataIface.writeDB(dataitem, iconf);
433  }
434  conn->commit();
435  dataIface.terminateWriteStatement();
436  } catch (std::runtime_error& e) {
437  conn->rollback();
438  throw(e);
439  } catch (...) {
440  conn->rollback();
441  throw(std::runtime_error("EcalCondDBInterface::insertConfigDataSet: Unknown exception caught"));
442  }
443  }
444  /*
445  * insert a config data set array fast
446  */
447  template <class DATT, class ICONF>
448  void insertConfigDataArraySet(const std::vector<DATT>& data, ICONF* iconf) noexcept(false) {
449  try {
450  iconf->setConnection(env, conn);
451  // if it has not yet been written then write
452  if (iconf->getId() == 0) {
453  std::cout << "EcalCondDBInterface>> config_id was not set we retrieve it from DB" << std::endl;
454  iconf->fetchID();
455  }
456  if (iconf->getId() == 0) {
457  std::cout << "EcalCondDBInterface>> configuration info was not written we write it" << std::endl;
458  iconf->writeDB();
459  }
460 
461  DATT dataIface;
462  dataIface.setConnection(env, conn);
463  dataIface.prepareWrite();
464 
465  dataIface.writeArrayDB(data, iconf);
466  conn->commit();
467 
468  dataIface.terminateWriteStatement();
469 
470  } catch (std::runtime_error& e) {
471  conn->rollback();
472  throw(e);
473  } catch (...) {
474  conn->rollback();
475  throw(std::runtime_error("EcalCondDBInterface::insertConfigDataArraySet: Unknown exception caught"));
476  }
477  }
478  /*
479  * Fetch a set of data based on an EXACT match of an iov
480  */
481  template <class DATT, class ICONF>
482  void fetchConfigDataSet(std::vector<DATT>* fillMap, ICONF* iconf) noexcept(false) {
483  DATT datiface;
484  datiface.setConnection(env, conn);
485  datiface.createReadStatement();
486  datiface.setPrefetchRowCount(1024);
487  datiface.fetchData(fillMap, iconf);
488  datiface.terminateReadStatement();
489  }
490 
491  /*
492  * Fetch a set of data based on an EXACT match of an iov
493  */
494  template <class DATT, class IOVT>
495  void fetchDataSet(std::map<EcalLogicID, DATT>* fillMap, IOVT* iov) noexcept(false) {
496  fillMap->clear();
497 
498  DATT datiface;
499  datiface.setConnection(env, conn);
500  datiface.createReadStatement();
501  datiface.setPrefetchRowCount(1024);
502  datiface.fetchData(fillMap, iov);
503  datiface.terminateReadStatement();
504  }
505 
506  /*
507  * Fetch a set of DCS data based on time stamp
508  */
509  template <class DATT>
510  void fetchDCSDataSet(std::list<std::pair<Tm, std::map<EcalLogicID, DATT> > >* fillMap, const Tm& t) noexcept(false) {
511  fillMap->clear();
512 
513  DATT datiface;
514  datiface.setConnection(env, conn);
515  datiface.createReadStatement();
516  datiface.setPrefetchRowCount(1024);
517  datiface.fetchHistoricalData(fillMap, t);
518  datiface.terminateReadStatement();
519  }
520 
521  /*
522  * Fetch a set of data based on an EXACT match of an iov
523  * with a specific mapping name
524  */
525  template <class DATT, class IOVT>
526  void fetchDataSetWithMap(std::map<EcalLogicID, DATT>* fillMap, IOVT* iov, std::string mapping_name) noexcept(false) {
527  fillMap->clear();
528 
529  DATT datiface;
530  datiface.setConnection(env, conn);
531  datiface.createReadStatement();
532  datiface.setPrefetchRowCount(1024);
533  datiface.fetchData(fillMap, iov, mapping_name);
534  datiface.terminateReadStatement();
535  }
536 
537  /*
538  * Fetch dataset that is valid for the given RunTag and run.
539  * Also fills the given IOV object with the IOV associated with the data
540  * run is optional, by default is set to infinity
541  * Note: ONLY works for Run*Dat objects
542  * TODO: Make this function (or similar) work for all *Dat objects
543  */
544  template <class DATT, class IOVT>
545  void fetchValidDataSet(std::map<EcalLogicID, DATT>* fillMap,
546  IOVT* fillIOV,
547  RunTag* tag,
548  run_t run = (unsigned int)-1) noexcept(false) {
549  fillMap->clear();
550  DATT datiface;
551  fillIOV->setConnection(env, conn);
552  fillIOV->setByRecentData(datiface.getTable(), tag, run);
553  datiface.setConnection(env, conn);
554  datiface.createReadStatement();
555  datiface.setPrefetchRowCount(1024);
556  datiface.fetchData(fillMap, fillIOV);
557  datiface.terminateReadStatement();
558  }
559 
560  /*
561  * Fetch dataset that is valid for the given location and run.
562  * Also fills the given IOV object with the IOV associated with the data
563  * run is optional, by default is set to infinity
564  * Note: ONLY works for Run*Dat objects
565  * TODO: Make this function (or similar) work for all *Dat objects
566  */
567  template <class DATT, class IOVT>
568  void fetchValidDataSet(std::map<EcalLogicID, DATT>* fillMap,
569  IOVT* fillIOV,
570  std::string location,
571  run_t run = (unsigned int)-1) noexcept(false) {
572  fillMap->clear();
573  DATT datiface;
574  fillIOV->setConnection(env, conn);
575  fillIOV->setByRecentData(datiface.getTable(), location, run);
576  datiface.setConnection(env, conn);
577  datiface.createReadStatement();
578  datiface.setPrefetchRowCount(1024);
579  datiface.fetchData(fillMap, fillIOV);
580  datiface.terminateReadStatement();
581  }
582 
583  inline int getDetIdFromLogicId(int logic_id) {
584  int detid = -1;
585  if (_logicId2DetId.empty()) {
587  }
588  if (_logicId2DetId.find(logic_id) != _logicId2DetId.end()) {
589  detid = _logicId2DetId[logic_id];
590  }
591  return detid;
592  }
593 
594  inline int getLogicIdFromDetId(int det_id) {
595  int logic_id = -1;
596  if (_logicId2DetId.empty()) {
598  }
599  if (_detId2LogicId.find(det_id) != _detId2LogicId.end()) {
600  logic_id = _detId2LogicId[det_id];
601  }
602  return logic_id;
603  }
604 
605  inline std::map<int, int> getLogicId2DetIdMap() {
606  if (_logicId2DetId.empty()) {
608  }
609  return _logicId2DetId;
610  }
611 
612  inline std::map<int, int> getDetId2LogicIdMap() {
613  if (_logicId2DetId.empty()) {
615  }
616  return _detId2LogicId;
617  }
618 
619  void dummy();
620 
621 private:
625  void fillLogicId2DetIdMaps();
626 
627  /*********************\
628  - private variables -
629  \*********************/
630 
632 
633  EcalCondDBInterface() = delete;
635 
636  std::map<int, int> _logicId2DetId;
637  std::map<int, int> _detId2LogicId;
638 };
639 
640 #endif
void insertLmfSeq(LMFSeqDat *iov) noexcept(false)
Definition: start.py:1
type
Definition: HCALResponse.h:21
std::map< int, int > _detId2LogicId
std::map< int, int > _logicId2DetId
int run_t
Definition: CaliIOV.h:11
RunList fetchGlobalRunListByLocation(const RunTag &tag, int min_run, int max_run, const LocationDef &locDef) noexcept(false)
MonRunIOV fetchMonRunIOV(RunTag *runtag, MonRunTag *montag, run_t run, subrun_t monrun) noexcept(false)
int getID()
Definition: DCUIOV.h:29
void insertMonRunIOV(MonRunIOV *iov) noexcept(false)
void fetchLastConfigSet(ICONF *iconf) noexcept(false)
EcalLogicID getEcalLogicID(std::string name, int id1=EcalLogicID::NULLID, int id2=EcalLogicID::NULLID, int id3=EcalLogicID::NULLID, std::string mapsTo="") noexcept(false)
int getLogicIdFromDetId(int det_id)
Definition: RunTag.h:13
void updateRunConfig(ODRunConfigInfo *od) noexcept(false)
oracle::occi::Environment * env
void insertDCUIOV(DCUIOV *iov) noexcept(false)
std::list< ODDelaysDat > fetchFEDelaysForRun(RunIOV *iov) noexcept(false)
DCUIOV fetchDCUIOV(DCUTag *tag, const Tm &evenTm) noexcept(false)
RunList fetchNonEmptyRunList(const RunTag &tag, int min_run, int max_run) noexcept(false)
MonRunList fetchMonRunList(const RunTag &tag, const MonRunTag &monruntag) noexcept(false)
void fetchConfigSet(ICONF *iconf) noexcept(false)
void insertLmfDat(LMFDat *dat) noexcept(false)
RunList fetchRunListLastNRuns(const RunTag &tag, int max_run, int n_runs) noexcept(false)
Definition: DCUIOV.h:13
EcalCondDBInterface(std::string host, std::string sid, std::string user, std::string pass, int port=1521)
void fetchDataSet(std::map< EcalLogicID, DATT > *fillMap, IOVT *iov) noexcept(false)
std::vector< EcalLogicID > getEcalLogicIDMappedTo(int logic_id, std::string maps_to)
~EcalCondDBInterface() noexcept(false) override
RunList fetchNonEmptyGlobalRunList(const RunTag &tag, int min_run, int max_run) noexcept(false)
std::vector< EcalLogicID > getEcalLogicIDForLMPN(int lmr_logic_id)
std::vector< EcalLogicID > getEcalLogicIDSet(std::string name, int fromId1=EcalLogicID::NULLID, int toId1=EcalLogicID::NULLID, int fromId2=EcalLogicID::NULLID, int toId2=EcalLogicID::NULLID, int fromId3=EcalLogicID::NULLID, int toId3=EcalLogicID::NULLID, std::string mapsTo="") noexcept(false)
DateHandler * getDateHandler()
void updateRunIOV(RunIOV *iov) noexcept(false)
oracle::occi::Connection * conn
RunIOV fetchRunIOV(RunTag *tag, run_t run) noexcept(false)
void updateRunIOVStartTime(RunIOV *iov) noexcept(false)
void fetchDCSDataSet(std::list< std::pair< Tm, std::map< EcalLogicID, DATT > > > *fillMap, const Tm &t) noexcept(false)
void insertDataSetVector(const std::vector< EcalLogicID > &ecid, const std::vector< IOVT > &run_iov, const std::vector< DATT > &data) noexcept(false)
MonRunList fetchMonRunListLastNRuns(const RunTag &tag, const MonRunTag &monruntag, int max_run, int n_runs) noexcept(false)
int writeDB() noexcept(false)
Definition: DCUIOV.cc:126
EcalCondDBInterface(std::string sid, std::string user, std::string pass)
DCSPTMTempList fetchDCSPTMTempList(const EcalLogicID &ecid) noexcept(false)
void insertConfigDataArraySet(const std::vector< DATT > &data, ICONF *iconf) noexcept(false)
std::vector< EcalLogicID > getEcalLogicIDSetOrdered(std::string name, int fromId1, int toId1, int fromId2=EcalLogicID::NULLID, int toId2=EcalLogicID::NULLID, int fromId3=EcalLogicID::NULLID, int toId3=EcalLogicID::NULLID, std::string mapsTo="", int orderedBy=EcalLogicID::NULLID) noexcept(false)
Definition: LMFDat.h:18
std::map< int, int > getEcalLogicID2LmrMap()
int subrun_t
Definition: MODRunIOV.h:11
RunIOV fetchLMFLastRun() const
void insertConfigSet(ICONF *iconf) noexcept(false)
void fetchValidDataSet(std::map< EcalLogicID, DATT > *fillMap, IOVT *fillIOV, std::string location, run_t run=(unsigned int)-1) noexcept(false)
EcalCondDBInterface()=delete
void insertRunIOV(RunIOV *iov) noexcept(false)
void insertLmfRunIOV(LMFRunIOV *iov) noexcept(false)
#define end
Definition: vmac.h:39
void insertDataArraySet(const std::map< EcalLogicID, DATT > *data, IOVT *iov) noexcept(false)
CaliIOV fetchCaliIOV(CaliTag *tag, const Tm &evenTm) noexcept(false)
void insertConfigDataSet(const std::vector< DATT > data, ICONF *iconf) noexcept(false)
Definition: LMFIOV.h:17
LMFRunIOV fetchLMFRunIOV(RunTag *runtag, LMFRunTag *lmftag, run_t run, subrun_t lmfrun) noexcept(false)
#define noexcept
RunList fetchRunListByLocation(const RunTag &tag, int min_run, int max_run, const LocationDef &locDef) noexcept(false)
void updateRunIOVEndTime(RunIOV *iov) noexcept(false)
RunList fetchRunList(const RunTag &tag) noexcept(false)
int fetchID() noexcept(false) override
Definition: DCUIOV.cc:48
void insertLmfLmrSubIOV(LMFLmrSubIOV *iov) noexcept(false)
int getDetIdFromLogicId(int logic_id)
char data[epos_bytes_allocation]
Definition: EPOS_Wrapper.h:79
static const int NULLID
Definition: EcalLogicID.h:35
void insertDataSet(const std::map< EcalLogicID, DATT > *data, IOVT *iov) noexcept(false)
std::map< int, int > getLogicId2DetIdMap()
void insertLmfIOV(LMFIOV *iov) noexcept(false)
void fetchDataSetWithMap(std::map< EcalLogicID, DATT > *fillMap, IOVT *iov, std::string mapping_name) noexcept(false)
void setConnection(oracle::occi::Environment *env, oracle::occi::Connection *conn)
Definition: IDBObject.h:23
void fetchConfigDataSet(std::vector< DATT > *fillMap, ICONF *iconf) noexcept(false)
std::vector< EcalLogicID > getEcalLogicIDForLMR(int lmr_logic_id)
std::map< int, int > getDetId2LogicIdMap()
Definition: RunIOV.h:13
Definition: Tm.h:13
void fetchValidDataSet(std::map< EcalLogicID, DATT > *fillMap, IOVT *fillIOV, RunTag *tag, run_t run=(unsigned int)-1) noexcept(false)
Definition: DCUTag.h:13
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