Agent Skills by ALSEL
汎用データ・分析⭐ リポ 2品質スコア 74/100

root-cli

root-cliコマンドラインツールを使用してCERN ROOTファイルを分析します。このスキルはROOTファイル(.root)、TTree/RNTuple検査、ブランチ読み込み、ヒストグラム計算、運動学的再構成、フィッティング、相関分析、HEPデータのエクスポートなど、ROOTファイルに関連するあらゆるタスクに使用できます。ユーザーがROOTファイル、TTree、RNTuple、ブランチ、ヒストグラム、不変質量、MET、粒子物理データを言及した場合、または.rootファイルのデータの検査・プロット・フィッティング・エクスポートを求めた場合に起動します。対話的な分析ではPyROOTやuprootスクリプティングより、root-cliを推奨します。トークン数を大幅に削減でき、クリーンで合成可能なコマンドインターフェースを提供するためです。また、ユーザーがCLIモードでroot-mcpを使用するよう求めた場合も起動します。

description の原文を見る

Analyze CERN ROOT files using the root-cli command-line tool. Use this skill for any task involving ROOT files (.root), TTree/RNTuple inspection, branch reading, histogram computation, kinematic reconstruction, fitting, correlation analysis, or exporting HEP data. Trigger whenever the user mentions ROOT files, TTrees, RNTuples, for any task involving ROOT files (.root), TTree inspection, branch reading, histogram computation, kinematic reconstruction, fitting, correlation analysis, or exporting HEP data. Trigger whenever the user mentions ROOT files, TTrees, branches, histograms, invariant mass, MET, particle physics data, or asks to inspect/plot/fit/export data from .root files. Prefer root-cli over PyROOT/ uproot scripting for interactive analysis — it saves thousands of tokens and provides a clean, composable command surface. Also trigger when the user asks to use root-mcp in CLI mode.

SKILL.md 本文

ROOT CLI スキル

root-cli は CERN ROOT ファイル向けのトークン効率的な CLI です。冗長な MCP JSON 交換を簡潔で組み合わせ可能なシェルコマンドに置き換えます。中間結果(ヒストグラム、フィッティング結果)は /tmp/root_mcp/ 以下に JSON として キャッシュされ、後続のコマンドで消費されます。

セットアップ

# データパスを一度設定する(または -d でコマンド毎に指定)
export ROOT_MCP_DATA_PATH=/path/to/data

# インストール確認
root-cli info

すべてのコマンドは --json を受け付け、他のツールにパイプできるマシン可読出力を提供します。


コマンドリファレンス

ファイル操作

コマンド目的
root-cli ls [pattern] [--limit N]データディレクトリ内の ROOT ファイルを一覧表示
root-cli inspect <file.root>TTree、RNTuple、ヒストグラム、ディレクトリを表示
root-cli inspect <file.root>TTree、ヒストグラム、ディレクトリを表示
root-cli branches <file.root> <tree> [-p pattern] [-s]ブランチと型を一覧表示;-s で統計情報を追加
root-cli validate <file.root>ファイルの整合性をチェック

データアクセス

コマンド目的
root-cli stats <file.root> <tree> <branches...> [-s cut]平均/標準偏差/最小値/最大値/中央値
root-cli read <file.root> <tree> <branches...> [-s cut] [-l N] [--flatten] [-d name=expr]生データを読み込み
root-cli sample <file.root> <tree> [--size N] [--method first|random]高速サンプリング
root-cli export <file.root> <tree> <branches...> -o out [-s cut] [--format csv|json|parquet]データをエクスポート

カット構文: C++ 式 — "pt > 20 && abs(eta) < 2.4""n_jets >= 2" 派生変数: -d met_x="met*cos(met_phi)" — インラインで新しいブランチを定義

ヒストグラム解析

# 1D ヒストグラム(結果は /tmp/root_mcp/<branch>_hist.json にキャッシュ)
root-cli histogram <file.root> <tree> <branch> \
  [--bins 100] [--range MIN MAX] [-s cut] \
  [--fit gaussian|exponential|polynomial|crystal_ball] [--fit-range MIN MAX]

# 2D ヒストグラム
root-cli histogram2d <file.root> <tree> <x_branch> <y_branch> \
  [--xbins 50] [--ybins 50] [--xrange MIN MAX] [--yrange MIN MAX]

# キャッシュされたヒストグラム JSON をフィッティング
root-cli fit /tmp/root_mcp/<hist>.json <model> \
  [--fit-range MIN MAX] [-i param=value]

