コード例 #1
0
ファイル: patchHLT.py プロジェクト: Moanwar/cmssw
def insertV2(dbsession,runnum,inputpathnames,inputdata):
    '''
    inputpathnames: [pathname]
    inputdata: {cmslsnum:[presc,presc...]}
    '''
    branchrevision_id=DATABRANCH_ID
    try:
        pathnamesClob=','.join(inputpathnames)
        hltrundata=[pathnamesClob,'text file']
        (hltrevid,hltentryid,hltdataid)=dataDML.addHLTRunDataToBranch(dbsession.nominalSchema(),runnum,hltrundata,(branchrevision_id,'DATA'))
        hltlsdata={}
        for cmslsnum,perlsdata in inputdata.items():
            prescaleArray=array.array('I')
            hltcountArray=array.array('I')
            hltacceptArray=array.array('I')
            for presc in perlsdata:
                thiscount=0
                thisaccept=0
                prescaleArray.append(presc)
                hltcountArray.append(thiscount)
                hltacceptArray.append(thisaccept)
            prescaleblob=CommonUtil.packArraytoBlob(prescaleArray)
            hltcountblob=CommonUtil.packArraytoBlob(hltcountArray)
            hltacceptblob=CommonUtil.packArraytoBlob(hltacceptArray)
            hltlsdata[cmslsnum]=[hltcountblob,hltacceptblob,prescaleblob]
        dataDML.bulkInsertHltLSData(dbsession,runnum,hltdataid,hltlsdata,500)
    except:
        raise
コード例 #2
0
def trg(schema,nls):
    '''
    input:
    output: [datasource,bitzeroname,bitnameclob,{cmslsnum:[deadtime,bitzerocount,bitzeroprescale,trgcountBlob,trgprescaleBlob]}]
    '''
    o=['oracle://cms_orcon_prod/cms_gtmon','L1_ZeroBias']
    bitnameclob='L1_ZeroBias,False,L1_SingleHfBitCountsRing1_1,L1_SingleHfBitCountsRing2_1,L1_SingleMu15,L1SingleJet,Jura'
    o.append(bitnameclob)
    perlsdata={}
    for cmslsnum in range(1,nls+1):
        deadtime=99+cmslsnum
        bitzerocount=897865
        bitzeroprescale=17
        trgcounts=array.array('I')
        prescalecounts=array.array('I')
        for i in range(1,192):
            trgcounts.append(778899+i)
            prescalecounts.append(17)
        trgcountsBlob=CommonUtil.packArraytoBlob(trgcounts)
        prescalecountsBlob=CommonUtil.packArraytoBlob(prescalecounts)
        if not perlsdata.has_key(cmslsnum):
            perlsdata[cmslsnum]=[]
        perlsdata[cmslsnum].extend([deadtime,bitzerocount,bitzeroprescale,trgcountsBlob,prescalecountsBlob])
    o.append(perlsdata)
    return o
コード例 #3
0
ファイル: generateDummyData.py プロジェクト: ye-man/cmssw
def hlt(schema, nls):
    '''
    input:
    output: [datasource,pathnameclob,{cmslsnum:[inputcountBlob,acceptcountBlob,prescaleBlob]}]
    '''
    o = ['oracle://cms_orcon_prod/cms_runinfo']
    pathnameclob = 'HLT_PixelTracks_Multiplicity70,HLT_PixelTracks_Multiplicity85,HLT_PixelTracks_Multiplicity100,HLT_GlobalRunHPDNoise,HLT_TechTrigHCALNoise'
    o.append(pathnameclob)
    perlsdata = {}
    for cmslsnum in range(1, nls + 1):
        inputcounts = array.array('I')
        acceptcounts = array.array('I')
        prescalecounts = array.array('I')
        for i in range(1, 201):
            inputcounts.append(6677889)
            acceptcounts.append(3344565)
            prescalecounts.append(17)
        inputcountsBlob = CommonUtil.packArraytoBlob(inputcounts)
        acceptcountsBlob = CommonUtil.packArraytoBlob(acceptcounts)
        prescalecountsBlob = CommonUtil.packArraytoBlob(prescalecounts)
        if cmslsnum not in perlsdata:
            perlsdata[cmslsnum] = []
        perlsdata[cmslsnum].extend(
            [inputcountsBlob, acceptcountsBlob, prescalecountsBlob])
    o.append(perlsdata)
    return o
コード例 #4
0
ファイル: generateDummyData.py プロジェクト: ye-man/cmssw
def trg(schema, nls):
    '''
    input:
    output: [datasource,bitzeroname,bitnameclob,{cmslsnum:[deadtime,bitzerocount,bitzeroprescale,trgcountBlob,trgprescaleBlob]}]
    '''
    o = ['oracle://cms_orcon_prod/cms_gtmon', 'L1_ZeroBias']
    bitnameclob = 'L1_ZeroBias,False,L1_SingleHfBitCountsRing1_1,L1_SingleHfBitCountsRing2_1,L1_SingleMu15,L1SingleJet,Jura'
    o.append(bitnameclob)
    perlsdata = {}
    for cmslsnum in range(1, nls + 1):
        deadtime = 99 + cmslsnum
        bitzerocount = 897865
        bitzeroprescale = 17
        trgcounts = array.array('I')
        prescalecounts = array.array('I')
        for i in range(1, 192):
            trgcounts.append(778899 + i)
            prescalecounts.append(17)
        trgcountsBlob = CommonUtil.packArraytoBlob(trgcounts)
        prescalecountsBlob = CommonUtil.packArraytoBlob(prescalecounts)
        if cmslsnum not in perlsdata:
            perlsdata[cmslsnum] = []
        perlsdata[cmslsnum].extend([
            deadtime, bitzerocount, bitzeroprescale, trgcountsBlob,
            prescalecountsBlob
        ])
    o.append(perlsdata)
    return o
コード例 #5
0
def hlt(schema,nls):
    '''
    input:
    output: [datasource,pathnameclob,{cmslsnum:[inputcountBlob,acceptcountBlob,prescaleBlob]}]
    '''
    o=['oracle://cms_orcon_prod/cms_runinfo']
    pathnameclob='HLT_PixelTracks_Multiplicity70,HLT_PixelTracks_Multiplicity85,HLT_PixelTracks_Multiplicity100,HLT_GlobalRunHPDNoise,HLT_TechTrigHCALNoise'
    o.append(pathnameclob)
    perlsdata={}
    for cmslsnum in range(1,nls+1):
        inputcounts=array.array('I')
        acceptcounts=array.array('I')
        prescalecounts=array.array('I')
        for i in range(1,201):
            inputcounts.append(6677889 )
            acceptcounts.append(3344565)
            prescalecounts.append(17)
        inputcountsBlob=CommonUtil.packArraytoBlob(inputcounts)
        acceptcountsBlob=CommonUtil.packArraytoBlob(acceptcounts)
        prescalecountsBlob=CommonUtil.packArraytoBlob(prescalecounts)
        if not perlsdata.has_key(cmslsnum):
            perlsdata[cmslsnum]=[]
        perlsdata[cmslsnum].extend([inputcountsBlob,acceptcountsBlob,prescalecountsBlob])
    o.append(perlsdata)
    return o
