Skip to content
/ tred Public
forked from brettviren/tred

Three dimensional electron drift response simulation

Notifications You must be signed in to change notification settings

yszhang95/tred

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

145 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

tred

A lean, fast and accurate three dimensional detector response simulation running on CPU/GPU. Tred initially targets the domain of liquid argon time projection chamber detectors with pixel readout electrodes.

Feature overview

The tred simulation is decomposed into well-defined stages of a pipeline. Tred,

  • Inputs data as point depos or line steps such as produced by Geant4 or other particle tracker.
  • Accepts input charge in units of ionized electrons or energy (on which it applies ionization and recombination given models).
  • Drifts distributions of ionized electrons through a bulk medium and uniform electric field while applying a diffusion model.
  • Discretizes the drifted electron distribution to a dimensional grid in space.
  • Inputs detector response defined on a three dimensional grid.
  • Performs a partitioned convolution and sum to produce induced currents on detector electrodes.
  • Applies an electronics readout model to produce final data equivalent to real detector data forms.

Goals

Some of the design and performance goals that guide tred development are:

  • Well-defined interfaces for constructing and calling stage components.
  • Well-defined stage input/output data objects with support for at least one common data file format.
  • Support and provide multiple implementations of a stage.
  • Ability to exercise a valid but otherwise arbitrary pipeline of one or more stages.
  • Execute pipelines on CPU or on GPU.
  • Provide an implementation of each stage that is optimized for GPU.
  • Modest GPU resource requirements (target 24 GB “gamer” GPU or smaller).
  • Aspirational target processing speed of one GPU-second to GPU-minute per “typical” event.

Installation

Developers only for now. Requires uv.

$ git clone git@github.com:brettviren/tred.git
$ cd tred/
$ uv run tred

On first run, this will make a virtual environment and install dependencies including all of PyTorch. Additional packages are required for certain features. They can be installed into the virtual environment with:

$ uv sync --extra matplotlib --extra numpy --extra hdf
## or short hand for all dependencies:
$ uv sync --extra all

Usage

This package is not ready for use yet.

Currently, development is driven by this command:

$ uv run tred plots

It produces a PDF of diagnostic plots.

About

Three dimensional electron drift response simulation

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 100.0%