diff --git a/site_ansto/instrument/emu/config/hmm/hmm_configuration.tcl b/site_ansto/instrument/emu/config/hmm/hmm_configuration.tcl index 2826e9fc..b3c1b666 100644 --- a/site_ansto/instrument/emu/config/hmm/hmm_configuration.tcl +++ b/site_ansto/instrument/emu/config/hmm/hmm_configuration.tcl @@ -1,69 +1,68 @@ -#TODO Set emu hmm parameters, this is the bilby config. 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 240 - OAT_TABLE Y -setdata MAX_CHAN 256 - OAT_TABLE X -setdata BMIN -0.5 - OAT_TABLE X -setdata BMAX 239.5 - OAT_TABLE Y -setdata BMIN -0.5 - OAT_TABLE Y -setdata BMAX 255.5 - - set clock_scale 1000 - set freq 50 - hmm configure fat_clock_scale $clock_scale - hmm configure fat_frame_frequency $freq - hmm configure fat_frame_source INTERNAL - - OAT_TABLE -set X { 239.5 238.5 } NXC 240 Y { -0.5 2.5 } NYC 86 T { 0 20000 } NTC 1 - } message ] { - return -code error $message - } -} -proc ::histogram_memory::init_FAT_TABLE {} { - hmm configure FAT_EVENT_OUTPUT_STREAMING ENABLE -} -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 + + OAT_TABLE X -setdata MAX_CHAN 35 + OAT_TABLE Y -setdata MAX_CHAN 1024 + OAT_TABLE X -setdata BMIN -0.5 + OAT_TABLE X -setdata BMAX 34.5 + OAT_TABLE Y -setdata BMIN -0.5 + OAT_TABLE Y -setdata BMAX 1023.5 + + set clock_scale 1000 + set freq 10 + + hmm configure fat_clock_scale $clock_scale + hmm configure fat_frame_frequency $freq + hmm configure fat_frame_source EXTERNAL + # The entries in the time bin array are in nanoseconds/clock_scale because the clock base is in nanoseconds + OAT_TABLE -set X { 34.5 33.5 } NXC 35 Y { -0.5 3.5 } NYC 256 T {0 100000} NTC 1 + if {$::sim_mode == "true"} { hmm configure oat_ntc_eff 1 - hmm configure $INST_NYC 86 - hmm configure $INST_NXC 240 + hmm configure $INST_NYC 256 + hmm configure $INST_NXC 35 } + + } 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 + + if [ catch { + ::histogram_memory::init_hmm_objs BAT_TABLE -init - CAT_TABLE -init +# CAT_TABLE -init SAT_TABLE -init OAT_TABLE -init FAT_TABLE -init ::histogram_memory::ic_initialize - detector_active_height_mm [expr 5.08 * 86] - detector_active_width_mm [expr 5.08 * 240] +# TODO set height and width if they want axes in mm + detector_active_height_mm 1.0 detector_active_height_mm lock - detector_active_width_mm lock + detector_active_width_mm 1.0 + 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::init_FAT_TABLE ::histogram_memory::upload_config Filler_defaults - set ::histogram_memory::histmem_axes(HOR) /instrument/detector/x_pixel_offset - set ::histogram_memory::histmem_axes(VER) /instrument/detector/y_pixel_offset + set ::histogram_memory::histmem_axes(HOR) /instrument/detector/x_bin + set ::histogram_memory::histmem_axes(VER) /instrument/detector/y_bin + ::histogram_memory::set_frame_source INTERNAL } message ] { + if {$::errorCode=="NONE"} {return $message} return -code error $message } }