Beispiel #1
0
def getPU(runnr,jsonfile):
    
    url="https://cmswbm.web.cern.ch/cmswbm/cmsdb/servlet/RunSummary?RUN=%s&DB=default" % (runnr)
    tables=parseURLTables(url)
    lhcfill_key=tables[3][14][1]

    url="https://cmswbm.web.cern.ch/cmswbm/cmsdb/servlet/FillReport?FILL=%s" % (lhcfill_key)
    tables=parseURLTables(url)
    nbunch=int(tables[3][18][1])

    totalLS=0     
    for l1 in jsonfile:
        totalLS=totalLS+l1[1]-l1[0]+1

    lumidic={}
    sumPU=0.
    sum_lumi=0
    n_lumi=0
    nLS=0
    max_pu=0
    min_pu=99
    psAndInstLumis=getPSAndInstLumis(runnr)
    for ls in jsonfile:
        minLS=int(ls[0])
        maxLS=int(ls[1])
        nLS+=(maxLS-minLS+1)
        for lumi in range(minLS,maxLS+1):
            if lumi in psAndInstLumis:
                sum_lumi+=psAndInstLumis[lumi][1]
                tmp_pu=(psAndInstLumis[lumi][1]*80000)/(11246*nbunch)
                lumidic[lumi]=(psAndInstLumis[lumi][1],tmp_pu)
    return lumidic
Beispiel #2
0
def getPU(runnr, jsonfile):

    url = "https://cmswbm.web.cern.ch/cmswbm/cmsdb/servlet/RunSummary?RUN=%s&DB=default" % (
        runnr)
    tables = parseURLTables(url)
    lhcfill_key = tables[3][14][1]

    url = "https://cmswbm.web.cern.ch/cmswbm/cmsdb/servlet/FillReport?FILL=%s" % (
        lhcfill_key)
    tables = parseURLTables(url)
    nbunch = int(tables[3][18][1])

    totalLS = 0
    for l1 in jsonfile:
        totalLS = totalLS + l1[1] - l1[0] + 1

    lumidic = {}
    sumPU = 0.
    sum_lumi = 0
    n_lumi = 0
    nLS = 0
    max_pu = 0
    min_pu = 99
    psAndInstLumis = getPSAndInstLumis(runnr)
    for ls in jsonfile:
        minLS = int(ls[0])
        maxLS = int(ls[1])
        nLS += (maxLS - minLS + 1)
        for lumi in range(minLS, maxLS + 1):
            if lumi in psAndInstLumis:
                sum_lumi += psAndInstLumis[lumi][1]
                tmp_pu = (psAndInstLumis[lumi][1] * 80000) / (11246 * nbunch)
                lumidic[lumi] = (psAndInstLumis[lumi][1], tmp_pu)
    return lumidic
def getL1Prescales(runnr):
    url="https://cmswbm.web.cern.ch/cmswbm/cmsdb/servlet/RunSummary?RUN=%s&DB=default" % (runnr)
    tables=parseURLTables(url)
    l1_hlt_mode=tables[1][1][3]

    url="https://cmswbm.web.cern.ch/cmswbm/cmsdb/servlet/TriggerMode?KEY=%s" % (l1_hlt_mode)
    tables=parseURLTables(url)

    prescales={}

    # l1 algo paths/prescales
    for line in tables[3]:
        #                path     7e33    1e32
        try:
            prescales[line[1]] = (int(line[4]),int(line[13]))
        except:
            prescales[line[1]] = (-1,-1)

    #l1 tech paths/prescales
    for line in tables[4]:
        #                path     7e33    1e32
        try:
            prescales[line[1]] = (int(line[4]),int(line[13]))
        except:
            prescales[line[1]] = (-1,-1)

    return prescales
Beispiel #4
0
def getnbx(run):
    url="https://cmswbm.web.cern.ch/cmswbm/cmsdb/servlet/RunSummary?RUN=%s&DB=default" % (run)
    tables=parseURLTables(url)
    lhcfill_key=tables[3][14][1]

    url="https://cmswbm.web.cern.ch/cmswbm/cmsdb/servlet/FillReport?FILL=%s" % (lhcfill_key)
    tables=parseURLTables(url)
    nbunch=int(tables[3][18][1])

    return nbunch
Beispiel #5
0
def getnbx(run):
    url="https://cmswbm.web.cern.ch/cmswbm/cmsdb/servlet/RunSummary?RUN=%s&DB=default" % (run)
    tables=parseURLTables(url)
    lhcfill_key=tables[3][14][1]

    url="https://cmswbm.web.cern.ch/cmswbm/cmsdb/servlet/FillReport?FILL=%s" % (lhcfill_key)
    tables=parseURLTables(url)
    nbunch=int(tables[3][18][1])

    return nbunch
