00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #include "EvtGenBase/EvtPatches.hh"
00021
00022 #include "EvtGenBase/EvtPatches.hh"
00023 #include "EvtGenBase/EvtPDL.hh"
00024 #include "EvtGenModels/EvtbTosllBallFF.hh"
00025 #include <math.h>
00026
00027 EvtbTosllBallFF::EvtbTosllBallFF(){}
00028
00029
00030 void EvtbTosllBallFF::getScalarFF(EvtId parent, EvtId daught,
00031 double t, double mass,
00032 double& fp,double& f0,double& ft){
00033
00034 int model = 1;
00035
00036 double m=EvtPDL::getMeanMass(parent);
00037 double md=EvtPDL::getMeanMass(daught);
00038
00039 double shat=t/(m*m);
00040 double shat2=shat*shat;
00041 double shat3=shat2*shat;
00042
00043 if (daught == EvtPDL::getId(std::string("K+")) ||
00044 daught == EvtPDL::getId(std::string("K-")) ||
00045 daught == EvtPDL::getId(std::string("K_S0")) ||
00046 daught == EvtPDL::getId(std::string("K0")) ||
00047 daught == EvtPDL::getId(std::string("anti-K0")) ||
00048 daught == EvtPDL::getId(std::string("K_L0"))
00049 )
00050 {
00051
00052 if (model == 1) {
00053
00054 fp = 0.278*exp(1.568*shat+0.470*shat2+0.885*shat3);
00055 f0 = 0.278*exp(0.740*shat+0.080*shat2+0.425*shat3);
00056 ft = 0.300*exp(1.600*shat+0.501*shat2+0.796*shat3);
00057 }
00058 if (model == 2) {
00059
00060 fp = 0.319*exp(1.465*shat+0.372*shat2+0.782*shat3);
00061 f0 = 0.319*exp(0.633*shat-0.095*shat2+0.591*shat3);
00062 ft = 0.355*exp(1.478*shat+0.373*shat2+0.700*shat3);
00063 }
00064 if (model == 3) {
00065
00066 fp = 0.25/(1.-t/(5.0*5.0));
00067 f0 = 0.25/(1.-t/(7.0*7.0));
00068 ft = - 0.14/((1.0 - t/(5.0*5.0))*(1.0 - t/(7.0*7.0)));
00069 }
00070 if (model == 4) {
00071
00072 fp = 0.36/(1. - 0.048*t + 0.00063*t*t);
00073 double fm = -0.30/(1. - 0.050*t + 0.00061*t*t);
00074 f0 = fp + fm*(t/(m*m - md*md));
00075 ft = -(m+md)*0.06/(1 -0.049*t + 0.00064*t*t);
00076 }
00077 if (model == 5) {
00078 fp = 0.341/(1. - 1.41*shat + 0.406*shat*shat);
00079 f0 = 0.341/(1. - 0.41*shat -0.361*shat*shat);
00080 ft = 0.374/(1. - 1.42*shat + 0.434*shat*shat);
00081 }
00082 }
00083 else if (daught == EvtPDL::getId(std::string("pi+")) ||
00084 daught == EvtPDL::getId(std::string("pi-")) ||
00085 daught == EvtPDL::getId(std::string("pi0")) ||
00086 daught == EvtPDL::getId(std::string("eta")) ||
00087 daught == EvtPDL::getId(std::string("eta'"))
00088 )
00089 {
00090
00091 fp = 0.261/(1. - 2.03*shat + 1.293*shat*shat);
00092 f0 = 0.261/(1. - 0.27*shat -0.752*shat*shat);
00093 ft = 0.296/(1. - 1.28*shat + 0.193*shat*shat);
00094 }
00095
00096
00097
00098 }
00099
00100
00101 void EvtbTosllBallFF::getVectorFF(EvtId parent, EvtId daught,
00102 double t, double mass,
00103 double& a1,double& a2,double& a0, double& v,
00104 double& t1, double& t2, double& t3 ){
00105
00106 int model = 1;
00107
00108 double m=EvtPDL::getMeanMass(parent);
00109 double md=EvtPDL::getMeanMass(daught);
00110
00111 double shat=t/(m*m);
00112 double shat2=shat*shat;
00113
00114 if (
00115 daught == EvtPDL::getId(std::string("K*+")) ||
00116 daught == EvtPDL::getId(std::string("K*-")) ||
00117 daught == EvtPDL::getId(std::string("K*0")) ||
00118 daught == EvtPDL::getId(std::string("anti-K*0"))
00119 )
00120 {
00121 if (model == 1) {
00122
00123 a1 = 0.294*exp(0.656*shat+0.456*shat2);
00124 a2 = 0.246*exp(1.237*shat+0.822*shat2);
00125 a0 = 0.412*exp(1.543*shat+0.954*shat2);
00126 v = 0.399*exp(1.537*shat+1.123*shat2);
00127
00128 t1 = 0.334*exp(1.575*shat+1.140*shat2);
00129 t2 = 0.334*exp(0.562*shat+0.481*shat2);
00130 t3 = 0.234*exp(1.230*shat+1.089*shat2);
00131 }
00132 if (model == 2) {
00133
00134 a1=0.337*exp(0.602*shat+0.258*shat2);
00135 a2=0.282*exp(1.172*shat+0.567*shat2);
00136 a0=0.471*exp(1.505*shat+0.710*shat2);
00137 v=0.457*exp(1.482*shat+1.015*shat2);
00138
00139 t1=0.379*exp(1.519*shat+1.030*shat2);
00140 t2=0.379*exp(0.517*shat+0.426*shat2);
00141 t3=0.260*exp(1.129*shat+1.128*shat2);
00142 }
00143 if (model == 3) {
00144
00145 a1 = 0.30*(1 - 0.023*t);
00146 a2 = 0.40*(1 + 0.034*t);
00147 a0 = 0.3/(1.- t/(4.8*4.8));
00148 v = 0.47/(1.- t/(5.0*5.0));
00149
00150 t1 = 0.19/(1.-t/(5.3*5.3));
00151 t2 = 0.19*(1. - 0.02*t);
00152 t3 = -0.7*(1. + 0.005*t);
00153 }
00154
00155 if (model == 4) {
00156
00157 a1 = 1.6/(1 - 0.0288*t + 0.00028*t*t); a1 = a1/(m+md);
00158 a2 = (m+md)*0.036/(1. - 0.053*t + 0.00082*t*t);
00159 double aminus = 0.041/(1. - 0.055*t + 0.00088*t*t);
00160 double f = 1.60/(1. - 0.0288*t + 0.00028*t*t);
00161 double aplus = -0.036/(1. - 0.053*t + 0.00082*t*t);
00162 a0 = (t*aminus + f + (m*m-md*md)*aplus)/(2.0*md);
00163 v = (m+md)*0.048/(1. - 0.057*t + 0.00085*t*t);
00164
00165 t1 = 0.28/(1. - 0.058*t + 0.0009*t*t);
00166 double gplus = -0.28/(1. - 0.058*t + 0.0009*t*t);
00167 double gminus = 0.24/(1. - 0.059*t + 0.00096*t*t);
00168 t2 = -gplus - (t*gminus)/(m*m-md*md);
00169 double h = 0.0037/(1. - 0.075*t + 0.0016*t*t);
00170 t3 = (m+md)*(m+md)*((gminus/(m*m-md*md) - h/2.));
00171
00172 }
00173 if (model == 5) {
00174 a1 = 0.337/(1. - 0.60*shat - 0.023*shat*shat);
00175 a2 = 0.283/(1. - 1.18*shat + 0.281*shat*shat);
00176 a0 = 0.470/(1. - 1.55*shat + 0.680*shat*shat);
00177 v = 0.458/(1. - 1.55*shat + 0.575*shat*shat);
00178 t1 = 0.379/(1. - 1.59*shat + 0.615*shat*shat);
00179 t2 = 0.379/(1. - 0.49*shat - 0.241*shat*shat);
00180 t3 = 0.261/(1. - 1.20*shat + 0.098*shat*shat);
00181 }
00182 }
00183 else if
00184 (
00185 daught == EvtPDL::getId(std::string("rho+")) ||
00186 daught == EvtPDL::getId(std::string("rho-")) ||
00187 daught == EvtPDL::getId(std::string("rho0")) ||
00188 daught == EvtPDL::getId(std::string("omega"))
00189 )
00190 {
00191
00192 a1 = 0.261/(1. - 0.29*shat - 0.415*shat*shat);
00193 a2 = 0.223/(1. - 0.93*shat - 0.092*shat*shat);
00194 a0 = 0.372/(1. - 1.40*shat + 0.437*shat*shat);
00195 v = 0.338/(1. - 1.37*shat + 0.315*shat*shat);
00196 t1 = 0.285/(1. - 1.41*shat + 0.361*shat*shat);
00197 t2 = 0.285/(1. - 0.28*shat - 0.500*shat*shat);
00198 t3 = 0.202/(1. - 1.06*shat - 0.076*shat*shat);
00199 }
00200
00201
00202
00203
00204 }
00205
00206
00207
00208
00209
00210
00211