11 from RecoLuminosity.LumiDB
import argparse,sessionManager,lumiCalcAPI
14 allfillname=
'allfills.txt'
16 def tofiles(allfills,runsperfill,runtimes,outdir):
17 f=open(os.path.join(outdir,allfillname),
'w')
21 for fill,runs
in runsperfill.items():
22 filename=
'fill_'+str(fill)+
'.txt'
24 f=open(os.path.join(outdir,filename),
'w')
26 print >>f,
'%d,%s'%(run,runtimes[run])
28 if __name__ ==
'__main__':
31 parser.add_argument(
'-c',dest=
'connect',action=
'store',required=
False,help=
'connect string to lumiDB,optional',default=
'frontier://LumiCalc/CMS_LUMI_PROD')
32 parser.add_argument(
'-P',dest=
'authpath',action=
'store',help=
'path to authentication file,optional')
33 parser.add_argument(
'-o',dest=
'outputdir',action=
'store',required=
False,help=
'output dir',default=
'.')
34 parser.add_argument(
'--amodetag',dest=
'amodetag',action=
'store',required=
False,help=
'amodetag',default=
'PROTPHYS')
35 parser.add_argument(
'-f',
'--fill',
39 help=
'specific fill',default=
None)
40 parser.add_argument(
'--minfill',dest=
'minfill',
46 parser.add_argument(
'--maxfill',dest=
'maxfill',
51 help=
'maximum fillnumber '
53 parser.add_argument(
'-siteconfpath',dest=
'siteconfpath',action=
'store',help=
'specific path to site-local-config.xml file, optional. If path undefined, fallback to cern proxy&server')
54 parser.add_argument(
'--debug',dest=
'debug',action=
'store_true',help=
'debug')
55 options=parser.parse_args()
57 os.environ[
'CORAL_AUTH_PATH'] = options.authpath
59 session=svc.openSession(isReadOnly=
True,cpp2sqltype=[(
'unsigned int',
'NUMBER(10)'),(
'unsigned long long',
'NUMBER(20)')])
61 session.transaction().
start(
True)
62 allfills=
lumiCalcAPI.fillInRange(session.nominalSchema(),fillmin=options.minfill,fillmax=options.maxfill,amodetag=options.amodetag)
64 print 'no qualified fills found, do nothing... '
71 if int(options.fillnum)
in allfills:
73 allruns=runsperfill[ int(options.fillnum) ]
74 allls=[
None]*len(allruns)
75 irunlsdict=
dict(zip(allruns,allls))
83 runs=runsperfill.values()
84 allruns=[item
for sublist
in runs
for item
in sublist]
85 allls=[
None]*len(allruns)
86 irunlsdict=
dict(zip(allruns,allls))
90 tofiles(allfills,runsperfill,runtimes,options.outputdir)
91 session.transaction().commit()
def runsummary
Lumi data management and calculation API # # Author: Zhen Xie #.