Beispiel #6
0
    def getPU(runnr, jsonfile):

        url = "https://cmswbm.web.cern.ch/cmswbm/cmsdb/servlet/RunSummary?RUN=%s&DB=default" % (
            runnr)
        tables = parseURLTables(url)
        lhcfill_key = tables[3][14][1]

        url = "https://cmswbm.web.cern.ch/cmswbm/cmsdb/servlet/FillReport?FILL=%s" % (
            lhcfill_key)
        tables = parseURLTables(url)
        nbunch = int(tables[3][18][1])

        totalLS = 0
        for l1 in jsonfile:
            totalLS = totalLS + l1[1] - l1[0] + 1

        sumPU = 0.
        sum_lumi = 0
        n_lumi = 0
        nLS = 0
        max_pu = 0
        min_pu = 99
        psAndInstLumis = getPSAndInstLumis(runnr)
        for ls in jsonfile:
            minLS = int(ls[0])
            maxLS = int(ls[1])
            nLS += (maxLS - minLS + 1)
            for lumi in range(minLS, maxLS + 1):
                if lumi in psAndInstLumis:
                    sum_lumi += psAndInstLumis[lumi][1]
                    tmp_pu = (psAndInstLumis[lumi][1] * 80000) / (11246 *
                                                                  nbunch)
                    if max_pu < tmp_pu: max_pu = tmp_pu
                    if min_pu > tmp_pu and tmp_pu > 5: min_pu = tmp_pu

                    if pu_write:
                        hltRates = getpartTriggerRates(runnr, lumi, lumi, 1)
                        print 'lumi section:', lumi, 'in Run: ', runnr, '  ', n_lumi, '/', totalLS
                        for path in PU_list:
                            print path, hltRates[path][0][3]
                            PU_file.write(path + ',%0.2f,%f\n' %
                                          (tmp_pu, hltRates[path][0][3]))

                    sumPU += psAndInstLumis[lumi][1] * tmp_pu
                    n_lumi += 1
        if n_lumi != nLS:
            print "warning! miss lumi section!"
        avePU = sumPU / sum_lumi
        lumiscaled = 10000 / float(sum_lumi) * n_lumi
        aveLumi = float(sum_lumi) / n_lumi

        return avePU, max_pu, min_pu, lumiscaled, aveLumi
Beispiel #7
0
    def getPU(runnr,jsonfile):
        
        url="https://cmswbm.web.cern.ch/cmswbm/cmsdb/servlet/RunSummary?RUN=%s&DB=default" % (runnr)
        tables=parseURLTables(url)
        lhcfill_key=tables[3][14][1]
    
        url="https://cmswbm.web.cern.ch/cmswbm/cmsdb/servlet/FillReport?FILL=%s" % (lhcfill_key)
        tables=parseURLTables(url)
        nbunch=int(tables[3][18][1])

        totalLS=0     
        for l1 in jsonfile:
            totalLS=totalLS+l1[1]-l1[0]+1

        sumPU=0.
        sum_lumi=0
        n_lumi=0
        nLS=0
        max_pu=0
        min_pu=99
        psAndInstLumis=getPSAndInstLumis(runnr)
        for ls in jsonfile:
            minLS=int(ls[0])
            maxLS=int(ls[1])
            nLS+=(maxLS-minLS+1)
            for lumi in range(minLS,maxLS+1):
                if lumi in psAndInstLumis:
                    sum_lumi+=psAndInstLumis[lumi][1]
                    tmp_pu=(psAndInstLumis[lumi][1]*80000)/(11246*nbunch)
                    if max_pu<tmp_pu:max_pu=tmp_pu
                    if min_pu>tmp_pu and tmp_pu>5:min_pu=tmp_pu

                    if pu_write:
                        hltRates=getpartTriggerRates(runnr,lumi,lumi,1)
                        print 'lumi section:',lumi,'in Run: ',runnr,'  ',n_lumi,'/',totalLS
                        for path in PU_list:
                            print path,hltRates[path][0][3]
                            PU_file.write(path+',%0.2f,%f\n' %(tmp_pu,hltRates[path][0][3]))

                    sumPU+=psAndInstLumis[lumi][1]*tmp_pu
                    n_lumi+=1
        if n_lumi != nLS:
            print "warning! miss lumi section!"
        avePU = sumPU/sum_lumi
        lumiscaled = 10000/float(sum_lumi)*n_lumi
        aveLumi = float(sum_lumi)/n_lumi
    
        return avePU,max_pu,min_pu,lumiscaled,aveLumi
