def _makeSimpleDemux(): # 1 mode, 1 capture # No delay menu = mp7.ReadoutMenu(4, 2, 4) menu.bank(1).wordsPerBx = 6 menu.bank(2).wordsPerBx = 6 # Triggers on every event mode = menu.mode(0) mode.eventSize = 0 mode.eventToTrigger = 1 mode.eventType = 0xc0 mode.tokenDelay = 70 # Even, bank id 1, +0bx c = mode[0] c.enable = True c.id = 0x1 c.bankId = 0x2 c.length = 1 c.delay = 0 c.readoutLength = 6 return menu
def _makeSimpleMPs(): # 1 mode, 1 capture # No delay menu = mp7.ReadoutMenu(4, 2, 4) menu.bank(1).wordsPerBx = 6 menu.bank(2).wordsPerBx = 6 # Triggers on every event mode = menu.mode(0) mode.eventSize = 0 mode.eventToTrigger = 1 mode.eventType = 0xde mode.tokenDelay = 70 # Outputs, bank id 0x2, 1 bx c = mode[0] c.enable = True c.id = 0x1 c.bankId = 0x2 c.length = 2 c.delay = 0 c.readoutLength = 8 return menu
def _makeValidationDemux5BX(): # 1 mode, 1 capture # No delay menu = mp7.ReadoutMenu(4, 2, 4) menu.bank(1).wordsPerBx = 6 menu.bank(2).wordsPerBx = 6 # Triggersevery 107 events mode = menu.mode(0) mode.eventSize = 0 mode.eventToTrigger = 107 mode.eventType = 0xc0 mode.tokenDelay = 70 # Outputs, bankId 2, 5 Bxs c = mode[0] c.enable = True c.id = 0x1 c.bankId = 0x2 c.length = 5 c.delay = 0 c.readoutLength = 30 # Inputs, bankId 2, 1 Bx c = mode[1] c.enable = True c.id = 0x2 c.bankId = 0x1 c.length = 2 c.delay = 0 c.readoutLength = 8 # Triggers on every event mode = menu.mode(1) mode.eventSize = 0 mode.eventToTrigger = 1 mode.eventType = 0xde mode.tokenDelay = 70 # Outputs, bankId 2, 5 Bxs c = mode[0] c.enable = True c.id = 0x2 c.bankId = 0x2 c.length = 5 c.delay = 0 c.readoutLength = 30 return menu
def _makeValidationMPs(): # 1 mode, 1 capture # No delay menu = mp7.ReadoutMenu(4, 2, 4) menu.bank(1).wordsPerBx = 6 menu.bank(2).wordsPerBx = 6 # Triggers every 107 event mode = menu.mode(0) mode.eventSize = 0 mode.eventToTrigger = 107 mode.eventType = 0xc0 mode.tokenDelay = 70 # Outputs, bank id 0x2, 1 bx c = mode[0] c.enable = True c.id = 0x1 c.bankId = 0x2 c.length = 2 c.delay = 0 c.readoutLength = 8 # Inputs, bank id 0x2, 1 bx c = mode[1] c.enable = True c.id = 0x2 c.bankId = 0x1 c.length = 7 c.delay = 0 c.readoutLength = 40 # Triggers on every event mode = menu.mode(1) mode.eventSize = 0 mode.eventToTrigger = 1 mode.eventType = 0xde mode.tokenDelay = 70 # Even, bank id 1, +0bx c = mode[0] c.enable = True c.id = 0x1 c.bankId = 0x2 c.length = 2 c.delay = 0 c.readoutLength = 8 return menu
def _remakeMenu(): baseMode = mp7.ReadoutMenu.Mode(4) # Common parameters # ----------------- # Even, bank id 1, +0bx c = baseMode[0] c.enable = True c.bankId = 1 c.id = 0 # Odd, bank id 2, +0bx c = baseMode[1] c.enable = True c.bankId = 2 c.id = 0 # Odd, bank id 2, +9bx c = baseMode[2] c.enable = True c.bankId = 2 c.id = 1 # Outs, bank id 2, +0bx c = baseMode[3] c.enable = True c.bankId = 3 c.id = 2 s1Menu = mp7.ReadoutMenu(4, 2, 4) # Even inputs, 6 w per bx s1Menu.bank(1).wordsPerBx = 6 # Odd inputs, 6 w per bx s1Menu.bank(2).wordsPerBx = 6 # Outputs, 2 w per bx s1Menu.bank(3).wordsPerBx = 2 s1Menu.setMode(0, baseMode) s1Menu.setMode(1, baseMode) # First trigger mode, Validation events # ------------------------------------- m = s1Menu.mode(0) m.eventSize = 0 m.eventToTrigger = 107 m.eventType = 0x1 m.tokenDelay = 70 # Even, bank id 1, +0bx c = s1Menu.capture(0, 0) c.delay = 0 c.length = 5 c.readoutLength = 30 # Odd, bank id 2, +0bx c = s1Menu.capture(0, 1) c.delay = 0 c.length = 5 c.readoutLength = 30 # Odd, bank id 2, +9bx c = s1Menu.capture(0, 2) c.delay = 9 c.length = 5 c.readoutLength = 30 # Outs, bank id 2, +0bx c = s1Menu.capture(0, 3) c.delay = 0 c.length = 5 c.readoutLength = 10 # Second trigger mode, standard events # ------------------------------------ m = s1Menu.mode(1) m.eventSize = 0 m.eventToTrigger = 1 m.eventType = 0x0 m.tokenDelay = 70 # Even, bank id 1, +0bx c = s1Menu.capture(1, 0) c.delay = 2 # 0+2 bx c.length = 1 c.readoutLength = 6 # Odd, bank id 2, +0bx c = s1Menu.capture(1, 1) c.delay = 2 # 0+2bx c.length = 1 c.readoutLength = 6 # Odd, bank id 2, +9bx c = s1Menu.capture(1, 2) c.delay = 11 # 9+2bx c.length = 1 c.readoutLength = 6 # Outs, bank id 2, +0bx c = s1Menu.capture(1, 3) c.delay = 0 c.length = 5 c.readoutLength = 10 return s1Menu
import mp7 ############################################################################## # Standard menu for running # *IMPORTANT:* Reduce master latency by 2 BX (12 frames) for this menu! # 2 bank ids # 2 modes # - mode 0 every 107th event # - mode 1 all events standardMenu = mp7.ReadoutMenu(4, 2, 4) standardMenu.bank(1).wordsPerBx = 6 standardMenu.bank(2).wordsPerBx = 6 # First Mode # Triggers every 107th event mode = standardMenu.mode(0) mode.eventSize = 0 mode.eventToTrigger = 107 mode.eventType = 0xd1 mode.tokenDelay = 70 # Even, bank id 1, +0bx c = mode[0] c.enable = True c.id = 0x1 c.bankId = 0x1 c.length = 5 c.delay = 0 c.readoutLength = 30
import mp7 # __ ___ ___ # / |/ /__ ___ __ __/ _ | # / /|_/ / -_) _ \/ // / __ | # /_/ /_/\__/_//_/\_,_/_/ |_| # 1 mode, 1 capture # No delay menuA = mp7.ReadoutMenu(4, 2, 4) menuA.bank(1).wordsPerBx = 6 # Triggers on every event mode = menuA.mode(0) mode.eventSize = 0 mode.eventToTrigger = 1 mode.eventType = 0xc0 mode.tokenDelay = 70 # Even, bank id 1, +0bx c = mode[0] c.enable = True c.id = 0x1 c.bankId = 0x1 c.length = 1 c.delay = 0 c.readoutLength = 6 # __ ___ ___ ____ __
def _makeDemuxMenu(): baseMode = mp7.ReadoutMenu.Mode(4) # Common parameters # ----------------- # Outputs, bank id 2 c = baseMode[0] c.enable = True #c.bankId = 2 c.id = 0 s2Menu = mp7.ReadoutMenu(4, 2, 4) #NBanks, NModes, NCaptures # Inputs, 6 w per bx s2Menu.bank(1).wordsPerBx = 6 # Outputs, 6 w per bx s2Menu.bank(2).wordsPerBx = 6 s2Menu.setMode(0, baseMode) s2Menu.setMode(1, baseMode) # First trigger mode, Validation events # ------------------------------------- m = s2Menu.mode(0) m.eventSize = 0 m.eventToTrigger = 107 m.eventType = 0x1 m.tokenDelay = 30 # Outputs, bank id 1, +0bx c = s2Menu.capture(0, 0) c.delay = 0 c.length = 5 c.readoutLength = 30 c = s2Menu.capture(0, 1) c.delay = 0 c.length = 5 c.readoutLength = 30 # Second trigger mode, standard events # ------------------------------------ m = s2Menu.mode(1) m.eventSize = 0 m.eventToTrigger = 1 m.eventType = 0x0 m.tokenDelay = 30 # Outputs, bank id 2, +0bx c = s2Menu.capture(1, 0) c.delay = 0 c.length = 5 c.readoutLength = 30 c = s2Menu.capture(1, 1) c.delay = 0 c.length = 5 c.readoutLength = 30 return s2Menu
import mp7 # __ ___ ___ # / |/ /__ ___ __ __/ _ | # / /|_/ / -_) _ \/ // / __ | # /_/ /_/\__/_//_/\_,_/_/ |_| # 1 mode, 1 capture # No delay menuA = mp7.ReadoutMenu(4, 2, 4) menuA.bank(1).wordsPerBx = 6 # Triggers on every event mode = menuA.mode(0) mode.eventSize = 0 mode.eventToTrigger = 1 mode.eventType = 0xc0 mode.tokenDelay = 70 # Even, bank id 1, +0bx c = mode[0] c.enable = True c.id = 0x1 c.bankId = 0x1 c.length = 1 c.delay = 0 c.readoutLength = 6 # __ ___ ___