コード例 #6
0
ファイル: patchHLT.py プロジェクト: archiesharma/muonPhase2
def insertV2(dbsession,runnum,inputpathnames,inputdata):
    '''
    inputpathnames: [pathname]
    inputdata: {cmslsnum:[presc,presc...]}
    '''
    branchrevision_id=DATABRANCH_ID
    try:
        pathnamesClob=','.join(inputpathnames)
        hltrundata=[pathnamesClob,'text file']
        (hltrevid,hltentryid,hltdataid)=dataDML.addHLTRunDataToBranch(dbsession.nominalSchema(),runnum,hltrundata,(branchrevision_id,'DATA'))
        hltlsdata={}
        for cmslsnum,perlsdata in inputdata.items():
            prescaleArray=array.array('I')
            hltcountArray=array.array('I')
            hltacceptArray=array.array('I')
            for presc in perlsdata:
                thiscount=0
                thisaccept=0
                prescaleArray.append(presc)
                hltcountArray.append(thiscount)
                hltacceptArray.append(thisaccept)
            prescaleblob=CommonUtil.packArraytoBlob(prescaleArray)
            hltcountblob=CommonUtil.packArraytoBlob(hltcountArray)
            hltacceptblob=CommonUtil.packArraytoBlob(hltacceptArray)
            hltlsdata[cmslsnum]=[hltcountblob,hltacceptblob,prescaleblob]
        dataDML.bulkInsertHltLSData(dbsession,runnum,hltdataid,hltlsdata,500)
    except:
        raise
コード例 #7
0
ファイル: analyze148829.py プロジェクト: Moanwar/cmssw
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 
コード例 #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')
            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 
コード例 #9
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
コード例 #10
0
ファイル: generateDummyData.py プロジェクト: ye-man/cmssw
def lumiSummary(schema, nlumils):
    '''
    input:
    output: [datasource,{lumilsnum:[cmslsnum,instlumi,instlumierror,instlumiquality,beamstatus,beamenergy,numorbit,startorbit,cmsbxindexblob,beamintensityblob_1,beamintensitublob_2,bxlumivalue_occ1,bxlumierror_occ1,bxlumiquality_occ1,bxlumivalue_occ2,bxlumierror_occ2,bxlumiquality_occ2,bxlumivalue_et,bxlumierror_et,bxlumiquality_et]}]
    '''
    o = ['file:fake.root']
    perlsdata = {}
    for lumilsnum in range(1, nlumils + 1):
        cmslsnum = 0
        if lumilsnum < 100:
            cmslsnum = lumilsnum
        instlumi = 2.37
        instlumierror = 0.56
        instlumiquality = 2
        beamstatus = 'STABLE BEAMS'
        beamenergy = 3.5e03
        numorbit = 12345
        startorbit = numorbit * lumilsnum
        if cmslsnum == 0:
            cmsbxindex = None
            beam1intensity = None
            beam2intensity = None
        else:
            cmsbxindex = array.array('I')
            beam1intensity = array.array('f')
            beam2intensity = array.array('f')
            for idx in range(1, 3565):
                cmsbxindex.append(idx)
                beam1intensity.append(1.5e09)
                beam2intensity.append(5.5e09)
                cmsbxindexBlob = CommonUtil.packArraytoBlob(cmsbxindex)
                beam1intensityBlob = CommonUtil.packArraytoBlob(beam1intensity)
                beam2intensityBlob = CommonUtil.packArraytoBlob(beam2intensity)
        bxlumivalue = array.array('f')
        bxlumierror = array.array('f')
        bxlumiquality = array.array('I')
        for idx in range(1, 3565):
            bxlumivalue.append(2.3)
            bxlumierror.append(0.4)
            bxlumiquality.append(2)
        bxlumivalueBlob = CommonUtil.packArraytoBlob(bxlumivalue)
        bxlumierrorBlob = CommonUtil.packArraytoBlob(bxlumierror)
        bxlumiqualityBlob = CommonUtil.packArraytoBlob(bxlumiquality)
        if lumilsnum not in perlsdata:
            perlsdata[lumilsnum] = []
        perlsdata[lumilsnum].extend([
            cmslsnum, instlumi, instlumierror, instlumiquality, beamstatus,
            beamenergy, numorbit, startorbit, cmsbxindexBlob,
            beam1intensityBlob, beam2intensityBlob, bxlumivalueBlob,
            bxlumierrorBlob, bxlumiqualityBlob, bxlumivalueBlob,
            bxlumierrorBlob, bxlumiqualityBlob, bxlumivalueBlob,
            bxlumierrorBlob, bxlumiqualityBlob
        ])
    o.append(perlsdata)
    return o
コード例 #11
0
def lumiSummary(schema,nlumils):
    '''
    input:
    output: [datasource,{lumilsnum:[cmslsnum,instlumi,instlumierror,instlumiquality,beamstatus,beamenergy,numorbit,startorbit,cmsbxindexblob,beamintensityblob_1,beamintensitublob_2,bxlumivalue_occ1,bxlumierror_occ1,bxlumiquality_occ1,bxlumivalue_occ2,bxlumierror_occ2,bxlumiquality_occ2,bxlumivalue_et,bxlumierror_et,bxlumiquality_et]}]
    '''
    o=['file:fake.root']
    perlsdata={}
    for lumilsnum in range(1,nlumils+1):
        cmslsnum=0
        if lumilsnum<100:
            cmslsnum=lumilsnum
        instlumi=2.37
        instlumierror=0.56
        instlumiquality=2
        beamstatus='STABLE BEAMS'
        beamenergy=3.5e03
        numorbit=12345
        startorbit=numorbit*lumilsnum
        if cmslsnum==0:
            cmsbxindex=None
            beam1intensity=None
            beam2intensity=None
        else:
            cmsbxindex=array.array('I')
            beam1intensity=array.array('f')
            beam2intensity=array.array('f')
            for idx in range(1,3565):
                cmsbxindex.append(idx)
                beam1intensity.append(1.5e09)
                beam2intensity.append(5.5e09)
                cmsbxindexBlob=CommonUtil.packArraytoBlob(cmsbxindex)
                beam1intensityBlob=CommonUtil.packArraytoBlob(beam1intensity)
                beam2intensityBlob=CommonUtil.packArraytoBlob(beam2intensity)
        bxlumivalue=array.array('f')
        bxlumierror=array.array('f')
        bxlumiquality=array.array('I')
        for idx in range(1,3565):
            bxlumivalue.append(2.3)
            bxlumierror.append(0.4)
            bxlumiquality.append(2)
        bxlumivalueBlob=CommonUtil.packArraytoBlob(bxlumivalue)
        bxlumierrorBlob=CommonUtil.packArraytoBlob(bxlumierror)
        bxlumiqualityBlob=CommonUtil.packArraytoBlob(bxlumiquality)
        if not perlsdata.has_key(lumilsnum):
            perlsdata[lumilsnum]=[]
        perlsdata[lumilsnum].extend([cmslsnum,instlumi,instlumierror,instlumiquality,beamstatus,beamenergy,numorbit,startorbit,cmsbxindexBlob,beam1intensityBlob,beam2intensityBlob,bxlumivalueBlob,bxlumierrorBlob,bxlumiqualityBlob,bxlumivalueBlob,bxlumierrorBlob,bxlumiqualityBlob,bxlumivalueBlob,bxlumierrorBlob,bxlumiqualityBlob])
    o.append(perlsdata)
    return o
