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
time_of_flight_tof_peak_fitting [topas wiki]

User Tools

Site Tools


time_of_flight_tof_peak_fitting

Differences

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


Previous revision
time_of_flight_tof_peak_fitting [2022/11/03 15:08] (current) – external edit 127.0.0.1
Line 1: Line 1:
 +====== Time of Flight Peak Shape Fitting ======
 +====== Using a hkl_Is phase ======
 +
 +A Pawley hkl_Is phase with a single peak can be inserted. The two numbers in the macro are the d-spacing of the peak and its intensity.  You can change @ symbols for parameter names.  The advantage of this method is that it uses the full tof convolutions which might be necessary for accurate peak shapes and therefore positions.  Alan's methods below don't use these convolutions.
 +
 +<code topas>prm lor 0.54006`
 +prm dsp 51.70683`
 +prm !dspsq 0
 +tof_peak_fit( @, 2.92093`, @, 2.64961`)
 +
 +macro tof_peak_fit(p1,v1,p2,v2) {
 +#m_argu p1
 +#m_argu p2
 +If_Prm_Eqn_Rpt(p1, v1, min =0.9*v1; max =1.1*v1;)
 +If_Prm_Eqn_Rpt(p2, v2, min .000000000001 max 1e9)
 +hkl_Is phase_name CeV(p1,v1) a =10*CeV(p1,v1); b 0.1 c 0.1 space_group "P1" load hkl_m_d_th2 I { 10 0 0 1 0.0 80114.92 =CeV(p2,v2); }
 +peak_type pv pv_lor =lor; pv_fwhm = dsp*CeV(p1,v1) + dspsq*CeV(p1,v1)^2;
 +}
 +</code>
 +
 +[Note changed =CeV(p1,v1); to 0.0 after hklm values in macro as was getting crash in topas and d-spacing not needed/reported]
 +
 +You can add a line like the one below to the macro to report tof:
 +
 +<code topas>prm = CeV(p1,v1)*difc_hrpd_bs+difa_hrpd_bs*CeV(p1,v1)^2+t0_hrpd_bs; : v3</code>
 +
 +
 +====== TOF Peak fitting using d_Is or xo_Is phases ======
 + 
 + --- //[[alan.coelho@bigpond.com|Alan Coelho]] 2011/08/25 19:15//
 +
 +d_Is phases can be used in TOF data as follows:
 +
 +<code topas>d_Is
 +   peak_type pv
 +   pv_lor @ .5
 +   pv_fwhm @ 200
 +   d 2 I 10000</code>
 +
 +If the peak is simply to describe a background anomaly then the TOF peak shape convolutions may not be wanted. In this case it’s possible to put the tof convolutions at the str level. In TEST_EXAMPLES\TOF_BANK2_1.INP this would look like:
 +
 +<code topas>TOF_XYE(R29187C_145_calc_2.xye, = Yobs_dx_at(Xo) .5;)
 +   TOF_LAM(0.001)
 +   TOF_x_axis_calibration(t0, 4.54166, t1, 6172.60684, t2, -2.15711)
 +   bkg @ 0 0 0 0 0 0 0 0 0 0 0
 +   finish_X 21000
 +   STR(Fm-3m) ' CeO2
 +      Cubic(5.402187)
 +      site Ce1 x  0.00  y 0.00  z 0.00 occ Ce 1 beq @ 0.5
 +      site O1  x  0.25  y 0.25  z 0.25 occ O  1 beq @ 0.5
 +      scale @ 1
 +      TOF_PV(@, 100, @, .5, t1)
 +      
 +      TOF_Exponential(a0, 100, ,0, 1, t1, -) ' Moved
 +      TOF_Exponential(b0, 100, b1, 100, 4, t1, +)  ' Moved
 +      scale_pks = D_spacing^4;  ' Moved
 +   d_Is
 +      peak_type pv
 +         pv_lor @ .5
 +         pv_fwhm @ 200
 +      d 2 I 10000</code>
 +
 +
 +The text marked "Moved" is what was moved from the xdd level to the str level. The d_Is phase would therefore not have the TOF_Exponential convolutions applied nor the scale_pks applied.
 +
 +xo_Is phases can also be used in TOF data but the pk_xo (inside the TOF_x_axis_calibration macro) needs to be moved to the str level. Additionally the No_Th_Dependence is necessary; ie.
 +
 +<code topas>TOF_XYE(...)
 +   TOF_LAM(0.001)
 +   str...
 +      TOF_PV(@, 100, @, .5, t1)
 +      TOF_x_axis_calibration(t0, 4.54166, t1, 6172.60684, t2, -2.15711)
 +      TOF_Exponential(a0, 100, ,0, 1, t1, -)
 +      TOF_Exponential(b0, 100, b1, 100, 4, t1, +)
 +   xo_Is
 +      No_Th_Dependence
 +      peak_type pv
 +         pv_lor @ .5
 +         pv_fwhm @ 200
 +      xo 12000 I 10000</code>
 +
 +In this way the xo value is not transformed according to pk_xo.