Metadata-Version: 2.1
Name: HighResAnalysis
Version: 0.0.6
Summary: Analysis of High Resolution Data from CERN and DESY beam tests
Home-page: https://github.com/dmitryhits/HighResAnalysis
Author: Dmitry Hits
Author-email: dmitry.hits@gmail.com
License: Apache Software License 2.0
Keywords: nbdev jupyter notebook python alignment telescope testbeam
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: Natural Language :: English
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: License :: OSI Approved :: Apache Software License
Requires-Python: >=3.7
Description-Content-Type: text/markdown
Provides-Extra: dev
License-File: LICENSE

HighResAnalysis
================

<!-- WARNING: THIS FILE WAS AUTOGENERATED! DO NOT EDIT! -->

The current repository is in development and is not guaranteed to work
The working version can be found
https://github.com/diamondIPP/HighResAnalysis

## Prerequisites

- [python](https://www.python.org)\>=3.6
  - python=3.10 was used for the development
- [cmake](https://cmake.org)\>=3.7
  - optionally [cmake GUI](https://cmake.org/runningcmake/), for example
    ccmake

## Installation

- First, install `mamba`. If you do not yet have `conda` install then
  getting
  [Mambaforge](https://github.com/conda-forge/miniforge#mambaforge) is
  the recommended way to get `mamba`. Here is the instruction for Linux.

``` shell
curl -L -O "https://github.com/conda-forge/miniforge/releases/latest/download/Mambaforge-Linux-x86_64.sh"
bash Mambaforge-Linux-x86_64.sh 
```

If this not the case for you. You can follow the instruction on [mamba
install
page](https://mamba.readthedocs.io/en/latest/installation.html#installation "complete mamba installation instructions")

- Next you can install [root](https://root.cern.ch). In the [root
  installation instructions](https://root.cern/install/#conda) you need
  to replace `conda` with `mamba` and skip the instructions about the
  environment, since the `Mambaforge` already created the default `base`
  environment.

``` shell
mamba config --set channel_priority strict
mamba install root
mamba install -c conda-forge root
```

- Install the analysis code:

``` shell
pip install HighResAnalysys
```

- Optionally install other useful python packages:

``` shell
mamba install -c conda-forge scikit-learn numpy pandas 
mamba install pyarrow openpyxl xlrd pytables requests sqlalchemy
mamba install -c fastai nbdev
mamba install jupyterlab
mamba install jupyternotebook
mamba install ipython
mamba install notebook
mamba install voila
```

- For the installation of the software hosted on the GitHub it is useful
  to make a dedicated folder:

``` shell
mkdir software
cd software
```

    - And clone all the necessary packages there:

``` shell
        git clone git@github.com:diamondIPP/DRS4-v5-shared.git
        git clone git@github.com:diamondIPP/proteus.git
        git clone git@github.com:diamondIPP/judith.git
        git clone git@github.com:diamondIPP/HVClient.git
        git clone git@github.com:diamondIPP/eudaq-2.git
```

- generate shh keys and copy them to login.phys.ethz.ch

``` shell
        ssh-keygen
        ssh-copy-id username@login.phys.ethz.ch
```

- Clone the analysis setup from GitHub. It contains all the necessary
  config files:

``` shell
git clone git@github.com:diamondIPP/setup-analysis.git HighResAnalysis
cd HighResAnalysis/
```

- To install the converters follow the instructions on the respective
  pages:
  - [proteus](https://github.com/diamondIPP/proteus)
    - It will need
      [Eigen3](https://eigen.tuxfamily.org/index.php?title=Main_Page)
      and you will have to tell `cmake` the path to it.
  - [judith](https://github.com/diamondIPP/judith) (only for CERN data)
  - [eudaq2](https://github.com/diamondIPP/eudaq-2) (only for DESY data)

## Example analysis of the DESY data

the data need to be frist pre-converted:

`>analyse --run=4`

you will need to import a couple of libraries. Most of the tools are in
`src.dut_analysis`. It will load the data and set all the cuts. The
`draw` module from plotting library has some useful functions and
presets that allow plotting histograms and graphs

``` python
from HighResAnalysis.src.dut_analysis import *
from HighResAnalysis.plotting.draw import *
```

    Welcome to JupyROOT 6.28/00

Initialize the DUTAnalysis with run number, DUT number, and a string
indicating the year and the month of the beam test

``` python
run4 = DUTAnalysis(4, 0, '201912')
```

    --- Palette ------ 55

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    STARTING DUT ANALYSIS of D02, run 4 (Dec 2019), 2.50M ev |
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    ************** Initing Converter *****************
    *************** Initing PROTEUS ******************

A small function that allows inline plotting of ROOT histograms

``` python
def dc(): get_last_canvas().Draw()
```

Let’s plot a signal distribution

``` python
run4.draw_charge_distribution()
dc()
```

    INFO:     10:34:18 --> Creating directory: /Users/hits/Documents/GitHub/HighResAnalysis/HighResAnalysis/results/201912
    INFO:     10:34:18 --> saving plot: SignalDist
    WARNING:  10:34:19 --> Diamond server is not mounted in /Users/hits/mounts/high-rate

![](index_files/figure-commonmark/cell-5-output-2.png)
