CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
Functions | Variables
lumiCalc Namespace Reference

Functions

def getPerLSData
 
def getValidationData
 

Variables

list allowedActions = ['overview', 'delivered', 'recorded', 'lumibyls','lumibylstime','lumibylsXing','status']
 
list beamModeChoices = [ "stable", "quiet", "either"]
 
tuple dataperrun = getValidationData(session,run=runnum,cmsls=lslist)
 
tuple delivereddata = lumiQueryAPI.deliveredLumiForRange(session, parameters, inputRange)
 
string hltpath = ''
 
tuple inputRange = str(options.runnumber)
 
tuple lsdata = getPerLSData(session,inputRange)
 
tuple lumidata = lumiQueryAPI.deliveredLumiForRange(session, parameters, inputRange)
 
 lumiXing = False
 
tuple options = parser.parse_args()
 
tuple p = inputFilesetParser.inputFilesetParser(options.inputfile)
 
tuple parameters = lumiQueryAPI.ParametersObject()
 Let's start the fun. More...
 
tuple parser = argparse.ArgumentParser(prog=os.path.basename(sys.argv[0]),description = "Lumi Calculations",formatter_class=argparse.ArgumentDefaultsHelpFormatter)
 

## Main Program

More...
 
tuple r = csvReporter.csvReporter(options.outputfile)
 
tuple recordeddata = lumiQueryAPI.recordedLumiForRange(session, parameters, inputRange)
 
tuple report = csvReporter.csvReporter(options.outputfile)
 
dictionary result = {}
 
tuple runs = lsdata.keys()
 
tuple runsandls = inputRange.runsandls()
 
tuple todump = lumiQueryAPI.dumpRecordedLumi(lumidata, hltpath)
 
int totalbad = 0
 
int totalsuspect = 0
 
int totalunknown = 0
 
string VERSION = '2.00'
 

Function Documentation

def lumiCalc.getPerLSData (   dbsession,
  inputRange,
  lumiversion = '0001' 
)

Definition at line 10 of file lumiCalc.py.

References python.multivaluedict.append(), lumiQueryAPI.lumisummaryByrun(), lumiQueryAPI.runsummaryByrun(), and lumiQueryAPI.trgbitzeroByrun().

10 
11 def getPerLSData(dbsession,inputRange,lumiversion='0001'):
12  result={}#{run:[[cmslsnum,orbittime,orbittimestamp,delivered,recorded]]}
13  datacollector={}
14  if isinstance(inputRange, str):
15  datacollector[int(inputRange)]=[]
16  else:
17  for run in inputRange.runs():
18  datacollector[run]=[]
19  try:
20  dbsession.transaction().start(True)
21  schema=dbsession.nominalSchema()
22  for run in datacollector.keys():
23  runsummaryOut=[] #[fillnum,sequence,hltkey,starttime,stoptime]
24  lumisummaryOut=[] #[[cmslsnum,instlumi,numorbit,startorbit,beamstatus,beamenergy,cmsalive]]
25  trgOut={} #{cmslsnum:[trgcount,deadtime,bitname,prescale]}
26  q=schema.newQuery()
27  runsummaryOut=lumiQueryAPI.runsummaryByrun(q,run)
28  del q
29  q=schema.newQuery()
30  lumisummaryOut=lumiQueryAPI.lumisummaryByrun(q,run,lumiversion)
31  del q
32  q=schema.newQuery()
33  trgOut=lumiQueryAPI.trgbitzeroByrun(q,run,)
34  del q
35  if len(runsummaryOut)!=0 and len(lumisummaryOut)!=0 and len(trgOut)!=0:
36  datacollector[run].append(runsummaryOut)
37  datacollector[run].append(lumisummaryOut)
38  datacollector[run].append(trgOut)
39  dbsession.transaction().commit()
40  except Exception, e:
41  dbsession.transaction().rollback()
42  del dbsession
43  raise Exception, 'lumiCalc.getPerLSData:'+str(e)
44  for run,perrundata in datacollector.items():
45  result[run]=[]
46  if len(perrundata)==0:
47  continue
48  runsummary=perrundata[0]
49  lumisummary=perrundata[1]
50  trg=perrundata[2]
51  starttimestr=runsummaryOut[3]
53  for dataperls in lumisummary:
54  cmslsnum=dataperls[0]
55  instlumi=dataperls[1]
56  numorbit=dataperls[2]
57  dellumi=instlumi*float(numorbit)*3564.0*25.0e-09
58  startorbit=dataperls[3]
59  orbittime=t.OrbitToTime(starttimestr,startorbit)
60  orbittimestamp=time.mktime(orbittime.timetuple())+orbittime.microsecond/1e6
61  trgcount=0
62  deadtime=0
63  prescale=0
64  deadfrac=1.0
65  if trg.has_key(cmslsnum):
66  trgcount=trg[cmslsnum][0]
67  deadtime=trg[cmslsnum][1]
68  prescale=trg[cmslsnum][3]
69  if trgcount!=0 and prescale!=0:
70  deadfrac=float(deadtime)/(float(trgcount)*float(prescale))
71  recordedlumi=dellumi*(1.0-deadfrac)
72  result[run].append( [cmslsnum,orbittime,orbittimestamp,dellumi,recordedlumi] )
73  return result
Definition: start.py:1
def getPerLSData
Definition: lumiCalc.py:10
def lumiCalc.getValidationData (   dbsession,
  run = None,
  cmsls = None 
)
retrieve validation data per run or all
input: runnum, if not runnum, retrive all
output: {run:[[cmslsnum,flag,comment]]}

