Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
62 commits
Select commit Hold shift + click to select a range
bd27f18
edep-sim interface added. Auxiliary variables for Particle also added…
drinkingkazu Mar 7, 2026
f2b55b4
ready to interface edep-sim H5 files. visualization options tweaked t…
drinkingkazu Mar 10, 2026
afe1c57
minor README update
drinkingkazu Mar 10, 2026
7234f95
a bug fix: process_type enum assumed to start from 0 in some parts of…
drinkingkazu Mar 10, 2026
839d941
add input point <=> voxelized points mapping
drinkingkazu Apr 2, 2026
d174bef
supporting jaxtpc stuff
drinkingkazu Jul 14, 2026
b3cf5ee
jaxtpc reader: fail loudly instead of yielding empty point clouds
drinkingkazu Aug 13, 2026
40f9665
io: size HDF5 chunks from a byte budget, add repack()
drinkingkazu Aug 13, 2026
a474f9a
run: add allow_empty_image guard and opt-in post-run repack
drinkingkazu Aug 13, 2026
b93d223
report how many JAXTPC segments were masked out as undetected
drinkingkazu Sep 8, 2026
1946da4
readers: rebuild genealogy from parent links, address particles by index
drinkingkazu Sep 9, 2026
8f99bd4
io: store geant4_id (format 2.2.0), expose repack as pysupera-repack
drinkingkazu Sep 9, 2026
9420c66
run: validate genealogy, and choose which levels get written
drinkingkazu Sep 9, 2026
da9cd78
vis: read geant4_id, tolerate a missing fragment level, fix the graph…
drinkingkazu Sep 9, 2026
80350c3
read dX correctly and keep it, so dE/dX can be derived
drinkingkazu Sep 20, 2026
eddd109
preproc: keep genealogy and provenance intact across splits and drops
drinkingkazu Sep 20, 2026
33327a9
io: widen the point cloud to carry dX, shrink the voxmap, drop recomp…
drinkingkazu Sep 20, 2026
ce2300a
run: renumber ids densely, and build the voxel map from what is stored
drinkingkazu Sep 20, 2026
8239ec1
docs: describe the output format, and separate expert output from use…
drinkingkazu Sep 20, 2026
358abd9
vis: wire the [D] shortcut the DBG button already advertises
drinkingkazu Sep 20, 2026
6966b88
tests: cover the HDF5 writer and reader, and fix write_events()
drinkingkazu Sep 20, 2026
8f48fbc
rename root_id to ancestor_id
drinkingkazu Sep 21, 2026
5c9a281
readers: fix dX, derive the ancestor, and stop masking failures
drinkingkazu Sep 21, 2026
d101bc6
preproc: keep every particle, and keep its provenance straight
drinkingkazu Sep 21, 2026
25a04c0
utils: validate the genealogy, and repair it consistently
drinkingkazu Sep 21, 2026
b6768d0
data: give Particle a Geant4 track ID and a voxel map
drinkingkazu Sep 21, 2026
c1a0235
io: size chunks by bytes, replace recompress with repack
drinkingkazu Sep 21, 2026
821189f
layout: compute one event's rows, ranges and ordering
drinkingkazu Sep 21, 2026
d0f2a4b
io_v3: one particle table, one point array, format 3.1.0
drinkingkazu Sep 21, 2026
06948b4
run: wire the 3.x writer, and stop degrading silently
drinkingkazu Sep 21, 2026
a83154a
conditions: re-attach a photon's own split-off pieces
drinkingkazu Sep 21, 2026
2f7cae3
profiling: memory and rank-aware W&B logging
drinkingkazu Sep 21, 2026
4314ff0
torchdata: panoptic training batches from a 3.x file
drinkingkazu Sep 21, 2026
efc3bf2
vis: read the 3.x format, and accept both column spellings
drinkingkazu Sep 21, 2026
3f9b51a
packaging: declare hdf5plugin, add torch and wandb extras
drinkingkazu Sep 21, 2026
bf1f5c6
docs: rewrite the output format section for 3.1.0
drinkingkazu Sep 21, 2026
0d69550
vis: stop confusing an instance id with its row index
drinkingkazu Sep 21, 2026
8a236cc
provenance: map JAXTPC hits to instances and fragments
drinkingkazu Sep 22, 2026
5e1f368
vis: a viewer that shows the hit-to-voxel mapping
drinkingkazu Sep 22, 2026
6f8258b
jaxtpc: hit provenance, pixel readout, and the detected-image point s…
drinkingkazu Sep 23, 2026
c9251cf
format 3.3.0: per-hit labels for the JAXTPC hits file, truth in point…
drinkingkazu Sep 28, 2026
3c92bb2
vis: one viewer per run mode, on the 3.3.0 format
drinkingkazu Sep 28, 2026
d2cef48
docs: bring the README up to date with the code, and record the profi…
drinkingkazu Sep 28, 2026
d590f68
pixel hits: a shared t0 cannot measure the drift velocity
drinkingkazu Oct 7, 2026
add815c
run: write an event the readout never saw as empty, instead of halting
drinkingkazu Oct 7, 2026
f25faa4
pixel hits: check each volume's geometry on the first event it has hits
drinkingkazu Oct 8, 2026
17760ca
format 4.0.0: LE per fragment, showers from the pair, instance kinema…
drinkingkazu Oct 14, 2026
4fa7f54
merge_em_showers: a loop of parent fragments no longer drops a fragment
drinkingkazu Oct 17, 2026
94ee864
readers: primaries come from the primary table, so a primary is never LE
drinkingkazu Oct 17, 2026
e9bf8ae
run: record what a run notices but does not stop for in an issues/ group
drinkingkazu Oct 17, 2026
ea3559f
readers: a primary neutron or nucleus is kPrimary too; merge: a neutr…
drinkingkazu Oct 17, 2026
27f7e4a
merge: a delta ray its track hides joins the track's points, and stay…
drinkingkazu Oct 17, 2026
36f56b5
vis: pin what you click, toggle hover, pan; vis_hits gets vis_drift's…
drinkingkazu Oct 17, 2026
05cb617
run: several inputs into one output, and each event's source and dpro…
drinkingkazu Oct 18, 2026
dab92d8
speed: truth voxels in one pass, checker trees on demand, faster LE t…
drinkingkazu Oct 18, 2026
e7f1250
labels: a mu- Michel is kMichel; a decay electron too small to see is LE
drinkingkazu Nov 5, 2026
2c477e0
partition: LE pieces go to a partner chosen by genealogy and geometry…
drinkingkazu Nov 5, 2026
ab41c1d
labels: a muon decay electron is a Michel only if the muon reached it…
drinkingkazu Nov 5, 2026
b36ac8a
format 4.2.0: a particle id is its row in the event; fragments get fi…
drinkingkazu Nov 5, 2026
c7fbff8
layout: every row's Geant4 primary is stored, so parent_id == id mark…
drinkingkazu Nov 5, 2026
65614ec
io: points_energy root attribute; README: a table of the root attributes
drinkingkazu Nov 5, 2026
06c2487
docs: what a groups/ row and a hit are, and how they join to points
drinkingkazu Nov 5, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1,954 changes: 1,913 additions & 41 deletions README.md

