Skip to content

Latest commit

 

History

21 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 

Repository files navigation

SPINE NPC/DDAS Tutorial Materials

This is a compact tutorial sequence for a 3 hour SPINE session: a 45 minute lecture plus 2 hours and 15 minutes of hands-on work. It is distilled from DeepLearnPhysics/spine-workshop-2026, especially the HDF5 readback, PID, primary/vertex, and validation material, with a new production/configuration tutorial based on DeepLearnPhysics/spine-prod.

Runtime

Expected container:

ghcr.io/deeplearnphysics/spine:latest

The notebooks assume reconstructed SPINE HDF5 files and companion LArCV files are available under a common tutorial directory. At FNAL/EAF the defaults are:

LARCV_DATA_DIR = Path("/exp/dune/data/users/drielsma/npc-ddas/larcv")
HDF5_DATA_DIR = Path("/exp/dune/data/users/drielsma/npc-ddas/reco")
DETECTOR = "generic"
SAMPLE_NAME = "generic_test"

The expected structure is:

LARCV_DATA_DIR/generic_test.root
HDF5_DATA_DIR/DETECTOR/SAMPLE_NAME_spine.h5

This is intentionally notebook-local rather than hidden in the Jupyter kernel launch script. It makes the EAF/Apptainer setup easier to inspect and lets students switch detector/tag/geometry explicitly.

Full inference production is intentionally not part of the timed exercise. The agenda includes one small spine-prod example on /exp/dune/data/users/drielsma/npc-ddas/larcv/generic/generic_test.root so students see where reconstructed HDF5 files come from before the notebooks switch to object inspection and pre-produced outputs.

Recommended Agenda

The lecture slides are here: https://docs.google.com/presentation/d/1ddDAj8LcYOIF1xPD5DhmeozyJ2q7fRmwE1Bbrzekbrs/edit?usp=sharing

Setup is pre-work: students should complete 00_eaf_setup.md before 11:00 and arrive with the SPINE Apptainer kernel ready.

Time Segment Material
11:00-11:45 Lecture SPINE object hierarchy, DUNE use cases, performance benchmarks, production context
11:45-11:50 One-file production 01_production_and_config.md required path only
11:50-12:20 Output inspection 02_read_spine_output.ipynb
12:20-12:30 Spinal Tap / buffer Open the same output visually, absorb setup drift
12:30-13:30 Break Lunch / reset
13:30-14:15 Matching and validation 03_event_selection.ipynb
14:15-15:00 Michel mini-analysis / closeout 04_analysis_selection.ipynb

This keeps the lecture inside the first 90 minute block and leaves 2 hours and 15 minutes for hands-on work. 00_eaf_setup.md is pre-work, not a live agenda item. If the session runs long, drop or sharply compress Notebook 3 first, then use Notebook 4 as the analysis-oriented closeout. Threshold scans, Spinal Tap galleries, and deeper spine-prod configuration details are offline work.

Material Scope

  1. 00_eaf_setup.md Pre-session EAF login, SPINE Apptainer Jupyter kernel setup, import check, shared tutorial data layout, and optional Spinal Tap setup.

  2. 01_production_and_config.md Run one spine-prod example from the pre-installed EAF checkout at /exp/dune/app/users/drielsma/spine-prod on /exp/dune/data/users/drielsma/npc-ddas/larcv/generic/generic_test.root. EAF GPU requests, NERSC execution, and spine.config composition are optional reference sections.

  3. 02_read_spine_output.ipynb Opens a reconstructed HDF5 file with spine.driver.Driver, inspects RecoParticle, TruthParticle, RecoInteraction, and TruthInteraction objects, and builds small tables of object fields.

  4. 03_event_selection.ipynb Uses SPINE truth-matching products to study the ingredients of neutrino event selection by building PID and primary-ID confusion matrices plus a vertex-resolution diagnostic for a small number of entries.

  5. 04_analysis_selection.ipynb Builds a detector-agnostic Michel-electron candidate table from reconstructed particles using semantic shape, interaction membership, closest-track attachment, and truth matching when available.

Source Material Reused

  • spine-workshop-2026/basics/inference/Inference_storage.ipynb
  • spine-workshop-2026/reconstruction/michel/michel.ipynb
  • spine-workshop-2026/reconstruction/PID/ParticleIdentification.ipynb
  • spine-workshop-2026/reconstruction/vertex/Primary_and_Vertex.ipynb
  • spine-prod/README.md
  • spine-prod/QUICKREF.md
  • spine-prod/config/infer/*
  • SPINE config documentation from the packaged/runtime SPINE release

The original workshop covers a week of material. This sequence deliberately leaves out training, detailed calorimetry, shower dE/dx, and full-chain inference so the session stays focused on reading and using SPINE analysis objects.

Live vs Offline Work

Each notebook contains short live exercises that can be solved together in a few minutes. Longer adjacent-project prompts are explicitly marked as offline extensions. The intended live goal is competence with object inspection, simple selections, event-display debugging, and production config literacy, not statistical closure on reconstruction performance.

For an instructor-facing list of prompts, see EXERCISES.md.

API Exploration

When a class, field, or helper is unfamiliar, use:

  • the SPINE API browser: https://spine.readthedocs.io
  • Python introspection: help(obj), dir(obj), obj.as_dict().keys()
  • production examples in spine-prod/config/infer

The notebooks intentionally include cells that are worth reading line by line. The intended teaching style is interactive: predict what one line does, run it, inspect the object/table it returns, then decide what analysis question it enables.

About

SPINE tutorial material for the NPC DUNE Data Analysis School

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages