Files
sics/site_ansto/instrument/rsd/config/hmm/hmm_configuration.tcl
Ferdi Franceschini 2ec6505ef8 Merged 2.4 branch
r2828 | ffr | 2009-11-25 09:56:49 +1100 (Wed, 25 Nov 2009) | 2 lines
2012-11-15 16:57:26 +11:00

104 lines
3.3 KiB
Tcl

source $cfPath(hmm)/hmm_configuration_common_1.tcl
set sim_mode [SplitReply [hmm_simulation]]
::utility::mkVar sample_to_detector_distance float manager sample_to_detector_distance true detector true true
sicslist setatt sample_to_detector_distance units mm
proc ::histogram_memory::init_OAT_TABLE {} {
# We don't need a MAX_CHAN parameter for time because the time channel
# is scaled by calling the ::histogram_memory::clock_scale function
OAT_TABLE X -setdata MAX_CHAN 421
OAT_TABLE Y -setdata MAX_CHAN 421
OAT_TABLE X -setdata BMIN -210.5
OAT_TABLE X -setdata BMAX 210.5
OAT_TABLE Y -setdata BMIN -210.5
OAT_TABLE Y -setdata BMAX 210.5
OAT_TABLE -set X { -210.5 -209.5 } NXC 421 Y { -210.5 -209.5 } NYC 421 T { 0 20000 } NTC 1
}
proc ::histogram_memory::pre_count {} {}
proc ::histogram_memory::post_count {} {}
##
# @brief Adds Kowari specific hmm data types
proc ::histogram_memory::is_select_read_type {type} {
variable HMOBJ
# Instrument specific X and Y dimension names
variable INST_NXC
variable INST_NYC
if [catch {
$HMOBJ configure read_data_period_number 0
switch [string toupper $type] {
"TOTAL_HISTOGRAM_X_CORRECTED" {
$HMOBJ configure rank 1
$HMOBJ configure dim0 [SplitReply [$HMOBJ configure $INST_NXC]]
$HMOBJ configure READ_DATA_UNCAL_CAL CALIBRATED
$HMOBJ configure READ_DATA_TYPE TOTAL_HISTOGRAM_X
set hmm_ext "_total_x"
}
"TOTAL_HISTOGRAM_XY_CORRECTED" {
$HMOBJ configure rank 2
$HMOBJ configure dim0 [SplitReply [$HMOBJ configure $INST_NXC]]
$HMOBJ configure dim1 [SplitReply [$HMOBJ configure $INST_NYC]]
$HMOBJ configure READ_DATA_UNCAL_CAL CALIBRATED
$HMOBJ configure READ_DATA_TYPE TOTAL_HISTOGRAM_XY
set hmm_ext "_total_xy"
}
default {
$HMOBJ configure READ_DATA_UNCAL_CAL UNCALIBRATED
set hmm_ext "notfound"
}
}
} msg ] {
return -code error "([info level 0]) $msg"
}
return $hmm_ext
}
proc ::histogram_memory::isc_initialize {} {
# Instrument specific X and Y dimension names
variable INST_NXC "oat_nxc_eff"
variable INST_NYC "oat_nyc_eff"
if [ catch {
::histogram_memory::init_hmm_objs
if {$::sim_mode == "true"} {
hmm configure oat_ntc_eff 1
hmm configure $INST_NYC 421
hmm configure $INST_NXC 421
}
BAT_TABLE -init
CAT_TABLE -init
SAT_TABLE -init
OAT_TABLE -init
FAT_TABLE -init
detector_active_height_mm 280
detector_active_height_mm lock
detector_active_width_mm 280
detector_active_width_mm lock
::histogram_memory::ic_initialize
# 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
::histogram_memory::init_OAT_TABLE
::histogram_memory::upload_config Filler_defaults
::nexus::data alias ::histogram_memory::vertical_axis ::histogram_memory::y_pixel_offset
::nexus::data alias ::histogram_memory::horizontal_axis ::histogram_memory::x_pixel_offset
} message ] {
if {$::errorCode=="NONE"} {return $message}
return -code error $message
}
}
proc histmem {cmd args} {
eval "_histmem $cmd $args"
}
publish histmem user