Exemple #1
0
static double sigma_inelastic_ANN_pbarH_TAN_and_NG(double T_pbar)
{
  double result;

  if (T_pbar<=0.0)  return 0; else
  result= (sigma_inelastic_pbarH_TAN_and_NG(T_pbar) - sigma_inelastic_NOANN_pbarH_TAN_and_NG(T_pbar));
  if (result<0)  result=0.;
  return result;
}
Exemple #2
0
static double sigma_inelastic_NOANN_pbarH_TAN_and_NG(double EK_pbar)
{
  if (EK_pbar<=0.0)  return 0;
  else if (EK_pbar < 13.3)
  {
      double result = 661.*(1. + 0.0115 * pow(EK_pbar, -0.774) - 0.948 * pow(EK_pbar, 0.0151));
      return (sigma_inelastic_pbarH_TAN_and_NG(EK_pbar) - result);
  }
  else return sigma_inelastic_pH_TAN_and_NG(EK_pbar);
}
Exemple #3
0
static double pbarPropRate(double ek)
{
  double fluxDM, dFluxDM;
  double i2,i3;
  ek_=ek; 

  Kdif=pbar_beta(ek)*K_dif*pow(pbar_rig(ek),Delta_dif);
//printf("Kdif=%E\n",Kdif);
  switch(Gtot_style)
  { case 0: Gtot=0; break;
    case 1: Gtot= ( DensityH*sigma_inelastic_ANN_pbarH_TAN_and_NG(ek) 
                  + DensityHe*sigma_inelastic_ANN_pbarHe_TAN_and_NG(ek) );
            break;
            
   default: Gtot= 0.8*sigma_inelastic_pbarH_TAN_and_NG(ek)*(DensityH + DensityHe*2.519842);

  }   
  
  Gtot*= pbar_beta(ek)*c_light/cmpers_to_kpcperMyr/s_to_Myr * mb_to_cm2;

  Vdif=Vc_dif*kmpers_to_kpcperMyr;

  { double kv,kd,knL;
    int i;
    kv=Vdif/(2.*Kdif);
    kd= (2.*h*Gtot/Kdif    + 2.*kv);
    if(kd)
    { int nn;
      knL= (0.5)*M_PI;
      if(kd>0) nn=1; else nn=0; 		
      for(i=0; i<10; ++i) knL = nn*M_PI - atan(2.*knL/(kd*L_dif));
    } else knL= (0.5)*M_PI;
//    lastK=0;
//    kn[0]=knL;
    Leff=1/sqrt(SQR(knL/L_dif)+SQR(kv)); 
  }  
          
  fluxDM=4*simpson(zIntegrandP,0.,sqrt(L_dif),Eps);

  i2=simpson(rhoQ_2,rHaloMin, rHalo1, 1.E-2) -rHalo1*rhoQ_2(rHalo1)/3;
  i3=simpson(rhoQ_3,rHaloMin, rHalo1, 1.E-2) -rHalo1*rhoQ_3(rHalo1)/4; 
    
  dFluxDM=4*M_PI*i2*pbar_PropagatorInfiniteR(Rsun,0.5*i3/i2,ek);
  fluxDM+=dFluxDM;   
  return fluxDM*pbar_beta(ek)*c_light/cm_to_kpc/(4.*M_PI);
}
Exemple #4
0
static double sigma_inelastic_pbarHe_TAN_and_NG(double T_pbar)
{
double result;
result =sigma_inelastic_pbarH_TAN_and_NG(T_pbar)*2.519842 ; /*[mb]*/
return result;
}