Skip to content

v0.20.10 - ROOT Macro Improvements (2026-06-07)

What Changed?

This release improves the check_thresholds.C ROOT macro for OSECHI threshold analysis. The macro has been refactored into focused helper functions for better readability. Suggested threshold values are now displayed as an annotation on each channel canvas.


What's New

Main Feature: Refactored check_thresholds.C

What it does: Splits the monolithic check_thresholds() function into small, single-purpose helpers. Each step of the analysis — histogram creation, fitting, annotation, drawing, and saving — is now a separate function. Suggested threshold values (1σ, 3σ, 5σ, 10σ) are annotated on every channel canvas, including the combined overview canvas.

How to use it:

root -l -q 'check_thresholds.C("20260101")'

Code example:

// Main flow in check_thresholds()
TH1D *h1 = make_histogram(source_tree, 1, 1);
TF1  *f1 = fit_threshold(h1, 250, 350);
TCanvas *c1 = draw_channel(h1, f1, 1);
save_channel(target_file, h1, c1);

Installation

Quick Start

# Get the release
git checkout v0.20.10

# Setup
task env:setup

# Run CLI
uv run kazunoko --help

What's Different from the Last Version?

🔧 Changed

  • check_thresholds.C: refactored into make_histogram(), fit_threshold(), annotate_thresholds(), draw_channel(), save_channel()
  • Canvas size changed to 1600×900 (widescreen); combined canvas to 1600×2700
  • Draw option changed from "e" to "ep" for explicit point+error rendering
  • gStyle->SetOptFit() moved into fit_threshold(); hist->SetStats(1) set in make_histogram()
  • TPaveText repositioned to right side below the stats box
  • Histograms now saved to thresholds.root alongside canvases

🐛 Fixed

  • annotate_thresholds() now appears on all pads in the combined canvas (previously only channel 3 was shown)
  • Grid lines restored in combined canvas pads via gPad->SetGrid()

Is It Safe to Upgrade?

Backward Compatible: Yes

  • No changes to the Python library or CLI
  • ROOT macro interface unchanged: check_thresholds("YYYYMMDD")

Tests Passed

  • ✅ Builds without errors
  • ✅ commitizen check passed

Release Details

  • Date: 2026-06-07
  • Version: v0.20.10
  • Files Changed: 5
  • Commits: 39c3b84, d549e79, 4806a1b

Next Steps

  • Further ROOT macro examples for event analysis