14 flav_b_data = [e
for e
in loaded_data.entries
if e.params.jetFlavor == 0]
15 flav_b_data = sorted(flav_b_data, key=
lambda e: e.params.operatingPoint)
16 flav_b_data = sorted(flav_b_data, key=
lambda e: e.params.measurementType)
17 flav_b_data = sorted(flav_b_data, key=
lambda e: e.params.etaMin)
18 flav_b_data = sorted(flav_b_data, key=
lambda e: e.params.ptMin)
19 flav_b_data = sorted(flav_b_data, key=
lambda e: e.params.discrMin)
20 sys_groups = itertools.groupby(
22 key=
lambda e:
'%d, %s, %.02f, %.02f, %.02f' % (
23 e.params.operatingPoint,
24 e.params.measurementType,
31 def gen_entry_dict(groups):
34 entries_by_sys = dict((e.params.sysType, e)
for e
in grp)
35 assert len(grp) == len(entries_by_sys)
37 sys_dicts = gen_entry_dict(sys_groups)
39 def gen_flavb_csv_line(dicts):
41 central = d.pop(
'central')
42 central.params.jetFlavor = 1
43 yield central.makeCSVLine()
44 for e
in six.itervalues(d):
45 e.params.jetFlavor = 1
46 e.formula =
'2*(%s)-(%s)' % (e.formula, central.formula)
48 csv_lines = gen_flavb_csv_line(sys_dicts)
50 return list(l
for l
in csv_lines)