set sim_mode [SplitReply [hmm_simulation]] if {$sim_mode == "true"} { MakeHM hmm SIM MakeHM hmm_xy SIM MakeHM hmm_xt SIM MakeHM hmm_yt SIM MakeHM hmm_x SIM MakeHM hmm_y SIM MakeHM hmm_t SIM hmm configure daq Stopped hmm configure statuscheck false namespace eval histogram_memory { proc hmc {_start _preset _mode _pause} { bm mode $_mode; bm preset $_preset; hmm countblock; } } } else { MakeHM hmm anstohttp; MakeHM hmm_xy anstohttp; MakeHM hmm_xt anstohttp; MakeHM hmm_yt anstohttp; MakeHM hmm_x anstohttp; MakeHM hmm_y anstohttp; MakeHM hmm_t anstohttp; MakeHMControl_ANSTO hmc bm hmm; } source $cfPath(hmm)/hmm_configuration_common_1.tcl if {$sim_mode == "true"} { proc ::histogram_memory::initialize {} { hmm configure hmaddress http://das1-[SplitReply [instrument]]:8080; hmm configure username spy; hmm configure password 007; hmm configure hmDataPath ../HMData; } } # Configure to upload a complete configuration to the histogram server. # In this case it's the main config file plus the FAT, BAT and OAT files # in the same direcory as the SICS executable (for this example). # Alternatives: # - A partial config could be uploaded instead - e.g. just the main config file, # in that case the main config file points to a set of FAT, BAT OAT files # located on the server. # - The histogram server could configure itself from a config file set # kept on the local file system (not automated presently, manual control only) # - Or, no configuration at all could be uploaded, the # histogram server can configure itself using its default config files. proc ::histogram_memory::setmode {mode} { hmm_mode $mode; set sim_mode [SplitReply [hmm_simulation]]; switch $mode { pulser { if {$sim_mode == "true"} { hmm configure oat_nyc_eff 1024; hmm configure oat_nxc_eff 64; hmm configure oat_ntc_eff 1; } _hmm_hor_channel_name tube_pair_number _hmm_hor_axis tube_pair_number _hmm_hor_axis_alias dcolindex _hmm_vert_axis vertical_channel_number _hmm_vert_axis_alias drowindex hmm configure hmconfigscript "returnconfigfile [SplitReply [hmm_user_configpath]]/anstohm_full_MESYTEC_PULSER.xml" } calibration { if {$sim_mode == "true"} { hmm configure oat_nyc_eff 1024; hmm configure oat_nxc_eff 64; hmm configure oat_ntc_eff 1; } _hmm_hor_channel_name tube_pair_number _hmm_hor_axis tube_pair_number _hmm_hor_axis_alias dcolindex _hmm_vert_axis vertical_channel_number _hmm_vert_axis_alias drowindex hmm configure hmconfigscript "returnconfigfile [SplitReply [hmm_user_configpath]]/anstohm_full_nofolding.xml" } normal - default { if {$sim_mode == "true"} { hmm configure oat_nyc_eff 512; hmm configure oat_nxc_eff 128; hmm configure oat_ntc_eff 1; } _hmm_hor_channel_name horizontal_channel_number _hmm_hor_axis polar_angle _hmm_hor_axis_alias dtheta _hmm_vert_axis vertical_channel_number _hmm_vert_axis_alias drowindex ::histogram_memory::configure_server Filler_defaults } } } proc ::histogram_memory::initialize {} { ::histogram_memory::_initialize detector_active_height_mm 500 detector_active_width_mm 500 set x_bin0 -210.5; set x_binmax 210.5 set y_bin0 -210.5; set y_binmax 210.5 set x_binwidth 1 if {[expr {$x_binmax - $x_bin0}] > 0} { set x_bin1 [expr {$x_bin0+$x_binwidth}] } else { set x_bin1 [expr {$x_bin0-$x_binwidth}] } set y_binwidth 1 if {[expr {$y_binmax - $y_bin0}] > 0} { set y_bin1 [expr {$y_bin0+$y_binwidth}] } else { set y_bin1 [expr {$y_bin0-$y_binwidth}] } OAT_TABLE -init X_MIN $x_bin0 X_MAX $x_binmax Y_MIN $y_bin0 Y_MAX $y_binmax # We default to one big bin for time set t_bin0 [OAT_TABLE -get T_MIN] set t_bin1 [OAT_TABLE -get T_MAX] OAT_TABLE X "$x_bin0 $x_bin1" Y "$y_bin0 $y_bin1" T "$t_bin0 $t_bin1" ::histogram_memory::configure_server 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 }