Skip to content

jsensenig/charge_exchange_ana

Repository files navigation

Pion Charge Exchange Analysis Code

Dependencies

  • ROOT (developed with 6.22)
  • Awkward Array
  • uproot
  • Python 3

To use, clone repository.

git clone https://github.com/jsensenig/charge_exchange_ana.git

and initialize the pybind11 C++ to python bindings submodule with

git submodule update --init 

build and install the python bindings with

cd extern && python setup.py install

The expected input is a flat ROOT tree generated by the PDSP_Analyzer LArSoft module. These file(s) can be specified in a text file with one file and its path per line. The path to this file can be specified in run_cex_selection.py with the variable files and the associated tree name with tree_name. Then to run do,

python run_cex_selection.py

The program will collect all cut classes in cex_analysis/ directory and build the selection steps, in order, as specified in the main.json configuration file. The selection results, efficiency and purity, for each step will be printed to screen and histograms saved in result_file.root.

Description

run_cex_selection.py

  • Main file to run analysis. Number of threads to use can be set with num_workers.

cex_analysis/*cut.py

  • The classes which perform the cuts (selections) on the data. There should be one cut per class.

config/

  • All the configurration for the cuts and plots. The general configuration parameters are found in config/main.json.

extern/

  • It includes a submodule to pybind11 C++ to python binding header files. In extern/src/ are the C++ source files for the custom python bindings.

Adding Cuts

To add a cut follow the form in the existing cut classes. The class inherits from the EventSelectionBase class which outlines the form of the class and handles the configuration parsing.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published