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/actions.php on line 38
abs_lobanov [topas wiki]

User Tools

Site Tools


abs_lobanov

Differences

This shows you the differences between two versions of the page.


Previous revision
abs_lobanov [2024/01/22 15:26] (current) – external edit 127.0.0.1
Line 1: Line 1:
 +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. 
 +
 +<code topas>
 +/* 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)
 + );
 +    }
 +</code>