376def GetFSRdict(filename, queue):
377 FSR = {
378 "TimeSpanFSR": {"earliest": 0, "latest": 0},
379 "LumiFSRBeamCrossing": {"key": 0, "incr": 0, "integral": 0},
380 "LumiFSRBeam1": {"key": 0, "incr": 0, "integral": 0},
381 "LumiFSRBeam2": {"key": 0, "incr": 0, "integral": 0},
382 "LumiFSRNoBeam": {"key": 0, "incr": 0, "integral": 0},
383 "EventCountFSR": {"input": 0, "output": 0, "statusFlag": 0},
384 }
385
386 options = (
387 "from LumiAlgs.LumiFsrReaderConf import LumiFsrReaderConf as LumiFsrReader; LumiFsrReader().OutputLevel = INFO; LumiFsrReader().inputFiles = ['%s'] ;"
388 % filename
389 )
390 options += "LumiFsrReader().Persistency='ROOT'; LumiFsrReader().EvtMax = 1; from Configurables import LHCbApp; LHCbApp().Persistency='ROOT'; from Configurables import CondDB, DDDBConf;"
391 options += " CondDB().UseLatestTags=['%s']; DDDBConf(DataType='%s');" % (2011, 2011)
392 exec(options)
393 app = AppMgr()
394 app.run(1)
395 fsr = app.filerecordsvc()
396
397 lst = fsr.getHistoNames()
398
399 if lst:
400 for l in lst:
401 ob = fsr.retrieveObject(l)
402
403 if "LumiFSR" in l:
404 assert ob.numberOfObjects() == 1
405 k = ob.containedObject(0)
406 runs, files, keys, increment, integral = LumiFSR(k)
407
408 FSR[l[l.rfind("/") + 1 :]]["runs"] = runs
409 FSR[l[l.rfind("/") + 1 :]]["files"] = files
410 FSR[l[l.rfind("/") + 1 :]]["key"] = keys
411 FSR[l[l.rfind("/") + 1 :]]["incr"] = increment
412 FSR[l[l.rfind("/") + 1 :]]["integral"] = integral
413
414 if "TimeSpanFSR" in l:
415 FSR["TimeSpanFSR"]["earliest"] = ob.containedObject(0).earliest()
416 FSR["TimeSpanFSR"]["latest"] = ob.containedObject(0).latest()
417
418 if "EventCountFSR" in l:
419 FSR["EventCountFSR"]["input"] = ob.input()
420 FSR["EventCountFSR"]["output"] = ob.output()
421 FSR["EventCountFSR"]["statusFlag"] = ob.statusFlag()
422
423 app.stop()
424 app.finalize()
425
426 queue.put(FSR)
427
428