高エネルギーの業界には、Paw とか Dis45 とか、 解析のための便利な道具がすでにある。 これらは十分使い込まれており、機能も豊富である。 ROOT も、それを対話的に解析を進めるためのワークベンチとして使う ことを前提としており、また、後から出てきたものであるからして、 機能はさらに豊富(なはず)である(残念ながら著者はその豊富な 機能を未だ使いこなせてはいないのであるが)。 しかしながら、現時点における機能の豊富さよりもさらに重要な点は、 その機能の拡張性である。 これはひとえに ROOT のオブジェクト指向の設計による。 今後、実験がより大規模になり、データー構造もより複雑化し、 データ解析もさらに大規模になると予想されることを考えると、 この拡張性が決定的に重要になる。 Paw とか Dis45 にはじきに限界がおとずれ、 そしてその限界は容易には克服できないということだ。
オブジェクト指向技術に基づくソフトウエアー開発の可能性は、もちろん ROOT だけではない。 その点で ROOT の特徴はどこにあるのであろうか? ROOT は単に対話的データ処理だけでなく、オンラインのデータ収集から、 オフラインでの大規模なバッチデータ処理を含むすべての実験の局面において その「枠組み」を提供することを目指している。 全ての基礎とういのが ROOT の語源のようだ。 ROOT チームがしばしば強調することは、「部品」でなく「枠組み」を 提供するという点である。 これはプログラムに規範を与え、統一性を維持する。 多人数による大規模なプログラムの開発にとっては重要な点である。
しかし、実際問題として最も重要な点は、 それが完全にフリーであることであろう。 ROOT は CERN の ROOT チームによって開発が進められており、 非商用目的での使用は無料である。 また、ソースも完全に公開されており変更も自由である。 これだけのものがただで使えるというのは、驚きである。
ROOT のホームページ
http://root.cern.ch/をご覧になることを勧める。 ROOT に関する様々な情報や、最新版の入手が可能だ。
これまでライセンスが必要であった CERNLIB も最近 GPL 化され、無償で 手にはいるようになったが、これはむしろ CERNLIB の役割もほぼ終りに 近づいたためと見るべきであろう。
能書きはこれぐらいにして、 実際の ROOT の使用感について少しコメントしておく。 対話的な使い方でまず気付く著しい特徴は、 コマンドライン言語が C++ であることだ。 日本ヒューレットパッカードの後藤さんという方が開発された 内蔵の C++ インタープリターによって、標準入力を1行1行 C++ プログラムとして実行する。 つまり、対話的に C++ の解析プログラムが開発でき、 必要とあればそれを後でバッチプログラムとして実行できるわけだ。 Paw や Dis45 と比べると少しタイプの量が増えるという欠点もあるが、 それとても C++ を学ぶものにとっては格好の道場となりうる。 それに、C++ プログラムをマクロとしてロードして実行できるので、 よく使う手続きはマクロ化しておけばよいわけである。 コマンドライン言語が C++ という完全なプログラミング言語である ということは、対話セッションでありながらすさまじい自由度 を持っているということだ。 やろうと思えば、対話セッションの中で、ほとんど何でも できてしまうのである。
一方、ROOT のセッションで作成されたプロットはマウスで いろいろ編集できる。 線やフィル、文字の属性を GUI で簡単に変えられ、カラーのきれいな図を 容易に EPS フォーマットで用意できる点は、Paw や Dis45 と比べて 大分使い勝手が向上している。
それでは早速使ってみよう。