Skip to content
Snippets Groups Projects
Commit 81da99f0 authored by Felix Metzner's avatar Felix Metzner
Browse files

Some fixes and improvments in BToDLNu and BToDstarLNu reweighting.

parent 696473bf
Branches
No related tags found
No related merge requests found
import numpy as np
from eFFORT.utility import BGL_form_factor, z_var, PDG
import abc
import numpy as np
import scipy.integrate
from eFFORT.utility import BGL_form_factor, z_var, PDG
class BToDLNu(abc.ABC):
"""
......@@ -50,12 +51,12 @@ class BToDLNu(abc.ABC):
class BToDLNuCLN(BToDLNu):
def __init__(self, m_B: float, m_Dstar: float, V_cb: float, eta_EW: float = 1.0066, cln_g1=None, cln_rho2=None):
def __init__(self, m_B: float, m_D: float, V_cb: float, eta_EW: float = 1.0066, cln_g1=None, cln_rho2=None):
# CLN specifics, default is given by the Belle Evtgen parameters
self.G_1 = 1.074 if cln_g1 is None else cln_g1
self.rho2 = 1.15 if cln_rho2 is None else cln_rho2
super(BToDLNuCLN, self).__init__(m_B, m_Dstar, V_cb, eta_EW)
super().__init__(m_B=m_B, m_D=m_D, V_cb=V_cb, eta_EW=eta_EW)
def G(self, w: float) -> float:
"""
......@@ -68,10 +69,10 @@ class BToDLNuCLN(BToDLNu):
return (self.G_1 * (1 - 8 * rho2 * z + (51 * rho2 - 10) * z ** 2 - (252 * rho2 - 84) * z ** 3)) ** 2
class BToDLNuBelle(BToDLNu):
class BToDLNuCLNBelle(BToDLNu):
def __init__(self, m_B: float, m_Dstar: float, V_cb: float, eta_EW: float = 1.0066, cln_g1=None, cln_rho2=None):
super(BToDLNuBelle, self).__init__(m_B, m_Dstar, V_cb, eta_EW)
def __init__(self, m_B: float, m_D: float, V_cb: float, eta_EW: float = 1.0066, cln_g1=None, cln_rho2=None):
super().__init__(m_B=m_B, m_D=m_D, V_cb=V_cb, eta_EW=eta_EW)
# CLN specifics, default is given by the Belle Evtgen parameters
self.G_1 = 1.074 if cln_g1 is None else cln_g1
......@@ -90,11 +91,11 @@ class BToDLNuBelle(BToDLNu):
class BToDLNuBGL(BToDLNu):
def __init__(self, m_B: float, m_Dstar: float, V_cb: float, eta_EW: float = 1.0066, bgl_fplus_coefficients=None):
def __init__(self, m_B: float, m_D: float, V_cb: float, eta_EW: float = 1.0066, bgl_fplus_coefficients=None):
# BGL specifics
self.expansion_coefficients = [] if bgl_fplus_coefficients is None else bgl_fplus_coefficients
super(BToDLNuBGL, self).__init__(m_B, m_Dstar, V_cb, eta_EW)
super().__init__(m_B=m_B, m_D=m_D, V_cb=V_cb, eta_EW=eta_EW)
def phi_plus(self, z: float) -> float:
"""
......
import abc
import functools
import numpy as np
import scipy.integrate
......@@ -208,6 +207,9 @@ class BToDstarLNuCLN(BToDstarLNu):
_z = z_var(w)
return self.h_A1_1 * (1 - 8 * rho2 * _z + (53 * rho2 - 15) * _z ** 2 - (231 * rho2 - 91) * _z ** 3)
def R0(self, w: float) -> float:
raise RuntimeError("Not implemented. But also not required for light leptons.")
def R1(self, w):
return self.R1_1 - 0.12 * (w - 1) + 0.05 * (w - 1) ** 2
......@@ -215,10 +217,10 @@ class BToDstarLNuCLN(BToDstarLNu):
return self.R2_1 + 0.11 * (w - 1) - 0.06 * (w - 1) ** 2
class BToDstarLNuBelle(BToDstarLNu):
class BToDstarLNuCLNBelle(BToDstarLNuCLN):
def __init__(self, m_B: float, m_Dstar: float, V_cb: float, eta_EW: float = 1.0066):
super(BToDstarLNuBelle, self).__init__(m_B, m_Dstar, V_cb, eta_EW)
def __init__(self, m_B: float, m_Dstar: float, V_cb: float, eta_EW: float = 1.0066, cached_gammas=None):
super().__init__(m_B=m_B, m_Dstar=m_Dstar, V_cb=V_cb, eta_EW=eta_EW, cached_gammas=cached_gammas)
# CLN specifics, default is given by values in https://arxiv.org/abs/1702.01521v2
self.h_A1_1 = 0.906
......@@ -226,23 +228,12 @@ class BToDstarLNuBelle(BToDstarLNu):
self.R1_1 = 1.18
self.R2_1 = 0.71
def h_A1(self, w):
rho2 = self.rho2
_z = z_var(w)
return self.h_A1_1 * (1 - 8 * rho2 * _z + (53 * rho2 - 15) * _z ** 2 - (231 * rho2 - 91) * _z ** 3)
def R1(self, w):
return self.R1_1 - 0.12 * (w - 1) + 0.05 * (w - 1) ** 2
def R2(self, w):
return self.R2_1 + 0.11 * (w - 1) - 0.06 * (w - 1) ** 2
class BToDstarLNuBGL(BToDstarLNu):
def __init__(self, m_B: float, m_Dstar: float, V_cb: float, eta_EW: float = 1.0066, cached_gammas=None,
exp_coeff=(3.79139e-04, 2.69537e-02, 5.49846e-04, -2.04028e-03, -4.32818e-04, 5.35029e-03)):
super().__init__(m_B, m_Dstar, V_cb, eta_EW)
super().__init__(m_B=m_B, m_Dstar=m_Dstar, V_cb=V_cb, eta_EW=eta_EW)
# BGL specifics, default is given in arXiv:1703.08170v2
self.chiT_plus33 = 5.28e-4 # GeV^-2
......@@ -273,6 +264,9 @@ class BToDstarLNuBGL(BToDstarLNu):
z = z_var(w)
return self.f(z) / (self.m_B * self.m_Dstar) ** 0.5 / (1 + w)
def R0(self, w: float) -> float:
raise RuntimeError("Not implemented. But also not required for light leptons.")
def R1(self, w):
z = z_var(w)
return (w + 1) * self.m_B * self.m_Dstar * self.g(z) / self.f(z)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment