9 #include "EvtGenBase/EvtReport.hh"
10 #include "EvtGenBase/EvtId.hh"
11 #include "EvtGenBase/EvtPDL.hh"
15 #include "generators/evtgen/models/EvtBGLFF.h"
18 EvtBGLFF::EvtBGLFF(
double bglap_0,
double bglap_1,
double bglap_2,
double bglap_3,
double bgla0_0,
double bgla0_1,
double bgla0_2,
37 EvtBGLFF::EvtBGLFF(
double bgla_0,
double bgla_1,
double bglb_0,
double bglb_1,
double bglc_1,
double bglc_2)
59 double t,
double mass,
double* fp,
double* f0)
62 double mb = EvtPDL::getMeanMass(parent);
64 double w = ((mb * mb) + (mass * mass) - t) / (2.0 * mb * mass);
65 const double z = (sqrt(w + 1) - sqrt(2.)) / (sqrt(w + 1) + sqrt(2.));
66 const double p_i = 1.0;
68 double phi_sub = (1 + r) * (1 - z) + 2.0 * sqrt(r) * (1 + z);
70 double g_sub = (4.0 * r) / pow(1 + r, 2);
72 double phi_p = 1.1213 * pow(1 + z, 2.) * sqrt(1 - z) * pow(phi_sub, -5);
74 double phi_0 = 0.5299 * (1 + z) * pow(1 - z, 1.5) * pow(phi_sub, -4);
77 *fp = g_sub * (
ap_0 +
ap_1 * z +
ap_2 * z * z +
ap_3 * z * z * z) / (p_i * phi_p);
79 *f0 = g_sub * (
a0_0 +
a0_1 * z +
a0_2 * z * z +
a0_3 * z * z * z) / (p_i * phi_0);
90 double* a2f,
double* vf,
double* a0f)
94 double mb = EvtPDL::getMeanMass(parent);
95 double w = ((mb * mb) + (mass * mass) - t) / (2. * mb * mass);
100 const double r = mass / mb;
101 double z = (sqrt(w + 1.) - sqrt(2.)) / (sqrt(w + 1) + sqrt(2.));
102 const double rstar = (2. * sqrt(mb * mass)) / (mb + mass);
103 const double chiT_plus33 = 5.28e-4;
104 const double chiT_minus33 = 3.07e-4;
105 const double n_i = 2.6;
106 const double axialvector_poles[4] = {6.730, 6.736, 7.135, 7.142};
107 const double vector_poles[4] = {6.337, 6.899, 7.012, 7.280};
109 const double c_0 = (mb - mass) / mb * sqrt(0.5) / (1 + r + 2. * sqrt(r)) *
b_0;
111 double phi_g = sqrt(256. * n_i / (3. * M_PI * chiT_plus33)) * r * r * (1. + z) * (1. + z) / sqrt(1. - z) / pow((1. + r) *
112 (1. - z) + 2. * sqrt(r) * (1. + z), 4.);
113 double phi_f = 1. / (mb * mb) * sqrt(16. * n_i / (3. * M_PI * chiT_minus33)) * r * (1. + z) * pow(1. - z ,
114 1.5) / pow((1. + r) * (1. - z) + 2. * sqrt(r) * (1. + z), 4.);
115 double phi_F1 = 1. / (mb * mb * mb) * sqrt(8. * n_i / (3. * M_PI * chiT_minus33)) * r * (1. + z) * pow(1. - z ,
116 2.5) / pow((1. + r) * (1. - z) + 2 * sqrt(r) * (1. + z), 5.);
120 const double term3 = sqrt((mb + mass) * (mb + mass) - (mb - mass) * (mb - mass));
121 for (
int i = 0; i < 4; i++) {
122 double term1 = sqrt((mb + mass) * (mb + mass) - vector_poles[i] * vector_poles[i]);
123 double term2 = sqrt((mb + mass) * (mb + mass) - axialvector_poles[i] * axialvector_poles[i]);
124 double z_p1 = (term1 - term3) / (term1 + term3);
125 p_g = p_g * (z - z_p1) / (1 - z * z_p1);
126 double z_p2 = (term2 - term3) / (term2 + term3);
127 p_f = p_f * (z - z_p2) / (1 - z * z_p2);
130 double g = 1. / p_g / phi_g * (
a_0 +
a_1 * z);
131 double f = 1. / p_f / phi_f * (
b_0 +
b_1 * z);
132 double F1 = 1. / p_f / phi_F1 * (c_0 +
c_1 * z +
c_2 * z * z);
134 double ha1 = f / sqrt(mb * mass) / (1. + w);
135 double r1 = (w + 1.) * mb * mass * g / f;
136 double r2 = (w - r) / (w - 1) - F1 / mb / (w - 1) / f;
138 *a1f = (w + 1.) / 2. * rstar * ha1;
139 *a2f = (r2 / rstar) * ha1;
140 *vf = (r1 / rstar) * ha1;
148 double*,
double*,
double*)
151 EvtGenReport(EVTGEN_ERROR,
"EvtGen") <<
"Not implemented :gettensorff in EvtBGLFF.\n";
159 double*,
double*,
double*)
162 EvtGenReport(EVTGEN_ERROR,
"EvtGen") <<
"Not implemented :getbaryonff in EvtBGLFF.\n";
168 double*,
double*,
double*,
double*)
171 EvtGenReport(EVTGEN_ERROR,
"EvtGen") <<
"Not implemented :getdiracff in EvtBGLFF.\n";
177 double*,
double*,
double*,
double*,
double*,
double*)
180 EvtGenReport(EVTGEN_ERROR,
"EvtGen") <<
"Not implemented :getraritaff in EvtBGLFF.\n";
double a0_2
2nd-order z expansion coeffieient for scalar form factor f_0
double ap_0
B -> Dlnu: ai_n (i = p —vector, 0 —scalar; n = 0,1,2,3) are free coefficients of z expansion in dispe...
double a0_3
3rd-order z expansion coeffieient for scalar form factor f_0
double ap_2
2nd-order z expansion coeffieient for vector form factor: f_+
double c_1
1st-order z expansion coeffieient for form factor F1
double ap_1
1st-order z expansion coeffieient for vector form factor: f_+
void getdiracff(EvtId, EvtId, double, double, double *, double *, double *, double *, double *, double *)
Returns dirac ffs.
void gettensorff(EvtId, EvtId, double, double, double *, double *, double *, double *)
Returns tensor ffs.
double b_0
0th-order z expansion coeffieient for form factor f
double a0_1
1st-order z expansion coeffieient for scalar form factor f_0
void getraritaff(EvtId, EvtId, double, double, double *, double *, double *, double *, double *, double *, double *, double *)
Returns tarita ffs.
void getvectorff(EvtId parent, EvtId daught, double t, double mass, double *a1f, double *a2f, double *vf, double *a0f)
Returns vector ffs.
void getscalarff(EvtId parent, EvtId daught, double t, double mass, double *fp, double *f0)
Returns scalar ffs.
double b_1
1st-order z expansion coeffieient for form factor f
double c_2
2nd-order z expansion coeffieient for form factor F1
void getbaryonff(EvtId, EvtId, double, double, double *, double *, double *, double *)
Returns baryon ffs.
double a0_0
0th-order z expansion coeffieient for scalar form factor f_0
double a_1
1st-order z expansion coeffieient for form factor g
double a_0
B->D*lnu z expansion coeffieients
EvtBGLFF(double bglap_0, double bglap_1, double bglap_2, double bglap_3, double bgla0_0, double bgla0_1, double bgla0_2, double bgla0_3)
Default constructor.
double ap_3
3rd-order z expansion coeffieient for vector form factor: f_+