From eb6788fc38334e596d7e759049f4ebfba3d8a2a3 Mon Sep 17 00:00:00 2001 From: Giordon Stark Date: Sun, 21 Oct 2018 10:10:38 -0700 Subject: [PATCH 1/2] fix up indexing of summed_mask --- pyhf/modifiers/shapesys.py | 2 +- pyhf/modifiers/staterror.py | 12 ++++++++++-- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/pyhf/modifiers/shapesys.py b/pyhf/modifiers/shapesys.py index 1ad62485bf..9e583161aa 100644 --- a/pyhf/modifiers/shapesys.py +++ b/pyhf/modifiers/shapesys.py @@ -58,7 +58,7 @@ def __init__(self,shapesys_mods,pdfconfig,mega_mods): zero_mask = summed_mask == 0 # then apply the mask summed_mask[positive_mask] = inds - summed_mask[zero_mask] = -1 + summed_mask[zero_mask] = 0 # nb: old code above was # summed_mask[summed_mask > 0] = inds # summed_mask[summed_mask == 0] = -1 diff --git a/pyhf/modifiers/staterror.py b/pyhf/modifiers/staterror.py index 5c1ba74d0e..08130117d2 100644 --- a/pyhf/modifiers/staterror.py +++ b/pyhf/modifiers/staterror.py @@ -50,8 +50,16 @@ def __init__(self,staterr_mods,pdfconfig,mega_mods): for mask,inds in zip(staterror_mask, self._staterror_indices): summed_mask = default_backend.sum(mask[:,0,:],axis=0) assert default_backend.shape(summed_mask[summed_mask > 0]) == default_backend.shape(default_backend.astensor(inds)) - summed_mask[summed_mask > 0] = inds - summed_mask[summed_mask == 0] = -1 + # make masks of > 0 and == 0 + positive_mask = summed_mask > 0 + zero_mask = summed_mask == 0 + # then apply the mask + summed_mask[positive_mask] = inds + summed_mask[zero_mask] = 0 + # nb: old code above was + # summed_mask[summed_mask > 0] = inds + # summed_mask[summed_mask == 0] = -1 + # This code broke when the `inds` included a '0' because it would replace that value with -1. access_rows.append(summed_mask.tolist()) self._factor_access_indices = default_backend.tolist(default_backend.stack(access_rows)) self.finalize(pdfconfig) From df4926f1e5be23683b4278a964363b7182b4c3f6 Mon Sep 17 00:00:00 2001 From: Giordon Stark Date: Sun, 21 Oct 2018 11:36:50 -0700 Subject: [PATCH 2/2] [skip ci] remove comments --- pyhf/modifiers/shapesys.py | 4 ---- pyhf/modifiers/staterror.py | 4 ---- 2 files changed, 8 deletions(-) diff --git a/pyhf/modifiers/shapesys.py b/pyhf/modifiers/shapesys.py index 9e583161aa..43e2c9d44b 100644 --- a/pyhf/modifiers/shapesys.py +++ b/pyhf/modifiers/shapesys.py @@ -59,10 +59,6 @@ def __init__(self,shapesys_mods,pdfconfig,mega_mods): # then apply the mask summed_mask[positive_mask] = inds summed_mask[zero_mask] = 0 - # nb: old code above was - # summed_mask[summed_mask > 0] = inds - # summed_mask[summed_mask == 0] = -1 - # This code broke when the `inds` included a '0' because it would replace that value with -1. access_rows.append(summed_mask.tolist()) self._factor_access_indices = default_backend.tolist(default_backend.stack(access_rows)) self.finalize(pdfconfig) diff --git a/pyhf/modifiers/staterror.py b/pyhf/modifiers/staterror.py index 08130117d2..8408c0b378 100644 --- a/pyhf/modifiers/staterror.py +++ b/pyhf/modifiers/staterror.py @@ -56,10 +56,6 @@ def __init__(self,staterr_mods,pdfconfig,mega_mods): # then apply the mask summed_mask[positive_mask] = inds summed_mask[zero_mask] = 0 - # nb: old code above was - # summed_mask[summed_mask > 0] = inds - # summed_mask[summed_mask == 0] = -1 - # This code broke when the `inds` included a '0' because it would replace that value with -1. access_rows.append(summed_mask.tolist()) self._factor_access_indices = default_backend.tolist(default_backend.stack(access_rows)) self.finalize(pdfconfig)