CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
lumiCalcAPI.py
Go to the documentation of this file.
1 import os,coral,datetime,fnmatch
2 from RecoLuminosity.LumiDB import nameDealer,revisionDML,dataDML,lumiTime,CommonUtil,selectionParser,hltTrgSeedMapper
3 
4 def runList(schema,fillnum=None,runmin=None,runmax=None,startT=None,stopT=None,l1keyPattern=None,hltkeyPattern=None,amodetag=None,nominalEnergy=None,energyFlut=0.2,requiretrg=True,requirehlt=True):
5  return dataDML.runList(schema,fillnum,runmin,runmax,startT,stopT,l1keyPattern,hltkeyPattern,amodetag,nominalEnergy,energyFlut,requiretrg,requirehlt)
6 
7 def lslengthsec(numorbit, numbx):
8  '''
9  input:
10  numorbit : number of orbit in the lumi section
11  numbx : number of orbits
12  output:
13  lumi section length in sec
14  '''
15  l = numorbit * numbx * 25.0e-09
16  return l
17 def hltpathsForRange(schema,runlist):
18  '''
19  input: runlist [run], (required)
20  datatag: data version (optional)
21  output : {runnumber,{hltpath:(l1bitname,l1seedexpr)}}
22  '''
23  result={}
24  if isinstance(inputRange,list):
25  for run in runlist:
26  extendedmap={}
27  hlttrgmap=dataDML.hlttrgMappingByrun(run)
28  for hltpath,l1seedexpr in hlttrgmap.items():
29  l1bitname=hltTrgSeedMapper(hltpath,l1seedexpr)
30  extendedmap[hltpath]=(l1bitname,l1seedexpr)
31  result[run]=extendedmap
32  return result
33 def trgbitsForRange(schema,runlist,datatag=None):
34  '''
35  input: runlist [run],(required)
36  datatag: data version (optional)
37  output: {runnumber:bitzeroname,[bitnames]}
38  '''
39  pass
40 
41 def hltForRange(schema,inputRange,hltpathname=None,hltpathpattern=None,datatag=None):
42  '''
43  input:
44  inputRange: {run:[cmsls]} (required)
45  hltpathname: exact match hltpathname (optional)
46  hltpathpattern: regex match hltpathpattern (optional)
47  datatag : data version
48  output: {runnumber:{hltpath:[[cmslsnum,l1pass,hltaccept,hltprescale]]})}
49  '''
50  pass
51 
52 def trgForRange(schema,inputRange,trgbitname=None,trgbitnamepattern=None,datatag=None):
53  '''
54  input :
55  inputRange {run:[cmsls]} (required)
56  trgbitname exact match trgbitname (optional)
57  trgbitnamepattern regex match trgbitname (optional)
58  datatag : data version
59  output
60  result {run,{cmslsnum:[deadtimecount,bitzero_count,bitzero_prescale,deadfraction,{bitname:[prescale,counts]}]}}
61  '''
62  pass
63 
64 def instLumiForRange(schema,inputRange,beamstatus=None,withBXInfo=False,bxAlgo='OCC1',xingMinLum=1.0e-4,withBeamIntensity=False,datatag=None):
65  '''
66  input:
67  inputRange {run:[cmsls]} (required)
68  beamstatus: LS filter on beamstatus (optional)
69  beamenergy: LS filter on beamenergy (optional) beamenergy+-beamenergyFluc
70  withBXInfo: get per bunch info (optional)
71  bxAlgo: algoname for bx values (optional) ['OCC1','OCC2','ET']
72  xingMinLum: cut on bx lumi value (optional)
73  withBeamInfo: get beam intensity info (optional)
74  datatag: data version
75  output:
76  result {run:{(lumilsnum,cmslsnum):[timestamp,beamstatus,beamenergy,instlumi,instlumierr,startorbit,numorbit,(bxvalues,bxerrs),(bxidx,b1intensities,b2intensities)]}}
77  lumi unit: HZ/ub
78  '''
79  pass
80 
81 def instCalibratedLumiForRange(schema,inputRange,amodetag='PROTPHYS',nominalegev=3500,beamstatus=None,withBXInfo=False,bxAlgo='OCC1',xingMinLum=1.0e-4,withBeamInfo=False,normname=None,datatag=None):
82  '''
83  Inst luminosity after calibration
84  input:
85  inputRange {run:[cmsls]} (required)
86  amodetag : accelerator mode for all the runs (optional) ['PROTPHYS','HIPHYS']
87  beamstatus: LS filter on beamstatus (optional)
88  beamenergy: LS filter on beamenergy (optional) beamenergy+-beamenergyFluc
89  withBXInfo: get per bunch info (optional)
90  bxAlgo: algoname for bx values (optional) ['OCC1','OCC2','ET']
91  xingMinLum: cut on bx lumi value (optional)
92  withBeamInfo: get beam intensity info (optional)
93  normname: norm factor name to use (optional)
94  datatag: data version
95  output:
96  result {run:{(lumilsnum,cmslsnum):[timestamp,beamstatus,beamenergy,calibratedlumi,calibratedlumierr,startorbit,numorbit,(bxvalues,bxerrs),(bxidx,b1intensities,b2intensities)]}}
97  lumi unit: HZ/ub
98  '''
99  result = {}
100  normid=None
101  if not normname:
102  normid=dataDML.guessnormIdByContext(schema,amodetag,nominalegev)
103  if not normid:
104  raise ValueError('cannot find a normalization factor for the combined condition '+amodetag+' '+nominalegev)
105  normval=dataDML.luminormById(schema,normid)[2]
106  perbunchnormval=float(normval)/float(1000)
107  instresult=instLumiForRange(schema,inputRange,beamstatus,withBXInfo,bxAlgo,withBeamIntensity,datatag)
108  for run,lsdict in instresult.items():
109  result[run]={}
110  for (lumilsnum,cmslsnum),perlsdata in lsdict.items():
111  timestamp=perlsdata[0]
112  beamstatus=perlsdata[1]
113  beamenergy=perlsdata[2]
114  calibratedlumi=perlsdata[3]*normval
115  calibratedlumierr=perlsdata[4]*normval
116  startorbit=perlsdata[5]
117  numorbit=perlsdata[6]
118  bxdata=perlsdata[7]
119  calibfatedbxdata=None
120  if bxdata:
121  calibratedbxdata=([x*perbunchnormval for x in bxdata[0]],[x*perbunchnormval for x in bxdata[1]])
122  intensitydata=perlsdata[8]
123  result[run][(lumilsnum,cmslsnum)]=[timestamp,beamstatus,beamenergy,calibratedlumi,calibratedlumierr,startorbit,numorbit,calibfatedbxdata,intensitydata]
124  return result
125 
126 def deliveredLumiForRange(schema,inputRange,amodetag='PROTPHYS',nominalegev=3500,beamstatus=None,withBXInfo=False,bxAlgo='OCC1',xingMinLum=1.0e-4,withBeamIntensity=False,normname=None,datatag=None):
127  '''
128  input:
129  inputRange {run:[lsnum]} (required) [lsnum]==None means all ; [lsnum]==[] means selected ls
130  amodetag : accelerator mode for all the runs (optional) ['PROTPHYS','HIPHYS']
131  beamstatus: LS filter on beamstatus (optional)
132  beamenergy: LS filter on beamenergy (optional) beamenergy+-beamenergyFluc
133  withBXInfo: get per bunch info (optional)
134  bxAlgo: algoname for bx values (optional) ['OCC1','OCC2','ET']
135  xingMinLum: cut on bx lumi value (optional)
136  withBeamInfo: get beam intensity info (optional)
137  normname: norm factor name to use (optional)
138  datatag: data version
139  output:
140  result {run:{(lumilsnum,cmslsnum):[timestamp,beamstatus,beamenergy,deliveredlumi,calibratedlumierr,(bxvalues,bxerrs),(bxidx,b1intensities,b2intensities)]}}
141  avg lumi unit: 1/ub
142  '''
143  result = {}
144  normid=None
145  if not normname:
146  normid=dataDML.guessnormIdByContext(schema,amodetag,nominalegev)
147  if not normid:
148  raise ValueError('cannot find a normalization factor for the combined condition '+amodetag+' '+nominalegev)
149  normval=dataDML.luminormById(schema,normid)[2]
150  perbunchnormval=float(normval)/float(1000)
151  instresult=instLumiForRange(schema,inputRange,beamstatus,withBXInfo,bxAlgo,withBeamIntensity,datatag)
152  for run,lslist in inputRange.items():
153  result[run]={}
154  for (lumilsnum,cmslsnum),perlsdata in lsdict.items():
155  timestamp=perlsdata[0]
156  beamstatus=perlsdata[1]
157  beamenergy=perlsdata[2]
158  calibratedlumi=perlsdata[3]*normval
159  calibratedlumierr=perlsdata[4]*normval
160  numorbit=perlsdata[6]
161  numbx=3564
162  lslen=lslengthsec(numorbit,numbx)
163  deliveredlumi=calibratedlumi*lslen
164  bxdata=perlsdata[7]
165  calibratedbxdata=None
166  if bxdata:
167  calibratedbxdata=([x*perbunchnormval for x in bxdata[0]],[x*perbunchnormval for x in bxdata[1]])
168  intensitydata=perlsdata[8]
169  result[run][(lumilsnum,cmslsnum)]=[timestamp,beamstatus,beamenergy,deliveredlumi,calibratedlumierr,calibratedbxdata,intensitydata]
170  return result
171 
172 def lumiForRange(schema,inputRange,amodetag='PROTPHYS',beamstatus=None,beamenergy=None,beamenergyFluc=0.2,withBXInfo=False,bxAlgo='OCC1',xingMinLum=1.0e-4,withBeamInfo=False,normname=None,datatag=None):
173  '''
174  input:
175  inputRange {run:[cmsls]} (required)
176  amodetag : accelerator mode for all the runs (optional) ['PROTPHYS','HIPHYS']
177  beamstatus: LS filter on beamstatus (optional)
178  beamenergy: LS filter on beamenergy (optional) beamenergy+-beamenergyFluc
179  withBXInfo: get per bunch info (optional)
180  bxAlgo: algoname for bx values (optional) ['OCC1','OCC2','ET']
181  xingMinLum: cut on bx lumi value (optional)
182  withBeamInfo: get beam intensity info (optional)
183  normname: norm factor name to use (optional)
184  datatag: data version
185  output:
186  result {run:{(lumilsnum,cmslsnum):[timestamp,beamstatus,beamenergy,deliveredlumi,recordedlumi,calibratedlumierror,((bxidx,bxvalues,bxerrs),(bxidx,b1intensities,b2intensities)]}}
187  lumi unit: 1/ub
188  '''
189  result = {}
190  normid=None
191  if not normname:
192  normid=dataDML.guessnormIdByContext(schema,amodetag,nominalegev)
193  if not normid:
194  raise ValueError('cannot find a normalization factor for the combined condition '+amodetag+' '+nominalegev)
195  normval=dataDML.luminormById(schema,normid)[2]
196  perbunchnormval=float(normval)/float(1000)
198  for run,lslist in inputRange.items():
199  if lslist is not None and len(lslist)==0:#no selected ls, do nothing for this run
200  result[run]={}
201  continue
202  cmsrunsummary=dataDML.runsummary(schema,run)
203  startTimeStr=cmsrunsummary[6]
204  lumidataid=None
205  trgdataid=None
206  hltdataid=None
207  (lumidataid,trgdataid,hltdataid)=dataDML.guessDataIdByRun(schema,run)
208  (lumirunnum,lumidata)=dataDML.lumiLSById(schema,lumidataid,beamstatus,beamenergy,beamenergyFluc,withBXInfo,bxAlgo,withBeamInfo)
209  (trgrunnum,trgdata)=dataDML.trgLSById(schema,trgdataid,withblobdata=False)
210  perrunresult={}
211  for lumilsnum,perlsdata in lumidata.items():
212  cmslsnum=perlsdata[0]
213  if lslist is not None and cmslsnum not in lslist:
214  continue
215  instlumi=perlsdata[1]
216  instlumierror=perlsdata[2]
217  calibratedlumi=instlumi*normval
218  calibratedlumierror=instlumierror*normval
219  beamstatus=perlsdata[4]
220  beamenergy=perlsdata[5]
221  numorbit=perlsdata[6]
222  startorbit=perlsdata[7]
223  timestamp=c.OrbitToUTCTimestamp(startTimeStr,numorbit,startorbit+numorbit,0)
224  numbx=3564
225  lslen=lslengthsec(numorbit,numbx)
226  deliveredlumi=calibratedlumi*lslen
227  recordedlumi=0.0
228  if cmslsnum!=0:
229  deadcount=trgdata[cmslsnum][0] ##subject to change !!
230  bitzerocount=trgdata[cmslsnum][1]
231  bitzeroprescale=trgdata[cmslsnum][2]
232  deadfrac=float(deadcount)/(float(bitzerocount)*float(bitzeroprescale))
233  if deadfrac>1.0:
234  deadfrac=0.0 #artificial correction in case of trigger wrong prescale
235  recordedlumi=deliveredlumi*(1.0-deadfrac)
236  bxdata=None
237  if withBXInfo:
238  bxvalueblob=lumidata[8]
239  bxerrblob=lumidata[9]
240  bxidxlist=[]
241  bxvaluelist=[]
242  bxerrorlist=[]
243  if bxvalueblob is not None and bxerrblob is not None:
244  bxvaluearray=CommonUtil.unpackBlobtoArray(bxvalueblob,'f')
245  bxerrorarray=CommonUtil.unpackBlobtoArray(bxerrblob,'f')
246  for idx,bxval in enumerate(bxvaluearray):
247  if bxval*perbunchnormval>xingMinLum:
248  bxidxlist.append(idx)
249  bxvaluelist.append(bxval*perbunchnormval)
250  bxerrorlist.append(bxerrorarray[idx]*perbunchnormval)
251  bxdata=(bxidxlist,bxvaluelist,bxerrorlist)
252  beamdata=None
253  if withBeamInfo:
254  bxindexblob=lumidata[10]
255  beam1intensityblob=lumidata[11]
256  beam2intensityblob=lumidata[12]
257  bxindexlist=[]
258  b1intensitylist=[]
259  b2intensitylist=[]
260  if bxindexblob is not None and beam1intensity is not None and beam2intensity is not None:
261  bxindexlist=CommonUtil.unpackBlobtoArray(bxindexblob,'h').tolist()
262  beam1intensitylist=CommonUtil.unpackBlobtoArray(beam1intensityblob,'f').tolist()
263  beam2intensitylist=CommonUtil.unpackBlobtoArray(beam2intensityblob,'f').tolist()
264  beamdata=(bxindexlist,b1intensitylist,b2intensitylist)
265  perrunresult[(lumilsnum,cmslsnum)]=[timestamp,beamstatus,beamenergy,deliveredlumi,recordedlumi,calibratedlumierror,bxdata,beamdata]
266  lumidata.clear() #clean lumi memory
267  trgdata.clear()
268  result[run]=perrunresult
269  return result
270 
271 def effectiveLumiForRange(schema,inputRange,hltpathname=None,hltpathpattern=None,amodetag='PROTPHYS',beamstatus=None,beamenergy=None,beamenergyFluc=0.2,withBXInfo=False,xingMinLum=1.0e-4,bxAlgo='OCC1',withBeamInfo=False,normname=None,datatag=None):
272  '''
273  input:
274  inputRange {run:[cmsls]} (required)
275  hltpathname: selected hltpathname
276  hltpathpattern: regex select hltpaths
277  amodetag : accelerator mode for all the runs (optional) ['PROTPHYS','HIPHYS']
278  beamstatus: LS filter on beamstatus (optional)
279  beamenergy: LS filter on beamenergy (optional) beamenergy+-beamenergyFluc
280  withBXInfo: get per bunch info (optional)
281  bxAlgo: algoname for bx values (optional) ['OCC1','OCC2','ET']
282  xingMinLum: cut on bx lumi value (optional)
283  withBeamInfo: get beam intensity info (optional)
284  normname: norm factor name to use (optional)
285  datatag: data version
286  output:
287  result {run:{(lumilsnum,cmslsnum):[timestamp,beamstatus,beamenergy,deliveredlumi,recordedlumi,calibratedlumierror,{hltpath:[l1name,l1prescale,hltprescale,efflumi]},bxdata,beamdata]}}
288  lumi unit: 1/ub
289  '''
290  result = {}
291  normid=None
292  if not normname:
293  normid=dataDML.guessnormIdByContext(schema,amodetag,nominalegev)
294  if not normid:
295  raise ValueError('cannot find a normalization factor for the combined condition '+amodetag+' '+nominalegev)
296  normval=dataDML.luminormById(schema,normid)[2]
297  perbunchnormval=float(normval)/float(1000)
299  for run,lslist in inputRange.items():
300  if lslist is not None and len(lslist)==0:#no selected ls, do nothing for this run
301  result[run]={}
302  continue
303  cmsrunsummary=dataDML.runsummary(schema,run)
304  startTimeStr=cmsrunsummary[6]
305  lumidataid=None
306  trgdataid=None
307  hltdataid=None
308  (lumidataid,trgdataid,hltdataid)=dataDML.guessDataIdByRun(schema,run)
309  (lumirunnum,lumidata)=dataDML.lumiLSById(schema,lumidataid,beamstatus,beamenergy,beamenergyFluc,withBXInfo,bxAlgo,withBeamInfo)
310  (trgrunnum,trgdata)=dataDML.trgLSById(schema,trgdataid,withblobdata=True)
311  (hltrunnum,hltdata)=dataDML.hltLSById(schema,hltdataid)
312  trgrundata=dataDML.trgRunById(schema,trgdataid)
313  hltrundata=dataDML.hltRunById(schema,hltdataid)
314  bitnames=trgrundata[3].split(',')
315  hlttrgmap=dataDML.hlttrgMappingByrun(schema,run)
316  pathnames=hltrundata[3].split(',')
317  perrunresult={}
318  for lumilsnum,perlsdata in lumidata.items():
319  cmslsnum=perlsdata[0]
320  if lslist is not None and cmslsnum not in lslist:
321  continue
322  instlumi=perlsdata[1]
323  instlumierror=perlsdata[2]
324  calibratedlumi=instlumi*normval
325  calibratedlumierror=instlumierror*normval
326  beamstatus=perlsdata[4]
327  beamenergy=perlsdata[5]
328  numorbit=perlsdata[6]
329  startorbit=perlsdata[7]
330  timestamp=c.OrbitToUTCTimestamp(startTimeStr,numorbit)
331  numbx=3564
332  lslen=lslengthsec(numorbit,numbx)
333  deliveredlumi=calibratedlumi*lslen
334  recordedlumi=0.0
335 
336  if cmslsnum==0: continue # skip lumils
337 
338  deadcount=trgdata[cmslsnum][0] ##subject to change !!
339  bitzerocount=trgdata[cmslsnum][1]
340  bitzeroprescale=trgdata[cmslsnum][2]
341  deadfrac=float(deadcount)/(float(bitzerocount)*float(bitzeroprescale))
342  if deadfrac>1.0:
343  deadfrac=0.0 #artificial correction in case of trigger wrong prescale
344  recordedlumi=deliveredlumi*(1.0-deadfrac)
345  efflumidict={}
346  l1prescaleblob=trgdata[cmslsnum][4]
347  l1prescalearray=CommonUtil.unpackBlobtoArray(l1prescaleblob,'h')
348  hltprescaleblob=hltdata[cmslsnum][0]
349  hltprescalearray=CommonUtil.unpackBlobtoArray(hltprescaleblob,'h')
350  trgprescalemap={} #build trg prescale map {bitname:l1prescale}
351  for bitnum,bitprescale in enumerate(l1prescalearray):
352  thisbitname=bitnames[bitnum]
353  trgprescalemap[thisbitname]=bitprescale
354 
355  if hltpathname is None and hltpathpattern is None: #get all paths
356  for hpath,l1seedexpr in hlttrgmap.items():
357  hltprescale=None
358  l1prescale=None
359  efflumi=None
360  for pathidx,nm in enumerate(hltpathnames):
361  if nm==hpath:
362  hltprescale=hltprescalearray[pathidx]
363  break
364  try:
365  l1bitname=hltTrgSeedMapper.findUniqueSeed(hpath,l1seedexpr)
366  if l1bitname:
367  l1prescale=trgprescalemap[l1bitname]
368  except KeyError:
369  l1prescale=None
370  if l1prescale and hltprescale:
371  efflumi=recordedlumi*l1prescale*hltprescale
372  efflumidict[hpath]=[l1bitname,l1prescale,hltprescale,efflumi]
373  elif hltpathname is not None: #get one path
374  hltprescale=None
375  l1prescale=None
376  efflumi=None
377  for pathidx,nm in enumerate(hltpathnames):
378  if nm==hltpathname:
379  hltprescale=hltprescalearray[pathidx]
380  break
381  try:
382  l1bitname=hltTrgSeedMapper.findUniqueSeed(hltpathname,l1seedexpr)
383  if l1bitname:
384  l1prescale=trgprescalemap[l1bitname]
385  except KeyError:
386  l1prescale=None
387  if l1prescale and hltprescale:
388  efflumi=recordedlumi*l1prescale*hltprescale
389  efflumidict[hpath]=[l1bitname,l1prescale,hltprescale,efflumi]
390  elif hltpathpattern is not None: #get paths matching pattern
391  for hpath,l1seexexpr in hlttrgmap.items():
392  hltprescale=None
393  l1prescale=None
394  efflumi=None
395  if fnmatch.fnmatch(hpath,hltpathpattern):#use fnmatch rules
396  for pathidx,nm in enumerate(hltpathnames):
397  if nm==hpath:
398  hltprescale=hltprescalearray[pathidx]
399  break
400  try:
401  l1bitname=hltTrgSeedMapper.findUniqueSeed(hpath,l1seedexpr)
402  if l1bitname:
403  l1prescale=trgprescalemap[l1bitname]
404  except KeyError:
405  l1prescale=None
406  if l1prescale and hltprescale:
407  efflumi=recordedlumi*l1prescale*hltprescale
408  efflumidict[hpath]=[l1bitname,l1prescale,hltprescale,efflumi]
409  bxdata=None
410  if withBXInfo:
411  bxvalueblob=lumidata[8]
412  bxerrblob=lumidata[9]
413  bxidxlist=[]
414  bxvaluelist=[]
415  bxerrorlist=[]
416  if bxvalueblob is not None and bxerrblob is not None:
417  bxvaluearray=CommonUtil.unpackBlobtoArray(bxvalueblob,'f')
418  bxerrorarray=CommonUtil.unpackBlobtoArray(bxerrblob,'f')
419  for idx,bxval in enumerate(bxvaluearray):
420  if bxval*perbunchnormval>xingMinLum:
421  bxidxlist.append(idx)
422  bxvaluelist.append(bxval*perbunchnormval)
423  bxerrorlist.append(bxerrorarray[idx]*perbunchnormval)
424  bxdata=(bxidxlist,bxvaluelist,bxerrorlist)
425  beamdata=None
426  if withBeamInfo:
427  bxindexblob=lumidata[10]
428  beam1intensityblob=lumidata[11]
429  beam2intensityblob=lumidata[12]
430  bxindexlist=[]
431  b1intensitylist=[]
432  b2intensitylist=[]
433  if bxindexblob is not None and beam1intensity is not None and beam2intensity is not None:
434  bxindexlist=CommonUtil.unpackBlobtoArray(bxindexblob,'h').tolist()
435  beam1intensitylist=CommonUtil.unpackBlobtoArray(beam1intensityblob,'f').tolist()
436  beam2intensitylist=CommonUtil.unpackBlobtoArray(beam2intensityblob,'f').tolist()
437  beamdata=(bxindexlist,b1intensitylist,b2intensitylist)
438  perrunresult[(lumilsnum,cmslsnum)]=[timestamp,beamstatus,beamenergy,deliveredlumi,recordedlumi,calibratedlumierror,efflumidict,bxdata,beamdata]
439  lumidata.clear() #clean lumi memory
440  trgdata.clear()
441  hltdata.clear()
442  result[run]=perrunresult
443  return result
444 ##===printers
445 
446 
def hlttrgMappingByrun
Definition: dataDML.py:608
def hltForRange
Definition: lumiCalcAPI.py:41
def effectiveLumiForRange
Definition: lumiCalcAPI.py:271
def deliveredLumiForRange
Definition: lumiCalcAPI.py:126
def hltRunById
Definition: dataDML.py:572
def trgRunById
Definition: dataDML.py:245
def lumiForRange
Definition: lumiCalcAPI.py:172
def instLumiForRange
Definition: lumiCalcAPI.py:64
def unpackBlobtoArray
Definition: CommonUtil.py:134
def runList
Definition: dataDML.py:12
def runsummary
Definition: dataDML.py:85
def guessnormIdByContext
Definition: dataDML.py:725
def hltLSById
Definition: dataDML.py:645
def lslengthsec
Definition: lumiCalcAPI.py:7
def instCalibratedLumiForRange
Definition: lumiCalcAPI.py:81
def hltpathsForRange
Definition: lumiCalcAPI.py:17
def trgLSById
Definition: dataDML.py:286
def trgForRange
Definition: lumiCalcAPI.py:52
def lumiLSById
Definition: dataDML.py:374
def guessDataIdByRun
Definition: dataDML.py:685
def trgbitsForRange
Definition: lumiCalcAPI.py:33
double split
Definition: MVATrainer.cc:139
def luminormById
Definition: dataDML.py:199