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 python.multivaluedict.dict, lumiCalcAPI.fillrunMap(), and lumiCalcAPI.runsummary().

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(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
def runsummary
Lumi data management and calculation API # # Author: Zhen Xie #.
Definition: lumiCalcAPI.py:10
def fillrunMap
Definition: lumiCalcAPI.py:41
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 python.multivaluedict.append(), calculateSpecificLumi(), lumiCalcAPI.deliveredLumiForIds(), python.multivaluedict.dict, getFillFromDB(), max(), and lumiCalcAPI.runsummaryMap().

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(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 
def calculateSpecificLumi
Definition: specificLumi.py:74
const T & max(const T &a, const T &b)
def deliveredLumiForIds
Definition: lumiCalcAPI.py:369
def runsummaryMap
Definition: lumiCalcAPI.py:21
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 python.multivaluedict.append(), python.multivaluedict.map(), 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 not timedict.has_key(ts):
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()
def transposed
Definition: CommonUtil.py:146
const T & max(const T &a, const T &b)
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.