def getL1Rates(runnr,minLS,maxLS):
    url="https://cmswbm.web.cern.ch/cmswbm/cmsdb/servlet/RunSummary?RUN=%s&DB=default" % (runnr)
    tables=parseURLTables(url)
    l1_key_mode=tables[1][1][4]

    url="https://cmswbm.web.cern.ch/cmswbm/cmsdb/servlet/L1Summary?fromLS=%s&toLS=%s&RUN=%s&KEY=%s" % (minLS,maxLS,runnr,l1_key_mode)
    tables=parseURLTables(url)

    l1Rates={}
    for line in tables[7][2:]:
        if ('L1' in line[1]):
            rates=[]
            for entry in line[4:8]:
                rates.append(float(entry.replace(",","")))
    
            l1Rates[line[1].strip()]=(rates,int(line[8]))
    return l1Rates
def getHLTPrescales(runnr,dataColumn,targetColumn):
    url="https://cmswbm.web.cern.ch/cmswbm/cmsdb/servlet/RunSummary?RUN=%s&DB=default" % (runnr)
    tables=parseURLTables(url)
    l1_hlt_mode=tables[1][1][3]

    url="https://cmswbm.web.cern.ch/cmswbm/cmsdb/servlet/TriggerMode?KEY=%s" % (l1_hlt_mode)
    tables=parseURLTables(url)

    prescales={}

    #HLT paths/prescales
    for line in tables[5]:
        if ('Output' in line[1].split('_v')[0]): continue
        try:
            prescales[line[1].split('_v')[0]] = (int(line[targetColumn+2]),int(line[dataColumn+2]))
        except:
            prescales[line[1].split('_v')[0]] = (-1,-1)

    return prescales
    def getL1Rates(runnr, minLS, maxLS):
        url = "https://cmswbm.web.cern.ch/cmswbm/cmsdb/servlet/RunSummary?RUN=%s&DB=default" % (
            runnr)
        tables = parseURLTables(url)
        l1_key_mode = tables[1][1][4]

        url = "https://cmswbm.web.cern.ch/cmswbm/cmsdb/servlet/L1Summary?fromLS=%s&toLS=%s&RUN=%s&KEY=%s" % (
            minLS, maxLS, runnr, l1_key_mode)
        tables = parseURLTables(url)

        l1Rates = {}
        for line in tables[7][2:]:
            if ('L1' in line[1]):
                rates = []
                for entry in line[4:8]:
                    rates.append(float(entry.replace(",", "")))

                l1Rates[line[1].strip()] = (rates, int(line[8]))
        return l1Rates
 def getHLTPrescales(runnr):
     url="https://cmswbm.web.cern.ch/cmswbm/cmsdb/servlet/RunSummary?RUN=%s&DB=default" % (runnr)
     tables=parseURLTables(url)
     l1_hlt_mode=tables[1][1][3]
 
     url="https://cmswbm.web.cern.ch/cmswbm/cmsdb/servlet/TriggerMode?KEY=%s" % (l1_hlt_mode)
     #print url
     tables=parseURLTables(url)
 
     prescales={}
 
     for line in tables[2]:
         if ('Output' in line[1].split('_v')[0]): continue
         #                path                      lumi     
         try:
             prescales[line[1].split('_v')[0]] = (int(line[lumicolumn]),line[15])
         except:
             prescales[line[1].split('_v')[0]] = (-1,'null')
 
     return prescales
def getTriggerRates(runnr,minLS,maxLS):
    url="https://cmswbm.web.cern.ch/cmswbm/cmsdb/servlet/HLTSummary?fromLS=%s&toLS=%s&RUN=%s" % (minLS,maxLS,runnr)
    tables=parseURLTables(url)

    hltRates={}
    for line in tables[1][2:]:
        rates=[]
        for entry in line[3:7]:
            rates.append(float(entry.replace(",","")))
        hltRates[line[1].split("_v")[0]]=(rates,line[9])
    return hltRates
