Source code for magicctapipe.io.containers

"""
Custom containers
"""
import numpy as np
from astropy import units as u
from ctapipe.core import Container, Field

__all__ = ["BaseEventInfoContainer", "RealEventInfoContainer", "SimEventInfoContainer"]

DEFAULT_VALUE = -1
DEFAULT_RAD = np.nan * u.rad
DEFAULT_DEG = np.nan * u.deg
DEFAULT_TEV = np.nan * u.TeV
DEFAULT_M = np.nan * u.m
DEFAULT_S = np.nan * u.s
DEFAULT_NS = np.nan * u.ns


[docs] class BaseEventInfoContainer(Container): """Base container to store event information""" obs_id = Field(DEFAULT_VALUE, "Observation ID") event_id = Field(DEFAULT_VALUE, "Event ID") tel_id = Field(DEFAULT_VALUE, "Telescope ID") pointing_alt = Field(DEFAULT_RAD, "Altitude of the pointing direction", unit="rad") pointing_az = Field(DEFAULT_RAD, "Azimuth of the pointing direction", unit="rad") n_pixels = Field(DEFAULT_VALUE, "Number of pixels after the image cleaning") n_islands = Field(DEFAULT_VALUE, "Number of islands after the image cleaning") tels_with_trigger = Field( None, "Integer indicating the combination of telescopes that triggered" )
[docs] class RealEventInfoContainer(BaseEventInfoContainer): """Container to store real event information""" time_sec = Field(DEFAULT_S, "Seconds of the event trigger time", unit="s") time_nanosec = Field(DEFAULT_NS, "Nanoseconds of the event trigger time", unit="ns") time_diff = Field(DEFAULT_S, "Time difference from the previous event", unit="s")
[docs] class SimEventInfoContainer(BaseEventInfoContainer): """Container to store simulated event information""" true_energy = Field(DEFAULT_TEV, "True energy", unit="TeV") true_alt = Field(DEFAULT_DEG, "True altitude", unit="deg") true_az = Field(DEFAULT_DEG, "True azimuth", unit="deg") true_disp = Field(DEFAULT_DEG, "True DISP parameter", unit="deg") true_core_x = Field(DEFAULT_M, "True core X position", unit="m") true_core_y = Field(DEFAULT_M, "True core Y position", unit="m") true_impact = Field(DEFAULT_M, "True impact parameter", unit="m") off_axis = Field(DEFAULT_DEG, "Off-axis angle", unit="deg") magic_stereo = Field(None, "Whether both M1 and M2 are triggered or not")