def insertLumiDetaildata(dbsession,perlsrawdata,perbunchrawdata,summaryidlsmap): dataDef=[] dataDef.append(('LUMISUMMARY_ID','unsigned long long')) dataDef.append(('LUMIDETAIL_ID','unsigned long long')) dataDef.append(('BXLUMIVALUE','blob')) dataDef.append(('BXLUMIERROR','blob')) dataDef.append(('BXLUMIQUALITY','blob')) dataDef.append(('ALGONAME','string')) perbunchiData=[] dbsession.transaction().start(False) iddealer=idDealer.idDealer(dbsession.nominalSchema()) db=dbUtil.dbUtil(dbsession.nominalSchema()) print('to insert lumidetail ') for algoname in ['OCC1','OCC2','ET']: for cmslsnum,instlumi in perlsrawdata.items(): lumisummary_id=summaryidlsmap[cmslsnum] lumidetail_id=iddealer.generateNextIDForTable('LUMIDETAIL') bxdata=array.array('f') bxerror=array.array('f') bxquality=array.array('h') for bxidx in range(1,3565): lumifraction=0.0 if bxidx in perbunchrawdata: lumifraction=perbunchrawdata[bxidx] bxlumivalue=float(instlumi*lumifraction)/float(bunchnorm) bxdata.append(bxlumivalue) bxerror.append(0.0) bxquality.append(1) bxdataBlob=CommonUtil.packArraytoBlob(bxdata) bxerrorBlob=CommonUtil.packArraytoBlob(bxerror) bxqualityBlob=CommonUtil.packArraytoBlob(bxquality) perbunchiData.append([('LUMISUMMARY_ID',lumisummary_id),('LUMIDETAIL_ID',lumidetail_id),('BXLUMIVALUE',bxdataBlob),('BXLUMIERROR',bxerrorBlob),('BXLUMIQUALITY',bxqualityBlob),('ALGONAME',algoname)]) db.bulkInsert('LUMIDETAIL',dataDef,perbunchiData) dbsession.transaction().commit() return
def createDataTag(schema,tagname,lumitype='HF'): ''' insert into tags(tagname,tagid,creationtime) values() output: tagname,tagid,creationtime ''' if lumitype not in ['HF','PIXEL']: raise ValueError('unknown lumitype '+lumitype) if lumitype=='HF': tagstablename=nameDealer.tagsTableName() else: tagstablename=nameDealer.pixeltagsTableName() try: iddealer=idDealer.idDealer(schema) tagid=iddealer.generateNextIDForTable( tagstablename ) db=dbUtil.dbUtil(schema) tabrowDefDict={} tabrowDefDict['TAGNAME']='string' tabrowDefDict['TAGID']='unsigned long long' tabrowDefDict['CREATIONTIME']='time stamp' tabrowValueDict={} tabrowValueDict['TAGNAME']=tagname tabrowValueDict['TAGID']=tagid creationtime=coral.TimeStamp() tabrowValueDict['CREATIONTIME']=creationtime db.insertOneRow(tagstablename,tabrowDefDict, tabrowValueDict ) return (tagname,tagid,creationtime) except: raise
def insertLumiSummarydata(dbsession, perlsrawdata): """ input: perlsrawdata {cmslsnum:instlumi} insert into lumisummary(lumisummary_id,runnum,cmslsnum,lumilsnum,lumiversion,dtnorm,lhcnorm,instlumi,instlumierror,instlumiquality,cmsalive,startorbit,numorbit,lumisectionquality,beamenergy,beamstatus) values() """ summaryidlsmap = {} dataDef = [] dataDef.append(("LUMISUMMARY_ID", "unsigned long long")) dataDef.append(("RUNNUM", "unsigned int")) dataDef.append(("CMSLSNUM", "unsigned int")) dataDef.append(("LUMILSNUM", "unsigned int")) dataDef.append(("LUMIVERSION", "string")) dataDef.append(("DTNORM", "float")) dataDef.append(("LHCNORM", "float")) dataDef.append(("INSTLUMI", "float")) dataDef.append(("INSTLUMIERROR", "float")) dataDef.append(("INSTLUMIQUALITY", "short")) dataDef.append(("CMSALIVE", "short")) dataDef.append(("STARTORBIT", "unsigned int")) dataDef.append(("NUMORBIT", "unsigned int")) dataDef.append(("LUMISECTIONQUALITY", "short")) dataDef.append(("BEAMENERGY", "float")) dataDef.append(("BEAMSTATUS", "string")) perlsiData = [] dbsession.transaction().start(False) iddealer = idDealer.idDealer(dbsession.nominalSchema()) db = dbUtil.dbUtil(dbsession.nominalSchema()) lumisummary_id = 0 for cmslsnum, instlumi in perlsrawdata.items(): mystartorbit = startorbit + numorbit * (cmslsnum - 1) lumisummary_id = iddealer.generateNextIDForTable("LUMISUMMARY") summaryidlsmap[cmslsnum] = lumisummary_id perlsiData.append( [ ("LUMISUMMARY_ID", lumisummary_id), ("RUNNUM", runnum), ("CMSLSNUM", cmslsnum), ("LUMILSNUM", cmslsnum), ("LUMIVERSION", lumiversion), ("DTNORM", dtnorm), ("LHCNORM", lhcnorm), ("INSTLUMI", instlumi), ("INSTLUMIERROR", 0.0), ("CMSALIVE", cmsalive), ("STARTORBIT", mystartorbit), ("NUMORBIT", numorbit), ("LUMISECTIONQUALITY", 1), ("BEAMENERGY", beamenergy), ("BEAMSTATUS", beamstatus), ] ) db.bulkInsert("LUMISUMMARY", dataDef, perlsiData) dbsession.transaction().commit() print "lumisummary to insert : ", perlsiData print "summaryidlsmap ", summaryidlsmap return summaryidlsmap
def bookNewRevision(schema,datatableName): ''' allocate new revision_id,data_id ''' try: iddealer=idDealer.idDealer(schema) revision_id=iddealer.generateNextIDForTable( nameDealer.revisionTableName() ) data_id=iddealer.generateNextIDForTable(datatableName) return (revision_id,data_id) except: raise
def bookNewEntry(schema,datatableName): ''' allocate new revision_id,entry_id,data_id ''' try: entrytableName=nameDealer.entryTableName(datatableName) iddealer=idDealer.idDealer(schema) revision_id=iddealer.generateNextIDForTable( nameDealer.revisionTableName() ) data_id=iddealer.generateNextIDForTable( datatableName) entry_id=iddealer.generateNextIDForTable( nameDealer.entryTableName(datatableName) ) return (revision_id,entry_id,data_id) except: raise
def createBranch(schema, name, parentname, comment=''): ''' create a new branch/tag under given parentnode insert into revisions(revision_id,branch_id,branch_name,name,comment,ctime) values() return (revisionid,parentid,parentname) ''' try: parentid = None revisionid = 0 if not parentname is None: qHandle = schema.newQuery() qHandle.addToTableList(nameDealer.revisionTableName()) qHandle.addToOutputList('REVISION_ID', 'revision_id') qCondition = coral.AttributeList() qCondition.extend('parentname', 'string') qCondition['parentname'].setData(parentname) qResult = coral.AttributeList() qResult.extend('revision_id', 'unsigned long long') qHandle.defineOutput(qResult) qHandle.setCondition('NAME=:parentname', qCondition) cursor = qHandle.execute() while cursor.next(): parentid = cursor.currentRow()['revision_id'].data() del qHandle else: parentname = 'ROOT' iddealer = idDealer.idDealer(schema) revisionid = iddealer.generateNextIDForTable( nameDealer.revisionTableName()) db = dbUtil.dbUtil(schema) tabrowDefDict = {} tabrowDefDict['REVISION_ID'] = 'unsigned long long' tabrowDefDict['BRANCH_ID'] = 'unsigned long long' tabrowDefDict['BRANCH_NAME'] = 'string' tabrowDefDict['NAME'] = 'string' tabrowDefDict['COMMENT'] = 'string' tabrowDefDict['CTIME'] = 'time stamp' tabrowValueDict = {} tabrowValueDict['REVISION_ID'] = revisionid tabrowValueDict['BRANCH_ID'] = parentid tabrowValueDict['BRANCH_NAME'] = parentname tabrowValueDict['NAME'] = name tabrowValueDict['COMMENT'] = comment tabrowValueDict['CTIME'] = coral.TimeStamp() db.insertOneRow(nameDealer.revisionTableName(), tabrowDefDict, tabrowValueDict) return (revisionid, parentid, parentname) except: raise
def insertLumiDetaildata(dbsession, perlsrawdata, perbunchrawdata, summaryidlsmap): dataDef = [] dataDef.append(("LUMISUMMARY_ID", "unsigned long long")) dataDef.append(("LUMIDETAIL_ID", "unsigned long long")) dataDef.append(("BXLUMIVALUE", "blob")) dataDef.append(("BXLUMIERROR", "blob")) dataDef.append(("BXLUMIQUALITY", "blob")) dataDef.append(("ALGONAME", "string")) perbunchiData = [] dbsession.transaction().start(False) iddealer = idDealer.idDealer(dbsession.nominalSchema()) db = dbUtil.dbUtil(dbsession.nominalSchema()) print "to insert lumidetail " for algoname in ["OCC1", "OCC2", "ET"]: for cmslsnum, instlumi in perlsrawdata.items(): lumisummary_id = summaryidlsmap[cmslsnum] lumidetail_id = iddealer.generateNextIDForTable("LUMIDETAIL") print "cmslsnum ", lumidetail_id, lumisummary_id bxdataocc1 = array.array("f") bxdataocc2 = array.array("f") bxdataet = array.array("f") bxerror = array.array("f") bxquality = array.array("h") for bxidx in range(1, 3565): lumifraction = 0.0 if perbunchrawdata.has_key(bxidx): lumifraction = perbunchrawdata[bxidx] bxlumivalue = float(instlumi * lumifraction) bxdataocc1.append(bxlumivalue) bxdataocc2.append(bxlumivalue) bxdataet.append(bxlumivalue) bxdataocc1Blob = CommonUtil.packArraytoBlob(bxdataocc1) bxdataocc2Blob = CommonUtil.packArraytoBlob(bxdataocc2) bxdataetBlob = CommonUtil.packArraytoBlob(bxdataet) bxqualityBlob = CommonUtil.packArraytoBlob(bxquality) perbunchiData.append( [ ("LUMISUMMARY_ID", lumisummary_id), ("LUMIDETAIL_ID", lumidetail_id), ("BXLUMIVALUE", bxdataocc1Blob), ("BXLUMIERROR", bxdataocc2Blob), ("BXLUMIQUALITY", bxqualityBlob), ("ALGONAME", algoname), ] ) db.bulkInsert("LUMIDETAIL", dataDef, perbunchiData) print perbunchiData dbsession.transaction().commit() return
def insertLumiSummarydata(dbsession, perlsrawdata): ''' input: perlsrawdata {cmslsnum:instlumi} insert into lumisummary(lumisummary_id,runnum,cmslsnum,lumilsnum,lumiversion,dtnorm,lhcnorm,instlumi,instlumierror,instlumiquality,cmsalive,startorbit,numorbit,lumisectionquality,beamenergy,beamstatus) values() ''' summaryidlsmap = {} dataDef = [] dataDef.append(('LUMISUMMARY_ID', 'unsigned long long')) dataDef.append(('RUNNUM', 'unsigned int')) dataDef.append(('CMSLSNUM', 'unsigned int')) dataDef.append(('LUMILSNUM', 'unsigned int')) dataDef.append(('LUMIVERSION', 'string')) dataDef.append(('DTNORM', 'float')) dataDef.append(('LHCNORM', 'float')) dataDef.append(('INSTLUMI', 'float')) dataDef.append(('INSTLUMIERROR', 'float')) dataDef.append(('INSTLUMIQUALITY', 'short')) dataDef.append(('CMSALIVE', 'short')) dataDef.append(('STARTORBIT', 'unsigned int')) dataDef.append(('NUMORBIT', 'unsigned int')) dataDef.append(('LUMISECTIONQUALITY', 'short')) dataDef.append(('BEAMENERGY', 'float')) dataDef.append(('BEAMSTATUS', 'string')) perlsiData = [] dbsession.transaction().start(False) iddealer = idDealer.idDealer(dbsession.nominalSchema()) db = dbUtil.dbUtil(dbsession.nominalSchema()) lumisummary_id = 0 for cmslsnum, instlumi in perlsrawdata.items(): mystartorbit = startorbit + numorbit * (cmslsnum - 1) lumisummary_id = iddealer.generateNextIDForTable('LUMISUMMARY') summaryidlsmap[cmslsnum] = lumisummary_id perlsiData.append([('LUMISUMMARY_ID', lumisummary_id), ('RUNNUM', runnum), ('CMSLSNUM', cmslsnum), ('LUMILSNUM', cmslsnum), ('LUMIVERSION', lumiversion), ('DTNORM', dtnorm), ('LHCNORM', lhcnorm), ('INSTLUMI', instlumi), ('INSTLUMIERROR', 0.0), ('CMSALIVE', cmsalive), ('STARTORBIT', mystartorbit), ('NUMORBIT', numorbit), ('LUMISECTIONQUALITY', 1), ('BEAMENERGY', beamenergy), ('BEAMSTATUS', beamstatus)]) db.bulkInsert('LUMISUMMARY', dataDef, perlsiData) dbsession.transaction().commit() print('lumisummary to insert : ', perlsiData) print('summaryidlsmap ', summaryidlsmap) return summaryidlsmap
def createBranch(schema,name,parentname,comment=''): ''' create a new branch/tag under given parentnode insert into revisions(revision_id,branch_id,branch_name,name,comment,ctime) values() return (revisionid,parentid,parentname) ''' try: parentid=None revisionid=0 if not parentname is None: qHandle=schema.newQuery() qHandle.addToTableList( nameDealer.revisionTableName() ) qHandle.addToOutputList( 'REVISION_ID','revision_id' ) qCondition=coral.AttributeList() qCondition.extend('parentname','string') qCondition['parentname'].setData(parentname) qResult=coral.AttributeList() qResult.extend('revision_id','unsigned long long') qHandle.defineOutput(qResult) qHandle.setCondition('NAME=:parentname',qCondition) cursor=qHandle.execute() while next(cursor): parentid=cursor.currentRow()['revision_id'].data() del qHandle else: parentname='ROOT' iddealer=idDealer.idDealer(schema) revisionid=iddealer.generateNextIDForTable( nameDealer.revisionTableName() ) db=dbUtil.dbUtil(schema) tabrowDefDict={} tabrowDefDict['REVISION_ID']='unsigned long long' tabrowDefDict['BRANCH_ID']='unsigned long long' tabrowDefDict['BRANCH_NAME']='string' tabrowDefDict['NAME']='string' tabrowDefDict['COMMENT']='string' tabrowDefDict['CTIME']='time stamp' tabrowValueDict={} tabrowValueDict['REVISION_ID']=revisionid tabrowValueDict['BRANCH_ID']=parentid tabrowValueDict['BRANCH_NAME']=parentname tabrowValueDict['NAME']=name tabrowValueDict['COMMENT']=comment tabrowValueDict['CTIME']=coral.TimeStamp() db.insertOneRow(nameDealer.revisionTableName(),tabrowDefDict, tabrowValueDict ) return (revisionid,parentid,parentname) except: raise
def insertLumiSummarydata(dbsession,runnum,perlsrawdata,deliveredonly=False): ''' input: perlsrawdata {cmslsnum:instlumi} insert into lumisummary(lumisummary_id,runnum,cmslsnum,lumilsnum,lumiversion,dtnorm,lhcnorm,instlumi,instlumierror,instlumiquality,cmsalive,startorbit,numorbit,lumisectionquality,beamenergy,beamstatus) values() ''' summaryidlsmap={} dataDef=[] dataDef.append(('LUMISUMMARY_ID','unsigned long long')) dataDef.append(('RUNNUM','unsigned int')) dataDef.append(('CMSLSNUM','unsigned int')) dataDef.append(('LUMILSNUM','unsigned int')) dataDef.append(('LUMIVERSION','string')) dataDef.append(('DTNORM','float')) dataDef.append(('LHCNORM','float')) dataDef.append(('INSTLUMI','float')) dataDef.append(('INSTLUMIERROR','float')) dataDef.append(('INSTLUMIQUALITY','short')) dataDef.append(('CMSALIVE','short')) dataDef.append(('STARTORBIT','unsigned int')) dataDef.append(('NUMORBIT','unsigned int')) dataDef.append(('LUMISECTIONQUALITY','short')) dataDef.append(('BEAMENERGY','float')) dataDef.append(('BEAMSTATUS','string')) perlsiData=[] dbsession.transaction().start(False) iddealer=idDealer.idDealer(dbsession.nominalSchema()) db=dbUtil.dbUtil(dbsession.nominalSchema()) lumisummary_id=0 for cmslsnum,instlumi in perlsrawdata.items(): mystartorbit=startorbit+numorbit*(cmslsnum-1) lumisummary_id=iddealer.generateNextIDForTable('LUMISUMMARY') summaryidlsmap[cmslsnum]=lumisummary_id if deliveredonly: perlsiData.append([('LUMISUMMARY_ID',lumisummary_id),('RUNNUM',runnum),('CMSLSNUM',0),('LUMILSNUM',cmslsnum),('LUMIVERSION',lumiversion),('DTNORM',dtnorm),('LHCNORM',lhcnorm),('INSTLUMI',instlumi),('INSTLUMIERROR',0.0),('CMSALIVE',0),('STARTORBIT',mystartorbit),('NUMORBIT',numorbit),('LUMISECTIONQUALITY',1),('BEAMENERGY',beamenergy),('BEAMSTATUS',beamstatus)]) else: perlsiData.append([('LUMISUMMARY_ID',lumisummary_id),('RUNNUM',runnum),('CMSLSNUM',cmslsnum),('LUMILSNUM',cmslsnum),('LUMIVERSION',lumiversion),('DTNORM',dtnorm),('LHCNORM',lhcnorm),('INSTLUMI',instlumi),('INSTLUMIERROR',0.0),('CMSALIVE',1),('STARTORBIT',mystartorbit),('NUMORBIT',numorbit),('LUMISECTIONQUALITY',1),('BEAMENERGY',beamenergy),('BEAMSTATUS',beamstatus)]) db.bulkInsert('LUMISUMMARY',dataDef,perlsiData) dbsession.transaction().commit() print 'lumisummary to insert : ',perlsiData print 'summaryidlsmap ',summaryidlsmap return summaryidlsmap