Changeset View
Changeset View
Standalone View
Standalone View
src/EvtGenModels/EvtbTosllBSZFF.cpp
- This file was added.
#include "EvtGenModels/EvtbTosllBSZFF.hh" | |||||
#include "EvtGenBase/EvtPDL.hh" | |||||
#include <cmath> | |||||
inline double poly( double x, int n, const double* c ) | |||||
{ | |||||
double t = c[--n]; | |||||
while ( n-- ) | |||||
t = c[n] + x * t; | |||||
return t; | |||||
} | |||||
void EvtbTosllBSZFF::getScalarFF( EvtId parent, EvtId daught, double t, | |||||
double /*mass*/, double& fp, double& f0, | |||||
double& ft ) | |||||
{ | |||||
double m = EvtPDL::getMeanMass( parent ); | |||||
t /= m * m; | |||||
// B --> K form factors | |||||
//this is Ali-Ball '01 (or really Ali-Ball'99 minimum allowed) | |||||
fp = t * ( 1.568 + t * ( 0.470 + t * ( 0.885 ) ) ); | |||||
f0 = t * ( 0.740 + t * ( 0.080 + t * ( 0.425 ) ) ); | |||||
ft = t * ( 1.600 + t * ( 0.501 + t * ( 0.796 ) ) ); | |||||
fp = 0.278 * exp( fp ); | |||||
f0 = 0.278 * exp( f0 ); | |||||
ft = 0.300 * exp( ft ); | |||||
} | |||||
void EvtbTosllBSZFF::getVectorFF( EvtId pId, EvtId, double q2, double mV, | |||||
double& a1, double& a2, double& a0, double& v, | |||||
double& t1, double& t2, double& t3 ) | |||||
{ | |||||
const static double alfa[7][4] = { | |||||
// coefficients are from https://arxiv.org/src/1503.05534v3/anc/BKstar_LCSR-Lattice.json | |||||
// m_res, c0, c1, c2 | |||||
{ 5.415000, 0.376313, -1.165970, 2.424430 }, // V | |||||
{ 5.366000, 0.369196, -1.365840, 0.128191 }, // A0 | |||||
{ 5.829000, 0.297250, 0.392378, 1.189160 }, // A1 | |||||
{ 5.829000, 0.265375, 0.533638, 0.483166 }, // A12 | |||||
{ 5.415000, 0.312055, -1.008930, 1.527200 }, // T1 | |||||
{ 5.829000, 0.312055, 0.496846, 1.614310 }, // T2 | |||||
{ 5.829000, 0.667412, 1.318120, 3.823340 } // T12 | |||||
// ffv1 | |||||
// {5.415000, 0.376313+0.033259, -1.165970+0.123496, 2.424430-0.038413}, | |||||
// {5.366000, 0.369196-0.000870, -1.365840+0.158886, 0.128191+0.705349}, | |||||
// {5.829000, 0.297250-0.023744, 0.392378-0.128900, 1.189160-0.207408}, | |||||
// {5.829000, 0.265375-0.008545, 0.533638+0.108205, 0.483166+0.435457}, | |||||
// {5.415000, 0.312055-0.001346, -1.008930-0.198232, 1.527200-2.387283}, | |||||
// {5.829000, 0.312055-0.038173, 0.496846-0.067891, 1.614310+0.349193}, | |||||
// {5.829000, 0.667412+0.036716, 1.318120-0.038069, 3.823340+0.606166}, | |||||
// ffv2 | |||||
// {5.415000, 0.376313-0.041113, -1.165970-0.045535, 2.424430+1.137686}, | |||||
// {5.366000, 0.369196-0.003901, -1.365840-0.121212, 0.128191-0.729504}, | |||||
// {5.829000, 0.297250+0.048609, 0.392378+0.210965, 1.189160+0.906521}, | |||||
// {5.829000, 0.265375+0.000100, 0.533638-0.042370, 0.483166+0.284835}, | |||||
// {5.415000, 0.312055+0.002605, -1.008930+0.215231, 1.527200+2.604514}, | |||||
// {5.829000, 0.312055-0.003748, 0.496846-0.039576, 1.614310-0.241782}, | |||||
// {5.829000, 0.667412-0.007496, 1.318120-0.252147, 3.823340-1.210450}, | |||||
// ffv3 | |||||
// {5.415000, 0.376313+0.000735, -1.165970-0.007790, 2.424430-1.608712}, | |||||
// {5.366000, 0.369196+0.050484, -1.365840+0.217869, 0.128191-0.479841}, | |||||
// {5.829000, 0.297250-0.031106, 0.392378-0.314969, 1.189160-2.128420}, | |||||
// {5.829000, 0.265375+0.027843, 0.533638+0.155898, 0.483166+0.413373}, | |||||
// {5.415000, 0.312055+0.006707, -1.008930-0.112003, 1.527200-1.779484}, | |||||
// {5.829000, 0.312055-0.021665, 0.496846-0.400001, 1.614310-2.018040}, | |||||
// {5.829000, 0.667412-0.078741, 1.318120-0.140305, 3.823340+3.390407}, | |||||
// ffv4 | |||||
// {5.415000, 0.376313-0.015611, -1.165970-0.474344, 2.424430-1.821098}, | |||||
// {5.366000, 0.369196+0.051546, -1.365840+0.113835, 0.128191-0.334548}, | |||||
// {5.829000, 0.297250-0.009712, 0.392378-0.144326, 1.189160-0.880261}, | |||||
// {5.829000, 0.265375-0.006262, 0.533638-0.036838, 0.483166+0.208676}, | |||||
// {5.415000, 0.312055+0.012515, -1.008930+0.057467, 1.527200+1.067426}, | |||||
// {5.829000, 0.312055+0.009879, 0.496846-0.025578, 1.614310+0.063207}, | |||||
// {5.829000, 0.667412+0.088066, 1.318120+0.306504, 3.823340-1.852577}, | |||||
// ffv5 | |||||
// {5.415000, 0.376313+0.009252, -1.165970-0.073415, 2.424430-1.479015}, | |||||
// {5.366000, 0.369196-0.037582, -1.365840-0.015347, 0.128191+1.217427}, | |||||
// {5.829000, 0.297250-0.039144, 0.392378-0.016291, 1.189160+1.097737}, | |||||
// {5.829000, 0.265375-0.003710, 0.533638-0.047800, 0.483166-0.066831}, | |||||
// {5.415000, 0.312055-0.012360, -1.008930+0.139269, 1.527200+1.496325}, | |||||
// {5.829000, 0.312055+0.002256, 0.496846+0.142894, 1.614310+1.115639}, | |||||
// {5.829000, 0.667412-0.089004, 1.318120-0.037696, 3.823340+2.278156}, | |||||
}; | |||||
double mB = EvtPDL::getMeanMass( pId ); | |||||
double mBaV = mB + mV, mBsV = mB - mV; | |||||
double tp = mBaV * mBaV; // t_{+} = (m_B + m_V)^2 | |||||
double s0 = sqrt( | |||||
2 * mBaV * | |||||
sqrt( mB * mV ) ); // sqrt(t_{+} - t_{+}*(1 - sqrt(1 - t_{-}/t_{+}))) | |||||
double z0 = ( mBaV - s0 ) / | |||||
( mBaV + s0 ); // (sqrt(t_{+}) - s0)/(sqrt(t_{+}) + s0) | |||||
double s = sqrt( tp - q2 ), z = ( s - s0 ) / ( s + s0 ), dz = z - z0, ff[7]; | |||||
for ( int j = 0; j < 7; j++ ) { | |||||
double mR = alfa[j][0], mR2 = mR * mR; | |||||
ff[j] = ( mR2 / ( mR2 - q2 ) ) * poly( dz, 3, alfa[j] + 1 ); | |||||
} | |||||
// Källén-function | |||||
// arXiv:1503.05534 Eq. D.3 | |||||
double lambda = ( mBaV * mBaV - q2 ) * ( mBsV * mBsV - q2 ); | |||||
v = ff[0]; | |||||
a0 = ff[1]; | |||||
a1 = ff[2]; | |||||
// Eq. D.5 arXiv:1503.05534 | |||||
// A12 = (mBaV*mBaV*(mBaV*mBsV - q2)*A1 - lambda(q2)*A2)/(16*mB*mV*mV*mBaV); | |||||
double a12 = ff[3]; | |||||
a2 = mBaV * | |||||
( ( mBaV * ( mBaV * mBsV - q2 ) ) * a1 - ( 16 * mB * mV * mV ) * a12 ) / | |||||
lambda; | |||||
t1 = ff[4]; | |||||
t2 = ff[5]; | |||||
// Eq. D.5 arXiv:1503.05534 | |||||
// T23 = mBaV*mBsV*(mB*mB + 3*mV*mV - q2)*T2 - lambda(q2)*T3)/(8*mB*mV*mV*mBsV); | |||||
double t23 = ff[6]; | |||||
t3 = mBsV * | |||||
( mBaV * ( mB * mB + 3 * mV * mV - q2 ) * t2 - | |||||
( 8 * mB * mV * mV ) * t23 ) / | |||||
lambda; | |||||
} |