Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

31 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Ultralytics logo

🎉 Introduction

Welcome to the Ultralytics SANDD repository! This directory contains experimental waveform analysis code developed by Ultralytics for particle physics detector readout and reconstruction. Our work leverages Machine Learning (ML) and scientific Python tooling to enhance data analysis.

This software is available for use and redistribution under the AGPL-3.0 license. For a comprehensive overview of our projects and solutions, please visit Ultralytics.

Ultralytics Actions Ultralytics Discord Ultralytics Forums Ultralytics Reddit

📜 Description

This repository provides SANDD waveform-processing scripts for local detector data files. train.py reads .glenn waveform dumps, subtracts pedestals, computes timing and charge features, applies candidate cuts, and writes a results.png summary plot. waveform_plot.py plots a sample waveform from a ROOT file when ROOT and root_numpy are available.

📦 Requirements

To get started with SANDD, you'll need Python 3.7 or newer. The necessary libraries can be easily installed using pip and the provided requirements.txt file:

pip3 install -U -r requirements.txt

Key package requirements include:

  • numpy: Fundamental package for numerical computation.
  • scipy: Used for scientific and technical computing tasks.
  • torch: An open-source ML framework for building and training neural networks.
  • matplotlib: Used for plotting waveform and charge-distribution summaries.

The optional waveform_plot.py script also requires CERN ROOT and root_numpy, as noted in requirements.txt. You can find more information about these tools on their respective websites: NumPy, SciPy, PyTorch, Matplotlib, and ROOT.

🚀 Running the Code

The current repository includes two local scripts:

  • Waveform Processing: Run python train.py after updating the local path variable near the top of the script to point at your SANDD .glenn data directory.
  • Waveform Plotting: Run python waveform_plot.py from a directory containing the expected ROOT input file after installing ROOT and root_numpy.

✨ Visualizations

The related Ultralytics WAVE project includes example waveform and training-progress visualizations:

📄 Citation

If the related WAVE methodology is useful in your research or publications, we appreciate it if you cite our work using the following format:

@misc{jocher2018wave,
      title={WAVE: Machine Learning for Full-Waveform Time-Of-Flight Detectors},
      author={Glenn Jocher and Kurt Nishimura and Jacob Koblanski and Victor Li},
      year={2018},
      eprint={1811.05875},
      archivePrefix={arXiv},
      primaryClass={physics.ins-det}
}

You can access the paper on ArXiv.org.

💡 Contribute

We actively welcome contributions from the open-source community! Whether it's fixing bugs, adding new features, or improving documentation, your help is valuable. Please see our Contributing Guide for more details on how to get started.

We also encourage you to share your experiences with Ultralytics projects by filling out our Survey. Your feedback helps us improve. A huge 🙏 thank you to all our contributors!

Ultralytics open-source contributors

📄 License

Ultralytics provides two licensing options to accommodate different use cases:

  • AGPL-3.0 License: This OSI-approved open-source license is ideal for students, researchers, and enthusiasts who wish to collaborate and share knowledge openly. See the LICENSE file for full details.
  • Enterprise License: Designed for commercial applications, this license permits the integration of Ultralytics software and AI models into commercial products and services without the open-source requirements of AGPL-3.0. If your project requires an Enterprise License, please contact us through Ultralytics Licensing.

📮 Contact

For bug reports, feature requests, and contributions, please visit GitHub Issues. For broader questions and discussions about SANDD or other Ultralytics projects, join our vibrant community on Discord!


Ultralytics GitHub space Ultralytics LinkedIn space Ultralytics Twitter space Ultralytics YouTube space Ultralytics TikTok space Ultralytics BiliBili space Ultralytics Discord

About

Experimental Python tools for SANDD particle-detector waveform processing, timing and charge reconstruction, candidate selection, and ROOT visualization.

Topics

Resources

Code of conduct

Security policy

Stars

58 stars

Watchers

0 watching

Forks

Releases

Sponsor this project

Packages

Used by

Contributors

Languages