測定器シミュレーターGeant4における

可視化とGUI

 

福井大学工学部 情報工学科 田中

鳴門教育大学 長松 正康

 

1.はじめに

Geant4とは、現在開発が進行中の、大規模測定器シミュレーターであり、今後の高ネルギー物理学実験のコンピュータ・シミュレーションにおいて、中核的な存在となるといわれているソフトウェアです.宇宙開発や医療の分野への応用も期待されています.Geant4開発計画は、世界の15カ国から約100人の研究者が参加するという巨大なものです.このように多くの、しかも国際的に散在した人達が、ひとつの巨大ソフトウェアを分業で作り上げるというのは、過去に例がない壮大な実験でした.そして、それは大成功のうちに今年末に完結しようとしています.成功の鍵となったのは、オブジェクト指向技術の全面的な採用でした.Geant4開発計画のより詳しい話や関連文献に関しては、文献[1][2]をご覧下さい.

 

(注:約100名の研究者の中には,多くの分野のスペシャリストが含まれています.物理,数学,情報工学,宇宙科学などの分野です.医療の分野の人々との協力も計画されています.各分野の研究者とともに,ソフトウエアを専門とするエンジニアも参加しています.Geant4計画への参加者は,計画進行に連れて急速に増えました.Geant4開発計画は,分野を超え,国境を越えた巨大プロジェクトなのです.)

 

さて、本稿では、Geant4における測定器シミュレーション等の可視化とGUI(グラフィカル・ユーザー・インターフェース)について解説します.これらは、Geant4とユーザーとの接点にあたる部分です.ユーザーは多くの場合、GUIを通じてGeant4に要求を渡します.また、測定器の空間的な部品配置やシミュレーションの様子を、可視化によって視覚的に確認します.従って、可視化とGUIは、Geant4の使いやすさを大きく左右します.しかも、Geant4の可視化とGUIには、他のソフトウェアとは異なる、多種多様な、しかも高いレベルの機能が要求されます.そこで、Geant4開発計画においては、筆者らも属する、可視化とGUIをそれぞれ担当する専門のグループを設置し、Geant4ユーザーを支援する様々な機能を開発・実装してきました.以下では、その成果を報告します.

 

2.Geant4における可視化

. 可視化の基本方針

Geant4の可視化機能が使われる目的は、実に様々です.ある場合には、デモンストレーション用に使われます.この場合は、多少画面が粗くても、とにかく高速にシミュレーションを可視化することが要求されます.またある場合には、論文作成や学会発表用の図の作成に使われます.この場合は、多少時間がかかっても、精密で高品位な図をPostScriptプリンターなどで印刷できることが要求されます.インターネットのユーザーは、リモートホストで実行させたシミュレーションの様子を、ネットワーク経由で、自分のマシンのWWWブラウザ内で見たいでしょう.シミュレーションの解析の際には、高エネルギー粒子と測定器の衝突部分の色を変えてハイライトさせることも必要です.Geant4にインストールされた測定器部品群の空間的な配置をデバッグするためには、カメラを測定器内で自由に移動・回転させる機能や、部品同士の衝突部分をハイライトする機能が要求されます.

一方、Geant4は、ひとつの大規模高エネルギー実験に要する時間を考えれば、20年程度の時間スケールでの使用に耐えるものでなくてはなりません.しかし、コンピューター・グラフィックスは、あらゆる分野の中で最も急速に発展しているものひとつで、だれも20年後の標準的な環境を予測することはできません.この数年間でも、かつて広く使われていたPHIGS[3] という3次元グラフィックス用のライブラリーはほとんど使われなくなり、変わってOpenGL [4]が事実上の標準となりました.近い将来、Java言語 [5] 3次元グラフィックスを標準でサポートするようになり、実行スピードに問題がなければ、また標準が変わるかも知れません.また、かつて、数百万円もする専用マシンが必要とされたヴァーチャル・リアリティー(仮想現実感)的な可視化も、VRML[6]の急速な発展と普及により、数十万円のPCで、しかも安価または無料のWWWブラウザを用いて行えるようになってしまいました.

