Files
sics/site_ansto/instrument/reflectometer/config/hmm/hmm_configuration.tcl
Ferdi Franceschini 5b5b3b4cc8 Use x,y bin boundaries for histogram horizontal and vertical axes.
Set the hmm frequency with the ::histogram_memory::set_frame_freq command to make sure that the maximum time bin is set properly.

r2207 | ffr | 2007-10-31 17:03:01 +1100 (Wed, 31 Oct 2007) | 3 lines
2012-11-15 13:27:33 +11:00

95 lines
2.6 KiB
Tcl

set sim_mode [SplitReply [hmm_simulation]]
if {$sim_mode == "true"} {
MakeHM hmm SIM
MakeHM hmm_xy SIM
MakeHM hmm_xt SIM
MakeHM hmm_yt SIM
MakeHM hmm_x SIM
MakeHM hmm_y SIM
MakeHM hmm_t SIM
hmm configure daq Stopped
hmm configure statuscheck false
namespace eval histogram_memory {
proc hmc {_start _preset _mode _pause} {
bm mode $_mode;
bm preset $_preset;
hmm countblock;
}
}
} else {
MakeHM hmm anstohttp;
MakeHM hmm_xy anstohttp;
MakeHM hmm_xt anstohttp;
MakeHM hmm_yt anstohttp;
MakeHM hmm_x anstohttp;
MakeHM hmm_y anstohttp;
MakeHM hmm_t anstohttp;
MakeHMControl_ANSTO hmc bm hmm;
}
hmm configure rank 3
hmm_xy configure rank 2
hmm_xt configure rank 2
hmm_yt configure rank 2
hmm_x configure rank 1
hmm_y configure rank 1
hmm_t configure rank 1
source $cfPath(hmm)/hmm_configuration_common_1.tcl
if {$sim_mode == "true"} {
proc ::histogram_memory::initialize {} {
hmm configure hmaddress http://das1-[SplitReply [instrument]]:8080;
hmm configure username spy;
hmm configure password 007;
hmm configure hmDataPath ../HMData;
}
}
proc ::histogram_memory::pre_count {} {
set freq [::chopper::get_frequency]
#TODO Add tolerance parameters to choppercontroller
if {abs($freq - 0) <= [expr 2.0/60.0]} {
hmm configure fat_frame_source INTERNAL
::histogram_memory::set_frame_freq 50
} else {
hmm configure fat_frame_source EXTERNAL
::histogram_memory::set_frame_freq $freq
}
}
proc ::histogram_memory::post_count {} {}
proc ::histogram_memory::initialize {} {
::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::configure_server Filler_defaults
::nexus::data alias ::histogram_memory::vertical_axis ::histogram_memory::y_bin
::nexus::data alias ::histogram_memory::horizontal_axis ::histogram_memory::x_bin
}