def doit(fn, mass_name, dir_name, tree_name, cut):
    f = ROOT.TFile(fn)
    t = f.Get(dir_name).Get(tree_name)
    rlem = detree(t, 'run:lumi:event:' + mass_name, cut, lambda x: (int(x[0]), int(x[1]), int(x[2]), float(x[3])))
    me = defaultdict(list)
    for r,l,e,m in rlem:
        me[(r,l,e)].append(m)
    return me
Ejemplo n.º 2
0
def doit(fn, mass_name, dir_name, tree_name, cut):
    f = ROOT.TFile(fn)
    t = f.Get(dir_name).Get(tree_name)
    rlem = detree(t, 'run:lumi:event:' + mass_name, cut, lambda x:
                  (int(x[0]), int(x[1]), int(x[2]), float(x[3])))
    me = defaultdict(list)
    for r, l, e, m in rlem:
        me[(r, l, e)].append(m)
    return me
#####run with python GetPrescalesAnalyzer.py zp2mu_histos_prescale.root Mu24eta2p1
import os, sys
from collections import defaultdict
from pprint import pprint
from SUSYBSMAnalysis.Zprime2muAnalysis.roottools import ROOT, detree

print sys.argv

f = ROOT.TFile(sys.argv[1])
t = f.Get('%s/t' % sys.argv[2])
print t.GetEntriesFast(), 'entries in tree'

de = defaultdict(list)
dp = defaultdict(list)

for (run, lumi, event, l1, hlt) in detree(t, 'run:lumi:event:l1:hlt'):
    de[(run, lumi)].append(event)
    dp[(run, lumi)].append((l1, hlt))

for k, v in de.iteritems():
    assert len(v) == len(set(v))

for k, v in dp.iteritems():
    if len(set(v)) != 1:
        print 'run/LS %s with %i events has multiple prescale values: %s' % (
            k, len(de[k]), sorted(set(v)))

lscounts = defaultdict(int)
evcounts = defaultdict(int)
uniq = set()
for v in dp.itervalues():
import os, sys
from collections import defaultdict
from pprint import pprint
from SUSYBSMAnalysis.Zprime2muAnalysis.roottools import ROOT, detree

print sys.argv

f = ROOT.TFile(sys.argv[1])
t = f.Get('%s/t' % sys.argv[2])
print t.GetEntriesFast(), 'entries in tree'

de = defaultdict(list)
dp = defaultdict(list)

for (run, lumi, event, l1, hlt) in detree(t, 'run:lumi:event:l1:hlt'):
    de[(run, lumi)].append(event)
    dp[(run, lumi)].append((l1,hlt))

for k,v in de.iteritems():
    assert len(v) == len(set(v))

for k,v in dp.iteritems():
    if len(set(v)) != 1:
        print 'run/LS %s with %i events has multiple prescale values: %s' % (k, len(de[k]), sorted(set(v)))

lscounts = defaultdict(int)
evcounts = defaultdict(int)
uniq = set()
for v in dp.itervalues():
    uniq.update(v)