diff --git a/flavio/data/config.yml b/flavio/data/config.yml index e16f0cf5..861209c4 100644 --- a/flavio/data/config.yml +++ b/flavio/data/config.yml @@ -30,7 +30,7 @@ renormalization scale: bvgamma: 4.8 # B->V gamma bxgamma: 2. # B->X gamma bxlnu: 4.6 # B->X l nu - lambdab: 4.8 # Lambdab->Lambda l+ l- + lambdab: 4.8 # Lambdab->Lambda l+ l-, Lambdab->Lambda(1520) l+ l- # K decays kdecays: 2. # K->pinunu @@ -103,6 +103,7 @@ implementation: # Lambdab form factors Lambdab->Lambda form factor: Lambdab->Lambda SSE3 + Lambdab->Lambda(1520) form factor: Lambdab->Lambda(1520) MCN # Kaon form factors K->pi form factor: K->pi dispersive + pole diff --git a/flavio/data/parameters_correlated.yml b/flavio/data/parameters_correlated.yml index 0d0127d9..bfd7d948 100644 --- a/flavio/data/parameters_correlated.yml +++ b/flavio/data/parameters_correlated.yml @@ -492,3 +492,64 @@ - D->K BSZ a2_fT: -8.2437 ± 3.1431 correlation: [[1.0, 0.673, 0.23], [0.673, 1.0, 0.764], [0.23, 0.764, 1.0]] + +# Lambdab->Lambda(1520) lattice QCD form factors +- values: + - Lambdab->Lambda(1520) fplus F: 0.0432 ± 0.0064 + - Lambdab->Lambda(1520) fplus A: 1.63 ± 0.19 + - Lambdab->Lambda(1520) f0 F: 3.54 ± 0.29 + - Lambdab->Lambda(1520) f0 A: -14.7 ± 3.3 + - Lambdab->Lambda(1520) fperp F: -0.068 ± 0.018 + - Lambdab->Lambda(1520) fperp A: 2.49 ± 0.35 + - Lambdab->Lambda(1520) fperpPrim F: 0.0461 ± 0.0018 + - Lambdab->Lambda(1520) fperpPrim A: -0.161 ± 0.027 + - Lambdab->Lambda(1520) gplus F: 2.95 ± 0.25 + - Lambdab->Lambda(1520) gplus A: -12.2 ± 2.9 + - Lambdab->Lambda(1520) g0 F: 0.0024 ± 0.0038 + - Lambdab->Lambda(1520) g0 A: 1.58 ± 0.17 + - Lambdab->Lambda(1520) gperp F: 2.92 ± 0.24 + - Lambdab->Lambda(1520) gperp A: -11.8 ± 2.8 + - Lambdab->Lambda(1520) gperpPrim F: -0.037 ± 0.014 + - Lambdab->Lambda(1520) gperpPrim A: 0.09 ± 0.25 + - Lambdab->Lambda(1520) hplus F: -0.095 ± 0.019 + - Lambdab->Lambda(1520) hplus A: 2.38 ± 0.32 + - Lambdab->Lambda(1520) hperp F: 0.0170 ± 0.0043 + - Lambdab->Lambda(1520) hperp A: 1.49 ± 0.16 + - Lambdab->Lambda(1520) hperpPrim F: -0.0196 ± 0.0013 + - Lambdab->Lambda(1520) hperpPrim A: 0.038 ± 0.011 + - Lambdab->Lambda(1520) hTplus F: 2.90 ± 0.24 + - Lambdab->Lambda(1520) hTplus A: -12.0 ± 2.9 + - Lambdab->Lambda(1520) hTperp F: 3.01 ± 0.25 + - Lambdab->Lambda(1520) hTperp A: -12.2 ± 2.8 + - Lambdab->Lambda(1520) hTperpPrim F: 0.144 ± 0.024 + - Lambdab->Lambda(1520) hTperpPrim A: -0.74 ± 0.37 + correlation: + [[1.0, 0.108, 0.478, -0.19, 0.277, 0.201, 0.129, -0.025, 0.474, -0.174, 0.356, 0.255, 0.441, -0.176, -0.179, 0.03, 0.306, 0.181, 0.892, 0.172, -0.114, 0.013, 0.446, -0.176, 0.467, -0.177, 0.123, -0.067], + [0.108, 1.0, 0.712, -0.334, 0.053, 0.694, 0.233, -0.004, 0.715, -0.34, 0.06, 0.942, 0.701, -0.337, 0.022, -0.081, 0.06, 0.676, 0.034, 0.977, -0.119, 0.11, 0.707, -0.33, 0.711, -0.338, 0.197, -0.185], + [0.478, 0.712, 1.0, -0.6, 0.013, 0.6, 0.347, -0.064, 0.987, -0.591, 0.15, 0.745, 0.99, -0.599, -0.032, -0.126, 0.007, 0.574, 0.388, 0.734, -0.249, 0.187, 0.988, -0.589, 0.992, -0.596, 0.282, -0.25], + [-0.19, -0.334, -0.6, 1.0, 0.027, -0.514, -0.022, 0.616, -0.599, 0.99, -0.075, -0.412, -0.609, 0.99, -0.095, 0.21, 0.019, -0.522, -0.197, -0.367, 0.06, -0.643, -0.604, 0.989, -0.597, 0.992, -0.287, 0.529], + [0.277, 0.053, 0.013, 0.027, 1.0, -0.067, -0.245, 0.011, 0.014, 0.038, 0.28, 0.103, -0.01, 0.043, 0.249, -0.077, 0.964, -0.045, 0.128, 0.11, 0.273, -0.03, -0.013, 0.039, 0.014, 0.039, -0.151, 0.015], + [0.201, 0.694, 0.6, -0.514, -0.067, 1.0, 0.194, -0.31, 0.595, -0.497, 0.024, 0.746, 0.586, -0.506, 0.003, -0.117, -0.035, 0.981, 0.133, 0.724, -0.27, 0.303, 0.591, -0.501, 0.585, -0.501, 0.286, -0.299], + [0.129, 0.233, 0.347, -0.022, -0.245, 0.194, 1.0, 0.038, 0.321, -0.019, -0.04, 0.216, 0.329, -0.021, -0.059, 0.017, -0.275, 0.175, 0.062, 0.228, -0.423, -0.057, 0.331, -0.015, 0.33, -0.02, 0.186, 0.018], + [-0.025, -0.004, -0.064, 0.616, 0.011, -0.31, 0.038, 1.0, -0.056, 0.601, 0.049, -0.096, -0.069, 0.594, -0.118, 0.182, -0.009, -0.354, -0.009, -0.057, 0.013, -0.739, -0.064, 0.599, -0.062, 0.606, -0.245, 0.558], + [0.474, 0.715, 0.987, -0.599, 0.014, 0.595, 0.321, -0.056, 1.0, -0.604, 0.157, 0.765, 0.989, -0.604, -0.044, -0.121, 0.008, 0.568, 0.398, 0.744, -0.238, 0.179, 0.994, -0.597, 0.993, -0.603, 0.288, -0.25], + [-0.174, -0.34, -0.591, 0.99, 0.038, -0.497, -0.019, 0.601, -0.604, 1.0, -0.081, -0.412, -0.608, 0.99, -0.1, 0.216, 0.031, -0.504, -0.19, -0.369, 0.058, -0.639, -0.606, 0.993, -0.598, 0.993, -0.296, 0.535], + [0.356, 0.06, 0.15, -0.075, 0.28, 0.024, -0.04, 0.049, 0.157, -0.081, 1.0, 0.009, 0.133, -0.072, 0.015, 0.003, 0.278, 0.029, 0.436, 0.062, 0.104, -0.066, 0.138, -0.073, 0.146, -0.073, 0.007, -0.039], + [0.255, 0.942, 0.745, -0.412, 0.103, 0.746, 0.216, -0.096, 0.765, -0.412, 0.009, 1.0, 0.733, -0.407, -0.006, -0.07, 0.117, 0.725, 0.147, 0.974, -0.138, 0.15, 0.743, -0.404, 0.75, -0.411, 0.21, -0.212], + [0.441, 0.701, 0.99, -0.609, -0.01, 0.586, 0.329, -0.069, 0.989, -0.608, 0.133, 0.733, 1.0, -0.621, -0.039, -0.128, -0.02, 0.561, 0.368, 0.725, -0.247, 0.2, 0.994, -0.608, 0.997, -0.615, 0.282, -0.254], + [-0.176, -0.337, -0.599, 0.99, 0.043, -0.506, -0.021, 0.594, -0.604, 0.99, -0.072, -0.407, -0.621, 1.0, -0.093, 0.207, 0.037, -0.512, -0.191, -0.364, 0.063, -0.635, -0.611, 0.994, -0.605, 0.996, -0.286, 0.517], + [-0.179, 0.022, -0.032, -0.095, 0.249, 0.003, -0.059, -0.118, -0.044, -0.1, 0.015, -0.006, -0.039, -0.093, 1.0, -0.721, 0.229, 0.005, -0.261, 0.023, 0.025, 0.007, -0.047, -0.097, -0.036, -0.096, 0.279, -0.262], + [0.03, -0.081, -0.126, 0.21, -0.077, -0.117, 0.017, 0.182, -0.121, 0.216, 0.003, -0.07, -0.128, 0.207, -0.721, 1.0, -0.07, -0.111, 0.056, -0.088, 0.0, -0.122, -0.117, 0.206, -0.13, 0.213, -0.262, 0.406], + [0.306, 0.06, 0.007, 0.019, 0.964, -0.035, -0.275, -0.009, 0.008, 0.031, 0.278, 0.117, -0.02, 0.037, 0.229, -0.07, 1.0, -0.031, 0.165, 0.119, 0.298, -0.033, -0.02, 0.033, 0.005, 0.032, -0.144, -0.004], + [0.181, 0.676, 0.574, -0.522, -0.045, 0.981, 0.175, -0.354, 0.568, -0.504, 0.029, 0.725, 0.561, -0.512, 0.005, -0.111, -0.031, 1.0, 0.117, 0.704, -0.251, 0.35, 0.567, -0.509, 0.558, -0.508, 0.278, -0.314], + [0.892, 0.034, 0.388, -0.197, 0.128, 0.133, 0.062, -0.009, 0.398, -0.19, 0.436, 0.147, 0.368, -0.191, -0.261, 0.056, 0.165, 0.117, 1.0, 0.063, -0.064, 0.011, 0.373, -0.191, 0.388, -0.19, 0.136, -0.094], + [0.172, 0.977, 0.734, -0.367, 0.11, 0.724, 0.228, -0.057, 0.744, -0.369, 0.062, 0.974, 0.725, -0.364, 0.023, -0.088, 0.119, 0.704, 0.063, 1.0, -0.12, 0.137, 0.73, -0.358, 0.74, -0.368, 0.193, -0.202], + [-0.114, -0.119, -0.249, 0.06, 0.273, -0.27, -0.423, 0.013, -0.238, 0.058, 0.104, -0.138, -0.247, 0.063, 0.025, 0.0, 0.298, -0.251, -0.064, -0.12, 1.0, -0.022, -0.252, 0.065, -0.239, 0.056, -0.52, 0.143], + [0.013, 0.11, 0.187, -0.643, -0.03, 0.303, -0.057, -0.739, 0.179, -0.639, -0.066, 0.15, 0.2, -0.635, 0.007, -0.122, -0.033, 0.35, 0.011, 0.137, -0.022, 1.0, 0.19, -0.644, 0.192, -0.643, 0.139, -0.521], + [0.446, 0.707, 0.988, -0.604, -0.013, 0.591, 0.331, -0.064, 0.994, -0.606, 0.138, 0.743, 0.994, -0.611, -0.047, -0.117, -0.02, 0.567, 0.373, 0.73, -0.252, 0.19, 1.0, -0.606, 0.992, -0.607, 0.289, -0.25], + [-0.176, -0.33, -0.589, 0.989, 0.039, -0.501, -0.015, 0.599, -0.597, 0.993, -0.073, -0.404, -0.608, 0.994, -0.097, 0.206, 0.033, -0.509, -0.191, -0.358, 0.065, -0.644, -0.606, 1.0, -0.593, 0.991, -0.288, 0.522], + [0.467, 0.711, 0.992, -0.597, 0.014, 0.585, 0.33, -0.062, 0.993, -0.598, 0.146, 0.75, 0.997, -0.605, -0.036, -0.13, 0.005, 0.558, 0.388, 0.74, -0.239, 0.192, 0.992, -0.593, 1.0, -0.604, 0.282, -0.254], + [-0.177, -0.338, -0.596, 0.992, 0.039, -0.501, -0.02, 0.606, -0.603, 0.993, -0.073, -0.411, -0.615, 0.996, -0.096, 0.213, 0.032, -0.508, -0.19, -0.368, 0.056, -0.643, -0.607, 0.991, -0.604, 1.0, -0.289, 0.53], + [0.123, 0.197, 0.282, -0.287, -0.151, 0.286, 0.186, -0.245, 0.288, -0.296, 0.007, 0.21, 0.282, -0.286, 0.279, -0.262, -0.144, 0.278, 0.136, 0.193, -0.52, 0.139, 0.289, -0.288, 0.282, -0.289, 1.0, -0.739], + [-0.067, -0.185, -0.25, 0.529, 0.015, -0.299, 0.018, 0.558, -0.25, 0.535, -0.039, -0.212, -0.254, 0.517, -0.262, 0.406, -0.004, -0.314, -0.094, -0.202, 0.143, -0.521, -0.25, 0.522, -0.254, 0.53, -0.739, 1.0]] + diff --git a/flavio/data/parameters_metadata.yml b/flavio/data/parameters_metadata.yml index 0f9361c0..20069375 100644 --- a/flavio/data/parameters_metadata.yml +++ b/flavio/data/parameters_metadata.yml @@ -543,6 +543,289 @@ Lambdab->Lambda deltaC9 c_para1 Im: tex: $\text{Im}\,c^{\Delta_9}_{\parallel_1}$ description: Parameter for subleading hadronic effects in $\Lambda_b\to\Lambda\ell^+\ell^-$ at low $q^2$ +# Parameters for formfactor calculation in the quark model + +Lambdab->Lambda(1520) m_q: + tex: $m_q^{model}$ + description: Parameter for the form factor calculation of $\Lambda_b\to\Lambda(1520)\ell^+\ell^-$ using the quark model as in arXiv 1108.6129 +Lambdab->Lambda(1520) m_s: + tex: $m_s^{model}$ + description: Parameter for the form factor calculation of $\Lambda_b\to\Lambda(1520)\ell^+\ell^-$ using the quark model as in arXiv 1108.6129 +Lambdab->Lambda(1520) alpha_Lambdab: + tex: $\alpha_{\Lambda b}$ + description: Parameter for the form factor calculation of $\Lambda_b\to\Lambda(1520)\ell^+\ell^-$ using the quark model as in arXiv 1108.6129 +Lambdab->Lambda(1520) alpha_Lambda(1520): + tex: $\alpha_{\Lambda(1520)}$ + description: Parameter for the form factor calculation of $\Lambda_b\to\Lambda(1520)\ell^+\ell^-$ using the quark model as in arXiv 1108.6129 + +Lambdab->Lambda(1520) fVt uncertainty: + tex: $\Delta_{fVt}$ + description: Uncertainty applied on the form factor fVt +Lambdab->Lambda(1520) fVperp uncertainty: + tex: $\Delta_{fVperp}$ + description: Uncertainty applied on the form factor fVperp +Lambdab->Lambda(1520) fV0 uncertainty: + tex: $\Delta_{fV0}$ + description: Uncertainty applied on the form factor fV0 +Lambdab->Lambda(1520) fVg uncertainty: + tex: $\Delta_{fVg}$ + description: Uncertainty applied on the form factor fVg +Lambdab->Lambda(1520) fAt uncertainty: + tex: $\Delta_{fAt}$ + description: Uncertainty applied on the form factor fAt +Lambdab->Lambda(1520) fAperp uncertainty: + tex: $\Delta_{fAperp}$ + description: Uncertainty applied on the form factor fAperp +Lambdab->Lambda(1520) fA0 uncertainty: + tex: $\Delta_{fA0}$ + description: Uncertainty applied on the form factor fA0 +Lambdab->Lambda(1520) fAg uncertainty: + tex: $\Delta_{fAg}$ + description: Uncertainty applied on the form factor fAg +Lambdab->Lambda(1520) fTt uncertainty: + tex: $\Delta_{fTt}$ + description: Uncertainty applied on the form factor fTt +Lambdab->Lambda(1520) fTperp uncertainty: + tex: $\Delta_{fTperp}$ + description: Uncertainty applied on the form factor fTperp +Lambdab->Lambda(1520) fT0 uncertainty: + tex: $\Delta_{fT0}$ + description: Uncertainty applied on the form factor fT0 +Lambdab->Lambda(1520) fTg uncertainty: + tex: $\Delta_{fTg}$ + description: Uncertainty applied on the form factor fTg +Lambdab->Lambda(1520) fT5t uncertainty: + tex: $\Delta_{fT5t}$ + description: Uncertainty applied on the form factor fT5t +Lambdab->Lambda(1520) fT5perp uncertainty: + tex: $\Delta_{fT5perp}$ + description: Uncertainty applied on the form factor fT5perp +Lambdab->Lambda(1520) fT50 uncertainty: + tex: $\Delta_{fT50}$ + description: Uncertainty applied on the form factor fT50 +Lambdab->Lambda(1520) fT5g uncertainty: + tex: $\Delta_{fT5g}$ + description: Uncertainty applied on the form factor fT5g + +Lambdab->Lambda(1520) F1 a0: + tex: $a_0^{F1}$ + description: Parameter for the form factor calculation of $\Lambda_b\to\Lambda(1520)\ell^+\ell^-$ using the quark model as in arXiv 1108.6129 +Lambdab->Lambda(1520) F1 a2: + tex: $a_2^{F1}$ + description: Parameter for the form factor calculation of $\Lambda_b\to\Lambda(1520)\ell^+\ell^-$ using the quark model as in arXiv 1108.6129 +Lambdab->Lambda(1520) F1 a4: + tex: $a_4^{F1}$ + description: Parameter for the form factor calculation of $\Lambda_b\to\Lambda(1520)\ell^+\ell^-$ using the quark model as in arXiv 1108.6129 +Lambdab->Lambda(1520) F2 a0: + tex: $a_0^{F2}$ + description: Parameter for the form factor calculation of $\Lambda_b\to\Lambda(1520)\ell^+\ell^-$ using the quark model as in arXiv 1108.6129 +Lambdab->Lambda(1520) F2 a2: + tex: $a_2^{F2}$ + description: Parameter for the form factor calculation of $\Lambda_b\to\Lambda(1520)\ell^+\ell^-$ using the quark model as in arXiv 1108.6129 +Lambdab->Lambda(1520) F2 a4: + tex: $a_4^{F2}$ + description: Parameter for the form factor calculation of $\Lambda_b\to\Lambda(1520)\ell^+\ell^-$ using the quark model as in arXiv 1108.6129 +Lambdab->Lambda(1520) F3 a0: + tex: $a_0^{F3}$ + description: Parameter for the form factor calculation of $\Lambda_b\to\Lambda(1520)\ell^+\ell^-$ using the quark model as in arXiv 1108.6129 +Lambdab->Lambda(1520) F3 a2: + tex: $a_2^{F3}$ + description: Parameter for the form factor calculation of $\Lambda_b\to\Lambda(1520)\ell^+\ell^-$ using the quark model as in arXiv 1108.6129 +Lambdab->Lambda(1520) F3 a4: + tex: $a_4^{F3}$ + description: Parameter for the form factor calculation of $\Lambda_b\to\Lambda(1520)\ell^+\ell^-$ using the quark model as in arXiv 1108.6129 +Lambdab->Lambda(1520) F4 a0: + tex: $a_0^{F4}$ + description: Parameter for the form factor calculation of $\Lambda_b\to\Lambda(1520)\ell^+\ell^-$ using the quark model as in arXiv 1108.6129 +Lambdab->Lambda(1520) F4 a2: + tex: $a_2^{F4}$ + description: Parameter for the form factor calculation of $\Lambda_b\to\Lambda(1520)\ell^+\ell^-$ using the quark model as in arXiv 1108.6129 +Lambdab->Lambda(1520) F4 a4: + tex: $a_4^{F4}$ + description: Parameter for the form factor calculation of $\Lambda_b\to\Lambda(1520)\ell^+\ell^-$ using the quark model as in arXiv 1108.6129 +Lambdab->Lambda(1520) G1 a0: + tex: $a_0^{G1}$ + description: Parameter for the form factor calculation of $\Lambda_b\to\Lambda(1520)\ell^+\ell^-$ using the quark model as in arXiv 1108.6129 +Lambdab->Lambda(1520) G1 a2: + tex: $a_2^{G1}$ + description: Parameter for the form factor calculation of $\Lambda_b\to\Lambda(1520)\ell^+\ell^-$ using the quark model as in arXiv 1108.6129 +Lambdab->Lambda(1520) G1 a4: + tex: $a_4^{G1}$ + description: Parameter for the form factor calculation of $\Lambda_b\to\Lambda(1520)\ell^+\ell^-$ using the quark model as in arXiv 1108.6129 +Lambdab->Lambda(1520) G2 a0: + tex: $a_0^{G2}$ + description: Parameter for the form factor calculation of $\Lambda_b\to\Lambda(1520)\ell^+\ell^-$ using the quark model as in arXiv 1108.6129 +Lambdab->Lambda(1520) G2 a2: + tex: $a_2^{G2}$ + description: Parameter for the form factor calculation of $\Lambda_b\to\Lambda(1520)\ell^+\ell^-$ using the quark model as in arXiv 1108.6129 +Lambdab->Lambda(1520) G2 a4: + tex: $a_4^{G2}$ + description: Parameter for the form factor calculation of $\Lambda_b\to\Lambda(1520)\ell^+\ell^-$ using the quark model as in arXiv 1108.6129 +Lambdab->Lambda(1520) G3 a0: + tex: $a_0^{G3}$ + description: Parameter for the form factor calculation of $\Lambda_b\to\Lambda(1520)\ell^+\ell^-$ using the quark model as in arXiv 1108.6129 +Lambdab->Lambda(1520) G3 a2: + tex: $a_2^{G3}$ + description: Parameter for the form factor calculation of $\Lambda_b\to\Lambda(1520)\ell^+\ell^-$ using the quark model as in arXiv 1108.6129 +Lambdab->Lambda(1520) G3 a4: + tex: $a_4^{G3}$ + description: Parameter for the form factor calculation of $\Lambda_b\to\Lambda(1520)\ell^+\ell^-$ using the quark model as in arXiv 1108.6129 +Lambdab->Lambda(1520) G4 a0: + tex: $a_0^{G4}$ + description: Parameter for the form factor calculation of $\Lambda_b\to\Lambda(1520)\ell^+\ell^-$ using the quark model as in arXiv 1108.6129 +Lambdab->Lambda(1520) G4 a2: + tex: $a_2^{G4}$ + description: Parameter for the form factor calculation of $\Lambda_b\to\Lambda(1520)\ell^+\ell^-$ using the quark model as in arXiv 1108.6129 +Lambdab->Lambda(1520) G4 a4: + tex: $a_4^{G4}$ + description: Parameter for the form factor calculation of $\Lambda_b\to\Lambda(1520)\ell^+\ell^-$ using the quark model as in arXiv 1108.6129 +Lambdab->Lambda(1520) H1 a0: + tex: $a_0^{H1}$ + description: Parameter for the form factor calculation of $\Lambda_b\to\Lambda(1520)\ell^+\ell^-$ using the quark model as in arXiv 1108.6129 +Lambdab->Lambda(1520) H1 a2: + tex: $a_2^{H1}$ + description: Parameter for the form factor calculation of $\Lambda_b\to\Lambda(1520)\ell^+\ell^-$ using the quark model as in arXiv 1108.6129 +Lambdab->Lambda(1520) H1 a4: + tex: $a_4^{H1}$ + description: Parameter for the form factor calculation of $\Lambda_b\to\Lambda(1520)\ell^+\ell^-$ using the quark model as in arXiv 1108.6129 +Lambdab->Lambda(1520) H2 a0: + tex: $a_0^{H2}$ + description: Parameter for the form factor calculation of $\Lambda_b\to\Lambda(1520)\ell^+\ell^-$ using the quark model as in arXiv 1108.6129 +Lambdab->Lambda(1520) H2 a2: + tex: $a_2^{H2}$ + description: Parameter for the form factor calculation of $\Lambda_b\to\Lambda(1520)\ell^+\ell^-$ using the quark model as in arXiv 1108.6129 +Lambdab->Lambda(1520) H2 a4: + tex: $a_4^{H2}$ + description: Parameter for the form factor calculation of $\Lambda_b\to\Lambda(1520)\ell^+\ell^-$ using the quark model as in arXiv 1108.6129 +Lambdab->Lambda(1520) H3 a0: + tex: $a_0^{H3}$ + description: Parameter for the form factor calculation of $\Lambda_b\to\Lambda(1520)\ell^+\ell^-$ using the quark model as in arXiv 1108.6129 +Lambdab->Lambda(1520) H3 a2: + tex: $a_2^{H3}$ + description: Parameter for the form factor calculation of $\Lambda_b\to\Lambda(1520)\ell^+\ell^-$ using the quark model as in arXiv 1108.6129 +Lambdab->Lambda(1520) H3 a4: + tex: $a_4^{H3}$ + description: Parameter for the form factor calculation of $\Lambda_b\to\Lambda(1520)\ell^+\ell^-$ using the quark model as in arXiv 1108.6129 +Lambdab->Lambda(1520) H4 a0: + tex: $a_0^{H4}$ + description: Parameter for the form factor calculation of $\Lambda_b\to\Lambda(1520)\ell^+\ell^-$ using the quark model as in arXiv 1108.6129 +Lambdab->Lambda(1520) H4 a2: + tex: $a_2^{H4}$ + description: Parameter for the form factor calculation of $\Lambda_b\to\Lambda(1520)\ell^+\ell^-$ using the quark model as in arXiv 1108.6129 +Lambdab->Lambda(1520) H4 a4: + tex: $a_4^{H4}$ + description: Parameter for the form factor calculation of $\Lambda_b\to\Lambda(1520)\ell^+\ell^-$ using the quark model as in arXiv 1108.6129 +Lambdab->Lambda(1520) H5 a0: + tex: $a_0^{H5}$ + description: Parameter for the form factor calculation of $\Lambda_b\to\Lambda(1520)\ell^+\ell^-$ using the quark model as in arXiv 1108.6129 +Lambdab->Lambda(1520) H5 a2: + tex: $a_2^{H5}$ + description: Parameter for the form factor calculation of $\Lambda_b\to\Lambda(1520)\ell^+\ell^-$ using the quark model as in arXiv 1108.6129 +Lambdab->Lambda(1520) H5 a4: + tex: $a_4^{H5}$ + description: Parameter for the form factor calculation of $\Lambda_b\to\Lambda(1520)\ell^+\ell^-$ using the quark model as in arXiv 1108.6129 +Lambdab->Lambda(1520) H6 a0: + tex: $a_0^{H6}$ + description: Parameter for the form factor calculation of $\Lambda_b\to\Lambda(1520)\ell^+\ell^-$ using the quark model as in arXiv 1108.6129 +Lambdab->Lambda(1520) H6 a2: + tex: $a_2^{H6}$ + description: Parameter for the form factor calculation of $\Lambda_b\to\Lambda(1520)\ell^+\ell^-$ using the quark model as in arXiv 1108.6129 +Lambdab->Lambda(1520) H6 a4: + tex: $a_4^{H6}$ + description: Parameter for the form factor calculation of $\Lambda_b\to\Lambda(1520)\ell^+\ell^-$ using the quark model as in arXiv 1108.6129 + + +# Lambdab -> Lambda(1520) form factors from lattice QCD in high q2 region + +Lambdab->Lambda(1520) f0 F: + tex: $F^{f_{0}}$ + description: Constant of the parametrization of the form factor $f_{0}$ from lattice QCD in high q2 region as in arXiv:2009.09313 +Lambdab->Lambda(1520) f0 A: + tex: $F^{f_{0}}$ + description: Slope of the parametrization of the form factor $f_{0}$ from lattice QCD in high q2 region as in arXiv:2009.09313 +Lambdab->Lambda(1520) fplus F: + tex: $F^{f_{+}}$ + description: Constant of the parametrization of the form factor $f_{+}$ from lattice QCD in high q2 region as in arXiv:2009.09313 +Lambdab->Lambda(1520) fplus A: + tex: $F^{f_{+}}$ + description: Slope of the parametrization of the form factor $f_{+}$ from lattice QCD in high q2 region as in arXiv:2009.09313 +Lambdab->Lambda(1520) fperp F: + tex: $F^{f_{\perp}}$ + description: Constant of the parametrization of the form factor $f_{\perp}$ from lattice QCD in high q2 region as in arXiv:2009.09313 +Lambdab->Lambda(1520) fperp A: + tex: $F^{f_{\perp}}$ + description: Slope of the parametrization of the form factor $f_{\perp}$ from lattice QCD in high q2 region as in arXiv:2009.09313 +Lambdab->Lambda(1520) fperpPrim F: + tex: $F^{f_{\perp^{\prime}}}$ + description: Constant of the parametrization of the form factor $f_{\perp^{\prime}}$ from lattice QCD in high q2 region as in arXiv:2009.09313 +Lambdab->Lambda(1520) fperpPrim A: + tex: $F^{f_{\perp^{\prime}}}$ + description: Slope of the parametrization of the form factor $f_{\perp^{\prime}}$ from lattice QCD in high q2 region as in arXiv:2009.09313 + +Lambdab->Lambda(1520) g0 F: + tex: $F^{g_{0}}$ + description: Constant of the parametrization of the form factor $g_{0}$ from lattice QCD in high q2 region as in arXiv:2009.09313 +Lambdab->Lambda(1520) g0 A: + tex: $F^{g_{0}}$ + description: Slope of the parametrization of the form factor $g_{0}$ from lattice QCD in high q2 region as in arXiv:2009.09313 +Lambdab->Lambda(1520) gplus F: + tex: $F^{g_{+}}$ + description: Constant of the parametrization of the form factor $g_{+}$ from lattice QCD in high q2 region as in arXiv:2009.09313 +Lambdab->Lambda(1520) gplus A: + tex: $F^{g_{+}}$ + description: Slope of the parametrization of the form factor $g_{+}$ from lattice QCD in high q2 region as in arXiv:2009.09313 +Lambdab->Lambda(1520) gperp F: + tex: $F^{g_{\perp}}$ + description: Constant of the parametrization of the form factor $g_{\perp}$ from lattice QCD in high q2 region as in arXiv:2009.09313 +Lambdab->Lambda(1520) gperp A: + tex: $F^{g_{\perp}}$ + description: Slope of the parametrization of the form factor $g_{\perp}$ from lattice QCD in high q2 region as in arXiv:2009.09313 +Lambdab->Lambda(1520) gperpPrim F: + tex: $F^{g_{\perp^{\prime}}}$ + description: Constant of the parametrization of the form factor $g_{\perp^{\prime}}$ from lattice QCD in high q2 region as in arXiv:2009.09313 +Lambdab->Lambda(1520) gperpPrim A: + tex: $F^{g_{\perp^{\prime}}}$ + description: Slope of the parametrization of the form factor $g_{\perp^{\prime}}$ from lattice QCD in high q2 region as in arXiv:2009.09313 + +Lambdab->Lambda(1520) hplus F: + tex: $F^{h_{+}}$ + description: Constant of the parametrization of the form factor $h_{+}$ from lattice QCD in high q2 region as in arXiv:2009.09313 +Lambdab->Lambda(1520) hplus A: + tex: $F^{h_{+}}$ + description: Slope of the parametrization of the form factor $h_{+}$ from lattice QCD in high q2 region as in arXiv:2009.09313 +Lambdab->Lambda(1520) hperp F: + tex: $F^{h_{\perp}}$ + description: Constant of the parametrization of the form factor $h_{\perp}$ from lattice QCD in high q2 region as in arXiv:2009.09313 +Lambdab->Lambda(1520) hperp A: + tex: $F^{h_{\perp}}$ + description: Slope of the parametrization of the form factor $h_{\perp}$ from lattice QCD in high q2 region as in arXiv:2009.09313 +Lambdab->Lambda(1520) hperpPrim F: + tex: $F^{h_{\perp^{\prime}}}$ + description: Constant of the parametrization of the form factor $h_{\perp^{\prime}}$ from lattice QCD in high q2 region as in arXiv:2009.09313 +Lambdab->Lambda(1520) hperpPrim A: + tex: $F^{h_{\perp^{\prime}}}$ + description: Slope of the parametrization of the form factor $h_{\perp^{\prime}}$ from lattice QCD in high q2 region as in arXiv:2009.09313 +Lambdab->Lambda(1520) hTplus F: + tex: $F^{\tilde{h}_{+}}$ + description: Constant of the parametrization of the form factor $\tilde{h}_{+}$ from lattice QCD in high q2 region as in arXiv:2009.09313 +Lambdab->Lambda(1520) hTplus A: + tex: $F^{\tilde{h}_{+}}$ + description: Slope of the parametrization of the form factor $\tilde{h}_{+}$ from lattice QCD in high q2 region as in arXiv:2009.09313 +Lambdab->Lambda(1520) hTperp F: + tex: $F^{\tilde{h}_{\perp}}$ + description: Constant of the parametrization of the form factor $\tilde{h}_{\perp}$ from lattice QCD in high q2 region as in arXiv:2009.09313 +Lambdab->Lambda(1520) hTperp A: + tex: $F^{\tilde{h}_{\perp}}$ + description: Slope of the parametrization of the form factor $\tilde{h}_{\perp}$ from lattice QCD in high q2 region as in arXiv:2009.09313 +Lambdab->Lambda(1520) hTperpPrim F: + tex: $F^{\tilde{h}_{\perp^{\prime}}}$ + description: Constant of the parametrization of the form factor $\tilde{h}_{\perp^{\prime}}$ from lattice QCD in high q2 region as in arXiv:2009.09313 +Lambdab->Lambda(1520) hTperpPrim A: + tex: $F^{\tilde{h}_{\perp^{\prime}}}$ + description: Slope of the parametrization of the form factor $\tilde{h}_{\perp^{\prime}}$ from lattice QCD in high q2 region as in arXiv:2009.09313 + + + # Meson bag parameters @@ -1048,6 +1331,13 @@ D->K BCL m+: tex: $m_{D^*}^{f_+}$ description: Resonance mass for the $D\to K$ vector and tensor form factors in BCL parametrization + +# Experimental data needed for helicity amplitude calculation of Lambdab->Lambda(->NKbar)ll from PDG +BR(Lambda(1520)->NKbar)_exp: + tex: $\text{BR}(\Lambda(1520)\to N\bar{K})_\text{exp}$ + description: Experimental branching ratio of $\Lambda(1520)\to N\bar{K}$ + + # Experimental data needed for the normalization of BR(B->Xqgamma) and BR(B->Xqll) C_BXlnu: tex: $C$ diff --git a/flavio/data/parameters_uncorrelated.yml b/flavio/data/parameters_uncorrelated.yml index bb777f11..557a024e 100644 --- a/flavio/data/parameters_uncorrelated.yml +++ b/flavio/data/parameters_uncorrelated.yml @@ -227,6 +227,73 @@ Lambdab->Lambda deltaC9 c_perp1 Im: 0 ± 0.3 Lambdab->Lambda deltaC9 c_para1 Re: 0 ± 0.3 Lambdab->Lambda deltaC9 c_para1 Im: 0 ± 0.3 +# Parameters for the form factor calculation in the quark model of Lambdab->Lambda(1520)ll +Lambdab->Lambda(1520) m_q: 0.2848 +Lambdab->Lambda(1520) m_s: 0.5553 +Lambdab->Lambda(1520) alpha_Lambdab: 0.443 +Lambdab->Lambda(1520) alpha_Lambda(1520): 0.333 + +Lambdab->Lambda(1520) fVt uncertainty: 1 +- 0.1 +Lambdab->Lambda(1520) fVperp uncertainty: 1 +- 0.1 +Lambdab->Lambda(1520) fV0 uncertainty: 1 +- 0.1 +Lambdab->Lambda(1520) fVg uncertainty: 1 +- 0.3 +Lambdab->Lambda(1520) fAt uncertainty: 1 +- 0.1 +Lambdab->Lambda(1520) fAperp uncertainty: 1 +- 0.1 +Lambdab->Lambda(1520) fA0 uncertainty: 1 +- 0.1 +Lambdab->Lambda(1520) fAg uncertainty: 1 +- 0.3 +Lambdab->Lambda(1520) fTt uncertainty: 1 +- 0.1 +Lambdab->Lambda(1520) fTperp uncertainty: 1 +- 0.1 +Lambdab->Lambda(1520) fT0 uncertainty: 1 +- 0.1 +Lambdab->Lambda(1520) fTg uncertainty: 1 +- 0.3 +Lambdab->Lambda(1520) fT5t uncertainty: 1 +- 0.1 +Lambdab->Lambda(1520) fT5perp uncertainty: 1 +- 0.1 +Lambdab->Lambda(1520) fT50 uncertainty: 1 +- 0.1 +Lambdab->Lambda(1520) fT5g uncertainty: 1 +- 0.3 + +Lambdab->Lambda(1520) F1 a0: -1.66 +Lambdab->Lambda(1520) F1 a2: -0.295 +Lambdab->Lambda(1520) F1 a4: 0.00924 +Lambdab->Lambda(1520) F2 a0: 0.544 +Lambdab->Lambda(1520) F2 a2: 0.194 +Lambdab->Lambda(1520) F2 a4: -0.00420 +Lambdab->Lambda(1520) F3 a0: 0.126 +Lambdab->Lambda(1520) F3 a2: 0.00799 +Lambdab->Lambda(1520) F3 a4: -0.000365 +Lambdab->Lambda(1520) F4 a0: -0.0330 +Lambdab->Lambda(1520) F4 a2: -0.00977 +Lambdab->Lambda(1520) F4 a4: 0.00211 +Lambdab->Lambda(1520) G1 a0: -0.964 +Lambdab->Lambda(1520) G1 a2: -0.100 +Lambdab->Lambda(1520) G1 a4: 0.00264 +Lambdab->Lambda(1520) G2 a0: 0.625 +Lambdab->Lambda(1520) G2 a2: 0.219 +Lambdab->Lambda(1520) G2 a4: -0.00508 +Lambdab->Lambda(1520) G3 a0: -0.183 +Lambdab->Lambda(1520) G3 a2: -0.0380 +Lambdab->Lambda(1520) G3 a4: 0.00351 +Lambdab->Lambda(1520) G4 a0: 0.0530 +Lambdab->Lambda(1520) G4 a2: 0.0161 +Lambdab->Lambda(1520) G4 a4: -0.00221 + +Lambdab->Lambda(1520) H1 a0: -1.08 +Lambdab->Lambda(1520) H1 a2: -0.0732 +Lambdab->Lambda(1520) H1 a4: 0.00464 +Lambdab->Lambda(1520) H2 a0: -0.507 +Lambdab->Lambda(1520) H2 a2: -0.246 +Lambdab->Lambda(1520) H2 a4: 0.00309 +Lambdab->Lambda(1520) H3 a0: 0.187 +Lambdab->Lambda(1520) H3 a2: 0.0295 +Lambdab->Lambda(1520) H3 a4: -0.00107 +Lambdab->Lambda(1520) H4 a0: 0.0772 +Lambdab->Lambda(1520) H4 a2: 0.0267 +Lambdab->Lambda(1520) H4 a4: -0.00217 +Lambdab->Lambda(1520) H5 a0: -0.0517 +Lambdab->Lambda(1520) H5 a2: -0.0173 +Lambdab->Lambda(1520) H5 a4: 0.00259 +Lambdab->Lambda(1520) H6 a0: 0.0206 +Lambdab->Lambda(1520) H6 a2: 0.00679 +Lambdab->Lambda(1520) H6 a4: -0.000220 + # Parameters for SM contribution to D-Dbar mixing # As it is poorly known, these are only conservative guesses to @@ -251,6 +318,9 @@ BR(tau->mununu): 17.39(4)e-2 BR(tau->enunu): 17.82(4)e-2 BR(tau->rhonu): 25.2(3)e-2 +# Parameters for Lambdab->Lambda(->NKbar)ll helicity amplitudes, PDG 2020 +BR(Lambda(1520)->NKbar)_exp: 0.45 +- 0.01 + # Parameters needed for eps'/eps eps_K: 2.228(11)e-3 omega+: (4.53 ± 0.02) 1e-2 diff --git a/flavio/data/test/2009.09313_digitized.npz b/flavio/data/test/2009.09313_digitized.npz new file mode 100644 index 00000000..26ed5c12 Binary files /dev/null and b/flavio/data/test/2009.09313_digitized.npz differ diff --git a/flavio/parameters.py b/flavio/parameters.py index 7a7f7c30..f9bfada6 100644 --- a/flavio/parameters.py +++ b/flavio/parameters.py @@ -136,6 +136,7 @@ class FlavioParticle(Particle): 'K+': 321, 'K0': 311, 'Lambda': 3122, + 'Lambda(1520)': 3124, 'Lambdab': 5122, 'Lambdac': 4122, 'omega': 223, diff --git a/flavio/physics/bdecays/__init__.py b/flavio/physics/bdecays/__init__.py index 5291ee9c..717f27b9 100644 --- a/flavio/physics/bdecays/__init__.py +++ b/flavio/physics/bdecays/__init__.py @@ -18,5 +18,6 @@ from . import bllgamma from . import lambdablambdall from . import lambdablambdall_subleading +from . import lambdablambda1520ll from . import bxll from . import bc_lifetime diff --git a/flavio/physics/bdecays/common.py b/flavio/physics/bdecays/common.py index 7d6fbe69..23803cb5 100644 --- a/flavio/physics/bdecays/common.py +++ b/flavio/physics/bdecays/common.py @@ -20,6 +20,7 @@ def beta_l(ml, q2): ('B0','K*0'): 'bs', ('B+','K*+'): 'bs', ('Lambdab','Lambda'): 'bs', +('Lambdab','Lambda(1520)'): 'bs', ('B0','pi0'): 'bd', ('B+','pi+'): 'bd', ('B0','rho0'): 'bd', diff --git a/flavio/physics/bdecays/formfactors/__init__.py b/flavio/physics/bdecays/formfactors/__init__.py index 2d7a09fb..869a7185 100644 --- a/flavio/physics/bdecays/formfactors/__init__.py +++ b/flavio/physics/bdecays/formfactors/__init__.py @@ -4,3 +4,4 @@ from . import b_p from . import b_gamma from . import lambdab_12 +from . import lambdab_32 diff --git a/flavio/physics/bdecays/formfactors/lambdab_32/LatticeQCD.py b/flavio/physics/bdecays/formfactors/lambdab_32/LatticeQCD.py new file mode 100644 index 00000000..e80dc814 --- /dev/null +++ b/flavio/physics/bdecays/formfactors/lambdab_32/LatticeQCD.py @@ -0,0 +1,63 @@ +from math import sqrt, exp + +def omega_fct(q2, mLb, mLst): + # eq. (73) in arXiv:2009.09313v1 + return (mLb*mLb + mLst*mLst - q2)/(2*mLb*mLst) + +def ff_formula(q2, F, A, omega): + # eq. (75) + return F + A*(omega - 1) + +_process_dict = {} +_process_dict['Lambdab->Lambda(1520)'] = {'X': 'Lambda(1520)'} + +def formfactors(process, par, q2): + r"Formfactors for $\Lambda_b\to L(1520)$ from Lattice QCD as in arXiv:2009.09313v1" + pd = _process_dict[process] + mL = par['m_'+pd['X']] + mLb = par['m_Lambdab'] + + omega = omega_fct(q2, mLb, mL) + ff_list = ['f0', 'fplus', 'fperp', 'fperpPrim', + 'g0', 'gplus', 'gperp', 'gperpPrim', + 'hplus', 'hperp', 'hperpPrim', 'hTplus', 'hTperp', 'hTperpPrim'] + + ff_dict = {} + for e in ff_list: + F = par[process+' '+e+' F'] + A = par[process+' '+e+' A'] + + ff_dict[e] = ff_formula(q2, F, A, omega) + + return ff_dict, mL, mLb + + +def ff_equiv(process, q2, par): + # eq. (A21) - (A34) and (6) + ff_dict, mLst, mLb = formfactors(process, par, q2) + + splus = (mLb + mLst)**2 - q2 + sminus = (mLb - mLst)**2 - q2 + + ff = {} + ff['fVt'] = ( mLst/splus )*ff_dict['f0'] + ff['fV0'] = ( mLst/sminus )*ff_dict['fplus'] + ff['fVperp'] = ( mLst/sminus )*ff_dict['fperp'] + ff['fVg'] = ff_dict['fperpPrim'] + + ff['fAt'] = ( mLst/sminus )*ff_dict['g0'] + ff['fA0'] = ( mLst/splus )*ff_dict['gplus'] + ff['fAperp'] = ( mLst/splus )*ff_dict['gperp'] + ff['fAg'] = -ff_dict['gperpPrim'] + + ff['fTt'] = 0 + ff['fT0'] = ( mLst/sminus )*ff_dict['hplus'] + ff['fTperp'] = ( mLst/sminus )*ff_dict['hperp'] + ff['fTg'] = ( mLb + mLst )*ff_dict['hperpPrim'] + + ff['fT5t'] = 0 + ff['fT50'] = ( mLst/splus )*ff_dict['hTplus'] + ff['fT5perp']= ( mLst/splus )*ff_dict['hTperp'] + ff['fT5g'] = -( mLb - mLst )*ff_dict['hTperpPrim'] + + return ff diff --git a/flavio/physics/bdecays/formfactors/lambdab_32/QuarkModel_MCN.py b/flavio/physics/bdecays/formfactors/lambdab_32/QuarkModel_MCN.py new file mode 100644 index 00000000..516189d9 --- /dev/null +++ b/flavio/physics/bdecays/formfactors/lambdab_32/QuarkModel_MCN.py @@ -0,0 +1,105 @@ +from math import sqrt, exp + +def lambda_momentum(q2, mL, mLb): + # daughter baryon momentum in the Lb rest frame + s = q2/(mLb**2) + r = (mL/mLb)**2 + phi = (1-r)**2 - 2*(1+r)*s + s**2 + if phi > 0 : + return mLb/2*sqrt(phi) + else : + return mLb/2*sqrt(-phi) + +def lambda_mass(m_q, m_s): + return 2*m_q + m_s + + +def alpha_lambda_lambdaprime(alpha_l1, alpha_l2): + return sqrt((alpha_l1**2 + alpha_l2**2)/2) + + +def F(a0, a2, a4, p_L, m_q, m_L, alpha): + return (a0 + a2*p_L**2 + a4*p_L**4)*exp(-3*(m_q*p_L)**2/(2*(m_L*alpha)**2)) + + +_process_dict = {} +_process_dict['Lambdab->Lambda(1520)'] = {'X': 'Lambda(1520)'} + + +def formfactors(process, par, q2): + r"Functions for $\Lambda_b\to X_{3/2}$ form factors where $X_{3/2} is a spin-3/2 baryon$ using the Quark Model and the MCN approach treated in arXiv:1108.6129 [nucl-th]" + + # Using the PDG mass values instead the model ones, will be covered by the uncertainties attached to the form factors. + pd = _process_dict[process] + mL = par['m_Lambda(1520)'] + mLb = par['m_Lambdab'] + m_q = par[process + ' m_q'] + m_s = par[process + ' m_s'] + alpha_l1 = par[process +' alpha_Lambdab'] + alpha_l2 = par[process +' alpha_'+pd['X']] + + ff_list = ['F1', 'F2', 'F3', 'F4', + 'G1', 'G2', 'G3', 'G4', + 'H1', 'H2', 'H3', 'H4', 'H5', 'H6'] + + p_lambda = lambda_momentum(q2, mL, mLb) + m_lambda_tilde = lambda_mass(m_q, m_s) + alpha_ll = alpha_lambda_lambdaprime(alpha_l1, alpha_l2) + + ff_dict = {} + for e in ff_list: + a0 = par[process+' '+e+' a0'] + a2 = par[process+' '+e+' a2'] + a4 = par[process+' '+e+' a4'] + + ff_dict[e] = F(a0, a2, a4, p_lambda, m_q, m_lambda_tilde, alpha_ll) + + return ff_dict, mL, mLb + + +def ff_equiv(process, q2, par): + # transform FormDict in form factors used in arXiv:1903.00448 + ff_dict, mL, mLb = formfactors(process, par, q2) + + e_fVt = par[process+' fVt uncertainty'] + e_fVperp = par[process+' fVperp uncertainty'] + e_fV0 = par[process+' fV0 uncertainty'] + e_fVg = par[process+' fVg uncertainty'] + e_fAt = par[process+' fAt uncertainty'] + e_fAperp = par[process+' fAperp uncertainty'] + e_fA0 = par[process+' fA0 uncertainty'] + e_fAg = par[process+' fAg uncertainty'] + e_fTt = par[process+' fTt uncertainty'] + e_fTperp = par[process+' fTperp uncertainty'] + e_fT0 = par[process+' fT0 uncertainty'] + e_fTg = par[process+' fTg uncertainty'] + e_fT5t = par[process+' fT5t uncertainty'] + e_fT5perp = par[process+' fT5perp uncertainty'] + e_fT50 = par[process+' fT50 uncertainty'] + e_fT5g = par[process+' fT5g uncertainty'] + + ff = {} + ff['fVt'] = ( ff_dict['F2']*mL*(mL**2 - mLb**2 - q2) + mLb*(2*ff_dict['F1']*mL*(mL - mLb) - 2*ff_dict['F4']*mL*mLb + ff_dict['F3']*(mL**2 - mLb**2 + q2)) )/( 2*mL*(mL-mLb)*mLb**2 ) * e_fVt + ff['fVperp'] = ( ff_dict["F1"]/mLb - ff_dict["F4"]*mL/(mL**2 - 2*mL*mLb + mLb**2 - q2) )*e_fVperp + ff['fV0'] = ( ff_dict["F2"]*mL*(mL**4 + (mLb**2 - q2)**2 - 2*mL**2*(mLb**2 + q2)) + mLb*(2*ff_dict["F1"]*mL*(mL + mLb)*(mL**2 - 2*mL*mLb + mLb**2 - q2) - 2*ff_dict["F4"]*mL*mLb*(mL**2 - mLb**2 + q2) + ff_dict["F3"]*(mL**4 + (mLb**2 - q2)**2 - 2*mL**2*(mLb**2 + q2))) )/( 2*mL*mLb**2*(mL+mLb)*(mL**2 - 2*mL*mLb + mLb**2 - q2) )*e_fV0 + ff['fVg'] = ff_dict["F4"]*e_fVg + + ff['fAt'] = ( ff_dict["G2"]*mL*(mL**2 - mLb**2 - q2) + mLb*(-2*ff_dict["G4"]*mL*mLb + 2*ff_dict["G1"]*mL*(mL + mLb) + ff_dict["G3"]*(mL**2 - mLb**2 + q2)) )/( 2*mL*mLb**2*(mL + mLb) )*e_fAt + ff['fAperp'] = ( ff_dict["G1"]/mLb - (ff_dict["G4"]*mL)/(mL**2 + 2*mL*mLb + mLb**2 - q2) )*e_fAperp + ff['fA0'] = ( ff_dict["G2"]*mL*(mL**4 + (mLb**2 - q2)**2 - 2*mL**2*(mLb**2 + q2)) + mLb*(2*ff_dict["G1"]*mL*(mL - mLb)*(mL**2 + 2*mL*mLb + mLb**2 - q2) - 2*ff_dict["G4"]*mL*mLb*(mL**2 - mLb**2 + q2) + ff_dict["G3"]*(mL**4 + (mLb**2 - q2)**2 - 2*mL**2*(mLb**2 + q2))) )/( 2*mL*(mL - mLb)*mLb**2*(mL**2 + 2*mL*mLb + mLb**2 - q2) )*e_fA0 + ff['fAg'] = -ff_dict["G4"]*e_fAg + + ff['fTt'] = 0*e_fTt + ff['fTperp'] = ( 2*ff_dict["H5"]*mL - ((ff_dict["H3"]+ff_dict["H6"])*mL**2)/mLb + ff_dict["H3"]*mLb + 2*ff_dict["H1"]*mL*(mL + mLb)/mLb - 2*(ff_dict["H5"] + ff_dict["H6"])*mL**2*(mL - mLb)/((mL - mLb)**2 - q2) - ff_dict["H3"]*q2/mLb + ff_dict["H2"]*mL*(-mL**2 + mLb**2 + q2)/mLb**2 )/( 2*mL*(mL + mLb) )*e_fTperp + ff['fT0'] = ( (ff_dict["H1"] + ff_dict["H2"] - ff_dict["H3"] - ff_dict["H6"])/mLb - 2*((ff_dict["H5"] + ff_dict["H6"])*mL)/((mL - mLb)**2 - q2) + ff_dict["H4"]*((mL + mLb)**2 - q2)/(2*mL*mLb**2) )*e_fT0 + ff['fTg'] = ( ff_dict["H5"]*(mL- mLb) - ff_dict["H6"]*(-mL**2 + mLb**2 + q2)/(2*mLb) )*e_fTg + + ff['fT5t'] = 0*e_fT5t + ff['fT5perp'] = ( -1/(2*mL*(mL-mLb)*mLb**2*(mL**2 + 2*mL*mLb + mLb**2 - q2)) * (ff_dict["H2"]*mL*(mL**4 + (mLb**2 - q2)**2 - 2*mL**2*(mLb**2 + q2)) + mLb*(mL*(2*ff_dict["H5"]*mLb*(mL*mLb + mLb**2 - q2) + ff_dict["H6"]*mL*(mL**2 + 2*mL*mLb + mLb**2 -q2)) - 2*ff_dict["H1"]*mL*(mL - mLb)*(mL**2 + 2*mL*mLb + mLb**2 -q2) + ff_dict["H3"]*(mL**4 + (mLb**2 - q2)**2 - 2*mL**2*(mLb**2 + q2)))) )*e_fT5perp + ff['fT50'] = ( ff_dict["H1"]/mLb + 2*ff_dict["H5"]*mL/(mL**2 + 2*mL*mLb + mLb**2 - q2) )*e_fT50 + ff['fT5g'] = ( -ff_dict["H5"]*(mL + mLb) - ff_dict["H6"]*(mL**2 + 2*mL*mLb + mLb**2 - q2)/(2*mLb) )*e_fT5g + + return ff + + + diff --git a/flavio/physics/bdecays/formfactors/lambdab_32/__init__.py b/flavio/physics/bdecays/formfactors/lambdab_32/__init__.py new file mode 100644 index 00000000..da9c1a2d --- /dev/null +++ b/flavio/physics/bdecays/formfactors/lambdab_32/__init__.py @@ -0,0 +1,5 @@ +r"""Functions for $\Lambda_b\to X_{3/2}$ form factors where $X_{3/2}$ is a spin-3/2 baryon.""" + +from . import lambdab +from . import QuarkModel_MCN +from . import LatticeQCD diff --git a/flavio/physics/bdecays/formfactors/lambdab_32/lambdab.py b/flavio/physics/bdecays/formfactors/lambdab_32/lambdab.py new file mode 100644 index 00000000..423ba0ba --- /dev/null +++ b/flavio/physics/bdecays/formfactors/lambdab_32/lambdab.py @@ -0,0 +1,28 @@ +from flavio.physics.bdecays.formfactors.lambdab_32 import QuarkModel_MCN, LatticeQCD +from flavio.classes import AuxiliaryQuantity, Implementation +from flavio.config import config + + +processes = ['Lambdab->Lambda(1520)',] + + +def ff_function(function, process): + return lambda wc_obj, par_dict, q2: function(process, q2, par_dict) + + +for p in processes: + quantity = p + ' form factor' + a = AuxiliaryQuantity(name=quantity, arguments=['q2']) + a.set_description('Hadronic form factor for the ' + p + ' transition') + + # MCN quark model approach as in arXiv:1108.6129 + iname = p + ' MCN' + i = Implementation(name=iname, quantity=quantity, + function=ff_function(QuarkModel_MCN.ff_equiv, p)) + i.set_description("Form factors calculated using the full quark model wave function with the full relativistic form of the quark current") + + # Lattice QCD prediction arXiv:2009.09313 + iname = p + ' LatticeQCD' + i = Implementation(name=iname, quantity=quantity, + function=ff_function(LatticeQCD.ff_equiv, p)) + i.set_description("Form factors from lattice QCD valid in $q^2 \in [16; 16.8] GeV^2$") diff --git a/flavio/physics/bdecays/formfactors/lambdab_32/test_lambdab.py b/flavio/physics/bdecays/formfactors/lambdab_32/test_lambdab.py new file mode 100644 index 00000000..ba3c75f7 --- /dev/null +++ b/flavio/physics/bdecays/formfactors/lambdab_32/test_lambdab.py @@ -0,0 +1,108 @@ +import unittest +import os +import flavio +from flavio.classes import Implementation +from flavio.physics.bdecays.test_lambdablambdall import ass_sm +from flavio.util import get_datapath +import numpy as np + +path = get_datapath('flavio', 'data/test/') +sm_array = np.load(path+'2009.09313_digitized.npz') + +wc_sm = flavio.WilsonCoefficients() + +def pred_sm(s, name, q2val, target, delta, scalef=1): + obs = flavio.classes.Observable[name] + c = flavio.sm_prediction(name, q2=q2val)*scalef + s.assertAlmostEqual(c, target, delta=delta) + return None + + +def pred_sm_arrays(s, name, targetArray, Unc, delta, scalef=1): + obs = flavio.classes.Observable[name] + for i, q2val in enumerate(targetArray[0]): + target = targetArray[1][i] + c = flavio.sm_prediction(name, q2=q2val)*scalef + if Unc == True: + u = flavio.sm_uncertainty(name, q2=q2val, N=100)*scalef + if target > c : + c = c + u + else : + c = c - u + s.assertAlmostEqual(c, target, delta=delta) + return None + + +class TestLambdabLambda1520_FF(unittest.TestCase): + + def test_lambdab_lambda1520_ff(self): + flavio.config['implementation']['Lambdab->Lambda(1520) form factor'] = 'Lambdab->Lambda(1520) LatticeQCD' + par = flavio.default_parameters.get_central_all() + mLst = par['m_Lambda(1520)'] + mLb = par['m_Lambdab'] + br = par['BR(Lambda(1520)->NKbar)_exp'] + br_inv = 2/br + br_inv2 = 2e9/br + + # Comparison to figure 6 in arXiv:2009.09313v2 + # Scale factor BRinv2 used since in np-array factor e^(-9) not included + Dbr = 'dBR/dq2(Lambdab->Lambda(1520)mumu)' + + pred_sm_arrays(self, Dbr, sm_array['dB_central'], False, 0.05, br_inv2) + pred_sm_arrays(self, Dbr, sm_array['dB_upper'], True, 0.15, br_inv2) + pred_sm_arrays(self, Dbr, sm_array['dB_lower'], True, 0.2, br_inv2) + + # BRinv since not included in figure + pred_sm(self, Dbr, 16.0, 2.5e-9, 0.1e-9, br_inv) + pred_sm(self, Dbr, 16.4, 1.2e-9, 0.1e-9, br_inv) + pred_sm(self, Dbr, 16.8, 0.0, 0.05e-9, br_inv) + + + # Comparison to figure 9 right in arXiv:2009.09313v2 + Afb = 'AFBl(Lambdab->Lambda(1520)mumu)' + + pred_sm_arrays(self, Afb, sm_array['AFBl_central'], False, 0.06) + pred_sm_arrays(self, Afb, sm_array['AFBl_upper'], True, 0.11) + pred_sm_arrays(self, Afb, sm_array['AFBl_lower'], True, 0.11) + + pred_sm(self, Afb, 16.0, -0.09, 0.01) + pred_sm(self, Afb, 16.4, 0.05, 0.01) + pred_sm(self, Afb, 16.8, 0.25, 0.02) + + # Comparison to figure 7 top right in arXiv:2009.09313v3 + S1cc = 'S_1cc(Lambdab->Lambda(1520)mumu)' + + pred_sm_arrays(self, S1cc, sm_array['S1cc_central'], False, 0.01) + pred_sm_arrays(self, S1cc, sm_array['S1cc_upper'], True, 0.1) + pred_sm_arrays(self, S1cc, sm_array['S1cc_lower'], True, 0.1) + + pred_sm(self, S1cc, 16.0, 0.56, 0.01) + pred_sm(self, S1cc, 16.4, 0.56, 0.02) + pred_sm(self, S1cc, 16.8, 0.36, 0.02) + + flavio.config['implementation']['Lambdab->Lambda(1520) form factor'] = 'Lambdab->Lambda(1520) MCN' + + # Comparison to figure on slide 12 S.Meinel b-baryon FEST 2020 + pred_sm_arrays(self, Dbr, sm_array['dB_QM'], False, 0.07, br_inv2) + + pred_sm(self, Dbr, 16.0, 5.4e-9, 0.1e-9, br_inv) + pred_sm(self, Dbr, 16.4, 2.2e-9, 0.1e-9, br_inv) + pred_sm(self, Dbr, 16.6, 0.8e-9, 0.1e-9, br_inv) + + # Comparison to figure on slide 14 S.Meinel b-baryon FEST 2020 + pred_sm_arrays(self, Afb, sm_array['AFBl_QM'], False, 0.07) + + pred_sm(self, Afb, 16.0, -0.16, 0.02) + pred_sm(self, Afb, 16.4, -0.08, 0.02) + pred_sm(self, Afb, 16.6, 0.0, 0.02) + pred_sm(self, Afb, 16.8, 0.22, 0.02) + + # Comparison to figure on slide 13 S.Meinel b-baryon FEST 2020 + pred_sm_arrays(self, S1cc, sm_array['S1cc_QM'], False, 0.02) + + pred_sm(self, S1cc, 16.0, 0.6, 0.02) + pred_sm(self, S1cc, 16.4, 0.6, 0.02) + pred_sm(self, S1cc, 16.8, 0.38, 0.02) + + + diff --git a/flavio/physics/bdecays/lambdablambda1520ll.py b/flavio/physics/bdecays/lambdablambda1520ll.py new file mode 100644 index 00000000..5e520f90 --- /dev/null +++ b/flavio/physics/bdecays/lambdablambda1520ll.py @@ -0,0 +1,360 @@ +r"""Functions for $\Lambda_b \to \Lambda(1520)(\to NK) \ell^+ \ell⁻$ decays as in arXiv:1903.00448.""" + +import flavio +from math import sqrt, pi +from flavio.physics.bdecays.common import lambda_K, beta_l, meson_quark, meson_ff +from flavio.classes import Observable, Prediction, AuxiliaryQuantity +from flavio.physics.common import conjugate_par, conjugate_wc, add_dict +import warnings + + +def helicity_amps(q2, mLb, mL, ff): + # Hadronic helicity amplitudes of Lb->L(1520)(->pK)l+l- + sp = (mLb + mL)**2 - q2 + sm = (mLb - mL)**2 - q2 + + H = {} + # non-vanishing amplitudes in the vector part (V) + # eqs (3.8) of arXiv:1903.00448 + # 1 for 1/2, 3 for 3/2 + H['tV+1+1'] = ff['fVt'] * (mLb - mL)/sqrt(q2) * (sp * sqrt(sm))/(sqrt(6) * mL) + H['tV-1-1'] = H['tV+1+1'] + H['0V+1+1'] = -ff['fV0'] * (mLb + mL)/sqrt(q2) * (sm * sqrt(sp))/(sqrt(6) * mL) + H['0V-1-1'] = H['0V+1+1'] + H['+V+1-1'] = -ff['fVperp'] * (sm * sqrt(sp))/(sqrt(3) * mL) + H['-V-1+1'] = H['+V+1-1'] + H['+V-1-3'] = ff['fVg'] * sqrt(sp) + H['-V+1+3'] = H['+V-1-3'] + + # for the axial part (A), eqs (3.9) + H['tA+1+1'] = ff['fAt'] * (mLb + mL)/sqrt(q2) * (sm * sqrt(sp))/(sqrt(6) * mL) + H['tA-1-1'] = -H['tA+1+1'] + H['0A+1+1'] = -ff['fA0'] * (mLb - mL)/sqrt(q2) * (sp * sqrt(sm))/(sqrt(6) * mL) + H['0A-1-1'] = -H['0A+1+1'] + H['+A+1-1'] = ff['fAperp'] * (sp * sqrt(sm))/(sqrt(3) * mL) + H['-A-1+1'] = -H['+A+1-1'] + H['+A-1-3'] = -ff['fAg'] * sqrt(sm) + H['-A+1+3'] = -H['+A-1-3'] + + # for the tensor part (T), eqs (3.15) + H['0T+1+1'] = ff['fT0'] * sqrt(q2) * (sm * sqrt(sp))/(sqrt(6) * mL) + H['0T-1-1'] = H['0T+1+1'] + H['+T+1-1'] = ff['fTperp'] * (mLb + mL) * (sm * sqrt(sp))/(sqrt(3) * mL) + H['-T-1+1'] = H['+T+1-1'] + H['+T-1-3'] = -ff['fTg'] * sqrt(sp) + H['-T+1+3'] = H['+T-1-3'] + + H['0T5+1+1'] = -ff['fT50'] * sqrt(q2) * (sp * sqrt(sm))/(sqrt(6) * mL) + H['0T5-1-1'] = -H['0T5+1+1'] + H['+T5+1-1'] = ff['fT5perp'] * (mLb - mL) * (sp * sqrt(sm))/(sqrt(3) * mL) + H['-T5-1+1'] = -H['+T5+1-1'] + H['+T5-1-3'] = -ff['fT5g'] * sqrt(sm) + H['-T5+1+3'] = -H['+T5-1-3'] + + return H + + +def transversity_amps(ha, q2, mLb, mL, mqh, wc, prefactor, t): + # Hadronic transversity amplitudes + # defined as in eqs (3.18) and (3.20) + + ## by taking wc_eff + C910Lpl = (wc['v'] - wc['a']) + (wc['vp'] - wc['ap']) + C910Rpl = (wc['v'] + wc['a']) + (wc['vp'] + wc['ap']) + C910Lmi = (wc['v'] - wc['a']) - (wc['vp'] - wc['ap']) + C910Rmi = (wc['v'] + wc['a']) - (wc['vp'] + wc['ap']) + + A = {} + + A['Bperp1', 'L'] = sqrt(2)*( C910Lpl * ha['+V-1-3'] - 2*mqh*(wc['7']+wc['7p'])/q2 * ha['+T-1-3']) + A['Bperp1', 'R'] = sqrt(2)*( C910Rpl * ha['+V-1-3'] - 2*mqh*(wc['7']+wc['7p'])/q2 * ha['+T-1-3']) + A['Bpara1', 'L'] = -sqrt(2)*( C910Lmi * ha['+A-1-3'] + 2*mqh*(wc['7']-wc['7p'])/q2 * ha['+T5-1-3']) + A['Bpara1', 'R'] = -sqrt(2)*( C910Rmi * ha['+A-1-3'] + 2*mqh*(wc['7']-wc['7p'])/q2 * ha['+T5-1-3']) + + + A['Aperp1', 'L'] = sqrt(2)*( C910Lpl * ha['+V+1-1'] - 2*mqh*(wc['7']+wc['7p'])/q2 * ha['+T+1-1']) + A['Aperp1', 'R'] = sqrt(2)*( C910Rpl * ha['+V+1-1'] - 2*mqh*(wc['7']+wc['7p'])/q2 * ha['+T+1-1']) + A['Apara1', 'L'] = -sqrt(2)*( C910Lmi * ha['+A+1-1'] + 2*mqh*(wc['7']-wc['7p'])/q2 * ha['+T5+1-1']) + A['Apara1', 'R'] = -sqrt(2)*( C910Rmi * ha['+A+1-1'] + 2*mqh*(wc['7']-wc['7p'])/q2 * ha['+T5+1-1']) + + A['Aperp0', 'L'] = sqrt(2)*( C910Lpl * ha['0V+1+1'] - 2*mqh*(wc['7']+wc['7p'])/q2 * ha['0T+1+1']) + A['Aperp0', 'R'] = sqrt(2)*( C910Rpl * ha['0V+1+1'] - 2*mqh*(wc['7']+wc['7p'])/q2 * ha['0T+1+1']) + A['Apara0', 'L'] = -sqrt(2)*( C910Lmi * ha['0A+1+1'] + 2*mqh*(wc['7']-wc['7p'])/q2 * ha['0T5+1+1']) + A['Apara0', 'R'] = -sqrt(2)*( C910Rmi * ha['0A+1+1'] + 2*mqh*(wc['7']-wc['7p'])/q2 * ha['0T5+1+1']) + + return {k: prefactor*v for k, v in A.items()} + + +def angular_coefficients(ta, br): + # eqs (4.2) in arxiv + # br is BR(L(1520)->pK) + + L={} + L['1c'] = -2*br*( (ta['Aperp1','L'] * ta['Apara1','L'].conj()).real + - (ta['Aperp1','R'] * ta['Apara1','R'].conj()).real + ) + L['1cc'] = br*( abs(ta['Apara1','L'])**2 + abs(ta['Aperp1','L'])**2 + + abs(ta['Apara1','R'])**2 + abs(ta['Aperp1','R'])**2 + ) + L['1ss'] = br/2*( 2*(abs(ta['Apara0','L'])**2 + abs(ta['Aperp0','L'])**2) + + abs(ta['Apara1','L'])**2 + abs(ta['Aperp1','L'])**2 + + 2*(abs(ta['Apara0','R'])**2 + abs(ta['Aperp0','R'])**2) + + abs(ta['Apara1','R'])**2 + abs(ta['Aperp1','R'])**2 + ) + L['2c'] = -br/2*( (ta['Aperp1','L'] * ta['Apara1','L'].conj()).real + + 3*(ta['Bperp1','L'] * ta['Bpara1','L'].conj()).real + - (ta['Aperp1','R'] * ta['Apara1','R'].conj()).real + - 3*(ta['Bperp1','R'] * ta['Bpara1','R'].conj()).real + ) + L['2cc'] = br/4*( abs(ta['Apara1','L'])**2 + abs(ta['Aperp1','L'])**2 + + 3*(abs(ta['Bpara1','L'])**2 + abs(ta['Bperp1','L'])**2) + + abs(ta['Apara1','R'])**2 + abs(ta['Aperp1','R'])**2 + + 3*(abs(ta['Bpara1','R'])**2 + abs(ta['Bperp1','R'])**2) + ) + L['2ss'] = br/8*( 2*abs(ta['Apara0','L'])**2 + abs(ta['Apara1','L'])**2 + + 2*abs(ta['Aperp0','L'])**2 + abs(ta['Aperp1','L'])**2 + + 3*(abs(ta['Bpara1','L'])**2 + abs(ta['Bperp1','L'])**2) + - 2*sqrt(3)*(ta['Bpara1','L']*ta['Apara1','L'].conj()).real + + 2*sqrt(3)*(ta['Bperp1','L']*ta['Aperp1','L'].conj()).real + + 2*abs(ta['Apara0','R'])**2 + abs(ta['Apara1','R'])**2 + + 2*abs(ta['Aperp0','R'])**2 + abs(ta['Aperp1','R'])**2 + + 3*(abs(ta['Bpara1','R'])**2 + abs(ta['Bperp1','R'])**2) + - 2*sqrt(3)*(ta['Bpara1','R']*ta['Apara1','R'].conj()).real + + 2*sqrt(3)*(ta['Bperp1','R']*ta['Aperp1','R'].conj()).real + ) + L['3ss'] = sqrt(3)/2*br*( (ta['Bpara1','L']*ta['Apara1','L'].conj()).real + - (ta['Bperp1','L']*ta['Aperp1','L'].conj()).real + + (ta['Bpara1','R']*ta['Apara1','R'].conj()).real + - (ta['Bperp1','R']*ta['Aperp1','R'].conj()).real + ) + L['4ss'] = sqrt(3)/2*br*( (ta['Bperp1','L']*ta['Apara1','L'].conj()).imag + - (ta['Bpara1','L']*ta['Aperp1','L'].conj()).imag + + (ta['Bperp1','R']*ta['Apara1','R'].conj()).imag + - (ta['Bpara1','R']*ta['Aperp1','R'].conj()).imag + ) + L['5s'] = sqrt(3/2)*br*( (ta['Bperp1','L']*ta['Apara0','L'].conj()).real + - (ta['Bpara1','L']*ta['Aperp0','L'].conj()).real + - (ta['Bperp1','R']*ta['Apara0','R'].conj()).real + + (ta['Bpara1','R']*ta['Aperp0','R'].conj()).real + ) + L['5sc'] = sqrt(3/2)*br*( -(ta['Bpara1','L']*ta['Apara0','L'].conj()).real + + (ta['Bperp1','L']*ta['Aperp0','L'].conj()).real + - (ta['Bpara1','R']*ta['Apara0','R'].conj()).real + + (ta['Bperp1','R']*ta['Aperp0','R'].conj()).real + ) + L['6s'] = sqrt(3/2)*br*( (ta['Bpara1','L']*ta['Apara0','L'].conj()).imag + - (ta['Bperp1','L']*ta['Aperp0','L'].conj()).imag + - (ta['Bpara1','R']*ta['Apara0','R'].conj()).imag + + (ta['Bperp1','R']*ta['Aperp0','R'].conj()).imag + ) + L['6sc'] = -sqrt(3/2)*br*( (ta['Bperp1','L']*ta['Apara0','L'].conj()).imag + - (ta['Bpara1','L']*ta['Aperp0','L'].conj()).imag + + (ta['Bperp1','R']*ta['Apara0','R'].conj()).imag + - (ta['Bpara1','R']*ta['Aperp0','R'].conj()).imag + ) + + return L + + +def prefactor(q2, par, scale): + # calculate prefactor N + xi_t = flavio.physics.ckm.xi('t','bs')(par) + alphaem = flavio.physics.running.running.get_alpha(par, scale)['alpha_e'] + mLb = par['m_Lambdab'] + mL = par['m_Lambda(1520)'] + la_k = flavio.physics.bdecays.common.lambda_K(mLb**2, mL**2, q2) + return par['GF'] * xi_t * alphaem * sqrt(q2) * la_k**(1/4.) / sqrt(3 * 2 * mLb**3 * pi**5) / 32 + + +def get_ff(q2, par): + ff_aux = AuxiliaryQuantity['Lambdab->Lambda(1520) form factor'] + return ff_aux.prediction(par_dict=par, wc_obj=None, q2=q2) + + +def get_transversity_amps_ff(q2, wc_obj, par_dict, lep, cp_conjugate): + par = par_dict.copy() + if cp_conjugate: + par = conjugate_par(par) + scale = flavio.config['renormalization scale']['lambdab'] + mLb = par['m_Lambdab'] + mL = par['m_Lambda(1520)'] + mb = flavio.physics.running.running.get_mb(par, scale) + ff = get_ff(q2, par) + wc = flavio.physics.bdecays.wilsoncoefficients.wctot_dict(wc_obj, 'bs' + lep + lep, scale, par) + wc_eff = flavio.physics.bdecays.wilsoncoefficients.get_wceff(q2, wc, par, 'Lambdab', 'Lambda(1520)', lep, scale) + + ha = helicity_amps(q2, mLb, mL, ff) + N = prefactor(q2, par, scale) + ta_ff = transversity_amps(ha, q2, mLb, mL, mb, wc_eff, N, 'bs'+lep+lep) + return ta_ff + + +def get_transversity_amps(q2, wc_obj, par, lep, cp_conjugate): + if q2 >= 8.7 and q2 < 14: + warnings.warn("The prediction in the region of narrow charmonium resonances are not meaningful") + return get_transversity_amps_ff(q2, wc_obj, par, lep, cp_conjugate) + + +def get_obs(function, q2, wc_obj, par, lep, *ang_coef): + ml = par['m_'+lep] + mLb = par['m_Lambdab'] + mL = par['m_Lambda(1520)'] + if q2 < 4*ml**2 or q2 > (mLb-mL)**2: + return 0 + ta = get_transversity_amps(q2, wc_obj, par, lep, cp_conjugate=False) + + br = par['BR(Lambda(1520)->NKbar)_exp']/2 + L = angular_coefficients(ta, br) + ta_conj = get_transversity_amps(q2, wc_obj, par, lep, cp_conjugate=True) + L_conj = angular_coefficients(ta_conj, br) + return function(L, L_conj, *ang_coef) + + +# OBSERVABLES +def dGdq2(L, L_conj, *args): + # differential decay width + return (L['1cc'] + 2*L['1ss'] + 2*L['2cc'] + 4*L['2ss'] + 2*L['3ss'] + L_conj['1cc'] + 2*L_conj['1ss'] + 2*L_conj['2cc'] + 4*L_conj['2ss'] + 2*L_conj['3ss'])/6 + + +def S(L, L_conj, ang_coef): + # CP-averaged angular observalbes + # ang_coef is for example '1cc' + return ( L[ang_coef] + L_conj[ang_coef] )/2 + + +def A(L, L_conj, ang_coef): + # CP-asymmetries + # ang_coef is for example '1cc' + return ( L[ang_coef] - L_conj[ang_coef] )/2 + + +def FL_num(L, L_conj, *args): + # longuitudinal polarization of the dilepton system + return (-L['1cc'] + 2*L['1ss'] - 2*L['2cc'] + 4*L['2ss'] + 2*L['3ss'] - L_conj['1cc'] + 2*L_conj['1ss'] - 2*L_conj['2cc'] + 4*L_conj['2ss'] + 2*L_conj['3ss'])/6 + + +def AFBl_num(L, L_conj, *args): + return (L['1c'] + 2*L['2c'] + L_conj['1c'] + 2*L_conj['2c'])/4 + + +def AFBh(*args): + return 0 + + +def AFBlh(*args): + return 0 + + +def dbrdq2(q2, wc_obj, par, lep): + tauLb = par['tau_Lambdab'] + return tauLb * get_obs(dGdq2, q2, wc_obj, par, lep) + + +def dbrdq2_int(q2min, q2max, wc_obj, par, lep): + def obs(q2): + return dbrdq2(q2, wc_obj, par, lep) + return flavio.math.integrate.nintegrate(obs, q2min, q2max)/(q2max-q2min) + + +def obs_int(function, q2min, q2max, wc_obj, par, lep, *ang_coef): + def obs(q2): + return get_obs(function, q2, wc_obj, par, lep, *ang_coef) + return flavio.math.integrate.nintegrate(obs, q2min, q2max) + + +# Functions returning functions needed for Prediction instance + +def dbrdq2_int_func(lep): + def fct(wc_obj, par, q2min, q2max): + return dbrdq2_int(q2min, q2max, wc_obj, par, lep) + return fct + + +def dbrdq2_func(lep): + def fct(wc_obj, par, q2): + return dbrdq2(q2, wc_obj, par, lep) + return fct + + +def obs_ratio_func(func_num, func_den, lep, *ang_coef): + def fct(wc_obj, par, q2): + num = get_obs(func_num, q2, wc_obj, par, lep, *ang_coef) + if num == 0: + return 0 + denom = get_obs(func_den, q2, wc_obj, par, lep, *ang_coef) + return num/denom + return fct + + +def obs_int_ratio_func(func_num, func_den, lep, *ang_coef): + def fct(wc_obj, par, q2min, q2max): + num = obs_int(func_num, q2min, q2max, wc_obj, par, lep, *ang_coef) + if num == 0: + return 0 + denom = obs_int(func_den, q2min, q2max, wc_obj, par, lep, *ang_coef) + return num/denom + return fct + + +_tex = {'e': 'e', 'mu': r'\mu', 'tau': r'\tau'} +_observables = { + 'FL': {'func_num': FL_num, 'tex': r'F_L', 'desc': 'longitudinal polarization fraction'}, + 'AFBl': {'func_num': AFBl_num, 'tex': r'A_\text{FB}^\ell', 'desc': 'leptonic forward-backward asymmetry'}, + 'AFBh': {'func_num': AFBh, 'tex': r'A_\text{FB}^\ell', 'desc': 'hadronic forward-backward asymmetry'}, + 'AFBlh': {'func_num': AFBlh, 'tex': r'A_\text{FB}^{\ell h}', 'desc': 'lepton-hadron forward-backward asymmetry'} + } + +# subscript of angular coefficients L +ang_coef_List = ['1c', '1cc', '1ss', '2c', '2cc', '2ss', '3ss', '4ss', '5s', '5sc', '6s', '6sc'] + +for a in ang_coef_List: + Sstring = 'S_'+a + Astring = 'A_'+a + _observables[Sstring] = {'func_num': S, 'tex': r'S_{'+a+'}', 'desc': 'CP symmetry '+a, 'ang_coef': a} + _observables[Astring] = {'func_num': A, 'tex': r'A_{'+a+'}', 'desc': 'CP asymmetry '+a, 'ang_coef': a} + + +for l in ['e', 'mu', ]: + + _process_tex = r'\Lambda_b\to\Lambda(1520) '+_tex[l]+r'^+'+_tex[l]+r'^-' + _process_taxonomy = r'Process :: $b$ hadron decays :: FCNC decays :: $\Lambda_b\to\Lambda(1520)\ell^+\ell^-$ :: $' + _process_tex + r'$' + + # binned branching ratio + _obs_name = "(Lambdab->Lambda(1520)"+l+l+")" + _obs = Observable(name=_obs_name, arguments=['q2min', 'q2max']) + _obs.set_description(r"Binned differential branching ratio of $" + _process_tex + r"$") + _obs.tex = r"$\langle \frac{d\text{BR}}{dq^2} \rangle(" + _process_tex + r")$" + _obs.add_taxonomy(_process_taxonomy) + Prediction(_obs_name, dbrdq2_int_func(l)) + + # differential branching ratio + _obs_name = "dBR/dq2(Lambdab->Lambda(1520)"+l+l+")" + _obs = Observable(name=_obs_name, arguments=['q2']) + _obs.set_description(r"Differential branching ratio of $" + _process_tex + r"$") + _obs.tex = r"$\frac{d\text{BR}}{dq^2}(" + _process_tex + r")$" + _obs.add_taxonomy(_process_taxonomy) + Prediction(_obs_name, dbrdq2_func(l)) + + for obs in _observables: + # binned angular observables + _obs_name = "<" + obs+">(Lambdab->Lambda(1520)"+l+l+")" + _obs = Observable(name=_obs_name, arguments=['q2min', 'q2max']) + _obs.set_description("Binned " + _observables[obs]['desc'] + r" in $" + _process_tex + r"$") + _obs.tex = r"$\langle " + _observables[obs]['tex'] + r"\rangle(" + _process_tex + r")$" + _obs.add_taxonomy(_process_taxonomy) + if 'ang_coef' in _observables[obs].keys(): + Prediction(_obs_name, obs_int_ratio_func(_observables[obs]['func_num'], dGdq2, l, _observables[obs]['ang_coef'])) + else : + Prediction(_obs_name, obs_int_ratio_func(_observables[obs]['func_num'], dGdq2, l)) + + # differential angular observables + _obs_name = obs+"(Lambdab->Lambda(1520)"+l+l+")" + _obs = Observable(name=_obs_name, arguments=['q2']) + _obs.set_description(_observables[obs]['desc'][0].capitalize() + _observables[obs]['desc'][1:] + r" in $" + _process_tex + r"$") + _obs.tex = r"$" + _observables[obs]['tex'] + r"(" + _process_tex + r")$" + _obs.add_taxonomy(_process_taxonomy) + if 'ang_coef' in _observables[obs].keys(): + Prediction(_obs_name, obs_ratio_func(_observables[obs]['func_num'], dGdq2, l, _observables[obs]['ang_coef'])) + else : + Prediction(_obs_name, obs_ratio_func(_observables[obs]['func_num'], dGdq2, l)) + diff --git a/flavio/physics/bdecays/test_lambdablambda1520ll.py b/flavio/physics/bdecays/test_lambdablambda1520ll.py new file mode 100644 index 00000000..b205cf3f --- /dev/null +++ b/flavio/physics/bdecays/test_lambdablambda1520ll.py @@ -0,0 +1,122 @@ +import unittest +import numpy as np +import flavio +import ckmutil.ckm + +wc_sm = flavio.WilsonCoefficients() +par_nominal = flavio.default_parameters.copy() +par_nominal.set_constraint('alpha_e', 1/128.940) +par = par_nominal.get_central_all() + + +wc_np_mu = flavio.WilsonCoefficients() +wc_np_mu.set_initial({'C9_bsmumu': -1.11}, scale=160) +wc_np_mu.get_wc(sector='bsmumu', scale=4.8, par=par, nf_out=5) + + +ang_coef_List = ['1c', '1cc', '1ss', '2c', '2cc', '2ss', '3ss', '4ss', '5s', '5sc', '6s', '6sc'] + +def ass_sm(s, wc, name, q2min, q2max, target, delta, scalef=1): + obs = flavio.classes.Observable[name] + c = obs.prediction_central(par_nominal, wc, q2min, q2max)*scalef + s.assertAlmostEqual(c, target, delta=delta) + + +class TestLambdabLambda1520ll(unittest.TestCase): + def test_lambdablambda1520ll_binned_qmff_sm(self): + # compare to SM values assuming 10% uncertainty on form factors in table 1 of 2005.09602 using the quark model form factors + # Differences due to C9eff = C9 and C7eff = C7 + # Second test of angular distribution using lattice QCD form factors + # in /bdecays/formfactors/lambdab_32/test_lambdab.py + ass_sm(self, wc_sm, '(Lambdab->Lambda(1520)mumu)', 0.1, 3, 0.42, 0.05, 1e9) + ass_sm(self, wc_sm, '(Lambdab->Lambda(1520)mumu)', 3, 6, 1.34, 0.16, 1e9) + ass_sm(self, wc_sm, '(Lambdab->Lambda(1520)mumu)', 6, 8.86, 3.4, 0.4, 1e9) + ass_sm(self, wc_sm, '(Lambdab->Lambda(1520)mumu)', 1, 6, 0.98, 0.11, 1e9) + + ass_sm(self, wc_sm, '(Lambdab->Lambda(1520)mumu)', 3, 6, -0.131, 0.031) + ass_sm(self, wc_sm, '(Lambdab->Lambda(1520)mumu)', 6, 8.86, -0.24, 0.04) + ass_sm(self, wc_sm, '(Lambdab->Lambda(1520)mumu)', 1, 6, -0.102, 0.028) + + + ass_sm(self, wc_sm, '(Lambdab->Lambda(1520)mumu)', 0.1, 3, 0.179, 0.054) + ass_sm(self, wc_sm, '(Lambdab->Lambda(1520)mumu)', 3, 6, 0.24, 0.04) + ass_sm(self, wc_sm, '(Lambdab->Lambda(1520)mumu)', 6, 8.86, 0.36, 0.05) + ass_sm(self, wc_sm, '(Lambdab->Lambda(1520)mumu)', 1, 6, 0.22, 0.04) + + def test_lambdablambda1520ll_binned_qmff_np(self): + # compare to NP values assuming 10% uncertainty on form factors in table 1 of 2005.09602 using quark model form factors + ass_sm(self, wc_np_mu, '(Lambdab->Lambda(1520)mumu)', 3, 6, 1.04, 0.13, 1e9) + ass_sm(self, wc_np_mu, '(Lambdab->Lambda(1520)mumu)', 6, 8.86, 2.58, 0.32, 1e9) + ass_sm(self, wc_np_mu, '(Lambdab->Lambda(1520)mumu)', 1, 6, 0.77, 0.10, 1e9) + + ass_sm(self, wc_np_mu, '(Lambdab->Lambda(1520)mumu)', 3, 6, -0.059, 0.034) + ass_sm(self, wc_np_mu, '(Lambdab->Lambda(1520)mumu)', 6, 8.86, -0.166, 0.041) + ass_sm(self, wc_np_mu, '(Lambdab->Lambda(1520)mumu)', 1, 6, -0.031, 0.032) + + def test_lambdablambda1520mm_all_observables(self): + # Test if all the observables with l=mu work fine. + ass_sm(self, wc_sm, '(Lambdab->Lambda(1520)mumu)', 1, 6, 0.0, 0.0000001) + ass_sm(self, wc_sm, '(Lambdab->Lambda(1520)mumu)', 1, 6, 0.0, 0.0000001) + ass_sm(self, wc_sm, '(Lambdab->Lambda(1520)mumu)', 1, 6, 0.8, 0.1) + ass_sm(self, wc_sm, '(Lambdab->Lambda(1520)mumu)', 1, 6, 0.0, 0.1) + ass_sm(self, wc_sm, '(Lambdab->Lambda(1520)mumu)', 1, 6, -0.1, 0.1) + ass_sm(self, wc_sm, '(Lambdab->Lambda(1520)mumu)', 1, 6, 0.0, 0.1) + ass_sm(self, wc_sm, '(Lambdab->Lambda(1520)mumu)', 1, 6, 0.2, 0.1) + ass_sm(self, wc_sm, '(Lambdab->Lambda(1520)mumu)', 1, 6, 0.0, 0.1) + ass_sm(self, wc_sm, '(Lambdab->Lambda(1520)mumu)', 1, 6, 0.9, 0.1) + ass_sm(self, wc_sm, '(Lambdab->Lambda(1520)mumu)', 1, 6, 0.0, 0.1) + ass_sm(self, wc_sm, '(Lambdab->Lambda(1520)mumu)', 1, 6, 0.0, 0.1) + ass_sm(self, wc_sm, '(Lambdab->Lambda(1520)mumu)', 1, 6, 0.0, 0.1) + ass_sm(self, wc_sm, '(Lambdab->Lambda(1520)mumu)', 1, 6, 0.0, 0.1) + ass_sm(self, wc_sm, '(Lambdab->Lambda(1520)mumu)', 1, 6, 0.0, 0.1) + ass_sm(self, wc_sm, '(Lambdab->Lambda(1520)mumu)', 1, 6, 0.2, 0.1) + ass_sm(self, wc_sm, '(Lambdab->Lambda(1520)mumu)', 1, 6, 0.0, 0.1) + ass_sm(self, wc_sm, '(Lambdab->Lambda(1520)mumu)', 1, 6, 0.0, 0.1) + ass_sm(self, wc_sm, '(Lambdab->Lambda(1520)mumu)', 1, 6, 0.0, 0.1) + ass_sm(self, wc_sm, '(Lambdab->Lambda(1520)mumu)', 1, 6, 0.0, 0.1) + ass_sm(self, wc_sm, '(Lambdab->Lambda(1520)mumu)', 1, 6, 0.0, 0.1) + ass_sm(self, wc_sm, '(Lambdab->Lambda(1520)mumu)', 1, 6, 0.0, 0.1) + ass_sm(self, wc_sm, '(Lambdab->Lambda(1520)mumu)', 1, 6, 0.0, 0.01) + ass_sm(self, wc_sm, '(Lambdab->Lambda(1520)mumu)', 1, 6, 0.0, 0.01) + ass_sm(self, wc_sm, '(Lambdab->Lambda(1520)mumu)', 1, 6, 0.0, 0.1) + ass_sm(self, wc_sm, '(Lambdab->Lambda(1520)mumu)', 1, 6, 0.0, 0.1) + + def test_lambdablambda1520mm_all_observables(self): + # Test if all the observables with l=e work fine. + ass_sm(self, wc_sm, '(Lambdab->Lambda(1520)ee)', 1, 6, 0.98, 0.11, 1e9) + ass_sm(self, wc_sm, '(Lambdab->Lambda(1520)ee)', 1, 6, -0.102, 0.028) + ass_sm(self, wc_sm, '(Lambdab->Lambda(1520)ee)', 1, 6, 0.0, 0.0000001) + ass_sm(self, wc_sm, '(Lambdab->Lambda(1520)ee)', 1, 6, 0.0, 0.0000001) + ass_sm(self, wc_sm, '(Lambdab->Lambda(1520)ee)', 1, 6, 0.8, 0.1) + ass_sm(self, wc_sm, '(Lambdab->Lambda(1520)ee)', 1, 6, 0.0, 0.1) + ass_sm(self, wc_sm, '(Lambdab->Lambda(1520)ee)', 1, 6, -0.1, 0.1) + ass_sm(self, wc_sm, '(Lambdab->Lambda(1520)ee)', 1, 6, 0.0, 0.1) + ass_sm(self, wc_sm, '(Lambdab->Lambda(1520)ee)', 1, 6, 0.2, 0.1) + ass_sm(self, wc_sm, '(Lambdab->Lambda(1520)ee)', 1, 6, 0.0, 0.1) + ass_sm(self, wc_sm, '(Lambdab->Lambda(1520)ee)', 1, 6, 0.9, 0.1) + ass_sm(self, wc_sm, '(Lambdab->Lambda(1520)ee)', 1, 6, 0.0, 0.1) + ass_sm(self, wc_sm, '(Lambdab->Lambda(1520)ee)', 1, 6, 0.0, 0.1) + ass_sm(self, wc_sm, '(Lambdab->Lambda(1520)ee)', 1, 6, 0.0, 0.1) + ass_sm(self, wc_sm, '(Lambdab->Lambda(1520)ee)', 1, 6, 0.0, 0.1) + ass_sm(self, wc_sm, '(Lambdab->Lambda(1520)ee)', 1, 6, 0.0, 0.1) + ass_sm(self, wc_sm, '(Lambdab->Lambda(1520)ee)', 1, 6, 0.2, 0.1) + ass_sm(self, wc_sm, '(Lambdab->Lambda(1520)ee)', 1, 6, 0.0, 0.1) + ass_sm(self, wc_sm, '(Lambdab->Lambda(1520)ee)', 1, 6, 0.0, 0.1) + ass_sm(self, wc_sm, '(Lambdab->Lambda(1520)ee)', 1, 6, 0.0, 0.1) + ass_sm(self, wc_sm, '(Lambdab->Lambda(1520)ee)', 1, 6, 0.0, 0.1) + ass_sm(self, wc_sm, '(Lambdab->Lambda(1520)ee)', 1, 6, 0.0, 0.1) + ass_sm(self, wc_sm, '(Lambdab->Lambda(1520)ee)', 1, 6, 0.0, 0.1) + ass_sm(self, wc_sm, '(Lambdab->Lambda(1520)ee)', 1, 6, 0.0, 0.01) + ass_sm(self, wc_sm, '(Lambdab->Lambda(1520)ee)', 1, 6, 0.0, 0.01) + ass_sm(self, wc_sm, '(Lambdab->Lambda(1520)ee)', 1, 6, 0.0, 0.1) + ass_sm(self, wc_sm, '(Lambdab->Lambda(1520)ee)', 1, 6, 0.0, 0.1) + + + + + + + + + +