#include <EvtSLBKPoleFF.hh>
Inheritance diagram for EvtSLBKPoleFF:
Public Member Functions | |
EvtSLBKPoleFF (int numarg, double *arglist) | |
void | getscalarff (EvtId parent, EvtId daught, double t, double mass, double *fpf, double *f0f) |
void | getvectorff (EvtId parent, EvtId daught, double t, double mass, double *a1f, double *a2f, double *vf, double *a0f) |
void | gettensorff (EvtId parent, EvtId daught, double t, double mass, double *hf, double *kf, double *bp, double *bm) |
void | getbaryonff (EvtId, EvtId, double, double, double *, double *, double *, double *) |
Private Attributes | |
int | numSLBKPoleargs |
double | SLBKPoleargs [16] |
Definition at line 28 of file EvtSLBKPoleFF.hh.
EvtSLBKPoleFF::EvtSLBKPoleFF | ( | int | numarg, | |
double * | arglist | |||
) |
Definition at line 30 of file EvtSLBKPoleFF.cc.
References genRecEmupikp::i, numSLBKPoleargs, and SLBKPoleargs.
00030 {//modified 00031 numSLBKPoleargs = numarg;//modified 00032 for (int i=0; i<numarg; i++) { 00033 SLBKPoleargs[i] = arglist[i]; }//modified 00034 00035 return; 00036 }
void EvtSLBKPoleFF::getbaryonff | ( | EvtId | , | |
EvtId | , | |||
double | , | |||
double | , | |||
double * | , | |||
double * | , | |||
double * | , | |||
double * | ||||
) | [virtual] |
Reimplemented from EvtSemiLeptonicFF.
Definition at line 224 of file EvtSLBKPoleFF.cc.
References calibUtil::ERROR, and report().
00225 { 00226 00227 report(ERROR,"EvtGen") << "Not implemented :getbaryonff in EvtSLBKPoleFF.\n"; 00228 ::abort(); 00229 00230 }
void EvtSLBKPoleFF::getscalarff | ( | EvtId | parent, | |
EvtId | daught, | |||
double | t, | |||
double | mass, | |||
double * | fpf, | |||
double * | f0f | |||
) | [virtual] |
Reimplemented from EvtSemiLeptonicFF.
Definition at line 39 of file EvtSLBKPoleFF.cc.
References calibUtil::ERROR, EvtPDL::name(), numSLBKPoleargs, report(), and SLBKPoleargs.
00041 { 00042 00043 // Form factors have a general form, with parameters passed in 00044 // from the arguments. 00045 00046 if ( numSLBKPoleargs != 4 ) {//modified 00047 report(ERROR,"EvtGen") << "Problem in EvtSLBKPoleFF::getscalarff\n"; 00048 report(ERROR,"EvtGen") << "wrong number of arguments!\n"; 00049 report(ERROR,"EvtGen") << "number args:"<<numSLBKPoleargs<<" (expected 4)\n"; 00050 report(ERROR,"EvtGen") << "Parent:"<<EvtPDL::name(parent)<<"\n"; 00051 report(ERROR,"EvtGen") << "Daughter:"<<EvtPDL::name(daught)<<"\n"; 00052 00053 } 00054 00055 00056 double f0,af,powf; 00057 00058 //double a_0, a_1, a_2, a_3, a_4, a_5, a_6, a_7; 00059 00060 f0 = SLBKPoleargs[0];//f0 00061 af = SLBKPoleargs[1];//alpha 00062 //bf = SLBKPoleargs[2]; 00063 double mass_star2 = SLBKPoleargs[3]*SLBKPoleargs[3]; 00064 powf = 1.0; 00065 *fpf = f0/(pow( 1.0 - (1.0+af)*(t/mass_star2) + (af*((t/mass_star2)*(t/mass_star2))),powf));//modified 00066 00067 f0 = SLBKPoleargs[0];//f0 00068 af = SLBKPoleargs[2];//beta 00069 //bf = SLBKPoleargs[6]; 00070 powf = 1.0; 00071 00072 *f0f = f0/(pow( 1.0 - (t/mass_star2/af),powf));//modified 00073 00074 return; 00075 }
void EvtSLBKPoleFF::gettensorff | ( | EvtId | parent, | |
EvtId | daught, | |||
double | t, | |||
double | mass, | |||
double * | hf, | |||
double * | kf, | |||
double * | bp, | |||
double * | bm | |||
) | [virtual] |
Reimplemented from EvtSemiLeptonicFF.
Definition at line 179 of file EvtSLBKPoleFF.cc.
References calibUtil::ERROR, EvtPDL::getMeanMass(), Bes_Common::INFO, numSLBKPoleargs, report(), and SLBKPoleargs.
00181 { 00182 00183 if ( numSLBKPoleargs !=16 ) { 00184 report(ERROR,"EvtGen") << "Problem in EvtSLBKPoleFF::gettensorff\n"; 00185 report(ERROR,"EvtGen") << "wrong number of arguements!!!\n"; 00186 } 00187 00188 report(INFO,"EvtGen")<<"Check the implementation of EvtSLBKPoleFF::gettensorff()!\n"; 00189 00190 double mb=EvtPDL::getMeanMass(parent); 00191 double mb2 = mb*mb; 00192 00193 double f0,af,bf,powf; 00194 00195 f0 = SLBKPoleargs[0]; 00196 af = SLBKPoleargs[1]; 00197 bf = SLBKPoleargs[2]; 00198 powf = SLBKPoleargs[3]; 00199 *hf = f0/(pow( 1.0 + (af*t/mb2) + (bf*((t/mb2)*(t/mb2))),powf)); 00200 00201 f0 = SLBKPoleargs[4]; 00202 af = SLBKPoleargs[5]; 00203 bf = SLBKPoleargs[6]; 00204 powf = SLBKPoleargs[7]; 00205 00206 *kf = f0/(pow( 1.0 + (af*t/mb2) + (bf*((t/mb2)*(t/mb2))),powf)); 00207 00208 f0 = SLBKPoleargs[8]; 00209 af = SLBKPoleargs[9]; 00210 bf = SLBKPoleargs[10]; 00211 powf = SLBKPoleargs[11]; 00212 00213 *bpf = f0/(pow( 1.0 + (af*t/mb2) + (bf*((t/mb2)*(t/mb2))),powf)); 00214 00215 f0 = SLBKPoleargs[12]; 00216 af = SLBKPoleargs[13]; 00217 bf = SLBKPoleargs[14]; 00218 powf = SLBKPoleargs[15]; 00219 00220 *bmf = f0/(pow( 1.0 + (af*t/mb2) + (bf*((t/mb2)*(t/mb2))),powf)); 00221 return; 00222 }
void EvtSLBKPoleFF::getvectorff | ( | EvtId | parent, | |
EvtId | daught, | |||
double | t, | |||
double | mass, | |||
double * | a1f, | |||
double * | a2f, | |||
double * | vf, | |||
double * | a0f | |||
) | [virtual] |
Reimplemented from EvtSemiLeptonicFF.
Definition at line 77 of file EvtSLBKPoleFF.cc.
References calibUtil::ERROR, EvtPDL::getId(), EvtPDL::getMeanMass(), Bes_Common::INFO, numSLBKPoleargs, report(), and SLBKPoleargs.
00079 { 00080 00081 if ( numSLBKPoleargs !=8 ) {//modified 00082 report(ERROR,"EvtGen") << "Problem in EvtSLBKPoleFF::getvectorff\n";//modified 00083 report(ERROR,"EvtGen") << "wrong number of arguements!!!\n"; 00084 report(ERROR,"EvtGen") << numSLBKPoleargs<<"\n";//modified 00085 // printf("\n*********************%d*********************",numSLBKPoleargs); 00086 } 00087 00088 00089 report(INFO,"EvtGen")<<"Check the implementation of EvtSLBKPoleFF::getvectorff()!\n"; 00090 00091 00092 double mb=EvtPDL::getMeanMass(parent); 00093 double mb2 = mb*mb; 00094 00095 //modified-begin 00096 static EvtId B0=EvtPDL::getId("B0"); 00097 static EvtId B0B=EvtPDL::getId("anti-B0"); 00098 static EvtId BP=EvtPDL::getId("B+"); 00099 static EvtId BM=EvtPDL::getId("B-"); 00100 static EvtId BS0=EvtPDL::getId("B_s0"); 00101 00102 static EvtId B0S=EvtPDL::getId("B*0"); 00103 static EvtId BPMS=EvtPDL::getId("B*+"); 00104 static EvtId BS0S=EvtPDL::getId("B_s*0"); 00105 00106 static EvtId D0=EvtPDL::getId("D0"); 00107 static EvtId D0B=EvtPDL::getId("anti-D0"); 00108 static EvtId DP=EvtPDL::getId("D+"); 00109 static EvtId DM=EvtPDL::getId("D-"); 00110 static EvtId DSP=EvtPDL::getId("D_s+"); 00111 static EvtId DSM=EvtPDL::getId("D_s-"); 00112 00113 static EvtId D0S=EvtPDL::getId("D*0"); 00114 static EvtId DPMS=EvtPDL::getId("D*+"); 00115 static EvtId DSPMS=EvtPDL::getId("D_s*+"); 00116 00117 double mass_star; 00118 double mass_star2; 00119 if(parent==B0||parent==B0B){ 00120 mass_star=EvtPDL::getMeanMass(B0S); 00121 mass_star2=mass_star*mass_star; 00122 } 00123 if(parent==BP||parent==BM){ 00124 mass_star=EvtPDL::getMeanMass(BPMS); 00125 mass_star2=mass_star*mass_star; 00126 } 00127 if(parent==BS0){ 00128 mass_star=EvtPDL::getMeanMass(BS0S); 00129 mass_star2=mass_star*mass_star; 00130 } 00131 00132 if(parent==D0||parent==D0B){ 00133 mass_star=EvtPDL::getMeanMass(D0S); 00134 mass_star2=mass_star*mass_star; 00135 } 00136 if(parent==DP||parent==DM){ 00137 mass_star=EvtPDL::getMeanMass(DPMS); 00138 mass_star2=mass_star*mass_star; 00139 } 00140 if(parent==DSP||parent==DSM){ 00141 mass_star=EvtPDL::getMeanMass(DSPMS); 00142 mass_star2=mass_star*mass_star; 00143 } 00144 //modified-end 00145 00146 double f0,af,bf,powf; 00147 00148 f0 = SLBKPoleargs[2];//A1 00149 af = SLBKPoleargs[6];//b' 00150 bf = 0;//0 00151 powf = 1.0;//1.0 00152 *a1f = f0/(pow( 1.0 - af*t/mass_star2,powf));//modified 00153 00154 f0 = SLBKPoleargs[3];//A2 00155 af = SLBKPoleargs[6];//b' 00156 bf = SLBKPoleargs[7];//b''==0 00157 powf = 1.0;//1.0 00158 00159 *a2f = f0/(pow(1.0 - (af+bf)*(t/mass_star2) + (af*bf)*((t/mass_star2)*(t/mass_star2)),powf));//modified 00160 00161 f0 = SLBKPoleargs[0];//V0 00162 af = SLBKPoleargs[4];//a 00163 bf = 0;//0 00164 powf = 1.0;//1.0 00165 00166 *vf = f0/(pow( 1.0 - (1.0+af)*(t/mass_star2) + af*(t/mass_star2)*(t/mass_star2),powf));//modified 00167 00168 f0 = SLBKPoleargs[1];//A0 00169 af = SLBKPoleargs[5];//a' 00170 bf = 0;//0 00171 powf = 1.0;//1.0 00172 00173 *a0f = f0/(pow( 1.0 - (1.0+af)*(t/mb2) + af*((t/mb2)*(t/mb2)),powf));//modified 00174 return; 00175 }
int EvtSLBKPoleFF::numSLBKPoleargs [private] |
Definition at line 47 of file EvtSLBKPoleFF.hh.
Referenced by EvtSLBKPoleFF(), getscalarff(), gettensorff(), and getvectorff().
double EvtSLBKPoleFF::SLBKPoleargs[16] [private] |
Definition at line 48 of file EvtSLBKPoleFF.hh.
Referenced by EvtSLBKPoleFF(), getscalarff(), gettensorff(), and getvectorff().