v0.14.0
·
336 commits
to main
since this release
Added
- Public calibration package: Promote calibration utilities from
spine.utils.calibto the top-levelspine.calibpackage, with focused coverage for calibration constants, databases, factories, managers, gain, lifetime, transparency, recombination, and field corrections. - SCE field-map calibration: Add electric-field non-uniformity corrections through
FieldCalibratorandFieldMap, including dense map interpolation, ROOT TH3 map loading, configurable out-of-bounds behavior, detector-volume transforms, andbin/calib/sce_field_check.pyvalidation tooling. - Gain calibration functions: Add
gain_funcsupport toGainCalibrator, allowing NumExpr expressions such as2.3 * exp(x) - 3to transform charge arrays directly instead of applying only flat or database-backed gain constants. - DUNE-VD geometry support: Add DUNE-VD 10 kt geometry metadata and harden geometry parsing for nonterminal version tags in LArSoft/Flow geometry descriptions.
- Calorimetric interaction directions: Add
CalorimetricDirectionProcessorfor charge-weighted interaction direction reconstruction, with separate storage for true and reconstructed interaction direction fields. - Validation and metrics coverage: Add configurable truth-index selection for cluster metrics, plus tests for calorimetric direction reconstruction, calibration modules, geometry parsing, LArCV helpers, and output validation scripts.
Changed
- Calibration namespace: Remove the old
spine.utils.calibnamespace in favor ofspine.calib; update calorimetry, full-chain, and post-processing imports accordingly. - Script organization: Move utility scripts into domain-specific
bin/calib,bin/geo,bin/larcv, andbin/outputdirectories with lightweight README files and shared LArCV ROOT tree helpers. - Factory parsing: Extend module factory parsing to support repeated modules with explicit names while preserving the legacy single-module configuration style.
Fixed
- MCS robustness: Skip MCS kinetic-energy reconstruction for one-point tracks and prevent
bin_pcasegment PCA from running on one-point chunks, avoiding PCA assertion failures for degenerate track-like objects. - Shared download caches: Normalize downloaded cache artifacts to group-readable permissions, preserve atomic downloads, and raise clear permission errors when cache directories, lock files, temporary files, or existing cached downloads cannot be accessed.
- Field and calibration edge cases: Add validation around field-map dimensions, bounds handling, calibration constant source selection, and gain function expression inputs so configuration mistakes fail early with actionable errors.
Full Changelog: v0.13.3...v0.14.0