Skip to content

Commit 4662ad9

Browse files
authored
Merge pull request #380 from anpicci/add-private-helpers-and-refactor-loops
Refactor year filter helpers in fake tau fitter
2 parents 36a2dda + fe32326 commit 4662ad9

File tree

1 file changed

+28
-14
lines changed

1 file changed

+28
-14
lines changed

analysis/topeft_run2/faketau_sf_fitter.py

Lines changed: 28 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -214,6 +214,28 @@ def _integrate_tau_channels(histogram, channels):
214214
return histogram.integrate("channel", channels)[{"channel": sum}]
215215

216216

217+
def _extend_unique(target, values):
218+
"""Append values to target while preserving order and avoiding duplicates."""
219+
220+
if not values:
221+
return target
222+
223+
for value in values:
224+
if value not in target:
225+
target.append(value)
226+
return target
227+
228+
229+
def _prune_tokens(target, forbidden):
230+
"""Return a list excluding forbidden tokens while preserving order."""
231+
232+
if not forbidden:
233+
return list(target)
234+
235+
forbidden_set = set(forbidden)
236+
return [token for token in target if token not in forbidden_set]
237+
238+
217239
def _resolve_year_filters(year_args):
218240
"""Normalise CLI year arguments and build per-sample filter lists."""
219241

@@ -248,26 +270,18 @@ def _resolve_year_filters(year_args):
248270
rules = YEAR_TOKEN_RULES[cleaned]
249271

250272
mc_wl_values = rules.get("mc_wl", [])
251-
for value in mc_wl_values:
252-
if value not in mc_wl:
253-
mc_wl.append(value)
254-
mc_bl = [value for value in mc_bl if value not in mc_wl_values]
273+
_extend_unique(mc_wl, mc_wl_values)
274+
mc_bl = _prune_tokens(mc_bl, mc_wl_values)
255275

256276
mc_bl_values = rules.get("mc_bl", [])
257-
for value in mc_bl_values:
258-
if value not in mc_bl:
259-
mc_bl.append(value)
277+
_extend_unique(mc_bl, mc_bl_values)
260278

261279
data_wl_values = rules.get("data_wl", [])
262-
for value in data_wl_values:
263-
if value not in data_wl:
264-
data_wl.append(value)
265-
data_bl = [value for value in data_bl if value not in data_wl_values]
280+
_extend_unique(data_wl, data_wl_values)
281+
data_bl = _prune_tokens(data_bl, data_wl_values)
266282

267283
data_bl_values = rules.get("data_bl", [])
268-
for value in data_bl_values:
269-
if value not in data_bl:
270-
data_bl.append(value)
284+
_extend_unique(data_bl, data_bl_values)
271285

272286
normalized.append(cleaned)
273287
seen.add(cleaned)

0 commit comments

Comments
 (0)