9#include "EvtGenBase/EvtReport.hh"
10#include "EvtGenBase/EvtId.hh"
11#include "EvtGenBase/EvtPDL.hh"
18#include "generators/evtgen/models/EvtBGL2FF.h"
21EvtBGL2FF::EvtBGL2FF(
double bglap_0,
double bglap_1,
double bglap_2,
double bglap_3,
double bgla0_0,
double bgla0_1,
double bgla0_2,
49 double t,
double mass,
double* fp,
double* f0)
51 double mb = EvtPDL::getMeanMass(parent);
53 double w = ((mb * mb) + (mass * mass) - t) / (2.0 * mb * mass);
54 const double z = (sqrt(w + 1) - sqrt(2.)) / (sqrt(w + 1) + sqrt(2.));
55 const double chiT = 5.131e-4;
56 const double chiL = 6.332e-3;
57 const double tp = (mass + mb) * (mass + mb);
58 const double tm = (mass - mb) * (mass - mb);
59 const double sqrttpt0 = sqrt(tp - tm);
60 std::vector<double> BcStatesp = {6.329, 6.920, 7.020};
61 std::vector<double> BcStates0 = {6.716, 7.121};
64 for (
size_t n = 0; n < BcStatesp.size(); ++n) {
65 double sqrttpmp = sqrt(tp - pow(BcStatesp[n], 2));
66 double zPp = (sqrttpmp - sqrttpt0) / (sqrttpmp + sqrttpt0);
67 Pp *= (z - zPp) / (1 - z * zPp);
71 for (
size_t n = 0; n < BcStates0.size(); ++n) {
72 double sqrttpmp = sqrt(tp - pow(BcStates0[n], 2));
73 double zP0 = (sqrttpmp - sqrttpt0) / (sqrttpmp + sqrttpt0);
74 P0 *= (z - zP0) / (1 - z * zP0);
78 double kp = (8 * pow(r, 2) / mb) * sqrt(8 * ni / (3 * M_PI * chiT));
79 double k0 = r * (1 - pow(r, 2)) * sqrt(8 * ni / (M_PI * chiL));
81 double phi_sub = (1 + r) * (1 - z) + 2.0 * sqrt(r) * (1 + z);
83 double phi_p = kp * pow(1 + z, 2.) * sqrt(1 - z) * pow(phi_sub, -5);
85 double phi_0 = k0 * (1 - z * z) * sqrt(1 - z) * pow(phi_sub, -4);
101 EvtGenReport(EVTGEN_ERROR,
"EvtGen") <<
"Not implemented :getvectorff in EvtBGL2FF. Use EvtBGLFF instead.\n";
107 double*,
double*,
double*)
110 EvtGenReport(EVTGEN_ERROR,
"EvtGen") <<
"Not implemented :gettensorff in EvtBGL2FF.\n";
118 double*,
double*,
double*)
121 EvtGenReport(EVTGEN_ERROR,
"EvtGen") <<
"Not implemented :getbaryonff in EvtBGL2FF.\n";
127 double*,
double*,
double*,
double*)
130 EvtGenReport(EVTGEN_ERROR,
"EvtGen") <<
"Not implemented :getdiracff in EvtBGL2FF.\n";
136 double*,
double*,
double*,
double*,
double*,
double*)
139 EvtGenReport(EVTGEN_ERROR,
"EvtGen") <<
"Not implemented :getraritaff in EvtBGL2FF.\n";
double a0_2
2nd-order z expansion coefficient 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 coefficient for scalar form factor f_0
double ap_2
2nd-order z expansion coefficient for vector form factor: f_+
EvtBGL2FF(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_1
1st-order z expansion coefficient for vector form factor: f_+
void getdiracff(EvtId, EvtId, double, double, double *, double *, double *, double *, double *, double *)
Returns dirac form factors.
void gettensorff(EvtId, EvtId, double, double, double *, double *, double *, double *)
Returns tensor form factors.
double a0_1
1st-order z expansion coefficient for scalar form factor f_0
void getraritaff(EvtId, EvtId, double, double, double *, double *, double *, double *, double *, double *, double *, double *)
Returns tarita form factors.
void getscalarff(EvtId parent, EvtId daught, double t, double mass, double *fp, double *f0)
Returns scalar form factors.
void getvectorff(EvtId, EvtId, double, double, double *, double *, double *, double *)
Returns vector form factors.
void getbaryonff(EvtId, EvtId, double, double, double *, double *, double *, double *)
Returns baryon form factors.
double a0_0
0th-order z expansion coefficient for scalar form factor f_0
double ap_3
3rd-order z expansion coefficient for vector form factor: f_+