F-factor systematics files#
[1]:
import tables
import matplotlib.pyplot as plt
import numpy as np
from lstcam_calib.io import get_dataset_keys
HDF5 format#
[2]:
file = "../../../test_data/real/service/PixelCalibration/Cat-A/ffactor_systematics/20200725/pro/ffactor_systematics_20200725.h5"
hdf5_f=tables.open_file(file, "r")
hdf5_f
[2]:
File(filename=../../../test_data/real/service/PixelCalibration/Cat-A/ffactor_systematics/20200725/pro/ffactor_systematics_20200725.h5, title=np.str_('Fit of filter scan'), mode='r', root_uep='/', filters=Filters(complevel=0, shuffle=False, bitshuffle=False, fletcher32=False, least_significant_digit=None))
/ (RootGroup) np.str_('Fit of filter scan')
/B_term (Array(np.int64(2), np.int64(1855))) np.str_('Quadratic coefficient of F-factor formula, estimated by the fit')
atom := Float64Atom(shape=(), dflt=np.float64(0.0))
maindim := 0
flavor := np.str_('numpy')
byteorder := 'little'
chunkshape := None
/bad_fit_mask (Array(np.int64(2), np.int64(1855))) np.str_('Mask of pixels with failing fit')
atom := Float64Atom(shape=(), dflt=np.float64(0.0))
maindim := 0
flavor := np.str_('numpy')
byteorder := 'little'
chunkshape := None
/covariance_matrix (Array(np.int64(2), np.int64(1855), np.int64(4))) np.str_('Covariance matrix of the fit')
atom := Float64Atom(shape=(), dflt=np.float64(0.0))
maindim := 0
flavor := np.str_('numpy')
byteorder := 'little'
chunkshape := None
/gain (Array(np.int64(2), np.int64(1855))) np.str_('Pixel gain estimated by the fit')
atom := Float64Atom(shape=(), dflt=np.float64(0.0))
maindim := 0
flavor := np.str_('numpy')
byteorder := 'little'
chunkshape := None
/runs (Array(np.int64(19),)) np.str_('Total list of Runs')
atom := Int64Atom(shape=(), dflt=np.int64(0))
maindim := 0
flavor := np.str_('python')
byteorder := 'little'
chunkshape := None
/runs_HG (Array(np.int64(8),)) np.str_('Runs used in HG fit ')
atom := Int64Atom(shape=(), dflt=np.int64(0))
maindim := 0
flavor := np.str_('python')
byteorder := 'little'
chunkshape := None
/runs_LG (Array(np.int64(16),)) np.str_('Runs used in LG fit ')
atom := Int64Atom(shape=(), dflt=np.int64(0))
maindim := 0
flavor := np.str_('python')
byteorder := 'little'
chunkshape := None
/signal_HG (Array(np.int64(1855), np.int64(8))) np.str_('HG signal charge used in fit')
atom := Float64Atom(shape=(), dflt=np.float64(0.0))
maindim := 0
flavor := np.str_('numpy')
byteorder := 'little'
chunkshape := None
/signal_LG (Array(np.int64(1855), np.int64(16))) np.str_('LG signal charge used in fit')
atom := Float64Atom(shape=(), dflt=np.float64(0.0))
maindim := 0
flavor := np.str_('numpy')
byteorder := 'little'
chunkshape := None
/sub_run (Array()) np.str_('Considered sub-run')
atom := Int64Atom(shape=(), dflt=np.int64(0))
maindim := 0
flavor := np.str_('python')
byteorder := 'little'
chunkshape := None
/variance_HG (Array(np.int64(1855), np.int64(8))) np.str_('HG signal variance used in fit')
atom := Float64Atom(shape=(), dflt=np.float64(0.0))
maindim := 0
flavor := np.str_('numpy')
byteorder := 'little'
chunkshape := None
/variance_LG (Array(np.int64(1855), np.int64(16))) np.str_('LG signal variance used in fit')
atom := Float64Atom(shape=(), dflt=np.float64(0.0))
maindim := 0
flavor := np.str_('numpy')
byteorder := 'little'
chunkshape := None
Data#
[3]:
# Data used for calibration are:
# - B_term : quadratic coefficient in the LST f-factor formula per channel and pixel (2, 1855)
B_term = hdf5_f.root.B_term
B_term
[3]:
/B_term (Array(np.int64(2), np.int64(1855))) np.str_('Quadratic coefficient of F-factor formula, estimated by the fit')
atom := Float64Atom(shape=(), dflt=np.float64(0.0))
maindim := 0
flavor := np.str_('numpy')
byteorder := 'little'
chunkshape := None
[4]:
np.array(B_term)
[4]:
array([[0.02021849, 0.03268668, 0.02034296, ..., 0.01992334, 0.01697135,
0.02660754],
[0.02565263, 0.03096585, 0.03583796, ..., 0.0349733 , 0.0391724 ,
0.03184394]], shape=(2, 1855))
[5]:
np.array(hdf5_f.root.runs)
[5]:
array([2308, 2309, 2310, 2312, 2313, 2314, 2315, 2316, 2317, 2318, 2319,
2320, 2321, 2323, 2324, 2325, 2326, 2331, 2332])
Meta-data#
[6]:
hdf5_f.root._v_attrs
[6]:
/._v_attrs (AttributeSet), 40 attributes:
[CLASS := np.str_('GROUP'),
CTA ACTIVITY ID := np.str_('d77ce9d1-3b2f-4f63-95e4-ad6b06c5ec83'),
CTA ACTIVITY NAME := np.str_('FitFilterScan'),
CTA ACTIVITY SOFTWARE NAME := np.str_('lstcam_calib'),
CTA ACTIVITY SOFTWARE VERSION := np.str_('0.1.dev296+g9bc28ad'),
CTA ACTIVITY START TIME := np.str_('2024-09-12 15:07:35.212'),
CTA ACTIVITY STOP TIME := np.str_('2024-09-12 15:08:05.038'),
CTA ACTIVITY TYPE := np.str_('software'),
CTA CONTACT EMAIL := np.str_('unknown'),
CTA CONTACT NAME := np.str_('Franca Cassol'),
CTA CONTACT ORGANIZATION := np.str_('LST Consortium'),
CTA INSTRUMENT CLASS := np.str_('Camera'),
CTA INSTRUMENT ID := np.str_('unspecified'),
CTA INSTRUMENT SITE := np.str_('CTA-North'),
CTA INSTRUMENT SUBTYPE := np.str_('unspecified'),
CTA INSTRUMENT TYPE := np.str_('LST'),
CTA INSTRUMENT VERSION := np.str_('unspecified'),
CTA PROCESS ID := np.str_(''),
CTA PROCESS SUBTYPE := np.str_('Calibration'),
CTA PROCESS TYPE := np.str_('Observation'),
CTA PRODUCT CREATION TIME := np.str_('2024-09-12 15:08:05.062'),
CTA PRODUCT DATA ASSOCIATION := np.str_('Telescope'),
CTA PRODUCT DATA CATEGORY := np.str_('A'),
CTA PRODUCT DATA LEVELS := np.str_('R1'),
CTA PRODUCT DATA MODEL NAME := np.str_('Unofficial monitoring R1'),
CTA PRODUCT DATA MODEL URL := np.str_('unknown'),
CTA PRODUCT DATA MODEL VERSION := np.str_('1.0'),
CTA PRODUCT DESCRIPTION := np.str_('FFactor systematics coefficients'),
CTA PRODUCT FORMAT := np.str_(''),
CTA PRODUCT ID := np.str_('eb879a59-4b24-43af-8ccb-828b331165b9'),
CTA REFERENCE VERSION := np.str_('1'),
CTAPIPE_IO_LST_VERSION := np.str_('0.22.6'),
CTAPIPE_VERSION := np.str_('0.19.3'),
LSTCAM_CALIB_VERSION := np.str_('0.1.dev296+g9bc28ad'),
PROV_LOG := np.str_('/fefs/aswg/workspace/franca.cassol/data/real/monitoring/PixelCalibration/Cat-A_ctapipe_v0.17/ffactor_systematics/20200725/v0.1.dev296+g9bc28ad/log/scan_fit_20200725.0000_2024-09-12T15:07:26.provenance.log'),
PYTABLES_FORMAT_VERSION := np.str_('2.1'),
RUN_START := np.str_('2020-07-26 01:25:53.000'),
TEL_ID := np.int64(1),
TITLE := np.str_('Fit of filter scan'),
VERSION := np.str_('1.0')]