Source code for km3pipe.dataclass_templates

# Filename: dataclasses.py
# pylint: disable=W0232,C0103,C0111
# vim:set ts=4 sts=4 sw=4 et syntax=python:
"""
Dataclasses for internal use. Heavily based on Numpy arrays.
"""
import numpy as np

__author__ = "Tamas Gal and Moritz Lotze"
__copyright__ = "Copyright 2016, Tamas Gal and the KM3NeT collaboration."
__credits__ = []
__license__ = "MIT"
__maintainer__ = "Moritz Lotze"
__email__ = "mlotze@km3net.de"
__status__ = "Development"
__all__ = ("TEMPLATES",)

[docs] TEMPLATES = { "Direction": { "dtype": np.dtype( [ ("dir_x", "<f4"), ("dir_y", "<f4"), ("dir_z", "<f4"), ] ), "h5loc": None, "split_h5": False, "h5singleton": False, }, "Position": { "dtype": np.dtype( [ ("pos_x", "<f4"), ("pos_y", "<f4"), ("pos_z", "<f4"), ] ), "h5loc": None, "split_h5": False, "h5singleton": False, }, "EventInfo": { "dtype": np.dtype( [ ("det_id", "<i4"), ("frame_index", "<u4"), ("livetime_sec", "<u8"), ("mc_id", "<i4"), ("mc_t", "<f8"), ("n_events_gen", "<u8"), ("n_files_gen", "<u8"), ("overlays", "<u4"), ("trigger_counter", "<u8"), ("trigger_mask", "<u8"), ("utc_nanoseconds", "<u8"), ("utc_seconds", "<u8"), ("weight_w1", "<f8"), ("weight_w2", "<f8"), ("weight_w3", "<f8"), ("run_id", "<u8"), ("group_id", "<u8"), ] ), "h5loc": "/event_info", "split_h5": False, "h5singleton": False, }, "TimesliceHits": { "dtype": np.dtype( [ ("channel_id", "u1"), ("dom_id", "<u4"), ("time", "<f8"), ("tot", "u1"), ("group_id", "<u4"), ] ), "h5loc": "/timeslice_hits", "split_h5": True, "h5singleton": False, }, "Hits": { "dtype": np.dtype( [ ("channel_id", "u1"), ("dom_id", "<u4"), ("time", "<f8"), ("tot", "u1"), ("triggered", "?"), ("group_id", "<u4"), ] ), "h5loc": "/hits", "split_h5": True, "h5singleton": False, }, "CalibHits": { "dtype": np.dtype( [ ("channel_id", "u1"), ("dir_x", "<f4"), ("dir_y", "<f4"), ("dir_z", "<f4"), ("dom_id", "<u4"), ("du", "u1"), ("floor", "u1"), ("pos_x", "<f4"), ("pos_y", "<f4"), ("pos_z", "<f4"), ("t0", "<f4"), ("time", "<f8"), ("tot", "u1"), ("triggered", "?"), ("group_id", "<u4"), ] ), "h5loc": "/hits", "split_h5": True, "h5singleton": False, }, "McHits": { "dtype": np.dtype( [ ("a", "<f4"), ("origin", "<u4"), ("pmt_id", "<u4"), ("time", "<f8"), ("group_id", "<u4"), ] ), "h5loc": "/mc_hits", "split_h5": True, "h5singleton": False, }, "CalibMcHits": { "dtype": np.dtype( [ ("a", "<f4"), ("dir_x", "<f4"), ("dir_y", "<f4"), ("dir_z", "<f4"), ("origin", "<u4"), ("pmt_id", "<u4"), ("pos_x", "<f4"), ("pos_y", "<f4"), ("pos_z", "<f4"), ("time", "<f8"), ("group_id", "<u4"), ] ), "h5loc": "/mc_hits", "split_h5": True, "h5singleton": False, }, "Tracks": { "dtype": np.dtype( [ ("bjorkeny", "<f8"), ("dir_x", "<f8"), ("dir_y", "<f8"), ("dir_z", "<f8"), ("energy", "<f8"), ("id", "<u4"), ("interaction_channel", "<u4"), ("is_cc", "<u4"), # TODO: consider bool ('?') for slicing ("length", "<f8"), ("pos_x", "<f8"), ("pos_y", "<f8"), ("pos_z", "<f8"), ("time", "<i4"), ("type", "<i4"), ("group_id", "<u4"), ] ), "h5loc": "/tracks", "split_h5": False, "h5singleton": False, }, "McTracks": { "dtype": np.dtype( [ ("bjorkeny", "<f8"), ("dir_x", "<f8"), ("dir_y", "<f8"), ("dir_z", "<f8"), ("energy", "<f8"), ("id", "<u4"), ("interaction_channel", "<u4"), ("is_cc", "<u4"), # TODO: consider bool ('?') for slicing ("length", "<f8"), ("pos_x", "<f8"), ("pos_y", "<f8"), ("pos_z", "<f8"), ("time", "<i4"), ("type", "<i4"), ("group_id", "<u4"), ] ), "h5loc": "/mc_tracks", "split_h5": False, "h5singleton": False, }, "SummaryFrameInfo": { "dtype": np.dtype( [ ("dom_id", "<u4"), ("fifo_status", "<u4"), ("frame_id", "<u4"), ("frame_index", "<u4"), ("has_udp_trailer", "<u4"), ("high_rate_veto", "<u4"), ("max_sequence_number", "<u4"), ("n_packets", "<u4"), ("slice_id", "<u4"), ("utc_nanoseconds", "<u4"), ("utc_seconds", "<u4"), ("white_rabbit_status", "<u4"), ] ), "h5loc": "/summary_slice_info", "split_h5": False, "h5singleton": False, }, "SummarysliceInfo": { "dtype": np.dtype( [ ("frame_index", "<u4"), ("slice_id", "<u4"), ("timestamp", "<u4"), ("nanoseconds", "<u4"), ("n_frames", "<u4"), ] ), "h5loc": "/todo", "split_h5": False, "h5singleton": False, }, "TimesliceInfo": { "dtype": np.dtype( [ ("frame_index", "<u4"), ("slice_id", "<u4"), ("timestamp", "<u4"), ("nanoseconds", "<u4"), ("n_frames", "<u4"), ] ), "h5loc": "/timeslice_info", "split_h5": False, "h5singleton": False, }, "SummaryframeSeries": { "dtype": np.dtype( [ ("dom_id", "<u4"), ("max_sequence_number", "<u4"), ("n_received_packets", "<u4"), ("group_id", "<u4"), ] ), "h5loc": "/todo", "split_h5": False, "h5singleton": False, }, "TimesliceFrameInfo": { "dtype": np.dtype( [ ("det_id", "<i4"), ("run_id", "<u8"), ("sqnr", "<u8"), ("timestamp", "<u4"), ("nanoseconds", "<u4"), ("dom_id", "<u4"), ("dataqueue_status", "<u4"), ("dom_status", "<u4"), ("n_hits", "<u4"), ] ), "h5loc": "/todo", "split_h5": False, "h5singleton": False, }, "SummaryFrameSeries": { "dtype": np.dtype( [ ("dom_id", "<u4"), ("max_sequence_number", "<u4"), ("n_received_packets", "<u4"), ("group_id", "<u4"), ] ), "h5loc": "/summary_frame_series", "split_h5": False, "h5singleton": False, }, }