Warning: Trying to access array offset on value of type null in /home/site/wwwroot/lib/plugins/move/action/rename.php on line 42

Warning: Cannot modify header information - headers already sent by (output started at /home/site/wwwroot/lib/plugins/move/action/rename.php:42) in /home/site/wwwroot/inc/Action/Export.php on line 106

Warning: Cannot modify header information - headers already sent by (output started at /home/site/wwwroot/lib/plugins/move/action/rename.php:42) in /home/site/wwwroot/inc/Action/Export.php on line 106
abs_lobanov

for

Lobanov Absorption Correction for TOF Neutrons

Description: This is the absorption correction used in GSAS formatted for TOF neutron diffraction

Comment: Lobanov absorption macro with calculated lambda for wavelength dependence of mu (as per GSAS manual). The macro can be edited to function with CW data with 'Lam' replacing 'lambda' and 'Sin(Th)' replacing 'sintheta'

Contributed by: Pamela Whitfield

Lf is the flightpath and two_theta the detector angle. The refinable parameter under each dataset is 'mu'

POWGEN flightpath is 60 metres with data focussed into a single dataset at 90 degrees.

Absorption is angle-dependent. For more conventional TOF instruments with multiple detector banks such as HRPD, two_theta (and maybe Lf) will differ for each bank by using 'local' variables as opposed to global 'prm' variables, e.g.

/* this is a comment */
   TOF_XYE....
    local !two_theta 145
    local !Lf 25
    local mu 0 min 0
    Abs_Lobanov
 
   TOF_XYE....
    local !two_theta 90
    local !Lf 26
    local mu 0 min 0
    Abs_Lobanov
 
 
    macro Abs_Lobanov  
    {
    prm !Lf 60.183 /* POWGEN 90 degree flightpath */
    prm !h_bar 6.626176e-34 /* Plank's constant */
    prm !m_n 1.67495e-27 /* neutron mass */
    prm !td_const = 10^4 h_bar/(m_n Lf);
    local !sintheta = Sin(Deg_on_2 two_theta);
    local !lambda = Xo 10^4 h_bar/(m_n Lf);
    local !k0 = 1.697653;
    local !k1 = (25.99978 - (0.01911 sintheta^0.5)Exp(-0.024514 sintheta^2)) + 0.109561 sintheta - 26.0456;
    local !k2 = -0.02489 - (0.39499 sintheta^2) + (1.219077 sintheta^3) - (1.31268 sintheta^4) + (0.871081 sintheta^5) - (0.2327 sintheta^6);
    local !k3 = 0.003045 + (0.018167 sintheta^2) - (0.03305 sintheta^4);
    local !k4 = 1.433902 + (11.07504 sintheta^2) - (8.77629 sintheta^4) + (10.02088 sintheta^6) - (3.36778 sintheta^8);
    local !k5 = ((0.013869 - 0.01249 sintheta^2)Exp(3.27094 sintheta^2)) + ((0.337894 + (13.77317 sintheta^2))/((1 + 11.53544 sintheta^2)^1.555039));
    local !k6 = (1.933433 / (1 + 23.12967 sintheta^2)^1.686715) - 0.13576 sintheta + 1.163198;
    local !k7 = 0.044365 - (0.04259/((1 + 0.41051 sintheta^2)^148.4202));
    scale_pks = If( (mu*lambda) < 3, Exp(-k0 (mu*lambda) - k1 (mu*lambda)^2 - k2 (mu*lambda)^3 - k3 (mu*lambda)^4),
				Exp((k4 - k7/(1 + k5 ((mu*lambda)-3))^k6)+k7)
				);				
    }