00001 #ifndef __CWAVEFUNCTION_WF_LAMBDALAMBDAPARSPIN_PHASESHIFT_CC__
00002 #define __CWAVEFUNCTION_WF_LAMBDALAMBDAPARSPIN_PHASESHIFT_CC__
00003 #include "wavefunction.h"
00004
00005 CWaveFunction_lambdalambdaparspin_phaseshift::CWaveFunction_lambdalambdaparspin_phaseshift(string parsfilename){
00006 ParsInit(parsfilename);
00007
00008 m1=1115.7;
00009 m2=m1;
00010 IDENTICAL=0;
00011 q1q2=0;
00012 nchannels=0;
00013 ellmax=0;
00014 InitArrays();
00015
00016 InitWaves();
00017
00018 }
00019
00020 double CWaveFunction_lambdalambdaparspin_phaseshift::CalcPsiSquared(int iq,double r,double ctheta){
00021 double psisquared;
00022 complex<double> psiantisymm,psia,psib,hstar0;
00023 const double ROOT2=sqrt(2.0);
00024 double q;
00025
00026 if(iq>=nqmax){
00027 psisquared=1.0;
00028 }
00029 else{
00030 q=qarray[iq];
00031 psia=planewave[iq]->planewave(r,ctheta);
00032 psib=planewave[iq]->planewave(r,-ctheta);
00033 psiantisymm=(psia-psib)/ROOT2;
00034 psisquared=real(psiantisymm*conj(psiantisymm));
00035 }
00036 psisquared*=RelativisticCorrection(r,iq);
00037 return psisquared;
00038 }
00039
00040 void CWaveFunction_lambdalambdaparspin_phaseshift::GetPhaseshifts(){
00041 double q,q0;
00042 double tandelta,a,dtandeltadq;
00043 double MH0,M,EH0,GammaH0,lambda=500.0;
00044 int iq;
00045
00046 printf("Enter the energy of the H0 above the 2Lambda threshold in MeV : ");
00047 scanf("%lf",&EH0);
00048 printf("Enter the width of the H0 in MeV : ");
00049 scanf("%lf",&GammaH0);
00050
00051
00052 printf("Enter scattering length in fm (Do not include effect of H0): ");
00053 scanf("%lf",&a);
00054 lambda=500.0;
00055
00056
00057 MH0=m1+m2+EH0;
00058 q0=sqrt(0.25*MH0*MH0-m1*m1);
00059 printf("Resonance occurs at q=%g, mesh goes q=%g\n",
00060 q0,qarray[nqmax-1]);
00061
00062 for(iq=0;iq<nqmax;iq++){
00063 q=qarray[iq];
00064 M=2.0*sqrt(q*q+m1*m1);
00065 tandelta=(a*q/HBARC)/(1.0+q*q/(lambda*lambda));
00066 dtandeltadq=(tandelta/q)*(1.0-q*q/(lambda*lambda))
00067 /(1.0+q*q/(lambda*lambda));
00068 tandelta+=0.5*(q/q0)*GammaH0/(MH0-M);
00069 dtandeltadq+=(tandelta/q)*(1+(4.0*q*q/M)/(MH0-M));
00070 delta[0][iq]=atan(tandelta);
00071 ddeltadq[0][iq]=dtandeltadq*pow(cos(delta[0][iq]),2);
00072 }
00073
00074 }
00075
00076 #endif