Пример #1
0
def addEffs(table):
    eff = counter.counterEfficiency(table)
    colnames = eff.getColumnNames()
    mapping = {}
    for n in colnames:
        mapping[n] = n + "_eff"
    eff.renameColumns(mapping)

    for icol in xrange(0, eff.getNcolumns()):
        table.insertColumn(2 * icol + 1, eff.getColumn(icol))
def addEffs(table):
    eff = counter.counterEfficiency(table)
    colnames = eff.getColumnNames()
    mapping = {}
    for n in colnames:
        mapping[n] = n+"_eff"
    eff.renameColumns(mapping)

    for icol in xrange(0, eff.getNcolumns()):
        table.insertColumn(2*icol+1, eff.getColumn(icol))
Пример #3
0
def main(opts):
    datasets = None
    if len(opts.files) > 0:
        datasets = dataset.getDatasetsFromRootFiles( [(x,x) for x in opts.files], counters=opts.counterdir)
    else:
        datasets = dataset.getDatasetsFromMulticrabCfg(opts=opts, counters=opts.counterdir)

    if os.path.exists(opts.lumifile):
        datasets.loadLuminosities(opts.lumifile)

    if opts.mergeData:
        datasets.mergeData()

    counters = opts.counterdir
    if opts.weighted:
        counters += "/weighted"
    eventCounter = counter.EventCounter(datasets, counters=counters)
    

    print "============================================================"
    if opts.printInfo:
        print "Dataset info: "
        datasets.printInfo()
        print

    quantity = "events"
    if opts.mode == "events":
        pass
    elif opts.mode in ["xsect", "xsection", "crosssection", "crossSection", "eff"]:
        eventCounter.normalizeMCByCrossSection()
        quantity = "MC by cross section, data by events"
    else:
        print "Printing mode '%s' doesn't exist! The following ones are available 'events', 'xsect', 'eff'" % opts.mode
        return 1

    cellFormat = counter.CellFormatText(valueOnly=opts.valueOnly, valueFormat=opts.format)
    formatFunc = lambda table: table.format(counter.TableFormatText(cellFormat))
    csvSplitter = counter.TableSplitter([" +- ", " +", " -"])
    if opts.csv:
        formatFunc = lambda table: table.format(counter.TableFormatText(cellFormat, columnSeparator=","), csvSplitter)
    if opts.mode == "eff":
        cellFormat = counter.CellFormatText(valueFormat="%.4f", valueOnly=opts.valueOnly)
        formatFunc = lambda table: counter.counterEfficiency(table).format(counter.TableFormatText(cellFormat))
        quantity = "Cut efficiencies"
        if opts.csv:
            formatFunc = lambda table: counter.counterEfficiency(table).format(counter.TableFormatText(cellFormat, columnSeparator=","), csvSplitter)

    print "============================================================"
    print "Main counter %s: " % quantity
    print formatFunc(eventCounter.getMainCounterTable())
    print 

    if not opts.mainCounterOnly:
        names = eventCounter.getSubCounterNames()
        names.sort()
        for name in names:
            print "============================================================"
            print "Subcounter %s %s: " % (name, quantity)
            print formatFunc(eventCounter.getSubCounterTable(name))
            print

    # print

    return 0