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 
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 
77  ~EcalCondDBInterface() noexcept(false) override {
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);
112  std::vector<EcalLogicID> getEcalLogicIDForLMPN(int lmr_logic_id);
114 
121  EcalLogicID getEcalLogicID(int logicID) noexcept(false);
122 
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();
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 
179  RunIOV fetchRunIOV(RunTag* tag, run_t run) noexcept(false);
180 
186  RunIOV fetchRunIOV(std::string location, run_t run) noexcept(false);
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;
216 
220  CaliIOV fetchCaliIOV(CaliTag* tag, const Tm& evenTm) noexcept(false);
221 
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 
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,
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  std::map<int, int> _logicId2DetId;
634  std::map<int, int> _detId2LogicId;
635 
636 public:
637  EcalCondDBInterface() = delete;
639 };
640 
641 #endif
void insertLmfSeq(LMFSeqDat *iov) noexcept(false)
Definition: start.py:1
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)
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)
RunIOV fetchLMFLastRun() const
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)
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
void insertConfigSet(ICONF *iconf) noexcept(false)
EcalCondDBInterface()=delete
void insertRunIOV(RunIOV *iov) noexcept(false)
def template(fileName, svg, replaceme="REPLACEME")
Definition: svgfig.py:521
void insertLmfRunIOV(LMFRunIOV *iov) noexcept(false)
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)
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)
void insertLmfLmrSubIOV(LMFLmrSubIOV *iov) noexcept(false)
int getDetIdFromLogicId(int logic_id)
char data[epos_bytes_allocation]
Definition: EPOS_Wrapper.h:80
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 fetchValidDataSet(std::map< EcalLogicID, DATT > *fillMap, IOVT *fillIOV, std::string location, run_t run=(unsigned int) -1) noexcept(false)
void fetchConfigDataSet(std::vector< DATT > *fillMap, ICONF *iconf) noexcept(false)
void fetchValidDataSet(std::map< EcalLogicID, DATT > *fillMap, IOVT *fillIOV, RunTag *tag, run_t run=(unsigned int) -1) noexcept(false)
std::vector< EcalLogicID > getEcalLogicIDForLMR(int lmr_logic_id)
std::map< int, int > getDetId2LogicIdMap()
Definition: RunIOV.h:13
Definition: Tm.h:13
Definition: DCUTag.h:13