The way I commonly do pre-edge is to fit with some form plus a power-law singularity representing the initial rise of the edge, then
subtract out that "some form". Now, that form can be either linear, linear+E^(-2.7) (for transmission), or linear+ another power-law
singularity centered at the center passband energy of the fluorescence detector. That latter is for fluorescence data which is affected by
the tail of the elastic/Compton peak from the incident energy. Whichever form is taken gets subtraccted from the whole data range, resulting
in data which is pre-edge-subtracted but not yet post-edge normalized. The path then splits; for EXAFS, the usual conversion to k-space, spline
fitting in the post-edge, subtraction and division is done, all interactively. Tensioned spline is also available due to request of a prominent user.
For XANES, the post-edge is fit as previously described. Thus, there's no distinction made between data above and below E0 in XANES, whereas
there is such a distinction in EXAFS.
mam
On 5/15/2013 8:25 AM, Matt Newville wrote:
Hi Matthew,_______________________________________________
On Wed, May 15, 2013 at 9:57 AM, Matthew Marcus <mamarcus@lbl.gov> wrote:
What I typically do for XANES is divide mu-mu_pre_edge_line by a linear
function which goes through the post-edge oscillations.
This division goes over the whole data range, including pre-edge. If the
data has obvious curvature in the post-edge, I'll use a higher-order
polynomial. For transmission data, what sometimes linearizes the background
is to change the abscissa to 1/E^2.7 (the rule-of-thumb absorption
shape) and change it back afterward. All this is, of course, highly
subjective and one of the reasons for taking extended XANES data (300eV,
for instance). For short-range XANES, there isn't enough info to do more
than divide by a constant. Once this is done, my LCF programs allow
a slope adjustment as a free parameter, thus muNorm(E) =
(1+a*(E-E0))*Sum_on_ref{x[ref]*muNorm[ref](E)}. A sign that this degree of
freedom
may be being abused is if the sum of the x[ref] is far from 1 or if
a*(Emax-E0) is large. Don't get me started on overabsorption :-)
mam
Thanks -- I should have said that pre_edge() can now do a
victoreen-ish fit, regressing a line to mu*E^nvict (nvict can be any
real value).
Still, it seems that the current flattening is somewhere between
"better" and "worse", which is unsettling... Applying the
"flattening" polynomial to the pre-edge range definitely seems to give
poor results, but maybe some energy-dependent compromise is possible.
And, of course, over-absorption is next on the list!
--Matt
_______________________________________________
Ifeffit mailing list
Ifeffit@millenia.cars.aps.anl.gov
http://millenia.cars.aps.anl.gov/mailman/listinfo/ifeffit
Ifeffit mailing list
Ifeffit@millenia.cars.aps.anl.gov
http://millenia.cars.aps.anl.gov/mailman/listinfo/ifeffit