コード例 #12
0
def insertLumischemaV2(dbsession,
                       runnum,
                       datasource,
                       perlsrawdata,
                       perbunchrawdata,
                       bxdistribution,
                       withDetails=False,
                       deliveredonly=False):
    '''
    input:
    lumirundata[datasource]
    perlsrawdata: {cmslsnum:instlumi}
    perbunchrawdata: {bxidx:lumifraction}

    lumilsdata {lumilsnum:[cmslsnum,instlumi,instlumierror,instlumiquality,beamstatus,beamenergy,numorbit,startorbit,cmsbxindexblob,beam1intensityblob,beam2intensityblob,bxlumivalue_occ1,bxlumierror_occ1,bxlumiquality_occ1,bxlumivalue_occ2,bxlumierror_occ2,bxlumiquality_occ2,bxlumivalue_et,bxlumierror_et,bxlumiquality_et]}
    '''
    branchrevision_id = 3  #databranch_id
    branchinfo = (branchrevision_id, 'DATA')
    lumirundata = [datasource]
    lumilsdata = {}
    for cmslsnum, instlumi in perlsrawdata.items():
        mystartorbit = startorbit + numorbit * (cmslsnum - 1)
        bxdataocc1blob = None
        bxdataocc2blob = None
        bxdataetblob = None
        bxerrorocc1blob = None
        bxerrorocc2blob = None
        bxerroretblob = None
        bxqualityocc1blob = None
        bxqualityocc2blob = None
        bxqualityetblob = None
        cmsbxindexblob = None
        beam1intensityblob = None
        beam2intensityblob = None
        beamstatus = 'STABLE BEAMS'
        beamenergy = 4000.
        instlumierror = 0.
        instlumiquality = 1
        if perbunchrawdata:
            withDetails = True
            bxdataocc1blob = perbunchrawdata[cmslsnum][0]
            bxerrorocc1blob = perbunchrawdata[cmslsnum][1]
            bxqualityocc1blob = perbunchrawdata[cmslsnum][2]
            bxdataocc2blob = perbunchrawdata[cmslsnum][3]
            bxerrorocc2blob = perbunchrawdata[cmslsnum][4]
            bxqualityocc2blob = perbunchrawdata[cmslsnum][5]
            bxdataetblob = perbunchrawdata[cmslsnum][6]
            bxerroretblob = perbunchrawdata[cmslsnum][7]
            bxqualityetblob = perbunchrawdata[cmslsnum][8]
            bxindexblob = perbunchrawdata[cmslsnum][9]
            beam1intensityblob = perbunchrawdata[cmslsnum][10]
            beam2intensityblob = perbunchrawdata[cmslsnum][11]
            beamstatus = perbunchrawdata[cmslsnum][12]
            beamenergy = perbunchrawdata[cmslsnum][13]
            instlumierror = perbunchrawdata[cmslsnum][14]
            instlumiquality = perbunchrawdata[cmslsnum][15]
        elif bxdistribution:
            withDetails = True
            bxdataArray = array.array('f')
            bxerrorArray = array.array('f')
            bxqualityArray = array.array('h')
            cmsbxindexArray = array.array('h')
            beam1intensityArray = array.array('f')
            beam2intensityArray = array.array('f')
            for bxidx in range(1, 3565):
                lumifraction = 0.0
                if bxidx in perbunchrawdata:
                    lumifraction = perbunchrawdata[bxidx]
                bxlumivalue = float(instlumi * lumifraction)
                bxdataArray.append(bxlumivalue)
                beam1intensityArray.append(9124580336.0)
                beam1intensityArray.append(8932813306.0)
                cmsbxindexArray.append(bxidx)
                bxqualityArray.append(1)
                bxerrorArray.append(0.0)
            bxdataocc1blob = CommonUtil.packArraytoBlob(bxdataArray)
            bxdataocc2blob = CommonUtil.packArraytoBlob(bxdataArray)
            bxdataetblob = CommonUtil.packArraytoBlob(bxdataArray)
            bxerrorocc1blob = CommonUtil.packArraytoBlob(bxerrorArray)
            bxerrorocc2blob = CommonUtil.packArraytoBlob(bxerrorArray)
            bxerroretblob = CommonUtil.packArraytoBlob(bxerrorArray)
            bxqualityocc1blob = CommonUtil.packArraytoBlob(bxqualityArray)
            bxqualityocc2blob = CommonUtil.packArraytoBlob(bxqualityArray)
            bxqualityetblob = CommonUtil.packArraytoBlob(bxqualityArray)
            cmsbxindexblob = CommonUtil.packArraytoBlob(cmsbxindexArray)
            beam1intensityblob = CommonUtil.packArraytoBlob(
                beam1intensityArray)
            beam2intensityblob = CommonUtil.packArraytoBlob(
                beam2intensityArray)
        if deliveredonly:
            perlsdata = [
                0,
                float(instlumi), instlumierror, instlumiquality, beamstatus,
                beamenergy, numorbit, mystartorbit, cmsbxindexblob,
                beam1intensityblob, beam2intensityblob, bxdataocc1blob,
                bxerrorocc1blob, bxqualityocc1blob, bxdataocc2blob,
                bxerrorocc2blob, bxqualityocc2blob, bxdataetblob,
                bxerroretblob, bxqualityetblob
            ]
        else:
            perlsdata = [
                cmslsnum,
                float(instlumi), instlumierror, instlumiquality, beamstatus,
                beamenergy, numorbit, mystartorbit, cmsbxindexblob,
                beam1intensityblob, beam2intensityblob, bxdataocc1blob,
                bxerrorocc1blob, bxqualityocc1blob, bxdataocc2blob,
                bxerrorocc2blob, bxqualityocc2blob, bxdataetblob,
                bxerroretblob, bxqualityetblob
            ]
        lumilsdata[cmslsnum] = perlsdata
    #print 'toinsert from scratch',lumilsdata
    print(lumilsdata)
    dbsession.transaction().start(False)
    (revision_id, entry_id,
     data_id) = dataDML.addLumiRunDataToBranch(dbsession.nominalSchema(),
                                               runnum, lumirundata, branchinfo,
                                               'LUMIDATA')
    dataDML.bulkInsertLumiLSSummary(dbsession,
                                    runnum,
                                    data_id,
                                    lumilsdata,
                                    'LUMISUMMARYV2',
                                    withDetails=withDetails)
    dbsession.transaction().commit()
