- PCTL
- System interaction commands
- PAC file I/O
- Dataspace manipulation
- PAC analysis
- Theories for use in command FITDS
- PAC simulation
PCTL
program PCTL online helpLast update: 17 July 1998
CIO commands and CIO variables
for- CIO commands
- CIO variables and CIO programs
- graphics
- array manipulation
The CIO syntax is described in CIO command language
Command line editing and history substitution
see EDITING and SUBSTITUTIONVERB
verb <level>
The level of 'verbosity' of the program is changed to <level>. In
general the program gives more information with increasing level.
<level> : [0...3].
The different levels are poorly defined. Maybe this will change in the
future, when the current PCTL maintainer gets terribly bored and sets up
PCTL 5.0.
System interaction commands
see also CIO online helpCLS
cls
Clear the terminal screen.
LS
ls <arguments>
Display directories, as specified by the arguments, using the UNIX
command ls.
<arguments> : valid argument for UNIX ls
QUIT
quit
The program pctl is quitted.
PAC file I/O
Open
open <filetype> <filename>
The file <filename> is opened and treated as a pctl file of type
<filetype>. If a file of type <filetype> was already opened that
file is closed.
<filetype> : dsp , asp, dat, pro or log
<filename> : char[80].
In case a dsp file is opened, pctl generates a table of contents to
facilitate fast retrieval of spectra by subsequent READSP or RSEQ
commands. This version of OPEN is incompatible with CIO.
CLose
close <filetype>
The pctl file <filetype> is closed.
<filetype> : either dsp, asp, dat or pro
This version of CLOSE is incompatible with CIO.
DLU
dlu
The pctl file names and statuses are displayed
This version of DLU is incompatible with CIO.
FPRint
fprint <txt>
The string <txt> is written to the dat file stream. Special symbols
such as $, or a leading ?, are recognized. Numerical
values may be converted to text with the $(<expr>,<format>)
feature, which is useful, e.g. to output the results of computations.
This version of FPRINT is incompatible with CIO.
see also OPEN and CLOSE.
IMport
import <#spectra> X Y_1 Y_2 ...
Sets of datapoints are read from the pctl data file and stored in the
arrays X, Y_1, ... Y_#spectra. The file data format should conform to
the one used by Xgraph.
<#spectra> : integer
READsp
readsp <#sets> <setsize> <run#> <offset> ...
Sets of spectra are read from the default spectrum file, added together
and stored in the buffer arrays usp0..11. Spectra are selected from the
file by giving a run number <run#> and for each spectrum a separate
<offset> must be given. In some cases it is convenient to skip an array
in the buffer while reading from file. This can be realized by entering
a 0 for the <run#> and <offset>.
<#sets> : [1 ... 20]
<setsize> : [1 ... 12]
<run#>, <offset> : integer.
The spectra are truncated to the length of the shortest spectrum.
RSEQ
rseq <nset> <setsize> <firstrun>
Sets of spectra are read from the dsp file, added together and
stored in the buffer arrays usp0...11. The <nset>*<setsize> spectra
are read sequentially from the file starting at run <firstrun>. The
offset is calculated using the code of the command OFFSET, i.e.
single-sided time spectra are assumed. The spectra run numbers and
the corresponding offsets are printed to STDOUT.
<nset> : [1...20]
<setsize> : [1...20]
<firstrun> : int
This really is a convenience function. Due care should be taken in
a final analysis, because the calculated offsets tend to jitter a bit
across different runs. Furthermore, the code does not check whether
simple sum rules for the offsets are satisfied, e.g.
(1-4) + (4-1) = (1-3) + (3-1) = (1-2) + (2-1).
WRITEsp
writesp [<filename>] A <run> <len>
The numerical array A is written to the alternate spectrum file. If
the file is not open the user is prompted for a filename. The run
number written on the file is given by <run> and the array length
is set equal to <len>.
<run>, <len> : integer.
The spectrum file format defined in writesp is obsolete as of pctl v1.3,
i.e. the files produced by writesp in v4.01 cannot be read by READsp.
XPort
xport <datatype> <xunits> <#spectra> A, B ... <from> <to>
Data is written to the pctl datafile in either the GNUplot dataformat
(<datatype=1) or the Xgraph dataformat (<datatype>=0). With <xunits>
the choice of x-units can be controlled. The number of y-spectra is given
by <#spectra>. For each spectrum the corresponding CIO variable name
should be given. Only the region [<from>,<to>] is written to file.
<datatype> : 0(Xgraph), 1(GNUplot)
<xunits> : ene,tim,fre,vel,cha
<#spectra>,<from>,<to> : integer
This version of XPORT is incompatible with CIO.
Dataspace manipulation
ADDDS
addds <A> <B> <C> <factor>
The dataspace A is added to <factor>*<B> and the result is stored in <C>.
The channel range is taken equal to the smallest meaningful channel range
of <A> and <B>. If the units of <A> and <B> are different, the units of <C>
are set to [chan]. If the calibration constants differ by more than 1%, the
calibration constants of <C> are reset to 0.0 and 1.0 respectively.
<A>,<B>,<C> : pac dataspace.
<factor> : float.
CPds
cpds <A> <B>
The dataspace <A> is copied to <B>.
<A>,<B> : pac dataspace.
DIVDS
divds <A> <B> <C>
The dataspace <A> is divided by <B> and the result is stored in <C>
The channel range is taken equal to the smallest meaningful channel range
of <A> and <B>. If the units of <A> and <B> are different, the units of <C>
are set to [chan]. If the calibration constants differ by more than 1%, the
calibration constants of <C> are reset to 0.0 and 1.0 respectively.
<A>,<B>,<C> : pac dataspace
DIVDT
divd <A> <B>
Divides data array of <A> by the theory array of <A> and stores the result
in the data array of <B>.
<A>,<B> : pac dataspace
INCDS
incds <A> <B> <const>
A constant value <const> is added to <A> and the result is stored in <B>.
<A>, <B> : pac dataspace.
<const> : float.
LABSetds
labsetds <A> <option> ....
Set part of the spectrum label of <A> depending on <option>.
Valid options are:
cal0 : set the offset of the spectrum.
cal1 : set linear dependence of the spectrum.
units : set x-units of the spectrum.
lchan : set the last meaningful channel of the spectrum.
label : set the spectrum title.
<A> : pac dataspace.
cal0,cal1 : float.
units : chan,ns,eV,mm/s,1/chan,Mrad/s,1/eV,s/mm.
lchan : integer.
label : char[80].
LABListds
lablistds <A>
List the contents of the spectrumlabel of <A> to the standard output.
<A>: pac dataspace
MKds
mkds <name> <channels>
Make the pac dataspace <name> with <channels> channels. The dataspace
contains the following CIO variables:
<name>d : data
<name>e : errors
<name>t : theory
<name>p : fit parameters [0..NPAR-1 ] + errors in the parameters [NPAR..]
<name>i : miscellaneous integer variables
<name>f : miscellaneous float variables
<name>s : label
<name> : char(7)
contents of the miscellaneous arrays spf and spi
spf[0] : offset x-axis
spf[1] : calibration x-axis
spf[2] : chi-square of last performed fit
spi[0] : x-axis units
spi[1] : number of useful channels
spi[2] : maximum number of channels
spi[3] : theory number fit
spi[4] : first channel in fit
spi[5] : last channel in fit
spi[6] : number of fit parameters
spi[7] : number of free parameters
spi[8..] : list of free parameters
MULTDS
multds <A> <B> <C>
The dataspace <A> multiplied by <B> and the result is stored in <C>.
The channel range is taken equal to the smallest meaningful channel range
of <A> and <B>. If the units of <A> and <B> are different, the units of <C>
are set to [chan]. If the calibration constants differ by more than 1%, the
calibration constants of <C> are reset to 0.0 and 1.0 respectively.
<A>, <B>, <C> : pac dataspace.
MULTCds
multcds <A> <B> <const>
<B> = <const> * <A>
The dataspace A is added to <factor>*<B> and the result is stored in <C>.
The channel range is taken equal to the smallest meaningful channel range
of <A> and <B>. If the units of <A> and <B> are different, the units of <C>
are set to [chan]. If the calibration constants differ by more than 1%, the
calibration constants of <C> are reset to 0.0 and 1.0 respectively.
<A>, <B>, <C> : pac dataspace.
<const> : float.
RMds
rmds <A>
The pac dataspace <A> is deleted.
<A> : pac dataspace.
RESDS
resds <A>
The dataspace is reset. The data, error and theory spectra are reset to
zero. The calibration constants are set to 0.0 and 1.0 respectively. The
x-units are set to [chan]. The last meaningful channel is set to 4095 and
the descriptive label is set to "".
<A> : pac dataspace.
SWAPdt
swapdt <A>
The experimental and theoretical spectrum of <A> are swapped and the
error spectrum of <A> is reset to zero.
VLGDS
vlgds <A> <B>
<B> = 10log <A>
<A>,<B> : pac dataspace
PAC analysis
FFTds
fftds <A> <B> <xmax> <steps> <weighting> <parity> <norm>
The fast fourier transforms of the theory and data of <A> are calculated
for <steps> equidistant frequencies. The frequency step size is 1/(NCHAN/2)
[chan^-1]. A linear background is subtracted from the time spectrum. The
spectra are evaluated up to <xmax>. The shape of the weighting function
of the FFT is determined by <weighting>. The parity of the function in the
time domain is set with <parity>. Setting <norm> causes the powerspectrum
to be normalized. The Fourier transforms are stored in <B>, and plotted in
the GRINT window. The data is represented by the dashed line and the theory
by the solid line.
<A>, <B> : pac dataspace
<to> : float
<steps> : [10... NCHAN/2]
<weighting> : <0.0... 9.0>
<parity> : 0(even), 1(odd)
<norm> : 0(no), 1(yes)
The value <weighting> = 4.0 is recommended by T. Butz.
The xrange is interpreted in terms of the units associated with <A>.
FITds
fitds <A> <theo#> <from> <to> <#p> <#pfree> <lst[0]> ... <lst[<#pfree-1]>
<p[0]> ... <p[<#p>-1]>
The theoretical function <theo#> is fitted to the data of <A> using the
method of non-linear least squares. The fit region is equal to [<from>,<to>].
The total number of parameters is equal to <#p>. The total number of free
parameters is equal to <#pfree>. The starting values of the parameters are
given by <p[0...<#p-1>]>. The parameter numbers of the free parameters are
listed in <lst[0... <#pfree>-1]>. The fitted function is stored in the
the theory of <A>. The determined values of the free parameters are given
with an estimate of the error.In case <#pfree> = 0 no fit is performed.
The theoretical spectrum is calculated using the current parameter values.
<A> : pac dataspace
<p#>,<pval>,<theo#>,<from>,<to>,<#p>,
<#pfree>,<lst[0]>...<lst[<#pfree>-1] : integer
<p[0]>...<p[<#p>-1]> : real
For more help on the available fit functions type HELP THEO<theo#>.
The minimalistation is performed using the Levenbergh-Marquardt alghorithm.
The error matrix is solved using the Cholesky factorization routines of
the LAPACK library.
If the factorization of the error matrix fales (zero diagonal element,
illegal matrix element), the fit is aborted and the original parameter
values are restored, while all the errors are set to zero.
FIXpar
fixpar <A> <i> ...
The parameters <i> ... of the fit belonging to dataspace <A> is fixed.
<A> : pac dataspace
<i> : [0...<#p>-1], where <#p> is the total number of parameters, see fit.
FIXAll
fixall <A>
All parameters of the fit belonging to dataspace <A> are fixed
<A> : pac dataspace
FOURds
fourds <A> <B> <from> <to> <lowf> <highf> <fstep> <phase> <weight>
The Fourier transform of the dataspace of <A> is calculated using
overlap integrals and the result is stored in the theory of <B>.
The range of the time domain is [<from>...<to>] [chan]. The frequency
range is [<lowf>...<highf>] [Mrad]. The number of frequency steps is
equal to <fstep>
The relative phase of the cosines can be either fixed (<phase> <> 0)
or fitted (<phase> = 0). The desired weighting function can be set
with <weight>. Available weight functions are:
1 w(t) = sigma^2(t)
2 w(t) = (t_max -t)/(t_max)
3 w(t) = MIN(1,(omega(t_max-t)/(2*pi)))
4 w(t) = cos((2*pi*t)/(4t_max))
5 w(t) = 1 + cos((2*pi t)(2t_max))
6 w(t) = MIN(1,(omega(t_max-t)/(4*pi)))
<A>, <B> : pac dataspace
<from>, <to>, <phase>, <weight> : integer
<lowf>, <highf>, <fstep> : real [Mrad].
FREEpar
freepar <A> <i>, ...
The parameter <i> ... of the fit belonging to dataspace <A>
is freed.
<A> : pac dataspace
<i> : [0...<#p>-1], where <#p> is the total number of parameters.
see also FITDS.
MFITds
mfitds <nspec> <A> <B> ... <theory> <nlink> <p_0> ....
Performs a simultaneous fit to the data spaces <A>, <B>, ... using
the theory <theory>. The parameters <p_0>, ... are linked
across the data spaces, i.e. the parameter values are identical
for all the data spaces, but they are optimized in the
simultaneous fit. The details of the fit should have been set
previously using SETFIT. The command MFIT uses the same
computational algorithm as FITDS.
For the curious: the only difference compared to FITDS is that the
derivatives to the linked parameters are calculated over all
spectra instead of for each spectrum separately. The second
derivatives receive a similar treatment, although special care
needs to be taken with the cross terms :-(
<nspec> : [2...10]
<A>, <B>, ... : PAC dataspace
<theory> : [1...5, 8...11]
<nlink>,<p_0>, ... : [0...NPAR-1]
All the linked parameters are first fixed by MFITDS, that is fixed
from the point of view of FITDS. One can freely mix the commands
below to obtain the most desirable effects, i.e. link extra
parameters, include additional spectra, remove spectra from the fit
list, free and/or fix parameters of individual spectra, perform
additional fits on individual spectra, etc.
see also FITds, FIXpar,
FREEpar, MFREEPar,
MFREEAll, MLINKpar,
SETFitpar, and SETPar.
MINCLds
minclds <A>
Add the data space <A> to the list of data spaces fitted by MFITDS.
<A>: PAC dataspace
see also MFITds.
MINFO
minfo
Print info on the simultaneous fit.
The linked and free lists are sorted in ascending order after execution
of MINFO.
see also MFITds.
MLINKpar
mlinkpar i, ...
The parameters i, ... are linked across the data spaces fitted
by MFITDS.
i, ... : [0...NPAR-1]
see also MFITds.
MRMds
mrmds <A>
Remove the data space <A> from the list of data spaces fitted
by MFITDS.
MFREEAll
mfreeall
Unlink all the linked parameters.
see also MFITds.
MFREEPar
mfreepar i, ...
Unlink the parameters i, ...
i, ... : [0...NPAR-1]
An unlinked parameter is fixed in subsequent fits.
see also MFITds.
OFFset
offset <#nspectra>
Determines the offset of the first <#spectra> time spectra in usp.
This routine assumes single-sided time spectra. Time t=0 is taken to be
the channel closest to the 'left half-maximum'. Results are printed to
standard output.
PDISds
pdisplay <A> <xmin> <xmax> <ymin> <ymax> <plcurve> <pldata> <log>
The contents of <A> in the region [<xmin>...<xmax>] is plotted in a
GRINT window. The y-axis is set to [<ymin> ...<ymax>]. If <log> is set
a logarithmic y-axis is plotted. The theoretical curve and experimental
points are plotted depending on the status of <plcurve> and <pldata>
respectively. If the error array is empty the datapoints are drawn as
a dashed line.
<A> : pac dataspace.
<xmin>, <xmax>, <ymin>, <ymax> : float.
<plcurve>,<pldata>,<log> : 0 (no), 1 (yes).
The <xmin> and <xmax> are interpreted in terms of the units associated
with <A>.
RATio
ratio <A> <k> <#spec> [<spec_1>] <bck_1> ... [<spec_<#spec>>] bck_<#spec>
The ratio of <#spec> spectra is calculated and stored in the data of <A>
(see manual for the mathematical expression). Only the spectra usp[<spec_i>]
can be selected. The sign of <spec_i> determines whether the spectrum is
treated as a 90 degrees (-) or 180 degrees (+) detector combination.
Before the ratio is taken a constant background <bck_i> is substracted from
each spectrum. If <#spec> =0 the <spec_i> detector combinations are
determined by the default spectrum list
[+0(!!), -1, -2, +3, +4, -5, -6, +7, -8, -9, -10, -11].
In case that there are only 2, 4 or 8 spectra in usp the default
spectrum list is terminated accordingly. The factor <k> should be chosen
depending on the expected interaction. Best values are <k>=1 for random
electric interaction and <k>=2 for purely magnetic interaction.
<k>, <#spec>, <spec_i>, <bck_i> : integer.
RESIDU
residu <A> <B>
The theory of <A> is substracted from the data of <A> and the result is
stored in the data of <B>. The theory of <B> is reset to zero.
<A>,<B> : pac dataspace.
SETPar
setpar <A> <i> <val> ...
The parameter p[<i>] used in the fit belonging to the dataspace <A> is
set to <val>.
<A> : pac dataspace
<i> : integer
<val> : float.
SETFitpar
setfitpar <A> <xmin> <xmax> <np> <nfree> <lst>[0]...<lst>[<nfree>-1]
<p>[0]...<p>[<np>-1]>
Initializes the fit parameters of data space <A>.
<A> : PAC dataspace
<xmin>, <xmax> : float [xunits]
<np> : [0...NPAR-1]
<nfree> : [0...<np>-1]
<lst>[] : [0...<np>-1]
<p>[] : float
see also MFITds and FITds.
SHIFTBuf
shiftbuf <spec#> <A>
The contents of buffer spectrum <spec#> is copied to the data of <A>.
The corresponding errors are calculated, assuming error[i] = sqrt(data[i]).
<spec#> : [0 ... 11].
<A> : pac dataspace.
SMoothds
smoothds <A> <B> <n>
The weighted average of <A> is calculated over <n> channels and stored in
<B>.
<A>, <B> : pac dataspace.
<n> : integer.
SPLICo
splico <to>
The coefficients C[i] of an interpolating spline function are calculated
from the equidistant datapoints spt[i] i=0 ... <to>.
<to> : integer.
SQueezeds
squeezeds <A> <B> <factor>
<A> is squeezed by <factor> in such a way that the amplitudes
and the phases of the wiggles are unchanged. The result is stored in <B>.
<A>, <B> : pac dataspace
<factor> : < 1.0,--> >.
Theories for use in command FITDS
see also FITds.THEO1
Theory which should be used for the determination of the half-life.
Valid input values for <#p> are: 0, 1, 2 or 4.
F(t) = B(t)+ p[2] * e^-p[3] * t
where B(t) = p[0] + p[1] * t
THEO2
Theory which should be used for magnetic dipole and electric quadrupole
(spin<3) interactions. Up to six components can be fitted. Detectors are
assumed to be at relative angles of pi and pi/2 [rad]. Valid input values
for <#p> are: 0, 1, 2 or 3+6*k
F(t) = B(t) + SUM(_i=1)(^k) A_i * G(...;t)
G(t) = C_i * cos[omega_i*(t-t_0)]* h(r_i*t)
+ (1-C_i-D_i) * cos[(2+n_i)*omega_i*(t-t_0)]*h[(2+n_i)*r_i*t]
+ D_i * cos[(3+n_i)*omega_i*(t-t_0)]*h[(3+n_i)*r_i*t]
where
B(t) = p[0] + p[1] * t
h(z) = e^{-z}
and the different quantities correspond to the input parameters:
t_0 p[2]
r_i p[3+6(i-1)]
A_i p[4+6(i-1)]
omega_i/2*pi p[5+6(i-1)]
C_i p[6+6(i-1)]
n_i p[7+6(i-1)]
D_i p[8+6(i-1)]
Take for
p[6],.. p[7],.. p[8],.. in case of
0.46 0 0.18 randomly oriented QI, spin=5/2 and eta = 0;
total amplitude = 1.25 * A
0.395 -1 0.21 randomly oriented QI, spin=5/2 and eta = 1;
total amplitude = 1.33 * A
0.50 0 0 randomly orientated MI;
total amplitude = 1.25 * A
0 0 0 magnetic field perpendicular to the detector
plane; total amplitude = 1.33 * A
1 0 0 Raghavan geometry
total amplitude = 1.33 * A
THEO3
Theory which should be used for magnetic dipole and electric quadrupole
(spin<3) interactions. Up to six components can be fitted. Detectors are
assumed to be at relative angles of pi and pi/2 [rad]. Valid input values
for <#p> are: 0, 1, 2 or 3+6*k
F(t) = B(t) + SUM(_i=1)(^k) A_i * G(...;t)
G(t) = C_i * cos[omega_i*(t-t_0)]* h(r_i*t)
+ (1-C_i-D_i) * cos[(2+n_i)*omega_i*(t-t_0)]*h[(2+n_i)*r_i*t]
+ D_i * cos[(3+n_i)*omega_i*(t-t_0)]*h[(3+n_i)*r_i*t]
where
B(t) = p[0] + p[1] * t
h(z) = e^{-z^2/2}
and the different quantities correspond to the input parameters:
t_0 p[2]
r_i p[3+6(i-1)]
A_i p[4+6(i-1)]
omega_i/2*pi p[5+6(i-1)]
C_i p[6+6(i-1)]
n_i p[7+6(i-1)]
D_i p[8+6(i-1)]
Take for
p[6],.. p[7],.. p[8],.. in case of
0.46 0 0.18 randomly oriented QI, spin=5/2 and eta = 0;
total amplitude = 1.25 * A
0.395 -1 0.21 randomly oriented QI, spin=5/2 and eta = 1;
total amplitude = 1.33 * A
0.50 0 0 randomly orientated MI;
total amplitude = 1.25 * A
0 0 0 magnetic field perpendicular to the detector
plane; total amplitude = 1.33 * A
1 0 0 Raghavan geometry
total amplitude = 1.33 * A
THEO4
Theory which should be used for magnetic dipole interactions. Up to nine
components can be fitted. Detectors are assumed to be at relative angles
of pi/4 and -pi/4 [rad]. Valid input values for <#p> are: 0, 1, 2 or 3+4*k
F(t) = B(t) + SUM(_i=1)(^k) A_i * G(...;t)
G(...;t) = C_i * cos[omega_i*t-(pi*t_0)/180]*h[r_i*t]
+ (1-C_i) * cos[2*omega_i*t-(pi*t_0)/180]*h[2*r_i*t]
where
B(t) = p[0] + p[1] * t
h(z) = e^{-z}
and the different quantities correspond to the input parameters:
t_0 p[2]
r_i p[3+4(i-1)]
A_i p[4+4(i-1)]
omega_i/2*pi p[5+4(i-1)]
C_i p[6+4(i-1)]
THEO5
Theory which should be used for magnetic dipole interactions. Up to nine
components can be fitted. Detectors are assumed to be at relative angles
of pi/4 and -pi/4 [rad]. Valid input values for <#p> are: 0, 1, 2 or 3+4*k
F(t) = B(t) + SUM(_i=1)(^k) A_i * G(...;t)
G(...;t) = C_i * cos[omega_i*t-(pi*t_0)/180]*h[r_i*t]
+ (1-C_i) * cos[2*omega_i*t-(pi*t_0)/180]*h[2*r_i*t]
where
B(t) = p[0] + p[1] * t
h(z) = e^{-z^2/2}
and the different quantities correspond to the input parameters:
t_0 p[2]
r_i p[3+4(i-1)]
A_i p[4+4(i-1)]
omega_i/2*pi p[5+4(i-1)]
C_i p[6+4(i-1)]
THEO8
This theory should be used to fit a tabulated function to the data.
Valid input values for <#p> are: 0, 1, 2 or 5
F(t) = B(t) + p[4]*S(p[3](t-p[2]))
where
B(t) = p[0] + p[1] * t
The spline function S(t) is calculated from the coefficients C[i], which
are determined through the use of SPLICo.
THEO9
This theory should be used for fitting half-life folded with a finite
time-resolution. Up to sixteen components can be fitted. Valid input
values for <#p> are: 0, 1, 2 or 6+2*k
F(t) = B(t) + SUM(_i=1)(^k) I_i * g(t_0,tau_i) O*
[(1-A) * h(t_0,sigma_1) + A * h(t_0,sigma_2)]
where
B(t) = p[0] + p[1] * t
g(t_0,tau_i) = 1/tau_i * e^{-(t-t_0)/tau_i}
h(t_0,sigma_j) = 1/sqrt{2*pi*sigma_j}*e^{-1/2((t-t_0)/*sigma_j)^2
O* = convolution operator
where the different quantities correspond to the input parameters:
t_0 p[2]
1/*sigma_1 p[3]
A p[4]
1/*sigma_2 p[5]
I_i p[6+2(i-1)]
1/tau_i p[7+2(i-1)]
PAC simulation
CALQk
CALQk
The solid angle attenuation coefficients Q[k] are calculated using the
approach of Krane. The results are printed to stdout and stored in the
internal variable s_det.Q[k].
The necessary information concerning the detector geometry and the
hyperfine probe can be changed using the commands PROBE, DEFPRobe, DETector.
If the values of Q[k] do not correspond to the current detector geometry
or hyperfine probe, CALWkk and CALRt will automatically recalulate Q[k].
CALSingle
calsingle <A> <det1> <det2>
The perturbation function is calculated for the detector combination
<det1>, <det2>, and for the currently defined hyperfine interaction,
probe, and detector geometry. The result is summed over all
multipolarities <k1>, <k2>, and stored in the theory of <A>.
<A> : PAC dataspace
<det1>, <det2> : [0...3]
The necessary information concerning the detector geometry and the
hyperfine probe can be changed using the commands PROBE, DEFPRobe, DETector.
If the values of Q[k] do not correspond to the current detector geometry
or hyperfine probe, CALWkk and CALRt will automatically recalulate Q[k].
CALRt
CALRt <k>
The theoretical RATIO is calculated for the currently defined hyperfine
interaction and detector geometry. The k factor of the ratio can be
set using <k>.
<k> : integer.
see also DEFPRobe, PROBE,
DETector, DEFQi,
DEFMi, and RATio.
CALWkk
CALWkk <det1> <det2> <k1> <k2>
Relative frequencies and amplitudes are calculated for the currently
defined hyperfine interaction, using <det1> and <det2> from the
currently defined detector geometry. The multipolarity of the first
and second transition are given by <k1> and <k2>.
<det1>, <det2>, <k1>, <k2>: integer.
see also DEFPRobe, PROBE,
DETector, DEFQi,
and DEFMi.
DEFQi
defqi <omega_E> <eta> <theta_Vzz> <phi_Vzz> <theta_Vxx> <phi_Vxx>
Defines the EFG used in the simulation of PAC spectra. The base
frequency is given by <omega_E> [chan-1], the assymetry parameter by
<eta>, and the orientation of the EFG by theta_Vzz, phi_Vzz, theta_Vxx,
phi_Vxx relative to the LAB system.
<omega_E>, <eta>, <theta_Vzz>, <phi_Vzz>, <theta_Vxx>, <phi_Vxx>: float.
see also DEFPRobe, PROBE,
DETector, DEFMi,
CALWkk, and CALRt.
DEFMi
DEFMI <omega_B> <theta> <phi>
Defines the magnetic hyperfine field used in the simulation of PAC spectra
The base frequency is given by <omega_B> [chan-1], and the orientation
relative to the LAB system is given by the polar angles <theta>, <phi>.
<omega_B>, <theta>, <phi>: float
see also DEFPRobe, PROBE,
DETector, DEFQi,
CALWkk, and CALRt.
DEFPRobe
defprobe <dspin> <gfactor> <quadmom> <energy#1> <quantum#1>
<energy#2> <quantum#2> [<k1> <k2> <A(k1,k2).. ]
Defines the properties of the probe nucleus used in the pac spectra
simulation. The double spin value, the g-factor and the quadrupole moment
of the intermediate state, are given by <dspin>, <gfactor> and <quadmom>
respectively. The transitions are described by <energy> and <quantum>.
The anisotropy coefficients A(k1,k2) can be entered through the sequence
<k1>,<k2> and A(k1,k2).
<dspin> : integer.
<gfactor>, <quadmom> : float.
<energy> : float.
<quantum> : gamma,beta.
<k1>,<k2> : integer.
<A(k1,k2)> : float.
DETector
detector <theta1> <phi1> <theta2> <phi2> <theta3> <phi3> <theta4> <phi4>
<distance> <material> <scintlength> <scintradius>
Defines the PAC detectors used in the pac spectra simulation. The
orientations of the detectors with respect to the LAB frame are given by
(theta#,phi#). The scintillator crystal is defined by <material>,
<scintlength>, and <radius>. The distance between the sample and the
detector is given by <distance>.
<theta#>,<phi#> : float.
<distance> : float.
<material> : NaI, BaF2.
<scintlength>,<scintradius> : float.
The effect of solid angle attenuation is automatically recalculated if
the detector data is modified.
All lengths should be entered in cm.
MAKERR
makerr <A>
The data points in <A> are randomly scattered, assuming a Gaussian
distribution function, with <sigma>[i] = sqrt(<data>[i]).
The corresponding errors are calculated.
<A> : PAC dataspace
The pseudo random number generator residing in pctl may be controlled
using the commands RANSET, RANINIT, RANSAVE. This is useful, e.g.in the
case that different spectra are combined.
PROBE
probe <name>
The probe <name> is selected in the calculations, e.g. of theoretical
PAC spectra.
<name> : In-111, Ag-111, Pd-100, Hf-181
Only the gamma-gamma cascade of Ag-111 is considered.
RANINIT
raninit <level>}
Initializes the quality of the random generator. Available levels:
0 : Equivalent to the original RCARRY of Marsaglia and Zaman, very long
period, but fails many tests.
1 : Considerable improvement in quality over level 0, now passes the gap
test, but still fails spectral test.
2 : Passes all known tests, but theoretically still defective.
3 : DEFAULT VALUE. Any theoretically possible correlations have a
very small chance of being observed.
4 : Highest possible luxury, all 24 bits chaotic.
For the curious, the algorithm is a subtract-and-borrow random number
generator proposed by Marsaglia and Zaman, implemented by F. James with
the name RCARRY in 1991, and later improved by Martin Luescher in 1993
to produce "Luxury Pseudo Random Numbers".
It is advisable to select a level which passes the spectral test.
RANSAVE
ransave
Saves the state vectors of the random number generator to the file
./RANSTAT.DAT. This is useful, e.g. to continue the pseudo-random number
sequence at some particular point.
RANSET
ranset
Loads the state vectors of the random number generator from the file
./RANSTAT.DAT.