CMS 3D CMS Logo

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
dataDML.py
Go to the documentation of this file.
1 import os,coral
2 from RecoLuminosity.LumiDB import nameDealer,dbUtil,revisionDML,lumiTime
3 import array
4 
5 #
6 # Data DML API
7 #
8 
9 #==============================
10 # SELECT
11 #==============================
12 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):
13  '''
14  select runnum from cmsrunsummary r,lumidata l,trgdata t,hltdata h where r.runnum=l.runnum and l.runnum=t.runnum and t.runnum=h.runnum and r.fillnum=:fillnum and r.runnum>:runmin and r.runnum<:runmax and r.starttime>=:startT and r.stopTime<=:stopT and r.amodetag=:amodetag and regexp_like(r.l1key,:l1keypattern) and regexp_like(hltkey,:hltkeypattern) and l.nominalEnergy>=:nominalEnergy*(1-energyFlut) and l.nominalEnergy<=:nominalEnergy*(1+energyFlut)
15  '''
16  result=[]
17  qHandle=schema.newQuery()
22  try:
23  qHandle.addToTableList(r)
24  qHandle.addToTableList(l)
25  if requiretrg:
26  qHandle.addToTableList(t)
27  if requirehlt:
28  qHandle.addToTableList(h)
29  qConditionStr=r+'.runnum='+l+'.runnum and '+l+'.runnum='+t+'.runnum and '+t+'.runnum='+h+'.runnum'
30  qCondition=coral.AttributeList()
31  if fillnum:
32  qConditionStr+=' and '+r+'.fillnum=:fillnum'
33  qCondition.extend('fillnum','unsigned int')
34  qCondition['fillnum'].setData(fillnum)
35  if runmin:
36  qConditionStr+=' and '+r+'.runnum>=:runmin'
37  qCondition.extend('runmin','unsigned int')
38  qCondition['runmin'].setData(runmin)
39  if runmax:
40  qConditionStr+=' and '+r+'.runnum<=:runmax'
41  qCondition.extend('runmax','unsigned int')
42  qCondition['runmax'].setData(runmax)
43  if startT:
44  qConditionStr+=' and '+r+'.starttime>=:startT'
45  qCondition.extend('start','time stamp')
46  qCondition['startT'].setData(startT)
47  if stopT:
48  qConditionStr+=' and '+r+'.stoptime<=:stopT'
49  qCondition.extend('stop','time stamp')
50  qCondition['stop'].setData(stopT)
51  if amodetag:
52  qConditionStr+=' and '+r+'.amodetag=:amodetag'
53  qCondition.extend('amodetag','string')
54  qCondition['amodetag'].setData(amodetag)
55  if l1keyPattern:
56  qConditionStr+=' and regexp_like('+r+'.l1key,:l1keypattern)'
57  qCondition.extend('l1keypattern','string')
58  qCondition['l1keypattern'].setData(l1keyPattern)
59  if hltkeyPattern:
60  qConditionStr+=' and regexp_like('+r+'.hltkey,:hltkeypattern)'
61  qCondition.extend('hltkeypattern','string')
62  qCondition['hltkeypattern'].setData(hltkeyPattern)
63  if nominalEnergy:
64  emin=nominalEnergy*(1.0-energyFlut)
65  emax=nominalEnergy*(1.0+energyFlut)
66  qConditionStr+=' and '+l+'.nominalegev>=:emin and '+l+'.nominalegev<=:emax'
67  qCondition.extend('emin','float')
68  qCondition.extend('emax','float')
69  qCondition['emin'].setData(emin)
70  qCondition['emax'].setData(emax)
71  qResult=coral.AttributeList()
72  qResult.extend('runnum','unsigned int')
73  qHandle.defineOutput(qResult)
74  qHandle.setCondition(qConditionStr,qCondition)
75  qHandle.addToOutputList(r+'.RUNNUM','runnum')
76  cursor=qHandle.execute()
77  while cursor.next():
78  result.append(cursor.currentRow()['runnum'].data())
79  except :
80  del qHandle
81  raise
82  del qHandle
83  return result
84 
85 def runsummary(schema,runnum,sessionflavor=''):
86  '''
87  select l1key,amodetag,egev,hltkey,fillnum,sequence,to_char(starttime),to_char(stoptime) from cmsrunsummary where runnum=:runnum
88  output: [l1key,amodetag,egev,hltkey,fillnum,sequence,starttime,stoptime]
89  '''
90  result=[]
91  qHandle=schema.newQuery()
93  try:
94  qHandle.addToTableList(nameDealer.cmsrunsummaryTableName())
95  qCondition=coral.AttributeList()
96  qCondition.extend('runnum','unsigned int')
97  qCondition['runnum'].setData(int(runnum))
98  qHandle.addToOutputList('L1KEY','l1key')
99  qHandle.addToOutputList('AMODETAG','amodetag')
100  qHandle.addToOutputList('EGEV','egev')
101  qHandle.addToOutputList('HLTKEY','hltkey')
102  qHandle.addToOutputList('FILLNUM','fillnum')
103  qHandle.addToOutputList('SEQUENCE','sequence')
104  if sessionflavor=='SQLite':
105  qHandle.addToOutputList('STARTTIME','starttime')
106  qHandle.addToOutputList('STOPTIME','stoptime')
107  else:
108  qHandle.addToOutputList('to_char(STARTTIME,\''+t.coraltimefm+'\')','starttime')
109  qHandle.addToOutputList('to_char(STOPTIME,\''+t.coraltimefm+'\')','stoptime')
110  qHandle.setCondition('RUNNUM=:runnum',qCondition)
111  qResult=coral.AttributeList()
112  qResult.extend('l1key','string')
113  qResult.extend('amodetag','string')
114  qResult.extend('egev','unsigned int')
115  qResult.extend('hltkey','string')
116  qResult.extend('fillnum','unsigned int')
117  qResult.extend('sequence','string')
118  qResult.extend('starttime','string')
119  qResult.extend('stoptime','string')
120  qHandle.defineOutput(qResult)
121  cursor=qHandle.execute()
122  while cursor.next():
123  result.append(cursor.currentRow()['l1key'].data())
124  result.append(cursor.currentRow()['amodetag'].data())
125  result.append(cursor.currentRow()['egev'].data())
126  result.append(cursor.currentRow()['hltkey'].data())
127  result.append(cursor.currentRow()['fillnum'].data())
128  result.append(cursor.currentRow()['sequence'].data())
129  result.append(cursor.currentRow()['starttime'].data())
130  result.append(cursor.currentRow()['stoptime'].data())
131  except :
132  del qHandle
133  raise
134  del qHandle
135  return result
136 
137 def mostRecentLuminorms(schema,branchfilter):
138  '''
139  this overview query should be only for norm
140  select e.name,max(n.data_id),r.revision_id , n.amodetag,n.norm_1,n.egev_1,n.norm_2,n.egev_2 from luminorms_entries e,luminorms_rev r,luminorms n where n.entry_id=e.entry_id and n.data_id=r.data_id and r.revision_id>=min(branchfilter) and r.revision_id<=max(branchfilter) group by e.entry_name,r.revision_id,n.amodetag,n.norm_1,n.egev_1,n.norm_2,n.egev_2;
141  output {norm_name:[data_id,amodetag,norm_1,egev_1,norm_2,egev_2]}
142  '''
143  print branchfilter
144  result={}
145  entry2datamap={}
146  branchmin=0
147  branchmax=0
148  if branchfilter and len(branchfilter)!=0:
149  branchmin=min(branchfilter)
150  branchmax=max(branchfilter)
151  else:
152  return result
153  qHandle=schema.newQuery()
154  try:
155  qHandle.addToTableList(nameDealer.entryTableName(nameDealer.luminormTableName()),'e')
156  qHandle.addToTableList(nameDealer.luminormTableName(),'n')
157  qHandle.addToTableList(nameDealer.revmapTableName(nameDealer.luminormTableName()),'r')
158  qHandle.addToOutputList('e.NAME','normname')
159  qHandle.addToOutputList('max(r.DATA_ID)','data_id')
160  qHandle.addToOutputList('r.REVISION_ID','revision_id')
161  qHandle.addToOutputList('n.AMODETAG','amodetag')
162  qHandle.addToOutputList('n.NORM_1','norm_1')
163  qHandle.addToOutputList('n.EGEV_1','energy_1')
164  qHandle.addToOutputList('n.NORM_2','norm_2')
165  qHandle.addToOutputList('n.EGEV_2','energy_2')
166  qCondition=coral.AttributeList()
167  qCondition.extend('branchmin','unsigned long long')
168  qCondition.extend('branchmax','unsigned long long')
169  qCondition['branchmin'].setData(branchmin)
170  qCondition['branchmax'].setData(branchmax)
171  qResult=coral.AttributeList()
172  qResult.extend('normname','string')
173  qResult.extend('data_id','unsigned long long')
174  qResult.extend('revision_id','unsigned long long')
175  qResult.extend('amodetag','string')
176  qResult.extend('norm_1','float')
177  qResult.extend('energy_1','unsigned int')
178  qResult.extend('norm_2','float')
179  qResult.extend('energy_2','unsigned int')
180  qHandle.defineOutput(qResult)
181  qHandle.setCondition('n.ENTRY_ID=e.ENTRY_ID and n.DATA_ID=r.DATA_ID AND n.DATA_ID=r.DATA_ID AND r.REVISION_ID>=:branchmin AND r.REVISION_ID<=:branchmax',qCondition)
182  qHandle.groupBy('e.name,r.revision_id,n.amodetag,n.norm_1,n.egev_1,n.norm_2,n.egev_2')
183  cursor=qHandle.execute()
184  while cursor.next():
185  normname=cursor.currentRow()['normname'].data()
186  amodetag=cursor.currentRow()['amodetag'].data()
187  norm_1=cursor.currentRow()['norm_1'].data()
188  energy_1=cursor.currentRow()['energy_1'].data()
189  norm_2=None
190  if cursor.currentRow()['norm_2'].data():
191  norm_2=cursor.currentRow()['norm_2'].data()
192  energy_2=None
193  if cursor.currentRow()['energy_2'].data():
194  energy_2=cursor.currentRow()['energy_2'].data()
195  result[normname]=[amodetag,norm_1,energy_1,norm_2,energy_2]
196  except:
197  raise
198  return result
199 def luminormById(schema,dataid):
200  '''
201  select entry_name,amodetag,norm_1,egev_1,norm_2,egev_2 from luminorms where DATA_ID=:dataid
202  result [name(0),amodetag(1),norm_1(2),egev_1(3),norm_2(4),energy_2(5) ]
203  '''
204  result=[]
205  qHandle=schema.newQuery()
206  try:
207  qHandle.addToTableList(nameDealer.luminormTableName())
208  qHandle.addToOutputList('ENTRY_NAME','normname')
209  qHandle.addToOutputList('AMODETAG','amodetag')
210  qHandle.addToOutputList('NORM_1','norm_1')
211  qHandle.addToOutputList('EGEV_1','energy_1')
212  qHandle.addToOutputList('NORM_2','norm_2')
213  qHandle.addToOutputList('EGEV_2','energy_2')
214  qCondition=coral.AttributeList()
215  qCondition.extend('dataid','unsigned long long')
216  qCondition['dataid'].setData(dataid)
217  qResult=coral.AttributeList()
218  qResult.extend('normname','string')
219  qResult.extend('amodetag','string')
220  qResult.extend('norm_1','float')
221  qResult.extend('energy_1','unsigned int')
222  qResult.extend('norm_2','float')
223  qResult.extend('energy_2','unsigned int')
224  qHandle.defineOutput(qResult)
225  qHandle.setCondition('DATA_ID=:dataid',qCondition)
226  cursor=qHandle.execute()
227  while cursor.next():
228  normname=cursor.currentRow()['normname'].data()
229  amodetag=cursor.currentRow()['amodetag'].data()
230  norm_1=cursor.currentRow()['norm_1'].data()
231  energy_1=cursor.currentRow()['energy_1'].data()
232  norm_2=None
233  if cursor.currentRow()['norm_2'].data():
234  norm_2=cursor.currentRow()['norm_2'].data()
235  energy_2=None
236  if cursor.currentRow()['energy_2'].data():
237  energy_2=cursor.currentRow()['energy_2'].data()
238  result.extend([normname,amodetag,norm_1,energy_1,norm_2,energy_2])
239  except :
240  del qHandle
241  raise
242  del qHandle
243  return result
244 
245 def trgRunById(schema,dataid):
246  '''
247  select RUNNUM,SOURCE,BITZERONAME,BITNAMECLOB from trgdata where DATA_ID=:dataid
248  result [runnum(0),datasource(1),bitzeroname(2),bitnameclob(3)]
249  '''
250  result=[]
251  qHandle=schema.newQuery()
252  try:
253  qHandle.addToTableList(nameDealer.trgdataTableName())
254  qHandle.addToOutputList('RUNNUM','runnum')
255  qHandle.addToOutputList('SOURCE','source')
256  qHandle.addToOutputList('BITZERONAME','bitzeroname')
257  qHandle.addToOutputList('BITNAMECLOB','bitnameclob')
258  qCondition=coral.AttributeList()
259  qCondition.extend('dataid','unsigned long long')
260  qCondition['dataid'].setData(dataid)
261  qResult=coral.AttributeList()
262  qResult.extend('runnum','unsigned int')
263  qResult.extend('source','string')
264  qResult.extend('bitzeroname','string')
265  qResult.extend('bitnameclob','string')
266  qHandle.defineOutput(qResult)
267  qHandle.setCondition('DATA_ID=:dataid',qCondition)
268  cursor=qHandle.execute()
269  while cursor.next():
270  runnum=cursor.currentRow()['runnum'].data()
271  print 'runnum ',runnum
272  source=cursor.currentRow()['source'].data()
273  print 'source ',source
274  bitzeroname=cursor.currentRow()['bitzeroname'].data()
275  print 'bitzeroname ',bitzeroname
276  bitnameclob=cursor.currentRow()['bitnameclob'].data()
277  print 'bitnameclob ',bitnameclob
278  #print 'bitnameclob ',bitnameclob
279  result.extend([runnum,source,bitzeroname,bitnameclob])
280  except :
281  del qHandle
282  raise
283  del qHandle
284  return result
285 
286 def trgLSById(schema,dataid,withblobdata=False):
287  '''
288  result (runnum,{cmslsnum:[deadtimecount(0),bitzerocount(1),bitzeroprescale(2),deadfrac(3),prescalesblob(4),trgcountblob(5)]})
289  '''
290  runnum=0
291  result={}
292  qHandle=schema.newQuery()
293  try:
294  qHandle.addToTableList(nameDealer.lstrgTableName())
295  qHandle.addToOutputList('RUNNUM','runnum')
296  qHandle.addToOutputList('CMSLSNUM','cmslsnum')
297  qHandle.addToOutputList('DEADTIMECOUNT','deadtimecount')
298  qHandle.addToOutputList('BITZEROCOUNT','bitzerocount')
299  qHandle.addToOutputList('BITZEROPRESCALE','bitzeroprescale')
300  qHandle.addToOutputList('DEADFRAC','deadfrac')
301  if withblobdata:
302  qHandle.addToOutputList('PRESCALESBLOB','prescalesblob')
303  qHandle.addToOutputList('TRGCOUNTBLOB','trgcountblob')
304  qConditionStr='DATA_ID=:dataid'
305  qCondition=coral.AttributeList()
306  qCondition.extend('dataid','unsigned long long')
307  qCondition['dataid'].setData(dataid)
308  qResult=coral.AttributeList()
309  qResult.extend('runnum','unsigned int')
310  qResult.extend('cmslsnum','unsigned int')
311  qResult.extend('deadtimecount','unsigned long long')
312  qResult.extend('bitzerocount','unsigned int')
313  qResult.extend('bitzeroprescale','unsigned int')
314  qResult.extend('deadfrac','float')
315  if withblobdata:
316  qResult.extend('prescalesblob','blob')
317  qResult.extend('trgcountblob','blob')
318  qHandle.defineOutput(qResult)
319  qHandle.setCondition(qConditionStr,qCondition)
320  cursor=qHandle.execute()
321  while cursor.next():
322  runnum=cursor.currentRow()['runnum'].data()
323  cmslsnum=cursor.currentRow()['cmslsnum'].data()
324  deadtimecount=cursor.currentRow()['deadtimecount'].data()
325  bitzerocount=cursor.currentRow()['bitzerocount'].data()
326  bitzeroprescale=cursor.currentRow()['bitzeroprescale'].data()
327  deadfrac=cursor.currentRow()['deadfrac'].data()
328  if not result.has_key(cmslsnum):
329  result[cmslsnum]=[]
330  result[cmslsnum].append(deadtimecount)
331  result[cmslsnum].append(bitzerocount)
332  result[cmslsnum].append(bitzeroprescale)
333  result[cmslsnum].append(deadfrac)
334  prescalesblob=None
335  trgcountblob=None
336  if withblobdata:
337  prescalesblob=cursor.currentRow()['prescalesblob']
338  trgcountblob=cursor.currentRow()['trgcountblob']
339  result[cmslsnum].extend([prescalesblob,trgcountblob])
340  except:
341  del qHandle
342  raise
343  del qHandle
344  return (runnum,result)
345 def lumiRunById(schema,dataid):
346  '''
347  result [runnum(0),datasource(1)]
348  '''
349  result=[]
350  qHandle=schema.newQuery()
351  try:
352  qHandle.addToTableList(nameDealer.lumidataTableName())
353  qHandle.addToOutputList('RUNNUM','runnum')
354  qHandle.addToOutputList('SOURCE','datasource')
355  qConditionStr='DATA_ID=:dataid'
356  qCondition=coral.AttributeList()
357  qCondition.extend('dataid','unsigned long long')
358  qCondition['dataid'].setData(dataid)
359  qResult=coral.AttributeList()
360  qResult.extend('runnum','unsigned int')
361  qResult.extend('datasource','string')
362  qHandle.defineOutput(qResult)
363  qHandle.setCondition(qConditionStr,qCondition)
364  cursor=qHandle.execute()
365  while cursor.next():
366  runnum=cursor.currentRow()['runnum'].data()
367  datasource=cursor.currentRow()['datasource'].data()
368  result.extend([runnum,datasource])
369  except :
370  del qHandle
371  raise
372  del qHandle
373  return result
374 def lumiLSById(schema,dataid,beamstatus=None,beamenergy=None,beamenergyFluc=0.2,withBXInfo=False,bxAlgo='OCC1',withBeamIntensity=False):
375  '''
376  result (runnum,{lumilsnum,[cmslsnum(0),instlumi(1),instlumierr(2),instlumiqlty(3),beamstatus(4),beamenergy(5),numorbit(6),startorbit(7),bxvalueblob(8),bxerrblob(9),bxindexblob(10),beam1intensity(11),beam2intensity(12)]})
377  '''
378  runnum=0
379  result={}
380  qHandle=schema.newQuery()
381  if withBXInfo and bxAlgo not in ['OCC1','OCC2','ET']:
382  raise ValueError('unknown lumi algo '+bxAlgo)
383  if beamstatus and beamstatus not in ['STABLE BEAMS',]:
384  raise ValueError('unknown beam status '+beamstatus)
385  try:
386  qHandle.addToTableList(nameDealer.lumisummaryv2TableName())
387  qHandle.addToOutputList('RUNNUM','runnum')
388  qHandle.addToOutputList('CMSLSNUM','cmslsnum')
389  qHandle.addToOutputList('LUMILSNUM','lumilsnum')
390  qHandle.addToOutputList('INSTLUMI','instlumi')
391  qHandle.addToOutputList('INSTLUMIERROR','instlumierr')
392  qHandle.addToOutputList('INSTLUMIQUALITY','instlumiqlty')
393  qHandle.addToOutputList('BEAMSTATUS','beamstatus')
394  qHandle.addToOutputList('BEAMENERGY','beamenergy')
395  qHandle.addToOutputList('NUMORBIT','numorbit')
396  qHandle.addToOutputList('STARTORBIT','startorbit')
397  if withBXInfo:
398  qHandle.addToOutputList('BXLUMIVALUE_'+bxAlgo,'bxvalue')
399  qHandle.addToOutputList('BXLUMIERROR_'+bxAlgo,'bxerror')
400  if withBeamIntensity:
401  qHandle.addToOutputList('CMSBXINDEXBLOB','bxindexblob')
402  qHandle.addToOutputList('BEAMINTENSITYBLOB_1','beam1intensity')
403  qHandle.addToOutputList('BEAMINTENSITYBLOB_2','beam2intensity')
404 
405  qConditionStr='DATA_ID=:dataid'
406  qCondition=coral.AttributeList()
407  qCondition.extend('dataid','unsigned long long')
408  qCondition['dataid'].setData(dataid)
409  if beamstatus:
410  qConditionStr+=' and BEAMSTATUS=:beamstatus'
411  qCondition.extend('beamstatus','string')
412  qCondition['beamstatus'].setData(beamstatus)
413  if beamenergy:
414  emin=float(beamenergy)*(1.0-beamenergyFluc)
415  emax=float(beamenergy)*(1.0+beamenergyFluc)
416  qConditionStr+=' and BEAMENERGY>=:emin and BEAMENERGY<=:emax'
417  qCondition.extend('beamenergy','float')
418  qCondition['emin'].setData(emin)
419  qCondition['emax'].setData(emax)
420  qResult=coral.AttributeList()
421  qResult.extend('runnum','unsigned int')
422  qResult.extend('cmslsnum','unsigned int')
423  qResult.extend('lumilsnum','unsigned int')
424  qResult.extend('instlumi','float')
425  qResult.extend('instlumierr','float')
426  qResult.extend('instlumiqlty','short')
427  qResult.extend('beamstatus','string')
428  qResult.extend('beamenergy','float')
429  qResult.extend('numorbit','unsigned int')
430  qResult.extend('startorbit','unsigned int')
431  if withBXInfo:
432  qResult.extend('bxvalue','blob')
433  qResult.extend('bxerror','blob')
434  if withBeamIntensity:
435  qResult.extend('bxindexblob','blob')
436  qResult.extend('beam1intensity','blob')
437  qResult.extend('beam2intensity','blob')
438  qHandle.defineOutput(qResult)
439  qHandle.setCondition(qConditionStr,qCondition)
440  cursor=qHandle.execute()
441  while cursor.next():
442  runnum=cursor.currentRow()['runnum'].data()
443  cmslsnum=cursor.currentRow()['cmslsnum'].data()
444  lumilsnum=cursor.currentRow()['lumilsnum'].data()
445  instlumi=cursor.currentRow()['instlumi'].data()
446  instlumierr=cursor.currentRow()['instlumierr'].data()
447  instlumiqlty=cursor.currentRow()['instlumiqlty'].data()
448  beamstatus=cursor.currentRow()['beamstatus'].data()
449  beamenergy=cursor.currentRow()['beamenergy'].data()
450  numorbit=cursor.currentRow()['numorbit'].data()
451  startorbit=cursor.currentRow()['startorbit'].data()
452  bxvalueblob=None
453  bxerrblob=None
454  if withBXInfo:
455  bxvalueblob=cursor.currentRow()['bxvalue'].data()
456  bxerrblob==cursor.currentRow()['bxerror'].data()
457  bxindexblob=None
458  beam1intensity=None
459  beam2intensity=None
460  if withBeamIntensity:
461  bxindexblob=cursor.currentRow()['bxindexblob'].data()
462  beam1intensity=cursor.currentRow()['beam1intensity'].data()
463  beam2intensity=cursor.currentRow()['beam2intensity'].data()
464  if not result.has_key(lumilsnum):
465  result[lumilsnum]=[]
466  result[lumilsnum].extend([cmslsnum,instlumi,instlumierr,instlumiqlty,beamstatus,beamenergy,numorbit,startorbit,bxvalueblob,bxerrblob,bxindexblob,beam1intensity,beam2intensity])
467  except :
468  del qHandle
469  raise
470  del qHandle
471  return (runnum,result)
472 def beamInfoById(schema,dataid):
473  '''
474  result (runnum,{lumilsnum,[cmslsnum(0),beamstatus(1),beamenergy(2),beam1intensity(3),beam2intensity(4)]})
475  '''
476  runnum=0
477  result={}
478  qHandle=schema.newQuery()
479  try:
480  qHandle.addToTableList(nameDealer.lumisummaryv2TableName())
481  qHandle.addToOutputList('RUNNUM','runnum')
482  qHandle.addToOutputList('CMSLSNUM','cmslsnum')
483  qHandle.addToOutputList('LUMILSNUM','lumilsnum')
484  qHandle.addToOutputList('BEAMSTATUS','beamstatus')
485  qHandle.addToOutputList('BEAMENERGY','beamenergy')
486  qHandle.addToOutputList('CMSBXINDEXBLOB','bxindexblob')
487  qHandle.addToOutputList('BEAMINTENSITYBLOB_1','beam1intensity')
488  qHandle.addToOutputList('BEAMINTENSITYBLOB_2','beam2intensity')
489  qConditionStr='DATA_ID=:dataid'
490  qCondition=coral.AttributeList()
491  qCondition.extend('dataid','unsigned long long')
492  qCondition['dataid'].setData(dataid)
493  qResult=coral.AttributeList()
494  qResult.extend('runnum','unsigned int')
495  qResult.extend('cmslsnum','unsigned int')
496  qResult.extend('lumilsnum','unsigned int')
497  qResult.extend('beamstatus','string')
498  qResult.extend('beamenergy','float')
499  qResult.extend('bxindexblob','blob')
500  qResult.extend('beam1intensity','blob')
501  qResult.extend('beam2intensity','blob')
502  qHandle.defineOutput(qResult)
503  qHandle.setCondition(qConditionStr,qCondition)
504  cursor=qHandle.execute()
505  while cursor.next():
506  runnum=cursor.currentRow()['runnum'].data()
507  cmslsnum=cursor.currentRow()['cmslsnum'].data()
508  lumilsnum=cursor.currentRow()['lumilsnum'].data()
509  beamstatus=cursor.currentRow()['beamstatus'].data()
510  beamenergy=cursor.currentRow()['beamenergy'].data()
511  bxindexblob=cursor.currentRow()['bxindexblob'].data()
512  beam1intensity=cursor.currentRow()['beam1intensity'].data()
513  beam2intensity=cursor.currentRow()['beam2intensity'].data()
514  if not result.has_key(lumilsnum):
515  result[lumilsnum]=[]
516  result[lumilsnum].extend([lumilsnum,beamstatus,beamenergy,bxindexblob,beam1intensity,beam2intensity])
517  except :
518  del qHandle
519  raise
520  del qHandle
521  return (runnum,result)
522 def lumiBXByAlgo(schema,dataid,algoname):
523  '''
524  result {lumilsnum:[cmslsnum,numorbit,startorbit,bxlumivalue,bxlumierr,bxlumiqlty]}
525  '''
526  result={}
527  qHandle=schema.newQuery()
528  try:
529  qHandle.addToTableList(nameDealer.lumisummaryv2TableName())
530  qHandle.addToOutputList('CMSLSNUM','cmslsnum')
531  qHandle.addToOutputList('LUMILSNUM','lumilsnum')
532  #qHandle.addToOutputList('ALGONAME','algoname')
533  qHandle.addToOutputList('NUMORBIT','numorbit')
534  qHandle.addToOutputList('STARTORBIT','startorbit')
535  qHandle.addToOutputList('BXLUMIVALUE_'+algoname,'bxlumivalue')
536  qHandle.addToOutputList('BXLUMIERROR_'+algoname,'bxlumierr')
537  qHandle.addToOutputList('BXLUMIQUALITY_'+algoname,'bxlumiqlty')
538  qConditionStr='DATA_ID=:dataid'
539  qCondition=coral.AttributeList()
540  qCondition.extend('dataid','unsigned long long')
541  qCondition['dataid'].setData(dataid)
542  qResult=coral.AttributeList()
543  qResult.extend('cmslsnum','unsigned int')
544  qResult.extend('lumilsnum','unsigned int')
545  qResult.extend('numorbit','unsigned int')
546  qResult.extend('startorbit','unsigned int')
547  qResult.extend('bxlumivalue','blob')
548  qResult.extend('bxlumierr','blob')
549  qResult.extend('bxlumiqlty','blob')
550  qHandle.defineOutput(qResult)
551  qHandle.setCondition(qConditionStr,qCondition)
552  cursor=qHandle.execute()
553  while cursor.next():
554  cmslsnum=cursor.currentRow()['cmslsnum'].data()
555  lumilsnum=cursor.currentRow()['lumilsnum'].data()
556  numorbit=cursor.currentRow()['numorbit'].data()
557  startorbit=cursor.currentRow()['startorbit'].data()
558  bxlumivalue=cursor.currentRow()['bxlumivalue'].data()
559  bxlumierr=cursor.currentRow()['bxlumierr'].data()
560  bxlumiqlty=cursor.currentRow()['bxlumiqlty'].data()
561  if not result.has_key(algoname):
562  result[algoname]={}
563  if not result[algoname].has_key(lumilsnum):
564  result[algoname][lumilsnum]=[]
565  result[algoname][lumilsnum].extend([cmslsnum,numorbit,startorbit,bxlumivalue,bxlumierr,bxlumiqlty])
566  except :
567  del qHandle
568  raise RuntimeError(' dataDML.lumiBXById: '+str(e))
569  del qHandle
570  return result
571 
572 def hltRunById(schema,dataid):
573  '''
574  result [runnum(0),datasource(1),npath(2),pathnameclob(3)]
575  '''
576  result=[]
577  qHandle=schema.newQuery()
578  try:
579  qHandle.addToTableList(nameDealer.hltdataTableName())
580  qHandle.addToOutputList('RUNNUM','runnum')
581  qHandle.addToOutputList('SOURCE','datasource')
582  qHandle.addToOutputList('NPATH','npath')
583  qHandle.addToOutputList('PATHNAMECLOB','pathnameclob')
584  qConditionStr='DATA_ID=:dataid'
585  qCondition=coral.AttributeList()
586  qCondition.extend('dataid','unsigned long long')
587  qCondition['dataid'].setData(dataid)
588  qResult=coral.AttributeList()
589  qResult.extend('runnum','unsigned int')
590  qResult.extend('datasource','string')
591  qResult.extend('npath','unsigned int')
592  qResult.extend('pathnameclob','string')
593  qHandle.defineOutput(qResult)
594  qHandle.setCondition(qConditionStr,qCondition)
595  cursor=qHandle.execute()
596  while cursor.next():
597  runnum=cursor.currentRow()['runnum'].data()
598  datasource=cursor.currentRow()['datasource'].data()
599  npath=cursor.currentRow()['npath'].data()
600  pathnameclob=cursor.currentRow()['pathnameclob'].data()
601  result.extend([runnum,datasource,npath,pathnameclob])
602  except :
603  del qHandle
604  raise
605  del qHandle
606  return result
607 
608 def hlttrgMappingByrun(schema,runnum):
609  '''
610  select m.hltkey,m.hltpathname,m.l1seed from cmsrunsummary r,trghltmap m where r.runnum=:runnum and m.hltkey=r.hltkey
611  output: {hltpath:l1seed}
612  '''
613  result={}
614  queryHandle=schema.newQuery()
617  try:
618  queryHandle.addToTableList(r)
619  queryHandle.addToTableList(m)
620  queryCondition=coral.AttributeList()
621  queryCondition.extend('runnum','unsigned int')
622  queryCondition['runnum'].setData(int(runnum))
623  #queryHandle.addToOutputList(m+'.HLTKEY','hltkey')
624  queryHandle.addToOutputList(m+'.HLTPATHNAME','hltpathname')
625  queryHandle.addToOutputList(m+'.L1SEED','l1seed')
626  queryHandle.setCondition(r+'.RUNNUM=:runnum and '+m+'.HLTKEY='+r+'.HLTKEY',queryCondition)
627  queryResult=coral.AttributeList()
628  #queryResult.extend('hltkey','string')
629  queryResult.extend('hltpathname','string')
630  queryResult.extend('l1seed','string')
631  queryHandle.defineOutput(queryResult)
632  cursor=queryHandle.execute()
633  while cursor.next():
634  #hltkey=cursor.currentRow()['hltkey'].data()
635  hltpathname=cursor.currentRow()['hltpathname'].data()
636  l1seed=cursor.currentRow()['l1seed'].data()
637  if not result.has_key(hltpathname):
638  result[hltpathname]=l1seed
639  except :
640  del queryHandle
641  raise
642  del queryHandle
643  return result
644 
645 def hltLSById(schema,dataid):
646  '''
647  result (runnum, {cmslsnum:[prescaleblob,hltcountblob,hltacceptblob]}
648  '''
649  result={}
650  qHandle=schema.newQuery()
651  try:
652  qHandle.addToTableList(nameDealer.lshltTableName())
653  qHandle.addToOutputList('RUNNUM','runnum')
654  qHandle.addToOutputList('CMSLSNUM','cmslsnum')
655  qHandle.addToOutputList('PRESCALEBLOB','prescaleblob')
656  qHandle.addToOutputList('HLTCOUNTBLOB','hltcountblob')
657  qHandle.addToOutputList('HLTACCEPTBLOB','hltacceptblob')
658  qConditionStr='DATA_ID=:dataid'
659  qCondition=coral.AttributeList()
660  qCondition.extend('dataid','unsigned long long')
661  qCondition['dataid'].setData(dataid)
662  qResult=coral.AttributeList()
663  qResult.extend('runnum','unsigned int')
664  qResult.extend('cmslsnum','unsigned int')
665  qResult.extend('prescaleblob','blob')
666  qResult.extend('hltcountblob','blob')
667  qResult.extend('hltacceptblob','blob')
668  qHandle.defineOutput(qResult)
669  qHandle.setCondition(qConditionStr,qCondition)
670  cursor=qHandle.execute()
671  while cursor.next():
672  runnum=cursor.currentRow()['runnum'].data()
673  cmslsnum=cursor.currentRow()['cmslsnum'].data()
674  prescaleblob=cursor.currentRow()['prescaleblob'].data()
675  hltcountblob=cursor.currentRow()['hltcountblob'].data()
676  hltacceptblob=cursor.currentRow()['hltacceptblob'].data()
677  if not result.has_key(cmslsnum):
678  result[cmslsnum]=[]
679  result[cmslsnum].extend([prescaleblob,hltcountblob,hltacceptblob])
680  except :
681  del qHandle
682  raise
683  del qHandle
684  return (runnum,result)
685 def guessDataIdByRun(schema,runnum):
686  '''
687  get dataids by runnumber, if there are duplicates, pick max(dataid).Bypass full version lookups
688  result (lumidataid(0),trgdataid(1),hltdataid(2))
689  '''
690  lumiids=[]
691  trgids=[]
692  hltids=[]
693  qHandle=schema.newQuery()
694  try:
695  qHandle.addToTableList(nameDealer.lumidataTableName(),'l')
696  qHandle.addToTableList(nameDealer.trgdataTableName(),'t')
697  qHandle.addToTableList(nameDealer.hltdataTableName(),'h')
698  qHandle.addToOutputList('l.DATA_ID','lumidataid')
699  qHandle.addToOutputList('t.DATA_ID','trgdataid')
700  qHandle.addToOutputList('h.DATA_ID','hltdataid')
701  qConditionStr='l.RUNNUM=t.RUNNUM and t.RUNNUM=h.RUNNUM and l.RUNNUM=:runnum '
702  qCondition=coral.AttributeList()
703  qCondition.extend('runnum','unsigned int')
704  qCondition['runnum'].setData(runnum)
705  qResult=coral.AttributeList()
706  qResult.extend('lumidataid','unsigned long long')
707  qResult.extend('trgdataid','unsigned long long')
708  qResult.extend('hltdataid','unsigned long long')
709  qHandle.defineOutput(qResult)
710  qHandle.setCondition(qConditionStr,qCondition)
711  cursor=qHandle.execute()
712  while cursor.next():
713  lumidataid=cursor.currentRow()['lumidataid'].data()
714  trgdataid=cursor.currentRow()['trgdataid'].data()
715  hltdataid=cursor.currentRow()['hltdataid'].data()
716  lumiids.append(lumidataid)
717  trgids.append(trgdataid)
718  hltids.append(hltdataid)
719  except :
720  del qHandle
721  raise
722  del qHandle
723  return (max(lumiids),max(trgids),max(hltids))
724 
725 def guessnormIdByContext(schema,amodetag,egev1):
726  '''
727  get norm dataids by amodetag, egev if there are duplicates, pick max(dataid).Bypass full version lookups
728  select data_id from luminorm where amodetag=:amodetag and egev_1=:egev1
729  '''
730  luminormids=[]
731  qHandle=schema.newQuery()
732  try:
733  qHandle.addToTableList( nameDealer.luminormTableName() )
734  qHandle.addToOutputList('DATA_ID','normdataid')
735  qConditionStr='AMODETAG=:amodetag AND EGEV_1=:egev1'
736  qCondition=coral.AttributeList()
737  qCondition.extend('amodetag','string')
738  qCondition.extend('egev1','unsigned int')
739  qCondition['amodetag'].setData(amodetag)
740  qCondition['egev1'].setData(egev1)
741  qResult=coral.AttributeList()
742  qResult.extend('normdataid','unsigned long long')
743  qHandle.defineOutput(qResult)
744  qHandle.setCondition(qConditionStr,qCondition)
745  cursor=qHandle.execute()
746  while cursor.next():
747  normdataid=cursor.currentRow()['normdataid'].data()
748  luminormids.append(normdataid)
749  except :
750  del qHandle
751  raise
752  del qHandle
753  if len(luminormids) !=0:return max(luminormids)
754  return None
755 
756 def guessnormIdByName(schema,normname):
757  '''
758  get norm dataids by name, if there are duplicates, pick max(dataid).Bypass full version lookups
759  select luminorm.data_id from luminorm where name=:normname
760  result luminormdataid
761  '''
762  luminormids=[]
763  qHandle=schema.newQuery()
764  try:
765  qHandle.addToTableList( nameDealer.entryTableName(nameDealer.luminormTableName()) )
766  qHandle.addToTableList( nameDealer.luminormTableName() )
767  qHandle.addToOutputList('DATA_ID','normdataid')
768  qConditionStr='ENTRY_NAME=:normname '
769  qCondition=coral.AttributeList()
770  qCondition.extend('normname','string')
771  qCondition['normname'].setData(normname)
772  qResult=coral.AttributeList()
773  qResult.extend('normdataid','unsigned long long')
774  qHandle.defineOutput(qResult)
775  qHandle.setCondition(qConditionStr,qCondition)
776  cursor=qHandle.execute()
777  while cursor.next():
778  normdataid=cursor.currentRow()['normdataid'].data()
779  luminormids.append(normdataid)
780  except :
781  del qHandle
782  raise
783  del qHandle
784  if len(luminormids) !=0:return max(luminormids)
785  return None
786 
787 ########
788 ########
789 def dataentryIdByRun(schema,runnum,branchfilter):
790  '''
791  select el.entry_id,et.entry_id,eh.entry_id,el.revision_id,et.revision_id,eh.revision_id from lumidataentiries el,trgdataentries et,hltdataentries eh where el.name=et.name and et.name=eh.name and el.name=:entryname;
792  check on entryrev
793 
794  return [lumientryid,trgentryid,hltentryid]
795  '''
796  result=[]
797  qHandle=schema.newQuery()
798  try:
799  qHandle.addToTableList(nameDealer.entryTableName( lumidataTableName() ))
800  qHandle.addToTableList(nameDealer.entryTableName( trgdataTableName() ))
801  qHandle.addToTableList(nameDealer.entryTableName( hltdataTableName() ))
802  qHandle.addToOutputList(lumidataTableName()+'.ENTRY_ID','lumientryid')
803  qHandle.addToOutputList(trgdataTableName()+'.ENTRY_ID','trgentryid')
804  qHandle.addToOutputList(hltdataTableName()+'.ENTRY_ID','hltentryid')
805  qConditionStr=lumidataTableName()+'.NAME='+trgdataTableName()+'.NAME AND '+trgdataTableName()+'.NAME='+hltdataTableName()+'.NAME AND '+lumidataTableName()+'.NAME=:runnumstr'
806  qCondition=coral.AttributeList()
807  qCondition.extend('runnumstr','string')
808  qCondition['runnumstr'].setData(str(runnum))
809  qResult=coral.AttributeList()
810  qResult.extend('lumientryid','unsigned long long')
811  qResult.extend('trgentryid','unsigned long long')
812  qResult.extend('hltentryid','unsigned long long')
813  qHandle.defineOutput(qResult)
814  qHandle.setCondition(qConditionStr,qCondition)
815  cursor=qHandle.execute()
816  while cursor.next():
817  lumientryid=cursor.currentRow()['lumientryid'].data()
818  trgentryid=cursor.currentRow()['trgentryid'].data()
819  hltentryid=cursor.currentRow()['hltentryid'].data()
820  if lumientryid in branchfilter and trgentryid in branchfilter and hltentryid in branchfilter:
821  result.extend([lumientryid,trgentryid,hltentryid])
822  except:
823  del qHandle
824  raise
825  del qHandle
826  return result
827 
828 def latestdataIdByEntry(schema,entryid,datatype,branchfilter):
829  '''
830  select l.data_id,rl.revision_id from lumidatatable l,lumirevisions rl where l.data_id=rl.data_id and l.entry_id=:entryid
831  check revision_id is in branch
832  '''
833  dataids=[]
834  datatablename=''
835  revmaptablename=''
836  if datatype=='lumi':
837  datatablename=nameDealer.lumidataTableName()
838  elif datatype=='trg':
839  datatablename=nameDealer.trgdataTableName()
840  elif dataytpe=='hlt':
841  tablename=nameDealer.hltdataTableName()
842  else:
843  raise RunTimeError('datatype '+datatype+' is not supported')
844  revmaptablename=nameDealer.revmapTableName(datatablename)
845  qHandle=schema.newQuery()
846  try:
847  qHandle.addToTableList(revmaptablename)
848  qHandle.addToTableList(datatablename)
849  qHandle.addToOutputList('l.DATA_ID','dataid')
850  qHandle.addToOutputList(revmaptablename+'.REVISION_ID','revisionid')
851  qConditionStr=datatablename+'.DATA_ID='+revmaptablename+'.DATA_ID AND '+datatablename+'.ENTRY_ID=:entryid'
852  qCondition=coral.AttributeList()
853  qCondition.extend('entryid','unsigned long long')
854  qResult=coral.AttributeList()
855  qResult.extend('dataid','unsigned long long')
856  qResult.extend('revisionid','unsigned long long')
857  qHandle.defineOutput(qResult)
858  qHandle.setCondition(qConditionStr,qCondition)
859  cursor=qHandle.execute()
860  while cursor.next():
861  dataid=cursor.currentRow()['dataid'].data()
862  revisionid=cursor.currentRow()['revisionid'].data()
863  if revisionid in branchfilter:
864  dataids.append(dataid)
865  except:
866  del qHandle
867  raise
868  del qHandle
869  if len(dataids)!=0:return max(dataids)
870  return None
871 
872 #=======================================================
873 # INSERT requires in update transaction
874 #=======================================================
875 def addNormToBranch(schema,normname,amodetag,norm1,egev1,optionalnormdata,branchinfo):
876  '''
877  input:
878  branchinfo(normrevisionid,branchname)
879  optionalnormdata {'norm2':norm2,'egev2':egev2}
880  output:
881  (revision_id,entry_id,data_id)
882  '''
883  print 'branchinfo ',branchinfo
884  norm2=None
885  if optionalnormdata.has_key('norm2'):
886  norm2=optionalnormdata['norm2']
887  egev2=None
888  if optionalnormdata.has_key('egev2'):
889  egev2=optionalnormdata['egev2']
890  try:
891  entry_id=revisionDML.entryInBranch(schema,nameDealer.luminormTableName(),normname,branchinfo[1])
892  if entry_id is None:
893  (revision_id,entry_id,data_id)=revisionDML.bookNewEntry(schema,nameDealer.luminormTableName())
894  entryinfo=(revision_id,entry_id,normname,data_id)
895  revisionDML.addEntry(schema,nameDealer.luminormTableName(),entryinfo,branchinfo)
896  else:
897  (revision_id,data_id)=revisionDML.bookNewRevision( schema,nameDealer.luminormTableName() )
898  revisionDML.addRevision(schema,nameDealer.luminormTableName(),(revision_id,data_id),branchinfo)
899  tabrowDefDict={'DATA_ID':'unsigned long long','ENTRY_ID':'unsigned long long','ENTRY_NAME':'string','AMODETAG':'string','NORM_1':'float','EGEV_1':'unsigned int','NORM_2':'float','EGEV_2':'unsigned int'}
900  tabrowValueDict={'DATA_ID':data_id,'ENTRY_ID':entry_id,'ENTRY_NAME':normname,'AMODETAG':amodetag,'NORM_1':norm1,'EGEV_1':egev1,'NORM_2':norm2,'EGEV_2':egev2}
901  db=dbUtil.dbUtil(schema)
902  db.insertOneRow(nameDealer.luminormTableName(),tabrowDefDict,tabrowValueDict)
903  return (revision_id,entry_id,data_id)
904  except :
905  raise
906 def addLumiRunDataToBranch(schema,runnumber,lumirundata,branchinfo):
907  '''
908  input:
909  lumirundata [datasource]
910  branchinfo (branch_id,branch_name)
911  output:
912  (revision_id,entry_id,data_id)
913  '''
914  try:
915  datasource=lumirundata[0]
916  entry_id=revisionDML.entryInBranch(schema,nameDealer.lumidataTableName(),str(runnumber),branchinfo[1])
917  if entry_id is None:
918  (revision_id,entry_id,data_id)=revisionDML.bookNewEntry(schema,nameDealer.lumidataTableName())
919  entryinfo=(revision_id,entry_id,str(runnumber),data_id)
920  revisionDML.addEntry(schema,nameDealer.lumidataTableName(),entryinfo,branchinfo)
921  else:
922  (revision_id,data_id)=revisionDML.bookNewRevision( schema,nameDealer.lumidataTableName() )
923  revisionDML.addRevision(schema,nameDealer.lumidataTableName(),(revision_id,data_id),branchinfo)
924  tabrowDefDict={'DATA_ID':'unsigned long long','ENTRY_ID':'unsigned long long','ENTRY_NAME':'string','RUNNUM':'unsigned int','SOURCE':'string'}
925  tabrowValueDict={'DATA_ID':data_id,'ENTRY_ID':entry_id,'ENTRY_NAME':str(runnumber),'RUNNUM':int(runnumber),'SOURCE':datasource}
926  db=dbUtil.dbUtil(schema)
927  db.insertOneRow(nameDealer.lumidataTableName(),tabrowDefDict,tabrowValueDict)
928  return (revision_id,entry_id,data_id)
929  except :
930  raise
931 def addTrgRunDataToBranch(schema,runnumber,trgrundata,branchinfo):
932  '''
933  input:
934  trgrundata [datasource(0),bitzeroname(1),bitnameclob(2)]
935  bitnames clob, bitnames separated by ','
936  output:
937  (revision_id,entry_id,data_id)
938  '''
939  try: #fixme: need to consider revision only case
940  datasource=trgrundata[0]
941  bitzeroname=trgrundata[1]
942  bitnames=trgrundata[2]
943  entry_id=revisionDML.entryInBranch(schema,nameDealer.trgdataTableName(),str(runnumber),branchinfo[1])
944  if entry_id is None:
945  (revision_id,entry_id,data_id)=revisionDML.bookNewEntry(schema,nameDealer.trgdataTableName())
946  entryinfo=(revision_id,entry_id,str(runnumber),data_id)
947  revisionDML.addEntry(schema,nameDealer.trgdataTableName(),entryinfo,branchinfo)
948  else:
949  (revision_id,data_id)=revisionDML.bookNewRevision( schema,nameDealer.trgdataTableName() )
950  revisionDML.addRevision(schema,nameDealer.trgdataTableName(),(revision_id,data_id),branchinfo)
951  tabrowDefDict={'DATA_ID':'unsigned long long','ENTRY_ID':'unsigned long long','ENTRY_NAME':'string','SOURCE':'string','RUNNUM':'unsigned int','BITZERONAME':'string','BITNAMECLOB':'string'}
952  tabrowValueDict={'DATA_ID':data_id,'ENTRY_ID':entry_id,'ENTRY_NAME':str(runnumber),'SOURCE':datasource,'RUNNUM':int(runnumber),'BITZERONAME':bitzeroname,'BITNAMECLOB':bitnames}
953  db=dbUtil.dbUtil(schema)
954  db.insertOneRow(nameDealer.trgdataTableName(),tabrowDefDict,tabrowValueDict)
955  return (revision_id,entry_id,data_id)
956  except :
957  raise
958 def addHLTRunDataToBranch(schema,runnumber,hltrundata,branchinfo):
959  '''
960  input:
961  hltrundata [pathnameclob(0),datasource(1)]
962  output:
963  (revision_id,entry_id,data_id)
964  '''
965  try:
966  pathnames=hltrundata[0]
967  datasource=hltrundata[1]
968  npath=len(pathnames.split(','))
969  entry_id=revisionDML.entryInBranch(schema,nameDealer.lumidataTableName(),str(runnumber),branchinfo[1])
970  if entry_id is None:
971  (revision_id,entry_id,data_id)=revisionDML.bookNewEntry(schema,nameDealer.hltdataTableName())
972  entryinfo=(revision_id,entry_id,str(runnumber),data_id)
973  revisionDML.addEntry(schema,nameDealer.hltdataTableName(),entryinfo,branchinfo)
974  else:
975  (revision_id,data_id)=revisionDML.bookNewRevision( schema,nameDealer.hltdataTableName() )
976  revisionDML.addRevision(schema,nameDealer.hltdataTableName(),(revision_id,data_id),branchinfo)
977  tabrowDefDict={'DATA_ID':'unsigned long long','ENTRY_ID':'unsigned long long','ENTRY_NAME':'string','RUNNUM':'unsigned int','SOURCE':'string','NPATH':'unsigned int','PATHNAMECLOB':'string'}
978  tabrowValueDict={'DATA_ID':data_id,'ENTRY_ID':entry_id,'ENTRY_NAME':str(runnumber),'RUNNUM':int(runnumber),'SOURCE':datasource,'NPATH':npath,'PATHNAMECLOB':pathnames}
979  db=dbUtil.dbUtil(schema)
980  db.insertOneRow(nameDealer.hltdataTableName(),tabrowDefDict,tabrowValueDict)
981  return (revision_id,entry_id,data_id)
982  except :
983  raise
984 
985 def insertRunSummaryData(schema,runnumber,runsummarydata,complementalOnly=False):
986  '''
987  input:
988  runsummarydata [l1key,amodetag,egev,sequence,hltkey,fillnum,starttime,stoptime]
989  output:
990  '''
991  l1key=runsummarydata[0]
992  amodetag=runsummarydata[1]
993  egev=runsummarydata[2]
994  hltkey=''
995  fillnum=0
996  sequence=''
997  starttime=''
998  stoptime=''
999  if not complementalOnly:
1000  sequence=runsummarydata[3]
1001  hltkey=runsummarydata[4]
1002  fillnum=runsummarydata[5]
1003  starttime=runsummarydata[6]
1004  stoptime=runsummarydata[7]
1005  try:
1006  if not complementalOnly:
1007  tabrowDefDict={'RUNNUM':'unsigned int','L1KEY':'string','AMODETAG':'string','EGEV':'unsigned int','SEQUENCE':'string','HLTKEY':'string','FILLNUM':'unsigned int','STARTTIME':'time stamp','STOPTIME':'time stamp'}
1008  tabrowValueDict={'RUNNUM':int(runnumber),'L1KEY':l1key,'AMODETAG':amodetag,'EGEV':int(egev),'SEQUENCE':sequence,'HLTKEY':hltkey,'FILLNUM':int(fillnum),'STARTTIME':starttime,'STOPTIME':stoptime}
1009  db=dbUtil.dbUtil(schema)
1010  db.insertOneRow(nameDealer.cmsrunsummaryTableName(),tabrowDefDict,tabrowValueDict)
1011  else:
1012  setClause='L1KEY=:l1key,AMODETAG=:amodetag,EGEV=:egev'
1013  updateCondition='RUNNUM=:runnum'
1014  inputData=coral.AttributeList()
1015  inputData.extend('l1key','string')
1016  inputData.extend('amodetag','string')
1017  inputData.extend('egev','unsigned int')
1018  inputData.extend('runnum','unsigned int')
1019  inputData['l1key'].setData(l1key)
1020  inputData['amodetag'].setData(amodetag)
1021  inputData['egev'].setData(int(egev))
1022  inputData['runnum'].setData(int(runnumber))
1023  db=dbUtil.dbUtil(schema)
1024  db.singleUpdate(nameDealer.cmsrunsummaryTableName(),setClause,updateCondition,inputData)
1025  except :
1026  raise
1027 def insertTrgHltMap(schema,hltkey,trghltmap):
1028  '''
1029  input:
1030  trghltmap {hltpath:l1seed}
1031  output:
1032  '''
1033  hltkeyExists=False
1034  nrows=0
1035  try:
1036  kQueryBindList=coral.AttributeList()
1037  kQueryBindList.extend('hltkey','string')
1038  kQuery=schema.newQuery()
1039  kQuery.addToTableList(nameDealer.trghltMapTableName())
1040  kQuery.setCondition('HLTKEY=:hltkey',kQueryBindList)
1041  kQueryBindList['hltkey'].setData(hltkey)
1042  kResult=kQuery.execute()
1043  while kResult.next():
1044  hltkeyExists=True
1045  if not hltkeyExists:
1046  bulkvalues=[]
1047  trghltDefDict=[('HLTKEY','string'),('HLTPATHNAME','string'),('L1SEED','string')]
1048  for hltpath,l1seed in trghltmap.items():
1049  bulkvalues.append([('HLTKEY',hltkey),('HLTPATHNAME',hltpath),('L1SEED',l1seed)])
1050  db=dbUtil.dbUtil(schema)
1051  db.bulkInsert(nameDealer.trghltMapTableName(),trghltDefDict,bulkvalues)
1052  nrows=len(bulkvalues)
1053  return nrows
1054  except :
1055  print 'error in insertTrgHltMap '
1056  raise
1057 def bulkInsertTrgLSData(session,runnumber,data_id,trglsdata,bulksize=500):
1058  '''
1059  insert trg per-LS data for given run and data_id, this operation can be split in transaction chuncks
1060  input:
1061  trglsdata {cmslsnum:[deadtime,bitzerocount,bitzeroprescale,trgcountBlob,trgprescaleBlob]}
1062  result nrows inserted
1063  if nrows==0, then this insertion failed
1064  '''
1065  print 'total number of trg rows ',len(trglsdata)
1066  lstrgDefDict=[('DATA_ID','unsigned long long'),('RUNNUM','unsigned int'),('CMSLSNUM','unsigned int'),('DEADTIMECOUNT','unsigned long long'),('BITZEROCOUNT','unsigned int'),('BITZEROPRESCALE','unsigned int'),('PRESCALEBLOB','blob'),('TRGCOUNTBLOB','blob')]
1067  committedrows=0
1068  nrows=0
1069  bulkvalues=[]
1070  try:
1071  for cmslsnum,perlstrg in trglsdata.items():
1072  deadtimecount=perlstrg[0]
1073  bitzerocount=perlstrg[1]
1074  bitzeroprescale=perlstrg[2]
1075  trgcountblob=perlstrg[3]
1076  trgprescaleblob=perlstrg[4]
1077  bulkvalues.append([('DATA_ID',data_id),('RUNNUM',runnumber),('CMSLSNUM',cmslsnum),('DEADTIMECOUNT',deadtimecount),('BITZEROCOUNT',bitzerocount),('BITZEROPRESCALE',bitzeroprescale),('PRESCALEBLOB',trgprescaleblob),('TRGCOUNTBLOB',trgcountblob)])
1078  nrows+=1
1079  committedrows+=1
1080  if nrows==bulksize:
1081  print 'committing trg in LS chunck ',nrows
1082  db=dbUtil.dbUtil(session.nominalSchema())
1083  session.transaction().start(False)
1084  db.bulkInsert(nameDealer.lstrgTableName(),lstrgDefDict,bulkvalues)
1085  session.transaction().commit()
1086  nrows=0
1087  bulkvalues=[]
1088  elif committedrows==len(trglsdata):
1089  print 'committing trg at the end '
1090  db=dbUtil.dbUtil(session.nominalSchema())
1091  session.transaction().start(False)
1092  db.bulkInsert(nameDealer.lstrgTableName(),lstrgDefDict,bulkvalues)
1093  session.transaction().commit()
1094  except :
1095  print 'error in bulkInsertTrgLSData'
1096  raise
1097 def bulkInsertHltLSData(session,runnumber,data_id,hltlsdata,bulksize=500):
1098  '''
1099  input:
1100  hltlsdata {cmslsnum:[inputcountBlob,acceptcountBlob,prescaleBlob]}
1101  '''
1102  print 'total number of hlt rows ',len(hltlsdata)
1103  lshltDefDict=[('DATA_ID','unsigned long long'),('RUNNUM','unsigned int'),('CMSLSNUM','unsigned int'),('PRESCALEBLOB','blob'),('HLTCOUNTBLOB','blob'),('HLTACCEPTBLOB','blob')]
1104  committedrows=0
1105  nrows=0
1106  bulkvalues=[]
1107  try:
1108  for cmslsnum,perlshlt in hltlsdata.items():
1109  inputcountblob=perlshlt[0]
1110  acceptcountblob=perlshlt[1]
1111  prescaleblob=perlshlt[2]
1112  bulkvalues.append([('DATA_ID',data_id),('RUNNUM',runnumber),('CMSLSNUM',cmslsnum),('PRESCALEBLOB',prescaleblob),('HLTCOUNTBLOB',inputcountblob),('HLTACCEPTBLOB',acceptcountblob)])
1113 
1114  nrows+=1
1115  committedrows+=1
1116  if nrows==bulksize:
1117  print 'committing hlt in LS chunck ',nrows
1118  db=dbUtil.dbUtil(session.nominalSchema())
1119  session.transaction().start(False)
1120  db.bulkInsert(nameDealer.lshltTableName(),lshltDefDict,bulkvalues)
1121  session.transaction().commit()
1122  nrows=0
1123  bulkvalues=[]
1124  elif committedrows==len(hltlsdata):
1125  print 'committing hlt at the end '
1126  db=dbUtil.dbUtil(session.nominalSchema())
1127  session.transaction().start(False)
1128  db.bulkInsert(nameDealer.lshltTableName(),lshltDefDict,bulkvalues)
1129  session.transaction().commit()
1130  except :
1131  print 'error in bulkInsertHltLSData'
1132  raise
1133 
1134 def bulkInsertLumiLSSummary(session,runnumber,data_id,lumilsdata,bulksize=500):
1135  '''
1136  input:
1137  lumilsdata {lumilsnum:[cmslsnum,instlumi,instlumierror,instlumiquality,beamstatus,beamenergy,numorbit,startorbit,cmsbxindexblob,beam1intensity,beam2intensity,bxlumivalue_occ1,bxlumierror_occ1,bxlumiquality_occ1,bxlumivalue_occ2,bxlumierror_occ2,bxlumiquality_occ2,bxlumivalue_et,bxlumierror_et,bxlumiquality_et]}
1138  '''
1139  lslumiDefDict=[('DATA_ID','unsigned long long'),('RUNNUM','unsigned int'),('LUMILSNUM','unsigned int'),('CMSLSNUM','unsigned int'),('INSTLUMI','float'),('INSTLUMIERROR','float'),('INSTLUMIQUALITY','short'),('BEAMSTATUS','string'),('BEAMENERGY','float'),('NUMORBIT','unsigned int'),('STARTORBIT','unsigned int'),('CMSBXINDEXBLOB','blob'),('BEAMINTENSITYBLOB_1','blob'),('BEAMINTENSITYBLOB_2','blob'),('BXLUMIVALUE_OCC1','blob'),('BXLUMIERROR_OCC1','blob'),('BXLUMIQUALITY_OCC1','blob'),('BXLUMIVALUE_OCC2','blob'),('BXLUMIERROR_OCC2','blob'),('BXLUMIQUALITY_OCC2','blob'),('BXLUMIVALUE_ET','blob'),('BXLUMIERROR_ET','blob'),('BXLUMIQUALITY_ET','blob')]
1140  print 'total number of lumi rows ',len(lumilsdata)
1141  try:
1142  committedrows=0
1143  nrows=0
1144  bulkvalues=[]
1145  for lumilsnum,perlslumi in lumilsdata.items():
1146  cmslsnum=perlslumi[0]
1147  instlumi=perlslumi[1]
1148  instlumierror=perlslumi[2]
1149  instlumiquality=perlslumi[3]
1150  beamstatus=perlslumi[4]
1151  beamenergy=perlslumi[5]
1152  numorbit=perlslumi[6]
1153  startorbit=perlslumi[7]
1154  cmsbxindexindexblob=perlslumi[8]
1155  beam1intensity=perlslumi[9]
1156  beam2intensity=perlslumi[10]
1157  bxlumivalue_occ1=perlslumi[11]
1158  bxlumierror_occ1=perlslumi[12]
1159  bxlumiquality_occ1=perlslumi[13]
1160  bxlumivalue_occ2=perlslumi[14]
1161  bxlumierror_occ2=perlslumi[15]
1162  bxlumiquality_occ2=perlslumi[16]
1163  bxlumivalue_et=perlslumi[17]
1164  bxlumierror_et=perlslumi[18]
1165  bxlumiquality_et=perlslumi[19]
1166  bulkvalues.append([('DATA_ID',data_id),('RUNNUM',runnumber),('LUMILSNUM',lumilsnum),('CMSLSNUM',cmslsnum),('INSTLUMI',instlumi),('INSTLUMIERROR',instlumierror),('INSTLUMIQUALITY',instlumiquality),('BEAMSTATUS',beamstatus),('BEAMENERGY',beamenergy),('NUMORBIT',numorbit),('STARTORBIT',startorbit),('CMSBXINDEXBLOB',cmsbxindexindexblob),('BEAMINTENSITYBLOB_1',beam1intensity),('BEAMINTENSITYBLOB_2',beam2intensity),('BXLUMIVALUE_OCC1',bxlumivalue_occ1),('BXLUMIERROR_OCC1',bxlumierror_occ1),('BXLUMIQUALITY_OCC1',bxlumiquality_occ1),('BXLUMIVALUE_OCC2',bxlumivalue_occ2),('BXLUMIERROR_OCC2',bxlumierror_occ2),('BXLUMIQUALITY_OCC2',bxlumiquality_occ2),('BXLUMIVALUE_ET',bxlumivalue_et),('BXLUMIERROR_ET',bxlumierror_et),('BXLUMIQUALITY_ET',bxlumiquality_et)])
1167  nrows+=1
1168  committedrows+=1
1169  if nrows==bulksize:
1170  print 'committing lumi in LS chunck ',nrows
1171  db=dbUtil.dbUtil(session.nominalSchema())
1172  session.transaction().start(False)
1173  db.bulkInsert(nameDealer.lumisummaryv2TableName(),lslumiDefDict,bulkvalues)
1174  session.transaction().commit()
1175  nrows=0
1176  bulkvalues=[]
1177  elif committedrows==len(lumilsdata):
1178  print 'committing lumi at the end '
1179  db=dbUtil.dbUtil(session.nominalSchema())
1180  session.transaction().start(False)
1181  db.bulkInsert(nameDealer.lumisummaryv2TableName(),lslumiDefDict,bulkvalues)
1182  session.transaction().commit()
1183  except :
1184  raise
1185 
1186 #def insertLumiLSDetail(schema,runnumber,data_id,lumibxdata):
1187 # '''
1188 # input:
1189 # lumibxdata [(algoname,{lumilsnum:[cmslsnum,bxlumivalue,bxlumierror,bxlumiquality]}),(algoname,{lumilsnum:[cmslsnum,bxlumivalue,bxlumierror,bxlumiquality]}),(algoname,{lumilsnum:[cmslsnum,bxlumivalue,bxlumierror,bxlumiquality]})]
1190 # output:
1191 # nrows
1192 # '''
1193 # try:
1194 # nrow=0
1195 # bulkvalues=[]
1196 # lslumiDefDict=[('DATA_ID','unsigned long long'),('RUNNUM','unsigned int'),('LUMILSNUM','unsigned int'),('CMSLSNUM','unsigned int'),('ALGONAME','string'),('BXLUMIVALUE','blob'),('BXLUMIERROR','blob'),('BXLUMIQUALITY','blob')]
1197 # for (algoname,peralgobxdata) in lumibxdata:
1198 # for lumilsnum,bxdata in peralgobxdata.items():
1199 # cmslsnum=bxdata[0]
1200 # bxlumivalue=bxdata[1]
1201 # bxlumierror=bxdata[2]
1202 # bxlumiquality=bxdata[3]
1203 # bulkvalues.append([('DATA_ID',data_id),('RUNNUM',runnumber),('LUMILSNUM',lumilsnum),('CMSLSNUM',cmslsnum),('ALGONAME',algoname),('BXLUMIVALUE',bxlumivalue),('BXLUMIERROR',bxlumierror),('BXLUMIQUALITY',bxlumiquality)])
1204 # db=dbUtil.dbUtil(schema)
1205 # db.bulkInsert(nameDealer.lumidetailTableName(),lslumiDefDict,bulkvalues)
1206 # return len(bulkvalues)
1207 # except:
1208 # raise
1209 
1210 #def completeOldLumiData(schema,runnumber,lsdata,data_id):
1211 # '''
1212 # input:
1213 # lsdata [[lumisummary_id,lumilsnum,cmslsnum]]
1214 # '''
1215 # try:
1216 # #update in lumisummary table
1217 # #print 'insert in lumisummary table'
1218 # setClause='DATA_ID=:data_id'
1219 # updateCondition='RUNNUM=:runnum AND DATA_ID is NULL'
1220 # updateData=coral.AttributeList()
1221 # updateData.extend('data_id','unsigned long long')
1222 # updateData.extend('runnum','unsigned int')
1223 # updateData['data_id'].setData(data_id)
1224 # updateData['runnum'].setData(int(runnumber))
1225 # db=dbUtil.dbUtil(schema)
1226 # db.singleUpdate(nameDealer.lumisummaryTableName(),setClause,updateCondition,updateData)
1227 # #updates in lumidetail table
1228 # updateAction='DATA_ID=:data_id,RUNNUM=:runnum,CMSLSNUM=:cmslsnum,LUMILSNUM=:lumilsnum'
1229 # updateCondition='LUMISUMMARY_ID=:lumisummary_id'
1230 # bindvarDef=[]
1231 # bindvarDef.append(('data_id','unsigned long long'))
1232 # bindvarDef.append(('runnum','unsigned int'))
1233 # bindvarDef.append(('cmslsnum','unsigned int'))
1234 # bindvarDef.append(('lumilsnum','unsigned int'))
1235 # inputData=[]
1236 # for [lumisummary_id,lumilsnum,cmslsnum] in lsdata:
1237 # inputData.append([('data_id',data_id),('runnum',int(runnumber)),('cmslsnum',cmslsnum),('lumilsnum',lumilsnum)])
1238 # db.updateRows(nameDealer.lumidetailTableName(),updateAction,updateCondition,bindvarDef,inputData)
1239 # except:
1240 # raise
1241 
1242 #=======================================================
1243 # DELETE
1244 #=======================================================
1245 
1246 
1247 #=======================================================
1248 # Unit Test
1249 #=======================================================
1250 if __name__ == "__main__":
1251  import sessionManager
1252  import lumidbDDL,revisionDML,generateDummyData
1253  #myconstr='sqlite_file:test2.db'
1254  myconstr='oracle://devdb10/cms_xiezhen_dev'
1255  svc=sessionManager.sessionManager(myconstr,authpath='/afs/cern.ch/user/x/xiezhen',debugON=False)
1256  session=svc.openSession(isReadOnly=False,cpp2sqltype=[('unsigned int','NUMBER(10)'),('unsigned long long','NUMBER(20)')])
1257  schema=session.nominalSchema()
1258  session.transaction().start(False)
1261  tables=lumidbDDL.createTables(schema)
1262  try:
1263  # #lumidbDDL.createUniqueConstraints(schema)
1264  trunkinfo=revisionDML.createBranch(schema,'TRUNK',None,comment='main')
1265  print trunkinfo
1266  datainfo=revisionDML.createBranch(schema,'DATA','TRUNK',comment='hold data')
1267  print datainfo
1268  norminfo=revisionDML.createBranch(schema,'NORM','TRUNK',comment='hold normalization factor')
1269  print norminfo
1270  except:
1271  raise
1272  #print 'branch already exists, do nothing'
1273  (normbranchid,normbranchparent)=revisionDML.branchInfoByName(schema,'NORM')
1274  normbranchinfo=(normbranchid,'NORM')
1275  addNormToBranch(schema,'pp7TeV','PROTPHYS',6370.0,3500,{},normbranchinfo)
1276  addNormToBranch(schema,'hi7TeV','HIPHYS',2.38,3500,{},normbranchinfo)
1277  (branchid,branchparent)=revisionDML.branchInfoByName(schema,'DATA')
1278  branchinfo=(branchid,'DATA')
1279  for runnum in [1200,1211,1222,1233,1345]:
1280  runsummarydata=generateDummyData.runsummary(schema,'PROTPHYS',3500)
1281  insertRunSummaryData(schema,runnum,runsummarydata)
1283  insertTrgHltMap(schema,hlttrgmap[0],hlttrgmap[1])
1284  lumidummydata=generateDummyData.lumiSummary(schema,20)
1285  lumirundata=[lumidummydata[0]]
1286  lumilsdata=lumidummydata[1]
1287  (lumirevid,lumientryid,lumidataid)=addLumiRunDataToBranch(schema,runnum,lumirundata,branchinfo)
1288  insertLumiLSSummary(schema,runnum,lumidataid,lumilsdata)
1289  trgdata=generateDummyData.trg(schema,20)
1290  trgrundata=[trgdata[0],trgdata[1],trgdata[2]]
1291  trglsdata=trgdata[3]
1292  (trgrevid,trgentryid,trgdataid)=addTrgRunDataToBranch(schema,runnum,trgrundata,branchinfo)
1293  insertTrgLSData(schema,runnum,trgdataid,trglsdata)
1294  hltdata=generateDummyData.hlt(schema,20)
1295  hltrundata=[hltdata[0],hltdata[1]]
1296  hltlsdata=hltdata[2]
1297  (hltrevid,hltentryid,hltdataid)=addHLTRunDataToBranch(schema,runnum,hltrundata,branchinfo)
1298  insertHltLSData(schema,runnum,hltdataid,hltlsdata)
1299  session.transaction().commit()
1300  print 'test reading'
1301  session.transaction().start(True)
1302  print '===inspecting NORM by name==='
1303  normrevlist=revisionDML.revisionsInBranchName(schema,'NORM')
1304  luminormentry_id=revisionDML.entryInBranch(schema,nameDealer.luminormTableName(),'pp7TeV','NORM')
1305  latestNorms=revisionDML.latestDataRevisionOfEntry(schema,nameDealer.luminormTableName(),luminormentry_id,normrevlist)
1306  print 'latest norm data_id for pp7TeV ',latestNorms
1307 
1308  print '===inspecting DATA branch==='
1309  print revisionDML.branchType(schema,'DATA')
1310  revlist=revisionDML.revisionsInBranchName(schema,'DATA')
1311  print revlist
1312  lumientry_id=revisionDML.entryInBranch(schema,nameDealer.lumidataTableName(),'1211','DATA')
1313  latestrevision=revisionDML.latestDataRevisionOfEntry(schema,nameDealer.lumidataTableName(),lumientry_id,revlist)
1314  print 'latest lumi data_id for run 1211 ',latestrevision
1315  lumientry_id=revisionDML.entryInBranch(schema,nameDealer.lumidataTableName(),'1222','DATA')
1316  latestrevision=revisionDML.latestDataRevisionOfEntry(schema,nameDealer.lumidataTableName(),lumientry_id,revlist)
1317  print 'latest lumi data_id for run 1222 ',latestrevision
1318  trgentry_id=revisionDML.entryInBranch(schema,nameDealer.trgdataTableName(),'1222','DATA')
1319  latestrevision=revisionDML.latestDataRevisionOfEntry(schema,nameDealer.trgdataTableName(),trgentry_id,revlist)
1320  print 'latest trg data_id for run 1222 ',latestrevision
1321  session.transaction().commit()
1322  print 'tagging data so far as data_orig'
1323  session.transaction().start(False)
1324  (revisionid,parentid,parentname)=revisionDML.createBranch(schema,'data_orig','DATA',comment='tag of 2010data')
1325  session.transaction().commit()
1326  session.transaction().start(True)
1327  print revisionDML.branchType(schema,'data_orig')
1328  revlist=revisionDML.revisionsInTag(schema,revisionid,branchinfo[0])
1329  print revlist
1330  session.transaction().commit()
1331  session.transaction().start(False)
1332  for runnum in [1200,1222]:
1333  print 'revising lumidata for run ',runnum
1334  lumidummydata=generateDummyData.lumiSummary(schema,20)
1335  lumirundata=[lumidummydata[0]]
1336  lumilsdata=lumidummydata[1]
1337  (lumirevid,lumientryid,lumidataid)=addLumiRunDataToBranch(schema,runnum,lumirundata,branchinfo)
1338  insertLumiLSSummary(schema,runnum,lumidataid,lumilsdata)
1339  revlist=revisionDML.revisionsInTag(schema,revisionid,branchinfo[0])
1340  print 'revisions in branch DATA',revisionDML.revisionsInBranch(schema,branchinfo[0])
1341  session.transaction().commit()
1342  #print 'revisions in tag data_orig ',revlist
1343 
1344  print '===test reading==='
1345  session.transaction().start(True)
1346  #print 'guess norm by name'
1347  #normid1=guessnormIdByName(schema,'pp7TeV')
1348  #print 'normid1 ',normid1
1349  #normid2=guessnormIdByContext(schema,'PROTPHYS',3500)
1350  #print 'guess norm of PROTPHYS 3500'
1351  #print 'normid2 ',normid2
1352  #normid=normid2
1353  #(lumidataid,trgdataid,hltdataid)=guessDataIdByRun(schema,1200)
1354  #print 'normid,lumiid,trgid,hltid ',normid,lumidataid,trgdataid,hltdataid
1355  #print 'lumi norm'
1356  #print luminormById(schema,normid)
1357  #print 'runinfo '
1358  #print runsummary(schema,runnum,session.properties().flavorName())
1359  #print 'lumirun '
1360  #print lumiRunById(schema,lumidataid)
1361  #print 'lumisummary'
1362  #print lumiLSById(schema,lumidataid)
1363  #print 'beam info'
1364  #print beamInfoById(schema,lumidataid)
1365  #print 'lumibx by algo OCC1'
1366  #print lumiBXByAlgo(schema,lumidataid,'OCC1')
1367  print 'trg run, trgdataid ',trgdataid
1368  print trgRunById(schema,trgdataid)
1369  #print 'trg ls'
1370  #print trgLSById(schema,trgdataid)
1371  #print 'hlt run'
1372  #print hltRunById(schema,hltdataid)
1373  #print 'hlt ls'
1374  #print hltLSById(schema,hltdataid)
1375  session.transaction().commit()
1376  del session
def bulkInsertTrgLSData
Definition: dataDML.py:1057
Definition: start.py:1
def lstrgTableName
Definition: nameDealer.py:32
def hlttrgMappingByrun
Definition: dataDML.py:608
def branchInfoByName
Definition: revisionDML.py:280
def revmapTableName
Definition: nameDealer.py:65
#define min(a, b)
Definition: mlp_lapack.h:161
def mostRecentLuminorms
Definition: dataDML.py:137
def revisionsInBranchName
Definition: revisionDML.py:175
def lumiRunById
Definition: dataDML.py:345
def trghltMapTableName
Definition: nameDealer.py:47
def latestdataIdByEntry
Definition: dataDML.py:828
def hltRunById
Definition: dataDML.py:572
def trgRunById
Definition: dataDML.py:245
def bulkInsertHltLSData
Definition: dataDML.py:1097
def createBranch
Definition: revisionDML.py:430
def insertRunSummaryData
Definition: dataDML.py:985
def trgdataTableName
Definition: nameDealer.py:29
def bulkInsertLumiLSSummary
Definition: dataDML.py:1134
def addTrgRunDataToBranch
Definition: dataDML.py:931
const T & max(const T &a, const T &b)
def hltdataTableName
Definition: nameDealer.py:41
def guessnormIdByName
Definition: dataDML.py:756
def lumiBXByAlgo
Definition: dataDML.py:522
def createTables
Definition: lumidbDDL.py:8
def runList
Definition: dataDML.py:12
def schemaV2Tables
Definition: nameDealer.py:5
def runsummary
Definition: dataDML.py:85
def commonTables
Definition: nameDealer.py:9
def entryTableName
Definition: nameDealer.py:68
def lshltTableName
Definition: nameDealer.py:44
def guessnormIdByContext
Definition: dataDML.py:725
def addLumiRunDataToBranch
Definition: dataDML.py:906
def hltLSById
Definition: dataDML.py:645
def lumidataTableName
Definition: nameDealer.py:17
def revisionsInBranch
Definition: revisionDML.py:59
def bookNewRevision
Definition: revisionDML.py:328
def revisionsInTag
Definition: revisionDML.py:10
def dropTables
Definition: lumidbDDL.py:209
def luminormTableName
Definition: nameDealer.py:27
def bookNewEntry
Definition: revisionDML.py:314
def addNormToBranch
Definition: dataDML.py:875
def trgLSById
Definition: dataDML.py:286
def insertTrgHltMap
Definition: dataDML.py:1027
def lumisummaryv2TableName
Definition: nameDealer.py:23
def dataentryIdByRun
Definition: dataDML.py:789
def lumiLSById
Definition: dataDML.py:374
def entryInBranch
Definition: revisionDML.py:186
def guessDataIdByRun
Definition: dataDML.py:685
def beamInfoById
Definition: dataDML.py:472
def addHLTRunDataToBranch
Definition: dataDML.py:958
def latestDataRevisionOfEntry
Definition: revisionDML.py:272
def luminormById
Definition: dataDML.py:199
def cmsrunsummaryTableName
Definition: nameDealer.py:14