00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #include "EvtGenBase/EvtPatches.hh"
00023 #include "EvtGenBase/EvtPatches.hh"
00024 #include "EvtGenBase/EvtReport.hh"
00025 #include "EvtGenModels/EvtSLPoleFF.hh"
00026 #include <string>
00027 #include "EvtGenBase/EvtPDL.hh"
00028 #include <math.h>
00029
00030 EvtSLPoleFF::EvtSLPoleFF(int numarg, double *arglist) {
00031 numSLPoleargs = numarg;
00032 for (int i=0; i<numarg; i++) {
00033 SLPoleargs[i] = arglist[i]; }
00034
00035 return;
00036 }
00037
00038
00039 void EvtSLPoleFF::getscalarff(EvtId parent,EvtId daught,
00040 double t, double mass, double *fpf,
00041 double *f0f ) {
00042
00043
00044
00045
00046 if ( numSLPoleargs !=8 ) {
00047 report(ERROR,"EvtGen") << "Problem in EvtSLPoleFF::getscalarff\n";
00048 report(ERROR,"EvtGen") << "wrong number of arguements!!!\n";
00049 }
00050
00051 double mb=EvtPDL::getMeanMass(parent);
00052 double mb2 = mb*mb;
00053
00054 double f0,af,bf,powf;
00055
00056 f0 = SLPoleargs[0];
00057 af = SLPoleargs[1];
00058 bf = SLPoleargs[2];
00059 powf = SLPoleargs[3];
00060 *fpf = f0/(pow( 1.0 + (af*t/mb2) + (bf*((t/mb2)*(t/mb2))),powf));
00061
00062 f0 = SLPoleargs[4];
00063 af = SLPoleargs[5];
00064 bf = SLPoleargs[6];
00065 powf = SLPoleargs[7];
00066
00067 *f0f = f0/(pow( 1.0 + (af*t/mb2) + (bf*((t/mb2)*(t/mb2))),powf));
00068
00069 return;
00070 }
00071
00072 void EvtSLPoleFF::getvectorff(EvtId parent,EvtId daught,
00073 double t, double mass, double *a1f,
00074 double *a2f, double *vf, double *a0f ){
00075
00076 if ( numSLPoleargs !=16 ) {
00077 report(ERROR,"EvtGen") << "Problem in EvtSLPoleFF::getvectorff\n";
00078 report(ERROR,"EvtGen") << "wrong number of arguements!!!\n";
00079 report(ERROR,"EvtGen") << numSLPoleargs<<"\n";
00080 }
00081
00082 double mb=EvtPDL::getMeanMass(parent);
00083 double mb2 = mb*mb;
00084
00085 double f0,af,bf,powf;
00086
00087 f0 = SLPoleargs[0];
00088 af = SLPoleargs[1];
00089 bf = SLPoleargs[2];
00090 powf = SLPoleargs[3];
00091 *a1f = f0/(pow( 1.0 + (af*t/mb2) + (bf*((t/mb2)*(t/mb2))),powf));
00092
00093 f0 = SLPoleargs[4];
00094 af = SLPoleargs[5];
00095 bf = SLPoleargs[6];
00096 powf = SLPoleargs[7];
00097
00098 *a2f = f0/(pow( 1.0 + (af*t/mb2) + (bf*((t/mb2)*(t/mb2))),powf));
00099
00100 f0 = SLPoleargs[8];
00101 af = SLPoleargs[9];
00102 bf = SLPoleargs[10];
00103 powf = SLPoleargs[11];
00104
00105 *vf = f0/(pow( 1.0 + (af*t/mb2) + (bf*((t/mb2)*(t/mb2))),powf));
00106
00107 f0 = SLPoleargs[12];
00108 af = SLPoleargs[13];
00109 bf = SLPoleargs[14];
00110 powf = SLPoleargs[15];
00111
00112 *a0f = f0/(pow( 1.0 + (af*t/mb2) + (bf*((t/mb2)*(t/mb2))),powf));
00113 return;
00114 }
00115
00116
00117
00118 void EvtSLPoleFF::gettensorff(EvtId parent,EvtId daught,
00119 double t, double mass, double *hf,
00120 double *kf, double *bpf, double *bmf ){
00121
00122 if ( numSLPoleargs !=16 ) {
00123 report(ERROR,"EvtGen") << "Problem in EvtSLPoleFF::gettensorff\n";
00124 report(ERROR,"EvtGen") << "wrong number of arguements!!!\n";
00125 }
00126
00127 double mb=EvtPDL::getMeanMass(parent);
00128 double mb2 = mb*mb;
00129
00130 double f0,af,bf,powf;
00131
00132 f0 = SLPoleargs[0];
00133 af = SLPoleargs[1];
00134 bf = SLPoleargs[2];
00135 powf = SLPoleargs[3];
00136 *hf = f0/(pow( 1.0 + (af*t/mb2) + (bf*((t/mb2)*(t/mb2))),powf));
00137
00138 f0 = SLPoleargs[4];
00139 af = SLPoleargs[5];
00140 bf = SLPoleargs[6];
00141 powf = SLPoleargs[7];
00142
00143 *kf = f0/(pow( 1.0 + (af*t/mb2) + (bf*((t/mb2)*(t/mb2))),powf));
00144
00145 f0 = SLPoleargs[8];
00146 af = SLPoleargs[9];
00147 bf = SLPoleargs[10];
00148 powf = SLPoleargs[11];
00149
00150 *bpf = f0/(pow( 1.0 + (af*t/mb2) + (bf*((t/mb2)*(t/mb2))),powf));
00151
00152 f0 = SLPoleargs[12];
00153 af = SLPoleargs[13];
00154 bf = SLPoleargs[14];
00155 powf = SLPoleargs[15];
00156
00157 *bmf = f0/(pow( 1.0 + (af*t/mb2) + (bf*((t/mb2)*(t/mb2))),powf));
00158 return;
00159 }
00160