18 from ROOT
import Belle2
22 ''' Print summary of raw data given in Interim FE format '''
27 return (((x << 24) & 0xFF000000) |
28 ((x << 8) & 0x00FF0000) |
29 ((x >> 8) & 0x0000FF00) |
30 ((x >> 24) & 0x000000FF))
33 ''' Event processor '''
36 if rawTOPs.getEntries() == 0:
37 print(
'RawTOP is empty - maybe component ID was not set properly at DAQ')
40 expno = raw.GetExpNo(0)
41 runno = raw.GetRunNo(0)
42 subno = raw.GetSubRunNo(0)
43 eveno = raw.GetEveNo(0)
44 copper = raw.GetNodeID(0) & 0x00FFFFFF
45 print(
'RawTOP[' + str(indx) +
']:',
46 'COPPER=' + str(copper),
49 'SUBRUN=' + str(subno),
50 'EVENT=' + str(eveno))
52 for finesse
in range(4):
53 size = raw.GetDetectorNwords(0, finesse)
55 print(
' HLSB', str(finesse),
56 ': size =', str(size),
'words')
58 data = raw.GetDetectorBuffer(0, finesse)
59 scrod = self.
swap32swap32(data[0]) & 0x0FFF
65 word = self.
swap32swap32(data[i])
67 if word == 0xaaaa0100:
70 elif word == 0xaaaa0103:
74 if k > 0
and k < size - 6:
75 if self.
swap32swap32(data[k]) != 0xd8f1ffff:
77 if self.
swap32swap32(data[k + 6]) != 0x270fffff:
79 print(
' HLSB', str(finesse),
80 ': size =', str(size),
'words,',
81 'SCROD', str(scrod) +
',',
82 'FE headers=' + str(numFE),
83 'signalsPoz=' + str(numPoz),
84 'signalsNeg=' + str(numNeg),
85 'Waveforms=' + str(numWF))
90 main = b2.create_path()
93 roinput = b2.register_module(
'SeqRootInput')
95 main.add_module(roinput)
98 converter = b2.register_module(
'Convert2RawDet')
99 main.add_module(converter)
102 main.add_module(
'EventInfoPrinter')
a (simplified) python wrapper for StoreArray.