Example #1
0
def tpMap(raw={}, warn=True, book=None):
    forward = {}
    backward = {}
    skipped = []

    for fedId, d in raw.iteritems():
        if fedId is None:
            continue

        delta = matching.pipelineDelta(d["header"]["utca"])
        for block in d["htrBlocks"].values():
            for key, triggerData in block["triggerData"].iteritems():
                coords = (block["Crate"], block["Slot"], block["Top"], key)
                nSoi = sum(triggerData["SOI"])
                if warn and nSoi != 1:
                    printer.warning("iEntry %d / %s has !=1 SOIs: %s" % (raw[None]["iEntry"], coords, triggerData["SOI"]))

                if not nSoi:
                    continue

                soi = triggerData["SOI"].index(1)

                l = [soi, delta, 0, 0]
                for i, tp9 in enumerate(triggerData["TP"]):
                    fg = tp9 >> 8
                    tp8 = tp9 & 0xff
                    l.append(tp8)

                    if i == soi:
                        nBins = 14
                        book.fill(tp8, "tp_soi_fg%d_%d" % (fg, fedId), nBins, -0.5, nBins - 0.5, title="FED %d;TP E_{SOI};Trigger Towers / bin" % fedId)
                forward[coords] = l

    return forward, backward, skipped
Example #2
0
def dataMap(raw={}, book=None):
    forward = {}
    backward = {}
    skipped = []

    for fedId, d in raw.iteritems():
        if fedId is None:
            continue

        delta = matching.pipelineDelta(d["header"]["utca"])

        fiberMap = hw.fiberMap(fedId)
        for block in d["htrBlocks"].values():
            nPre = block["nPreSamples"]
            for channelData in block["channelData"].values():
                mp = channelData.get("M&P", 0)
                channel = channelData["FibCh"]
                fiber = channelData["Fiber"]
                fiber = fiberMap.get(fiber, fiber)
                coords = (block["Crate"], block["Slot"], block["Top"], fiber, channel)

                if channelData["ErrF"] not in matching.okErrF():
                    skipped.append(coords)
                    continue

                cap0 = channelData["CapId0"]
                data = tuple([nPre, delta, mp, cap0] + channelData["QIE"])
                # print coords, data
                forward[coords] = data
                backward[data] = coords
    return forward, backward, skipped
Example #3
0
def tpMap(raw={}, warn=True, book=None):
    forward = {}
    backward = {}
    skipped = []

    for fedId, d in raw.iteritems():
        if fedId is None:
            continue

        delta = matching.pipelineDelta(d["header"]["utca"])
        for block in d["htrBlocks"].values():
            for key, triggerData in block["triggerData"].iteritems():
                coords = (block["Crate"], block["Slot"], block["Top"], key)
                nSoi = sum(triggerData["SOI"])
                if warn and nSoi != 1:
                    printer.warning(
                        "iEntry %d / %s has !=1 SOIs: %s" %
                        (raw[None]["iEntry"], coords, triggerData["SOI"]))

                if not nSoi:
                    continue

                soi = triggerData["SOI"].index(1)

                l = [soi, delta, 0, 0]
                for i, tp9 in enumerate(triggerData["TP"]):
                    fg = tp9 >> 8
                    tp8 = tp9 & 0xff
                    l.append(tp8)

                    if i == soi:
                        nBins = 14
                        book.fill(
                            tp8,
                            "tp_soi_fg%d_%d" % (fg, fedId),
                            nBins,
                            -0.5,
                            nBins - 0.5,
                            title="FED %d;TP E_{SOI};Trigger Towers / bin" %
                            fedId)
                forward[coords] = l

    return forward, backward, skipped