Page History
...
Code Block | ||||
---|---|---|---|---|
| ||||
def event ( self, evt, env ) : event_time = evt.getTime().seconds() + 1.0e-9*evt.getTime().nanoseconds() ) |
IPIMB diode data
This is data from sets of 4 diodes around the beam line (Intensity Position, Intensity Monitoring Boards)
that measures the beam intensity in four spots, from which we can also deduce the position of the beam.
Currently there are two data structures that holds data from the same type of devices. Depending on DAQ
configuration, they are either DetInfo type or BldInfo type. Here are examples for extracting both types
in the user module event function:
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
def event(self, evt, env): # raw data ipmRaw = evt.get(xtc.TypeId.Type.Id_IpimbData, source ) try: ch = [ipmRaw.channel0(), ipmRaw.channel1(), ipmRaw.channel2(), ipmRaw.channel3() ] ch_volt = [ipmRaw.channel0Volts(), ipmRaw.channel1Volts(), ipmRaw.channel2Volts(), ipmRaw.channel3Volts() ] except: pass # feature-extracted data ipmFex = evt.get(xtc.TypeId.Type.Id_IpmFex, source ) try: # array of 4 numbers fex_channel = ipmFex.channel # scalar values fex_sum = ipmFex.sum fex_xpos = ipmFex.xpos fex_ypos = ipmFex.ypos except: pass |
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
def event(self, evt, env): ipm = evt.getSharedIpimbValue("HFX-DG3-IMB-02") # or equivalently: # ipm = evt.get(xtc.TypeId.Type.Id_SharedIpimb, "HFX-DG3-IMB-02") try: ### Raw data ### # arrays of 4 numbers: ch = [ipm.ipimbData.channel0(), ipm.ipimbData.channel1(), ipm.ipimbData.channel2(), ipm.ipimbData.channel3()] ch_volt = [ipm.ipimbData.channel0Volts(), ipm.ipimbData.channel1Volts(), ipm.ipimbData.channel2Volts(), ipm.ipimbData.channel3Volts()] ### Feature-extracted data ### # array of 4 numbers: fex_channels = ipm.ipmFexData.channel # scalars: fex_sum = ipm.ipmFexData.sum fex_xpos = ipm.ipmFexData.xpos fex_ypos = ipm.ipmFexData.ypos except: pass |
...
Overview
Content Tools