def getSystDict(cardFnames, region, sig = "", lep = "lep", uncert = "default"):
    yields = {}
    for cardFname in cardFnames:
        binname = os.path.basename(cardFname)
        binname = binname.replace('.merge.root','')
        tfile = TFile(cardFname,"READ")
        if 'Scan' in sig:
            sampleDict = getScanYieldDict(tfile, sig ,region, lep)

            if type(uncert) == float:
                sampleDict.update({key: ( uncert, 0)  for key in sampleDict.keys() } )
            
            yields[binname] = sampleDict


        else:
            tfile.cd(region)
            dirList = gDirectory.GetListOfKeys()
            sourceYield = {}

            for k1 in dirList:
                h1 = k1.ReadObj().GetName()
                
                (yd, yerr)  = getYield(tfile, h1, region, (lep,'sele'))
                if type(uncert) == float:
                    sourceYield[h1] = (uncert , 0)

                yields[binname] = sourceYield
    return yields
示例#2
0
def getSystDict(cardFnames, region, sig="", lep="lep", uncert="default"):
    yields = {}
    for cardFname in cardFnames:
        binname = os.path.basename(cardFname)
        binname = binname.replace('.merge.root', '')
        tfile = TFile(cardFname, "READ")
        if 'Scan' in sig:
            sampleDict = getScanYieldDict(tfile, sig, region, lep)

            if type(uncert) == float:
                sampleDict.update(
                    {key: (uncert, 0)
                     for key in sampleDict.keys()})

            yields[binname] = sampleDict

        else:
            tfile.cd(region)
            dirList = gDirectory.GetListOfKeys()
            sourceYield = {}

            for k1 in dirList:
                h1 = k1.ReadObj().GetName()

                (yd, yerr) = getYield(tfile, h1, region, (lep, 'sele'))
                if type(uncert) == float:
                    sourceYield[h1] = (uncert, 0)

                yields[binname] = sourceYield
    return yields
def getYieldDict(cardFnames, region, sig = "", lep = "lep"):
    print "getting dict", sig
    yields = {}
    for cardFname in cardFnames:
        binname = os.path.basename(cardFname)
        binname = binname.replace('.merge.root','')
        tfile = TFile(cardFname,"READ")
        if 'Scan' in sig:
            yields[binname] = getScanYieldDict(tfile, sig ,region, lep)
            
        else:
            tfile.cd(region)
            dirList = gDirectory.GetListOfKeys()
            sourceYield = {}

            for k1 in dirList:
                print k1, k1.ReadObj().GetName()
                if 'Name' in k1.ReadObj().GetName() or 'name' in k1.ReadObj().GetName(): continue
                h1 = k1.ReadObj().GetName()
                
                (yd, yerr)  = getYield(tfile, h1, region, (lep,'sele'))
                if 'dummy' in sig:
                    sourceYield[h1] = (0.3, 0)
                else:
                    sourceYield[h1] = (yd, yerr)
                yields[binname] = sourceYield
    return yields
示例#4
0
def getYieldDict(cardFnames, region, sig="", lep="lep"):
    print "getting dict", sig
    yields = {}
    for cardFname in cardFnames:
        binname = os.path.basename(cardFname)
        binname = binname.replace('.merge.root', '')
        tfile = TFile(cardFname, "READ")
        if 'Scan' in sig:
            yields[binname] = getScanYieldDict(tfile, sig, region, lep)

        else:
            tfile.cd(region)
            dirList = gDirectory.GetListOfKeys()
            sourceYield = {}

            for k1 in dirList:
                print k1, k1.ReadObj().GetName()
                if 'Name' in k1.ReadObj().GetName() or 'name' in k1.ReadObj(
                ).GetName():
                    continue
                h1 = k1.ReadObj().GetName()

                (yd, yerr) = getYield(tfile, h1, region, (lep, 'sele'))
                if 'dummy' in sig:
                    sourceYield[h1] = (0.3, 0)
                else:
                    sourceYield[h1] = (yd, yerr)
                yields[binname] = sourceYield
    return yields