Skip to content
Snippets Groups Projects

Summaryslice status

Merged Johannes Schumann requested to merge summaryslice_status into master
All threads resolved!
Files
2
+ 50
0
@@ -28,6 +28,56 @@ def get_rate(value):
return MINIMAL_RATE_HZ * np.exp(value * RATE_FACTOR)
def unpack_bits(value):
"""Helper to unpack bits to bool flags (little endian)
Parameters
----------
value : int32
The integer value to be parsed.
"""
value = np.array(value).astype(np.int32)
value = value.reshape(-1, 1)
value = value.view(np.uint8)
value = np.flip(value, axis=1)
length = value.shape[0]
return np.unpackbits(value).reshape(length, -1).astype(bool)
def get_channel_flags(value):
"""Returns the hrv/fifo flags for the PMT channels (hrv/fifo)"""
channel_bits = np.bitwise_and(value, 0x3FFFFFFF)
flags = unpack_bits(channel_bits)
return np.flip(flags, axis=1)[:, :31]
def get_number_udp_packets(value):
"""Returns the number of received UDP packets (dq_status)
Parameters
----------
value : int32
The integer value to be parsed.
"""
return np.bitwise_and(value, 0x7FFF)
def get_udp_max_sequence_number(value):
"""Returns the maximum sequence number of the received UDP packets (dq_status)"""
return np.right_shift(value, 16)
def has_udp_trailer(value):
"""Returns the UDP Trailer flag (fifo)
Parameters
----------
value : int32
The integer value to be parsed.
"""
return np.any(np.bitwise_and(value, np.left_shift(1, 31)))
class DAQReader:
"""Reader for DAQ ROOT files"""
def __init__(self, filename):
Loading