Ejemplo n.º 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 
Ejemplo n.º 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
Ejemplo n.º 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 
Ejemplo n.º 4
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
Ejemplo n.º 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
Ejemplo n.º 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
Ejemplo n.º 8
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")
            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
Ejemplo n.º 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
Ejemplo n.º 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
Ejemplo n.º 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