def getPU(runnr,minLS,maxLS):
   
    psAndInstLumis=getPSAndInstLumis(runnr)
    aveLumi=getAveInstLumi(psAndInstLumis,minLS,maxLS)

    url="https://cmswbm.web.cern.ch/cmswbm/cmsdb/servlet/RunSummary?RUN=%s&DB=default" % (runnr)
    tables=parseURLTables(url)
    lhcfill_key=tables[3][14][1]

    url="https://cmswbm.web.cern.ch/cmswbm/cmsdb/servlet/FillReport?FILL=%s" % (lhcfill_key)
    tables=parseURLTables(url)
    nbunch=int(tables[3][18][1])
 
    sumPU=0.
    nLS=0.
    for lumi in range(minLS,maxLS+1):
        if lumi in psAndInstLumis:
            nLS+=1
            sumPU+=(psAndInstLumis[lumi][1]/aveLumi)*(psAndInstLumis[lumi][1]*80000)/(11246*nbunch)
    avePU=sumPU/nLS
    return avePU
def getTriggerRates(runnr, minLS, maxLS):
    url = "https://cmswbm.web.cern.ch/cmswbm/cmsdb/servlet/HLTSummary?fromLS=%s&toLS=%s&RUN=%s" % (
        minLS, maxLS, runnr)
    tables = parseURLTables(url)

    hltRates = {}
    for line in tables[1][2:]:
        rates = []
        for entry in line[3:7]:
            rates.append(float(entry.replace(",", "")))
        hltRates[line[1].split("_v")[0]] = (rates, line[9])
    return hltRates
def getL1TriggerRates(runnr,minLS,maxLS):
    url="https://cmswbm.web.cern.ch/cmswbm/cmsdb/servlet/L1Summary?fromLS=%s&toLS=%s&RUN=%s" % (minLS,maxLS,runnr)
    tables=parseURLTables(url)


    l1Rates={}
    for line in tables[6]:
      if (line[1].startswith('L1_')):
        #print line[1],line[6].replace(',','')                                                                                                            
        l1Rates[line[1]]=(float(line[6].replace(',','')))

    return l1Rates
def getL1TriggerRates(runnr, minLS, maxLS):
    url = "https://cmswbm.web.cern.ch/cmswbm/cmsdb/servlet/L1Summary?fromLS=%s&toLS=%s&RUN=%s" % (
        minLS, maxLS, runnr)
    tables = parseURLTables(url)

    l1Rates = {}
    for line in tables[6]:
        if (line[1].startswith('L1_')):
            #print line[1],line[6].replace(',','')
            l1Rates[line[1]] = (float(line[6].replace(',', '')))

    return l1Rates
    def getHLTPrescales(runnr):
        url = "https://cmswbm.web.cern.ch/cmswbm/cmsdb/servlet/RunSummary?RUN=%s&DB=default" % (
            runnr)
        tables = parseURLTables(url)
        l1_hlt_mode = tables[1][1][3]

        url = "https://cmswbm.web.cern.ch/cmswbm/cmsdb/servlet/TriggerMode?KEY=%s" % (
            l1_hlt_mode)
        #print url
        tables = parseURLTables(url)

        prescales = {}

        for line in tables[2]:
            if ('Output' in line[1].split('_v')[0]): continue
            #                path                      lumi
            try:
                prescales[line[1].split('_v')[0]] = (int(line[lumicolumn]),
                                                     line[15])
            except:
                prescales[line[1].split('_v')[0]] = (-1, 'null')

        return prescales
def getPU(runnr, minLS, maxLS):

    psAndInstLumis = getPSAndInstLumis(runnr)
    aveLumi = getAveInstLumi(psAndInstLumis, minLS, maxLS)

    url = "https://cmswbm.web.cern.ch/cmswbm/cmsdb/servlet/RunSummary?RUN=%s&DB=default" % (
        runnr)
    tables = parseURLTables(url)
    lhcfill_key = tables[3][14][1]

    url = "https://cmswbm.web.cern.ch/cmswbm/cmsdb/servlet/FillReport?FILL=%s" % (
        lhcfill_key)
    tables = parseURLTables(url)
    nbunch = int(tables[3][18][1])

    sumPU = 0.
    nLS = 0.
    for lumi in range(minLS, maxLS + 1):
        if lumi in psAndInstLumis:
            nLS += 1
            sumPU += (psAndInstLumis[lumi][1] / aveLumi) * (
                psAndInstLumis[lumi][1] * 80000) / (11246 * nbunch)
    avePU = sumPU / nLS
    return avePU
