# This is the channel Local Trigger Management register which is fields within the register at 0x1n84 for {set i 0} {$i < $NumChans} {incr i} { variable Ch$i.LocalTrigger 0 variable Ch$i.LocalTrigger_B00=>01 0 variable Ch$i.LocalTrigger_B02 0 variable Ch$i.LocalTrigger_B04=>05 0 variable Ch$i.LocalTrigger_B06 0 variable Ch$i.LocalTrigger_B07 0 variable Ch$i.LocalTrigger_B08=>10 0 variable Ch$i.LocalTrigger_B11 0 variable Ch$i.LocalTrigger_B12=>15 0 variable Ch$i.LocalTrigger_B16=>17 0 variable Ch$i.LocalTrigger_B18=>19 0 variable Ch$i.LocalTrigger_B24 0 variable Ch$i.LocalTrigger_B25=>26 0 } proc GetLocalTrigger {} { variable NumChans for {set i 0} {$i < $NumChans} {incr i} { variable Ch$i.LocalTrigger set Ch$i.LocalTrigger [ReadRegister Ch$i.LocalTrigger] variable Ch$i.LocalTrigger_B00=>01 variable Ch$i.LocalTrigger_B02 variable Ch$i.LocalTrigger_B04=>05 variable Ch$i.LocalTrigger_B06 variable Ch$i.LocalTrigger_B07 variable Ch$i.LocalTrigger_B08=>10 variable Ch$i.LocalTrigger_B11 variable Ch$i.LocalTrigger_B12=>15 variable Ch$i.LocalTrigger_B16=>17 variable Ch$i.LocalTrigger_B18=>19 variable Ch$i.LocalTrigger_B24 variable Ch$i.LocalTrigger_B25=>26 set Ch$i.LocalTrigger_B00=>01 [expr [set Ch$i.LocalTrigger] & 3] set Ch$i.LocalTrigger_B02 [expr ([set Ch$i.LocalTrigger] >> 2) & 1] set Ch$i.LocalTrigger_B04=>05 [expr ([set Ch$i.LocalTrigger] >> 4) & 3] set Ch$i.LocalTrigger_B06 [expr ([set Ch$i.LocalTrigger] >> 6) & 1] set Ch$i.LocalTrigger_B07 [expr ([set Ch$i.LocalTrigger] >> 7) & 1] set Ch$i.LocalTrigger_B08=>10 [expr ([set Ch$i.LocalTrigger] >> 8) & 7] set Ch$i.LocalTrigger_B11 [expr ([set Ch$i.LocalTrigger] >> 11) & 1] set Ch$i.LocalTrigger_B12=>15 [expr ([set Ch$i.LocalTrigger] >> 12) & 15] set Ch$i.LocalTrigger_B16=>17 [expr ([set Ch$i.LocalTrigger] >> 16) & 3] set Ch$i.LocalTrigger_B18=>19 [expr ([set Ch$i.LocalTrigger] >> 18) & 3] set Ch$i.LocalTrigger_B24 [expr ([set Ch$i.LocalTrigger] >> 24) & 1] set Ch$i.LocalTrigger_B25=>26 [expr ([set Ch$i.LocalTrigger] >> 25) & 3] } } proc SetLocalTrigger {w} { variable NumChans for {set i 0} {$i < $NumChans} {incr i} { variable Ch$i.LocalTrigger if {$w < $NumChans && $w != $i} {continue} variable Ch$i.LocalTrigger_B00=>01 variable Ch$i.LocalTrigger_B02 variable Ch$i.LocalTrigger_B04=>05 variable Ch$i.LocalTrigger_B06 variable Ch$i.LocalTrigger_B07 variable Ch$i.LocalTrigger_B08=>10 variable Ch$i.LocalTrigger_B11 variable Ch$i.LocalTrigger_B12=>15 variable Ch$i.LocalTrigger_B16=>17 variable Ch$i.LocalTrigger_B18=>19 variable Ch$i.LocalTrigger_B24 variable Ch$i.LocalTrigger_B25=>26 set Ch$i.LocalTrigger [expr \ ([set Ch$i.LocalTrigger_B00=>01] << 0) | \ ([set Ch$i.LocalTrigger_B02] << 2) | \ ([set Ch$i.LocalTrigger_B04=>05] << 4) | \ ([set Ch$i.LocalTrigger_B06] << 6) | \ ([set Ch$i.LocalTrigger_B07] << 7) | \ ([set Ch$i.LocalTrigger_B08=>10] << 8) | \ ([set Ch$i.LocalTrigger_B11] << 11) | \ ([set Ch$i.LocalTrigger_B12=>15] << 12) | \ ([set Ch$i.LocalTrigger_B16=>17] << 16) | \ ([set Ch$i.LocalTrigger_B18=>19] << 18) | \ ([set Ch$i.LocalTrigger_B24] << 24) | \ ([set Ch$i.LocalTrigger_B25=>26] << 25) \ ] WriteRegister Ch$i.LocalTrigger [set Ch$i.LocalTrigger] } } proc SaveLocalTrigger {} { variable NumChans for {set i 0} {$i < $NumChans} {incr i} { DBSetValue Ch$i.LocalTrigger [ReadRegister Ch$i.LocalTrigger] } } proc RestLocalTrigger {} { variable NumChans for {set i 0} {$i < $NumChans} {incr i} { variable Ch$i.LocalTrigger set Ch$i.LocalTrigger [DBGetValue Ch$i.LocalTrigger] WriteRegister Ch$i.LocalTrigger [DBGetValue Ch$i.LocalTrigger] } GetLocalTrigger } proc DrawLocalTrigger {} { variable NumChans variable Name for {set i 0} {$i < $NumChans} {incr i} { variable Ch$i.LocalTrigger variable Ch$i.LocalTrigger_B00=>01 variable Ch$i.LocalTrigger_B02 variable Ch$i.LocalTrigger_B04=>05 variable Ch$i.LocalTrigger_B06 variable Ch$i.LocalTrigger_B07 variable Ch$i.LocalTrigger_B08=>10 variable Ch$i.LocalTrigger_B11 variable Ch$i.LocalTrigger_B12=>15 variable Ch$i.LocalTrigger_B16=>17 variable Ch$i.LocalTrigger_B18=>19 variable Ch$i.LocalTrigger_B24 variable Ch$i.LocalTrigger_B25=>26 } set html "" append html "
" append html "
| Channel | " append html "Local Trigger Mode | " append html "Enable LT Mode | " append html "LT Validation Mode | " append html "Enable LT Val Mode | " append html "LT Validation is Veto | " append html "Extras Word options | " append html "Use smoothed signal for charge integration | " append html "Input smoothing factor | " append html "Trigger counter rate step | " append html "Veto Source | " append html "Mark saturated pulses | " append html "Additional options | " append html "
| $i | " append html "" append html "" append html " | " append html "" append html "" append html " | " append html "" append html "" append html " | " append html "" append html "" append html " | " append html "" append html "" append html " | " append html "" append html "" append html " | " append html "" append html "" append html " | " append html "" append html "" append html " | " append html "" append html "" append html " | " append html "" append html "" append html " | " append html "" append html "" append html " | " append html "" append html "" append html " | " append html "