456 def __init__(self,dbconn,iovstart,iovend):
457 "Initialise and cache using the given DB connection, for RLB start/end"
458
459 self.StartTime = -1
460 self.EndTime = -1
461 self.since=iovstart
462 self.until=iovend
463 self.TSBeginMap = []
464 self.TSEndMap = []
465 self.RLMap = []
466 self.readdb = dbconn
467
468 lblbname='/TRIGGER/LUMI/LBLB'
469 try:
470 readfolder=self.readdb.getFolder(lblbname)
471 except Exception as e:
472 print (e)
473 print ("Could not access folder %s " % lblbname)
474 raise RuntimeError ("TimeStampToRLB initialisation error")
475
476 isFirst=True
477 try:
478 readobjs=readfolder.browseObjects(self.since,self.until,cool.ChannelSelection.all())
479 while readobjs.goToNext():
480 readobj=readobjs.currentRef()
481 payload=readobj.payload()
482 if (isFirst is True):
483 isFirst=False
484 self.StartTime=payload['StartTime']
485 else:
486 self.EndTime = payload['EndTime']
487 except Exception as e:
488 print (e)
489 print ("Problem reading data from folder %s" % lblbname)
490 raise RuntimeError ("TimeStampToRLB: initialisation error")
491 if (self.StartTime==-1):
492 raise RuntimeError ("TimeStampToRLB: no data for given runs")
493
494
495 lbtimename='/TRIGGER/LUMI/LBTIME'
496 try:
497 readfolder=self.readdb.getFolder(lbtimename)
498 except Exception as e:
499 print (e)
500 print ("Problem accessing folder %s" % lbtimename)
501 raise RuntimeError ("TimeStampToRLB: Initialisation error")
502 try:
503 readobjs=readfolder.browseObjects(self.StartTime, self.EndTime, cool.ChannelSelection.all())
504 while readobjs.goToNext():
505 readobj=readobjs.currentRef()
506 payload=readobj.payload()
507 TimeStampStart = readobj.since()
508 TimeStampEnd = readobj.until()
509 iov=(payload['Run'] << 32)+payload['LumiBlock']
510 self.TSBeginMap+=[TimeStampStart]
511 self.TSEndMap+=[TimeStampEnd]
512 self.RLMap+=[iov]
513 except Exception as e:
514 print (e)
515 print ("Problem reading from folder %s" % lbtimename)
516 raise RuntimeError ("TimeStampToRLB: Time data access error")
517 print ("TimeStampToRLB initialised with %i entries in map" % len(self.RLMap))
518