コード例 #13
0
ファイル: csvLumiLoader.py プロジェクト: ahmad3213/cmssw
def generateLumidata(lumirundatafromfile,lsdatafromfile,rundatafromdb,lsdatafromdb,replacelsMin,replacelsMax):
    '''
    input:
     perrunresultfromfile=[]#source,starttime,stoptime,nls
     perlsresultfromfile={} #{lumilsnum:instlumiub}
     lumirundatafromdb=[]   #[source,nominalegev,ncollidingbunches,starttime,stoptime,nls]
     lumilsdatafromdb={}#{lumilsnum:[cmslsnum(0),instlumi(1),instlumierror(2),instlumiquality(3),beamstatus(4),beamenergy(5),numorbit(6),startorbit(7),cmsbxindexblob(8),beamintensityblob_1(9),beamintensityblob_2(10),bxlumivalue_occ1(11),bxlumierror_occ1(12),bxlumiquality_occ1(13),bxlumivalue_occ2(14),bxlumierror_occ2(15),bxlumiquality_occ2(16),bxlumivalue_et(17),bxlumierror_et(18),bxlumiquality_et(19)]}


    '''
    lumip=lumiParameters.ParametersObject()
    numorbit=lumip.numorbit
    startorbit=0
    fakebeamenergy=4000.
    fakebeamstatus='STABLE BEAMS'
    fakefloatArray=array.array('f')
    fakeidxArray=array.array('h')
    fakeshortArray=array.array('h')
    for bxidx in range(1,3565):
        fakeidxArray.append(bxidx)
        fakefloatArray.append(0.)
        fakeshortArray.append(0)
    
    lumirundata=[]
    lumilsdata={}
        
    if rundatafromdb:
        lumirundata=rundatafromdb
        lumirundata[0]=rundatafromdb[0]+'+file:'+lumirundatafromfile[0]
    else:
        lu=lumiTime.lumiTime()        
        source='+file:'+lumirundatafromfile[0]
        nominalegev=fakebeamenergy
        ncollidingbunches=72
        starttime=lumirundatafromfile[1]
        stoptime=lumirundatafromfile[2]
        starttimeT=lu.timestampTodatetimeUTC(starttime)
        stoptimeT=lu.timestampTodatetimeUTC(stoptime)
        print(starttimeT.day,starttimeT.month,starttimeT.year)
        
        starttimeT_coral=coral.TimeStamp(starttimeT.year,starttimeT.month,starttimeT.day,starttimeT.hour,starttimeT.minute,starttimeT.second,0)
        stoptimeT_coral=coral.TimeStamp(stoptimeT.year,stoptimeT.month,stoptimeT.day,stoptimeT.hour,stoptimeT.minute,stoptimeT.second,0)
        nls=lumirundatafromfile[3]
        lumirundata=[source,nominalegev,ncollidingbunches,starttimeT_coral,stoptimeT_coral,nls]
        
    if lsdatafromdb: 
        lumilsdata=lsdatafromdb
        if replacelsMin>len(lsdatafromdb):
            print('[INFO]Operation: extend an existing run from LS=',replacelsMin)
            lumirundata[5]+=len(lsdatafromfile)
        else:
            print('[INFO]Operation: replace instlumi in an existing run LS range=',replacelsMin,replacelsMax)
    else:
        print('[INFO]Operation: insert a new fake run')
    for lumilsnum in range(replacelsMin,replacelsMax+1):
        instlumi=lsdatafromfile[lumilsnum]
        if lumilsnum in lsdatafromdb.keys(): #if this is a hole
            lumilsdata[lumilsnum][1]=instlumi
        else:                                #if this is an extension
            instlumierror=0.0
            instlumiquality=0
            startorbit=(lumilsnum-1)*numorbit
            cmsbxindexblob=CommonUtil.packArraytoBlob(fakeshortArray)
            beamintensityblob_1=CommonUtil.packArraytoBlob(fakefloatArray)
            beamintensityblob_2=CommonUtil.packArraytoBlob(fakefloatArray)
            bxlumivalue_occ1=CommonUtil.packArraytoBlob(fakefloatArray)
            bxlumierror_occ1=CommonUtil.packArraytoBlob(fakefloatArray)
            bxlumiquality_occ1=CommonUtil.packArraytoBlob(fakeshortArray)
            bxlumivalue_occ2=CommonUtil.packArraytoBlob(fakefloatArray)
            bxlumierror_occ2=CommonUtil.packArraytoBlob(fakefloatArray)
            bxlumiquality_occ2=CommonUtil.packArraytoBlob(fakeshortArray)
            bxlumivalue_et=CommonUtil.packArraytoBlob(fakefloatArray)
            bxlumierror_et=CommonUtil.packArraytoBlob(fakefloatArray)
            bxlumiquality_et=CommonUtil.packArraytoBlob(fakeshortArray)
            lumilsdata[lumilsnum]=[0,instlumi,instlumierror,instlumiquality,fakebeamstatus,fakebeamenergy,numorbit,startorbit,cmsbxindexblob,beamintensityblob_1,beamintensityblob_2,bxlumivalue_occ1,bxlumierror_occ1,bxlumiquality_occ1,bxlumivalue_occ2,bxlumierror_occ2,bxlumiquality_occ2,bxlumivalue_et,bxlumierror_et,bxlumiquality_et]
    return (lumirundata,lumilsdata)
コード例 #14
0
def generateLumidata(lumirundatafromfile, lsdatafromfile, rundatafromdb,
                     lsdatafromdb, replacelsMin, replacelsMax):
    '''
    input:
     perrunresultfromfile=[]#source,starttime,stoptime,nls
     perlsresultfromfile={} #{lumilsnum:instlumiub}
     lumirundatafromdb=[]   #[source,nominalegev,ncollidingbunches,starttime,stoptime,nls]
     lumilsdatafromdb={}#{lumilsnum:[cmslsnum(0),instlumi(1),instlumierror(2),instlumiquality(3),beamstatus(4),beamenergy(5),numorbit(6),startorbit(7),cmsbxindexblob(8),beamintensityblob_1(9),beamintensityblob_2(10),bxlumivalue_occ1(11),bxlumierror_occ1(12),bxlumiquality_occ1(13),bxlumivalue_occ2(14),bxlumierror_occ2(15),bxlumiquality_occ2(16),bxlumivalue_et(17),bxlumierror_et(18),bxlumiquality_et(19)]}


    '''
    lumip = lumiParameters.ParametersObject()
    numorbit = lumip.numorbit
    startorbit = 0
    fakebeamenergy = 4000.
    fakebeamstatus = 'STABLE BEAMS'
    fakefloatArray = array.array('f')
    fakeidxArray = array.array('h')
    fakeshortArray = array.array('h')
    for bxidx in range(1, 3565):
        fakeidxArray.append(bxidx)
        fakefloatArray.append(0.)
        fakeshortArray.append(0)

    lumirundata = []
    lumilsdata = {}

    if rundatafromdb:
        lumirundata = rundatafromdb
        lumirundata[0] = rundatafromdb[0] + '+file:' + lumirundatafromfile[0]
    else:
        lu = lumiTime.lumiTime()
        source = '+file:' + lumirundatafromfile[0]
        nominalegev = fakebeamenergy
        ncollidingbunches = 72
        starttime = lumirundatafromfile[1]
        stoptime = lumirundatafromfile[2]
        starttimeT = lu.timestampTodatetimeUTC(starttime)
        stoptimeT = lu.timestampTodatetimeUTC(stoptime)
        print(starttimeT.day, starttimeT.month, starttimeT.year)

        starttimeT_coral = coral.TimeStamp(starttimeT.year, starttimeT.month,
                                           starttimeT.day, starttimeT.hour,
                                           starttimeT.minute,
                                           starttimeT.second, 0)
        stoptimeT_coral = coral.TimeStamp(stoptimeT.year, stoptimeT.month,
                                          stoptimeT.day, stoptimeT.hour,
                                          stoptimeT.minute, stoptimeT.second,
                                          0)
        nls = lumirundatafromfile[3]
        lumirundata = [
            source, nominalegev, ncollidingbunches, starttimeT_coral,
            stoptimeT_coral, nls
        ]

    if lsdatafromdb:
        lumilsdata = lsdatafromdb
        if replacelsMin > len(lsdatafromdb):
            print('[INFO]Operation: extend an existing run from LS=',
                  replacelsMin)
            lumirundata[5] += len(lsdatafromfile)
        else:
            print(
                '[INFO]Operation: replace instlumi in an existing run LS range=',
                replacelsMin, replacelsMax)
    else:
        print('[INFO]Operation: insert a new fake run')
    for lumilsnum in range(replacelsMin, replacelsMax + 1):
        instlumi = lsdatafromfile[lumilsnum]
        if lumilsnum in lsdatafromdb.keys():  #if this is a hole
            lumilsdata[lumilsnum][1] = instlumi
        else:  #if this is an extension
            instlumierror = 0.0
            instlumiquality = 0
            startorbit = (lumilsnum - 1) * numorbit
            cmsbxindexblob = CommonUtil.packArraytoBlob(fakeshortArray)
            beamintensityblob_1 = CommonUtil.packArraytoBlob(fakefloatArray)
            beamintensityblob_2 = CommonUtil.packArraytoBlob(fakefloatArray)
            bxlumivalue_occ1 = CommonUtil.packArraytoBlob(fakefloatArray)
            bxlumierror_occ1 = CommonUtil.packArraytoBlob(fakefloatArray)
            bxlumiquality_occ1 = CommonUtil.packArraytoBlob(fakeshortArray)
            bxlumivalue_occ2 = CommonUtil.packArraytoBlob(fakefloatArray)
            bxlumierror_occ2 = CommonUtil.packArraytoBlob(fakefloatArray)
            bxlumiquality_occ2 = CommonUtil.packArraytoBlob(fakeshortArray)
            bxlumivalue_et = CommonUtil.packArraytoBlob(fakefloatArray)
            bxlumierror_et = CommonUtil.packArraytoBlob(fakefloatArray)
            bxlumiquality_et = CommonUtil.packArraytoBlob(fakeshortArray)
            lumilsdata[lumilsnum] = [
                0, instlumi, instlumierror, instlumiquality, fakebeamstatus,
                fakebeamenergy, numorbit, startorbit, cmsbxindexblob,
                beamintensityblob_1, beamintensityblob_2, bxlumivalue_occ1,
                bxlumierror_occ1, bxlumiquality_occ1, bxlumivalue_occ2,
                bxlumierror_occ2, bxlumiquality_occ2, bxlumivalue_et,
                bxlumierror_et, bxlumiquality_et
            ]
    return (lumirundata, lumilsdata)
