Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
K
km3io
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Package Registry
Container Registry
Model registry
Operate
Environments
Terraform modules
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
km3py
km3io
Commits
e7eb425b
Commit
e7eb425b
authored
5 years ago
by
Zineb Aly
Browse files
Options
Downloads
Patches
Plain Diff
adapted AanetReader format to pep8
parent
1756e937
No related branches found
Branches containing commit
No related tags found
Tags containing commit
No related merge requests found
Pipeline
#6939
failed
5 years ago
Stage: test
Stage: coverage
Stage: doc
Changes
2
Pipelines
1
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
km3io/aanet.py
+39
-23
39 additions, 23 deletions
km3io/aanet.py
notebooks/AanetReader_tutorial.ipynb
+51
-111
51 additions, 111 deletions
notebooks/AanetReader_tutorial.ipynb
with
90 additions
and
134 deletions
km3io/aanet.py
+
39
−
23
View file @
e7eb425b
import
uproot
class
AanetReader
:
"""
Reader for one Aanet ROOT file
"""
def
__init__
(
self
,
file_path
):
"""
AanetReader class is a Aanet ROOT file wrapper
Parameters
----------
file_path : path-like object
Path to the file of interest. It can be a str or any python
path-like object that points
to the file of ineterst.
Path to the file of interest. It can be a str or any python
path-like object that points
to the file of ineterst.
"""
self
.
file_path
=
file_path
self
.
data
=
uproot
.
open
(
self
.
file_path
)[
'
E
'
]
...
...
@@ -18,52 +19,65 @@ class AanetReader:
self
.
_hits_keys
=
None
self
.
_tracks_keys
=
None
def
__getitem__
(
self
,
key
):
"""
reads data stored in the branch of interest in an event tree.
"""
reads data stored in the branch of interest in an event tree.
Parameters
----------
key : str
name of the branch of interest in event data.
Returns
-------
lazyarray
Lazyarray of all data stored in the branch of interest. A lazyarray is an array-like
object that reads data on demand. Here, only the first and last chunks of data are
read in memory, and not all data in the array. The output can be used
with all `Numpy
'
s universal functions <https://docs.scipy.org/doc/numpy/reference/ufuncs.html>`.
Lazyarray of all data stored in the branch of interest. A lazyarray
is an array-like object that reads data on demand. Here, only the
first and last chunks of data are read in memory, and not all data
in the array. The output can be used with all `Numpy
'
s universal
functions <https://docs.scipy.org/doc/numpy/reference/ufuncs.html>`
.
Raises
------
KeyEroor
Some branches in an Aanet file structure are
"
fake branches
"
and do not contain data. Therefore,
the keys corresponding to these fake branches are not read.
Some branches in an Aanet file structure are
"
fake branches
"
and do
not contain data. Therefore, the keys corresponding to these fake
branches are not read.
"""
if
key
not
in
self
.
keys
()
and
not
isinstance
(
key
,
int
):
raise
KeyError
(
f
"'
{
key
}
'
is not a valid key or is a fake branch.
"
)
return
self
.
lazy_data
[
key
]
def
__len__
(
self
):
return
len
(
self
.
lazy_data
)
def
__repr__
(
self
):
return
'
\n
'
.
join
([
f
"
Number of events:
{
self
.
__len__
()
}
"
,
"
Events keys are:
\n\t
"
+
'
\n\t
'
.
join
(
self
.
events_keys
),
"
Hits keys are:
\n\t
"
+
'
\n\t
'
.
join
(
self
.
hits_keys
),
"
Tracks keys are:
\n\t
"
+
'
\n\t
'
.
join
(
self
.
tracks_keys
)])
return
'
\n
'
.
join
([
f
"
Number of events:
{
self
.
__len__
()
}
"
,
"
Events keys are:
\n\t
"
+
'
\n\t
'
.
join
(
self
.
events_keys
),
"
Hits keys are:
\n\t
"
+
'
\n\t
'
.
join
(
self
.
hits_keys
),
"
Tracks keys are:
\n\t
"
+
'
\n\t
'
.
join
(
self
.
tracks_keys
)
])
def
keys
(
self
):
return
self
.
events_keys
+
self
.
hits_keys
+
self
.
tracks_keys
"""
constructs a list of all valid keys to be read from an Aanet event file.
Returns
-------
list
list of all valid keys.
"""
return
self
.
events_keys
+
self
.
hits_keys
+
self
.
tracks_keys
@property
def
events_keys
(
self
):
if
self
.
_events_keys
is
None
:
fake_branches
=
[
'
Evt
'
,
'
AAObject
'
,
'
TObject
'
,
'
t
'
]
fake_branches
=
[
'
Evt
'
,
'
AAObject
'
,
'
TObject
'
,
'
t
'
]
t_baskets
=
[
'
t.fSec
'
,
'
t.fNanoSec
'
]
self
.
_events_keys
=
[
key
.
decode
(
'
utf-8
'
)
for
key
in
self
.
data
[
'
Evt
'
].
keys
()
if
key
.
decode
(
'
utf-8
'
)
not
in
fake_branches
]
+
t_baskets
self
.
_events_keys
=
[
key
.
decode
(
'
utf-8
'
)
for
key
in
self
.
data
[
'
Evt
'
].
keys
()
if
key
.
decode
(
'
utf-8
'
)
not
in
fake_branches
]
+
t_baskets
return
self
.
_events_keys
@property
...
...
@@ -77,5 +91,7 @@ class AanetReader:
def
tracks_keys
(
self
):
if
self
.
_tracks_keys
is
None
:
tracks_tree
=
self
.
data
[
'
Evt
'
][
'
trks
'
]
self
.
_tracks_keys
=
[
key
.
decode
(
'
utf8
'
)
for
key
in
tracks_tree
.
keys
()]
self
.
_tracks_keys
=
[
key
.
decode
(
'
utf8
'
)
for
key
in
tracks_tree
.
keys
()
]
return
self
.
_tracks_keys
This diff is collapsed.
Click to expand it.
notebooks/AanetReader_tutorial.ipynb
+
51
−
111
View file @
e7eb425b
...
...
@@ -140,7 +140,7 @@
{
"data": {
"text/plain": [
"<Table [<Row 0> <Row 1> <Row 2> ... <Row 7> <Row 8> <Row 9>] at 0x7f
57ac13481
0>"
"<Table [<Row 0> <Row 1> <Row 2> ... <Row 7> <Row 8> <Row 9>] at 0x7f
9011f02b5
0>"
]
},
"execution_count": 5,
...
...
@@ -156,7 +156,7 @@
},
{
"cell_type": "code",
"execution_count":
11
,
"execution_count":
6
,
"metadata": {},
"outputs": [
{
...
...
@@ -165,7 +165,7 @@
"5971"
]
},
"execution_count":
11
,
"execution_count":
6
,
"metadata": {},
"output_type": "execute_result"
}
...
...
@@ -177,7 +177,7 @@
},
{
"cell_type": "code",
"execution_count":
12
,
"execution_count":
7
,
"metadata": {},
"outputs": [
{
...
...
@@ -186,7 +186,7 @@
"60"
]
},
"execution_count":
12
,
"execution_count":
7
,
"metadata": {},
"output_type": "execute_result"
}
...
...
@@ -198,7 +198,7 @@
},
{
"cell_type": "code",
"execution_count":
13
,
"execution_count":
8
,
"metadata": {},
"outputs": [
{
...
...
@@ -207,7 +207,7 @@
"56"
]
},
"execution_count":
13
,
"execution_count":
8
,
"metadata": {},
"output_type": "execute_result"
}
...
...
@@ -219,7 +219,7 @@
},
{
"cell_type": "code",
"execution_count":
7
,
"execution_count":
9
,
"metadata": {},
"outputs": [
{
...
...
@@ -248,16 +248,16 @@
},
{
"cell_type": "code",
"execution_count": 1
5
,
"execution_count": 1
0
,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<ChunkedArray [[806451572 806451572 806451572 ... 809544061 809544061 809544061] [806451572 806451572 806451572 ... 809524432 809526097 809544061] [806451572 806451572 806451572 ... 809544061 809544061 809544061] ... [806451572 806455814 806465101 ... 809526097 809544058 809544061] [806455814 806455814 806455814 ... 809544061 809544061 809544061] [806455814 806455814 806455814 ... 809544058 809544058 809544061]] at 0x7f
57997ee99
0>"
"<ChunkedArray [[806451572 806451572 806451572 ... 809544061 809544061 809544061] [806451572 806451572 806451572 ... 809524432 809526097 809544061] [806451572 806451572 806451572 ... 809544061 809544061 809544061] ... [806451572 806455814 806465101 ... 809526097 809544058 809544061] [806455814 806455814 806455814 ... 809544061 809544061 809544061] [806455814 806455814 806455814 ... 809544058 809544058 809544061]] at 0x7f
9011eb3b1
0>"
]
},
"execution_count": 1
5
,
"execution_count": 1
0
,
"metadata": {},
"output_type": "execute_result"
}
...
...
@@ -270,7 +270,7 @@
},
{
"cell_type": "code",
"execution_count": 1
6
,
"execution_count": 1
1
,
"metadata": {},
"outputs": [
{
...
...
@@ -289,7 +289,7 @@
" dtype=int32)"
]
},
"execution_count": 1
6
,
"execution_count": 1
1
,
"metadata": {},
"output_type": "execute_result"
}
...
...
@@ -302,7 +302,7 @@
},
{
"cell_type": "code",
"execution_count": 1
7
,
"execution_count": 1
2
,
"metadata": {},
"outputs": [
{
...
...
@@ -311,7 +311,7 @@
"60"
]
},
"execution_count": 1
7
,
"execution_count": 1
2
,
"metadata": {},
"output_type": "execute_result"
}
...
...
@@ -325,7 +325,7 @@
},
{
"cell_type": "code",
"execution_count":
20
,
"execution_count":
13
,
"metadata": {},
"outputs": [
{
...
...
@@ -334,7 +334,7 @@
"806455814"
]
},
"execution_count":
20
,
"execution_count":
13
,
"metadata": {},
"output_type": "execute_result"
}
...
...
@@ -353,16 +353,16 @@
},
{
"cell_type": "code",
"execution_count":
2
4,
"execution_count":
1
4,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<ChunkedArray [[-0.872885221293917 -0.872885221293917 -0.872885221293917 ... -0.6631226836266504 -0.5680647731737454 -0.5680647731737454] [-0.8351996698137462 -0.8351996698137462 -0.8351996698137462 ... -0.7485107718446855 -0.8229838871876581 -0.239315690284641] [-0.989148723802379 -0.989148723802379 -0.989148723802379 ... -0.9350162572437829 -0.88545604390297 -0.88545604390297] ... [-0.5704611045902105 -0.5704611045902105 -0.5704611045902105 ... -0.9350162572437829 -0.4647231989130516 -0.4647231989130516] [-0.9779941383490359 -0.9779941383490359 -0.9779941383490359 ... -0.88545604390297 -0.88545604390297 -0.8229838871876581] [-0.7396916780974963 -0.7396916780974963 -0.7396916780974963 ... -0.6631226836266504 -0.7485107718446855 -0.7485107718446855]] at 0x7f
57997f8d9
0>"
"<ChunkedArray [[-0.872885221293917 -0.872885221293917 -0.872885221293917 ... -0.6631226836266504 -0.5680647731737454 -0.5680647731737454] [-0.8351996698137462 -0.8351996698137462 -0.8351996698137462 ... -0.7485107718446855 -0.8229838871876581 -0.239315690284641] [-0.989148723802379 -0.989148723802379 -0.989148723802379 ... -0.9350162572437829 -0.88545604390297 -0.88545604390297] ... [-0.5704611045902105 -0.5704611045902105 -0.5704611045902105 ... -0.9350162572437829 -0.4647231989130516 -0.4647231989130516] [-0.9779941383490359 -0.9779941383490359 -0.9779941383490359 ... -0.88545604390297 -0.88545604390297 -0.8229838871876581] [-0.7396916780974963 -0.7396916780974963 -0.7396916780974963 ... -0.6631226836266504 -0.7485107718446855 -0.7485107718446855]] at 0x7f
9011ebdf1
0>"
]
},
"execution_count":
2
4,
"execution_count":
1
4,
"metadata": {},
"output_type": "execute_result"
}
...
...
@@ -374,7 +374,7 @@
},
{
"cell_type": "code",
"execution_count":
2
5,
"execution_count":
1
5,
"metadata": {},
"outputs": [
{
...
...
@@ -394,7 +394,7 @@
" -0.97094183])"
]
},
"execution_count":
2
5,
"execution_count":
1
5,
"metadata": {},
"output_type": "execute_result"
}
...
...
@@ -407,107 +407,47 @@
},
{
"cell_type": "code",
"execution_count":
null
,
"execution_count":
16
,
"metadata": {},
"outputs": [],
"outputs": [
{
"data": {
"text/plain": [
"56"
]
},
"execution_count": 16,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# We previsouly checked (using reader[5]['trks']) that event\n",
"# 5 has 56 tracks, now we can see that reader
.hits_reader('hits.dom_id')
[5]\n",
"# 5 has 56 tracks, now we can see that reader
['trks.dir.z']
[5]\n",
"# has exaclty 56 values of trks.dir.z as well! \n",
"len(reader
.read_tracks(
'trks.dir.z'
)
[5])"
"len(reader
[
'trks.dir.z'
]
[5])"
]
},
{
"cell_type": "code",
"execution_count":
null
,
"execution_count":
17
,
"metadata": {},
"outputs": [],
"outputs": [
{
"data": {
"text/plain": [
"-0.6024604933159441"
]
},
"execution_count": 17,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# one can access the first trks.dir.z from event 5 using \n",
"reader
.read_tracks(
'trks.dir.z'
)
[5][0]"
"reader
[
'trks.dir.z'
]
[5][0]"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# once again, the user is reminded to always use the tracks keys stored in Aanet\n",
"# event file\n",
"try:\n",
" reader.read_tracks('whatever')\n",
"except KeyError as e:\n",
" print(e)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"reader['trks.dir.z']"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"import numpy as np\n",
"np.array(reader[0])"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
...
...
%% Cell type:code id: tags:
```
python
# Add file to current python path
from
pathlib
import
Path
import
sys
sys
.
path
.
append
(
str
(
Path
.
cwd
().
parent
))
Path
.
cwd
()
print
(
sys
.
path
)
```
%% Output
['/home/zineb/km3net/km3net/km3io/notebooks', '/home/zineb/miniconda3/envs/km3pipe/lib/python37.zip', '/home/zineb/miniconda3/envs/km3pipe/lib/python3.7', '/home/zineb/miniconda3/envs/km3pipe/lib/python3.7/lib-dynload', '', '/home/zineb/miniconda3/envs/km3pipe/lib/python3.7/site-packages', '/home/zineb/miniconda3/envs/km3pipe/lib/python3.7/site-packages/IPython/extensions', '/home/zineb/.ipython', '/home/zineb/km3net/km3net/km3io']
%% Cell type:code id: tags:
```
python
from
km3io
import
AanetReader
```
%% Cell type:code id: tags:
```
python
# test samples directory - aanet test file
files_path
=
Path
.
cwd
().
parent
/
'
tests/samples
'
aanet_file
=
files_path
/
'
aanet_v2.0.0.root
'
```
%% Cell type:code id: tags:
```
python
reader
=
AanetReader
(
aanet_file
)
reader
```
%% Output
Number of events: 10
Events keys are:
id
det_id
mc_id
run_id
mc_run_id
frame_index
trigger_mask
trigger_counter
overlays
hits
trks
w
w2list
w3list
mc_t
mc_hits
mc_trks
comment
index
flags
t.fSec
t.fNanoSec
Hits keys are:
hits.id
hits.dom_id
hits.channel_id
hits.tdc
hits.tot
hits.trig
hits.pmt_id
hits.t
hits.a
hits.pos.x
hits.pos.y
hits.pos.z
hits.dir.x
hits.dir.y
hits.dir.z
hits.pure_t
hits.pure_a
hits.type
hits.origin
hits.pattern_flags
Tracks keys are:
trks.fUniqueID
trks.fBits
trks.usr_data
trks.usr_names
trks.id
trks.pos.x
trks.pos.y
trks.pos.z
trks.dir.x
trks.dir.y
trks.dir.z
trks.t
trks.E
trks.len
trks.lik
trks.type
trks.rec_type
trks.rec_stages
trks.status
trks.mother_id
trks.fitinf
trks.hit_ids
trks.error_matrix
trks.comment
%% Cell type:code id: tags:
```
python
# big lazyarray with ALL file data!
lazy_data
=
reader
.
lazy_data
lazy_data
```
%% Output
<Table [<Row 0> <Row 1> <Row 2> ... <Row 7> <Row 8> <Row 9>] at 0x7f
57ac13481
0>
<Table [<Row 0> <Row 1> <Row 2> ... <Row 7> <Row 8> <Row 9>] at 0x7f
9011f02b5
0>
%% Cell type:code id: tags:
```
python
# getting the run_id for a specific event (event 5 for example)
reader
[
5
][
'
run_id
'
]
```
%% Output
5971
%% Cell type:code id: tags:
```
python
# one can check how many hits are in event 5
reader
[
5
][
'
hits
'
]
```
%% Output
60
%% Cell type:code id: tags:
```
python
# one can also check how many tracks are in event 5
reader
[
5
][
'
trks
'
]
```
%% Output
56
%% Cell type:code id: tags:
```
python
# the user is reminded to always specify the "correct" event/hits/tracks
# key in the Aanet event file
try
:
reader
[
'
whatever
'
]
except
KeyError
as
e
:
print
(
e
)
```
%% Output
"'whatever' is not a valid key or is a fake branch."
%% Cell type:markdown id: tags:
# Now let's explore in more details the hits:
%% Cell type:code id: tags:
```
python
# reading all data from a specific branch in hits data: for example
# 'hits.dom_id'
reader
[
'
hits.dom_id
'
]
```
%% Output
<ChunkedArray [[806451572 806451572 806451572 ... 809544061 809544061 809544061] [806451572 806451572 806451572 ... 809524432 809526097 809544061] [806451572 806451572 806451572 ... 809544061 809544061 809544061] ... [806451572 806455814 806465101 ... 809526097 809544058 809544061] [806455814 806455814 806455814 ... 809544061 809544061 809544061] [806455814 806455814 806455814 ... 809544058 809544058 809544061]] at 0x7f
57997ee99
0>
<ChunkedArray [[806451572 806451572 806451572 ... 809544061 809544061 809544061] [806451572 806451572 806451572 ... 809524432 809526097 809544061] [806451572 806451572 806451572 ... 809544061 809544061 809544061] ... [806451572 806455814 806465101 ... 809526097 809544058 809544061] [806455814 806455814 806455814 ... 809544061 809544061 809544061] [806455814 806455814 806455814 ... 809544058 809544058 809544061]] at 0x7f
9011eb3b1
0>
%% Cell type:code id: tags:
```
python
# the user can access hits.dom_id data for a specific event (for example
# event 5)
reader
[
'
hits.dom_id
'
][
5
]
```
%% Output
array([806455814, 806487219, 806487219, 806487219, 806487226, 808432835,
808432835, 808432835, 808432835, 808432835, 808432835, 808432835,
808451904, 808451904, 808451907, 808451907, 808469129, 808469129,
808469129, 808493910, 808949744, 808949744, 808951460, 808951460,
808956908, 808961655, 808964908, 808969848, 808969857, 808972593,
808972593, 808972598, 808972598, 808972698, 808972698, 808974758,
808974811, 808976377, 808981510, 808981523, 808981812, 808982005,
808982005, 808982018, 808982077, 808982077, 808982547, 809007627,
809521500, 809521500, 809521500, 809524432, 809526097, 809526097,
809526097, 809526097, 809526097, 809526097, 809526097, 809544058],
dtype=int32)
%% Cell type:code id: tags:
```
python
# We previsouly checked (using reader[5]['hits']) that event
# 5 has 60 hits, now we can see that reader['hits.dom_id'][5]
# has exaclty 60 dom ids as well!
len
(
reader
[
'
hits.dom_id
'
][
5
])
```
%% Output
60
%% Cell type:code id: tags:
```
python
# one can access a dom id of the first hit
reader
[
'
hits.dom_id
'
][
5
][
0
]
```
%% Output
806455814
%% Cell type:markdown id: tags:
# Now let's explore in more details the tracks:
%% Cell type:code id: tags:
```
python
# reading all data from a specific branch in tracks data:
reader
[
'
trks.dir.z
'
]
```
%% Output
<ChunkedArray [[-0.872885221293917 -0.872885221293917 -0.872885221293917 ... -0.6631226836266504 -0.5680647731737454 -0.5680647731737454] [-0.8351996698137462 -0.8351996698137462 -0.8351996698137462 ... -0.7485107718446855 -0.8229838871876581 -0.239315690284641] [-0.989148723802379 -0.989148723802379 -0.989148723802379 ... -0.9350162572437829 -0.88545604390297 -0.88545604390297] ... [-0.5704611045902105 -0.5704611045902105 -0.5704611045902105 ... -0.9350162572437829 -0.4647231989130516 -0.4647231989130516] [-0.9779941383490359 -0.9779941383490359 -0.9779941383490359 ... -0.88545604390297 -0.88545604390297 -0.8229838871876581] [-0.7396916780974963 -0.7396916780974963 -0.7396916780974963 ... -0.6631226836266504 -0.7485107718446855 -0.7485107718446855]] at 0x7f
57997f8d9
0>
<ChunkedArray [[-0.872885221293917 -0.872885221293917 -0.872885221293917 ... -0.6631226836266504 -0.5680647731737454 -0.5680647731737454] [-0.8351996698137462 -0.8351996698137462 -0.8351996698137462 ... -0.7485107718446855 -0.8229838871876581 -0.239315690284641] [-0.989148723802379 -0.989148723802379 -0.989148723802379 ... -0.9350162572437829 -0.88545604390297 -0.88545604390297] ... [-0.5704611045902105 -0.5704611045902105 -0.5704611045902105 ... -0.9350162572437829 -0.4647231989130516 -0.4647231989130516] [-0.9779941383490359 -0.9779941383490359 -0.9779941383490359 ... -0.88545604390297 -0.88545604390297 -0.8229838871876581] [-0.7396916780974963 -0.7396916780974963 -0.7396916780974963 ... -0.6631226836266504 -0.7485107718446855 -0.7485107718446855]] at 0x7f
9011ebdf1
0>
%% Cell type:code id: tags:
```
python
# the user can access trks.dir.z data for a specific event (for example
# event 5)
reader
[
'
trks.dir.z
'
][
5
]
```
%% Output
array([-0.60246049, -0.60246049, -0.60246049, -0.51420541, -0.5475772 ,
-0.5772408 , -0.56068238, -0.64907684, -0.67781799, -0.66565114,
-0.63014839, -0.64566464, -0.62691012, -0.58465493, -0.59287533,
-0.63655091, -0.63771247, -0.73446841, -0.7456636 , -0.70941246,
-0.66312268, -0.66312268, -0.56806477, -0.56806477, -0.66312268,
-0.66312268, -0.74851077, -0.74851077, -0.66312268, -0.74851077,
-0.56806477, -0.74851077, -0.66312268, -0.74851077, -0.56806477,
-0.66312268, -0.56806477, -0.66312268, -0.56806477, -0.56806477,
-0.66312268, -0.74851077, -0.66312268, -0.93501626, -0.56806477,
-0.74851077, -0.66312268, -0.56806477, -0.82298389, -0.74851077,
-0.66312268, -0.56806477, -0.82298389, -0.56806477, -0.66312268,
-0.97094183])
%% Cell type:code id: tags:
```
python
# We previsouly checked (using reader[5]['trks']) that event
# 5 has 56 tracks, now we can see that reader
.hits_reader('hits.dom_id')
[5]
# 5 has 56 tracks, now we can see that reader
['trks.dir.z']
[5]
# has exaclty 56 values of trks.dir.z as well!
len
(
reader
.
read_tracks
(
'
trks.dir.z
'
)
[
5
])
len
(
reader
[
'
trks.dir.z
'
]
[
5
])
```
%% Cell type:code id: tags:
```
python
# one can access the first trks.dir.z from event 5 using
reader
.
read_tracks
(
'
trks.dir.z
'
)[
5
][
0
]
```
%% Cell type:code id: tags:
```
python
# once again, the user is reminded to always use the tracks keys stored in Aanet
# event file
try
:
reader
.
read_tracks
(
'
whatever
'
)
except
KeyError
as
e
:
print
(
e
)
```
%% Cell type:code id: tags:
```
python
reader
[
'
trks.dir.z
'
]
```
%% Cell type:code id: tags:
```
python
import
numpy
as
np
np
.
array
(
reader
[
0
])
```
%% Cell type:code id: tags:
```
python
``
`
%%
Cell
type
:
code
id
:
tags
:
```
python
```
%% Cell type:code id: tags:
```
python
```
%% Cell type:code id: tags:
```
python
```
%% Cell type:code id: tags:
%% Output
```
python
```
56
%% Cell type:code id: tags:
```
python
# one can access the first trks.dir.z from event 5 using
reader
[
'
trks.dir.z
'
][
5
][
0
]
```
%%
Cell type:code id: tags:
%%
Output
```
python
```
-0.6024604933159441
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment