1198■ 談話室

YMAP ROOT 講習会
JAXA 宇宙科学研究所

水越 彗太mizukoshi.keita@jaxa.jp
理研 仁科加速器科学研究センター

吉本 雅浩
masahiro.yoshimoto@riken.jp2023 年 (令和 5 年) 2 月 20 日

概要

122022 年春, 本年度で第 7 回目となるオンラインでの講義内容

ROOT 講習会というのは正確に実態を表しておらず,

ROOT 講習会を宇宙素粒子若手の会 (YMAP) 主催にて実際には不自由なく研究を進めるためのイントロダク

去 2 回の世話人を担当した吉本がこれまでの活動を総括やすい質問のしかたに始まり, タッチタイピング練習,開催しました. 3 回にわたり講師を担当した水越と, 過ションをめざしています. 具体的には, 答えが返ってきして報告します. ご存知のように, ROOT は素粒子・宇ターミナルとは何か, Unix のディレクトリ構造, パスレームワークです 。本講習会は, 主に研究室配属 1 年の, ROOT 以前の部分を丁寧に実施しています. その後,の使い方に習熟してもらい, スムーズに研究を行えるよ

ど一通り, 実際に講習会中に手を動かして自力で動作さ

宙物理・原子核分野での標準化されている唯一の解析フ
1目の学生 (4 年生, 修士 1 年生) を対象として, ROOTとは何か, C++や python の言語としての立ち位置など

ROOT を使ってヒストグラム, グラフ, Tree, Fitting なうになることを目指しています. したがって, 実際の内せるところまでやってもらっています. 今年度は全 6 回

C++の内容を含む, 解析イントロダクションです. 学部

第 0 回 水越彗太 CUI 環境, ROOT のインストール

ため, 物理解析を講義でやったことがないという学生が第 2 回 水越彗太 統計基礎, ヒストグラム

ような教育を各研究室で独立に行うコストを減らしたい

第 4 回 高橋光成 TTree，2D ヒストグラム

容は ROOT テクニックにとどまらず, 計算機の基礎やの課程は宇宙素粒子原子核分野に特化したものではないほとんどという現状があるのではないでしょうか。このと思い実施しています。もともとは名古屋大学の奥村曉
さんが名古屋大で行っていた講習会を若手の会でオンライン配信していましたが, 2020 年度から若手の会の会員が講師を行ない独自に実施しています. 本年度は 271 名の方に登録していただきました (指導者としての参加含む).

類似した講習会として, 粒子物理コンピューティングサマースクール, Geant4 初心者講習会が存在しますが,を実施しました.

第 1 回 水越彗太 解析環境, 解析のすすめかた

第 3 回 中村輝石 フィッティング，グラフ
第 5 回 濱田悠斗 PyROOT

2021 年講師: 水越彗太, 細川佳志, 中村輝石

2020 年講師: 水越彗太, 吉本雅浩, 小原脩平
ROOT のビルドも自力でやってもらうことを推奨し2 ,サポートしています. Virtual Machine を配ってもいいのですが, それでは具体的に何が行われているのかという裏側が完全に隠蔽されてしまいます. また, ほとんど特定の実験の学生の育成や, ソフトウェアのフィードバッの場合実際にデータ解析を Virtual Machine 上で行うこ

広く業界の新人に汎用的な知識を身につけてもらうことて作成されているということを説明し, 愛着のあるであ

1 少なくとも, TH1 と TTree に関して代わるものはないでしょう.

2 ROOT の公式サイトの雰囲気を見る限り, package manager やCVMFS でインストールすることが主流で, もはや自力でのビルドは推奨されていないようでもあります.

クを得ることに主眼を置いたこれらの講習会に対して,を目標としています.とはないでしょう. ROOT 自身も C++をコンパイルしろう自分のパソコン環境で ROOT をビルドしてもらっ2199ています. こんな理想を掲げてしまったせいで, 毎年冬続けるのは大変な苦痛です6 . 一応, 講習会の最後にアンになると, ROOT を Windows 10, 11 (WSL2), macOSケートを取り, 講習内容の理解度を記録し, 講義のレベビルドオプションを変えながらひたすらビルドしつつけ降に役立てています.

増えてしまいました.

ために, 講習会の動画は Youtube で登録者のみに限定しスに解析ツールが整備されている実験も増えてきていま

登録者数を超える回数視聴されており, 復習に利用されル が不足しており, 工夫しなければ速度も非常に遅いでる箇所で動画を止めて写経をしている人も多いようなの

