Ejemplo n.º 1
0
/*////////////////////////////////////////////////////////////////////
//                                                                  //
//  Differential Compton scattering cross section (cm2/g/sterad)    //
//                                                                  //
//          Z : atomic number                                       //
//          E : Energy (keV)                                        //
//          theta : scattering polar angle (rad)                    //
//                                                                  //
/////////////////////////////////////////////////////////////////// */
double  DCS_Compt(int Z, double E, double theta)
{ 
  double S, q ;                                                      
                                                        
  if (Z<1 || Z>ZMAX) {
    ErrorExit("Z out of range in function DCS_Compt");
    return 0;
  }

  if (E <= 0.) {
    ErrorExit("Energy <=0 in function DCS_Compt");
    return 0;
  }

  q = MomentTransf(E, theta);
  S = SF_Compt(Z, q);
  return  AVOGNUM / AtomicWeight_arr[Z] * S * DCS_KN(E, theta);
}
Ejemplo n.º 2
0
/*////////////////////////////////////////////////////////////////////
//                                                                  //
//           Differential Compton scattering cross section          //
//                for polarized beam (cm2/g/sterad)                 //
//          Z : atomic number                                       //
//          E : Energy (keV)                                        //
//          theta : scattering polar angle (rad)                    //
//          phi : scattering azimuthal angle (rad)                  //
//                                                                  //
/////////////////////////////////////////////////////////////////// */
float  DCSP_Compt(int Z, float E, float theta, float phi)
{ 
  float S, q;                                                      
                                                        
  if (Z<1 || Z>ZMAX) {
    ErrorExit("Z out of range in function DCSP_Compt");
    return 0;
  }

  if (E <= 0.) {
    ErrorExit("Energy <=0 in function DCSP_Compt");
    return 0;
  }

  q = MomentTransf(E, theta);
  S = SF_Compt(Z, q);
  return  AVOGNUM / AtomicWeight(Z) * S * DCSP_KN(E, theta, phi);
}
Ejemplo n.º 3
0
/*////////////////////////////////////////////////////////////////////
//                                                                  //
//  Differential Rayleigh scattering cross section (cm2/g/sterad)   //
//                                                                  //
//          Z : atomic number                                       //
//          E : Energy (keV)                                        //
//          theta : scattering polar angle (rad)                    //
//                                                                  //
/////////////////////////////////////////////////////////////////// */
double  DCS_Rayl(int Z, double E, double theta)
{ 
  double F, q ;                                                      
                                                        
  if (Z<1 || Z>ZMAX) {
    ErrorExit("Z out of range in function DCS_Rayl");
    return 0;
  }

  if (E <= 0.) {
    ErrorExit("Energy <=0 in function DCS_Rayl");
    return 0;
  }

  q = MomentTransf(E, theta);
  F = FF_Rayl(Z, q);
  return  AVOGNUM / AtomicWeight_arr[Z] * F*F * DCS_Thoms(theta);
}
Ejemplo n.º 4
0
/*////////////////////////////////////////////////////////////////////
//                                                                  //
//         Differential Rayleigh scattering cross section           // 
//                for polarized beam (cm2/g/sterad)                 //
//                                                                  //
//          Z : atomic number                                       //
//          E : Energy (keV)                                        //
//          theta : scattering polar angle (rad)                    //
//          phi : scattering azimuthal angle (rad)                  //
//                                                                  //
/////////////////////////////////////////////////////////////////// */
float  DCSP_Rayl(int Z, float E, float theta, float phi)
{
  float F, q;                                                      
                                                        
  if (Z<1 || Z>ZMAX) {
    ErrorExit("Z out of range in function DCSP_Rayl");
    return 0;
  }

  if (E <= 0.) {
    ErrorExit("Energy <=0 in function DCSP_Rayl");
    return 0;
  }

  q = MomentTransf(E , theta);
  F = FF_Rayl(Z, q);
  return  AVOGNUM / AtomicWeight(Z) * F*F * DCSP_Thoms(theta, phi);
}