From 3338fab825a8b765c4f0c6ca91a6d6f42f013637 Mon Sep 17 00:00:00 2001
From: Tamas Gal <tgal@km3net.de>
Date: Wed, 12 Feb 2020 10:05:24 +0100
Subject: [PATCH] Add premiere talk

---
 talks/images/orca-du4.png | Bin 0 -> 10861 bytes
 talks/premiere.org        | 320 ++++++++++++++++++++++++++++++++++++++
 2 files changed, 320 insertions(+)
 create mode 100644 talks/images/orca-du4.png
 create mode 100644 talks/premiere.org

diff --git a/talks/images/orca-du4.png b/talks/images/orca-du4.png
new file mode 100644
index 0000000000000000000000000000000000000000..67808c77343b17cc71252c28ca392da2512b1cd0
GIT binary patch
literal 10861
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

literal 0
HcmV?d00001

diff --git a/talks/premiere.org b/talks/premiere.org
new file mode 100644
index 0000000..bc2801f
--- /dev/null
+++ b/talks/premiere.org
@@ -0,0 +1,320 @@
+#+OPTIONS: num:nil toc:nil reveal_single_file:t
+#+REVEAL_ROOT: ~/opt/reveal.js-3.9.2
+#+REVEAL_TRANS: none
+#+REVEAL_THEME: white
+#+REVEAL_MIN_SCALE: 1.0
+#+REVEAL_MAX_SCALE: 1.0
+#+REVEAL_TITLE_SLIDE: <h1>%t</h1><h3>%s</h3><p>%A %a</p><p><a href="%u">%u</a></p>
+
+#+Title: km3io
+#+Subtitle: Reading KM3NeT ROOT files without ROOT
+#+Author: Zineb Aly (CPPM) and Tamas Gal (ECAP)
+#+Email: zaly@km3et.de tgal@km3net.de
+#+REVEAL_TALK_URL: https://indico.cern.ch/event/878692/
+
+
+* Prerequisites
+#+BEGIN_SRC bash :results silent :async t
+python3 -m venv ~/tmp/km3io-premiere-venv
+. ~/tmp/km3io-permiere-venv/bin/activate
+pip install km3io==0.8.1
+#+END_SRC
+
+#+BEGIN_SRC elisp
+(setq org-babel-python-command "~/tmp/km3io-permiere-venv/bin/python")
+#+END_SRC
+
+#+RESULTS:
+: ~/tmp/km3io-permiere-venv/bin/python
+
+* km3io
+#+ATTR_REVEAL: :frag (appear)
+- [[https://git.km3net.de/km3py/km3io][km3io]] tiny Python package with minimal dependencies to read KM3NeT ROOT files
+- Uses the [[https://github.com/scikit-hep/uproot][uproot]] library to access ROOT data
+- Provides convenient wrapper classes
+- Maximum performance due to numpy and numba
+- Data are read lazily
+  - only loaded into memory when directly accessed
+  - apply several cut masks on huge datasets without reading them into the memory
+
+** Installation
+- Dependencies:
+  - Python 3.5+
+  - uproot (installed automatically)
+- Releases are published on the official Python package repository:
+  - ~pip install km3io~
+
+* Online (DAQ) Data
+** km3io supports the following DAQ datatypes
+#+ATTR_REVEAL: :frag (appear)
+- ~JDAQEvent~ (the event dataformat)
+  - header information
+  - snapshot hits
+  - triggered hits
+- ~JDAQSummaryslices~
+  - header information
+  - accessor methods for bit flags (HRV, FIFO, UDP status)
+- ~JDAQTimeslices~
+  - header information
+  - frame hits
+  - currently only L1, L2 and SN streams, the L0 stream is work in progress
+
+** Examples
+*** Opening a run file
+#+BEGIN_SRC python :results output replace :session km3io :exports both
+import km3io
+f = km3io.DAQReader("KM3NeT_00000044_00006880.root")
+print(f.events)
+print(f.timeslices)
+print(f.summaryslices)
+#+END_SRC
+
+#+RESULTS:
+: Number of events: 115038
+: Available timeslice streams: SN, L1
+: <km3io.daq.SummmarySlices object at 0x7f8ee90cc970>
+
+*** Investigating timeslice frames
+
+#+BEGIN_SRC python :results output replace :session km3io :exports both
+a_timeslice = f.timeslices.stream("L1", 23)
+print(a_timeslice.frames.keys())
+#+END_SRC
+
+#+RESULTS:
+: dict_keys([806451572, 806455814, 806465101, 806483369, 806487219, 806487226, 806487231, 808432835, 808435278, 808447180, 808447186, 808451904, 808451907, 808469129, 808472260, 808472265, 808488895, 808488990, 808489014, 808489117, 808493910, 808946818, 808949744, 808951460, 808956908, 808959411, 808961448, 808961480, 808961504, 808961655, 808964815, 808964852, 808964883, 808964908, 808969848, 808969857, 808972593, 808972598, 808972698, 808974758, 808974773, 808974811, 808974972, 808976377, 808979567, 808979721, 808979729, 808981510, 808981523, 808981672, 808981812, 808981864, 808982005, 808982018, 808982041, 808982066, 808982077, 808982547, 808984711, 808996773, 808997793, 809006037, 809007627, 809503416, 809521500, 809524432, 809526097, 809544058, 809544061])
+
+*** Reading the first 100 ToTs and channel IDs of a frame sent by the DOM 806451572
+
+#+BEGIN_SRC python :results output replace :session km3io :exports both
+print(a_timeslice.frames[806451572].tot[:100])
+print(a_timeslice.frames[806451572].pmt[:100])
+#+END_SRC
+
+#+RESULTS:
+#+begin_example
+[33 16 22 24  7 27  4 31 31 15  5 26 30 24  7 26 26 26 27 15  7  3 63 28
+ 26 30 25 24 20  7 23  6 22 22 26 15 29 25 24 22 23 21 26 20 27 27 25 12
+ 27 15 21  9 17 27 21 30 29  5 25 24 22 27 34 10 13 17 25 10 15 28 15 20
+ 29 24 24  5 16 26 25 33 26 26 26 14 30  6 27 10 18 24 26 49 59 25 31 30
+ 23 25 28 11]
+[ 0  9  4 12 13  2 10 10  8  9 27 27 28 18 27  2  6 15  4  2  2 12 27  3
+ 15 10 23 14 19  9  9 24 24  6  7 20  7 20 27 22 24 25 22 14 18 27 30 29
+ 29 11 28  1  1 11 12 18 29 20 20 19 10 23 21  2  2 16  1  3  3 24 26  9
+ 13 10 29 30 30 10 22  0 22 30  6 19 21 25 25 27 27 26 27 25 29  9 10  5
+ 13  6 13 11]
+#+end_example
+
+*** Checking the number of UDP packets in summary slices
+
+#+BEGIN_SRC python :results output replace :session km3io :exports both
+f = km3io.DAQReader("KM3NeT_00000044_00006880.root")
+sumslice = f.summaryslices.slices[23]
+print(sumslice.dom_id)
+print(km3io.daq.get_number_udp_packets(sumslice.dq_status))
+#+END_SRC
+
+#+RESULTS:
+#+begin_example
+[806451572 806483369 806487231 808435278 808447180 808451907 808472265
+ 808488895 808489014 808489117 808493910 808946818 808949744 808951460
+ 808956908 808959411 808961448 808961504 808961655 808964815 808964883
+ 808964908 808969848 808969857 808972593 808972598 808972698 808974972
+ 808976377 808979721 808979729 808981510 808981523 808981672 808981812
+ 808981864 808982005 808982018 808982041 808982066 808982547 808984711
+ 808996773 808997793 809006037 809007627 809521500 809524432 809544058]
+[17 17 16 16 25 16 27 17 18 17 21 16 16 16 34 18 18 18 17 18 16 18 15 17
+ 20 18 15 17 17 19 16 18 16 17 17 16 18 18 17 27 18 20 16 17 15 18 17 17
+ 17]
+#+end_example
+
+* Offline (MC/reco) Data
+** Reading offline files (aka aanet-ROOT files)
+#+ATTR_REVEAL: :frag (appear)
+- Events
+  - header information
+  - hits
+  - tracks (from reconstruction)
+  - MC tracks
+- MC information
+- Reco information
+
+** Opening a reconstructed MUPAGE file
+#+BEGIN_SRC python :results output replace :session km3io :exports both
+f = km3io.OfflineReader("mc.root")
+print(f)
+#+END_SRC
+
+#+RESULTS:
+: <km3io.offline.OfflineReader object at 0x7f8eeb436e20>
+
+** Investigating events and tracks
+#+BEGIN_SRC python :results output replace :session km3io :exports both
+print(f.events)
+#+END_SRC
+
+#+RESULTS:
+: Number of events: 10
+
+#+BEGIN_SRC python :results output replace :session km3io :exports both
+print(f.tracks.lik)
+print(f.tracks.dir_z)
+#+END_SRC
+
+#+RESULTS:
+: [[294.6407542676734 294.6407542676734 294.6407542676734 ... 67.81221253265059 67.7756405143316 67.77250505700384] [96.75133289411137 96.75133289411137 96.75133289411137 ... 39.21916536442286 39.184645826013806 38.870325146341884] [560.2775306614813 560.2775306614813 560.2775306614813 ... 118.88577278801066 118.72271313687405 117.80785995187605] ... [71.03251451148226 71.03251451148226 71.03251451148226 ... 16.714140573909347 16.444395245214945 16.34639241716669] [326.440133294878 326.440133294878 326.440133294878 ... 87.79818671079849 87.75488082571873 87.74839444768625] [159.77779654216795 159.77779654216795 159.77779654216795 ... 33.8669134999348 33.821631538334984 33.77240735670646]]
+: [[-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]]
+
+** Some pretty print features for single objects
+*** Hits
+#+BEGIN_SRC python :results output replace :session km3io :exports both
+print(f[0].hits[1])
+#+END_SRC
+
+#+RESULTS:
+#+begin_example
+offline hit:
+	id                  :               0
+	dom_id              :       806451572
+	channel_id          :               9
+	tdc                 :               0
+	tot                 :              30
+	trig                :               1
+	pmt_id              :               0
+	t                   :      70104016.0
+	a                   :             0.0
+	pos_x               :             0.0
+	pos_y               :             0.0
+	pos_z               :             0.0
+	dir_x               :             0.0
+	dir_y               :             0.0
+	dir_z               :             0.0
+	pure_t              :             0.0
+	pure_a              :             0.0
+	type                :               0
+	origin              :               0
+	pattern_flags       :               0
+#+end_example
+
+*** Tracks
+
+#+BEGIN_SRC python :results output replace :session km3io :exports both
+print(f[0].tracks[0])
+#+END_SRC
+
+#+RESULTS:
+#+begin_example
+offline track:
+	fUniqueID                      :                           0
+	fBits                          :                    33554432
+	id                             :                           1
+	pos_x                          :            445.835395997812
+	pos_y                          :           615.1089636184813
+	pos_z                          :           125.1448339836911
+	dir_x                          :          0.0368711082700674
+	dir_y                          :        -0.48653048395923415
+	dir_z                          :          -0.872885221293917
+	t                              :           70311446.46401498
+	E                              :           99.10458562488608
+	len                            :                         0.0
+	lik                            :           294.6407542676734
+	type                           :                           0
+	rec_type                       :                        4000
+	rec_stages                     :                [1, 3, 5, 4]
+	status                         :                           0
+	mother_id                      :                          -1
+	hit_ids                        :                          []
+	error_matrix                   :                          []
+	comment                        :                           0
+	JGANDALF_BETA0_RAD             :        0.004957442219414389
+	JGANDALF_BETA1_RAD             :        0.003417848024252858
+	JGANDALF_CHI2                  :          -294.6407542676734
+	JGANDALF_NUMBER_OF_HITS        :                       142.0
+	JENERGY_ENERGY                 :           99.10458562488608
+	JENERGY_CHI2                   :     1.7976931348623157e+308
+	JGANDALF_LAMBDA                :      4.2409761837248484e-12
+	JGANDALF_NUMBER_OF_ITERATIONS  :                        10.0
+	JSTART_NPE_MIP                 :           24.88469697331908
+	JSTART_NPE_MIP_TOTAL           :           55.88169412579765
+	JSTART_LENGTH_METRES           :           98.89582506402911
+	JVETO_NPE                      :                         0.0
+	JVETO_NUMBER_OF_HITS           :                         0.0
+	JENERGY_MUON_RANGE_METRES      :           344.9767431592819
+	JENERGY_NOISE_LIKELIHOOD       :         -333.87773581129136
+	JENERGY_NDF                    :                      1471.0
+	JENERGY_NUMBER_OF_HITS         :                       101.0
+#+end_example
+
+** Extracting the energy of every first reco track in each event
+
+#+BEGIN_SRC python :results output replace :session km3io :exports both
+f = km3io.OfflineReader("mupage.root")
+print(f.mc_tracks)
+print(f.mc_tracks.id.counts)
+mask = f.mc_tracks.id.counts > 0
+print(f.mc_tracks.E[mask, 0])
+#+END_SRC
+
+#+RESULTS:
+: Number of tracks: 12236
+: [11  2  3 ... 10  1  4]
+: [17.72 73.213 10884.78 1694.332 1221.061 22945.123 11019.418 ...]
+
+* ORCA DU4 RBR Analysis Example
+** A tiny function to extract track attributes from a list of files
+
+#+BEGIN_SRC python
+def extract_features(files, features):
+    """Return a dict with the features from every best reco track"""
+    data = defaultdict(list)
+    for f in tqdm(files):
+        tracks = km3io.OfflineReader(f).tracks
+        mask = tracks.len.counts > 0
+        for feature in features:
+            data[feature].append(getattr(tracks, feature)[mask, 0])
+    return {k: np.hstack(v) for k, v in data.items()}
+#+END_SRC
+
+** Extracting ~E~, ~lik~, ~pos[xyz]~ and ~dir[xyz]~
+- Only takes a few seconds per file
+- Results are numpy arrays
+
+#+BEGIN_SRC python
+sea_files = glob("data/reco-sea/*aanet*.root")
+features = ['E', 'lik', *[e + '_' + q for q in 'xyz' for e in ['pos', 'dir']]]
+sea_data = extract_features(sea_files, features)
+#+END_SRC
+
+** Plotting some data with ~matplotlib~
+#+BEGIN_SRC python
+fig, ax = plt.subplots()
+plot_options = {
+    'histtype': 'step',
+    'bins': 100,
+    'log': True,
+    'linewidth': 2
+}
+ax.hist(sea_data['E'], label="sea data", **plot_options)
+ax.hist(mc_data['E'], label="atm. muons MC (JSirene)", **plot_options)
+ax.set_xlabel("energy / GeV")
+ax.legend(); ax.grid();
+#+END_SRC
+
+#+REVEAL: split
+
+[[file:./images/orca-du4.png]]
+
+* Command line tool(s)
+- We are working on some counter parts to the Jpp tools
+  - ~KPrintTree -f FILENAME~: similar to ~JPrintTree~
+  - more to come (feel free to request or contribute)
+
+* Thanks
+- Zineb Aly (CPPM)
+- Tamas Gal (ECAP)
+- Johannes Schumann (ECAP)
+
+** Important links
+- Docs: [[https://km3py.pages.km3net.de/km3io]]
+- Source: [[https://git.km3net.de/km3py/km3io]]
+- uproot: [[https://github.com/scikit-hep/uproot]]
-- 
GitLab