1 import sys,os,os.path,glob,csv,math,datetime
6 plotreader=csv.reader(fileobj,delimiter=
',')
10 [run,fill]=row[0].
split(
':')
11 [lumils,cmsls]=row[1].
split(
':')
12 if int(fill)
not in range(fillmin,fillmax+1):
14 delivered=
float(row[5])
15 if int(fill)
not in result:
17 if int(run)
in result[
int(fill)]:
18 result[
int(fill)][
int(run)]+=delivered
20 result[
int(fill)][
int(run)]=delivered
27 lpcfilldir=[f
for f
in glob.glob(cachedir+
'/????')
if os.path.isdir(f) ]
28 lpcfills=[os.path.split(f)[1]
for f
in lpcfilldir]
30 result=[
int(f)
for f
in lpcfills
if int(f)>=fillmin]
33 if __name__ ==
"__main__" :
34 ofile=open(
'checklumi.log',
'w')
35 lpcdir=
'/afs/cern.ch/cms/CAF/CMSCOMM/COMM_GLOBAL/LHCFILES/' 36 plotcachedir=
'/afs/cern.ch/cms/lumi/www/publicplots/public_lumi_plots_cache/pp_all' 37 plotfiles=[f
for f
in glob.glob(os.path.join(plotcachedir,
'lumicalc_cache_2012-??-??.csv'))
if os.path.getsize(f)>0]
45 ofile.write(
'checking fills %s\n'%
str(lpcfill2012))
46 ofile.write(
"-----------------------------------------------------------------------------------\n")
47 ofile.write(
'on %s\n'%
str(datetime.datetime.now()) )
48 ofile.write(
"-----------------------------------------------------------------------------------\n")
54 for fill
in lpcfill2012:
61 lpcfile=os.path.join(lpcdir,
str(fill),
str(fill)+
'_summary_CMS.txt')
62 if not os.path.exists(lpcfile):
65 for line
in l.readlines():
67 rundataline=line.split()
68 if len(rundataline)!=4:
continue 69 lpcdelperrun=
float(rundataline[3])
70 lpcresult.setdefault(fill,[]).
append(lpcdelperrun)
72 lumi_lpc+=lpcdelperrun
75 if fill
in plotfilldata:
76 runs=plotfilldata[fill].
keys()
79 tot_nrunpplot+=nruns_pplot
82 lumi_pplot+=plotfilldata[fill][run]
83 tot_lumipplot+=lumi_pplot
85 delta=lumi_pplot-lumi_lpc
87 dellumi=1.-math.fabs(lumi_pplot/lumi_lpc)
88 if nruns_pplot!=nrun_lpc:
89 ofile.write(
'fill: %d plot=%.2f plotrun=%d lpc=%.2f lpcrun=%d diff=%.2f rel=%.3f *\n'%(fill,lumi_pplot,nruns_pplot,lumi_lpc,nrun_lpc,delta,dellumi))
91 ofile.write(
'fill: %d plot=%.2f plotrun=%d lpc=%.2f lpcrun=%d diff=%.2f rel=%.3f \n'%(fill,lumi_pplot,nruns_pplot,lumi_lpc,nrun_lpc,delta,dellumi))
92 tot_diff=tot_lumipplot-tot_lumilpc
95 tot_rel=1.-tot_lumipplot/tot_lumilpc
97 ofile.write(
"-----------------------------------------------------------------------------------\n")
98 ofile.write(
"tot : plot=%.2f lpc=%.2f diff=%.2f rel=%.3f\n" % (tot_lumipplot,tot_lumilpc,tot_diff,tot_rel))
99 ofile.write(
"tot : plotnrun=%d lpcnrun=%d\n"%(tot_nrunpplot,tot_nrunlpc))
def parseplotcache(filelist, fillmin, fillmax)
def findlpcdir(lpcdir, fillmin)