10 cuts =
' and data_tier raw and online.stream 0' 14 return str(.1*
int((1000*x+.5)/y))+
'%' 17 assert flag ==
'true' or flag ==
'false' 19 if len(files) == 0:
return 23 mdlist = [ {
'file_name': f,
'dq.isgoodrun': flag}
for f
in files ]
25 samweb.putURL(
'/files',
26 params = {
'continue_on_error': 1},
27 data = json.dumps(mdlist),
28 content_type =
'application/json',
33 if len(sys.argv) != 4:
34 print 'Usage: update_sam_good_runs_metadata.py [neardet|fardet] GRL.txt BRL.txt' 38 assert det ==
'neardet' or det ==
'fardet' 40 goodname = sys.argv[2]
43 print 'Reading', goodname
44 fgood =
open(goodname,
'r') 49 fields = line.split(
'\t')
50 assert len(fields) == 2
53 subrun =
int(fields[1])
54 assert subrun >= 0
and subrun <= 63
56 good.update([(run, subrun)])
58 print len(good),
'good subruns in input file' 61 print 'Reading', badname
67 fields = line.split(
'\t')
68 assert len(fields) == 2
71 subrun =
int(fields[1])
72 assert subrun >= 0
and subrun <= 63
74 bad.update([(run, subrun)])
77 print len(bad),
'bad subruns in input file' 81 print 'Do you have all the necessary tickets? You\'ll be sad in 20 minutes or so if you don\'t.' 85 samweb = samweb_client.SAMWebClient(experiment=
'nova')
87 print 'Getting list of bad-runs files from SAM. This will take some time' 88 dbBad = samweb.listFiles(
'online.detector '+det+
' and dq.isgoodrun false' + cuts)
90 print 'Found', len(dbBad),
'bad-runs files' 96 fields = fname.split(
'_')
97 run =
int(fields[1][1:])
98 subrun =
int(fields[2][1:])
100 print "Couldn't parse filename", fname
103 if (run, subrun)
in good:
104 toMarkGood += [fname]
107 if (run, subrun)
not in bad:
108 print 'Warning:', fname,
'not in either good or bad list' 110 print 'Need to flip goodruns field in', len(toMarkGood),
'of them ('+
percentStr(len(toMarkGood), len(dbBad))+
')' 114 print 'Getting list of good-runs files from SAM. This will take some time' 115 dbGood = samweb.listFiles(
'online.detector '+det+
' and dq.isgoodrun true' + cuts)
117 print 'Found', len(dbGood),
'good-runs files' 123 fields = fname.split(
'_')
124 run =
int(fields[1][1:])
125 subrun =
int(fields[2][1:])
127 print "Couldn't parse filename", fname
130 if (run, subrun)
in bad:
134 if (run, subrun)
not in good:
135 print 'Warning:', fname,
'not in good or bad list' 137 print 'Need to flip goodruns field in', len(toMarkBad),
'of them ('+
percentStr(len(toMarkBad), len(dbGood))+
')' 143 for i
in range(0, len(toMarkGood), stride):
144 print 'Marking good:', i,
'/', len(toMarkGood)
145 bulkMark(samweb, toMarkGood[i:i+stride],
'true')
147 for i
in range(0, len(toMarkBad), stride):
148 print 'Marking bad:', i,
'/', len(toMarkBad)
149 bulkMark(samweb, toMarkBad[i:i+stride],
'false')
procfile open("FD_BRL_v0.txt")