103 from CoolRunQuery.utils.AtlRunQueryCache 
import Cache
 
  104 from CoolRunQuery.AtlRunQueryRun 
import Run
 
  106 from time 
import time
 
  107 from collections 
import defaultdict
 
  109 @Cache(
"cache/sfo",
"%s_run_%i")
 
  111     cu.execute(q, run=run)
 
  115     cu.execute(q, run=run)
 
  127     res = defaultdict(list)
 
  128     q = 
"SELECT DISTINCT STREAMTYPE, STREAM FROM SFO_TZ_RUN WHERE RUNNR=:run" 
  132         cursor.execute(q,run=run)
 
  133         qr = cursor.fetchall()
 
  135             res[run].
append(
"%s_%s" % (e[0],e[1]))
 
  141     """returns nfiles, fsize, nevents""" 
  142     res = defaultdict(dict)
 
  143     q = 
"SELECT STREAMTYPE, STREAM, COUNT(FILESIZE), SUM(FILESIZE), SUM(NREVENTS) FROM SFO_TZ_File WHERE RUNNR = :run GROUP BY STREAM, STREAMTYPE" 
  147         if run==Run.runnropen:
 
  148             qr = 
executeQuery(run, cursor, q, cachekey=(
"filesAll",run))
 
  152             key = 
"%s_%s" % (e[0],e[1])
 
  153             res[run][key] = e[2:5] 
 
  159     res = defaultdict(dict)
 
  160     q = 
"SELECT STREAMTYPE, STREAM, MIN(LUMIBLOCKNR), MAX(LUMIBLOCKNR), COUNT(DISTINCT LUMIBLOCKNR) FROM SFO_TZ_Lumiblock WHERE RUNNR=:run GROUP BY STREAM, STREAMTYPE" 
  164         if run==Run.runnropen:
 
  165             qr = 
executeQuery(run, cursor, q, cachekey=(
"LBsAll",run))
 
  169             key2 = 
"%s_%s" % (e[0],e[1])
 
  170             res[run][key2] = e[2:5] 
 
  178     q = 
"SELECT STREAMTYPE, STREAM, LUMIBLOCKNR, SUM(NREVENTS) FROM SFO_TZ_File WHERE RUNNR=:run GROUP BY STREAMTYPE, STREAM, LUMIBLOCKNR ORDER BY LUMIBLOCKNR" 
  182         if run==Run.runnropen:
 
  183             qr = 
executeQuery(run, cursor, q, cachekey=(
"NeventsAll",run))
 
  186         res[run] = defaultdict(list)
 
  188             key2 = 
"%s_%s" % (e[0],e[1])
 
  189             res[run][key2].
append(e[2:4]) 
 
  195     """returns number of overlap events""" 
  197     q = 
"SELECT REFERENCE_STREAM, OVERLAP_STREAM, SUM(OVERLAP_EVENTS) FROM SFO_TZ_Overlap WHERE TYPE='FILE' and RUNNR=:run GROUP BY REFERENCE_STREAM, OVERLAP_STREAM" 
  201         if run==Run.runnropen:
 
  202             qr = 
executeQuery(run, cursor, q, cachekey=(
"overlapAll",run))
 
  206         res[run] = defaultdict(dict)
 
  208             res[run][e[0]][e[1]] = e[2] 
 
  226     q = 
"SELECT STREAM, LUMIBLOCKNR, SUM(NREVENTS) FROM SFO_TZ_File WHERE RUNNR=:run AND STREAMTYPE='physics' GROUP BY STREAM, LUMIBLOCKNR ORDER BY LUMIBLOCKNR" 
  230         if run==Run.runnropen:
 
  231             qr = 
executeQuery(run, cursor, q, cachekey=(
"NeventsAllPhysics",run))
 
  234         res[run] = defaultdict(list)
 
  236             key2 = 
"physics_%s" % e[0]
 
  237             res[run][key2].
append(e[1:3]) 
 
  251     q = 
"SELECT SUM(OVERLAP_EVENTS) from SFO_TZ_OVERLAP WHERE RUNNR=:run AND TYPE='EVENTCOUNT' AND REFERENCE_STREAM='physics_EventCount'" 
  254         if run==Run.runnropen 
or 1: 
 
  255             qr = 
