From e4f65a7d02e5e5dbe5286b6c4cad9009ec3de151 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sinclert=20P=C3=A9rez?= Date: Fri, 22 Oct 2021 17:27:19 -0400 Subject: [PATCH 1/2] Fix LHE interface observable parsing --- madminer/utils/interfaces/lhe.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/madminer/utils/interfaces/lhe.py b/madminer/utils/interfaces/lhe.py index 0504c3fdb..36fa56724 100644 --- a/madminer/utils/interfaces/lhe.py +++ b/madminer/utils/interfaces/lhe.py @@ -407,6 +407,7 @@ def _parse_observations(observables: Dict[str, Observable], variables: Dict[str, for name, observable in observables.items(): definition = observable.val_expression default = observable.val_default + required = observable.is_required try: if isinstance(definition, str): @@ -422,7 +423,7 @@ def _parse_observations(observables: Dict[str, Observable], variables: Dict[str, else: raise TypeError("Not a valid observable") except (IndexError, NameError, RuntimeError, SyntaxError, TypeError, ZeroDivisionError): - passed_all = False + passed_all = False if required else True value = default if default is not None else np.nan finally: observations.append(value) From a965994dba48fcc15a24541715632ae985626c61 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sinclert=20P=C3=A9rez?= Date: Fri, 22 Oct 2021 17:35:18 -0400 Subject: [PATCH 2/2] Fix LHE interface cut parsing --- madminer/utils/interfaces/lhe.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/madminer/utils/interfaces/lhe.py b/madminer/utils/interfaces/lhe.py index 36fa56724..bacc5c94b 100644 --- a/madminer/utils/interfaces/lhe.py +++ b/madminer/utils/interfaces/lhe.py @@ -475,8 +475,11 @@ def _parse_cuts(cuts, fail_cuts, observables, observations, pass_all_cuts, pass_ # Check cuts for i_cut, cut in enumerate(cuts): + definition = cut.val_expression + required = cut.is_required + try: - cut_result = eval(cut, variables) + cut_result = eval(definition, variables) if cut_result: pass_cuts[i_cut] += 1 else: @@ -484,7 +487,7 @@ def _parse_cuts(cuts, fail_cuts, observables, observations, pass_all_cuts, pass_ pass_all_cuts = False except (SyntaxError, NameError, TypeError, ZeroDivisionError, IndexError): - if cut.is_required: + if required: pass_cuts[i_cut] += 1 else: fail_cuts[i_cut] += 1