Coder Social home page Coder Social logo

sivert-pct / rl-tracking Goto Github PK

View Code? Open in Web Editor NEW
1.0 3.0 0.0 591 KB

Pytorch implementation of "Towards Neural Charged Particle Tracking in Digital Tracking Calorimeters with Reinforcement Learning"

Python 18.17% TeX 2.21% Jupyter Notebook 79.62%
combinatorial-optimization reinforcement-learning track-reconstruction charged-particle-tracking proton-imaging

rl-tracking's Introduction

Status: Archive (code is provided as-is, no updates expected)

Towards Neural Charged Particle Tracking in Digital Tracking Calorimeters with Reinforcement Learning

Tobias Kortus, Ralf Keidel, Nicolas R. Gauger, on behalf of the Bergen pCT collaboration

The repository contains PyTorch implementation of "Towards Neural Charged Particle Tracking in Digital Tracking Calorimeters with Reinforcement Learning"

We propose a novel reconstruction scheme for reconstructing charged particles in digital tracking calorimeters using model-free reinforcement learning aiming to benefit from the rapid progress and success of neural network architectures for tracking without the dependency on simulated or manually labeled data. Here we optimize by trial-and-error a behavior policy acting as a heuristic approximation to the full combinatorial optimization problem, maximizing the physical plausibility of sampled trajectories.

Installation

pip install -r requirements.txt

Data and Models

For reproducibility we provide the user with the exact Monte-Carlo simulations used throughout the paper. All simulations can be downloaded from Zenodo and extracted using the following command (the downloaded archive should be copied into the data/ directory):

tar -xf data.tar.gz --strip-components 1

Note: The files data/comparison/results_water{100, 150, 200}.csv contain the processed reconstruction performances for the heuristic search approach by Pettersen et al. The source code can be found under [1].

Note: Please note that the following instructions are provided for Linux operating systems. Some commands may vary for different operating systems.

Similarly we provide the pretrained weights and results of all evaluated network variants used throughout the paper. The model data can be extracted in a similar fashion using:

tar -xf models.tar.gz --strip-components 1

Running Experiments

All experiments with the corresponding hyperparameters parameters, performed in the paper, are documented as .json files. An experiment, with the provided models, can be re-run using the following commands:

python policy_evaluation.py  -e experiments/****.json -t ** -d ****
  • -e: Experiment definition file. Either one of the predefined in experiments/default/ experiments/ablation or a custom definition following the json structure of the existing experiments.
  • -t: Experiment definition file. One of rl (reinforcement learning) or sv (supervised).
  • -d: Computation device that should be used by pytorch (cpu, cuda:1-N)

Note: We faced issues with non-reproducible results when using a CUDA device during training. Thus all models provided were trained on a CPU. If you wish to retrain a model, the respective *.pt files should be deleted from the corresponding model directory.

Running Reporting Scripts

python generate_tables.py

Note: All source code for creating spot scanning figures (figures 6-8) is provided in the jupyter notebooks visualize_spot_metrics_head.ipynb and visualize_spot_metrics_solid.ipynb.

Referencing this Work

If you find this repository useful for your research, please cite the following work.

@ARTICLE{10219056,
  author={Kortus, Tobias and Keidel, Ralf and Gauger, Nicolas R. and Bergen pCT Collaboration},
  journal={IEEE Transactions on Pattern Analysis and Machine Intelligence}, 
  title={Towards Neural Charged Particle Tracking in Digital Tracking Calorimeters With Reinforcement Learning}, 
  year={2023},
  volume={45},
  number={12},
  pages={15820-15833},
  doi={10.1109/TPAMI.2023.3305027}}

References

[1] Digital Tracking Calorimeter Toolkit, Helge E.S. Pettersen, [Sorce code]: https://github.com/HelgeEgil/DigitalTrackingCalorimeterToolkit

Parts of this implementation are inspired by:

rl-tracking's People

Contributors

tobiaskortus avatar

Stargazers

 avatar

Watchers

 avatar  avatar  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.