Exemple #1
0
static double func_2(double *x, double wgt,double *pout)
{
    double ret_val=0.;
    int err=0,nd,i;
    double factor_0;
    double xx0=x[0],xx1=x[1],x1,x2;    
    double GG,qF,qR;
    nCall++; 
    REAL pvectR[200];
    double pvect[40];
/* get momenta */
    mkmom(x, &factor_0,pvectR);

    if(sf_num[0]){x1=x[0]; x[0]=xx0;}
    if(sf_num[1]){x2=x[1]; x[1]=xx1;}
    
    nd=0;
    if (!factor_0) goto exi;

    nd=4*(nin_int+nout_int);
    for(i=0;i<nd;i++) pvect[i]=pvectR[i];
    factor_0 *= calcCutFactor(pvect);
    if(nin_int>1) factor_0 *= usrFF(nin_int, nout_int,pvect,p_names,p_codes); 
    if (!factor_0)   goto exi;

    Scale(pvect,&qF,&qR);
/* **  structure function  multiplication */
    if (nin_int == 2) 
    {
	if(sf_num[0]) { factor_0 *= strfun_(1, x1,qF);  if(factor_0==0.) {/*printf("|x1=%.2f|",x1);*/ goto exi;}}
	if(sf_num[1]) { factor_0 *= strfun_(2, x2,qF);  if(factor_0==0.) {/*printf("|x2=%.2f|",x2);*/ goto exi;}} 
    }   
    if (!factor_0)  { printf("strf");  goto exi;}
/* ** call for 'running strong coupling constant' */
    GG=sqrt(4*M_PI*alpha_2(qR));
    
    ret_val = factor_0 * sqme_int(Nsub,GG,pvectR,&err);
    
    if(err)       badPoints+=  (ret_val>0 ? ret_val*wgt : - ret_val*wgt); 
    if(ret_val<0) negPoints+=ret_val*wgt;
exi:
    if(pout)for(i=0;i<nd;i++) pout[i]=pvect[i];
    
    return ret_val;
} /* func_ */
Exemple #2
0
static double func_(double *x, double wgt)
{
    double ret_val=0.;
    int err=0,nd,i;
    double factor_0;
    double x1,x2;    
    double GG,qF1,qF2,qR,qS;
    REAL pvectR[100];
    double pvect[100];
/* get momenta */
    mkmom(x, &factor_0,&x1,&x2,pvectR);

    if (!factor_0) goto exi;
    nd=4*(nin_int+nout_int);
    for(i=0;i<nd;i++) pvect[i]=pvectR[i];
    factor_0 *= calcCutFactor(pvect)*usrFF(nin_int,nout_int,pvect,p_names,p_codes); 
    if (!factor_0)   goto exi;

    Scale(Nsub,pvect,&qR,&qF1,&qF2,&qS);
/* **  structure function  multiplication */
    if (nin_int == 2) 
    {
	if(sf_num[0]) { factor_0 *= strfun_(1, x1,qF1);  if(factor_0==0.) goto exi;}
	if(sf_num[1]) { factor_0 *= strfun_(2, x2,qF2);  if(factor_0==0.) goto exi;} 
    }   
    if (!factor_0)  { goto exi;}
/* ** call for 'running strong coupling constant' */
    GG=sqrt(4*M_PI*alpha_2(qR));    
    ret_val = factor_0 * sqme_int(Nsub,GG,pvectR,NULL,&err);

    if(err)       badPoints+=  (ret_val>0 ? ret_val*wgt : - ret_val*wgt); 
    if(ret_val<0) negPoints+=ret_val*wgt;
exi:
    if(hFill)
    { if(nPROCSS) pthread_mutex_lock(&hist_key);
       fillHists(ret_val*wgt,pvect); 
      if(nPROCSS) pthread_mutex_unlock(&hist_key); 
    } 
    return ret_val;
} /* func_ */