# This is the channel Algorithm Control register which is fields within the register at 0x1n80 for {set i 0} {$i < $NumChans} {incr i} { variable Ch$i.AlgorithmControl 0 variable Ch$i.AlgorithmControl_B00=>02 0 variable Ch$i.AlgorithmControl_B04 0 variable Ch$i.AlgorithmControl_B06 0 variable Ch$i.AlgorithmControl_B11=>13 0 variable Ch$i.AlgorithmControl_B16 0 variable Ch$i.AlgorithmControl_B17 0 variable Ch$i.AlgorithmControl_B18=>19 0 variable Ch$i.AlgorithmControl_B20=>22 0 variable Ch$i.AlgorithmControl_B24 0 variable Ch$i.AlgorithmControl_B25 0 variable Ch$i.AlgorithmControl_B26 0 variable Ch$i.AlgorithmControl_B27 0 variable Ch$i.AlgorithmControl_B28 0 } proc GetAlgorithmControl {} { variable NumChans for {set i 0} {$i < $NumChans} {incr i} { variable Ch$i.AlgorithmControl set Ch$i.AlgorithmControl [ReadRegister Ch$i.AlgorithmControl] variable Ch$i.AlgorithmControl_B00=>02 variable Ch$i.AlgorithmControl_B04 variable Ch$i.AlgorithmControl_B06 variable Ch$i.AlgorithmControl_B11=>13 variable Ch$i.AlgorithmControl_B16 variable Ch$i.AlgorithmControl_B17 variable Ch$i.AlgorithmControl_B18=>19 variable Ch$i.AlgorithmControl_B20=>22 variable Ch$i.AlgorithmControl_B24 variable Ch$i.AlgorithmControl_B25 variable Ch$i.AlgorithmControl_B26 variable Ch$i.AlgorithmControl_B27 variable Ch$i.AlgorithmControl_B28 set Ch$i.AlgorithmControl_B00=>02 [expr [set Ch$i.AlgorithmControl] & 7] set Ch$i.AlgorithmControl_B04 [expr ([set Ch$i.AlgorithmControl] >> 4) & 1] set Ch$i.AlgorithmControl_B06 [expr ([set Ch$i.AlgorithmControl] >> 6) & 1] set Ch$i.AlgorithmControl_B11=>13 [expr ([set Ch$i.AlgorithmControl] >> 11) & 3] set Ch$i.AlgorithmControl_B16 [expr ([set Ch$i.AlgorithmControl] >> 16) & 1] set Ch$i.AlgorithmControl_B17 [expr ([set Ch$i.AlgorithmControl] >> 17) & 1] set Ch$i.AlgorithmControl_B18=>19 [expr ([set Ch$i.AlgorithmControl] >> 18) & 3] set Ch$i.AlgorithmControl_B20=>22 [expr ([set Ch$i.AlgorithmControl] >> 20) & 7] set Ch$i.AlgorithmControl_B24 [expr ([set Ch$i.AlgorithmControl] >> 24) & 1] set Ch$i.AlgorithmControl_B26 [expr ([set Ch$i.AlgorithmControl] >> 26) & 1] set Ch$i.AlgorithmControl_B27 [expr ([set Ch$i.AlgorithmControl] >> 27) & 1] set Ch$i.AlgorithmControl_B28 [expr ([set Ch$i.AlgorithmControl] >> 28) & 1] } } proc SetAlgorithmControl {w} { variable NumChans for {set i 0} {$i < $NumChans} {incr i} { variable Ch$i.AlgorithmControl if {$w < $NumChans && $w != $i} {continue} variable Ch$i.AlgorithmControl_B00=>02 variable Ch$i.AlgorithmControl_B04 variable Ch$i.AlgorithmControl_B06 variable Ch$i.AlgorithmControl_B11=>13 variable Ch$i.AlgorithmControl_B16 variable Ch$i.AlgorithmControl_B17 variable Ch$i.AlgorithmControl_B18=>19 variable Ch$i.AlgorithmControl_B20=>22 variable Ch$i.AlgorithmControl_B24 variable Ch$i.AlgorithmControl_B25 variable Ch$i.AlgorithmControl_B26 variable Ch$i.AlgorithmControl_B27 variable Ch$i.AlgorithmControl_B28 set Ch$i.AlgorithmControl [expr \ ([set Ch$i.AlgorithmControl_B00=>02] << 0) | \ ([set Ch$i.AlgorithmControl_B04] << 4) | \ ([set Ch$i.AlgorithmControl_B06] << 6) | \ ([set Ch$i.AlgorithmControl_B11=>13] << 11) | \ ([set Ch$i.AlgorithmControl_B16] << 16) | \ ([set Ch$i.AlgorithmControl_B17] << 17) | \ ([set Ch$i.AlgorithmControl_B18=>19] << 18) | \ ([set Ch$i.AlgorithmControl_B20=>22] << 20) | \ ([set Ch$i.AlgorithmControl_B24] << 24) | \ ([set Ch$i.AlgorithmControl_B26] << 26) | \ ([set Ch$i.AlgorithmControl_B27] << 27) | \ ([set Ch$i.AlgorithmControl_B28] << 28) ] WriteRegister Ch$i.AlgorithmControl [set Ch$i.AlgorithmControl] } } proc SaveAlgorithmControl {} { variable NumChans for {set i 0} {$i < $NumChans} {incr i} { DBSetValue Ch$i.AlgorithmControl [ReadRegister Ch$i.AlgorithmControl] } } proc RestAlgorithmControl {} { variable NumChans for {set i 0} {$i < $NumChans} {incr i} { variable Ch$i.AlgorithmControl set Ch$i.AlgorithmControl [DBGetValue Ch$i.AlgorithmControl] WriteRegister Ch$i.AlgorithmControl [DBGetValue Ch$i.AlgorithmControl] } GetAlgorithmControl } proc DrawAlgorithmControl {} { variable NumChans variable Name for {set i 0} {$i < $NumChans} {incr i} { variable Ch$i.AlgorithmControl variable Ch$i.AlgorithmControl_B00=>02 variable Ch$i.AlgorithmControl_B04 variable Ch$i.AlgorithmControl_B06 variable Ch$i.AlgorithmControl_B11=>13 variable Ch$i.AlgorithmControl_B16 variable Ch$i.AlgorithmControl_B17 variable Ch$i.AlgorithmControl_B18=>19 variable Ch$i.AlgorithmControl_B20=>22 variable Ch$i.AlgorithmControl_B24 variable Ch$i.AlgorithmControl_B25 variable Ch$i.AlgorithmControl_B26 variable Ch$i.AlgorithmControl_B27 variable Ch$i.AlgorithmControl_B28 } set html "" append html "
" append html "
| Channel | " append html "Charge Sensitivity | " append html "Charge Pedestal | " append html "CFD | " append html "Extras Word Options | " append html "Pulse Polarity | " append html "Shaped Trigger Duration | " append html "Trigger Mode | " append html "Baseline Mean | " append html "Self Trigger | " append html "Pile-Up ReTrigger | " append html "Pile-Up Rejection | " append html "PSD cut below threshold | " append html "PSD cut above threshold | " 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 "" append html "" append html " | " append html "