CMS 3D CMS Logo

lumiTag.py
Go to the documentation of this file.
1 #!/usr/bin/env python
2 
3 ###################################################################
4 # Command to manage/display tags and dataids in lumiDB #
5 # #
6 # Author: Zhen Xie #
7 ###################################################################
8 
9 from __future__ import print_function
10 import os,sys
11 from RecoLuminosity.LumiDB import revisionDML,argparse,sessionManager,lumiReport
12 
13 ##############################
14 ## ######################## ##
15 ## ## ################## ## ##
16 ## ## ## Main Program ## ## ##
17 ## ## ################## ## ##
18 ## ######################## ##
19 ##############################
20 
21 
22 if __name__ == '__main__':
23  parser=argparse.ArgumentParser(prog=os.path.basename(sys.argv[0]),description="Lumi Normalization factor",formatter_class=argparse.ArgumentDefaultsHelpFormatter)
24  allowedActions=['create','list']
25  parser.add_argument('action',choices=allowedActions,help='command actions')
26  parser.add_argument('-c',
27  dest='connect',
28  action='store',
29  required=False,
30  default='frontier://LumiCalc/CMS_LUMI_PROD',
31  help='connect string to lumiDB,optional'
32  )
33  parser.add_argument('-P',
34  dest='authpath',
35  action='store',
36  help='path to authentication file,optional'
37  )
38  parser.add_argument('--name',
39  dest='name',
40  action='store',
41  help='lumi datatag name'
42  )
43  parser.add_argument('--lumitype',
44  dest='lumitype',
45  action='store',
46  required=True,
47  help='lumitype,HF,PIXEL'
48  )
49  parser.add_argument('--siteconfpath',
50  dest='siteconfpath',
51  action='store',
52  help='specific path to site-local-config.xml file, optional. If path undefined, fallback to cern proxy&server'
53  )
54  parser.add_argument('--debug',
55  dest='debug',
56  action='store_true',
57  help='debug'
58  )
59  options=parser.parse_args()
60 
61  if options.authpath:
62  os.environ['CORAL_AUTH_PATH']=options.authpath
63  svc=sessionManager.sessionManager(options.connect,authpath=options.authpath,siteconfpath=options.siteconfpath)
64  session=None
65  if options.action=='create':
66  if not options.name:
67  print('--name option is required')
68  sys.exit(0)
69  session=svc.openSession(isReadOnly=False,cpp2sqltype=[('unsigned int','NUMBER(10)'),('unsigned long long','NUMBER(20)')])
70  session.transaction().start(False)
71  schema=session.nominalSchema()
72  revisionDML.createDataTag(schema,options.name,lumitype=options.lumitype)
73  session.transaction().commit()
74  if options.action=='list':
75  session=svc.openSession(isReadOnly=True,cpp2sqltype=[('unsigned int','NUMBER(10)'),('unsigned long long','NUMBER(20)')])
76  session.transaction().start(True)
77  if not options.name:
78  alltags=revisionDML.alldataTags(session.nominalSchema(),lumitype=options.lumitype)
80  else:
81  taginfo=revisionDML.dataIdsByTagName(session.nominalSchema(),options.name,runlist=None,lumitype=options.lumitype,withcomment=True)
83  session.transaction().commit()
84  del session
85  del svc
Definition: start.py:1
def dataIdsByTagName(schema, tagname, runlist=None, withcomment=False, lumitype='HF')
Definition: revisionDML.py:691
def createDataTag(schema, tagname, lumitype='HF')
Data Tagging API.
Definition: revisionDML.py:485
S & print(S &os, JobReport::InputFile const &f)
Definition: JobReport.cc:66
def alldataTags(schema, lumitype='HF')
Definition: revisionDML.py:585
def toScreenTags(tagdata)
Definition: lumiReport.py:123
def toScreenSingleTag(taginfo)
Definition: lumiReport.py:138