00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014 #include "EvtGenBase/EvtPatches.hh"
00015 #include "EvtGenBase/EvtPatches.hh"
00016 #include "EvtGenBase/EvtReport.hh"
00017 #include "EvtGenModels/EvtHQET2FF.hh"
00018 #include "EvtGenBase/EvtId.hh"
00019 #include <string>
00020 #include "EvtGenBase/EvtPDL.hh"
00021 #include <math.h>
00022
00023
00024
00025 EvtHQET2FF::EvtHQET2FF(double hqetrho2, double hqetha1_1 , double hqetr1_1, double hqetr2_1) {
00026
00027 rho2 = hqetrho2;
00028 r1_1 = hqetr1_1;
00029 r2_1 = hqetr2_1;
00030 ha1_1 = hqetha1_1;
00031
00032 return;
00033 }
00034
00035 EvtHQET2FF::EvtHQET2FF(double hqetrho2, double hqetv1_1) {
00036
00037 rho2 = hqetrho2;
00038 v1_1 = hqetv1_1;
00039
00040 return;
00041 }
00042
00043
00044 void EvtHQET2FF::getscalarff(EvtId parent,EvtId daught,
00045 double t, double mass, double *f0p, double *f0m) {
00046
00047
00048 double mb=EvtPDL::getMeanMass(parent);
00049 double w = ((mb*mb)+(mass*mass)-t)/(2.0*mb*mass);
00050
00051
00052
00053
00054
00055
00056 const double z = (sqrt(w+1)-sqrt(2.))/(sqrt(w+1)+sqrt(2.));
00057 double v1 = v1_1*(1.- 8.*rho2*z + (51.*rho2-10.)*z*z - (252.*rho2-84.)*z*z*z)
00058 ;
00059
00060 *f0p=v1;
00061 *f0m = 0.0;
00062
00063 return;
00064 }
00065
00066 void EvtHQET2FF::getvectorff(EvtId parent,EvtId daught,
00067 double t, double mass, double *a1f,
00068 double *a2f, double *vf, double *a0f ){
00069
00070
00071 double mb=EvtPDL::getMeanMass(parent);
00072 double w = ((mb*mb)+(mass*mass)-t)/(2.0*mb*mass);
00073
00074
00075
00076
00077 double rstar = ( 2.0*sqrt(mb*mass))/(mb+mass);
00078
00079
00080
00081 const double z = (sqrt(w+1)-sqrt(2.))/(sqrt(w+1)+sqrt(2.));
00082 double ha1 =ha1_1*(1.- 8.*rho2*z + (53.*rho2-15.)*z*z - (231.*rho2-91.)*z*z*z);
00083 double r1 = r1_1-0.12*(w-1)+0.05*(w-1)*(w-1);
00084 double r2 = r2_1+0.11*(w-1)-0.06*(w-1)*(w-1);
00085 ;
00086
00087 *a1f = (1.0 - (t/((mb+mass)*(mb+mass))))*ha1;
00088 *a1f = (*a1f)/rstar;
00089 *a2f = (r2/rstar)*ha1;
00090 *vf = (r1/rstar)*ha1;
00091 *a0f = 0.0;
00092
00093 return;
00094 }
00095