Currently, there are no checks in PyFBU whether user correctly specified backgrounds and their corresponding normalization uncertainties. Specifically, it may naively seem to the user that if one specifies background A in pyFBU.backgrounds but omits A from the background normalization syst dictionary pyFBU.backgroundsyst, that normalization uncertainty will be set to zero.
This assumption is wrong, since PyFBU actually builds the backgrounds in likelihood using the keys from the background normalization uncertainties dictionary:
backgroundkeys = self.backgroundsyst.keys()
So omitting a background normalization uncertainty key from the dictionary will cause this background to be silently dropped from the likelihood completely.
I would propose a (IMHO transparent) solution to compare the keys in pyFBU.backgrounds and pyFBU.backgroundsyst and print some error message to the user if these are not identical.
Currently, there are no checks in PyFBU whether user correctly specified backgrounds and their corresponding normalization uncertainties. Specifically, it may naively seem to the user that if one specifies background
A
inpyFBU.backgrounds
but omitsA
from the background normalization syst dictionarypyFBU.backgroundsyst
, that normalization uncertainty will be set to zero. This assumption is wrong, since PyFBU actually builds the backgrounds in likelihood using the keys from the background normalization uncertainties dictionary:backgroundkeys = self.backgroundsyst.keys()
So omitting a background normalization uncertainty key from the dictionary will cause this background to be silently dropped from the likelihood completely.I would propose a (IMHO transparent) solution to compare the keys in
pyFBU.backgrounds
andpyFBU.backgroundsyst
and print some error message to the user if these are not identical.