Handling event data

from openkm3.store import KM3Store
store = KM3Store()
INFO:root:Loaded catalog from cache.
store.list("evts20_01")

One week of ORCA 4-line data

Identifier

Title

Description

evts20_01_file1

ORCA4 events file

Events from data taking with 4 strings of ORCA

evts = store.get("evts20_01_file1")
INFO:root:Loaded entry evts20_01_file1 as <class 'openkm3.dataclasses.HDFTable'>.
evts.get_paraminfo()
{'angular_error': '{"description": "place to store additional fit info for jgandalf see FitParameters.csv", "ktype": null, "path": "(event).tracks.fitinf", "type": "vec double"}',
 'azimuth': '{"parameters": {"x_param": "(event).tracks.dir_x:0", "y_param": "(event).tracks.dir_y:0"}, "description": "azimuth", "expression": "((km.phi_separg(np.array([x_param]), np.array([y_param])) + np.pi)%(2*np.pi)).item()", "imports": {"km": "km3pipe.math", "np": "numpy"}}',
 'dirz': '{"description": "track direction", "ktype": null, "path": "(event).tracks.dir_z", "type": "vec"}',
 'energy': '{"description": "Energy (either MC truth or reconstructed)", "ktype": null, "path": "(event).tracks.E", "type": "double"}',
 'mjd': '{"parameters": {"t_sec": "(event).t_sec", "t_ns": "(event).t_ns", "t_track": "(event).tracks.t:0"}, "description": "Julian date", "expression": "astro.Time(t_sec+(t_ns+t_track)/1.e9, format='unix').mjd", "imports": {"astro": "astropy.time"}}',
 'nhit': '{"description": "place to store additional fit info for jgandalf see FitParameters.csv", "ktype": null, "path": "(event).tracks.fitinf", "type": "vec double"}',
 'quality': '{"description": "likelihood or lambda value (for aafit: lambda)", "ktype": null, "path": "(event).tracks.lik", "type": "double"}'}
evts.conditions
{'instrument': {'ORCA': {'runtypes': 'PHYS.1907v1-TUNEDSEAv2.190722-ACOU4Waves-AllTrigger-L1.20',
   'contraints': {'runtype': 'PHYSICS',
    'priority': '1',
    'duration': '>2h',
    'timedifference': '|(UTCmax-UTCmin)-Livetime| < 100 s',
    'HRVfraction': '< 0.2'}}},
 'selection': {'triggermask': {'parameter': '(event).trigger_mask',
   'constraint': 'x == 22'}}}
df = evts.get_dataframe()
df.plot(kind = "area", x="dirz", y="azimuth")
<AxesSubplot:xlabel='dirz'>
../_images/example_eventdata_0.png
df.head(5)
angular_error azimuth dirz energy internalID mjd nhit quality group_id
0 0.004341 5.108108 -0.968124 22.017775 km3net.44.6151.000001 58749.531438 0.004535 142.238125 0
1 0.001181 3.358250 -0.990520 128.639694 km3net.44.6151.000002 58749.531439 0.001210 372.726925 1
2 0.003534 6.146142 -0.744035 24.362326 km3net.44.6151.000003 58749.531461 0.003501 218.697835 2
3 0.008247 2.954967 -0.784588 15.714084 km3net.44.6151.000004 58749.531461 0.008116 93.015961 3
4 0.006967 5.618736 -0.529338 137.616933 km3net.44.6151.000005 58749.531441 0.006780 161.199415 4

Download python script: example_eventdata.py

Download Jupyter notebook: example_eventdata.ipynb