/*//////////////////////////////////////////////////////////////////// // // // 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); }
/*//////////////////////////////////////////////////////////////////// // // // 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); }
/*//////////////////////////////////////////////////////////////////// // // // 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); }
/*//////////////////////////////////////////////////////////////////// // // // 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); }