executeQuery(run, cursor, q, cachekey=(
"SumOverlap",run))
 
  267     """returns list of last 'nruns' run numbers, where at least one stream is not calibration""" 
  268     cursor.execute( 
"SELECT RUNNR,STATE FROM (SELECT UNIQUE RUNNR,STATE FROM SFO_TZ_RUN WHERE STREAMTYPE!='calibration' AND RUNNR < 999999 ORDER BY RUNNR DESC) SFO_TZ_RUN2 WHERE rownum<=:arg_1", arg_1=nruns )
 
  269     return cursor.fetchall()
 
  280     from CoolRunQuery.utils.AtlRunQueryUtils 
import coolDbConn
 
  281     conn = coolDbConn.GetAtlasRunDBConnection()
 
  282     cursor = conn.cursor()
 
  284         "select ConfigSchema,ConfigData from ATLAS_RUN_NUMBER.RunNumber where RunNumber=:run",  
 
  285         "select ConfigVersion,Release from ATLAS_RUN_NUMBER.RunNumber where RunNumber=:run"   
  288         cursor.execute(query[0 
if run.lhcRun<3 
else 1], run=run.runNr)
 
  289         re = cursor.fetchall()
 
  290         run.addResult(
'oks',re[0])
 
  301         from CoolRunQuery.AtlRunQuerySFO 
import SetOKSLinks
 
  310             runno = 
int(sys.argv[1])
 
  312         runno = [140541, 140571, 140579, 140592, 140616, 140620,
 
  313         140622, 140638, 140670, 140682, 140704, 140737, 140747,
 
  314         140748, 140754, 140762, 140765, 140769, 140772, 140776,
 
  315         140790, 140794, 140822, 140836, 140842, 140929, 140953,
 
  316         140955, 140974, 140975, 141046, 141059, 141066, 141079,
 
  317         141109, 141150, 141189, 141192, 141194, 141203, 141209,
 
  318         141226, 141234, 141236, 141237, 141238, 141266, 141270,
 
  319         141359, 141374, 141387, 141398, 141401, 141403, 141461,
 
  320         141473, 141474, 141525, 141527, 141529, 141533, 141534,
 
  321         141561, 141562, 141563, 141565, 141599, 141624, 141655,
 
  322         141667, 141670, 141688, 141689, 141691, 141695, 141700,
 
  323         141702, 141704, 141705, 141706, 141707, 141718, 141721,
 
  324         141730, 141746, 141748, 141749, 141755, 141769, 141807,
 
  325         141811, 141818, 141841, 141915, 141928, 141976, 141979,
 
  326         141994, 141998, 141999, 142042, 142065, 142081, 142091,
 
  327         142094, 142111, 142123, 142125, 142128, 142133, 142144,
 
  328         142149, 142154, 142155, 142157, 142159, 142161, 142165,
 
  329         142166, 142171, 142174, 142183, 142185, 142187, 142189,
 
  330         142190, 142191, 142192, 142193, 142194, 142195, 142199,
 
  331         142203, 142205, 142210, 142214, 142216, 142240, 142258,
 
  332         142259, 142265, 142291, 142301, 142308, 142309, 142310,
 
  333         142319, 142356, 142368, 142383, 142390, 142391, 142392,
 
  334         142394, 142395, 142397, 142400, 142401, 142402, 142403,
 
  335         142404, 142405, 142406, 143019, 143023, 143027, 143033,
 
  336         143034, 143131, 143136, 143143, 143163, 143169, 143171,
 
  337         143178, 143182, 143185, 143190, 143192, 143198, 143203,
 
  338         143204, 143205, 143207, 143210, 143218, 143222, 143225,
 
  344         from CoolRunQuery.utils.AtlRunQueryUtils 
import coolDbConn
 
  345         connection = coolDbConn.GetSFODBConnection()
 
  346         cursor     = connection.cursor()
 
  352             print (
'Last %i runs:' % n)
 
  361             print (
"streams",
time()-start)
 
  363             GetSFO_LBsAll    ( cursor, runno )
 
  364             print (
"lbs",
time()-start)
 
  367             print (
"events",
time()-start)
 
  369             GetSFO_filesAll  ( cursor, runno )
 
  370             print (
"files",
time()-start)
 
  373             print (
"overlap",
time()-start)
 
  376         print (
"Query execution time: %f sec" % (
time()-start))
 
  383 if __name__ == 
'__main__':