348 def LoadGainsSqlite(self,name):
349
350
351 dbSvc = cool.DatabaseSvcFactory.databaseService()
352
353 dbString='sqlite://;schema='+name+';dbname=L1CALO'
354 try:
355 db = dbSvc.openDatabase(dbString, False)
356 except Exception as e:
357 print ('Error: Problem opening database', e)
358 sys.exit(1)
359
360 folder_name = '/TRIGGER/L1Calo/V1/Results/EnergyScanResults'
361 folder=db.getFolder(folder_name)
362
363 startUtime = int(time.time())
364 endUtime = int(time.time())
365 startValKey = startUtime * self.UNIX2COOL
366 endValKey = endUtime * self.UNIX2COOL
367 chsel = cool.ChannelSelection(0,sys.maxsize)
368
369 try:
370 itr=folder.browseObjects(startValKey, endValKey, chsel)
371 except Exception as e:
372 print (e)
373 sys.exit(1)
374
375 for row in itr:
376 CoolId = hex(int(row.channelId()))
377 payload = row.payload()
378 self.measured_gains[CoolId] = payload['Slope']
379 self.measured_chi2[CoolId] = payload['Chi2']
380 self.measured_offset[CoolId] = payload['Offset']
381
382 folder_gen_name = '/TRIGGER/L1Calo/V1/Results/EnergyScanRunInfo'
383 folder_gen=db.getFolder(folder_gen_name)
384
385 try:
386 itr=folder_gen.browseObjects(startValKey, endValKey, chsel)
387 for row in itr:
388 payload = row.payload()
389 self.run_nr = payload['RunNumber']
390 self.strategy = payload['GainStrategy']
391 if (self.strategy == ''): self.strategy='NA'
392 print ( ("Run nr. = %d, Strategy = %s") % (self.run_nr, self.strategy) )
393
394 except Exception:
395 print ("Warning, in LoadGainsSqlite can't get runtype info! Hope this is not serious!")
396
397
398 db.closeDatabase()
399