Large diffs are not rendered by default.

21 changes: 19 additions & 2 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,9 @@ dependencies = [
"numpy",
"scipy",
"h5py",
# Registers the Blosc/LZ4 HDF5 filters. Required to read JAXTPC seg/inst
# files (written with Blosc, filter 32001) and to write io.compression=lz4.
"hdf5plugin",
"hydra-core>=1.3",
"omegaconf>=2.3",
]
Expand All @@ -27,6 +30,18 @@ rapids = [
numba = [
"numba",
]
# Required by pysupera.torchdata (training-data pipeline) only.
torch = [
"torch",
# Per-process RSS, including DataLoader workers. pysupera.profiling
# falls back to /proc without it, losing the worker figures.
"psutil",
]
# Weights & Biases logging of the training-data pipeline. Optional:
# pysupera.profiling.WandbLogger is a silent no-op when it is absent.
wandb = [
"wandb",
]
dev = [
"pytest",
"jupyter",
Expand All @@ -38,8 +53,10 @@ app = [
]

[project.scripts]
run_pysupera = "pysupera._run:main"
pysupera-app = "pysupera.app:main"
run_pysupera = "pysupera._run:main"
pysupera-app = "pysupera.app:main"
pysupera-repack = "pysupera.io:repack_cli"
pysupera-hits-subset = "pysupera.hits_subset:main"

[tool.setuptools.packages.find]
where = ["."]
Expand Down
12 changes: 9 additions & 3 deletions pysupera/__init__.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,11 @@
__version__ = "0.0.1"

from .io import write_events, open_writer, read_events, EventStore, EventWriter
from .config import build_checker, build_conditions, build_preprocessor, build_merge_processor, load_cfg, configure, check_particle_list
from .utils import trace_ancestry
from .data import Particle, FLOAT_UNSET
from .io import (write_events, open_writer, read_events, EventStore, EventWriter,
voxmap_path, write_voxmap, open_voxmap_writer, read_voxmap,
VoxmapWriter, VoxmapStore)
from .config import (build_checker, build_conditions, build_preprocessor,
build_merge_processor, build_voxelizer, build_pipeline,
load_cfg, configure, check_particle_list, Pipeline)
from .utils import trace_ancestry, resolve_orphans
from .merge import merge_em_showers
961 changes: 929 additions & 32 deletions pysupera/_run.py

Large diffs are not rendered by default.

Loading
Loading