Closed DavidMStraub closed 5 years ago
Correction: this was not yet released in 1.6 but is just part of master, fortunately.
@dvandyk @MartinJung1978
When implementing your new CLN form factors, something went terribly wrong. While @dvandyk and I carefully wrote a unit test and made it pass, so I'm very confident the implementation is correct, it seems the parameters are totally off. Indeed changing back to the old (2018) parameters the FFs are sane again.
So it seems something went wrong when translating the samples to parameter values. I do assume them to be a multivariate Gaussian, but I doubt this is the problem. I rather suspect that some parameters are interchanged. Can you please help us debug this?
This is the notebook I used to translate your samples to flavio parameters: https://gist.github.com/DavidMStraub/778f8acc2261733b4aeeb21531e85195 then copied to here: https://github.com/flav-io/flavio/blob/1fefe2161be7c3ca4a21614378ade0fe2eaccc9f/flavio/data/parameters_correlated.yml#L406-L454
Thanks in advance.
Hi @DavidMStraub
your "central" values are very different from the best fit point shown in table II of the paper by Martin, Marzia and me. In particular your values for CLN c_xi
and to less extent CLN xi3
are numerically important.
Could you try set the central values as follows:
CLN c_xi 0.94
CLN xi3 -3.29
Contrary to you, I surmise that your assumption of Gaussian uncertainties is probably what causes the difference...
In addition, here is the list of parameters in order from my fit script:
--scan B(*)->D(*)::xi'(1)@HQET -2.5000e+00 -0.5000e+00 --prior flat
--scan B(*)->D(*)::xi''(1)@HQET 0.5000e+00 +5.5000e+00 --prior flat
--scan B(*)->D(*)::xi'''(1)@HQET -1.2000e+01 +0.5000e+00 --prior flat
--fix B(*)->D(*)::xi''''(1)@HQET 0.0
--fix B(*)->D(*)::xi'''''(1)@HQET 0.0
--scan B(*)->D(*)::chi_2(1)@HQET -3.0000e-01 +3.0000e-01 --prior flat
--scan B(*)->D(*)::chi_2'(1)@HQET -7.5000e-02 +7.5000e-02 --prior flat
--scan B(*)->D(*)::chi_2''(1)@HQET -1.0000e+00 +1.0000e+00 --prior flat
--scan B(*)->D(*)::chi_3'(1)@HQET -3.0000e-01 +3.0000e-01 --prior flat
--scan B(*)->D(*)::chi_3''(1)@HQET -1.0000e+00 +1.0000e+00 --prior flat
--scan B(*)->D(*)::eta(1)@HQET -0.5000e+00 +1.5000e+00 --prior flat
--scan B(*)->D(*)::eta'(1)@HQET -7.5000e-01 +7.5000e-01 --prior flat
--scan B(*)->D(*)::eta''(1)@HQET -2.0000e+00 +3.0000e+00 --prior flat
--scan B(*)->D(*)::l_1(1)@HQET -2.0000e+01 +2.0000e+01 --prior flat
--scan B(*)->D(*)::l_1'(1)@HQET -3.0000e+01 +3.0000e+01 --prior flat
--scan B(*)->D(*)::l_2(1)@HQET -2.0000e+01 +2.0000e+01 --prior flat
--scan B(*)->D(*)::l_2'(1)@HQET -3.0000e+01 +3.0000e+01 --prior flat
--scan B(*)->D(*)::l_3(1)@HQET -2.0000e+01 +2.0000e+01 --prior flat
--scan B(*)->D(*)::l_3'(1)@HQET -3.0000e+01 +3.0000e+01 --prior flat
--scan B(*)->D(*)::l_4(1)@HQET -2.0000e+01 +2.0000e+01 --prior flat
--scan B(*)->D(*)::l_4'(1)@HQET -3.0000e+01 +3.0000e+01 --prior flat
--scan B(*)->D(*)::l_5(1)@HQET -2.0000e+01 +2.0000e+01 --prior flat
--scan B(*)->D(*)::l_5'(1)@HQET -3.0000e+01 +3.0000e+01 --prior flat
--scan B(*)->D(*)::l_6(1)@HQET -2.0000e+01 +2.0000e+01 --prior flat
--scan B(*)->D(*)::l_6'(1)@HQET -3.0000e+01 +3.0000e+01 --prior flat
Sorry for the piecemeal replies. I just had a chance to compare the lists. The order seems to be fine, so interchanging parameters seems not likely.
And it's not by any chance rho2 vs -xi' or c vs x''/2 I guess?
Just making sure... M.
Danny van Dyk notifications@github.com schrieb am Mo., 18. Nov. 2019, 13:49:
Sorry for the piecemeal replies. I just had a chance to compare the lists. The order seems to be fine, so interchanging parameters seems not likely.
— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/flav-io/flavio/issues/96?email_source=notifications&email_token=AFRTFT7Y4WXLTSQCW5SSRL3QUKFPBA5CNFSM4JOKCTQ2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEEKKNSI#issuecomment-555001545, or unsubscribe https://github.com/notifications/unsubscribe-auth/AFRTFT2FESTPEGXRFLPYKKLQUKFPBANCNFSM4JOKCTQQ .
Contrary to you, I surmise that your assumption of Gaussian uncertainties is probably what causes the difference...
If it's true that taking the mean of each parameter from the samples gives a form factor that is off by a factor of 2-3, that would be quite worrisome, wouldn't it?
And it's not by any chance rho2 vs -xi' or c vs x''/2 I guess?
Possible; I did this in the notebook to account for it:
data = samples[:,:23]
data[:, 0] = -data[:, 0] # xi' -> rho
data[:, 1] = 1/2 * data[:, 1] # xi'' -> c
Correct?
Contrary to you, I surmise that your assumption of Gaussian uncertainties is probably what causes the difference...
If it's true that taking the mean of each parameter from the samples gives a form factor that is off by a factor of 2-3, that would be quite worrisome, wouldn't it?
David, this is not worrisome but rather expected, due to the role of the unitarity bound in the fit. It leads to a strongly non-gaussian posterior, which we emphasized also in the paper:
Uncertainty ranges presented here are meant for illustrative purpose only, and should not be interpreted as standard deviations due to non-Gaussianity of the joint posterior.
I'm talking about central values, not uncertainties...
Hi everyone,
this is not my place to speak but we had faced a similar problem in HEPfit in another context. As Danny pointed out, non-Gaussianity can lead to this problem, even more so if the parameters are correlated. The way to see this is that the means taken from the distributions of a set of parameters are not a correlated set. In the case of non-Gaussian distributions this can be made even worse leading to un-realistic values of the function.
In our famous h_lambda parameterization, if one takes the means of the distributions of the 16 parameters one will get a value of the branching fraction that will be very far from the fit value since the h_lambda set has a non-Gaussian distribution and is highly correlated.
hope this helps, ciao Ayan
On Nov 18, 2019, at 18:50, David Straub notifications@github.com wrote:
Contrary to you, I surmise that your assumption of Gaussian uncertainties is probably what causes the difference...
If it's true that taking the mean of each parameter from the samples gives a form factor that is off by a factor of 2-3, that would be quite worrisome, wouldn't it?
— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/flav-io/flavio/issues/96?email_source=notifications&email_token=AARPQ23AAWKBT7LHK3S6NI3QUKJBPA5CNFSM4JOKCTQ2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEEKM6BQ#issuecomment-555011846, or unsubscribe https://github.com/notifications/unsubscribe-auth/AARPQ2436ZY3IW6IHZQJJM3QUKJBPANCNFSM4JOKCTQQ.
-- Ayan Paul
Office:
DESY, Hamburg &
Institut für Physik, Humboldt Universität zu Berlin
Newtonstrße 15
12489 Berlin, Germany
Ph: (+49) 030 2093-7877
Residence:
Weichselstraße 31 Vod. 2 OG. Mitte 10247 Berlin, BE Germany Ph: (+39) 33480 94805
I'm talking about central values, not uncertainties...
David, the best-fit point stays as it is. It's just the for non-gaussian posterior the mean and the mode of the distribution do not coincide anymore. So using the mean (as the average value) will take you far away from the mode (the most likely value).
Hi,
And it's not by any chance rho2 vs -xi' or c vs x''/2 I guess?
Possible; I did this in the notebook https://gist.github.com/DavidMStraub/778f8acc2261733b4aeeb21531e85195 to account for it:
data= samples[:,:23] data[:,0]= -data[:,0]# xi' -> rho data[:,1]= 1/2 * data[:,1]# xi'' -> c
Since I don't know which side of data[:, 1] is xi'' and which is c, it's either correct or introduces a factor 4 :-)
The relation should be 1/2 xi''(1) = c.
M.
Correct?
— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/flav-io/flavio/issues/96?email_source=notifications&email_token=AFRTFT4FQ53G4ZTEFJC3SEDQUKJRHA5CNFSM4JOKCTQ2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEEKNLFQ#issuecomment-555013526, or unsubscribe https://github.com/notifications/unsubscribe-auth/AFRTFTYJGGBM5BRQA6DWRNTQUKJRHANCNFSM4JOKCTQQ.
--
Martin Jung Dipartimento di Fisica Università degli Studi di Torino
@dvandyk @talismanbrandi
Look at these plots: https://gist.github.com/DavidMStraub/daf2cf5bedcd7b3637e235bf19e328ea
These looks pretty darn Gaussian.
No way the huge discrepancy I'm seeing has to do with that. It's probably some other stupid bug.
The relation should be 1/2 xi''(1) = c.
Then it's correct :wink: LHS is c, RHS is your data (xi'')
Comparing https://gist.github.com/DavidMStraub/daf2cf5bedcd7b3637e235bf19e328ea to https://gist.github.com/DavidMStraub/778f8acc2261733b4aeeb21531e85195 and table II in https://arxiv.org/pdf/1908.09398.pdf, it seems to me that the xi' -> rho
and xi'' -> c
transformations have been applied twice in https://gist.github.com/DavidMStraub/778f8acc2261733b4aeeb21531e85195, leading to a too small value of c_xi
by a factor of 2 and a different sign for rho
.
However, if rho = - xi'
, rho should be -1 according to table II in https://arxiv.org/pdf/1908.09398.pdf. Why is the parameter called CLN rho2_xi
? is rho2
the square of rho
?
Sorry, no, if rho = - xi'
, rho
should be roughly +1 (I looked at f(1) instead of f'(1)). So all the values in https://gist.github.com/DavidMStraub/daf2cf5bedcd7b3637e235bf19e328ea seem to be fine while CLN rho2_xi
and CLN c_xi
in https://gist.github.com/DavidMStraub/778f8acc2261733b4aeeb21531e85195 seem to be wrong.
And there it is, the stupid bug! :rocket: Thanks @peterstangl :1st_place_medal:
(BTW the parameter is called rho^2 and it should be rho^2=-xi' IIRC)
data = samples[:,:23]
data[:, 0] = -data[:, 0] # xi' -> rho
data[:, 1] = 1/2 * data[:, 1] # xi'' -> c
This is actually a bit dangerous. I think in interactive sessions one should always copy the data before applying such transformations:
data = samples[:,:23].copy()
data[:, 0] = -data[:, 0] # xi' -> rho
data[:, 1] = 1/2 * data[:, 1] # xi'' -> c
Just as a general comment on how to avoid these kinds of bugs :wink:
Interesting bug!
@peterstangl indeed that's the pit I fell into.
I confirm that this solves the issue.
Let's keep this open until we've added a unit test to prevent such things in the future (we could for instance check whether the sqrt of experiment/(theory/Vcb^2) is between 0.035 and 0.045 or so).
The new form factors introduced in v1.6 must have some problem - the B->D*lnu branching ratio is too large by a factor of 4!