static double sigma_gauss(double PcmIn) { double r; if(kin22(PcmIn,pmass)) return 0.; _nsub_=nsub; r=gauss(dSigma_dCos,-1.,1.,5); if(r<0) { neg_cs_flag=1;r=0;} return r; }
static double sigma_simpson(double PcmIn) { double r; if(kin22(PcmIn,pmass)) return 0; _nsub_=nsub; r= simpson(dSigma_dCos,-1.,1,0.3*eps); if(r<0) { neg_cs_flag=1;r=0;} /* printf("PcmIN=%E sigma=%E\n", PcmIn, r*3.8937966E8); */ return r; }
static double sigma_gauss(double PcmIn) { double r; if(kin22(PcmIn,pmass)) return 0.; _nsub_=nsub; r=gauss(dSigma_dCos,-1.,1.,5); if(r<0) { neg_cs_flag=1;r=0;} #ifdef IMPROVE improveCrossSection(PDGnum[0],PDGnum[1],PDGnum[2],PDGnum[3],PcmIn,&r); #endif return r; }
double cs22(numout * cc, int nsub, double P, double cos1, double cos2 , int * err) { int i; double pmass[4]; for(i=1;i<=cc->interface->nvar;i++) if(cc->link[i]) cc->interface->va[i]=*(cc->link[i]); GG=sqrt(4*M_PI*parton_alpha(GGscale)); if( cc->interface->calcFunc()>0 ) {*err=4; return 0;} *(cc->interface->gtwidth)=0; *(cc->interface->twidth)=0; *(cc->interface->gswidth)=1; for(i=0;i<4;i++) cc->interface->pinf(nsub,1+i,pmass+i,NULL); *err=0; sqme22=cc->interface->sqme; nsub22=nsub; if(kin22(P,pmass)) return 0; else return 3.8937966E8*simpson(dSigma_dCos,cos1,cos2,0.3*eps); }
static double sigma_simpson(double PcmIn) { double r; if(kin22(PcmIn,pmass)) return 0; _nsub_=nsub; r= simpson(dSigma_dCos,-1.,1.,0.3*eps); if(r<0) { neg_cs_flag=1;r=0;} #ifdef IMPROVE improveCrossSection(PDGnum[0],PDGnum[1],PDGnum[2],PDGnum[3],PcmIn,&r); #endif /* printf("PcmIN=%E sigma=%E\n", PcmIn, r*3.8937966E8); */ return r; }
static double s_integrandT_(double sqrtS ) { double sv_tot,t,bess, x1,x2,y; double ms,md,PcmIn; double Rm; ms = M1 + M2; if(ms>=sqrtS) return 0; x1=M1/T_; x2=M2/T_; y=sqrtS/T_; if(y-x1-x2>50) return 0; md = M1 - M2; PcmIn = sqrt((sqrtS-ms)*(sqrtS+ms)*(sqrtS-md)*(sqrtS+md))/(2*sqrtS); kin22(PcmIn,pmass); sv_tot=simpson(dSigma_dCos,-1.,1.,1E-3); bess= sqrt(2*x1*x2/y/M_PI)*exp(-(y-x1-x2))*K1pol(1/y)/(K2pol(1/x1)*K2pol(1/x2)); Rm=PcmIn*sqrtS/M1/M2; return bess*Rm*Rm*sv_tot/T_; }