From a4ae2067500ba8af31c1b64beed463a9d05b22e2 Mon Sep 17 00:00:00 2001 From: ViaFerrata <michimoser@onlinehome.de> Date: Wed, 14 Nov 2018 13:55:59 +0100 Subject: [PATCH] Update docs --- docs/_static/orcasong_logo_small_low_res.png | Bin 0 -> 42948 bytes docs/_static/style.css | 10 + docs/conf.py | 2 + docs/getting_started.rst | 181 +++++++++++++++++++ docs/index.rst | 9 +- orcasong/data_to_images.py | 3 +- 6 files changed, 200 insertions(+), 5 deletions(-) create mode 100644 docs/_static/orcasong_logo_small_low_res.png create mode 100644 docs/getting_started.rst diff --git a/docs/_static/orcasong_logo_small_low_res.png b/docs/_static/orcasong_logo_small_low_res.png new file mode 100644 index 0000000000000000000000000000000000000000..2f32f07a7b1951e7d884a16e67cff226250f44c8 GIT binary patch literal 42948 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 literal 0 HcmV?d00001 diff --git a/docs/_static/style.css b/docs/_static/style.css index 21cffae..11e2dff 100644 --- a/docs/_static/style.css +++ b/docs/_static/style.css @@ -1,3 +1,13 @@ .wy-nav-content { max-width: none; } + + .section #basic-2-flip-flop-synchronizer{ + text-align:justify; +} + + body { + max-width: 1000px !important; + margin: 0; + padding-left: 1em; +} \ No newline at end of file diff --git a/docs/conf.py b/docs/conf.py index 51a3375..f08f846 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -198,3 +198,5 @@ epub_exclude_files = ['search.html'] # If true, `todo` and `todoList` produce output, else they produce nothing. todo_include_todos = True +def setup(app): + app.add_stylesheet('_static/style.css') \ No newline at end of file diff --git a/docs/getting_started.rst b/docs/getting_started.rst new file mode 100644 index 0000000..a7df373 --- /dev/null +++ b/docs/getting_started.rst @@ -0,0 +1,181 @@ +Getting started with OrcaSong +============================= + +.. contents:: :local: + +Introduction +------------ + +On this page, you can find a step by step introduction into the usage of OrcaSong. +The guide starts with some exemplary root simulation files made with jpp and ends with hdf5 event 'images' that can be used for deep neural networks. + +Preprocessing +------------- + +Let's suppose you have some KM3NeT simulation files in the ROOT dataformat, e.g.:: + + /sps/km3net/users/kmcprod/JTE_NEMOWATER/withMX/muon-CC/3-100GeV/JTE.KM3Sim.gseagen.muon-CC.3-100GeV-9.1E7-1bin-3.0gspec.ORCA115_9m_2016.99.root + +The file above contains simulated charged-current muon neutrinos from the official 2016 23m ORCA production. +Now, we want to produce neutrino event images based on this data using OrcaSong. + +Conversion from .root to .h5 +~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +At first, we have to convert the files from the .root dataformat to a more usable one: hdf5. +For this purpose, we can use a tool called :code:`tohdf5` which is contained in the collaboration framework :code:`km3pipe`. +In order to use :code:`tohdf5`, you need to have loaded a jpp version first. A ready to use bash script for doing this can be found at:: + + /sps/km3net/users/mmoser/setenvAA_jpp9_cent_os7.sh + + +Then, the usage of :code:`tohdf5` is quite easy:: + + ~$: tohdf5 -o testfile.h5 /sps/km3net/users/kmcprod/JTE_NEMOWATER/withMX/muon-CC/3-100GeV/JTE.KM3Sim.gseagen.muon-CC.3-100GeV-9.1E7-1bin-3.0gspec.ORCA115_9m_2016.99.root + ++ tohdf5: Converting '/sps/km3net/users/kmcprod/JTE_NEMOWATER/withMX/muon-CC/3-100GeV/JTE.KM3Sim.gseagen.muon-CC.3-100GeV-9.1E7-1bin-3.0gspec.ORCA115_9m_2016.99.root'... + Pipeline and module initialisation took 0.002s (CPU 0.000s). + loading root.... /afs/.in2p3.fr/system/amd64_sl7/usr/local/root/v5.34.23/ + loading aalib... /pbs/throng/km3net/src/Jpp/v9.0.8454//externals/aanet//libaa.so + ++ km3pipe.io.aanet.AanetPump: Reading metadata using 'JPrintMeta' + WARNING ++ km3pipe.io.aanet.MetaParser: Empty metadata + WARNING ++ km3pipe.io.aanet.AanetPump: No metadata found, this means no data provenance! + --------------------------[ Blob 250 ]--------------------------- + --------------------------[ Blob 500 ]--------------------------- + --------------------------[ Blob 750 ]--------------------------- + --------------------------[ Blob 1000 ]--------------------------- + --------------------------[ Blob 1250 ]--------------------------- + --------------------------[ Blob 1500 ]--------------------------- + --------------------------[ Blob 1750 ]--------------------------- + --------------------------[ Blob 2000 ]--------------------------- + --------------------------[ Blob 2250 ]--------------------------- + --------------------------[ Blob 2500 ]--------------------------- + --------------------------[ Blob 2750 ]--------------------------- + --------------------------[ Blob 3000 ]--------------------------- + --------------------------[ Blob 3250 ]--------------------------- + EventFile io / wall time = 6.27259 / 73.9881 (8.47784 % spent on io.) + ================================[ . ]================================ + ++ km3pipe.io.hdf5.HDF5Sink: HDF5 file written to: testfile.h5 + ============================================================ + 3457 cycles drained in 75.842898s (CPU 70.390000s). Memory peak: 177.71 MB + wall mean: 0.021790s medi: 0.019272s min: 0.015304s max: 2.823921s std: 0.049242s + CPU mean: 0.020330s medi: 0.020000s min: 0.010000s max: 1.030000s std: 0.018179s + ++ tohdf5: File '/sps/km3net/users/kmcprod/JTE_NEMOWATER/withMX/muon-CC/3-100GeV/JTE.KM3Sim.gseagen.muon-CC.3-100GeV-9.1E7-1bin-3.0gspec.ORCA115_9m_2016.99.root' was converted. + +There are also some options that can be used with :code:`tohdf5`:: + + ~$: tohdf5 -h + Convert ROOT and EVT files to HDF5. + + Usage: + tohdf5 [options] FILE... + tohdf5 (-h | --help) + tohdf5 --version + + Options: + -h --help Show this screen. + --verbose Print more output. + --debug Print everything. + -n EVENTS Number of events/runs. + -o OUTFILE Output file (only if one file is converted). + -j --jppy (Jpp): Use jppy (not aanet) for Jpp readout. + --ignore-hits Don't read the hits. + -e --expected-rows NROWS Approximate number of events. Providing a + rough estimate for this (100, 1000000, ...) + will greatly improve reading/writing speed + and memory usage. + Strongly recommended if the table/array + size is >= 100 MB. [default: 10000] + -t --conv-times-to-jte Converts all MC times in the file to JTE + +For now though, we will just stick to the standard conversion without any options. + +After this conversion, you can investigate the data structure of the hdf5 file with the command :code:`ptdump`:: + + ptdump -v testfile.h5 + / (RootGroup) 'KM3NeT' + /event_info (Table(3457,), fletcher32, shuffle, zlib(5)) 'EventInfo' + description := { + "weight_w4": Float64Col(shape=(), dflt=0.0, pos=0), + "weight_w3": Float64Col(shape=(), dflt=0.0, pos=1), + "weight_w2": Float64Col(shape=(), dflt=0.0, pos=2), + "weight_w1": Float64Col(shape=(), dflt=0.0, pos=3), + "run_id": Int64Col(shape=(), dflt=0, pos=4), + "timestamp": Int64Col(shape=(), dflt=0, pos=5), + "nanoseconds": Int64Col(shape=(), dflt=0, pos=6), + "mc_time": Float64Col(shape=(), dflt=0.0, pos=7), + "event_id": Int64Col(shape=(), dflt=0, pos=8), + "mc_id": Int64Col(shape=(), dflt=0, pos=9), + "group_id": Int64Col(shape=(), dflt=0, pos=10)} + ... + +Hdf5 files are structured into "folders", in example the folder that is shown above is called "event_info". +The event_info is just a two dimensional numpy recarray with the shape (3457, 11), where for each event +important information is stored, e.g. the event_id or the run_id. + +There is also a folder called "hits", which contains the photon hits of the detector for all events. +If you dig a little bit into the subfolders you can see that a lot of information is contained about these hits, +e.g. the hit time, but there is no XYZ position of the hits. The only information that you have is the dom_id and the +channel_id of a hit. + +Calibrating the .h5 file +~~~~~~~~~~~~~~~~~~~~~~~~ + +In order to fix this, we can run another tool, :code:`calibrate`, that will add the pos_xyz information to the hdf5 datafile:: + + calibrate /sps/km3net/users/mmoser/det_files/orca_115strings_av23min20mhorizontal_18OMs_alt9mvertical_v1.detx testfile.h5 + +As you can see, you need a .detx geometry file for this "calibration". Typically, you can find the path of this detx +file on the wiki page of the simulation production that you are using. This calibration step is optional, since OrcaSong +can also do it on the fly, using a .detx file. + +At this point, we are now ready to start using OrcaSong for the generation of event images. + + +Usage of OrcaSong +----------------- + +After pulling the OrcaSong repo to your local harddisk you first need to install it with the provided setup.py:: + + ~/orcasong$: pip install . + +Before you can start to use OrcaSong, you need to provide a file that contains the XYZ positions of the DOMs to OrcaSong. +OrcaSong is currently producing event "images" based on a 1 DOM / XYZ-bin assumption. This image generation is done +automatically, based on the number of bins (n_bins) for each dimension XYZ that you supply as an input and based on the +DOM XYZ position file. An examplary file for the DOM positions can be found in the folder /orcasong of the OrcaSong +repo, "ORCA_Geo_115lines.txt". Currently, this file is hardcoded as an input for OrcaSong, so if you want to use another +detector geometry, you should include your .txt file in the main() function in "data_to_images.py". +You can generate this .txt file by taking the .det (not .detx!) file, e.g.:: + + /afs/in2p3.fr/throng/km3net/detectors/orca_115strings_av23min20mhorizontal_18OMs_alt9mvertical_v1.det + +Then, you need to look for the :code:`OM_cluster_data` lines:: + + OM_cluster_data: 1 -86.171 116.880 196.500 -1.57080 0.00000 1.57080 + OM_cluster_data: 2 -86.171 116.880 187.100 -1.57080 0.00000 1.57080 + ... + +Here, the first column is the dom_id and the second, third and fourth column is the XYZ position. +You need to copy this information into a .txt file, such that it can be read by OrcaSong. One could automate this such +that OrcaSong looks for the correct lines in the .det file automatically, however, multiple (old) conventions exist for +the .det file structure, so it may be a bit tedious. Nevertheless, contributions are very welcome! :) + +At this point, you're finally ready to use OrcaSong, it can be executed as follows:: + + python data_to_images.py testfile.h5 + +OrcaSong will then generate a hdf5 file with images into the Results folder, e.g. Results/4dTo4d/h5/xyzt. + +The configuration options of OrcaSong can be found in the :code:`main()` function. + +.. currentmodule:: orcasong.data_to_images +.. autosummary:: + main + +In the future, these configurations should probably be relocated to a dedicated .config file. Again, contributions and +thoughts are very welcome! +If anything is still unclear after this introduction just tell me in the deep_learning channel on chat.km3net.de or +write me an email at michael.m.moser@fau.de, such that I can improve this guide! + + + + diff --git a/docs/index.rst b/docs/index.rst index 351d5f0..0887502 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -5,10 +5,10 @@ Welcome to the documentation of OrcaSong! ========================================= -OrcaSong is a part of the Deep Learning efforts for the neutrino telescope KM3NeT. -Find more information about KM3NeT on http://www.km3net.org. +| OrcaSong is a part of the Deep Learning efforts for the neutrino telescope KM3NeT. +| Find more information about KM3NeT on http://www.km3net.org. -In this context, OrcaSong is a project that produces KM3NeT event images based on the raw detector data. +In this regard, OrcaSong is a project that produces KM3NeT event images based on the raw detector data. This means that OrcaSong takes a datafile with (neutrino-) events and based on this data, it produces 2D/3D/4D 'images' (histograms). Currently, only simulations with a hdf5 data format are supported as an input. These event 'images' are required for some Deep Learning machine learning algorithms, e.g. Convolutional Neural Networks. @@ -18,13 +18,14 @@ As of now, only ORCA detector simulations are supported, but ARCA geometries can The main code for generating the images is located in orcanet/data_to_images.py. If the simulated hdf5 files are not calibrated yet, you need to specify the directory of a .detx file in 'data_to_images.py'. -This documentation is currently WIP, and as of now, it only offers an (extensive) API documentation. +As of now, the documentation contains a small introduction to get started and and a complete API documentation. Please feel free to contact me or just open an issue on Gitlab / Github if you have any suggestions. .. toctree:: :maxdepth: 2 :caption: Contents: + getting_started api diff --git a/orcasong/data_to_images.py b/orcasong/data_to_images.py index 1fa7cb5..7ea83a5 100644 --- a/orcasong/data_to_images.py +++ b/orcasong/data_to_images.py @@ -148,7 +148,8 @@ def calculate_bin_edges(n_bins, det_geo, fname_geo_limits, do4d): def main(n_bins, det_geo, do2d=False, do2d_pdf=(False, 10), do3d=False, do4d=(True, 'time'), prod_ident=None, timecut=('trigger_cluster', 'tight_1'), do_mc_hits=False, use_calibrated_file=False, data_cuts=None): """ - Main code. Reads raw .hdf5 files and creates 2D/3D histogram projections that can be used for a CNN. + Main code with config parameters. Reads raw .hdf5 files and creates 2D/3D histogram projections that can be used + for a CNN. Parameters ---------- -- GitLab