このような、要求の多様性と変化の速さに対応することは、Geant の旧バージョン(Geant3)のように、組み込み型のグラフィックス・システムひとつだけでは不可能です.そこで、Geant4では、現存のあるいは将来現れる、いろいろなグラフィックス・システムを簡単に接続したり切り離したりできる汎用的なインターフェースを用意することにしました.これにより、ユーザーは、自分の目的や環境に合ったグラフィックス・システムを自由に選択することができます.現段階でも、すでに多数のグラフィックス・システムが利用可能ですし、わずかなC++ コードを書くことで、選択肢を増やすこともできますから、将来的な変化にも対応できます.

 

. 可視化の仕組み

.. 可視化マネージャー

Geant4の可視化は、“可視化マネージャー”というクラスが統括します.ここで、“クラス”とは、オブジェクト指向プログラミングにおける部品化されたプログラム単位です.手続き型のプログラミングを行うための言語であるFORTRAN では、サブルーチンがプログラム単位となりますが、C++などのオブジェクト指向言語では、クラスがプログラム単位となります.可視化マネージャーは、ユーザーや、あるいはGeant4の物理現象や3次元幾何学計算を担当するクラスなどから、可視化に関する様々な要求を受け取り、これらを整理して、以下に述べる“抽象可視化ドライバー”に渡します.

 

.. 抽象可視化ドライバー

抽象可視化ドライバーとは、前述の、Geant4とグラフィックス・システムとの汎用的なインターフェースのことです.これは、3つのクラスからなっています.まず、G4VGraphicsSystem というクラスは、グラフィックス・システムを初期化します.例えば、ウィンドウを開いて背景色を決定します.次に、G4VScene というクラスが、描画データを作成します.データを作成するだけで、まだ描画はしません.最後にG4VView というクラスが、描画を実行します.この3つのステップは、現代的なグラフィックス・システムのほとんどが採用している描画手順のエッセンスを取り出したものです.描画データの作成と描画の実行を分けることで、いろいろなことが可能になります.例えば、描画データの作成時に、描画対象の全体像を考慮しながら特殊効果をとりいれたり、測定器全体を視野におさめるための適当なカメラ位置や焦点距離をあらかじめ自動算出しておくこともできます.また、一度作成した描画データを微修正するだけで、色やカメラ・アングルを変えて高速に再描画することが可能になります.

.. 複数のグラフィックス・システムへの同時対応の仕組み

可視化は、前述のように、(1)グラフィックス・システムの初期化、(2)描画データの作成、(3)描画の実行、という手順を踏みます.そして、それぞれのステップにおける具体的な処理は、もちろん、使用するグラフィックス・システムによって全く異なります.この違いは、オブジェクト指向プログラミングの“継承”というテクニックで吸収します.

各グラフィックス・システムに対して、抽象可視化ドライバーの3つのクラスG4VGraphicsSystemG4VSceneG4VView の基本設計を受け継いだ、そのグラフィックス・システム固有のクラスをそれぞれ作ります.例えば、高品位出力用のFukui レンダラー([7][8])というグラフィックス・システムの場合、G4FukuiRendererG4FukuiRendererSceneG4FukuiRendererView という3つのクラスが用意されています.これらには、Fukuiレンダラーに固有の処理のみが記述され、それ以外は、自動的に抽象可視化ドライバーの処理が採用されます.一方、可視化マネージャーから見ると、G4FukuiRendererG4FukuiRendererSceneG4FukuiRendererViewは、あくまでも、それぞれG4VGraphicsSystemG4VSceneG4VView、すなわち抽象可視化ドライバーの一種に見え、そのつもりで可視化の指示が送られます.このため、可視化マネージャーは、グラフィックス・システム固有の事柄を知る必要が全くありません.

新たなグラフィックスシステムをGeant4に接続したい場合には、そのグラフィックス・システム固有の処理のみを記述した3つのクラスを作ればよいことになります.

 

. Geant4が可視化できるもの

