Skip to content

A collection of python tools for studying/analyzing signal processing for ICARUS

Notifications You must be signed in to change notification settings

SFBayLaser/icarus-sigproc-tools

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

52 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ICARUS Experiment

ICARUS Signal Processing


A repository aimed at collecting tools and notebooks useful for studying waveforms/ROI/hit finding
with the ICARUS LAr TPC

General Directory Structure

  • sigproc_tools - This folder is broken into two parts:
    • sigproc_functions - A collection of python modules defining functions useful for stuying noise and developing filtering techniques
    • sigproc_objects - A collection of python classes for accessing the data to be analyzed
  • plotting - A collection of useful function definitions for making specific types of plots
  • notebooks - A collection of example Jupyter notebooks for performing specific analyes

Prerequisites for running

  • The interface are python modules which are designed to be run in jupyter notebooks. Example jupyter notebooks are provided, to be able to execute them you will need:
    • The modules are designed to run in python 3.6 or above (tested in 3.7)
    • One will need access to the standard python include packages numpy, scipy and matplotlib
    • Access to the input root data files is with the uproot package where you can find instructions on installaion (e.g. through pip or conda)
    • Graphics output is performed with the plot-ly package which provides for a nice interactive user experience (though, warning, can be memory intensive), installation instructions can be found on the linked page (e.g. using pip or conda)
    • Also useful for the 3D event views is the ipywidgets package those this is not required for the basic analysis. Again installation instructions are on the linked page
    • Finally, you will need to be able to run a jupyter notebook
  • The main idea is to have this installation running on your laptop (e.g. the above works nicely on a macbook pro) with input data files copied to your local machine. However, provided the above libraries are available, no reason to not run the cro-magnon form (i.e. over network to an icarus gpvm machine)

Installing

  • Create a working area on your machine where you will copy the input files and set up this repository
  • Navigate to that folder
  • git clone https://github.com/SFBayLaser/icarus-sigproc-tools
  • Copy one of the example notebooks fromt the repository folder to your working folder (it is not recommended to open them directly since this will create a cache folder and, more important, when you execute the notebook it will create arrays and images which are quite large - it would not be good to upload those back to the root repository!)
  • Open the notebook and in the first code block that is highlighted with "TODO" be sure to replace the path you see there with the full path to folder which contains the signal processing tools repository
  • In the second "TODO" block set the fully qualified path to the location of your data files and the name of the file you want to read

Running

  • Generally, in my terminal window I navigate to the working directory which contains the data files and a copy of the notebook I want to run. I tend to run jupyter notebook which, if run on my mac, will automatically open a windown in my default browser window display a directory of the folder I'm starting in. From here I can should see the notebook I want to run listed and can simply click on that to get it started. From there it is standard jupyter stuff
  • It is important to note that all of this code is designed to work on "swizzled" data!
    This means the raw test data files must first be converted so the files contain "RawDigit" format TPC data.

TODO

  • Implementation of the full set of TPC responses functions (currently only electronics response available)
  • What is the correct number of channels to group for coherent noise subtraction? 32 or 64?
  • Develop algorithm for signal protection with the coherent noise subtraction
  • After coherent noise subtraction, what is the source of the remnant noise observed?
  • Develop a more sophisticated approach to overlaying a fake particle on existing waveforms
    • Need protection for cases when input variables result in out of range parameters
    • Need to change input parameters to #electrons with internal converstions
    • etc.
  • Implement the current deconvolution and ROI algorithms here for faster turnaround studies
  • And this is just to start!

Problems/Complaints/Hate mail

  • Currently, all questions and/or complaints should be sent to Tracy Usher

About

A collection of python tools for studying/analyzing signal processing for ICARUS

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published