CMS 3D CMS Logo

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

Functions

def calculateSpecificLumi
 
def filltofiles
 output methods#### More...
 
def getFillFromDB
 
def getFillFromFile
 
def getSpecificLumi
 
def lastcompleteFill
 
def listfilldir
 
def specificlumiTofile
 

Variables

string action = 'store'
 
string allfillname = 'allfills.txt'
 
tuple allfillsFromDB = lumiCalcAPI.fillInRange(schema,fillmin=minfillnum,fillmax=maxfillnum,amodetag=options.amodetag)
 
list amodetagChoices = [ "PROTPHYS","IONPHYS",'PAPHYS' ]
 
 choices = amodetagChoices,
 
tuple dataidmap = revisionDML.dataIdsByTagId(session.nominalSchema(),datatagid,runlist=runlist,withcomment=False)
 
 datatagname = options.datatag
 
string default = 'frontier://LumiCalc/CMS_LUMI_PROD'
 
dictionary filldata = {}
 
list fillstoprocess = []
 
string help = 'connect string to lumiDB,optional'
 
tuple lastcompletedFill = lastcompleteFill(os.path.join(options.inputdir,'runtofill_dqm.txt'))
 
int MAXFILL = 9999
 
 maxfillnum = options.maxfill
 
int MINFILL = 1800
 
 minfillnum = options.minfill
 
int normid = 0
 
tuple normmap = normDML.normIdByType(session.nominalSchema(),lumitype='HF',defaultonly=True)
 
string normname = 'NONE'
 
dictionary normvalueDict = {}
 
tuple options = parser.parse_args()
 
tuple parser = argparse.ArgumentParser(prog=os.path.basename(sys.argv[0]),description = "specific lumi",formatter_class=argparse.ArgumentDefaultsHelpFormatter)
 

## Main Program

More...
 
tuple processedfills = listfilldir(options.outputdir)
 
tuple reqfillmax = max(fillstoprocess)
 
tuple reqfillmin = min(fillstoprocess)
 
 required = False,
 
tuple runlist = lumiCalcAPI.runList(session.nominalSchema(),options.fillnum,runmin=None,runmax=None,fillmin=reqfillmin,fillmax=reqfillmax,startT=None,stopT=None,l1keyPattern=None,hltkeyPattern=None,amodetag=options.amodetag,nominalEnergy=None,energyFlut=None,requiretrg=False,requirehlt=False)
 
tuple schema = session.nominalSchema()
 
tuple session = svc.openSession(isReadOnly=True,cpp2sqltype=[('unsigned int','NUMBER(10)'),('unsigned long long','NUMBER(20)')])
 
tuple svc = sessionManager.sessionManager(options.connect,authpath=options.authpath,debugON=options.debug)
 query DB for all fills and compare with allfills.txt if found newer fills, store in mem fill number reprocess anyway the last 1 fill in the dir redo specific lumi for all marked fills More...
 
 type = int,
 
list xingAlgoChoices = [ "OCC1","OCC2","ET"]
 

Function Documentation

def specificLumi.calculateSpecificLumi (   lumi,
  lumierr,
  beam1intensity,
  beam1intensityerr,
  beam2intensity,
  beam2intensityerr 
)
calculate specific lumi
input: instlumi, instlumierror,beam1intensity,beam1intensityerror,beam2intensity,beam2intensityerror
output (specific lumi value,specific lumi error)

Definition at line 74 of file specificLumi.py.

Referenced by getSpecificLumi().

74 
75 def calculateSpecificLumi(lumi,lumierr,beam1intensity,beam1intensityerr,beam2intensity,beam2intensityerr):
76  '''
77  calculate specific lumi
78  input: instlumi, instlumierror,beam1intensity,beam1intensityerror,beam2intensity,beam2intensityerror
79  output (specific lumi value,specific lumi error)
80  '''
81  specificlumi=0.0
82  specificlumierr=0.0
83  if beam1intensity<0: beam1intensity=0
84  if beam2intensity<0: beam2intensity=0
85  if beam1intensity>0.0 and beam2intensity>0.0:
86  specificlumi=float(lumi)/(float(beam1intensity)*float(beam2intensity))
87  specificlumierr=specificlumi*math.sqrt(lumierr**2/lumi**2+beam1intensityerr**2/beam1intensity**2+beam2intensityerr**2/beam2intensity**2)
88  return (specificlumi,specificlumierr)
def calculateSpecificLumi
Definition: specificLumi.py:74
def specificLumi.filltofiles (   allfills,
  runsperfill,
  runtimes,
  dirname 
)

