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::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 } ## # @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