00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #include "EvtGenBase/EvtPatches.hh"
00022 #include "EvtGenBase/EvtPatches.hh"
00023 #include "EvtGenBase/EvtReport.hh"
00024 #include "EvtGenModels/EvtMelikhovFF.hh"
00025 #include "EvtGenBase/EvtId.hh"
00026 #include <string>
00027 #include <math.h>
00028 #include "EvtGenBase/EvtPDL.hh"
00029
00030
00031 EvtMelikhovFF::EvtMelikhovFF(double arg1) {
00032
00033 whichfit = int(arg1+0.1);
00034 return;
00035 }
00036
00037 void EvtMelikhovFF::getvectorff(EvtId parent,EvtId daught,
00038 double t, double mass, double *a1f,
00039 double *a2f, double *vf, double *a0f ){
00040
00041 double ma1(0.0),ra1(0.0),na1(0.0);
00042 double ma2(0.0),ra2(0.0),na2(0.0);
00043 double mv(0.0),rv(0.0),nv(0.0);
00044
00045 if ( whichfit==1) {
00046 ma1 = 7.07;
00047 ra1 = 0.27;
00048 na1 = 2.65;
00049 ma2 = 6.13;
00050 ra2 = 0.25;
00051 na2 = 2.17;
00052 mv = 6.28;
00053 rv = 0.30;
00054 nv = 2.36;
00055 }
00056 if ( whichfit==2) {
00057 ma1 = 6.78;
00058 ra1 = 0.20;
00059 na1 = 2.65;
00060 ma2 = 6.00;
00061 ra2 = 0.19;
00062 na2 = 2.34;
00063 mv = 6.22;
00064 rv = 0.20;
00065 nv = 2.46;
00066 }
00067 if ( whichfit==3) {
00068 ma1 = 6.50;
00069 ra1 = 0.21;
00070 na1 = 2.70;
00071 ma2 = 5.90;
00072 ra2 = 0.20;
00073 na2 = 2.45;
00074 mv = 5.90;
00075 rv = 0.21;
00076 nv = 2.35;
00077 }
00078 if ( whichfit==4) {
00079 ma1 = 5.68;
00080 ra1 = 0.29;
00081 na1 = 1.67;
00082 ma2 = 5.36;
00083 ra2 = 0.28;
00084 na2 = 1.67;
00085 mv = 5.46;
00086 rv = 0.29;
00087 nv = 1.73;
00088 }
00089
00090 double mb=EvtPDL::getMeanMass(parent);
00091
00092
00093 double melr = mass/mb;
00094 double mely = t/(mb*mb);
00095
00096
00097 *a1f = ((1.0+melr*melr-mely)/(1+melr))*ra1/pow(1.0-(t/(ma1*ma1)),na1);
00098 *a2f = (1+melr)*((1.0-melr*melr-mely)/((1+melr)*(1+melr)-mely))
00099 *ra2/pow(1.0-(t/(ma2*ma2)),na2);
00100 *vf = (1+melr)*rv/pow(1.0-(t/(mv*mv)),nv);
00101 *a0f = 0.0;
00102
00103 return;
00104 }
00105
00106