diff --git a/flavio/data/config.yml b/flavio/data/config.yml index a472119e..1f9fd18d 100644 --- a/flavio/data/config.yml +++ b/flavio/data/config.yml @@ -133,9 +133,9 @@ implementation: Bs->K*0ll spectator scattering: Bs->K*0ll QCDF interpolated # B->Vll subleading hadronic effects - B0->K*0ll subleading effects at low q2: B0->K*0ll deltaC7, 7p polynomial - B+->K*+ll subleading effects at low q2: B+->K*+ll deltaC7, 7p polynomial - Bs->phill subleading effects at low q2: Bs->phill deltaC7, 7p polynomial + B0->K*0ll subleading effects at low q2: B0->K*0ll delta_C7, 7p polynomial + B+->K*+ll subleading effects at low q2: B+->K*+ll delta_C7, 7p polynomial + Bs->phill subleading effects at low q2: Bs->phill delta_C7, 7p polynomial B0->K*0ll subleading effects at high q2: B0->K*0ll deltaC9 shift B+->K*+ll subleading effects at high q2: B+->K*+ll deltaC9 shift Bs->phill subleading effects at high q2: Bs->phill deltaC9 shift diff --git a/flavio/data/parameters_correlated.yml b/flavio/data/parameters_correlated.yml index 70605cbd..0329848a 100644 --- a/flavio/data/parameters_correlated.yml +++ b/flavio/data/parameters_correlated.yml @@ -104,88 +104,93 @@ correlation: 0.99 # Subleading hadronic effects in B->Vll +# New convention (flavio v2.7): delta_C7 = (a + b*q2/mB^2) * mB/(2*mb) +# Rescaling from old (deltaC7 = a + b*q2) convention uses: +# mb(4.8 GeV) = 4.094 GeV, m_B0 = 5.280 GeV, m_B+ = 5.279 GeV, m_Bs = 5.367 GeV +# a params: old * 2*mb/mB (B0/B+: 1.551, Bs: 1.526) +# b params: old * 2*mb*mB (B0/B+: 43.23, Bs: 43.95) - values: - - B0->K*0 deltaC7 a_0 Re: 0 ± 0.12 - - B+->K*+ deltaC7 a_0 Re: 0 ± 0.12 - - Bs->phi deltaC7 a_0 Re: 0 ± 0.12 + - B0->K*0 delta_C7 a_0 Re: 0 ± 0.186 # 0.12 * 1.551 + - B+->K*+ delta_C7 a_0 Re: 0 ± 0.186 # 0.12 * 1.551 + - Bs->phi delta_C7 a_0 Re: 0 ± 0.183 # 0.12 * 1.526 correlation: [[1, 0.99, 0.9], [1, 0.9], [1]] # B+/B0 correlation is 99%, B0/Bs is 90% - values: - - B0->K*0 deltaC7 b_0 Re: 0 ± 0.05 - - B+->K*+ deltaC7 b_0 Re: 0 ± 0.05 - - Bs->phi deltaC7 b_0 Re: 0 ± 0.05 + - B0->K*0 delta_C7 b_0 Re: 0 ± 2.16 # 0.05 * 43.23 + - B+->K*+ delta_C7 b_0 Re: 0 ± 2.16 # 0.05 * 43.23 + - Bs->phi delta_C7 b_0 Re: 0 ± 2.20 # 0.05 * 43.95 correlation: [[1, 0.99, 0.9], [1, 0.9], [1]] # B+/B0 correlation is 99%, B0/Bs is 90% - values: - - B0->K*0 deltaC7p a_+ Re: 0 ± 0.004 - - B+->K*+ deltaC7p a_+ Re: 0 ± 0.004 - - Bs->phi deltaC7p a_+ Re: 0 ± 0.004 + - B0->K*0 delta_C7p a_+ Re: 0 ± 0.006 # 0.004 * 1.551 + - B+->K*+ delta_C7p a_+ Re: 0 ± 0.006 # 0.004 * 1.551 + - Bs->phi delta_C7p a_+ Re: 0 ± 0.006 # 0.004 * 1.526 correlation: [[1, 0.99, 0.9], [1, 0.9], [1]] # B+/B0 correlation is 99%, B0/Bs is 90% - values: - - B0->K*0 deltaC7p b_+ Re: 0 ± 0.005 - - B+->K*+ deltaC7p b_+ Re: 0 ± 0.005 - - Bs->phi deltaC7p b_+ Re: 0 ± 0.005 + - B0->K*0 delta_C7p b_+ Re: 0 ± 0.216 # 0.005 * 43.23 + - B+->K*+ delta_C7p b_+ Re: 0 ± 0.216 # 0.005 * 43.23 + - Bs->phi delta_C7p b_+ Re: 0 ± 0.220 # 0.005 * 43.95 correlation: [[1, 0.99, 0.9], [1, 0.9], [1]] # B+/B0 correlation is 99%, B0/Bs is 90% - - values: - - B0->K*0 deltaC7 a_- Re: 0 ± 0.015 # see eq. (26) of arXiv:1503.05534v1 - - B+->K*+ deltaC7 a_- Re: 0 ± 0.015 - - Bs->phi deltaC7 a_- Re: 0 ± 0.015 + values: # see eq. (26) of arXiv:1503.05534v1 + - B0->K*0 delta_C7 a_- Re: 0 ± 0.023 # 0.015 * 1.551 + - B+->K*+ delta_C7 a_- Re: 0 ± 0.023 # 0.015 * 1.551 + - Bs->phi delta_C7 a_- Re: 0 ± 0.023 # 0.015 * 1.526 correlation: [[1, 0.99, 0.9], [1, 0.9], [1]] # B+/B0 correlation is 99%, B0/Bs is 90% - - values: - - B0->K*0 deltaC7 b_- Re: 0 ± 0.01 # see eq. (26) of arXiv:1503.05534v1 - - B+->K*+ deltaC7 b_- Re: 0 ± 0.01 - - Bs->phi deltaC7 b_- Re: 0 ± 0.01 + values: # see eq. (26) of arXiv:1503.05534v1 + - B0->K*0 delta_C7 b_- Re: 0 ± 0.432 # 0.01 * 43.23 + - B+->K*+ delta_C7 b_- Re: 0 ± 0.432 # 0.01 * 43.23 + - Bs->phi delta_C7 b_- Re: 0 ± 0.440 # 0.01 * 43.95 correlation: [[1, 0.99, 0.9], [1, 0.9], [1]] # B+/B0 correlation is 99%, B0/Bs is 90% - - values: - - B0->K*0 deltaC7 a_0 Im: 0 ± 0.12 # see eq. (26) of arXiv:1503.05534v1 - - B+->K*+ deltaC7 a_0 Im: 0 ± 0.12 - - Bs->phi deltaC7 a_0 Im: 0 ± 0.12 + values: # see eq. (26) of arXiv:1503.05534v1 + - B0->K*0 delta_C7 a_0 Im: 0 ± 0.186 # 0.12 * 1.551 + - B+->K*+ delta_C7 a_0 Im: 0 ± 0.186 # 0.12 * 1.551 + - Bs->phi delta_C7 a_0 Im: 0 ± 0.183 # 0.12 * 1.526 correlation: [[1, 0.99, 0.9], [1, 0.9], [1]] # B+/B0 correlation is 99%, B0/Bs is 90% - - values: - - B0->K*0 deltaC7 b_0 Im: 0 ± 0.05 # see eq. (12) of arXiv:1411.3161v4 - - B+->K*+ deltaC7 b_0 Im: 0 ± 0.05 - - Bs->phi deltaC7 b_0 Im: 0 ± 0.05 + values: # see eq. (12) of arXiv:1411.3161v4 + - B0->K*0 delta_C7 b_0 Im: 0 ± 2.16 # 0.05 * 43.23 + - B+->K*+ delta_C7 b_0 Im: 0 ± 2.16 # 0.05 * 43.23 + - Bs->phi delta_C7 b_0 Im: 0 ± 2.20 # 0.05 * 43.95 correlation: [[1, 0.99, 0.9], [1, 0.9], [1]] # B+/B0 correlation is 99%, B0/Bs is 90% - values: - - B0->K*0 deltaC7p a_+ Im: 0 ± 0.004 - - B+->K*+ deltaC7p a_+ Im: 0 ± 0.004 - - Bs->phi deltaC7p a_+ Im: 0 ± 0.004 + - B0->K*0 delta_C7p a_+ Im: 0 ± 0.006 # 0.004 * 1.551 + - B+->K*+ delta_C7p a_+ Im: 0 ± 0.006 # 0.004 * 1.551 + - Bs->phi delta_C7p a_+ Im: 0 ± 0.006 # 0.004 * 1.526 correlation: [[1, 0.99, 0.9], [1, 0.9], [1]] # B+/B0 correlation is 99%, B0/Bs is 90% - values: - - B0->K*0 deltaC7p b_+ Im: 0 ± 0.005 - - B+->K*+ deltaC7p b_+ Im: 0 ± 0.005 - - Bs->phi deltaC7p b_+ Im: 0 ± 0.005 + - B0->K*0 delta_C7p b_+ Im: 0 ± 0.216 # 0.005 * 43.23 + - B+->K*+ delta_C7p b_+ Im: 0 ± 0.216 # 0.005 * 43.23 + - Bs->phi delta_C7p b_+ Im: 0 ± 0.220 # 0.005 * 43.95 correlation: [[1, 0.99, 0.9], [1, 0.9], [1]] # B+/B0 correlation is 99%, B0/Bs is 90% - - values: - - B0->K*0 deltaC7 a_- Im: 0 ± 0.015 # see eq. (26) of arXiv:1503.05534v1 - - B+->K*+ deltaC7 a_- Im: 0 ± 0.015 - - Bs->phi deltaC7 a_- Im: 0 ± 0.015 + values: # see eq. (26) of arXiv:1503.05534v1 + - B0->K*0 delta_C7 a_- Im: 0 ± 0.023 # 0.015 * 1.551 + - B+->K*+ delta_C7 a_- Im: 0 ± 0.023 # 0.015 * 1.551 + - Bs->phi delta_C7 a_- Im: 0 ± 0.023 # 0.015 * 1.526 correlation: [[1, 0.99, 0.9], [1, 0.9], [1]] # B+/B0 correlation is 99%, B0/Bs is 90% - - values: - - B0->K*0 deltaC7 b_- Im: 0 ± 0.01 # see eq. (26) of arXiv:1503.05534v1 - - B+->K*+ deltaC7 b_- Im: 0 ± 0.01 - - Bs->phi deltaC7 b_- Im: 0 ± 0.01 + values: # see eq. (26) of arXiv:1503.05534v1 + - B0->K*0 delta_C7 b_- Im: 0 ± 0.432 # 0.01 * 43.23 + - B+->K*+ delta_C7 b_- Im: 0 ± 0.432 # 0.01 * 43.23 + - Bs->phi delta_C7 b_- Im: 0 ± 0.440 # 0.01 * 43.95 correlation: [[1, 0.99, 0.9], [1, 0.9], [1]] # B+/B0 correlation is 99%, B0/Bs is 90% - @@ -393,7 +398,7 @@ # Electromagnetic corrections in Kl3 decays # 1005.2323 table 1 & eq. 18 -# Set just the Kmu3 parameters here, as we use +# Set just the Kmu3 parameters here, as we use # updated Ke3 values (but without correlations) - values: diff --git a/flavio/data/parameters_metadata.yml b/flavio/data/parameters_metadata.yml index 2207d54b..0d4466ba 100644 --- a/flavio/data/parameters_metadata.yml +++ b/flavio/data/parameters_metadata.yml @@ -312,10 +312,10 @@ a1_perp_phi: description: First Gegenbauer moment of the transversely polarized $\phi$ LCDA at 1 GeV # Parameters for subleading hadronic effects in B->Vll -B0->K*0 deltaC7 a_0 Re: +B0->K*0 delta_C7 a_0 Re: tex: $\text{Re}\,a^{\Delta_7}_0$ description: Parameter for subleading hadronic effects in $B^0\to K^{*0}\ell^+\ell^-$ at low $q^2$ -B0->K*0 deltaC7 b_0 Re: +B0->K*0 delta_C7 b_0 Re: tex: $\text{Re}\,b^{\Delta_7}_0$ description: Parameter for subleading hadronic effects in $B^0\to K^{*0}\ell^+\ell^-$ at low $q^2$ B0->K*0 deltaC9 a_0 Re: @@ -324,28 +324,22 @@ B0->K*0 deltaC9 a_0 Re: B0->K*0 deltaC9 b_0 Re: tex: $\text{Re}\,b^{\Delta_9}_0$ description: Parameter for subleading hadronic effects in $B^0\to K^{*0}\ell^+\ell^-$ at low $q^2$ -B0->K*0 deltaC7 a_+ Re: - tex: $\text{Re}\,a^{\Delta_7}_+$ - description: Parameter for subleading hadronic effects in $B^0\to K^{*0}\ell^+\ell^-$ at low $q^2$ -B0->K*0 deltaC7 b_+ Re: - tex: $\text{Re}\,b^{\Delta_7}_+$ - description: Parameter for subleading hadronic effects in $B^0\to K^{*0}\ell^+\ell^-$ at low $q^2$ -B0->K*0 deltaC7p a_+ Re: +B0->K*0 delta_C7p a_+ Re: tex: $\text{Re}\,a^{\Delta_7^\prime}_+$ description: Parameter for subleading hadronic effects in $B^0\to K^{*0}\ell^+\ell^-$ at low $q^2$ -B0->K*0 deltaC7p b_+ Re: +B0->K*0 delta_C7p b_+ Re: tex: $\text{Re}\,b^{\Delta_7^\prime}_+$ description: Parameter for subleading hadronic effects in $B^0\to K^{*0}\ell^+\ell^-$ at low $q^2$ -B0->K*0 deltaC7 a_- Re: +B0->K*0 delta_C7 a_- Re: tex: $\text{Re}\,a^{\Delta_7}_-$ description: Parameter for subleading hadronic effects in $B^0\to K^{*0}\ell^+\ell^-$ at low $q^2$ -B0->K*0 deltaC7 b_- Re: +B0->K*0 delta_C7 b_- Re: tex: $\text{Re}\,b^{\Delta_7}_-$ description: Parameter for subleading hadronic effects in $B^0\to K^{*0}\ell^+\ell^-$ at low $q^2$ -B+->K*+ deltaC7 a_0 Re: +B+->K*+ delta_C7 a_0 Re: tex: $\text{Re}\,a^{\Delta_7}_0$ description: Parameter for subleading hadronic effects in $B^+\to K^{*+}\ell^+\ell^-$ at low $q^2$ -B+->K*+ deltaC7 b_0 Re: +B+->K*+ delta_C7 b_0 Re: tex: $\text{Re}\,b^{\Delta_7}_0$ description: Parameter for subleading hadronic effects in $B^+\to K^{*+}\ell^+\ell^-$ at low $q^2$ B+->K*+ deltaC9 a_0 Re: @@ -354,25 +348,19 @@ B+->K*+ deltaC9 a_0 Re: B+->K*+ deltaC9 b_0 Re: tex: $\text{Re}\,b^{\Delta_9}_0$ description: Parameter for subleading hadronic effects in $B^+\to K^{*+}\ell^+\ell^-$ at low $q^2$ -B+->K*+ deltaC7 a_+ Re: - tex: $\text{Re}\,a^{\Delta_7}_+$ - description: Parameter for subleading hadronic effects in $B^+\to K^{*+}\ell^+\ell^-$ at low $q^2$ -B+->K*+ deltaC7 b_+ Re: - tex: $\text{Re}\,b^{\Delta_7}_+$ - description: Parameter for subleading hadronic effects in $B^+\to K^{*+}\ell^+\ell^-$ at low $q^2$ -B+->K*+ deltaC7p a_+ Re: +B+->K*+ delta_C7p a_+ Re: tex: $\text{Re}\,a^{\Delta_7^\prime}_+$ description: Parameter for subleading hadronic effects in $B^+\to K^{*+}\ell^+\ell^-$ at low $q^2$ -B+->K*+ deltaC7p b_+ Re: +B+->K*+ delta_C7p b_+ Re: tex: $\text{Re}\,b^{\Delta_7^\prime}_+$ description: Parameter for subleading hadronic effects in $B^+\to K^{*+}\ell^+\ell^-$ at low $q^2$ -B+->K*+ deltaC7 a_- Re: +B+->K*+ delta_C7 a_- Re: tex: $\text{Re}\,a^{\Delta_7}_-$ description: Parameter for subleading hadronic effects in $B^+\to K^{*+}\ell^+\ell^-$ at low $q^2$ -B+->K*+ deltaC7 b_- Re: +B+->K*+ delta_C7 b_- Re: tex: $\text{Re}\,b^{\Delta_7}_-$ description: Parameter for subleading hadronic effects in $B^+\to K^{*+}\ell^+\ell^-$ at low $q^2$ -Bs->phi deltaC7 a_0 Re: +Bs->phi delta_C7 a_0 Re: tex: $\text{Re}\,a^{\Delta_7}_0$ description: Parameter for subleading hadronic effects in $B_s\to \phi\ell^+\ell^-$ at low $q^2$ Bs->phi deltaC9 b_0 Re: @@ -381,31 +369,25 @@ Bs->phi deltaC9 b_0 Re: Bs->phi deltaC9 a_0 Re: tex: $\text{Re}\,a^{\Delta_9}_0$ description: Parameter for subleading hadronic effects in $B_s\to \phi\ell^+\ell^-$ at low $q^2$ -Bs->phi deltaC7 b_0 Re: +Bs->phi delta_C7 b_0 Re: tex: $\text{Re}\,b^{\Delta_7}_0$ description: Parameter for subleading hadronic effects in $B_s\to \phi\ell^+\ell^-$ at low $q^2$ -Bs->phi deltaC7 a_+ Re: - tex: $\text{Re}\,a^{\Delta_7}_+$ - description: Parameter for subleading hadronic effects in $B_s\to \phi\ell^+\ell^-$ at low $q^2$ -Bs->phi deltaC7 b_+ Re: - tex: $\text{Re}\,b^{\Delta_7}_+$ - description: Parameter for subleading hadronic effects in $B_s\to \phi\ell^+\ell^-$ at low $q^2$ -Bs->phi deltaC7p a_+ Re: +Bs->phi delta_C7p a_+ Re: tex: $\text{Re}\,a^{\Delta_7^\prime}_+$ description: Parameter for subleading hadronic effects in $B_s\to \phi\ell^+\ell^-$ at low $q^2$ -Bs->phi deltaC7p b_+ Re: +Bs->phi delta_C7p b_+ Re: tex: $\text{Re}\,b^{\Delta_7^\prime}_+$ description: Parameter for subleading hadronic effects in $B_s\to \phi\ell^+\ell^-$ at low $q^2$ -Bs->phi deltaC7 a_- Re: +Bs->phi delta_C7 a_- Re: tex: $\text{Re}\,a^{\Delta_7}_-$ description: Parameter for subleading hadronic effects in $B_s\to \phi\ell^+\ell^-$ at low $q^2$ -Bs->phi deltaC7 b_- Re: +Bs->phi delta_C7 b_- Re: tex: $\text{Re}\,b^{\Delta_7}_-$ description: -B0->K*0 deltaC7 a_0 Im: +B0->K*0 delta_C7 a_0 Im: tex: $\text{Im}\,a^{\Delta_7}_0$ description: Parameter for subleading hadronic effects in $B^0\to K^{*0}\ell^+\ell^-$ at low $q^2$ -B0->K*0 deltaC7 b_0 Im: +B0->K*0 delta_C7 b_0 Im: tex: $\text{Im}\,b^{\Delta_7}_0$ description: Parameter for subleading hadronic effects in $B^0\to K^{*0}\ell^+\ell^-$ at low $q^2$ B0->K*0 deltaC9 a_0 Im: @@ -414,28 +396,22 @@ B0->K*0 deltaC9 a_0 Im: B0->K*0 deltaC9 b_0 Im: tex: $\text{Im}\,b^{\Delta_9}_0$ description: Parameter for subleading hadronic effects in $B^0\to K^{*0}\ell^+\ell^-$ at low $q^2$ -B0->K*0 deltaC7 a_+ Im: - tex: $\text{Im}\,a^{\Delta_7}_+$ - description: Parameter for subleading hadronic effects in $B^0\to K^{*0}\ell^+\ell^-$ at low $q^2$ -B0->K*0 deltaC7 b_+ Im: - tex: $\text{Im}\,b^{\Delta_7}_+$ - description: Parameter for subleading hadronic effects in $B^0\to K^{*0}\ell^+\ell^-$ at low $q^2$ -B0->K*0 deltaC7p a_+ Im: +B0->K*0 delta_C7p a_+ Im: tex: $\text{Im}\,a^{\Delta_7^\prime}_+$ description: Parameter for subleading hadronic effects in $B^0\to K^{*0}\ell^+\ell^-$ at low $q^2$ -B0->K*0 deltaC7p b_+ Im: +B0->K*0 delta_C7p b_+ Im: tex: $\text{Im}\,b^{\Delta_7^\prime}_+$ description: Parameter for subleading hadronic effects in $B^0\to K^{*0}\ell^+\ell^-$ at low $q^2$ -B0->K*0 deltaC7 a_- Im: +B0->K*0 delta_C7 a_- Im: tex: $\text{Im}\,a^{\Delta_7}_-$ description: Parameter for subleading hadronic effects in $B^0\to K^{*0}\ell^+\ell^-$ at low $q^2$ -B0->K*0 deltaC7 b_- Im: +B0->K*0 delta_C7 b_- Im: tex: $\text{Im}\,b^{\Delta_7}_-$ description: Parameter for subleading hadronic effects in $B^0\to K^{*0}\ell^+\ell^-$ at low $q^2$ -B+->K*+ deltaC7 a_0 Im: +B+->K*+ delta_C7 a_0 Im: tex: $\text{Im}\,a^{\Delta_7}_0$ description: Parameter for subleading hadronic effects in $B^+\to K^{*+}\ell^+\ell^-$ at low $q^2$ -B+->K*+ deltaC7 b_0 Im: +B+->K*+ delta_C7 b_0 Im: tex: $\text{Im}\,b^{\Delta_7}_0$ description: Parameter for subleading hadronic effects in $B^+\to K^{*+}\ell^+\ell^-$ at low $q^2$ B+->K*+ deltaC9 a_0 Im: @@ -444,28 +420,22 @@ B+->K*+ deltaC9 a_0 Im: B+->K*+ deltaC9 b_0 Im: tex: $\text{Im}\,b^{\Delta_9}_0$ description: Parameter for subleading hadronic effects in $B^+\to K^{*+}\ell^+\ell^-$ at low $q^2$ -B+->K*+ deltaC7 a_+ Im: - tex: $\text{Im}\,a^{\Delta_7}_+$ - description: Parameter for subleading hadronic effects in $B^+\to K^{*+}\ell^+\ell^-$ at low $q^2$ -B+->K*+ deltaC7 b_+ Im: - tex: $\text{Im}\,b^{\Delta_7}_+$ - description: Parameter for subleading hadronic effects in $B^+\to K^{*+}\ell^+\ell^-$ at low $q^2$ -B+->K*+ deltaC7p a_+ Im: +B+->K*+ delta_C7p a_+ Im: tex: $\text{Im}\,a^{\Delta_7^\prime}_+$ description: Parameter for subleading hadronic effects in $B^+\to K^{*+}\ell^+\ell^-$ at low $q^2$ -B+->K*+ deltaC7p b_+ Im: +B+->K*+ delta_C7p b_+ Im: tex: $\text{Im}\,b^{\Delta_7^\prime}_+$ description: Parameter for subleading hadronic effects in $B^+\to K^{*+}\ell^+\ell^-$ at low $q^2$ -B+->K*+ deltaC7 a_- Im: +B+->K*+ delta_C7 a_- Im: tex: $\text{Im}\,a^{\Delta_7}_-$ description: Parameter for subleading hadronic effects in $B^+\to K^{*+}\ell^+\ell^-$ at low $q^2$ -B+->K*+ deltaC7 b_- Im: +B+->K*+ delta_C7 b_- Im: tex: $\text{Im}\,b^{\Delta_7}_-$ description: Parameter for subleading hadronic effects in $B^+\to K^{*+}\ell^+\ell^-$ at low $q^2$ -Bs->phi deltaC7 a_0 Im: +Bs->phi delta_C7 a_0 Im: tex: $\text{Im}\,a^{\Delta_7}_0$ description: Parameter for subleading hadronic effects in $B_s\to \phi\ell^+\ell^-$ at low $q^2$ -Bs->phi deltaC7 b_0 Im: +Bs->phi delta_C7 b_0 Im: tex: $\text{Im}\,b^{\Delta_7}_0$ description: Parameter for subleading hadronic effects in $B_s\to \phi\ell^+\ell^-$ at low $q^2$ Bs->phi deltaC9 a_0 Im: @@ -474,22 +444,16 @@ Bs->phi deltaC9 a_0 Im: Bs->phi deltaC9 b_0 Im: tex: $\text{Im}\,b^{\Delta_9}_0$ description: Parameter for subleading hadronic effects in $B_s\to \phi\ell^+\ell^-$ at low $q^2$ -Bs->phi deltaC7 a_+ Im: - tex: $\text{Im}\,a^{\Delta_7}_+$ - description: Parameter for subleading hadronic effects in $B_s\to \phi\ell^+\ell^-$ at low $q^2$ -Bs->phi deltaC7 b_+ Im: - tex: $\text{Im}\,b^{\Delta_7}_+$ - description: Parameter for subleading hadronic effects in $B_s\to \phi\ell^+\ell^-$ at low $q^2$ -Bs->phi deltaC7p a_+ Im: +Bs->phi delta_C7p a_+ Im: tex: $\text{Im}\,a^{\Delta_7^\prime}_+$ description: Parameter for subleading hadronic effects in $B_s\to \phi\ell^+\ell^-$ at low $q^2$ -Bs->phi deltaC7p b_+ Im: +Bs->phi delta_C7p b_+ Im: tex: $\text{Im}\,b^{\Delta_7^\prime}_+$ description: Parameter for subleading hadronic effects in $B_s\to \phi\ell^+\ell^-$ at low $q^2$ -Bs->phi deltaC7 a_- Im: +Bs->phi delta_C7 a_- Im: tex: $\text{Im}\,a^{\Delta_7}_-$ description: Parameter for subleading hadronic effects in $B_s\to \phi\ell^+\ell^-$ at low $q^2$ -Bs->phi deltaC7 b_- Im: +Bs->phi delta_C7 b_- Im: tex: $\text{Im}\,b^{\Delta_7}_-$ description: Parameter for subleading hadronic effects in $B_s\to \phi\ell^+\ell^-$ at low $q^2$ B0->K*0 deltaC9 c_0 Re: diff --git a/flavio/physics/bdecays/bvll/subleading.py b/flavio/physics/bdecays/bvll/subleading.py index 632ae6de..8eb79260 100644 --- a/flavio/physics/bdecays/bvll/subleading.py +++ b/flavio/physics/bdecays/bvll/subleading.py @@ -2,6 +2,7 @@ decays.""" +import warnings import flavio from flavio.classes import AuxiliaryQuantity, Implementation from flavio.physics.common import conjugate_par @@ -38,6 +39,52 @@ def ha_deltaC(self, deltaC, C_name): self.ff, wc, self.prefactor) +# Temporary backward-compatibility shim for the old deltaC7/deltaC7p parameter +# names (before flavio v2.7). Maps old full parameter keys to (new_key, type) +# where type 'a' means rescale by 2*mb/mB, 'b' by 2*mb*mB. +# This mapping and the associated migration code will be removed in a future +# version of flavio. +_OLD_DELTAC7_MAP = { + 'B0->K*0 deltaC7 a_0 Re': ('B0->K*0 delta_C7 a_0 Re', 'a'), + 'B0->K*0 deltaC7 a_0 Im': ('B0->K*0 delta_C7 a_0 Im', 'a'), + 'B0->K*0 deltaC7 b_0 Re': ('B0->K*0 delta_C7 b_0 Re', 'b'), + 'B0->K*0 deltaC7 b_0 Im': ('B0->K*0 delta_C7 b_0 Im', 'b'), + 'B0->K*0 deltaC7 a_- Re': ('B0->K*0 delta_C7 a_- Re', 'a'), + 'B0->K*0 deltaC7 a_- Im': ('B0->K*0 delta_C7 a_- Im', 'a'), + 'B0->K*0 deltaC7 b_- Re': ('B0->K*0 delta_C7 b_- Re', 'b'), + 'B0->K*0 deltaC7 b_- Im': ('B0->K*0 delta_C7 b_- Im', 'b'), + 'B0->K*0 deltaC7p a_+ Re': ('B0->K*0 delta_C7p a_+ Re', 'a'), + 'B0->K*0 deltaC7p a_+ Im': ('B0->K*0 delta_C7p a_+ Im', 'a'), + 'B0->K*0 deltaC7p b_+ Re': ('B0->K*0 delta_C7p b_+ Re', 'b'), + 'B0->K*0 deltaC7p b_+ Im': ('B0->K*0 delta_C7p b_+ Im', 'b'), + 'B+->K*+ deltaC7 a_0 Re': ('B+->K*+ delta_C7 a_0 Re', 'a'), + 'B+->K*+ deltaC7 a_0 Im': ('B+->K*+ delta_C7 a_0 Im', 'a'), + 'B+->K*+ deltaC7 b_0 Re': ('B+->K*+ delta_C7 b_0 Re', 'b'), + 'B+->K*+ deltaC7 b_0 Im': ('B+->K*+ delta_C7 b_0 Im', 'b'), + 'B+->K*+ deltaC7 a_- Re': ('B+->K*+ delta_C7 a_- Re', 'a'), + 'B+->K*+ deltaC7 a_- Im': ('B+->K*+ delta_C7 a_- Im', 'a'), + 'B+->K*+ deltaC7 b_- Re': ('B+->K*+ delta_C7 b_- Re', 'b'), + 'B+->K*+ deltaC7 b_- Im': ('B+->K*+ delta_C7 b_- Im', 'b'), + 'B+->K*+ deltaC7p a_+ Re': ('B+->K*+ delta_C7p a_+ Re', 'a'), + 'B+->K*+ deltaC7p a_+ Im': ('B+->K*+ delta_C7p a_+ Im', 'a'), + 'B+->K*+ deltaC7p b_+ Re': ('B+->K*+ delta_C7p b_+ Re', 'b'), + 'B+->K*+ deltaC7p b_+ Im': ('B+->K*+ delta_C7p b_+ Im', 'b'), + 'Bs->phi deltaC7 a_0 Re': ('Bs->phi delta_C7 a_0 Re', 'a'), + 'Bs->phi deltaC7 a_0 Im': ('Bs->phi delta_C7 a_0 Im', 'a'), + 'Bs->phi deltaC7 b_0 Re': ('Bs->phi delta_C7 b_0 Re', 'b'), + 'Bs->phi deltaC7 b_0 Im': ('Bs->phi delta_C7 b_0 Im', 'b'), + 'Bs->phi deltaC7 a_- Re': ('Bs->phi delta_C7 a_- Re', 'a'), + 'Bs->phi deltaC7 a_- Im': ('Bs->phi delta_C7 a_- Im', 'a'), + 'Bs->phi deltaC7 b_- Re': ('Bs->phi delta_C7 b_- Re', 'b'), + 'Bs->phi deltaC7 b_- Im': ('Bs->phi delta_C7 b_- Im', 'b'), + 'Bs->phi deltaC7p a_+ Re': ('Bs->phi delta_C7p a_+ Re', 'a'), + 'Bs->phi deltaC7p a_+ Im': ('Bs->phi delta_C7p a_+ Im', 'a'), + 'Bs->phi deltaC7p b_+ Re': ('Bs->phi delta_C7p b_+ Re', 'b'), + 'Bs->phi deltaC7p b_+ Im': ('Bs->phi delta_C7p b_+ Im', 'b'), +} +_OLD_DELTAC7_KEYS = frozenset(_OLD_DELTAC7_MAP) + + class HelicityAmpsDeltaC_77p_polynomial(HelicityAmpsDeltaC): r"""Helicity amps from an effective shift in the Wilson coefficients $C_7$ (for the 0 and $-$ amplitudes) and $C_7'$ (for the $+$) amplitude @@ -45,17 +92,46 @@ class HelicityAmpsDeltaC_77p_polynomial(HelicityAmpsDeltaC): def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) + # Temporary backward-compatibility shim for the old deltaC7/deltaC7p + # parameter names. This method and the old parameter names will be + # removed in a future version of flavio. + @staticmethod + def _migrate_old_params(par, mb, mB): + """If old-style deltaC7/deltaC7p parameters are found in par, + rescale them to the new delta_C7/delta_C7p convention and warn.""" + for old_key in _OLD_DELTAC7_KEYS & par.keys(): + new_key, coeff_type = _OLD_DELTAC7_MAP[old_key] + if coeff_type == 'a': + par[new_key] = par[old_key] * 2 * mb / mB + else: + par[new_key] = par[old_key] * 2 * mb * mB + warnings.warn( + "Parameter '{}' uses the old convention and has " + "been rescaled and written to '{}', overwriting " + "any existing value. Support for the old parameter " + "names will be removed in a future version of " + "flavio. Please update to the new delta_C7/" + "delta_C7p parameterization introduced in " + "flavio v2.7." + .format(old_key, new_key), + FutureWarning + ) + def __call__(self): + if _OLD_DELTAC7_KEYS & self.par.keys(): + self._migrate_old_params(self.par, self.mb, self.mB) par = self.par B = self.B V = self.V q2 = self.q2 - deltaC7_0 =( par[B+'->'+V+' deltaC7 a_0 Re'] + par[B+'->'+V+' deltaC7 b_0 Re'] *q2 - +1j*( par[B+'->'+V+' deltaC7 a_0 Im'] + par[B+'->'+V+' deltaC7 b_0 Im'] *q2 )) - deltaC7p_pl =( par[B+'->'+V+' deltaC7p a_+ Re'] + par[B+'->'+V+' deltaC7p b_+ Re'] *q2 - +1j*( par[B+'->'+V+' deltaC7p a_+ Im'] + par[B+'->'+V+' deltaC7p b_+ Im'] *q2 )) - deltaC7_mi =( par[B+'->'+V+' deltaC7 a_- Re'] + par[B+'->'+V+' deltaC7 b_- Re'] *q2 - +1j*( par[B+'->'+V+' deltaC7 a_- Im'] + par[B+'->'+V+' deltaC7 b_- Im'] *q2 )) + mB = self.mB + mb = self.mb + deltaC7_0 =( par[B+'->'+V+' delta_C7 a_0 Re'] + par[B+'->'+V+' delta_C7 b_0 Re'] *q2/mB**2 + +1j*( par[B+'->'+V+' delta_C7 a_0 Im'] + par[B+'->'+V+' delta_C7 b_0 Im'] *q2/mB**2 )) *mB/(2*mb) + deltaC7p_pl =( par[B+'->'+V+' delta_C7p a_+ Re'] + par[B+'->'+V+' delta_C7p b_+ Re'] *q2/mB**2 + +1j*( par[B+'->'+V+' delta_C7p a_+ Im'] + par[B+'->'+V+' delta_C7p b_+ Im'] *q2/mB**2 )) *mB/(2*mb) + deltaC7_mi =( par[B+'->'+V+' delta_C7 a_- Re'] + par[B+'->'+V+' delta_C7 b_- Re'] *q2/mB**2 + +1j*( par[B+'->'+V+' delta_C7 a_- Im'] + par[B+'->'+V+' delta_C7 b_- Im'] *q2/mB**2 )) *mB/(2*mb) ha = {} ha['0', 'V'] = self.ha_deltaC(deltaC7_0, '7')['0', 'V'] ha['pl', 'V'] = self.ha_deltaC(deltaC7p_pl, '7p')['pl', 'V'] @@ -107,7 +183,7 @@ def fct(wc_obj, par_dict, q2, cp_conjugate): # Implementation: C7-C7'-polynomial - iname = process + ' deltaC7, 7p polynomial' + iname = process + ' delta_C7, 7p polynomial' i = Implementation(name=iname, quantity=quantity, function=fct_deltaC7C7p_polynomial(B=had[0], V=had[1])) i.set_description(r"Effective shift in the Wilson coefficient $C_7(\mu_b)$" diff --git a/flavio/physics/bdecays/bvll/test_bvll.py b/flavio/physics/bdecays/bvll/test_bvll.py index a99e325f..1dc4b85e 100644 --- a/flavio/physics/bdecays/bvll/test_bvll.py +++ b/flavio/physics/bdecays/bvll/test_bvll.py @@ -169,6 +169,46 @@ def g(q2): self.assertAlmostEqual(nintegrate_pole(g, 0.0005, 2)/nintegrate(g, 0.0005, 2, epsrel=0.001), 1, delta=0.01) + # Test of temporary backward-compatibility shim for the old deltaC7/deltaC7p + # parameter names. This test will be removed in a future version of flavio. + def test_deltaC7_backward_compat(self): + """Test that old-style deltaC7/deltaC7p parameters are migrated + correctly, covering a-type (rescale by 2*mb/mB) and b-type + (rescale by 2*mb*mB) parameters.""" + from flavio.physics.bdecays.bvll.subleading import HelicityAmpsDeltaC_77p_polynomial + from flavio.config import config + import flavio.physics.running.running as running + par = flavio.default_parameters.get_central_all() + q2 = 3.0 + B, V = 'B0', 'K*0' + prefix = B + '->' + V + scale = config['renormalization scale']['bvll'] + mb = running.get_mb(par, scale) + mB = par['m_' + B] + old_val = 0.1 + # test cases: (old_name, new_name, coeff, rescale_factor) + test_cases = [ + ('deltaC7', 'delta_C7', 'a_0 Re', 2 * mb / mB), + ('deltaC7', 'delta_C7', 'b_- Im', 2 * mb * mB), + ('deltaC7p', 'delta_C7p', 'a_+ Re', 2 * mb / mB), + ('deltaC7p', 'delta_C7p', 'b_+ Im', 2 * mb * mB), + ] + for old_name, new_name, coeff, factor in test_cases: + old_key = '{} {} {}'.format(prefix, old_name, coeff) + new_key = '{} {} {}'.format(prefix, new_name, coeff) + # result using old-style parameter (migrated by shim) + par_old = par.copy() + par_old[old_key] = old_val + with self.assertWarns(FutureWarning): + ha_old = HelicityAmpsDeltaC_77p_polynomial(B, V, par_old, q2)() + # result using new-style parameter with manually rescaled value + par_new = par.copy() + par_new[new_key] = old_val * factor + ha_new = HelicityAmpsDeltaC_77p_polynomial(B, V, par_new, q2)() + for key in ha_old: + self.assertAlmostEqual(ha_old[key], ha_new[key], places=10, + msg="Mismatch for old param '{}'".format(old_key)) + def test_qcdf_warning(self): # computing the BR at q²=8 should warn with self.assertWarnsRegex(UserWarning, r"The QCDF corrections should not be trusted .*"):