52 lines
1.4 KiB
Tcl
52 lines
1.4 KiB
Tcl
#-----------------------------------------------------------------------------
|
|
# This is an implementation for a fit command for SICS. It uses a separate
|
|
# fit program retrieved from the vast spaces of the net for this purpose.
|
|
# The scheme is as follows: Data is written to a file, the fit program is
|
|
# executed and the data retrieved at need.
|
|
#
|
|
# Mark Koennecke, October 1997
|
|
#----------------------------------------------------------------------------
|
|
|
|
#----- Initialise this to match your setup
|
|
set fithome /data/koenneck/src/sics/fit
|
|
set scancom xxxscan
|
|
set IIcentervar ""
|
|
|
|
proc fit__run { } {
|
|
global fithome
|
|
global scancom
|
|
global IIcentervar
|
|
#---------------
|
|
set cp [$scancom getcounts]
|
|
set cp2 [split $cp =]
|
|
set Counts [lindex $cp2 1]
|
|
set fp [$scancom getvardata 0]
|
|
set fp2 [split $fp = ]
|
|
set fitpar [lindex $fp2 1]
|
|
#----- set center variable
|
|
set bg [lindex $fp2 1]
|
|
set bg2 [split $bg .]
|
|
set IIcentervar [lindex $bg2 1]
|
|
unset cp
|
|
unset cp2
|
|
unset fp
|
|
unset fp2
|
|
unset bg
|
|
unset bg2
|
|
#---- write fit input file
|
|
set fd [open $fithome/sicsin.dat w]
|
|
set length [llength $Counts]
|
|
for {set i 0 } { $i < $length } { incr i} {
|
|
puts $fd [format " %f %d" [lindex $fitpar $i] \
|
|
[lindex $Counts $i] ]
|
|
}
|
|
close $fd
|
|
|
|
}
|
|
|
|
proc fit args {
|
|
set l [llength $args]
|
|
if { $l < 1} {
|
|
fit__run
|
|
}
|
|
} |