コード例 #15
0
ファイル: analyzelostruns.py プロジェクト: ahmad3213/cmssw
def insertLumischemaV2(dbsession,runnum,datasource,perlsrawdata,perbunchrawdata,bxdistribution,withDetails=False,deliveredonly=False):
    '''
    input:
    lumirundata[datasource]
    perlsrawdata: {cmslsnum:instlumi}
    perbunchrawdata: {bxidx:lumifraction}

    lumilsdata {lumilsnum:[cmslsnum,instlumi,instlumierror,instlumiquality,beamstatus,beamenergy,numorbit,startorbit,cmsbxindexblob,beam1intensityblob,beam2intensityblob,bxlumivalue_occ1,bxlumierror_occ1,bxlumiquality_occ1,bxlumivalue_occ2,bxlumierror_occ2,bxlumiquality_occ2,bxlumivalue_et,bxlumierror_et,bxlumiquality_et]}
    '''
    branchrevision_id=3#databranch_id
    branchinfo=(branchrevision_id,'DATA')
    lumirundata=[datasource]
    lumilsdata={}
    for cmslsnum,instlumi in perlsrawdata.items():
        mystartorbit=startorbit+numorbit*(cmslsnum-1)
        bxdataocc1blob=None
        bxdataocc2blob=None
        bxdataetblob=None
        bxerrorocc1blob=None
        bxerrorocc2blob=None
        bxerroretblob=None
        bxqualityocc1blob=None
        bxqualityocc2blob=None
        bxqualityetblob=None
        cmsbxindexblob=None
        beam1intensityblob=None
        beam2intensityblob=None
        beamstatus='STABLE BEAMS'
        beamenergy=4000.
        instlumierror=0.
        instlumiquality=1
        if perbunchrawdata:
            withDetails=True
            bxdataocc1blob=perbunchrawdata[cmslsnum][0]
            bxerrorocc1blob=perbunchrawdata[cmslsnum][1]
            bxqualityocc1blob=perbunchrawdata[cmslsnum][2]
            bxdataocc2blob=perbunchrawdata[cmslsnum][3]
            bxerrorocc2blob=perbunchrawdata[cmslsnum][4]
            bxqualityocc2blob=perbunchrawdata[cmslsnum][5]
            bxdataetblob=perbunchrawdata[cmslsnum][6]
            bxerroretblob=perbunchrawdata[cmslsnum][7]
            bxqualityetblob=perbunchrawdata[cmslsnum][8]
            bxindexblob=perbunchrawdata[cmslsnum][9]
            beam1intensityblob=perbunchrawdata[cmslsnum][10]
            beam2intensityblob=perbunchrawdata[cmslsnum][11]
            beamstatus=perbunchrawdata[cmslsnum][12]
            beamenergy=perbunchrawdata[cmslsnum][13]
            instlumierror=perbunchrawdata[cmslsnum][14]
            instlumiquality=perbunchrawdata[cmslsnum][15]
        elif bxdistribution:
            withDetails=True
            bxdataArray=array.array('f')
            bxerrorArray=array.array('f')
            bxqualityArray=array.array('h')
            cmsbxindexArray=array.array('h')
            beam1intensityArray=array.array('f')
            beam2intensityArray=array.array('f')
            for bxidx in range(1,3565):
                lumifraction=0.0
                if bxidx in perbunchrawdata:
                    lumifraction=perbunchrawdata[bxidx]
                bxlumivalue=float(instlumi*lumifraction)
                bxdataArray.append(bxlumivalue)
                beam1intensityArray.append(9124580336.0)
                beam1intensityArray.append(8932813306.0)
                cmsbxindexArray.append(bxidx)
                bxqualityArray.append(1)
                bxerrorArray.append(0.0)           
            bxdataocc1blob=CommonUtil.packArraytoBlob(bxdataArray)
            bxdataocc2blob=CommonUtil.packArraytoBlob(bxdataArray)
            bxdataetblob=CommonUtil.packArraytoBlob(bxdataArray)
            bxerrorocc1blob=CommonUtil.packArraytoBlob(bxerrorArray)
            bxerrorocc2blob=CommonUtil.packArraytoBlob(bxerrorArray)
            bxerroretblob=CommonUtil.packArraytoBlob(bxerrorArray)
            bxqualityocc1blob=CommonUtil.packArraytoBlob(bxqualityArray)
            bxqualityocc2blob=CommonUtil.packArraytoBlob(bxqualityArray)
            bxqualityetblob=CommonUtil.packArraytoBlob(bxqualityArray)         
            cmsbxindexblob=CommonUtil.packArraytoBlob(cmsbxindexArray)
            beam1intensityblob=CommonUtil.packArraytoBlob(beam1intensityArray)
            beam2intensityblob=CommonUtil.packArraytoBlob(beam2intensityArray)
        if deliveredonly:
            perlsdata=[0,float(instlumi),instlumierror,instlumiquality,beamstatus,beamenergy,numorbit,mystartorbit,cmsbxindexblob,beam1intensityblob,beam2intensityblob,bxdataocc1blob,bxerrorocc1blob,bxqualityocc1blob,bxdataocc2blob,bxerrorocc2blob,bxqualityocc2blob,bxdataetblob,bxerroretblob,bxqualityetblob]
        else:
            perlsdata=[cmslsnum,float(instlumi),instlumierror,instlumiquality,beamstatus,beamenergy,numorbit,mystartorbit,cmsbxindexblob,beam1intensityblob,beam2intensityblob,bxdataocc1blob,bxerrorocc1blob,bxqualityocc1blob,bxdataocc2blob,bxerrorocc2blob,bxqualityocc2blob,bxdataetblob,bxerroretblob,bxqualityetblob]
        lumilsdata[cmslsnum]=perlsdata
    #print 'toinsert from scratch',lumilsdata
    print(lumilsdata)
    dbsession.transaction().start(False)
    (revision_id,entry_id,data_id)=dataDML.addLumiRunDataToBranch(dbsession.nominalSchema(),runnum,lumirundata,branchinfo,'LUMIDATA')
    dataDML.bulkInsertLumiLSSummary(dbsession,runnum,data_id,lumilsdata,'LUMISUMMARYV2',withDetails=withDetails)
    dbsession.transaction().commit()
