111 lines
3.4 KiB
Tcl
111 lines
3.4 KiB
Tcl
fileeval $cfPath(hmm)/hmm_configuration_common_1.tcl
|
|
set sim_mode [SplitReply [hmm_simulation]]
|
|
|
|
proc ::histogram_memory::init_OAT_TABLE {} {
|
|
if [ catch {
|
|
# 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 221
|
|
OAT_TABLE X -setdata BMIN -210.5
|
|
OAT_TABLE X -setdata BMAX 210.5
|
|
OAT_TABLE Y -setdata BMIN -110.5
|
|
OAT_TABLE Y -setdata BMAX 110.5
|
|
|
|
set clock_scale 1000
|
|
set freq 24
|
|
hmm configure fat_clock_scale $clock_scale
|
|
hmm configure fat_frame_frequency $freq
|
|
hmm configure fat_frame_source EXTERNAL
|
|
|
|
# OAT_TABLE -set X { -210.5 -209.5 } NXC 421 Y { -110.5 -109.5 } NYC 221 T { 0 40 } NTC 1000
|
|
# OAT_TABLE -set X { 56.5 -56.5 } NXC 1 Y { 110.5 109.5 } NYC 221 T { 0 40 } NTC 1000
|
|
OAT_TABLE -set X { 60.5 -60.5 } NXC 1 Y { 110.5 109.5 } NYC 221 T { 0 40 } NTC 1000
|
|
} message ] {
|
|
if {$::errorCode=="NONE"} {return $message}
|
|
return -code error $message
|
|
}
|
|
}
|
|
proc ::histogram_memory::pre_count {} {}
|
|
proc ::histogram_memory::post_count {} {}
|
|
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 210
|
|
hmm configure $INST_NXC 210
|
|
}
|
|
BAT_TABLE -init
|
|
CAT_TABLE -init
|
|
SAT_TABLE -init
|
|
OAT_TABLE -init
|
|
FAT_TABLE -init
|
|
::histogram_memory::ic_initialize
|
|
|
|
detector_active_height_mm 230
|
|
detector_active_height_mm lock
|
|
detector_active_width_mm 480
|
|
detector_active_width_mm lock
|
|
|
|
# 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
|
|
|
|
set ::histogram_memory::histmem_axes(HOR) /instrument/detector/x_bin
|
|
set ::histogram_memory::histmem_axes(VER) /instrument/detector/y_bin
|
|
set ::histogram_memory::histmem_axes(TOF) /instrument/detector/time_of_flight
|
|
|
|
} message ] {
|
|
if {$::errorCode=="NONE"} {return $message}
|
|
return -code error $message
|
|
}
|
|
}
|
|
|
|
##
|
|
# @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
|
|
} message ] {
|
|
if {$::errorCode=="NONE"} {return $message}
|
|
return -code error $message
|
|
}
|
|
}
|
|
|
|
##
|
|
# @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 {
|
|
set reply [eval "_histmem $cmd $args"]
|
|
}
|
|
}
|
|
return $reply
|
|
} message ] {
|
|
if {$::errorCode=="NONE"} {return $message}
|
|
return -code error $message
|
|
}
|
|
}
|
|
publish histmem user
|