Geant4では、基本図形の組み合わせによって、測定器や高エネルギー粒子の軌跡、また、両者の衝突点などを可視化します.非常に多くの基本図形が利用可能です.立体では、直方体、円錐、平行六面体、球、円環、非対称角錐台、対称角錐台、管、および任意回転体がサポートされています.この他に、連続線分群や、円または正方形による3次元マーカーも描画できます.通常、立体は測定器部品、連続線分群は高エネルギー粒子の奇跡や座標軸、3次元マーカーは、高エネルギー粒子と測定器の衝突点や、検出エネルギーの大きさの可視化に用いられます.また、文字列の可視化も可能です.3次元空間の任意の位置に、好みの大きさと色で文字列を描画させることができます.これは、可視化したシミュレーションの注釈や、タイトルの作成に使用します

Geant4の可視化がサポートする基本図形は、ほとんどの高エネルギー実験の測定器シミュレーションを可視化するのに十分なものです.現在、LHC計画のATLAS実験[9]のシミュレーションをGeant4で行う作業が準備中ですが、前述の基本図形の一部を使うだけで、ATLAS測定器とそのシミュレーションを可視化できることが確認されています.可視化の例は、WWWページで多数公開されていますから、是非ご覧ください[10]

 

.. 現在利用可能な可視化ドライバーとグラフィックス・システム

以下では、現在すでにGeant4で利用可能な可視化ドライバーとグラフィックス・システムを紹介します.紙面の関係で、とてもすべてを詳しく紹介することはできませんが、Geant4の可視化機能が強力であることはお分かりいただけると思います.

 

.. OpenGLドライバー [11], [12]

現在、3次元グラフィックスの世界で標準的に用いられているライブラリーであるOpenGL をベースに、Geant4の可視化で要求されるさまざまな機能が実装されています.非常に多くのオプションが用意され、それらがすべて、Geant4GUIからコントロールできます.高速モードを備えていることから、デモンストレーションにもよく使われています.図1にATLAS測定器の可視化例を示します.

図1 OpenGL ドライバーによる可視化例

 

