Added pre_count method which sets the histogram frame frequency from the chopper frequency.
r2196 | ffr | 2007-10-23 14:01:36 +1000 (Tue, 23 Oct 2007) | 2 lines
This commit is contained in:
committed by
Douglas Clowes
parent
a35b5573cf
commit
f33f62ba20
@@ -28,6 +28,14 @@ if {$sim_mode == "true"} {
|
||||
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 {} {
|
||||
@@ -37,91 +45,47 @@ if {$sim_mode == "true"} {
|
||||
hmm configure hmDataPath ../HMData;
|
||||
}
|
||||
}
|
||||
# Configure to upload a complete configuration to the histogram server.
|
||||
# In this case it's the main config file plus the FAT, BAT and OAT files
|
||||
# in the same direcory as the SICS executable (for this example).
|
||||
# Alternatives:
|
||||
# - A partial config could be uploaded instead - e.g. just the main config file,
|
||||
# in that case the main config file points to a set of FAT, BAT OAT files
|
||||
# located on the server.
|
||||
# - The histogram server could configure itself from a config file set
|
||||
# kept on the local file system (not automated presently, manual control only)
|
||||
# - Or, no configuration at all could be uploaded, the
|
||||
# histogram server can configure itself using its default config files.
|
||||
proc ::histogram_memory::setmode {mode} {
|
||||
hmm_mode $mode;
|
||||
set sim_mode [SplitReply [hmm_simulation]];
|
||||
|
||||
switch $mode {
|
||||
pulser {
|
||||
if {$sim_mode == "true"} {
|
||||
hmm configure oat_nyc_eff 1024;
|
||||
hmm configure oat_nxc_eff 64;
|
||||
hmm configure oat_ntc_eff 1;
|
||||
}
|
||||
_hmm_hor_channel_name tube_pair_number
|
||||
_hmm_hor_axis tube_pair_number
|
||||
_hmm_hor_axis_alias dcolindex
|
||||
_hmm_vert_axis vertical_channel_number
|
||||
_hmm_vert_axis_alias drowindex
|
||||
hmm configure hmconfigscript "returnconfigfile [SplitReply [hmm_user_configpath]]/anstohm_full_MESYTEC_PULSER.xml"
|
||||
}
|
||||
calibration {
|
||||
if {$sim_mode == "true"} {
|
||||
hmm configure oat_nyc_eff 1024;
|
||||
hmm configure oat_nxc_eff 64;
|
||||
hmm configure oat_ntc_eff 1;
|
||||
}
|
||||
_hmm_hor_channel_name tube_pair_number
|
||||
_hmm_hor_axis tube_pair_number
|
||||
_hmm_hor_axis_alias dcolindex
|
||||
_hmm_vert_axis vertical_channel_number
|
||||
_hmm_vert_axis_alias drowindex
|
||||
hmm configure hmconfigscript "returnconfigfile [SplitReply [hmm_user_configpath]]/anstohm_full_nofolding.xml"
|
||||
}
|
||||
normal -
|
||||
default {
|
||||
if {$sim_mode == "true"} {
|
||||
hmm configure oat_nyc_eff 512;
|
||||
hmm configure oat_nxc_eff 128;
|
||||
hmm configure oat_ntc_eff 1;
|
||||
}
|
||||
_hmm_hor_channel_name horizontal_channel_number
|
||||
_hmm_hor_axis polar_angle
|
||||
_hmm_hor_axis_alias dtheta
|
||||
_hmm_vert_axis vertical_channel_number
|
||||
_hmm_vert_axis_alias drowindex
|
||||
#OAT_TABLE X {-210.5 -208.5} Y {-110.5 -109.5} T {0 20000} NTC 2
|
||||
::histogram_memory::configure_server Filler_defaults
|
||||
}
|
||||
}
|
||||
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
|
||||
hmm configure fat_frame_frequency 50
|
||||
} else {
|
||||
hmm configure fat_frame_source EXTERNAL
|
||||
hmm configure fat_frame_frequency $freq
|
||||
}
|
||||
hmm stop
|
||||
hmm init 0
|
||||
hmm init
|
||||
}
|
||||
|
||||
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_bin0 -210.5; set x_binmax 210.5
|
||||
set y_bin0 -110.5; set y_binmax 110.5
|
||||
set x_bb0 -210.5; set xbbmax 210.5
|
||||
set y_bb0 -110.5; set ybbmax 110.5
|
||||
set x_binwidth 1
|
||||
if {[expr {$x_binmax - $x_bin0}] > 0} {
|
||||
set x_bin1 [expr {$x_bin0+$x_binwidth}]
|
||||
if {[expr {$xbbmax - $x_bb0}] > 0} {
|
||||
set x_bb1 [expr {$x_bb0+$x_binwidth}]
|
||||
} else {
|
||||
set x_bin1 [expr {$x_bin0-$x_binwidth}]
|
||||
set x_bb1 [expr {$x_bb0-$x_binwidth}]
|
||||
}
|
||||
set y_binwidth 1
|
||||
if {[expr {$y_binmax - $y_bin0}] > 0} {
|
||||
set y_bin1 [expr {$y_bin0+$y_binwidth}]
|
||||
if {[expr {$ybbmax - $y_bb0}] > 0} {
|
||||
set y_bb1 [expr {$y_bb0+$y_binwidth}]
|
||||
} else {
|
||||
set y_bin1 [expr {$y_bin0-$y_binwidth}]
|
||||
set y_bb1 [expr {$y_bb0-$y_binwidth}]
|
||||
}
|
||||
OAT_TABLE -init X_MIN $x_bin0 X_MAX $x_binmax Y_MIN $y_bin0 Y_MAX $y_binmax
|
||||
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_bin0 [OAT_TABLE -get T_MIN]
|
||||
set t_bin1 [OAT_TABLE -get T_MAX]
|
||||
OAT_TABLE X "$x_bin0 $x_bin1" Y "$y_bin0 $y_bin1" T "$t_bin0 $t_bin1"
|
||||
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_pixel_offset
|
||||
|
||||
Reference in New Issue
Block a user