//-------------------------------------------------------------------------- // // Environment: // This software is part of the EvtGen package developed jointly // for the BaBar and CLEO collaborations. If you use all or part // of it, please give an appropriate acknowledgement. // // Copyright Information: See EvtGen/COPYRIGHT // Copyright (C) 2000 Caltech, UCSB // // Module: // Description: Form factors for b->sll according to Ali, Ball et al. // hep-ph/9910221v2 // // Modification history: // // Ryd January 5, 2000 Module created // //------------------------------------------------------------------------ #include "EvtGenBase/EvtPatches.hh" #include "EvtGenBase/EvtPatches.hh" #include "EvtGenBase/EvtPDL.hh" #include "EvtGenModels/EvtbTosllBallFF.hh" #include EvtbTosllBallFF::EvtbTosllBallFF(){} void EvtbTosllBallFF::getScalarFF(EvtId parent, EvtId daught, double t, double mass, double& fp,double& f0,double& ft){ int model = 1; double m=EvtPDL::getMeanMass(parent); double md=EvtPDL::getMeanMass(daught); double shat=t/(m*m); double shat2=shat*shat; double shat3=shat2*shat; if (daught == EvtPDL::getId(std::string("K+")) || daught == EvtPDL::getId(std::string("K-")) || daught == EvtPDL::getId(std::string("K_S0")) || daught == EvtPDL::getId(std::string("K0")) || daught == EvtPDL::getId(std::string("anti-K0")) || daught == EvtPDL::getId(std::string("K_L0")) ) { // B --> K form factors if (model == 1) { //this is Ali-Ball '01 fp = 0.278*exp(1.568*shat+0.470*shat2+0.885*shat3); f0 = 0.278*exp(0.740*shat+0.080*shat2+0.425*shat3); ft = 0.300*exp(1.600*shat+0.501*shat2+0.796*shat3); } if (model == 2) { //this is Ali-Ball '99 fp = 0.319*exp(1.465*shat+0.372*shat2+0.782*shat3); f0 = 0.319*exp(0.633*shat-0.095*shat2+0.591*shat3); ft = 0.355*exp(1.478*shat+0.373*shat2+0.700*shat3); } if (model == 3) { //QCD sum rules (Colangelo et al) fp = 0.25/(1.-t/(5.0*5.0)); f0 = 0.25/(1.-t/(7.0*7.0)); ft = - 0.14/((1.0 - t/(5.0*5.0))*(1.0 - t/(7.0*7.0))); } if (model == 4) { // Quark model (Melikhov et al) fp = 0.36/(1. - 0.048*t + 0.00063*t*t); double fm = -0.30/(1. - 0.050*t + 0.00061*t*t); f0 = fp + fm*(t/(m*m - md*md)); ft = -(m+md)*0.06/(1 -0.049*t + 0.00064*t*t); } if (model == 5) { fp = 0.341/(1. - 1.41*shat + 0.406*shat*shat); f0 = 0.341/(1. - 0.41*shat -0.361*shat*shat); ft = 0.374/(1. - 1.42*shat + 0.434*shat*shat); } } else if (daught == EvtPDL::getId(std::string("pi+")) || daught == EvtPDL::getId(std::string("pi-")) || daught == EvtPDL::getId(std::string("pi0")) || daught == EvtPDL::getId(std::string("eta")) || daught == EvtPDL::getId(std::string("eta'")) ) { // B --> pi form factors fp = 0.261/(1. - 2.03*shat + 1.293*shat*shat); f0 = 0.261/(1. - 0.27*shat -0.752*shat*shat); ft = 0.296/(1. - 1.28*shat + 0.193*shat*shat); } // cout << "shat "< rho form factors a1 = 0.261/(1. - 0.29*shat - 0.415*shat*shat); a2 = 0.223/(1. - 0.93*shat - 0.092*shat*shat); a0 = 0.372/(1. - 1.40*shat + 0.437*shat*shat); v = 0.338/(1. - 1.37*shat + 0.315*shat*shat); t1 = 0.285/(1. - 1.41*shat + 0.361*shat*shat); t2 = 0.285/(1. - 0.28*shat - 0.500*shat*shat); t3 = 0.202/(1. - 1.06*shat - 0.076*shat*shat); } //cout << "shat "<