Files
sics/site_ansto/instrument/reflectometer/config/hmm/hmm_configuration.tcl
Ferdi Franceschini cb89c02daf Use ::histogram_memory::upload_config instead of the deprecated ::histogram_memory::configure_server procedure.
r2284 | ffr | 2008-01-15 15:03:41 +1100 (Tue, 15 Jan 2008) | 2 lines
2012-11-15 13:32:23 +11:00

82 lines
2.4 KiB
Tcl

source $cfPath(hmm)/hmm_configuration_common_1.tcl
set sim_mode [SplitReply [hmm_simulation]]
proc ::histogram_memory::pre_count {} {}
proc ::histogram_memory::post_count {} {}
proc ::histogram_memory::initialize {} {
if {$::sim_mode == "true"} {
hmm configure oat_ntc_eff 1
hmm configure oat_nyc_eff 210
hmm configure oat_nxc_eff 210
}
::histogram_memory::_initialize
detector_active_height_mm 257.5
detector_active_width_mm 500
set x_bb0 -210.5; set xbbmax 210.5
set y_bb0 -110.5; set ybbmax 110.5
hmm configure FAT_SIMULATED_EVENT_Y0 $y_bb0
hmm configure FAT_SIMULATED_EVENT_Y1 $ybbmax
hmm configure FAT_SIMULATED_EVENT_X0 $x_bb0
hmm configure FAT_SIMULATED_EVENT_X1 $xbbmax
set x_binwidth 1
if {[expr {$xbbmax - $x_bb0}] > 0} {
set x_bb1 [expr {$x_bb0+$x_binwidth}]
} else {
set x_bb1 [expr {$x_bb0-$x_binwidth}]
}
set y_binwidth 1
if {[expr {$ybbmax - $y_bb0}] > 0} {
set y_bb1 [expr {$y_bb0+$y_binwidth}]
} else {
set y_bb1 [expr {$y_bb0-$y_binwidth}]
}
OAT_TABLE -init X_MIN $x_bb0 X_MAX $xbbmax Y_MIN $y_bb0 Y_MAX $ybbmax
# We default to one big bin for time
set t_bb0 [OAT_TABLE -get T_MIN]
set t_bb1 [OAT_TABLE -get T_MAX]
OAT_TABLE X "$x_bb0 $x_bb1" Y "$y_bb0 $y_bb1" T "$t_bb0 $t_bb1"
::histogram_memory::upload_config Filler_defaults
::nexus::data alias ::histogram_memory::vertical_axis ::histogram_memory::y_bin
::nexus::data alias ::histogram_memory::horizontal_axis ::histogram_memory::x_bin
}
##
# @brief Set histogram memory frame frequency to match the current chopper frequency
proc ::histogram_memory::tochfreq {} {
if [ catch {
::chopper::ready?
set chfreq [::chopper::get_frequency]
::histogram_memory::set_frame_freq $chfreq EXTERNAL
} errmsg ] {
return -code error $errmsg
}
}
##
# @brief Extends the core _histmem command with platypus specific subcommands
#
# @param tochfreq updates chopper status and then sets histmem frame frequency to match
# the chopper frequency.
#
# NOTE: If the chopper is stopped (ie freq=0) then the histogram frequency will be set to
# 50Hz with an internal frame_source.\n
# @see ::histogram_memory::set_frame_freq
proc histmem {cmd args} {
if [ catch {
switch $cmd {
"tochfreq" {
::histogram_memory::tochfreq
}
default {
eval "_histmem $cmd $args"
}
}
} errmsg ] {
return -code error $errmsg
}
}
publish histmem user