Example #1
0
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 
Example #2
0
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
Example #3
0
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 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
Example #5
0
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
Example #6
0
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
Example #9
0
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
Example #10
0
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
Example #11
0
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