Page History
...
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
def event(self,evt,env): quads = evt.getCsPadQuads(self.img_source, env) if not quads : print '*** cspad information is missing ***' return # dump information about quadrants print "Number of quadrants: %d" % len(quads) for q in quads: print " Quadrant %d" % q.quad() print " virtual_channel: %s" % q.virtual_channel() print " lane: %s" % q.lane() print " tid: %s" % q.tid() print " acq_count: %s" % q.acq_count() print " op_code: %s" % q.op_code() print " seq_count: %s" % q.seq_count() print " ticks: %s" % q.ticks() print " fiducials: %s" % q.fiducials() print " frame_type: %s" % q.frame_type() print " sb_temp: %s" % map(q.sb_temp, range(4)) # image data as 3-dimentional array data = q.data() |
Wiki Markup |
---|
So far so good. 'quads' is a *list* of CsPad Element objects, and not necessarily ordered in the expected way. So you'll need to use q.quad() to obtain the quad number. |
q.data() gives you a 3D numpy array \[row\]\[col\]\[sec\]. Here sections will be ordered as expected, but be aware in case of missing sections, that you may need to check the |
configuration object. You can get that from the env object, typically something you do in beginjob: |
Code Block | ||||
---|---|---|---|---|
| ||||
def beginjob(self,evt,env): config = env.getConfig(xtc.TypeId.Type.Id_CspadConfig, self.img_source) if not config: print '*** cspad config object is missing ***' return print "Cspad configuration" print " N quadrants : %d" % config.numQuads() print " Quad mask : %#x" % config.quadMask() print " payloadSize : %d" % config.payloadSize() print " badAsicMask0 : %#x" % config.badAsicMask0() print " badAsicMask1 : %#x" % config.badAsicMask1() print " asicMask : %#x" % config.asicMask() print " numAsicsRead : %d" % config.numAsicsRead() # get the indices of sections in use: qn = range(0,config.numQuads()) self.sections = map(config.sections, qn ) |
...
Overview
Content Tools