コード例 #16
0
ファイル: analyze148829.py プロジェクト: Moanwar/cmssw
def insertLumischemaV2(dbsession,runnum,datasource,perlsrawdata,perbunchrawdata):
    '''
    input:
    lumirundata[datasource]
    perlsrawdata: {cmslsnum:instlumi}
    perbunchrawdata: {bxidx:lumifraction}

    lumilsdata {lumilsnum:[cmslsnum,instlumi,instlumierror,instlumiquality,beamstatus,beamenergy,numorbit,startorbit,cmsbxindexblob,beam1intensityblob,beam2intensityblob,bxlumivalue_occ1,bxlumierror_occ1,bxlumiquality_occ1,bxlumivalue_occ2,bxlumierror_occ2,bxlumiquality_occ2,bxlumivalue_et,bxlumierror_et,bxlumiquality_et]}
    '''
    branchrevision_id=3#databranch_id
    branchinfo=(branchrevision_id,'DATA')
    lumirundata=[datasource]
    lumilsdata={}
    for cmslsnum,instlumi in perlsrawdata.items():
        mystartorbit=startorbit+numorbit*(cmslsnum-1)
        bxdataArray=array.array('f')
        bxerrorArray=array.array('f')
        bxqualityArray=array.array('h')
        cmsbxindexArray=array.array('h')
        beam1intensityArray=array.array('f')
        beam2intensityArray=array.array('f')
        for bxidx in range(1,3565):
            lumifraction=0.0
            if bxidx in perbunchrawdata:
                lumifraction=perbunchrawdata[bxidx]
            bxlumivalue=float(instlumi*lumifraction)/float(bunchnorm)
            bxdataArray.append(bxlumivalue)
            beam1intensityArray.append(9124580336.0)
            beam1intensityArray.append(8932813306.0)
            cmsbxindexArray.append(bxidx)
            bxqualityArray.append(1)
            bxerrorArray.append(0.0)           
        bxdataocc1blob=CommonUtil.packArraytoBlob(bxdataArray)
        bxdataocc2blob=CommonUtil.packArraytoBlob(bxdataArray)
        bxdataetblob=CommonUtil.packArraytoBlob(bxdataArray)
        bxerrorocc1blob=CommonUtil.packArraytoBlob(bxerrorArray)
        bxerrorocc2blob=CommonUtil.packArraytoBlob(bxerrorArray)
        bxerroretblob=CommonUtil.packArraytoBlob(bxerrorArray)
        bxqualityocc1blob=CommonUtil.packArraytoBlob(bxqualityArray)
        bxqualityocc2blob=CommonUtil.packArraytoBlob(bxqualityArray)
        bxqualityetblob=CommonUtil.packArraytoBlob(bxqualityArray)         
        cmsbxindexblob=CommonUtil.packArraytoBlob(cmsbxindexArray)
        beam1intensityblob=CommonUtil.packArraytoBlob(beam1intensityArray)
        beam2intensityblob=CommonUtil.packArraytoBlob(beam2intensityArray)
        perlsdata=[cmslsnum,float(instlumi)/float(6370),0.0,1,'STABLE BEAMS',beamenergy,numorbit,mystartorbit,cmsbxindexblob,beam1intensityblob,beam2intensityblob,bxdataocc1blob,bxerrorocc1blob,bxqualityocc1blob,bxdataocc2blob,bxerrorocc2blob,bxqualityocc2blob,bxdataetblob,bxerroretblob,bxqualityetblob]
        lumilsdata[cmslsnum]=perlsdata
    print(lumilsdata)
    dbsession.transaction().start(False)
    (revision_id,entry_id,data_id)=dataDML.addLumiRunDataToBranch(dbsession.nominalSchema(),runnum,lumirundata,branchinfo)
    dataDML.bulkInsertLumiLSSummary(dbsession,runnum,data_id,lumilsdata)
    dbsession.transaction().commit()
コード例 #17
0
ファイル: analyze148829.py プロジェクト: ye-man/cmssw
def insertLumischemaV2(dbsession, runnum, datasource, perlsrawdata,
                       perbunchrawdata):
    '''
    input:
    lumirundata[datasource]
    perlsrawdata: {cmslsnum:instlumi}
    perbunchrawdata: {bxidx:lumifraction}

    lumilsdata {lumilsnum:[cmslsnum,instlumi,instlumierror,instlumiquality,beamstatus,beamenergy,numorbit,startorbit,cmsbxindexblob,beam1intensityblob,beam2intensityblob,bxlumivalue_occ1,bxlumierror_occ1,bxlumiquality_occ1,bxlumivalue_occ2,bxlumierror_occ2,bxlumiquality_occ2,bxlumivalue_et,bxlumierror_et,bxlumiquality_et]}
    '''
    branchrevision_id = 3  #databranch_id
    branchinfo = (branchrevision_id, 'DATA')
    lumirundata = [datasource]
    lumilsdata = {}
    for cmslsnum, instlumi in perlsrawdata.items():
        mystartorbit = startorbit + numorbit * (cmslsnum - 1)
        bxdataArray = array.array('f')
        bxerrorArray = array.array('f')
        bxqualityArray = array.array('h')
        cmsbxindexArray = array.array('h')
        beam1intensityArray = array.array('f')
        beam2intensityArray = array.array('f')
        for bxidx in range(1, 3565):
            lumifraction = 0.0
            if bxidx in perbunchrawdata:
                lumifraction = perbunchrawdata[bxidx]
            bxlumivalue = float(instlumi * lumifraction) / float(bunchnorm)
            bxdataArray.append(bxlumivalue)
            beam1intensityArray.append(9124580336.0)
            beam1intensityArray.append(8932813306.0)
            cmsbxindexArray.append(bxidx)
            bxqualityArray.append(1)
            bxerrorArray.append(0.0)
        bxdataocc1blob = CommonUtil.packArraytoBlob(bxdataArray)
        bxdataocc2blob = CommonUtil.packArraytoBlob(bxdataArray)
        bxdataetblob = CommonUtil.packArraytoBlob(bxdataArray)
        bxerrorocc1blob = CommonUtil.packArraytoBlob(bxerrorArray)
        bxerrorocc2blob = CommonUtil.packArraytoBlob(bxerrorArray)
        bxerroretblob = CommonUtil.packArraytoBlob(bxerrorArray)
        bxqualityocc1blob = CommonUtil.packArraytoBlob(bxqualityArray)
        bxqualityocc2blob = CommonUtil.packArraytoBlob(bxqualityArray)
        bxqualityetblob = CommonUtil.packArraytoBlob(bxqualityArray)
        cmsbxindexblob = CommonUtil.packArraytoBlob(cmsbxindexArray)
        beam1intensityblob = CommonUtil.packArraytoBlob(beam1intensityArray)
        beam2intensityblob = CommonUtil.packArraytoBlob(beam2intensityArray)
        perlsdata = [
            cmslsnum,
            float(instlumi) / float(6370), 0.0, 1, 'STABLE BEAMS', beamenergy,
            numorbit, mystartorbit, cmsbxindexblob, beam1intensityblob,
            beam2intensityblob, bxdataocc1blob, bxerrorocc1blob,
            bxqualityocc1blob, bxdataocc2blob, bxerrorocc2blob,
            bxqualityocc2blob, bxdataetblob, bxerroretblob, bxqualityetblob
        ]
        lumilsdata[cmslsnum] = perlsdata
    print(lumilsdata)
    dbsession.transaction().start(False)
    (revision_id, entry_id,
     data_id) = dataDML.addLumiRunDataToBranch(dbsession.nominalSchema(),
                                               runnum, lumirundata, branchinfo)
    dataDML.bulkInsertLumiLSSummary(dbsession, runnum, data_id, lumilsdata)
    dbsession.transaction().commit()
