8 cppyy.gbl.cool.IDatabase
14 endpos = self.pos + size
17 buf = self.startingAddress()
18 buf.SetSize(self.size())
19 return buf[beginpos:endpos]
22 getattr(gbl,
"coral::Blob").read = blob_read
26 packopt=dict([[1,
'B'],[2,
'H'],[4,
'f'],[8,
'd']])
29 ival=struct.unpack(packopt[nbyte], b[0:nbyte])
31 print(
'bConvert: Unrecognized pack option')
39 packopt=dict([[1,
'B'],[2,
'H'],[4,
'f'],[8,
'd']])
42 fmt =
'%d%s' % (nval, packopt[nbyte])
43 ival=struct.unpack(fmt, b[0:nval*nbyte])
45 print(
'bConvertList: Unrecognized pack option')
53 if blob.size() == 0:
return
55 blobCopy = blob.read()
56 mask = (1 <<
int(bgrp))
60 if ivallist[i] & mask:
84 if blob.size() == 0:
return
86 blobCopy = blob.read()
89 mask[id] = (1 <<
int(id))
95 if ivallist[i] & mask[id]:
103 bloblength = blob.size()
105 if bloblength == 3564:
116 blobCopy = blob.read()
119 for i
in range(3564):
125 if (val & 0x03) == 0x03:
128 print(
'unpackRun2BCIDMask found:')
129 print(
' Beam1:', beam1)
130 print(
' Beam2:', beam2)
131 print(
' Coll: ', coll)
133 return beam1,beam2,coll
141 blobCopy = blob.read()
171 return beam1,beam2,coll
186 if not (len(bcidVec)==len(lvec)):
187 print(
'unpackBCIDValues - length mismatch: len(bcidVec)=', len(bcidVec),
'len(lvec)=', len(lvec))
191 for i
in range(len(bcidVec)):
193 bLumi.append(lvec[i]*normValue/
pow(100,bss))
195 bLumi.append(lvec[i])
214 blobCopy = blob.read()
217 b = blobCopy[blobCounter:blobCounter+1]
225 b = blobCopy[blobCounter:blobCounter+2]
231 blobCounter += 2*vlen
244 print(
'storage mode 3 not implemented in unpackBunches')
247 bcidVec=[i
for i
in range(3564)]
250 print(
'Unknown storage mode ',smod)
254 valueVec =
bConvertList(blobCopy[blobCounter:], bss, vlen)
261 return bss,bcidVec,valueVec
263 except RuntimeError
as e:
271 liveVec = array.array(
'f', 3564*[0.])
273 if priority ==
'high':
274 blob = trigPayload[
'HighPriority']
275 elif priority ==
'low':
276 blob = trigPayload[
'LowPriority']
278 print(
'unpackLiveFraction - unknown priority requested %s',
str(priority))
281 bloblength = blob.size()
285 if bloblength < 3*3564:
287 print(
'unpackLiveFraction found blob length %d!' % bloblength)
290 blobCopy = blob.read()
294 turnCounter = trigPayload[
'TurnCounter']
295 if not turnCounter > 0:
302 for i
in range(3564):
304 busyCounter = byte[3*i] | (byte[3*i+1] << 8) | (byte[3*i+2] << 16)
314 liveFrac = 1 -
float(busyCounter) / turnCounter
316 liveVec[i] = liveFrac