.. Fukuiレンダラー DAWN および DAWNドライバー([7], [8]

Fukuiレンダラー DAWNは,高品位出力用のグラフィックス・システムであり,DAWNドライバーは,DAWNへのインターフェースです.通常のグラフィックス・システムでは、多数の細かい描画点を走査線に沿って描いていくことで絵を作る、いわゆる“ラスター・グラフィックス”を行います.これに対し、DAWNは、図形の辺や面をひとつずつ、幾何学的な定義に忠実に描いていく、“ベクトル・グラフィックス”を採用しています.これにより、DAWNでは、絵の解像度が描画点の大きさに制限されることが無く、論文作成、学会発表用の高解像度の図が容易に作成できます.また、図の一部を大きく拡大しても全く解像度が落ちませんから、測定器データの細部のデバッグに便利です.図2は、ATLAS実験を可視化したものです.測定器は中央で自動切断してあります.赤い線はミュー中間子の軌跡を表しています.

図2 Fukui レンダラー DAWN による可視化例

 

2.4.3 VRMLドライバー [13]

Geant4VRML形式のファイルを出力させ、これを自動的にローカルまたはリモートホストのWWWブラウザに転送し、可視化を行います.対話的なカメラ・コントロール、すなわち、測定器の内部を自由に飛行したり、測定器をマウスでつかんでぐるぐる回したりすることが可能です.また、ネットワーク経由での可視化処理の分散化を実現しています.例えば、日本にいる研究者が、大きなデータベースと接続したGeant4をヨーロッパの研究所にある高性能なコンピュータで実行させ、可視化処理のみを目の前のWWWブラウザ内で行わせることが可能です.Geant4で作成したVRML ファイルがWWWページ上で公開されていますから、VRML対応のWWWブラウザで覗いてみてください[10]

 

2.4.4 衝突の自動検出アプリケーション DAVID ([14])

DAVIDは、測定器の部品同士に衝突があった場合、衝突に関与している基本図形を自動検出し、色などを変えてハイライトして可視化させるためのアプリケーションです.Geant4のDAWNドライバーを、DAVIDへのインターフェースとして使用することができます.測定器部品の形状データや空間配置のデータを、手作業でGeant4にインストールする場合、最も時間のかかる作業が衝突の除去ですが、この作業を強力に支援するものです.図3にハイライトの例を示します.赤いワイヤーフレーム表示になっている部分が、衝突に関与している基本図形を示しています.

図3 衝突部をハイライトさせた例

 

.. OpenInventor ドライバー [15]

科学技術用可視化ライブラリーとして実績のあるOpenInventor ライブラリをもとにして開発された,Hepvisクラスライブラリーを利用して可視化を行うものです.VRML ドライバーと同様に、マウスによる対話的なカメラ・コントロールが可能です.立体視用の眼鏡をかけて立体的な表示を体感できる機能もサポートされています.また、マウスで選択した測定器部品の色や描画スタイルを対話的に変更することができます.拡張性に優れているのも特徴です.可視化の例は、WWWページをご覧ください [10].

 

.. OPACS ドライバ([16]

イベント・ディスプレイの分野で実績のあるOPACS ライブラリを使って可視化を行います.独自のコマンド・シェルやGUIを持ち、対話性的な操作に優れています.

 

.. G4Ray ドライバー [17]

Geant4tracking機能をそのまま利用して、レイトレーシング・アルゴリズムを実行するというユニークなものです. まだ初歩的な段階ですが、レイトレーシング・アルゴリズムの特徴である写実的な高品位描画を目指して開発が進行中です.

 

. Geant4GUI

3. Geant4 のGUI に要求される条件

ユーザー・インターフェースは、プログラム本体とユーザーとの仲立ちをする部分であり、操作性を考える上で鍵になる部分と言えます.Geant4 の 仕様書においても、従来の文字型インターフェースに加えて、GUIによるユーザー・インターフェースが必須のものとして位置付けられています.このプログラム本体となるGeant4は

(R1) 複雑な物理シミュレーションを行う、

(R2) ユーザーが目的に応じてソースコードを作成あるいは修正するツール

キットとして提供される、

(R3) 計算パワーへの要求が厳しい、

(R4) 汎用のGUIライブラリなどに比べてはるかに長いライフサイクルを持つ、

(R5) 結果に対する高い信頼性が求められる [1]、

という特質を持っています.

一方、いわゆるGUIはオブジェクト指向の適用で大きな成果をあげた分野の一つであり、計算などを行う本体部分(Model)と、その外見や制御(View, Control)を明確に切り分けた MVCモデルなどの強力なモデルが知られています([18]、[19]、[20]).しかしながら、Geant4における上記の要求条件を同時に満たしつつ、使い易いGUIを提供するためには、問題領域の分析に始まる基本設計の段階からの根本的な検討が必要であり、次節以降に述べるように、物理シミュレーションのGUIに求められる諸条件を考慮した設計がなされています.

 

32 Geant4 GUI の概要

Geant4においては、GUIや文字端末を含むユーザー・インターフェースは、インターフェース・カテゴリに分類されており、可視化を担当する可視化カテゴリと同様に、抽象化された枠組みを採用した拡張性の高いものになっています.

 

3.2.1 アプリケーション・プログラマーーとGUI 

Geant4では、前節(R2)で触れたように、(a)エンドユーザー(レベル1)、(b)測定器の定義やユーザーが記述した処理、新しいコマンドの登録などのためにソースコードを自分で記述するアプリケーション・プログラマーー(レベル2)、そして(c)全体の枠組を記述する フレームワーク・プロバイダー(レベル3) という3種類のユーザーを想定しています[1].エンドユーザーにとって、シミュレーションは、階層的なメニューツリーとして作成されたコマンドを起動し、その結果を見るという操作の繰り返しにより進行していきます.これに対してアプリケーション・プログラマーーにおいては、必要に応じて自分がシミュレートする測定器に関するコマンドと、そのパラメータの性質を登録することができます.例えば、

・ あるパラメータがどのような型を持っているか

- 粒子の名称ならば文字列型を指定し、イベントの回数は、整数型を指定
する.

・ そのパラメータの取り得る範囲や、パラメタの候補

- コマンドの引数として選択できる粒子の種類を記述する.

などの情報を定められた書式に従って、C++のソースコードの形で記述します.GUIは、起動時にこれらの情報をGeant4本体(Model)から取り出し、それを反映させたGUIメニュー(View)を自動的に作成します.従って、ユーザーはGUIのことを一切意識することなく、物理シミュレーションに専念できます.

 

3.2.2 実行時における動的な処理への対応

Geant4においては、さらに一歩進んで、実行時にもコマンドなどに関する情報を切替えることができます.文献[1]にあるように測定器からの信号のシミュレーション(digitization)において、実行中に自分の測定器の読み出し回路に「切替え」たり、必要に応じて可視化システムをオフにしてメモリを解放したりということが可能になっていますので、GUIもこれに対応して実行時においても動的にメニュー構成などの更新を行っています.オブジェクト指向技術の採用により、このような柔軟な処理を比較的容易に行うことができるようになりました.

 

3.2.3 Geant4における状態の遷移

GUI の場合には、上記のような構成に加えて、Geant4本体の様々な実行状態に応じた処理が必要になってきます.Geant4はこのような状態マシンを意識した設計になっており、「初期化前」なのか「イベント生成中」をなのかなどの「状態」を明確に区別し、それぞれの状態において実行できるコマンドや実行できないコマンドを登録します.従ってGUIでは、こうした情報をもとにGUIメニューを必要に応じて更新し、ユーザーの誤操作防止と信頼性の向上(R5)を図っています.このような処理を行うと、実行速度への影響が気になりますが、これらの処理はすべてシミュレーションの「アイドル状態」において行われるよう設計されており、GUIの操作性と実行速度(R3)の両立を図っています.

 

33 選択できるGUI

Geant4専用のGUIとして開発されたものとしては、CERNで開発されたG4-XVT GUI[21]、鳴門教育大学及び福井大学で開発されたMomo(GAG, GGE)[22]があり、この他、Orsay で開発されたOPACS[16]などのGUIも選択できます.

 

331 G4-XVT GUI [21]

CERNの G.Cosmo と S.Prior によって開発が行われました. Geant4とGUIを名前付パイプ呼ばれる方法で接続し、Geant4のコマンドをメニューとボタンパレットの形で、動的に処理できます.基本的にはプラットフォームを選ばないはずですが、現在のところHP-UXとIBM-AIXでテストされています.

 

3.3.2 Momo(GAG, GGE) [22]-[28]

鳴門教育大学、都立大学、都立大学のメンバーによって開発が進められてきました.高品質の部品を持つGUI作成用のツールキットとして知られるTcl/Tk[29]を用いたGUIと、現在急速に発展しつつあるJava言語[5]を用いたGUIの開発が進んでいます.これらは, 基本的に同じ機能を提供し, ユーザーの環境や目的, 好みによって使い分けられるようになっています.Momoに関する詳細は, 3.4節を御覧下さい.図4と5に実行例を示します

 

図4 GAGの実行例

 

図5 GGEの実行例

 

3.3.3 OPACS - Wo [16]

これは可視化の節でも登場した OPACS ライブラリの中に含まれる Wo パッケージを用いるものです.GUIメニューを作成するために 独自のodb形式のファイルを必要とするなど、必ずしも3.2節で述べた仕様には一致しない点もありますが、可視化と一体化した特長のあるGUIとして、積極的な開発が行われています.

 

3.4 Momo における設計と実装 [22]-[28]

3.4.1 概要

ここでは開発初期の段階から3.1節及び3.2節で述べたような条件を考慮して設計されたGUIであるMomoを例として、Geant4 GUIの設計と実装について説明します.MomoはGeant4のためのシミュレーション環境であり、主にレベル1ユーザーがGeant4 のコマンド操作を行ってシミュレーションを実行するためのGAG(Geant4 Adaptive GUI) と、主にレベル2ユーザーがごく簡単な測定器を定義するために使用できるGGE(Geant4 Geometry Editor)から構成されています.また、プロセス分離モデルを採用してGUIとGeant4本体を完全に分離し、その間のプロトコルを明確に規定することにより、信頼性(R5)と拡張性の向上を図っています.

 

3.4.2 文字端末の利点を生かしたGUI

前述のようにGeant4はコマンドツリーまたは対話ツリーと呼ばれるツリー構造のコマンド体系を採用しており、(R1)で述べたような複雑な問題領域におけるユーザー・インターフェースとして有効であることが知られています.さらに、複雑なシミュレーションにおいては、シミュレーションの記録を残し、それを再現できることも重要になります.GAGにおいてはこのような我々が慣れ親しんできた文字端末におけるインターフェースの利点を生かした実装を行っています.

 

3.4.3 カーネルとGUIを分離したプロセスモデル

Geant4は前述のように複雑なモデルであり、計算負荷も大きい(R3)ことから、Geant4本体とGUIを完全に分離した実装を行っています.これは、MVCモデルのひとつの自然な帰結です[20].

このことは、分散処理の実装を容易にします.すなわち、Geant4のプロセスとGUIのプロセスをネットワーク接続された計算機で別々に動かし、プロセス間通信によって互いに情報をやり取りすることで、Geant4シミュレーション自体とGUIの、分散処理が実現できます.これによって例えば、手元にあるローカルなマシン上でGUIを起動し、計算負荷の大きいGeant4本体を別の計算サーバーで動かすといったことが可能になります.我々は既に、JAVAの RMI(Remote Method Invocation)という機能を用いて、このような分散処理に成功しています.ユーザーは、まずGUIプログラムを起動した後、そのGUIの操作によって希望するGeant4の本体を起動/終了させ、一連のシミュレーションを行います.これはWWWブラウザの操作などと同じですので、理解しやすく、拡張性にも優れています.

 

  1. おわりに

Geant4の可視化とGUIには、最近のコンピュータ・サイエンスの成果が多く取り入れられ、高機能・多機能で使いやすいものになっています.多くの選択肢が用意され、また、これまで紹介してきたような、測定器シミュレーターとしてのGeant4を使いやすいものにするための工夫が、数多く取り入れられています.さらに、将来的な発展も考慮に入れた柔軟な設計がなされています.今年の7月末に、Geant4はベーター版が一般公開され、すでに多くの研究者がGeant4を使い始めています.そして,12月には,公式版がリリースされます.ユーザーとGeant4の接点である可視化機能とGUIは、ユーザーの意見を取りいれて、さらに進化すると思われます.

 

本稿の作成にあたり、多くの貴重な助言をいただいた,高エネルギー加速器研究機構の尼子克哉氏と鳴門教育大学の吉田肇氏,福井大学情報工学科の山本弘明氏に感謝いたします.

 

参考資料

[1] 尼子克哉 Geant4 測定器シミュレーターの国際共同開発”,
High Energy News, 1998年6月号.

[2] 尼子克哉 , 佐々木節 “測定器シミュレーターの国際共同開発(1), (2)”
パリティー
Vol.13, No.3, 1993, pp.70-74: Vol.13, No.4, pp.70-74

[3] S.S. Abi-Ezzi and A.J.Bunshaft, An Implementers View of PHIGS,
IEEE CG & A, . Vol.6, No.2, pp.12-23.

[4] OpenGL に関する情報は、以下から入手可能です:http://www.opengl.org

[5] Javaに関する情報は、以下から入手可能です: http://java.sun.com

[6] VRMLに関する情報は、以下から入手可能です:http://www.vrml.org

[7] S. Tanaka and M. Kawaguti, DAWN for GEANT4 visualization,
in: Proceedings of Computing in High Energy Physics '97.

[8] Fukuiレンダラー DAWN はインターネット上で公開されています:
http://geant4.kek.jp/~tanaka/DAWN/About_DAWN.html ,
ftp://i1nws2.fuis.fukui-u.ac.jp/pub/graphics/fukui_graphics_system/

[9] ATLAS 実験に関する情報は、以下から入手可能です:
http://atlasinfo.cern.ch/Atlas/Welcome.html ,
http://arkhp1.kek.jp

[10] Geant4 福井大学グループのホームページです: http://geant4.kek.jp/~tanaka

[11] J. Allison, Visualization in GEANT4
in: Proceedings of HEPVIS96, http://hepwww.ph.man.ac.uk/~johna/ .

[12] J. Allison and S. Tanaka, GEANT4 Visualization, in: Proceedings of
Computing in High Energy Physics '97.

[13] S. Tanaka, Status of GEANT4 Visualization in: Proceedings of HEPVIS98,
http://www-sldnt.slac.stanford.edu/hepvis/paper/index.asp .

See also http://geant4.kek.jp/?tanaka/GEANT4/VRML_file_driver.html ,

http://geant4.kek.jp/?tanaka/GEANT4/VRML_net_driver.html .

[14] 衝突自動検出アプリケーションDAVIDはインターネット上で公開されています:
http://geant4.kek.jp/~tanaka/DAWN/About_DAVID.html ,
ftp://i1nws2.fuis.fukui-u.ac.jp/pub/graphics_fukui_graphics/david_0.40.tar.gz .

[15] J. Boudreau, A. Boehnlein, J. Kallenbach, L. Taylor, G. Alverson

and X. Fan,
The Hepvis Class Library for Event Visualization,
in: Proceedings of Computing in High Energy Physics '97.

See also http://cactus.phyast.pitt.edu/?joe/hepvis/hepvis.html ,

http://www-sldnt.slac.stanford.edu/hepvis/paper/index.asp .

[16] G. Barrand, The o Packages and GEANT4, in: Proceedings of
Computing in High Energy Physics '97.

See also: http://www.lal.in2p3.fr/OPACS .

[17] John Allison and N. Savvas, talk and demonstration at the GEANT4 Workshop
at SLAC (1997).

[18]青木淳 "オブジェクト指向システム分析入門", ソフトリサーチセンター 1993.

[19]Dan R. Olsen Jr, "GUIの基礎 -- モデルとアルゴリズム", 日経BP, 1995.

[20] H.Yoshida, "MVC Model and Geant4 GUI",

http://erpc1.naruto-u.ac.jp/~geant4/thesis/mvc/mvc.html

[21] XVT に関する情報は、以下から入手可能です:

http://wwwcn1.cern.ch/asd/geant/geant4.html .

[22] Momo に関する情報は、以下から入手可能です:

http://erpc1.naruto-u.ac.jp/~geant4/

[23]大畑幸信, "オブジェクト指向による次世代検出器シミュレーションプログラムの

ためのユーザインターフェース", 平成7年度 東京都立大学修士論文.

[24]宇野秀樹, "高エネルギー粒子検出器シミュレーションプログラムGEANT4のため

のGUIの開発", 平成8年度 鳴門教育大学 修士論文.

[25]児玉俊明, "オブジェクト指向シミュレーションプログラムGEANT4のグラフィカ

ルユーザインターフェースのJavaによる開発", 平成9年度 鳴門教育大学

修士論文.

[26]大坪謙介, "高エネルギー粒子検出器シミュレータGEANT4のためのGUIの開発",

平成9年度 福井大学工学部 修士論文.

[27]M.Nagamatu, H.Uno, A.Obana, H.Yoshida, M.Asai, Y.Oohata,

and R.Hamatsu,

"Experience of prototyping Tcl/Tk-based GUI for Geant4;

an Object-Oriented Toolkit for simulation in High Energy Physics",

Proceedings of the Tcl/Tk workshop (USENIX), July 1997, Boston;

http://erpc1.naruto-u.ac.jp/~geant4/reports97/Tclconf/Tclconf97.html.

[28]M.Nagamatsu, "Report on Geant4 GUI", GEANT4 Workshop at SLAC,

1 Nov 1997, SLAC

[29]Tcl/Tk に関する情報は、以下から入手可能です:http://www.tcltk.com/ .