def getPSAndInstLumis(runNum):
    url="https://cmswbm.web.cern.ch/cmswbm/cmsdb/servlet/LumiSections?RUN=%s" % runNum 
    tables=parseURLTables(url)

    psAndInstLumis={}
    
    for line in tables[0]:
        offset=0
        if line[0]=="L S": offset=41
        lumiSec=int(line[0+offset])
        preScaleColumn=int(line[1+offset])
        instLumi=float(line[3+offset])
        if instLumi==0.0: instLumi=50
        psAndInstLumis[lumiSec]=(preScaleColumn,instLumi)
    return psAndInstLumis
def getPSAndInstLumis(runNum):
    url = "https://cmswbm.web.cern.ch/cmswbm/cmsdb/servlet/LumiSections?RUN=%s" % runNum
    tables = parseURLTables(url)

    psAndInstLumis = {}

    for line in tables[0]:
        offset = 0
        if line[0] == "L S": offset = 41
        lumiSec = int(line[0 + offset])
        preScaleColumn = int(line[1 + offset])
        instLumi = float(line[3 + offset])
        if instLumi == 0.0: instLumi = 50
        psAndInstLumis[lumiSec] = (preScaleColumn, instLumi)
    return psAndInstLumis
 def getL1Prescales(runnr):
     url="https://cmswbm.web.cern.ch/cmswbm/cmsdb/servlet/PrescaleSets?RUN=%s" % (runnr)
     tables=parseURLTables(url)
 
     prescales={}
 
     # l1 algo paths/prescales
     for line in tables[1]:
         if not 'L1_' in line[1]:continue
         #                path     lumi
         try:
             prescales[line[1]] = (int(line[lumicolumn]))
         except:
             prescales[line[1]] = (0)    
 
     return prescales
    def getL1Prescales(runnr):
        url = "https://cmswbm.web.cern.ch/cmswbm/cmsdb/servlet/PrescaleSets?RUN=%s" % (
            runnr)
        tables = parseURLTables(url)

        prescales = {}

        # l1 algo paths/prescales
        for line in tables[1]:
            if not 'L1_' in line[1]: continue
            #                path     lumi
            try:
                prescales[line[1]] = (int(line[lumicolumn]))
            except:
                prescales[line[1]] = (0)

        return prescales
parser = argparse.ArgumentParser(description='compare hlt reports')

args = parser.parse_args()

f_json=open("/afs/cern.ch/cms/CAF/CMSCOMM/COMM_DQM/certification/Collisions15/13TeV/Cert_246908-260627_13TeV_PromptReco_Collisions15_25ns_JSON.txt")

good_run_lumis=json.loads(f_json.read())

for run in good_run_lumis:

    print run

    url="https://cmswbm.web.cern.ch/cmswbm/cmsdb/servlet/PrescaleChanges?RUN="+str(run)

    tables=parseURLTables(url)

    assert(len(tables) == 1)

    prescale_indices = []

    for i in range(0,len(tables[0])):
    
        table = tables[0][i]

        if i == 0:
            table=tables[0][i][6:len(table)-1]

        prescale_index = int (table[2])

        lumisection = int(table[1])
args = parser.parse_args()

f_json = open(
    "/afs/cern.ch/cms/CAF/CMSCOMM/COMM_DQM/certification/Collisions15/13TeV/Cert_246908-260627_13TeV_PromptReco_Collisions15_25ns_JSON.txt"
)

good_run_lumis = json.loads(f_json.read())

for run in good_run_lumis:

    print run

    url = "https://cmswbm.web.cern.ch/cmswbm/cmsdb/servlet/PrescaleChanges?RUN=" + str(
        run)

    tables = parseURLTables(url)

    assert (len(tables) == 1)

    prescale_indices = []

    for i in range(0, len(tables[0])):

        table = tables[0][i]

        if i == 0:
            table = tables[0][i][6:len(table) - 1]

        prescale_index = int(table[2])

        lumisection = int(table[1])
f_json=open("/afs/cern.ch/cms/CAF/CMSCOMM/COMM_DQM/certification/Collisions15/13TeV/Cert_246908-260627_13TeV_PromptReco_Collisions15_25ns_JSON.txt")

good_run_lumis=json.loads(f_json.read())

output_json = {}

for run in good_run_lumis:

    #if run != "258211":
    #    continue

    print run

    url="https://cmswbm.web.cern.ch/cmswbm/cmsdb/servlet/PrescaleChanges?RUN="+str(run)

    tables=parseURLTables(url)

    assert(len(tables) == 1)

    prescale_indices = []

    for i in range(0,len(tables[0])):
    
        table = tables[0][i]

        if i == 0:
            table=tables[0][i][6:len(table)-1]

        prescale_index = int (table[2])

        lumisection = int(table[1])