15  ndg params

A matching between the ndg parameter and the OS can be defined as

\begin{cases} m_s = \mu_\sigma - \frac{Z_P}{Z_S}\mu_\delta \\ m_c = \mu_\sigma + \frac{Z_P}{Z_S}\mu_\delta \\ \end{cases} \quad\quad \begin{cases} \mu_\sigma =\frac{1}{2}( m_s + m_c) \quad\,\,\,\,\\ \mu_\sigma =\frac{1}{2}\frac{Z_S}{Z_P}( m_c - m_s) \\ \end{cases} \,. This matching scheme has the problem that \frac{Z_P}{Z_S} needs to be know very precise to estimate well the cancellation in the m_s.

An alternative scheme used in the gm2 strange and charm paper is \begin{cases} m_c = \mu_\sigma + \frac{Z_P}{Z_S}\mu_\delta \\ aM_K^{ndg}(\mu_\sigma,\mu_\delta) = aM_K^{OS}(m_s)= aM_K^{OS}(m_s^{ref}) +(m_s^{ref}-m_s)\frac{\partial M_K^{OS}}{\partial m_s}\Bigg|_{m_s} \\ \end{cases} where m_s^{ref} is some value close enough to m_s such higer order in the expansion are negligible. The derivative is splitted in sea and valence contribution \frac{\partial M_K^{OS}}{\partial m_s}=\frac{\partial^{val} M_K^{OS}}{\partial m_s} + \frac{\partial^{sea} M_K^{OS}}{\partial m_s} the derivative with respect to the valence is computed as finite difference and the derivative with respect to the sea is computed with the scalar insertions.

df <- data.frame(
  "en" = c("B64", "C80","D96","E112"),
  "kappa" = c(0.139426500000, 0.138752850000, 0.137972174000, 0.13741288000),
  "mul_sim" = c(0.00072, 0.0006, 0.00054,0.000439999875),
  "musig_sim" = c(0.1315052, 0.107146000965, 0.087911000000, 0.077706999882),
  "mudel_sim" = c(0.1246864, 0.106585999855, 0.086224000000, 0.074646999976),
  "ms_sim" = c(0,0,0,0),
  "mc_sim" = c(0,0,0,0),
  "Zp_Zs" = c(0.79018,  0.82308, 0.85095, 0.87068160),
  "mul" = c(0.0006669, 0.0005864, 0.0004934,0.0004306),
  "musig" = c(0,0,0,0),
  "mudel" = c(0,0,0,0),
  "ms_iso" = c(0.018267,  0.016053, 0.013559, 0.01207711518),
  "mc_iso" = c(0.23134,   0.19849, 0.16474, 0.142700769256)
)
library(dplyr)

Attaching package: 'dplyr'
The following objects are masked from 'package:stats':

    filter, lag
The following objects are masked from 'package:base':

    intersect, setdiff, setequal, union
library(knitr)
# df$ms_sim<- df$musig_sim- df$
df <- mutate(df,
  ms_sim = musig_sim - Zp_Zs * mudel_sim,
  mc_sim = musig_sim + Zp_Zs * mudel_sim
)

df <- mutate(df,
  musig = (ms_iso + mc_iso) / 2,
  mudel = (mc_iso - ms_iso) / Zp_Zs / 2
)
print(df$mc_sim,digits = 12)
[1] 0.230029899552 0.194874805726 0.161283312800 0.142700769256
kable(df[, c(1:7)], digits = 20)
en kappa mul_sim musig_sim mudel_sim ms_sim mc_sim
B64 0.1394265 0.0007200000 0.1315052 0.1246864 0.03298050 0.2300299
C80 0.1387529 0.0006000000 0.1071460 0.1065860 0.01941720 0.1948748
D96 0.1379722 0.0005400000 0.0879110 0.0862240 0.01453869 0.1612833
E112 0.1374129 0.0004399999 0.0777070 0.0746470 0.01271323 0.1427008
kable(df[, c(8:13)], digits = 20)
Zp_Zs mul musig mudel ms_iso mc_iso
0.7901800 0.0006669 0.12480350 0.13482561 0.01826700 0.2313400
0.8230800 0.0005864 0.10727150 0.11082580 0.01605300 0.1984900
0.8509500 0.0004934 0.08914950 0.08883072 0.01355900 0.1647400
0.8706816 0.0004306 0.07738894 0.07501230 0.01207712 0.1427008

now we cange only the charm keeping the strange at the simulation point

library(dplyr)
library(knitr)

df1 <- mutate(df,
  musig = (ms_sim + mc_iso) / 2,
  mudel = (mc_iso - ms_sim) / Zp_Zs / 2
)
  # musigma = 0.1260567
  # mudelta = 0.1332397
  # 2Kappamubar   = 0.0351512889651
  # 2KappaEpsBar  = 0.0371542900641
  # kappa = 0.1394265
  # 
  # #epsbar = 0.1394265
  # 2Kappamubar2  = 0.034769065158
  # 2KappaEpsBar2 = 0.036670563765
  # kappa2 = 0.1394265


kable(df1[, c(1, 2, 3, 4, 9, 10)], digits = 13)
en kappa mul_sim musig_sim mul musig
B64 0.1394265 0.0007200000 0.1315052 0.0006669 0.13216025
C80 0.1387529 0.0006000000 0.1071460 0.0005864 0.10895360
D96 0.1379722 0.0005400000 0.0879110 0.0004934 0.08963934
E112 0.1374129 0.0004399999 0.0777070 0.0004306 0.07770700
library(dplyr)
library(knitr)
# keeping ms fixed and change mc form
# mc_sim =0.2285992
mc_targ =0.22887328 # 0.1 of the iso-sim step
df1 <- mutate(df,
  musig = (ms_sim + mc_targ) / 2,
  mudel = (mc_targ - ms_sim) / Zp_Zs / 2
)
kable(df1[, c(1, 2, 3, 4,  10,11)], digits = 16)
en kappa mul_sim musig_sim musig mudel
B64 0.1394265 0.0007200000 0.1315052 0.1309269 0.1239545
C80 0.1387529 0.0006000000 0.1071460 0.1241452 0.1272392
D96 0.1379722 0.0005400000 0.0879110 0.1217060 0.1259384
E112 0.1374129 0.0004399999 0.0777070 0.1207933 0.1241327
options(digits=16)
cat("2*kap*mub = ", df1$kappa*2*df1$musig,"\n")
2*kap*mub =  0.03650935611963307 0.03445101120121027 0.0335840782922007 0.03319709817801281 
cat("2*kap*epsb = ", df1$kappa*2*df1$mudel,"\n")
2*kap*epsb =  0.03456509229315717 0.03530960365515591 0.03475199451439068 0.03411485316983841 
cat("denominator\n")
denominator
cat("2*kap*mub = ", df1$kappa*2*df1$musig_sim,"\n")
2*kap*mub =  0.0366706195356 0.029733625999993 0.024258543577028 0.02135588529989056 
cat("2*kap*epsb = ", df1$kappa*2*df1$mudel_sim,"\n")
2*kap*epsb =  0.0347691766992 0.02957822249996168 0.023793025461952 0.02051491850012418