Skip to content
Snippets Groups Projects
plot_offline_tracks.py 2.68 KiB
Newer Older
Zineb Aly's avatar
Zineb Aly committed
"""
Reading Offline tracks
======================

Tamas Gal's avatar
Tamas Gal committed
The following example shows how to access tracks data in an offline ROOT file.
Zineb Aly's avatar
Zineb Aly committed

Note: the offline files used here were intentionaly reduced to 10 events.
"""
Tamas Gal's avatar
Tamas Gal committed

Zineb Aly's avatar
Zineb Aly committed
import km3io as ki
Tamas Gal's avatar
Tamas Gal committed
from km3net_testdata import data_path
Zineb Aly's avatar
Zineb Aly committed

#####################################################
Tamas Gal's avatar
Tamas Gal committed
# We open the file using the

f = ki.OfflineReader(data_path("offline/numucc.root"))
Zineb Aly's avatar
Zineb Aly committed

Tamas Gal's avatar
Tamas Gal committed
#####################################################
# To access offline tracks/mc_tracks data:
Zineb Aly's avatar
Zineb Aly committed

Tamas Gal's avatar
Tamas Gal committed
f.tracks
f.mc_tracks
Zineb Aly's avatar
Zineb Aly committed

#####################################################
Tamas Gal's avatar
Tamas Gal committed
# Note that no data is loaded in memory at this point, so printing
# tracks will only return how many sub-branches (corresponding to
# events) were found.
Zineb Aly's avatar
Zineb Aly committed

Tamas Gal's avatar
Tamas Gal committed
f.tracks
Zineb Aly's avatar
Zineb Aly committed

#####################################################
# same for mc hits

Tamas Gal's avatar
Tamas Gal committed
f.mc_tracks
Zineb Aly's avatar
Zineb Aly committed

#####################################################
# Accessing the tracks/mc_tracks keys
# -----------------------------------
Tamas Gal's avatar
Tamas Gal committed
# to explore the reconstructed tracks fields:
Zineb Aly's avatar
Zineb Aly committed

Tamas Gal's avatar
Tamas Gal committed
f.tracks.fields
Zineb Aly's avatar
Zineb Aly committed

#####################################################
Tamas Gal's avatar
Tamas Gal committed
# the same for MC tracks
Zineb Aly's avatar
Zineb Aly committed

Tamas Gal's avatar
Tamas Gal committed
f.mc_tracks.fields
Zineb Aly's avatar
Zineb Aly committed

#####################################################
# Accessing tracks data
# ---------------------
Tamas Gal's avatar
Tamas Gal committed
# each field will return a nested `awkward.Array` and load everything into
# memory, so be careful if you are working with larger files.
Zineb Aly's avatar
Zineb Aly committed

Tamas Gal's avatar
Tamas Gal committed
f.tracks.E

######################################################
# The z direction of all reconstructed tracks

f.tracks.dir_z

######################################################
# The likelihoods

f.tracks.lik
Zineb Aly's avatar
Zineb Aly committed


#####################################################
Tamas Gal's avatar
Tamas Gal committed
# To select just a single event or a subset of events, use the indices or slices.
# The following will access all tracks and their fields
# of the third event (0 is the first):
Zineb Aly's avatar
Zineb Aly committed

Tamas Gal's avatar
Tamas Gal committed
f[2].tracks

######################################################
# The z direction of all tracks in the third event:

f[2].tracks.dir_z
Zineb Aly's avatar
Zineb Aly committed


#####################################################
Tamas Gal's avatar
Tamas Gal committed
# while here, we select the first 3 events. Notice that all fields will return
# nested arrays, as we have seem above where all events were selected.
Zineb Aly's avatar
Zineb Aly committed

Tamas Gal's avatar
Tamas Gal committed
f[:3]

######################################################
# All tracks for the first three events

f[:3].tracks

######################################################
# The z directions of all tracks of the first three events

f[:3].tracks.dir_z
Zineb Aly's avatar
Zineb Aly committed

#####################################################
Tamas Gal's avatar
Tamas Gal committed
# or events from 3 and 5 (again, 0 indexing):
Tamas Gal's avatar
Tamas Gal committed
f[2:5]

######################################################
# the tracks of those events

f[2:5].tracks

######################################################
# and just the z directions of those

f[2:5].tracks.dir_z