くまのためのROOT入門 / ROOT for Bearginner
ROOTなどの高エネルギー物理学分野で使っているツールの使い方をまとめているドキュメントです。 もともとは古巣の研究室に設置したShotakahaDokuWiki(アクセス不可)でまとめていた内容で、 現在はKumaROOT - Read the Docsで公開&更新しています。
僕が研究室に入りROOTを使いはじめたときに、先輩から最初に渡されたのが「猿にも使えるROOT」(通称:さるROOT)でした。 そのタイトルを意識して「くま」にしました。 「さるROOT」の次は「くまROOT」を読んでもらえるように頑張りたいと思います。
想定している読者は、ちょっとだけROOTを使ったことがある学生/研究者です。 パッケージやクラスの網羅的な説明は公式ドキュメントに任せ、 ここでは「〇〇したい」という目的ベースで整理することで、 「逆引き辞典」として使えるものを目指したいと思います。
- Read the Docsににログインしてdashboardを開く
- プロジェクトの
KumaROOTを選択 ビルドタブを開くビルドバージョン:をクリックする
make latexpdfしてPDFを作成する- 作成したPDFを
source/_static/にコピーする make htmlしてウェブページを作成する- リモートサーバーに
rsync --delete -auvzでアップロードする
$ uv run bash deploy.shこのドキュメントは
Sphinxというドキュメント作成ソフトを使っています。
文書本体にはreStructuredText(reST)とMarkdown(md)という軽量マークアップ言語を使っています。
$ git clone git@github.com:shotakaha/kumaroot.git
$ cd kumaroot
$ uv sync --all-extras
$ source .venv/bin/activate- GitHubのリポジトリをクローンする
uvを使って依存パッケージをインストールする
$ cd kumaroot
$ git branch ブランチ名
$ git switch ブランチ名
$ code .
// docs/source/ツール名/ツール名-usage.mdを編集する
// docs/source/ツール名/ツール名-コンテンツ名.mdを新規作成する
$ git add 編集したファイル
$ git commit
$ git push
// GitHub上:Pull Requestを作成する
// GitHub上:テストをパスしたら即マージするmainリポジトリからブランチを作成するツール名/ツール名-usage.mdのtoctreeにファイル名を追加するツール名/ツール名-コンテンツ名.mdを作成する- 変更箇所を
git add&git commit - GitHubに
git pushし、プルリクエストを作成する - 自動テストをパスしたら即マージする
task docs:servetask docs:serveは自動的にdocsディレクトリに移動し、ライブリロードでドキュメントのプレビューを開始します。
$ task codetask codeはVS Codeを起動します。
VS Code内でターミナルを開き(command + j)、task docs:serveを実行してライブプレビューを開始できます。
task docs:serve # Preview docs locally with live reload
task docs:build # Build docs as static HTML
task docs:pdf # Build docs as PDFバージョン番号は カレンダーバージョニングと セマンティックバージョニングを 組み合わせて使うことにしました。
Major: 年Minor: 月Patch (feat / fix): 文章を修正した場合
バージョンアップするタイミングは気まぐれです。 とりあえず月1回くらいにしようかな。
task bump:check次のバージョンバンプをプレビューします。実際には変更を行いません。
task bump:patch変更がある程度貯まったらパッチバージョンを更新してください。
バージョンバンプ時にCHANGELOG.mdが自動的に更新されます。
task bump:minor毎月1度、マイナーバージョンを更新してください。
バージョンバンプ時にCHANGELOG.mdが自動的に更新されます。
task bump:major毎年、メジャーバージョンを更新してください。 通常は年が変わるときに実行します。
task pre-commit:setuptask pre-commit:setupでpre-commitフックをインストールします。
task pre-committask pre-commitで全ファイルに対してpre-commitフックを実行します。
task pre-commit:updatetask pre-commit:updateでpre-commitフックを最新バージョンに更新できます。
task deps:setuptask deps:setupでPython環境をセットアップできます。
task deps:checktask deps:checkで更新が利用可能な依存パッケージを確認できます。
task deps:updatetask deps:updateで依存パッケージを更新できます。
更新されたuv.lockをGitにコミットしてください。
コンテンツのファイル名は、次のような命名規則で管理することにしています。
docs/source/ツール名/ツール名-内容.md
ツールのインデックスはツール名/ツール名-usage.mdにします。
このファイルにtoctreeを記載しています。
root/root-usage.md
sphinx/sphinx-usage.md
python/python-usage.md
pandas/pandas-usage.mdツールのインストール方法はツール名/ツール名-install.mdとしています。
root/root-install.md
sphinx/sphinx-install.md
python/python-install.md
pandas/pandas-install.mdツールの使い方は「やりたいこと」を軸にファイルを分けることにします。 とりあえず作成してみて、あとで分割/統合して整理しなおすこともあります。
sphinx/sphinx-theme.md
python/python-pathlib.md
command/command-find.mdごくまれにツールの使い方を説明した画像やスクリーンショットを使っています。
ツールの中にfigという画像用のディレクトリを作成し、その中で管理するようにしています。
emacs/fig/mac-key01.png
emacs/fig/mac-key02.png
git/fig/git-status.png