Dear Bruce,
thank you very much for the answer. I forgot to say that I load this
macro which athena uses for the step function at the very beginning of
using ifeffit.
Your advise make me looking at my macro file, where I found a little
typing error.
That was it!
Thank you so much!
Regards
Bernd
> Message: 2
> Date: Thu, 31 Aug 2006 09:33:26 -0500
> From: Bruce Ravel <bravel(a)anl.gov>
> Subject: Re: [Ifeffit] problem with normalization
> To: XAFS Analysis using Ifeffit <ifeffit(a)millenia.cars.aps.anl.gov>
> Message-ID: <200608310933.27010.bravel(a)anl.gov>
> Content-Type: text/plain; charset="iso-8859-6"
>
> On Thursday 31 August 2006 02:57, Bernd Griesebock wrote:
>
>> Hi there,
>>
>> I have a litte question about normalizing data using the commands that
>> athena uses.
>>
>> I used the following commands (in an ifeffit shell), which I copied from
>> the ifeffit buffer from athena, but I replaced most of the values with
>> the corresponding variables (see at the "set" commands):
>>
>
> I have taken the liberty of numbering and slightly rearranging the lines of
> your script.
>
>
> 1 > read_data(file="Rh_sample_11.dat.spektrum.00040", group=rh, no_sort)
> 2 > set ___n = npts(rh.1)
> 3 > set rh.energy = 1000*rh.1
> 4 > set rh.xmu = (rh.2) / (rh.3)
> 5 > pre_edge("rh.energy+0", rh.xmu)
> 6 > erase rh.4
> 7 > show e0
> 8 > pre_edge("rh.energy+0", rh.xmu, e0=23228.9989104549, pre1=-150,
> 9 > pre2=-30, norm_order=3, norm1=150, norm2=514.053)
> 10 > spline("rh.energy+0", rh.xmu, e0=23228.9989104549, rbkg=1.0, kmin=0.5,
> 11 > kmax=12.695, kweight=1, dk=0, kwindow=kaiser-bessel, pre1=-150,
> 12 > pre2=-30, norm_order=3, norm1=150, norm2=514.053, clamp2=24,
> 13 > nclamp=5, interp=quad)
> 14 > set rh.preline = pre_offset+pre_slope*(rh.energy + 0)
> 15 > set rh.postline =
> 16 > norm_c0+norm_c1*(rh.energy+0.000000)+norm_c2*(rh.energy+0.000000)**2
> 17 > step rh.energy e0 rh.theta
> 18 > set flat_c0 =norm_c0 - pre_offset
> 19 > set flat_c1 =norm_c1 - pre_slope
> 20 > set flat_c2 =norm_c2
> 21 > set rh.line = (flat_c0 + flat_c1*(rh.energy+0) +
> 22 > flat_c2*(rh.energy+0)**2)
> 23 > set rh.flat = (rh.pre + (edge_step - rh.line)*rh.theta) / edge_step
> 24 > set rh.fbkg = (rh.bkg-rh.preline+(edge_step-rh.line)*rh.theta)/edge_step
> 25 > newplot(rh.energy+0, "1*rh.fbkg+0", xlabel="E (eV)", ylabel="norm
> 26 > x\gm(E)", fg=black, bg=white, grid, gridcolor="grey82",
> 27 > xmin=23028.99891, xmax=24028.99891, style=lines, color="red",
> 28 > key=bkg, title="rh_sample_11")
>
>> At this point athena plots the normalized background function with all
>> data points in the post edge region at arround 1. This is exactly what I
>> want, but in the ifeffit shell I get an error message:
>> ** plot error: no data in y array
>>
>> Ifeffit> show rh.fbkg
>> rh.fbkg = 399 pts [-0.2709E-01: 1.205 ]
>>
>> So there is data in that array! Using the following plot command:
>>
>> newplot(rh.energy+0, rh.fbkg, xlabel="E (eV)", ylabel="norm x\gm(E)",
>> fg=black, bg=white, grid, gridcolor="grey82", xmin=23028.99891,
>> xmax=24028.99891, style=lines, color="red", key=bkg,
>> title="rh_sample_11")
>>
>> plots the background function but not normalized in the sense, that the
>> data points in post edge region are at arround 1.
>>
>> Where is my mistake??? If you need some plot examples please feel free
>> to ask for them.
>>
>
>
> I suspect that the problem is in line 17 of the ifeffit script. "step" is not
> a built-in Ifeffit command. Instead it is a macro that Athena defines when
> you start the program. Fire up Athena and look near the beginning of the
> ifeffit buffer -- you'll see where the macro is defined.
>
> The purpose of the macro is to define a step function centered at a given
> energy and placed on a particular energy grid. If you don't define this macro
> the .theta array is undefined, leading to trouble with the .flat and .fbkg
> arrays.
>
> Hope that helps,
> B
>
>
>