110 lines
3.4 KiB
Tcl
110 lines
3.4 KiB
Tcl
|
|
fileeval $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
|
|
|
|
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 EXTERNAL
|
|
|
|
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
|
|
|
|
set ::histogram_memory::histmem_axes(HOR) /instrument/detector/x_pixel_offset
|
|
set ::histogram_memory::histmem_axes(VER) /instrument/detector/y_pixel_offset
|
|
} message ] {
|
|
if {$::errorCode=="NONE"} {return $message}
|
|
return -code error $message
|
|
}
|
|
}
|
|
|
|
proc histmem {cmd args} {
|
|
eval "_histmem $cmd $args"
|
|
}
|
|
publish histmem user
|