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