コード例 #18
0
ファイル: patchHLT.py プロジェクト: archiesharma/muonPhase2
def patchV2(dbsession,runnum,inputpathnames,inputdata):
    '''
    inputpathnames: [pathname,]
    inputdata: {cmslsnum:[presc,presc...]}
    update the most recent version of lshlt data if some ls exist
    if none old ls exists
    insert new hlt records
    '''
    try:
        dbsession.transaction().start(True)
        oldhltdataid=dataDML.guessHltDataIdByRun(dbsession.nominalSchema(),runnum)
        existingrundata=dataDML.hltRunById(dbsession.nominalSchema(),oldhltdataid)
        dbsession.transaction().commit()
        if not oldhltdataid:#no data at all
            dbsession.transaction().start(False)
            insertV2(dbsession,runnum,inputpathnames,inputdata)
            dbsession.transaction().commit()
            return
        hltnamedict=existingrundata[3]#[(pathidx,hltname),(pathidx,hltname)...]
        dbsession.transaction().start(True)
        existinglsdata=dataDML.hltLSById(dbsession.nominalSchema(),oldhltdataid)
        dbsession.transaction().commit()
        oldlsdata=existinglsdata[1]
        existinglslist=oldlsdata.keys()
        toupdate={}#{cmslsnum:[presc,presc...]}
        toinsert={}#{cmslsnum:[presc,presc...]}
        if existinglslist and len(existinglslist)!=0:#there are some existing data
            for cmslsnum,oldlscontent in oldlsdata.items():
                if cmslsnum in inputdata.keys(): # if overlap with new data, update old data with new 
                    toupdate[cmslsnum]=inputdata[cmslsnum]
        for cmslsnum,lshltcontent in inputdata.items():
            if cmslsnum in toupdate: continue #it's to update not to insert
            toinsert[cmslsnum]=inputdata[cmslsnum]
        #
        # insert into lshlt(data_id,runnum,cmslsnum,prescaleblob,hltcountblob,hltacceptblob) values()
        #
        dbsession.transaction().start(False)
        tabrowDefDict={'DATA_ID':'unsigned long long','RUNNUM':'unsigned int','CMSLSNUM':'unsigned int','PRESCALEBLOB':'blob','HLTCOUNTBLOB':'blob','HLTACCEPTBLOB':'blob'}
        for cmslsnum,perlsdata in toinsert.items():
            prescaleArray=array.array('I')
            hltcountArray=array.array('I')
            hltacceptArray=array.array('I')
            for (pathidx,hltname) in hltnamedict:
                thispathIdx=inputpathnames.index(hltname)
                thispresc=perlsdata[thispathIdx]
                thiscount=0
                thisaccept=0
                prescaleArray.append(thispresc)
                hltcountArray.append(thiscount)
                hltacceptArray.append(thisaccept)
            prescaleblob=CommonUtil.packArraytoBlob(prescaleArray)
            hltcountblob=CommonUtil.packArraytoBlob(hltcountArray)
            hltacceptblob=CommonUtil.packArraytoBlob(hltacceptArray)
            tabrowValueDict={'DATA_ID':oldhltdataid,'RUNNUM':int(runnum),'CMSLSNUM':int(cmslsnum),'PRESCALEBLOB':prescaleblob,'HLTCOUNTBLOB':hltcountblob,'HLTACCEPTBLOB':hltacceptblob}
            db=dbUtil.dbUtil(dbsession.nominalSchema())
            db.insertOneRow(nameDealer.lshltTableName(),tabrowDefDict,tabrowValueDict)
            #
            # update lshlt set prescaleblob=:prescaleblob,hltcoutblob=:hltcountblob,hltacceptblob=:hltacceptblob where data_id=:olddata_id and cmslsnum=:cmslsnum;
            #
        setClause='PRESCALEBLOB=:prescaleblob,HLTCOUNTBLOB=:hltcountblob,HLTACCEPTBLOB=:hltacceptblob'
        updateCondition='DATA_ID=:oldhltdataid and CMSLSNUM=:cmslsnum'
        for cmslsnum,perlsdata in toupdate.items():
            prescaleArray=array.array('I')
            hltcountArray=array.array('I')
            hltacceptArray=array.array('I')
            for (pathidx,hltname) in hltnamedict:
                thispathIdx=inputpathnames.index(hltname)
                thispresc=perlsdata[thispathIdx]
                thiscount=0
                thisaccept=0
                prescaleArray.append(thispresc)
                hltcountArray.append(thiscount)
                hltacceptArray.append(thisaccept)
            prescaleblob=CommonUtil.packArraytoBlob(prescaleArray)
            hltcountblob=CommonUtil.packArraytoBlob(hltcountArray)
            hltacceptblob=CommonUtil.packArraytoBlob(hltacceptArray)
            iData=coral.AttributeList()
            iData.extend('prescaleblob','blob')
            iData.extend('hltcountblob','blob')
            iData.extend('hltacceptblob','blob')
            iData.extend('olddata_id','unsigned int')
            iData.extend('cmslsnum','unsigned int')
            iData['prescaleblob'].setData(prescaleblob)
            iData['hltcountblob'].setData(hltcountblob)
            iData['hltacceptblob'].setData(hltacceptblob)
            iData['olddata_id'].setData(int(olddata_id))
            iData['cmslsnum'].setData(int(cmslsnum))
            db=dbUtil.dbUtil(schema)
            db.singleUpdate(nameDealer.lshltTableName(),setClause,updateCondition,iData)
        dbsession.transaction().commit()
        #dbsession.transaction().rollback()
    except :
        raise
コード例 #19
0
ファイル: analyzelostruns.py プロジェクト: fabozzi/ST_44
def insertLumischemaV2(dbsession,runnum,datasource,perlsrawdata,perbunchrawdata,deliveredonly=False):
    '''
    input:
    lumirundata[datasource]
    perlsrawdata: {cmslsnum:instlumi}
    perbunchrawdata: {bxidx:lumifraction}

    lumilsdata {lumilsnum:[cmslsnum,instlumi,instlumierror,instlumiquality,beamstatus,beamenergy,numorbit,startorbit,cmsbxindexblob,beam1intensityblob,beam2intensityblob,bxlumivalue_occ1,bxlumierror_occ1,bxlumiquality_occ1,bxlumivalue_occ2,bxlumierror_occ2,bxlumiquality_occ2,bxlumivalue_et,bxlumierror_et,bxlumiquality_et]}
    '''
    branchrevision_id=3#databranch_id
    branchinfo=(branchrevision_id,'DATA')
    lumirundata=[datasource]
    lumilsdata={}
    dbsession.transaction().start(True)
    oldlumidataid=dataDML.guessLumiDataIdByRun(dbsession.nominalSchema(),runnum)
    dbsession.transaction().commit()

    for cmslsnum,instlumi in perlsrawdata.items():
        mystartorbit=startorbit+numorbit*(cmslsnum-1)
        bxdataocc1blob=None
        bxdataocc2blob=None
        bxdataetblob=None
        bxerrorocc1blob=None
        bxerrorocc2blob=None
        bxerroretblob=None
        bxqualityocc1blob=None
        bxqualityocc2blob=None
        bxqualityetblob=None
        cmsbxindexblob=None
        beam1intensityblob=None
        beam2intensityblob=None
        if perbunchrawdata:
            bxdataArray=array.array('f')
            bxerrorArray=array.array('f')
            bxqualityArray=array.array('h')
            cmsbxindexArray=array.array('h')
            beam1intensityArray=array.array('f')
            beam2intensityArray=array.array('f')
            for bxidx in range(1,3565):
                lumifraction=0.0
                if perbunchrawdata.has_key(bxidx):
                    lumifraction=perbunchrawdata[bxidx]
                bxlumivalue=float(instlumi*lumifraction)/float(bunchnorm)
                bxdataArray.append(bxlumivalue)
                beam1intensityArray.append(9124580336.0)
                beam1intensityArray.append(8932813306.0)
                cmsbxindexArray.append(bxidx)
                bxqualityArray.append(1)
                bxerrorArray.append(0.0)           
            bxdataocc1blob=CommonUtil.packArraytoBlob(bxdataArray)
            bxdataocc2blob=CommonUtil.packArraytoBlob(bxdataArray)
            bxdataetblob=CommonUtil.packArraytoBlob(bxdataArray)
            bxerrorocc1blob=CommonUtil.packArraytoBlob(bxerrorArray)
            bxerrorocc2blob=CommonUtil.packArraytoBlob(bxerrorArray)
            bxerroretblob=CommonUtil.packArraytoBlob(bxerrorArray)
            bxqualityocc1blob=CommonUtil.packArraytoBlob(bxqualityArray)
            bxqualityocc2blob=CommonUtil.packArraytoBlob(bxqualityArray)
            bxqualityetblob=CommonUtil.packArraytoBlob(bxqualityArray)         
            cmsbxindexblob=CommonUtil.packArraytoBlob(cmsbxindexArray)
            beam1intensityblob=CommonUtil.packArraytoBlob(beam1intensityArray)
            beam2intensityblob=CommonUtil.packArraytoBlob(beam2intensityArray)
        if deliveredonly:
            perlsdata=[0,float(instlumi)/float(6370),0.0,1,'STABLE BEAMS',beamenergy,numorbit,mystartorbit,cmsbxindexblob,beam1intensityblob,beam2intensityblob,bxdataocc1blob,bxerrorocc1blob,bxqualityocc1blob,bxdataocc2blob,bxerrorocc2blob,bxqualityocc2blob,bxdataetblob,bxerroretblob,bxqualityetblob]
        else:
            perlsdata=[cmslsnum,float(instlumi)/float(6370),0.0,1,'STABLE BEAMS',beamenergy,numorbit,mystartorbit,cmsbxindexblob,beam1intensityblob,beam2intensityblob,bxdataocc1blob,bxerrorocc1blob,bxqualityocc1blob,bxdataocc2blob,bxerrorocc2blob,bxqualityocc2blob,bxdataetblob,bxerroretblob,bxqualityetblob]
        lumilsdata[cmslsnum]=perlsdata
    print 'toinsert from scratch',lumilsdata
    
    dbsession.transaction().start(False)
    (revision_id,entry_id,data_id)=dataDML.addLumiRunDataToBranch(dbsession.nominalSchema(),runnum,lumirundata,branchinfo)
    newlumilsnumMin=min(lumilsdata.keys())
    newlumilsnumMax=max(lumilsdata.keys())
    #update id of existing to new
    #update lumisummaryv2 set DATA_ID=:data_id where DATA_ID=:oldid and lumilsnum<newlumilsnumMin or lumilsnum>newlumilsnumMax
    #lumidataid is not None  update lumilsdata set lumidataid=:newlumidataid where runnum=:run a
    inputData=coral.AttributeList()
    inputData.extend('dataid','unsigned long long')
    inputData.extend('oldid','unsigned long long')
    inputData.extend('lumilsnumMin','unsigned int')
    inputData.extend('lumilsnumMax','unsigned int')
    inputData['dataid'].setData( data_id )
    inputData['oldid'].setData( oldlumidataid )
    inputData['lumilsnumMin'].setData( newlumilsnumMin )
    inputData['lumilsnumMax'].setData( newlumilsnumMax )
    db=dbUtil.dbUtil(dbsession.nominalSchema())
    db.singleUpdate('LUMISUMMARYV2','DATA_ID=:dataid','DATA_ID=:oldid AND LUMILSNUM<:lumilsnumMin OR lumilsnum>:lumilsnumMax',inputData)
    print 'to update existing id ',oldlumidataid,' outside region ',newlumilsnumMin,' , ',newlumilsnumMax
    dataDML.bulkInsertLumiLSSummary(dbsession,runnum,data_id,lumilsdata)
    dbsession.transaction().commit()
