174 lines
6.3 KiB
Tcl
174 lines
6.3 KiB
Tcl
source $cfPath(hmm)/hmm_configuration_common_1.tcl
|
|
source $cfPath(hmm)/hmm_cylindrical_detector_configuration.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 128
|
|
OAT_TABLE Y -setdata MAX_CHAN 512
|
|
OAT_TABLE X -setdata BMIN -0.5
|
|
OAT_TABLE X -setdata BMAX 127.5
|
|
OAT_TABLE Y -setdata BMIN -0.5
|
|
OAT_TABLE Y -setdata BMAX 511.5
|
|
|
|
OAT_TABLE -set X { 127.5 126.5 } NXC 128 Y { -0.5 3.5 } NYC 128 T { 0 20000 } NTC 1
|
|
} message ] {
|
|
if {$::errorCode=="NONE"} {return $message}
|
|
return -code error $message
|
|
}
|
|
}
|
|
proc ::histogram_memory::init_SAT_TABLE {} {
|
|
if [ catch {
|
|
SAT_TABLE -set APPLY ENABLE MIDPOINT 480 DIRECTION X SWAP ENABLE WRAP ENABLE
|
|
} message ] {
|
|
if {$::errorCode=="NONE"} {return $message}
|
|
return -code error $message
|
|
}
|
|
}
|
|
|
|
proc ::histogram_memory::init_CAT_TABLE {} {
|
|
CAT_TABLE -set MESYTEC_MPSD8_CHANNEL_GAINS {
|
|
1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00
|
|
1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00
|
|
1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00
|
|
1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00
|
|
1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00
|
|
1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00
|
|
1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00
|
|
1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00
|
|
1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00
|
|
1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00
|
|
1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00
|
|
1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00
|
|
1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00
|
|
1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00
|
|
1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00
|
|
1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00
|
|
}
|
|
CAT_TABLE -set MESYTEC_MPSD8_THRESHOLDS { 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 }
|
|
CAT_TABLE -set MESYTEC_TUBE_PAIR_RESISTANCE_RATIOS {
|
|
1. 1. 1. 1. 1. 1. 1. 1.
|
|
1. 1. 1. 1. 1. 1. 1. 1.
|
|
1. 1. 1. 1. 1. 1. 1. 1.
|
|
1. 1. 1. 1. 1. 1. 1. 1.
|
|
1. 1. 1. 1. 1. 1. 1. 1.
|
|
1. 1. 1. 1. 1. 1. 1. 1.
|
|
1. 1. 1. 1. 1. 1. 1. 1.
|
|
1. 1. 1. 1. 1. 1. 1. 1.
|
|
1. 1. 1. 1. 1. 1. 1. 1.
|
|
1. 1. 1. 1. 1. 1. 1. 1.
|
|
1. 1. 1. 1. 1. 1. 1. 1.
|
|
1. 1. 1. 1. 1. 1. 1. 1.
|
|
1. 1. 1. 1. 1. 1. 1. 1.
|
|
1. 1. 1. 1. 1. 1. 1. 1.
|
|
1. 1. 1. 1. 1. 1. 1. 1.
|
|
1. 1. 1. 1. 1. 1. 1. 1.
|
|
}
|
|
CAT_TABLE -set MESYTEC_TUBE_MAGNIFICATIONS {
|
|
1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1.
|
|
1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1.
|
|
1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1.
|
|
1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1.
|
|
1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1.
|
|
1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1.
|
|
1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1.
|
|
1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1.
|
|
1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1.
|
|
1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1.
|
|
1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1.
|
|
1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1.
|
|
1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1.
|
|
1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1.
|
|
1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1.
|
|
1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1.
|
|
}
|
|
CAT_TABLE -set MESYTEC_TUBE_OFFSETS {
|
|
0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
|
|
0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
|
|
0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
|
|
0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
|
|
0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
|
|
0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
|
|
0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
|
|
0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
|
|
0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
|
|
0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
|
|
0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
|
|
0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
|
|
0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
|
|
0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
|
|
0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
|
|
0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
|
|
}
|
|
CAT_TABLE -set MESYTEC_TUBE_HISTOGRAM_WEIGHTS {
|
|
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
|
|
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
|
|
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
|
|
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
|
|
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
|
|
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
|
|
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
|
|
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
|
|
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
|
|
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
|
|
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
|
|
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
|
|
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
|
|
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
|
|
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
|
|
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
|
|
}
|
|
}
|
|
|
|
##
|
|
# @brief Return the detector position
|
|
proc ::histogram_memory::detector_posn_degrees {} {
|
|
return [SplitReply [stth]]
|
|
}
|
|
proc ::histogram_memory::pre_count {} {}
|
|
proc ::histogram_memory::post_count {} {}
|
|
proc ::histogram_memory::isc_initialize {} {
|
|
|
|
if [ catch {
|
|
::histogram_memory::init_hmm_objs
|
|
if {$::sim_mode == "true"} {
|
|
hmm configure oat_ntc_eff 1
|
|
hmm configure oat_nyc_eff 1024
|
|
hmm configure oat_nxc_eff 64
|
|
}
|
|
BAT_TABLE -init
|
|
CAT_TABLE -init
|
|
SAT_TABLE -init
|
|
OAT_TABLE -init
|
|
FAT_TABLE -init
|
|
::histogram_memory::ic_initialize
|
|
::histogram_memory::two_theta -boundaries
|
|
|
|
detector_active_height_mm 335
|
|
detector_active_width_mm 3490.64
|
|
detector_radius_mm 1250.0
|
|
|
|
# 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_SAT_TABLE
|
|
::histogram_memory::init_CAT_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::two_theta
|
|
} message ] {
|
|
if {$::errorCode=="NONE"} {return $message}
|
|
return -code error $message
|
|
}
|
|
}
|
|
|
|
proc histmem {cmd args} {
|
|
eval "_histmem $cmd $args"
|
|
}
|
|
publish histmem user
|