output methods####

write runnumber:starttime map per fill to files

Definition at line 121 of file specificLumi.py.

122 def filltofiles(allfills,runsperfill,runtimes,dirname):
123  '''
124  write runnumber:starttime map per fill to files
125  '''
126  f=open(os.path.join(dirname,allfillname),'w')
127  for fill in allfills:
128  print >>f,'%d'%(fill)
129  f.close()
130  for fill,runs in runsperfill.items():
131  filename='fill_'+str(fill)+'.txt'
132  if len(runs)!=0:
133  f=open(os.path.join(dirname,filename),'w')
134  for run in runs:
135  print >>f,'%d,%s'%(run,runtimes[run])
136  f.close()
def filltofiles
output methods####
def specificLumi.getFillFromDB (   schema,
  fillnum 
)
output: {run:starttime}

Definition at line 22 of file specificLumi.py.

References cmsPerfStripChart.dict, lumiCalcAPI.fillrunMap(), list(), lumiCalcAPI.runsummary(), and ComparisonHelper.zip().

Referenced by getSpecificLumi().

22 
23 def getFillFromDB(schema,fillnum):
24  '''
25  output: {run:starttime}
26  '''
27  runtimesInFill={}
28  fillrundict=lumiCalcAPI.fillrunMap(schema,fillnum)
29  if len(fillrundict)>0:
30  runs=fillrundict.values()[0]
31  runlsdict=dict(list(zip(runs,[None]*len(runs))))
32  runresult=lumiCalcAPI.runsummary(schema,runlsdict)
33  for perrundata in runresult:
34  runtimesInFill[perrundata[0]]=perrundata[7]
35  return runtimesInFill
OutputIterator zip(InputIterator1 first1, InputIterator1 last1, InputIterator2 first2, InputIterator2 last2, OutputIterator result, Compare comp)
def runsummary
Lumi data management and calculation API # # Author: Zhen Xie #.
Definition: lumiCalcAPI.py:10
def fillrunMap
Definition: lumiCalcAPI.py:41
How EventSelector::AcceptEvent() decides whether to accept an event for output otherwise it is excluding the probing of A single or multiple positive and the trigger will pass if any such matching triggers are PASS or EXCEPTION[A criterion thatmatches no triggers at all is detected and causes a throw.] A single negative with an expectation of appropriate bit checking in the decision and the trigger will pass if any such matching triggers are FAIL or EXCEPTION A wildcarded negative criterion that matches more than one trigger in the trigger list("!*","!HLTx*"if it matches 2 triggers or more) will accept the event if all the matching triggers are FAIL.It will reject the event if any of the triggers are PASS or EXCEPTION(this matches the behavior of"!*"before the partial wildcard feature was incorporated).Triggers which are in the READY state are completely ignored.(READY should never be returned since the trigger paths have been run
def specificLumi.getFillFromFile (   fillnum,
  inputdir 
)
parse fill_xxx.txt files in the input directory for runs, starttime in the fill
input: fillnumber, input dir
output: {run:tarttime}

Definition at line 89 of file specificLumi.py.

89 
90 def getFillFromFile(fillnum,inputdir):
91  '''
92  parse fill_xxx.txt files in the input directory for runs, starttime in the fill
93  input: fillnumber, input dir
94  output: {run:tarttime}
95  '''
96  runtimesInFill={}
97  #look for files 'fill_num.txt' in inputdir
98  for filename in os.listdir(inputdir):
99  mpat=r'^fill_[0-9]{4}.txt$'
100  m=re.compile(mpat)
101  if m.match(filename) is None:
102  continue
103  filename=filename.strip()
104  if filename.find('.')==-1: continue
105  basename,extension=filename.split('.')
106  if not extension or extension!='txt':
107  continue
108  if basename.find('_')==-1: continue
109  prefix,number=basename.split('_')
110  if not number : continue
111  if fillnum!=int(number):continue
112  f=open(os.path.join(inputdir,'fill_'+number+'.txt'),'r')
113  for line in f:
114  l=line.strip()
115  fields=l.split(',')
116  if len(fields)<2 : continue
117  runtimesInFill[int(fields[0])]=fields[1]
118  f.close()
119  return runtimesInFill
def getFillFromFile
Definition: specificLumi.py:89
def specificLumi.getSpecificLumi (   schema,
  fillnum,
  inputdir,
  dataidmap,
  normmap,
  xingMinLum = 0.0,
  amodetag = 'PROTPHYS',
  bxAlgo = 'OCC1' 
)
specific lumi in 1e-30 (ub-1s-1) unit
lumidetail occlumi in 1e-27
1309_lumi_401_CMS.txt
time(in seconds since January 1,2011,00:00:00 UTC) stab(fraction of time spent in stable beams for this time bin) l(lumi in Hz/ub) dl(point-to-point error on lumi in Hz/ub) sl(specific lumi in Hz/ub) dsl(error on specific lumi)
20800119.0 1 -0.889948 0.00475996848729 0.249009 0.005583287562 -0.68359 6.24140208607 0.0 0.0 0.0 0.0 0.0 0.0 0.0383576 0.00430892097862 0.0479095 0.00430892097862 66.6447 4.41269758764 0.0 0.0 0.0
result [(time,beamstatusfrac,lumi,lumierror,speclumi,speclumierror)]

Definition at line 240 of file specificLumi.py.

References bitset_utilities.append(), calculateSpecificLumi(), lumiCalcAPI.deliveredLumiForIds(), cmsPerfStripChart.dict, getFillFromDB(), list(), bookConverter.max, lumiCalcAPI.runsummaryMap(), and ComparisonHelper.zip().

241 def getSpecificLumi(schema,fillnum,inputdir,dataidmap,normmap,xingMinLum=0.0,amodetag='PROTPHYS',bxAlgo='OCC1'):
242  '''
243  specific lumi in 1e-30 (ub-1s-1) unit
244  lumidetail occlumi in 1e-27
245  1309_lumi_401_CMS.txt
246  time(in seconds since January 1,2011,00:00:00 UTC) stab(fraction of time spent in stable beams for this time bin) l(lumi in Hz/ub) dl(point-to-point error on lumi in Hz/ub) sl(specific lumi in Hz/ub) dsl(error on specific lumi)
247  20800119.0 1 -0.889948 0.00475996848729 0.249009 0.005583287562 -0.68359 6.24140208607 0.0 0.0 0.0 0.0 0.0 0.0 0.0383576 0.00430892097862 0.0479095 0.00430892097862 66.6447 4.41269758764 0.0 0.0 0.0
248  result [(time,beamstatusfrac,lumi,lumierror,speclumi,speclumierror)]
249  '''
251  fillbypos={}#{bxidx:[[ts,beamstatusfrac,lumi,lumierror,spec1,specerror],[]]}
252  runtimesInFill=getFillFromDB(schema,fillnum)#{runnum:starttimestr}
253  runlist=runtimesInFill.keys()
254  if not runlist: return fillbypos
255  irunlsdict=dict(list(zip(runlist,[None]*len(runlist))))
256  #prirunlsdict
257  GrunsummaryData=lumiCalcAPI.runsummaryMap(session.nominalSchema(),irunlsdict)
258  lumidetails=lumiCalcAPI.deliveredLumiForIds(schema,irunlsdict,dataidmap,GrunsummaryData,beamstatusfilter=None,normmap=normmap,withBXInfo=True,bxAlgo=bxAlgo,xingMinLum=xingMinLum,withBeamIntensity=True,lumitype='HF')
259  #
260  #output: {run:[lumilsnum(0),cmslsnum(1),timestamp(2),beamstatus(3),beamenergy(4),deliveredlumi(5),calibratedlumierr(6),(bxvalues,bxerrs)(7),(bxidx,b1intensities,b2intensities)(8),fillnum(9)]}
261  #
262  totalstablebeamls=0
263  orderedrunlist=sorted(lumidetails)
264  for run in orderedrunlist:
265  perrundata=lumidetails[run]
266  for perlsdata in perrundata:
267  beamstatus=perlsdata[3]
268  if beamstatus=='STABLE BEAMS':
269  totalstablebeamls+=1
270  #print 'totalstablebeamls in fill ',totalstablebeamls
271  if totalstablebeamls<10:#less than 10 LS in a fill has 'stable beam', it's no a good fill
272  print 'fill ',fillnum,' , having less than 10 stable beam lS, is not good, skip'
273  return fillbypos
275  for run in orderedrunlist:
276  perrundata=lumidetails[run]
277  for perlsdata in perrundata:
278  beamstatusfrac=0.0
279  tsdatetime=perlsdata[2]
280  ts=calendar.timegm(tsdatetime.utctimetuple())
281  beamstatus=perlsdata[3]
282  if beamstatus=='STABLE BEAMS':
283  beamstatusfrac=1.0
284  (bxidxlist,bxvaluelist,bxerrolist)=perlsdata[7]
285  #instbxvaluelist=[x/lumiparam.lslengthsec() for x in bxvaluelist if x]
286  instbxvaluelist=[x for x in bxvaluelist if x]
287  maxlumi=0.0
288  if len(instbxvaluelist)!=0:
289  maxlumi=max(instbxvaluelist)
290  avginstlumi=0.0
291  if len(instbxvaluelist)!=0:
292  avginstlumi=sum(instbxvaluelist)
293  (intbxidxlist,b1intensities,b2intensities)=perlsdata[8]#contains only non-zero bx
294  for bxidx in bxidxlist:
295  idx=bxidxlist.index(bxidx)
296  instbxvalue=bxvaluelist[idx]
297  bxerror=bxerrolist[idx]
298  if instbxvalue<max(xingMinLum,maxlumi*0.2):
299  continue
300  bintensityPos=-1
301  try:
302  bintensityPos=intbxidxlist.index(bxidx)
303  except ValueError:
304  pass
305  if bintensityPos<=0:
306  fillbypos.setdefault(bxidx,[]).append([ts,beamstatusfrac,instbxvalue,bxerror,0.0,0.0])
307  continue
308  b1intensity=b1intensities[bintensityPos]
309  b2intensity=b2intensities[bintensityPos]
310  speclumi=calculateSpecificLumi(instbxvalue,bxerror,b1intensity,0.0,b2intensity,0.0)
311  fillbypos.setdefault(bxidx,[]).append([ts,beamstatusfrac,instbxvalue,bxerror,speclumi[0],speclumi[1]])
312  return fillbypos
313 
boost::dynamic_bitset append(const boost::dynamic_bitset<> &bs1, const boost::dynamic_bitset<> &bs2)
this method takes two bitsets bs1 and bs2 and returns result of bs2 appended to the end of bs1 ...
def calculateSpecificLumi
Definition: specificLumi.py:74
OutputIterator zip(InputIterator1 first1, InputIterator1 last1, InputIterator2 first2, InputIterator2 last2, OutputIterator result, Compare comp)
def deliveredLumiForIds
Definition: lumiCalcAPI.py:369
def runsummaryMap
Definition: lumiCalcAPI.py:21
How EventSelector::AcceptEvent() decides whether to accept an event for output otherwise it is excluding the probing of A single or multiple positive and the trigger will pass if any such matching triggers are PASS or EXCEPTION[A criterion thatmatches no triggers at all is detected and causes a throw.] A single negative with an expectation of appropriate bit checking in the decision and the trigger will pass if any such matching triggers are FAIL or EXCEPTION A wildcarded negative criterion that matches more than one trigger in the trigger list("!*","!HLTx*"if it matches 2 triggers or more) will accept the event if all the matching triggers are FAIL.It will reject the event if any of the triggers are PASS or EXCEPTION(this matches the behavior of"!*"before the partial wildcard feature was incorporated).Triggers which are in the READY state are completely ignored.(READY should never be returned since the trigger paths have been run
def specificLumi.lastcompleteFill (   infile)
parse infile to find LASTCOMPLETEFILL
input: input file name
output: last completed fill number

Definition at line 57 of file specificLumi.py.

57 
58 def lastcompleteFill(infile):
59  '''
60  parse infile to find LASTCOMPLETEFILL
61  input: input file name
62  output: last completed fill number
63  '''
64  lastfill=None
65  hlinepat=r'(LASTCOMPLETEFILL )([0-9]{4})'
66  h=re.compile(hlinepat)
67  dqmfile=open(infile,'r')
68  for line in dqmfile:
69  result=h.match(line)
70  if result:
71  lastfill=result.group(2)
72  break
73  return int(lastfill)
def lastcompleteFill
Definition: specificLumi.py:57
def specificLumi.listfilldir (   indir)
list all fills contained in the given dir
input: indir
output: [fill]

Definition at line 36 of file specificLumi.py.

36 
37 def listfilldir(indir):
38  '''
39  list all fills contained in the given dir
40  input: indir
41  output: [fill]
42  '''
43  fillnamepat=r'^[0-9]{4}$'
44  p=re.compile(fillnamepat)
45  processedfills=[]
46  dirList=os.listdir(indir)
47  for fname in dirList:
48  if p.match(fname) and os.path.isdir(os.path.join(indir,fname)):#found fill dir
49  allfs=os.listdir(os.path.join(indir,fname))
50  for myfile in allfs:
51  sumfilenamepat=r'^[0-9]{4}_bxsum_CMS.txt$'
52  s=re.compile(sumfilenamepat)
53  if s.match(myfile):
54  #only if fill_summary_CMS.txt file exists
55  processedfills.append(int(fname))
56  return processedfills
def specificLumi.specificlumiTofile (   fillnum,
  filldata,
  outdir 
)

Definition at line 137 of file specificLumi.py.

References bitset_utilities.append(), bookConverter.max, and CommonUtil.transposed().

138 def specificlumiTofile(fillnum,filldata,outdir):
139  #
140  #input : fillnum
141  # filldata: {bxidx:[[lstime,beamstatusfrac,lumivalue,lumierror,speclumi,speclumierr]],[]}
142  #sorted by bxidx, sorted by lstime inside list
143  #check outdir/fillnum subdir exists; if not, create it; else outdir=outdir/fillnum
144  #
145  if not filldata:
146  print 'empty input data, do nothing for fill ',fillnum
147  return
148  timedict={}#{lstime:[[stablebeamfrac,lumi,lumierr,speclumi,speclumierr]]}
149  filloutdir=os.path.join(outdir,str(fillnum))
150  if not os.path.exists(filloutdir):
151  os.mkdir(filloutdir)
152  for cmsbxidx,perbxdata in filldata.items():
153  lhcbucket=0
154  if cmsbxidx!=0:
155  lhcbucket=(cmsbxidx-1)*10+1
156  a=sorted(perbxdata,key=lambda x:x[0])
157  filename=str(fillnum)+'_lumi_'+str(lhcbucket)+'_CMS.txt'
158  linedata=[]
159  for perlsdata in a:
160  ts=int(perlsdata[0])
161  beamstatusfrac=perlsdata[1]
162  lumi=perlsdata[2]
163  lumierror=perlsdata[3]
164  #beam1intensity=perlsdata[4]
165  #beam2intensity=perlsdata[5]
166  speclumi=perlsdata[4]
167  speclumierror= perlsdata[5]
168  if lumi>0:
169  linedata.append([ts,beamstatusfrac,lumi,lumierror,speclumi,speclumierror])
170  if ts not in timedict:
171  timedict[ts]=[]
172  timedict[ts].append([beamstatusfrac,lumi,lumierror,speclumi,speclumierror])
173  if len(linedata)>10:#at least 10 good ls
174  f=open(os.path.join(filloutdir,filename),'w')
175  for line in linedata:
176  print >>f, '%d\t%e\t%e\t%e\t%e\t%e'%(line[0],line[1],line[2],line[3],line[4],line[5])
177  f.close()
178  #print 'writing avg file'
179  summaryfilename=str(fillnum)+'_lumi_CMS.txt'
180  f=None
181  lstimes=timedict.keys()
182  lstimes.sort()
183  fillseg=[]
184  lscounter=0
185  for lstime in lstimes:
186  allvalues=timedict[lstime]
187  transposedvalues=CommonUtil.transposed(allvalues,0.0)
188  bstatfrac=transposedvalues[0][0]#beamstatus does not change with bx position
189  lumivals=transposedvalues[1]
190  lumitot=sum(lumivals)
191  if bstatfrac==1.0 :
192  fillseg.append([lstime,lumitot])
193  lumierrs=transposedvalues[2]
194  lumierrortot=math.sqrt(sum(map(lambda x:x**2,lumierrs)))
195  specificvals=transposedvalues[3]
196  specificavg=sum(specificvals)/float(len(specificvals))#avg spec lumi
197  specificerrs=transposedvalues[4]
198  specifictoterr=math.sqrt(sum(map(lambda x:x**2,specificerrs)))
199  specificerravg=specifictoterr/float(len(specificvals))
200  if lscounter==0:
201  f=open(os.path.join(filloutdir,summaryfilename),'w')
202  lscounter+=1
203  print >>f,'%d\t%e\t%e\t%e\t%e\t%e'%(lstime,bstatfrac,lumitot,lumierrortot,specificavg,specificerravg)
204  if f is not None:
205  f.close()
206  #print 'writing summary file'
207  fillsummaryfilename=str(fillnum)+'_bxsum_CMS.txt'
208  f=open(os.path.join(filloutdir,fillsummaryfilename),'w')
209  if len(fillseg)==0:
210  print >>f,'%s'%('#no stable beams')
211  f.close()
212  return
213  previoustime=fillseg[0][0]
214  boundarytime=fillseg[0][0]
215  #print 'boundary time ',boundarytime
216  summaryls={}
217  summaryls[boundarytime]=[]
218  for [lstime,lumitot] in fillseg:#fillseg is everything with stable beam flag
219  if lstime-previoustime>50.0:
220  boundarytime=lstime
221  #print 'found new boundary ',boundarytime
222  summaryls[boundarytime]=[]
223  # print 'appending ',boundarytime,lstime,lumitot
224  summaryls[boundarytime].append([lstime,lumitot])
225  previoustime=lstime
226  #print summaryls
227 
228  summarylstimes=summaryls.keys()
229  summarylstimes.sort()
231  for bts in summarylstimes:
232  startts=bts
233  tsdatainseg=summaryls[bts]
234  #print 'tsdatainseg ',tsdatainseg
235  stopts=tsdatainseg[-1][0]
236  plu=max(CommonUtil.transposed(tsdatainseg,0.0)[1])
237  lui=sum(CommonUtil.transposed(tsdatainseg,0.0)[1])*lumip.lslengthsec()
238  print >>f,'%d\t%d\t%e\t%e'%(startts,stopts,plu,lui)
239  f.close()
boost::dynamic_bitset append(const boost::dynamic_bitset<> &bs1, const boost::dynamic_bitset<> &bs2)
this method takes two bitsets bs1 and bs2 and returns result of bs2 appended to the end of bs1 ...
def transposed
Definition: CommonUtil.py:146
def specificlumiTofile

Variable Documentation

string specificLumi.action = 'store'

Definition at line 328 of file specificLumi.py.

string specificLumi.allfillname = 'allfills.txt'

Definition at line 20 of file specificLumi.py.

tuple specificLumi.allfillsFromDB = lumiCalcAPI.fillInRange(schema,fillmin=minfillnum,fillmax=maxfillnum,amodetag=options.amodetag)

Definition at line 417 of file specificLumi.py.

list specificLumi.amodetagChoices = [ "PROTPHYS","IONPHYS",'PAPHYS' ]

Definition at line 324 of file specificLumi.py.

specificLumi.choices = amodetagChoices,

Definition at line 365 of file specificLumi.py.

tuple specificLumi.dataidmap = revisionDML.dataIdsByTagId(session.nominalSchema(),datatagid,runlist=runlist,withcomment=False)

Definition at line 452 of file specificLumi.py.

specificLumi.datatagname = options.datatag

Definition at line 449 of file specificLumi.py.

string specificLumi.default = 'frontier://LumiCalc/CMS_LUMI_PROD'

Definition at line 331 of file specificLumi.py.

tuple specificLumi.filldata = {}

Definition at line 440 of file specificLumi.py.

list specificLumi.fillstoprocess = []

Definition at line 409 of file specificLumi.py.

string specificLumi.help = 'connect string to lumiDB,optional'

Definition at line 330 of file specificLumi.py.

tuple specificLumi.lastcompletedFill = lastcompleteFill(os.path.join(options.inputdir,'runtofill_dqm.txt'))

Definition at line 419 of file specificLumi.py.

int specificLumi.MAXFILL = 9999

Definition at line 19 of file specificLumi.py.

specificLumi.maxfillnum = options.maxfill

Definition at line 410 of file specificLumi.py.

int specificLumi.MINFILL = 1800

Definition at line 18 of file specificLumi.py.

specificLumi.minfillnum = options.minfill

Definition at line 411 of file specificLumi.py.

tuple specificLumi.normid = 0

Definition at line 461 of file specificLumi.py.

tuple specificLumi.normmap = normDML.normIdByType(session.nominalSchema(),lumitype='HF',defaultonly=True)

Definition at line 466 of file specificLumi.py.

tuple specificLumi.normname = 'NONE'

Definition at line 460 of file specificLumi.py.

tuple specificLumi.normvalueDict = {}

Definition at line 462 of file specificLumi.py.

tuple specificLumi.options = parser.parse_args()

Definition at line 397 of file specificLumi.py.

tuple specificLumi.parser = argparse.ArgumentParser(prog=os.path.basename(sys.argv[0]),description = "specific lumi",formatter_class=argparse.ArgumentDefaultsHelpFormatter)

## Main Program

Definition at line 323 of file specificLumi.py.

tuple specificLumi.processedfills = listfilldir(options.outputdir)

Definition at line 418 of file specificLumi.py.

tuple specificLumi.reqfillmax = max(fillstoprocess)

Definition at line 445 of file specificLumi.py.

tuple specificLumi.reqfillmin = min(fillstoprocess)

Definition at line 444 of file specificLumi.py.

specificLumi.required = False,

Definition at line 329 of file specificLumi.py.

tuple specificLumi.runlist = lumiCalcAPI.runList(session.nominalSchema(),options.fillnum,runmin=None,runmax=None,fillmin=reqfillmin,fillmax=reqfillmax,startT=None,stopT=None,l1keyPattern=None,hltkeyPattern=None,amodetag=options.amodetag,nominalEnergy=None,energyFlut=None,requiretrg=False,requirehlt=False)

Definition at line 447 of file specificLumi.py.

tuple specificLumi.schema = session.nominalSchema()

Definition at line 416 of file specificLumi.py.

tuple specificLumi.session = svc.openSession(isReadOnly=True,cpp2sqltype=[('unsigned int','NUMBER(10)'),('unsigned long long','NUMBER(20)')])

Definition at line 407 of file specificLumi.py.

tuple specificLumi.svc = sessionManager.sessionManager(options.connect,authpath=options.authpath,debugON=options.debug)

query DB for all fills and compare with allfills.txt if found newer fills, store in mem fill number reprocess anyway the last 1 fill in the dir redo specific lumi for all marked fills

Definition at line 406 of file specificLumi.py.

specificLumi.type = int,

Definition at line 351 of file specificLumi.py.

list specificLumi.xingAlgoChoices = [ "OCC1","OCC2","ET"]

Definition at line 325 of file specificLumi.py.