Definition at line 74 of file lumiCalc.py.

References lumiQueryAPI.validation().

74 
75 def getValidationData(dbsession,run=None,cmsls=None):
76  '''retrieve validation data per run or all
77  input: runnum, if not runnum, retrive all
78  output: {run:[[cmslsnum,flag,comment]]}
79  '''
80  try:
81  dbsession.transaction().start(True)
82  schema=dbsession.nominalSchema()
83  queryHandle=dbsession.nominalSchema().newQuery()
84  result=lumiQueryAPI.validation(queryHandle,run,cmsls)
85  del queryHandle
86  dbsession.transaction().commit()
87  except Exception, e:
88  dbsession.transaction().rollback()
89  del dbsession
90  raise Exception, 'lumiValidate.getValidationData:'+str(e)
91  return result
Definition: start.py:1
def getValidationData
Definition: lumiCalc.py:74

Variable Documentation

list lumiCalc.allowedActions = ['overview', 'delivered', 'recorded', 'lumibyls','lumibylstime','lumibylsXing','status']

Definition at line 102 of file lumiCalc.py.

list lumiCalc.beamModeChoices = [ "stable", "quiet", "either"]

Definition at line 103 of file lumiCalc.py.

tuple lumiCalc.dataperrun = getValidationData(session,run=runnum,cmsls=lslist)

Definition at line 235 of file lumiCalc.py.

tuple lumiCalc.delivereddata = lumiQueryAPI.deliveredLumiForRange(session, parameters, inputRange)

Definition at line 184 of file lumiCalc.py.

string lumiCalc.hltpath = ''

Definition at line 168 of file lumiCalc.py.

Referenced by lumi::HLTConf2DB.retrieveData().

tuple lumiCalc.inputRange = str(options.runnumber)

Definition at line 150 of file lumiCalc.py.

tuple lumiCalc.lsdata = getPerLSData(session,inputRange)

Definition at line 197 of file lumiCalc.py.

Referenced by LumiProducer.fillLSCache(), and LumiProducer.writeProductsForEntry().

tuple lumiCalc.lumidata = lumiQueryAPI.deliveredLumiForRange(session, parameters, inputRange)

Definition at line 159 of file lumiCalc.py.

lumiCalc.lumiXing = False

Definition at line 140 of file lumiCalc.py.

tuple lumiCalc.options = parser.parse_args()

Definition at line 120 of file lumiCalc.py.

tuple lumiCalc.p = inputFilesetParser.inputFilesetParser(options.inputfile)

Definition at line 255 of file lumiCalc.py.

tuple lumiCalc.parameters = lumiQueryAPI.ParametersObject()

Let's start the fun.

Save what we need in the parameters object

Definition at line 129 of file lumiCalc.py.

tuple lumiCalc.parser = argparse.ArgumentParser(prog=os.path.basename(sys.argv[0]),description = "Lumi Calculations",formatter_class=argparse.ArgumentDefaultsHelpFormatter)

## Main Program

Definition at line 101 of file lumiCalc.py.

tuple lumiCalc.r = csvReporter.csvReporter(options.outputfile)

Definition at line 265 of file lumiCalc.py.

tuple lumiCalc.recordeddata = lumiQueryAPI.recordedLumiForRange(session, parameters, inputRange)

Definition at line 185 of file lumiCalc.py.

tuple lumiCalc.report = csvReporter.csvReporter(options.outputfile)

Definition at line 210 of file lumiCalc.py.

tuple lumiCalc.result = {}

Definition at line 229 of file lumiCalc.py.

tuple lumiCalc.runs = lsdata.keys()

Definition at line 198 of file lumiCalc.py.

tuple lumiCalc.runsandls = inputRange.runsandls()

Definition at line 233 of file lumiCalc.py.

tuple lumiCalc.todump = lumiQueryAPI.dumpRecordedLumi(lumidata, hltpath)

Definition at line 175 of file lumiCalc.py.

int lumiCalc.totalbad = 0

Definition at line 240 of file lumiCalc.py.

int lumiCalc.totalsuspect = 0

Definition at line 239 of file lumiCalc.py.

int lumiCalc.totalunknown = 0

Definition at line 241 of file lumiCalc.py.

string lumiCalc.VERSION = '2.00'

Definition at line 2 of file lumiCalc.py.