#! /usr/bin/python

import sys
import struct

print "#Event stoken readout nch triggers [ pha energy flags gainsel ] ..."
print "Version $Id: hex2events.py,v 1.1 2007/03/24 20:58:50 bottcher Exp $"

def parseevent(s):
    h=struct.unpack(">IIHH", s[:12])
    a=[]
    for i in range(12,len(s),8):
        v=struct.unpack(">BBHBBH", s[i:i+8])
        a.append((v[0],
                  v[1]<<16 | v[2],
                  v[3],
                  v[4]<<16 | v[5]))
    print "Event 0x%08x 0x%08x %d 0x%04x" % h,
    for s in a:
        print " %d"%(s[1] ^ 0x2000),
    print

r = []
g = -1
for line in sys.stdin:
    ll=line.split()
    if len(ll)==0:
        if len(r):
            s = "".join([chr(int(i,0)) for i in r])
            if g==0:
                parseevent(s)
            r = []
            g = -1
        continue
    if ll[0][0]=="#":
        if ll[0][1]=="#":
            continue
        g = int(ll[0][1:-1])
        r = ll[1:]
    else:
        r += ll