コード例 #20
0
ファイル: patchHLT.py プロジェクト: Moanwar/cmssw
def patchV2(dbsession,runnum,inputpathnames,inputdata):
    '''
    inputpathnames: [pathname,]
    inputdata: {cmslsnum:[presc,presc...]}
    update the most recent version of lshlt data if some ls exist
    if none old ls exists
    insert new hlt records
    '''
    try:
        dbsession.transaction().start(True)
        oldhltdataid=dataDML.guessHltDataIdByRun(dbsession.nominalSchema(),runnum)
        existingrundata=dataDML.hltRunById(dbsession.nominalSchema(),oldhltdataid)
        dbsession.transaction().commit()
        if not oldhltdataid:#no data at all
            dbsession.transaction().start(False)
            insertV2(dbsession,runnum,inputpathnames,inputdata)
            dbsession.transaction().commit()
            return
        hltnamedict=existingrundata[3]#[(pathidx,hltname),(pathidx,hltname)...]
        dbsession.transaction().start(True)
        existinglsdata=dataDML.hltLSById(dbsession.nominalSchema(),oldhltdataid)
        dbsession.transaction().commit()
        oldlsdata=existinglsdata[1]
        existinglslist=oldlsdata.keys()
        toupdate={}#{cmslsnum:[presc,presc...]}
        toinsert={}#{cmslsnum:[presc,presc...]}
        if existinglslist and len(existinglslist)!=0:#there are some existing data
            for cmslsnum,oldlscontent in oldlsdata.items():
                if cmslsnum in inputdata.keys(): # if overlap with new data, update old data with new 
                    toupdate[cmslsnum]=inputdata[cmslsnum]
        for cmslsnum,lshltcontent in inputdata.items():
            if cmslsnum in toupdate: continue #it's to update not to insert
            toinsert[cmslsnum]=inputdata[cmslsnum]
        #
        # insert into lshlt(data_id,runnum,cmslsnum,prescaleblob,hltcountblob,hltacceptblob) values()
        #
        dbsession.transaction().start(False)
        tabrowDefDict={'DATA_ID':'unsigned long long','RUNNUM':'unsigned int','CMSLSNUM':'unsigned int','PRESCALEBLOB':'blob','HLTCOUNTBLOB':'blob','HLTACCEPTBLOB':'blob'}
        for cmslsnum,perlsdata in toinsert.items():
            prescaleArray=array.array('I')
            hltcountArray=array.array('I')
            hltacceptArray=array.array('I')
            for (pathidx,hltname) in hltnamedict:
                thispathIdx=inputpathnames.index(hltname)
                thispresc=perlsdata[thispathIdx]
                thiscount=0
                thisaccept=0
                prescaleArray.append(thispresc)
                hltcountArray.append(thiscount)
                hltacceptArray.append(thisaccept)
            prescaleblob=CommonUtil.packArraytoBlob(prescaleArray)
            hltcountblob=CommonUtil.packArraytoBlob(hltcountArray)
            hltacceptblob=CommonUtil.packArraytoBlob(hltacceptArray)
            tabrowValueDict={'DATA_ID':oldhltdataid,'RUNNUM':int(runnum),'CMSLSNUM':int(cmslsnum),'PRESCALEBLOB':prescaleblob,'HLTCOUNTBLOB':hltcountblob,'HLTACCEPTBLOB':hltacceptblob}
            db=dbUtil.dbUtil(dbsession.nominalSchema())
            db.insertOneRow(nameDealer.lshltTableName(),tabrowDefDict,tabrowValueDict)
            #
            # update lshlt set prescaleblob=:prescaleblob,hltcoutblob=:hltcountblob,hltacceptblob=:hltacceptblob where data_id=:olddata_id and cmslsnum=:cmslsnum;
            #
        setClause='PRESCALEBLOB=:prescaleblob,HLTCOUNTBLOB=:hltcountblob,HLTACCEPTBLOB=:hltacceptblob'
        updateCondition='DATA_ID=:oldhltdataid and CMSLSNUM=:cmslsnum'
        for cmslsnum,perlsdata in toupdate.items():
            prescaleArray=array.array('I')
            hltcountArray=array.array('I')
            hltacceptArray=array.array('I')
            for (pathidx,hltname) in hltnamedict:
                thispathIdx=inputpathnames.index(hltname)
                thispresc=perlsdata[thispathIdx]
                thiscount=0
                thisaccept=0
                prescaleArray.append(thispresc)
                hltcountArray.append(thiscount)
                hltacceptArray.append(thisaccept)
            prescaleblob=CommonUtil.packArraytoBlob(prescaleArray)
            hltcountblob=CommonUtil.packArraytoBlob(hltcountArray)
            hltacceptblob=CommonUtil.packArraytoBlob(hltacceptArray)
            iData=coral.AttributeList()
            iData.extend('prescaleblob','blob')
            iData.extend('hltcountblob','blob')
            iData.extend('hltacceptblob','blob')
            iData.extend('olddata_id','unsigned int')
            iData.extend('cmslsnum','unsigned int')
            iData['prescaleblob'].setData(prescaleblob)
            iData['hltcountblob'].setData(hltcountblob)
            iData['hltacceptblob'].setData(hltacceptblob)
            iData['olddata_id'].setData(int(olddata_id))
            iData['cmslsnum'].setData(int(cmslsnum))
            db=dbUtil.dbUtil(schema)
            db.singleUpdate(nameDealer.lshltTableName(),setClause,updateCondition,iData)
        dbsession.transaction().commit()
        #dbsession.transaction().rollback()
    except :
        raise