いと思いますが, straight-forward な 方法ではないと感た, 10 月, 12 月ごろに再度視聴数が伸びる傾向が若干あ(x84-64/ARM), Ubuntu, CentOS, arch linux の OS でて最新の version でのビルドガイドを作るという雑用が現状では ROOT を題材にしています. python をベーすが, 未だ python には実験解析を行うのに必要なツー3

す. python を使うことが不可能であるということはな
4じています. 実際に python を使っている実験でも, 誰かルが適切だったかのフィードバックを受け取り, 次回以講習会日時に講義などがあり, 出席できなかった人のて公開しております. アクセス解析をみると, 明らかにているようです. スライドに重ためのコードを載せていで, これからも継続していきたいと考えております. まり, 5 月に何となくやったけど忘れてしまったことを, 実が裏で Fortran や C++のライブラリを書いていたり, 各際に自分たちで実験し始める頃にもう一度復習しているでしょうか. 私たちが (おそらく業界としても) 育てたい

文章があった方が効率よく情報を入手できると考えてい実験に特化した最適化コードを作製しているのではないのは, その “裏” を見にいく人材 なので, C++/ROOTを入り口として紹介しています.

5講習会では Slack を準備し, 講習会以外の時間でも参加者が質問ができるようにしています. 「コードの fooとか barって何ですか?」とか「ターミナルでパスワード入力画面になると突然キーボードが壊れて何も映らなくのではないかと思います. 正直なところ, 私は動画よりるのですが, 若い世代では動画で学ぶことに親和性がある人の割合が増えているようです. 資料を頑張って作り込んでいるのですが, むしろ動画作りを頑張った方がいいのかもしれません.

主として自学自習に任せていますが, 唯一宿題として,自由研究の提出を課しています. 具体的には, 物理に限なるんですけど?」のような, 研究室の教授様には聞け定せず, 自身でテーマを設定し, 自力でデータを収集し,室に配属し研究を始めてすぐに解決するようなことです

らっています. 例題をやるよりも自分のやりたいことをす。しかし, このような質問こそ, 新人にとってより身近めのよい助走になっていると自負しています. 学生さんないような基礎的な質問が大量にきます. 本来は, 研究が, 往々にしてそうした質問はすぐには聞けないものでな存在である学生やポスドクが運営している YMAP のROOT 講習会でこそ聞きやすいはずです. Slack では受

ROOT を使って解析して, レポートなどで提出しても調べる方が勉強になると思いますし, 研究を始めていくた「PEANUTSのテーマ設定も興味深く, 「抜け毛の本数」の主人公は Snoopy ではなく Charlie Brown なのは本当講者同士で質問を解決することもありました. また, マ「競馬」などバラエ
か」「Nintendo Switch の転売価格」て当たり前のことは書いていないものです. この文化,ら本業が忙しいのか, COVID-19 で大学が混乱していた

ニュアル/チュートリアル/ユーザーガイドには往々にしティに富んでおり, 講師の楽しみの 1 つです. 残念なが思想みたいなものは, 旧来先輩から後輩に脈々と継承さ2020 年以外の年の宿題提出率は高くありませんので, 学度一から取り戻すのは大変です. ROOT 講習会の枠組たいです.

れてきたものだと思いますが, 一旦断絶してしまうと再みでそれらを伝えていくことができることは有意義だと考えています.

講師は, 参加者の顔が見えない状態で約 90 分カメラに向かって喋ります. このコロナ禍で, 多くの教員は経験されていると思いますが, 反応が分からないまま喋り
3 例えば, “ まともな ” Fitting ツールや, データ構造など. 物理に興味のある学生が, 実験結果を出すためにデータ構造とアルゴリズム,統計を全部勉強して自力で実装ができるようになるまで結果を待てる状況はほとんどないと思われます.
4 コンパイラを信じて愚直なコードを書く
5 コンパイラに最適化を丸投げするのは畢竟本質を理解する人材ではないのではないかという批判もあるとは思います. 実験の現場では必要に応じて生成されるアセンブリコードを見て最適化の検証を行なっているはずです. しかし, 最初からそのハードルを求めるのは不可能です. 余談ですがコンパイラの最適化は高度に発達しているだけでなく, 頻繁に人間に良いコードを書かせようと命令してくるので, 巷に溢れる定義不明の AI よりは遥かに知性を感じます.

生さんにそれとなく提出を推奨していただけるとありが3

なぜ ROOT 講習会をしているのか

改めて考えると, 私 (や若手の会の会員) が ROOT 講習会を手弁当でやる理由はなんなのでしょうか. 少なくとも, 学生, ポスドク主体で結成されている本会において, 教育が職務として含まれている会員はほとんどいません. 常勤の職を探すことが難しい現状を鑑みると, 講師をしている者は 4 年生/修士 1 年生向けの講習会に時間を使わず, 研究を進めるべきです. むしろ, 業務外の余計なことをしているとして評価を下げるかもしれません.