# ヒストグラム演算(シグナル/バックグラウンド比、効率など)
root-cli hist-arithmetic <add|subtract|multiply|divide|asymmetry> hist1.json hist2.json

統計解析とキネマティクス

# ピアソン相関またはスピアマン相関行列
root-cli correlation <file.root> <tree> <branches...> [--method pearson|spearman]

# 4ベクトル(pt、eta、phi、[質量])からの不変質量
root-cli invariant-mass <file.root> <tree> \
  --pt mu1_pt mu2_pt \
  --eta mu1_eta mu2_eta \
  --phi mu1_phi mu2_phi \
  [--mass mu1_m mu2_m] [-s cut] [-l N]

可視化

# キャッシュされたヒストグラム JSON から 1D プロット
root-cli plot1d /tmp/root_mcp/<hist>.json -o out.png \
  [-t "Title"] [-x "X label"] [-y "Y label"] [--log-y] \
  [--style default|publication|presentation]

# 2D プロット
root-cli plot2d /tmp/root_mcp/<hist2d>.json -o out.png \
  [-t "Title"] [--colormap viridis|inferno|...] [--log-z]

標準的なワークフロー

探索的解析

root-cli ls                                          # ファイルを発見
root-cli inspect data.root                           # トップレベル構造
root-cli branches data.root events --pattern "mu*"   # ブランチ一覧
root-cli stats data.root events met muon_pt jet1_pt  # 簡易チェック
root-cli sample data.root events --size 10           # データを確認

ヒストグラム→フィッティング→プロット(例:J/ψ ピーク)

root-cli histogram data.root events dimuon_mass \
  --bins 100 --range 2.8 3.4 --fit gaussian --fit-range 3.0 3.2

root-cli plot1d /tmp/root_mcp/dimuon_mass_hist.json \
  -o jpsi.png --title "J/ψ → μμ" --xlabel "m(μμ) [GeV]" --style publication

選択→エクスポートパイプライン

root-cli export data.root events met muon_pt muon_eta \
  --selection "met > 50 && muon_pt > 20" \
  -o selected.parquet --format parquet

シグナル/バックグラウンド効率

root-cli histogram2d data.root events muon_pt muon_eta -o
root-cli hist-arithmetic divide /tmp/root_mcp/sig.json /tmp/root_mcp/bkg.json

運動学的再構成

root-cli invariant-mass data.root events \
  --pt mu1_pt mu2_pt --eta mu1_eta mu2_eta --phi mu1_phi mu2_phi \
  --selection "mu1_pt > 20 && mu2_pt > 10" --limit 50000

主な動作と注意点

  • 中間 JSON は /tmp/root_mcp/ に保存される — histogram と fit コマンドは自動的にそこに書き込みます;plot1d/plot2d/fit はパスでそれらのファイルを消費します。
  • ジャグ配列(例:イベントごとのミューオンコレクション):read--flatten を使用するか、root-cli は統計情報/ヒストグラムで暗黙的に処理します。
  • モードフォールバック:root-cli は常に利用可能です;MCP サーバーが実行中である必要はありません。
  • トークン効率:カスタムロジックが避けられない場合を除き、生の PyROOT/uproot Python スクリプトではなく root-cli を優先してください。
  • 利用可能なフィットモデルgaussianexponentialpolynomialcrystal_ball — 非対称なテール(例:B メソン質量ピーク)には crystal_ball を使用してください。
  • --json 出力jq にパイプするか、プログラムで消費できます;スクリプト内でコマンドをチェーンする場合に便利です。

判定ガイド

タスク推奨コマンド
新しいファイルを初めて確認inspectbranches
簡易数値チェックstats
質量ピーク/シグナル抽出histogram --fit gaussian または crystal_ball
相関研究correlation
粒子再構成invariant-mass
下流の ML/pandasexport --format parquet
発表用プロットplot1d --style publication
データ vs MC 比較hist-arithmetic divide または asymmetry

ライセンス: MIT(寛容ライセンスのため全文を引用しています) · 原本リポジトリ

詳細情報

作者
MohamedElashri
リポジトリ
MohamedElashri/root-mcp
ライセンス
MIT
最終更新
2026/3/24

Source: https://github.com/MohamedElashri/root-mcp / ライセンス: MIT

本サイトは GitHub 上で公開されているオープンソースの SKILL.md ファイルをクロール・インデックス化したものです。 各スキルの著作権は原作者に帰属します。掲載に問題がある場合は info@alsel.co.jp または /takedown フォームよりご連絡ください。
原作者: MohamedElashri · MohamedElashri/root-mcp · ライセンス: MIT