static double vsigma23integrandT(double *x, double w) { double pcmIn,sqrtS,M45; double M45_min=pmass[i4]+pmass[i5],M45_max=sqrtSmax-pmass[i3]; int err; double r, x1,x2,y,z, bess,Rm; double GG; REAL pvect[20]; z=1-x[0]*x[0]; sqrtS=M1+M2-3*T_*log(z); if(sqrtS<=sqrtSmin || sqrtS>=sqrtSmax) return 0; pcmIn=decayPcm(sqrtS,pmass[0], pmass[1]); M45=M45_min+x[1]*(M45_max-M45_min); x1=M1/T_; x2=M2/T_; y=sqrtS/T_; if(y-x1-x2>50) return 0; r=kinematic_23(pcmIn,i3, M45, 2*x[2]-1 ,2*x[3]-1,M_PI*x[4],pmass,pvect)*8*M_PI*(M45_max-M45_min); // /pcmIn if(r==0) return 0; GG=sqrt(4*M_PI*parton_alpha(sqrtS)); r*= CI->sqme(1,GG, pvect,&err); bess= sqrt(2*x1*x2/y/M_PI)*exp(-(y-x1-x2))*K1pol(1/y)/(K2pol(1/x1)*K2pol(1/x2)); // bess=bessk1(sqrtS/T_)/bessk2(M1/T_)/bessk2(M2/T_); Rm=sqrtS/M1/M2; r*= pcmIn*bess*Rm*Rm*6*x[0]/z; return r; }
static double vcs22(numout * cc,int nsub,int * err) { int i; double pcm,r; double pmass[4], pvect[16]; double GG=sqrt(4*M_PI*parton_alpha(3*Mcdm)); for(i=1;i<=cc->interface->nvar;i++) if(cc->link[i]) cc->interface->va[i]=*(cc->link[i]); if( cc->interface->calcFunc()>0 ) {*err=4; return 0;} *(cc->interface->gtwidth)=0; *(cc->interface->twidth)=0; *(cc->interface->gswidth)=0; for(i=0;i<4;i++) cc->interface->pinf(nsub,1+i,pmass+i,NULL); *err=0; if(pmass[0]+pmass[1] <= pmass[2]+pmass[3]) return 0; for(i=0;i<16;i++) pvect[i]=0; pcm= decayPcm(pmass[0]+pmass[1],pmass[2],pmass[3]); for(i=0;i<2; i++) pvect[4*i]=pmass[i]; for(i=2;i<4; i++) pvect[4*i]=sqrt(pmass[i]*pmass[i] +pcm*pcm); pvect[8+3]=pcm; pvect[12+3]=-pcm; r=cc->interface->sqme(nsub,GG,pvect,err); return 3.8937966E8*r*pcm/(16*M_PI*pmass[0]*pmass[1]*(pmass[0]+pmass[1])); }
static double vsigma24integrandT(double *x, double w) { double pcmIn,sqrtS,M34,M56; double M34_min=pmass[i3]+pmass[i4],M34_max=sqrtSmax-pmass[i5]-pmass[i6]; double M56_min=pmass[i5]+pmass[i6],M56_max=sqrtSmax-pmass[i3]-pmass[i4]; int err; double r, x1,x2,y,z, bess,Rm; double GG; REAL pvect[24]; z=1-x[0]*x[0]; sqrtS=M1+M2-3*T_*log(z); if(sqrtS<=sqrtSmin || sqrtS>=sqrtSmax) return 0; pcmIn=decayPcm(sqrtS,pmass[0], pmass[1]); M34=M34_min+x[1]*(M34_max-M34_min); M56=M56_min+x[2]*(M56_max-M56_min); x1=M1/T_; x2=M2/T_; y=sqrtS/T_; if(y-x1-x2>50) return 0; r=kinematic_24(pcmIn,i3,i4, M34, M56, 2*x[3]-1 ,2*x[4]-1,2*x[5]-1, 2*M_PI*x[6], 2*M_PI*x[7],pmass,pvect) *(M34_max-M34_min)*(M56_max-M56_min)*2*4*M_PI*4*M_PI; // /pcmIn GG=sqrt(4*M_PI*parton_alpha(sqrtS)); r*= CI->sqme(1,GG, pvect,&err); bess= sqrt(2*x1*x2/y/M_PI)*exp(-(y-x1-x2))*K1pol(1/y)/(K2pol(1/x1)*K2pol(1/x2)); // bess=bessk1(sqrtS/T_)/bessk2(M1/T_)/bessk2(M2/T_); Rm=sqrtS/M1/M2; r*= pcmIn*bess*Rm*Rm*6*x[0]/z; return r; }
static double s_integrand(double y) { double r; double pp=6; double s,pcmIn; s=sMin+pow(y,pp)*(sMax-sMin); pcmIn=decayPcm(sqrt(s),pmass[0], pmass[1]); if(pcmIn==0) return 0; pvect[0]=sqrt(pmass[0]*pmass[0]+pcmIn*pcmIn); pvect[1]=pcmIn; pvect[2]=0; pvect[3]=0; pvect[4]=sqrt(pmass[1]*pmass[1]+pcmIn*pcmIn); pvect[5]=-pcmIn; pvect[6]=0; pvect[7]=0; pcmOut=decayPcm(sqrt(s),pmass[2], pmass[3]); pvect[8]=sqrt(pmass[2]*pmass[2]+pcmOut*pcmOut); pvect[11]=0; pvect[12]=sqrt(pmass[3]*pmass[3]+pcmOut*pcmOut); pvect[15]=0; x0=s/sMax; r= 3.8937966E8*pcmOut/(32*M_PI*pcmIn*s)*simpson(cos_integrand,-1.,1.,1.E-3); r*=pp*pow(y,pp-1)*(sMax-sMin); return r; }
int kin22(double PcmIn,double * pmass) { double sqrtS; int i; for(i=0;i<16;i++) pvect[i]=0; sqrtS=sqrt(pmass[0]*pmass[0]+PcmIn*PcmIn)+sqrt(pmass[1]*pmass[1]+PcmIn*PcmIn); PcmOut = decayPcm(sqrtS,pmass[2],pmass[3]); //printf(" PcmOut =%E (%E %E %E) \n", PcmOut,sqrtS,pmass[2],pmass[3] ); if(PcmOut<sqrtS*1.E-4) return 1; totcoef = PcmOut /(32.0*M_PI*PcmIn*sqrtS*sqrtS); pvect[3] = PcmIn; pvect[7] =-PcmIn; pvect[0] = sqrt(PcmIn*PcmIn + pmass[0]*pmass[0]); pvect[4] = sqrt(PcmIn*PcmIn + pmass[1]*pmass[1]); pvect[8] = sqrt(PcmOut*PcmOut + pmass[2]*pmass[2]); pvect[12]= sqrt(PcmOut*PcmOut + pmass[3]*pmass[3]); return 0; }