Skip to content

Uni2K/RootReader

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

54 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

RootReader

Welcome to the Git repository of the RootReader. This piece of software helps you to create .root files out of raw data stored in .bin files.

What are .root files?

Root files are files created by the CERN ROOT framework (https://root.cern.ch/). They store informations in a hierachical tree-like structure called ROOT tree. Each piece of information is then called leaf, while each type of information is called branch. Example: You measured the voltage of a photodiode over a timespan of 10ns. A possible branch would then be the amplitude of the voltage, while a leaf holds for example 5mV. Each Root File contains the information that you want it to contain. In this workgroup (SHiP HU Berlin), we are interested in the time integral of a SiPM signal. We are also interested in several timing obersables. All those branches need to be calculated and stored in the .root file.

What are .bin files?

Binary files are just holding raw informations, e.g. the voltage values of a measurement. In case of the SHiP HU group, they are created by an analog to digital converter called WaveCatcher (https://www.caen.it/products/wavecatcher/). It digitizes the raw SiPM signals and records them using a Windows client. The way the raw data is stored in the .bin files is set in the Windows client. The used configuration puts the 1024 voltage measurements of 1000 events in a single .bin file. The files of the Windows client can be found in the WaveCatcher folder in this repository. The calibration/configuration files are also in the folders (use them to find the exact saving configuration of the bin files). The installation of the WaveCatcher client may requires to restart the PC (it needs to find drivers, which may only be available after a restart).

Whats the reason?

The size of the .bin files is usually large, because all the raw data is included. For the analysis, however, you only need specific informations like the amplitude, integral, start point etc. So, the idea is to convert the large amounts of data into single condensed .root files. In this way, the analysis is faster and only relies on some "small" .root files. This method is also more user friendly as it allows a central debugging of the reading process.

Lets start!

Firstly, it needs to run in a C environment (better C++) with pre-installed ROOT framework ( tested with 6.18). If it is used on Windows, the best way would be to use a WSL (Windows subsystem for linux). This can be installed directly from Microsoft Store (e.g. search for Ubuntu). This works only on Windows 10, here is a tutorial:

https://medium.com/@blake.leverington/installing-cern-root-under-windows-10-with-subsystem-for-linux-beta-75295defc6d4 (I recommend using a pre-build version of ROOT)

If everything is installed correctly just start the software like you would start any other script:

./RootReader.sh

Demo

It can happen that the line endings are wrong:

 $'\r': command not found

In this case use a tool like dos2unix to convert them.

Purpose & Customisation

I personally did efficiency measurements that mainly require time integrals to be calculated. However, when dealing with other purposes such as timing resolution studies etc. the pre-defined observables may need to be changed. Furthermore, this script is fully adjusted to my needs. Meaning that I uses parameters that are optimized for my purposes.

You can read how exactly it works on the Wiki: https://github.com/Uni2K/RootReader/wiki/Introduction

For instant help just open the menu item and view some helpful informations

Support: [email protected]

Important files

Master theses:

Root Analysis: Multiple scripts that are needed for the RootReader: https://github.com/Uni2K/RootAnalysis

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published