くまのためのROOT入門 / ROOT for Bearginner
ROOTなどの高エネルギー物理学分野で使っているツールの使い方をまとめているドキュメントです。 もともとは古巣の研究室に設置したShotakahaDokuWiki(アクセス不可)でまとめていた内容で、 現在はKumaROOT - Read the Docsで公開&更新しています。
僕が研究室に入りROOTを使いはじめたときに、先輩から最初に渡されたのが「猿にも使えるROOT」(通称:さるROOT)でした。 そのタイトルを意識して「くま」にしました。 「さるROOT」の次は「くまROOT」を読んでもらえるように頑張りたいと思います。
想定している読者は、ちょっとだけROOTを使ったことがある学生/研究者です。 パッケージやクラスの網羅的な説明は公式ドキュメントに任せ、 こでは「〇〇したい」という目的ベースで整理することで、 「逆引き辞典」として使えるものを目指したいと思います。
KumaROOT
を選択ビルド
タブを開くビルドバージョン:
をクリックするmake latexpdf
してPDFを作成するsource/_static/
にコピーするmake html
してウェブページを作成するrsync --delete -auvz
でアップロードする$ poetry run bash deploy.sh
このドキュメントは
Sphinxというドキュメト作成ソフトを使っています。
文書本体にはreStructuredText(reST)
とMarkdown(md)
という軽量マークアップ言語を使っています。
$ git clone git@github.com:shotakaha/kumaroot.git
$ cd kumaroot
$ poetry install --no-root
$ poetry shell
poetry
を使って依存パッケージをインストールする$ 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
git push
し、プルリクエストを作成する$ cd kumaroot
$ poetry shell
(.venv) $ cd docs
(.venv) $ make livehtml # 自動でブラウザが開く
poetry shell
で仮想環境を立ち上げるmake livehtml
でライブリロードしながら編集内容を確認する$ cd kumaroot
$ code .
virtualenvs.in-project = true
が前提command + j
)(.venv) $ cd docs
(.venv) $ make livehtml
make livehtml
でライブリロードしながら編集するなんとなくセマンティックバージョニングを使おうとしています。
Major (feat)
: 新しい章を追加した場合Minor (feat)
: 新しい節を追加した場合Patch (fix)
: 文章を修正した場合バージョンアップするタイミングは気まぐれです。 とりあえず月1回くらいにしようかな。
$ poetry export -f requirements.txt --output requirements.txt
Read the Docsでビルドする際に、requirements.txt
を使って必要なパッケージを取得しています。
なので、パッケージを更新したらrequirements.txt
も更新する必要があります。
poetry export
のサブコマンドで生成し、Gitにコミットします。
コンテンツのファイル名は、次のような命名規則で管理することにしています。
docs/source/ツール名/ツール名-内容.md
ツールのインデックスはツール名/ツール名-usage.md
にします。
このファイルにtoctree
を記載しています。
root/root-usage.md
sphinx/sphinx-usage.md
python/pyhton-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