Vancouver Waveform Analysis Toolkit  1.0
Vancouver Waveform Analysis Toolkit


A software suite for processing waveform data, designed to help particle physics researchers detect and analyze pulses.

Environment Setup

We strongly recommend using Docker as a development and execution environment for this software. Follow our guide to get set up with Docker quickly and to understand how we use it in this project. Most of the following instructions assume that you have set Docker up on your system, and that you are running most commands here in the container environment.

We also recommend installing clang-format if you plan to contribute to this project.


The project's dependencies are baked into our container image, so you should not need to worry about them if you use our run scripts (scripts/docker-run-*.sh) to spin up the environment.

The following dependencies must be installed and available on the system to successfully compile and run the software.

Refer to the top section of the project Makefile for a list of environment variables that must be set for successful compilation.


Run make to build the project. Resulting object files will be placed under obj/, shared libraries under lib/, and executables under bin/. Run make clean all to do a clean build.


Refer to our Docker documentation for instructions on setting up and running the project in a portable, lightweight virtual environment.

  1. Set your data sources, channel configurations, pulse finding/analysis strategies, and variables in a JSON file (refer to experiments/example.json for an example)
  2. Run the bin/vanwftk executable and pass the relative path to your JSON config file as the only command line parameter
  3. Explore the output (written to ntp/) with ROOT


Refer to our ``.