00001 #ifndef __INCLUDE_KPLUSPIMINUS_SQWELL__ 00002 #define __INCLUDE_KPLUSPIMINUS_SQWELL__ 00003 #include "wavefunction.h" 00004 00005 using namespace std; 00006 00007 CWaveFunction_kpluspiminus_sqwell::CWaveFunction_kpluspiminus_sqwell(string parsfilename) : CWaveFunction(){ 00008 ParsInit(parsfilename); 00009 00010 m1=MPI; 00011 m2=MKAON; 00012 IDENTICAL=0; 00013 00014 q1q2=-1; 00015 00016 nchannels=3; 00017 00018 ellmax=1; 00019 InitArrays(); 00020 printf("Arrays Initialized\n"); 00021 00022 ell[0]=0; // S I=1/2 00023 ell[1]=0; // S I=3/2 00024 ell[2]=1; // P I=1/2 (kstar) 00025 InitWaves(); 00026 00027 00028 nwells=new int[nchannels]; 00029 nwells[0]=2; 00030 nwells[1]=1; 00031 nwells[2]=3; 00032 00033 SquareWell_MakeArrays(); 00034 00035 a[0][0]=0.204619; a[0][1]=0.965437;// 00036 a[1][0]=0.54948; // 00037 a[2][0]=0.23947; a[2][1]=0.765751; a[2][2]=1.23877; 00038 00039 V0[0][0]=-9266.34; V0[0][1]=87.0632;// 00040 V0[1][0]=1057.62; // 00041 V0[2][0]=-31505.8; V0[2][1]=1391.0; V0[2][2]=-190.325; 00042 00043 SquareWell_Init(); 00044 00045 } 00046 00047 CWaveFunction_kpluspiminus_sqwell::~CWaveFunction_kpluspiminus_sqwell(){ 00048 SquareWell_DeleteArrays(); 00049 } 00050 00051 00052 double CWaveFunction_kpluspiminus_sqwell::CalcPsiSquared(int iq,double r,double ctheta){ 00053 double psisquared; 00054 double q=GetQ(iq); 00055 complex<double> psi,psia; 00056 psia=planewave[iq]->planewave(r,ctheta); 00057 double x; 00058 complex<double> DelPhi[3]; 00059 00060 SquareWell_GetDelPhi(iq,r,DelPhi); 00061 00062 x=q*r/HBARC; 00063 00064 // For I=1/2 (s & p wave) 00065 psi=psia; 00066 psi+=DelPhi[0]/x; 00067 psi+=3.0*ci*DelPhi[2]/x; 00068 psisquared=(2.0/3.0)*real(psi*conj(psi)); 00069 00070 // For I=3/2 (s wave only) 00071 psi=psia; 00072 psi+=DelPhi[1]/x; 00073 psisquared+=(1.0/3.0)*real(psi*conj(psi)); 00074 00075 psisquared*=RelativisticCorrection(r,iq); 00076 return psisquared; 00077 } 00078 00079 #endif