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