6 なお, 例外的に水越は壁に向かって話すことはあまり苦痛ではないです.

3200

ROOT の開発元となんらかの契約があるわけではありませんし, ROOT への愛があるというわけでもありません. 両筆者は ROOT より python (numpy+matplotlib)を使ってきた時間の方が既に長くなってしまいました.

学会で講師ということがバレると飯を奢らざるを得なくなってしまうというデメリットも存在します. また, 才

そもそも学生さんに ROOT を使うモチベーションがないと思います. Follow-up の講習を 10 月ごろに実施するという発展も検討しています. ROOT 講習会を合宿形式で開催したり, プログラミングコンテストを行なったりすることは予算の都合上実現していません. そもそも, YMAP は研究会実施のため以外に予算を獲得してい気煥発な学生と話したり, 共に仕事をするのは本当に楽ないので, ROOT 講習会に予算はありません. Zoom ののコミュニケーションは限られます。あるいは, 私がソて副賞を出すため10 にも多少の予算がほしいのですが,しいものですが, 残念ながら講習会という性質上, 双方向フトウェアエンジニア的な思想に染まり, クソコードは有料アカウント9 を購入することや, 自由研究を表彰し具体的な方法には思い至っておりませんので, よいお知存在が許されないと思うほど傲慢7 になっており, ROOT恵があれば拝借したいです. 本活動を持続可能なものに間にも計算機にも思いやりの不足したコードを減らし,されることを避けたいと考えております. もし志のある講習会を行うことによって, アカデミックに蔓延する, 人していくためにも, 後の講師に講義以外の負担が当然視

将来私が参加する実験に十分に整備されたツールが存在方がおられましたら, ご寄付をお願いします. GitHubを求められるポスドク, 学生にとってそれは動機に繋がてお手続きいただけるとありがたいです. よろしくお願することを期待しているのでしょうか. 常に短期的成果8らないと思われます.

このように考えると, ほとんど唯一の ROOT 講習会

sponsors [https://github.com/sponsors/ymapteam] にいします.

を行う動機は, 後輩に良い道を作り, 業界を盛り上げていくことに貢献したいという気持ちがあることだと思います. 快く講師を引き受けてくれる若手の会のメンバーと (顕に確認はしていませんが) このような志を共有できることは嬉しいですし, ありがたいと感じています.

宇宙, 素粒子, 原子核業界の未来をこれからも共に作っていきたいと思います.

4

ROOT 講習会の今後ROOT 講習会を発展させていくには多様な方向性が考えられると思います.

現状, 講習の時間的制約等から, 取り入れたいし, 取り入れるべきなのにもかかわらず, 実現していないことはたくさんあります. git で version control する方法に慣れておくべきだと思いますし, cmake で Cross-platform でbinary を作る方法も知っておくべきです. 確率, 統計について体系的に講義することもできていませんし, Fittingの意味も十分に伝えることはできていないでしょう.

講師がしたいという方がいれば是非 (可能なら YMAPに入っていただいて) お願いしたいと考えております.

よりよい講習会にするため, ポジティブな意見に限らず, ROOT なんか遅れているというようなネガティブな

図 1: YMAP GitHub sponsors への QR コード.
実際に講師については, 世代交代が進んでいます. 私たちも適当なところで楽隠居 (という名の自分のプロジェクトへの集中) をさせてもらえると期待しています. 今

ROOT 講習会を受けた世代が, YMAP に入会して, 数年後に講師をしてくれれば, これ以上の幸せはありません.

来年度も ROOT 講習会をやりますので, ぜひ対象者への周知をお願いします.

https://github.com/ymapteam/root lecture

参考文献[1] Tom Christiansen, Brian d Foy, Larry Wall,and Jon Orwant, ”Programming Perl: Unmatched power for text processing and scripting”, O’Reilly Media, Feb. 2012

意見もいただけると幸いです.

研究室によっては, 4 年生前期は座学と院試勉強が中心で, データ解析を始めていないというケースもあるかと思います. そのような環境では, 5 月の開催時期では,7 プログラマの 3 大美徳のひとつと呼ばれます. 初出は–“ We willencourage you to develop the three great virtues of a programmer: laziness, impatience, and hubris. ”[1]
8 着任後 3 年

9 参加者は 100 名を超えるため, ビジネスプラン (2700 円/月) 3ヶ月分が必要
10 現状講師の自腹