Open
Description
Summary
Consider this model. It applies two normfactors
, one called mu and one called mu2, so the signal channel is scaled signal *= mu * mu2
.
{
"channels": [
{ "name": "singlechannel",
"samples": [
{ "name": "signal",
"data": [5.0, 10.0],
"modifiers": [ { "name": "mu", "type": "normfactor", "data": null}, { "name": "mu2", "type": "normfactor", "data": null} ]
}
]
}
],
"observations": [
{ "name": "singlechannel", "data": [50.0, 60.0] }
],
"measurements": [
{ "name": "Measurement", "config": {"poi": "mu", "parameters": [{ "name":"mu", "fixed": false}]} }
],
"version": "1.0.0"
}
Now consider correlating them by giving them the same name,
{
"channels": [
{ "name": "singlechannel",
"samples": [
{ "name": "signal",
"data": [5.0, 10.0],
"modifiers": [ { "name": "mu", "type": "normfactor", "data": null}, { "name": "mu", "type": "normfactor", "data": null} ]
}
]
}
],
"observations": [
{ "name": "singlechannel", "data": [50.0, 60.0] }
],
"measurements": [
{ "name": "Measurement", "config": {"poi": "mu", "parameters": [{ "name":"mu", "fixed": false}]} }
],
"version": "1.0.0"
}
In this case, we just get signal *= mu
, I expected signal *= mu * mu
.
I guess that inside some dictionary somewhere, the second mu just overwrites the first one.
OS / Environment
PRETTY_NAME="Ubuntu 23.10"
NAME="Ubuntu"
VERSION_ID="23.10"
VERSION="23.10 (Mantic Minotaur)"
VERSION_CODENAME=mantic
ID=ubuntu
ID_LIKE=debian
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
UBUNTU_CODENAME=mantic
LOGO=ubuntu-logo
Steps to Reproduce
{
"channels": [
{ "name": "singlechannel",
"samples": [
{ "name": "signal",
"data": [5.0, 10.0],
"modifiers": [ { "name": "mu", "type": "normfactor", "data": null}, { "name": "mu", "type": "normfactor", "data": null} ]
}
]
}
],
"observations": [
{ "name": "singlechannel", "data": [50.0, 60.0] }
],
"measurements": [
{ "name": "Measurement", "config": {"poi": "mu", "parameters": [{ "name":"mu", "fixed": false}]} }
],
"version": "1.0.0"
}
File Upload (optional)
No response
Expected Results
In this case, we just get signal *= mu
, I expected signal *= mu * mu
, or alternatively warning/exception that the model was not correctly specified & and that the second mu would be ignored.
Actual Results
The mu gets applied just once.
pyhf Version
pyhf, version 0.7.6
Code of Conduct
- I agree to follow the Code of Conduct