GithubHelp home page GithubHelp logo

quantummind / ml-neutrino-reconstruction Goto Github PK

View Code? Open in Web Editor NEW
0.0 1.0 0.0 19 KB

Stanford SLAC/Caltech SURF 2019: Machine Learning Methods for Event Reconstruction with Liquid Argon Time Projection Chamber Data

Python 100.00%

ml-neutrino-reconstruction's Introduction

Machine Learning Methods for Event Reconstruction with Liquid Argon Time Projection Chamber Data

This repository, in combination with my forks of lartpc_mlreco3d and pi0_reco, are the result of my Summer Undergraduate Research Fellowship at Stanford SLAC (2019). The work covers two main topics of event reconstruction in liquid argon time projection chamber (LArTPC) data: shower reconstruction (using cone clustering, density-based clustering, spectral methods, and graph neural networks) and energy reconstruction (using semantic segmentation with sparse convolutional neural networks). The two topics are tied together in reconstruction of the neutral pion mass from Monte Carlo simulated data.

Requirements

My fork of lartpc_mlreco3d (develop branch), my fork of pi0_reco, and the dlp_opendata_api.

U-ResNet energy reconstruction

U-ResNet regression on charge deposition + segmentation labels to predict energy deposition.

Create data to a temporary directory OUTPUT_DATASET with data_gen_energy_uresnet.py. Train the U-ResNet with train_energy_uresnet.py after setting the model weight output MODEL_OUTPUT, the input data directory data_path, and the maximum side length of the dataset DATA_SIZE. The model is run during pi0 mass reconstruction, but a more detailed analysis of running the model can be found outside this repo in the notebook /gpfs/slac/staas/fs1/g/neutrino/qatom/run uresnet-charge-to-energy-fivetypes-pi0.ipynb.

Graph neural network voxel-by-voxel shower clustering

Message-passing graph neural network for clustering of showers by edge classification.

Generate graphs from LArTPC events with data_gen_voxel_gnn.py after setting OUTPUT_DATASET. Train the GNN with train_voxel_gnn.py after setting the input data directory data_path and the model weight output in the cfg string. Run the GNN and get an estimate of symmetric best dice using run_voxel_gnn.py.

Spectral shower clustering

Perform spectral clustering with the normalized adjacency matrix and column-pivoted QR factorization on sparse matrices.

The spectral clusterer is implemented in the pi0_reco under pi0/utils/spectral_clusterer.py, and additional analysis can be found under /gpfs/slac/staas/fs1/g/neutrino/qatom/spectral-pi0.ipynb.

Cone shower clustering

Perform cone clustering with DBSCAN density-based clustering and a PCA to provide initial estimates of cone size and orientation.

The cone clusterer is implemented in the pi0_reco under pi0/utils/cone_clusterer.py, and additional analysis can be found under /gpfs/slac/staas/fs1/g/neutrino/qatom/optimize cone clusterer.ipynb.

Full pipeline reconstruction of pi0 mass (cone clustering)

Create a mass peak of the neutral pion from Monte Carlo simulated data.

Currently default is implemented for using cone clustering, but it can easily be extended to spectral clustering using the spectral clusterer in the pi0_reco and GNN clustering. Run mass_reco_cone.py to generate the intermediate data (setting OUTPUT_DIR to the appropriate directory). Plots can be made by running pi0_plotter.py (it's written for a Jupyter notebook, so I recommend copy-pasting it into one).

ml-neutrino-reconstruction's People

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.