#define ROOT2 1.41421356237309504880 double corrcalc(double trueqred,double trueqdotr,double truer){ double eta,arg,krmax,corr0; double xx,xxprime,xxjj,p1,zk; int jj,kk,ipart,ipartcount,ispin; double pfactor,wsym_leftover,wanti_leftover,wnosym_leftover; double qred,qdotr,r; const double rmass=MASS1*MASS2/(MASS1+MASS2); double_complex cphi1,cphi2,cphis,cphia; #ifdef STRONG_INTERACTION double_complex cfar,cphi[STRONG_NSPINS]; #endif #if ! defined STRONG_INTERACTION #if ! defined COULOMB arg=trueqdotr/197.323-2.0*pi*floor(trueqdotr/(197.323*2.0*pi)); cphi1=exp(ci*arg); cphis=ROOT2*real(cphi1); cphia=ci*ROOT2*imag(cphi1); corr0=real(INTERACTION_WSYM*cphis*conj(cphis) +INTERACTION_WANTI*cphia*conj(cphia) +INTERACTION_WNOSYM*cphi1*conj(cphi1)); goto OUTSIDE_INTERACTION_RANGE; #endif #endif #ifdef REDUCED_MOM kk=(int)floor(trueqred/INTERACTION_DELK); qred=(0.5+kk)*INTERACTION_DELK; #else kk=(int)floor(2.0*trueqred/INTERACTION_DELK); qred=(0.5+kk)*INTERACTION_DELK/2.0; #endif qdotr=trueqdotr*qred/trueqred; if(kk>=INTERACTION_NKMAX){ corr0=1.0; goto OUTSIDE_INTERACTION_RANGE; } #ifdef STRONG_INTERACTION jj=(int)floor(STRONG_NRMAX*truer/STRONG_RMAX); r=(0.5+(double)jj)*STRONG_RMAX/STRONG_NRMAX; qdotr=trueqdotr*r/truer; #else r=truer; #endif #ifdef COULOMB zk=qdotr/qred; eta=(double)Q1Q2*(rmass/137.036)/qred; cphi1=coul( qred,r,zk,eta,kk); cphi2=coul( qred,r,-zk,eta,kk); #else eta=0.0; arg=qdotr/197.323-2.0*pi*floor(qdotr/(197.323*2.0*pi)); cphi1=exp(ci*arg); cphi2=conj(cphi1); #endif cphis=(cphi1+cphi2)/ROOT2; cphia=(cphi1-cphi2)/ROOT2; corr0=0.0; /* If there are corrections for strong interactions, add the change for each partial wave. If npartial = 0 then there are no strong int. corrections. */ wsym_leftover=INTERACTION_WSYM; wanti_leftover=INTERACTION_WANTI; wnosym_leftover=INTERACTION_WNOSYM; #ifdef STRONG_INTERACTION xx=r*qred/197.323; p1=qdotr/(r*qred); ipart=0; for(ispin=0;ispindelpsi[jj]/xx; if(STRONG_L[ipart]==1) cphi[ispin]=cphi[ispin] +pfactor*p1*3*ci*partwave[ipart][kk]->delpsi[jj]/xx; if(STRONG_L[ipart]==2) cphi[ispin]=cphi[ispin] -pfactor*0.5*(3*(p1*p1)-1.0)* 5*partwave[ipart][kk]->delpsi[jj]/xx; /* ___________________________ */ } else{ xxprime=xx-2*pi*floor(xx/(2.0*pi)); cfar=exp(ci*xxprime-ci*eta*log(2.0*xx)); if(STRONG_L[ipart]==0) cphi[ispin]=cphi[ispin] -ci*pfactor*partwave[ipart][kk]->delpsifar*cfar/xx; if(STRONG_L[ipart]==1) cphi[ispin]=cphi[ispin] -pfactor*p1*3*partwave[ipart][kk]->delpsifar*cfar/xx; if(STRONG_L[ipart]==2) cphi[ispin]=cphi[ispin] +ci*pfactor*5*0.5*(3*(p1*p1)-1.0)*partwave[ipart][kk]->delpsifar*cfar/xx; } ipart=ipart+1; } } for(ispin=0;ispin