4from .GanPipeline
import GanPipeline
5from .IsMuonEfficiency
import IsMuonEfficiency
as IsMuonEff
6from .AssignIsMuon
import AssignIsMuon
9def concat_outputs (name, algos):
10 output_tabs = [p.output_table
for p
in algos]
12 columns = set.intersection(*[
13 set(alg.output_columns).union(set(alg.references))
16 return f
"Concat{name.capitalize()}", Concatenate(name, output_tabs, columns)
19def configure_pipeline(library: str):
21 (
'MuIsMuonEff', IsMuonEff(library,
'isMuon_muon_pipe',
'tmp_ismuon_mu', 13)),
22 (
'PiIsMuonEff', IsMuonEff(library,
'isMuon_pion_pipe',
'tmp_ismuon_pi', 211)),
23 (
'KIsMuonEff', IsMuonEff(library,
'isMuon_kaon_pipe',
'tmp_ismuon_k', 321)),
24 (
'PIsMuonEff', IsMuonEff(library,
'isMuon_proton_pipe',
'tmp_ismuon_p', 2212)),
26 ismuon_pipeline.append(concat_outputs(
'ismuoneff', [a
for _, a
in ismuon_pipeline]))
27 ismuon_pipeline.append((
'AssignIsMuon', AssignIsMuon(
'ismuoneff')))
28 ismuon_tab = ismuon_pipeline[-1][1].output_table
32 GanPipeline(library,
"full_muon_pipe",
"tmp_pid_mu", 13, ismuon_tab)),
34 GanPipeline(library,
"full_pion_pipe",
"tmp_pid_pi", 211, ismuon_tab)),
36 GanPipeline(library,
"full_kaon_pipe",
"tmp_pid_k", 321, ismuon_tab)),
38 GanPipeline(library,
"full_proton_pipe",
"tmp_pid_p", 2212, ismuon_tab)),
40 gan_pipeline.append(concat_outputs(
'pid', [a
for _, a
in gan_pipeline]))
42 return ismuon_pipeline + gan_pipeline
Concatenate multiple tables.