オススメの可視化ドライバー
$ cmake \
-DGEANT4_USE_OPENGL_X11=ON \
-DGEANT4_USE_QT=ON \
-DGEANT4_USE_RAYTRACER_X11=ON \ # 必要に応じて
現状では、OpenGLとQtの組み合わせが標準的かつ推奨です。
OpenGLは3D描画を担当し、
QtはGUIやウィンドウ管理を可能にするため、
インタラクティブなシミュレーションやデバッグに最適です。
RayTracerは高品質レンダリング用ドライバーです。
影や反射を含む静止画の生成やプレゼン資料の作成に最適です。
オプションで有効にしておけばOKです。
注釈
大学院生で使っていたときは、可視化ドライバーの組み合わせをいくつか順番に試して、うまくビルドできたものを使っていた気がします。
注釈
MotifやOpenInventor、DAWNなどのドライバーは、 メンテナンスやドキュメントが十分でないため、 これからわざわざ使う必要はないと思います。
注釈
自作の可視化ツールも作れるように設計されています。
Pythonのライブラリ(Altair、Plotly、Streamlitなど)で
描画できたらおもしろそうです。
可視化ドライバーの選び方
Geant4は9種類の可視化ドライバーに対応しています。 しかし、初心者にとってドライバー選びは鬼門のひとつです。 理由として、ドライバー名が多く用途が分かりにくいことや、 OSや環境によって動作が不安定になることが挙げられます。
2022年の講習会スライドでは、用途に応じたドライバーの選び方が整理されていました。
利用目的 |
オススメのドライバー |
|---|---|
実行/描画ウィンドウをまとめたい |
Qt |
リアルタイムでグリグリしたい |
Qt, OpenGL |
複雑な構造体を描画したい |
RayTracer |
描画した要素をピッキングしたい |
Qt、HepRep |
ブラウザでグリグリ表示したい |
VRML |
高解像度のポスター印刷したい |
DAWN |
放射線治療などで使いたい |
gMocren |
素早く構造体を点検したい |
ASCIITree |
DAWN、VRML、HepRepは形式はGeant4のデフォルトで出力できるようなのですが、
それらの形式を開くことができる外部ビューワーが見つかりませんでした。
開発やメンテナンスも停滞しているようなので、積極的に選択する理由はないです。
利用可能なドライバー
Geant4ノアプリケーションを実行すると、現在の環境で利用可能な可視化ドライバーを確認できます。
たとえば、exampleB1を実行した場合は次のようになっています。
$ ./exampleB1 # Geant4アプリケーションを実行
Available UI session types: [ Qt, tcsh, csh ]
**************************************************************
Geant4 version Name: geant4-11-02-patch-01 [MT] (16-February-2024)
...(省略)...
*************************************************************
...(省略)...
Registered graphics systems are:
ASCIITree (ATree)
DAWNFILE (DAWNFILE)
G4HepRepFile (HepRepFile)
RayTracer (RayTracer)
VRML2FILE (VRML2FILE)
gMocrenFile (gMocrenFile)
TOOLSSG_OFFSCREEN (TSG_OFFSCREEN)
TOOLSSG_OFFSCREEN (TSG_OFFSCREEN, TSG_FILE)
OpenGLImmediateQt (OGLIQt, OGLI)
OpenGLStoredQt (OGLSQt, OGL, OGLS)
OpenGLImmediateX (OGLIX, OGLIQt_FALLBACK)
OpenGLStoredX (OGLSX, OGLSQt_FALLBACK)
RayTracerX (RayTracerX)
Qt3D (Qt3D)
TOOLSSG_X11_GLES (TSG_X11_GLES, TSGX11, TSG_QT_GLES_FALLBACK)
TOOLSSG_QT_GLES (TSG_QT_GLES, TSGQt, TSG)
TOOLSSG_QT_ZB (TSG_QT_ZB, TSGQtZB)
Default graphics system is: OGL (based on build flags).
Default window size hint is: 600x600-0+0 (based on G4VisManager initialisation).
...(省略)...
この場合、デフォルトはOGL(OpenGLStoredQtに対応)、
ウィンドウサイズは600x600となっています。
ドライバーを変更したい(/vis/open)
可視化ドライバーは、マクロの/vis/openコマンドで変更できます。
以下は表示設定(/vis/open ドライバー名)を変更してexampleB1を実行した記録です。
ドライバーの種類 |
|
実行結果 |
|---|---|---|
デフォルト値 |
|
Qtが起動した |
OpenGLStoredQt |
|
Qtが起動した |
OpenGLImmediateQt |
|
Qtが起動した |
OpenGLStoredX |
|
(起動しなかった) |
OpenGLImmediateX |
|
(起動しなかった) |
Qt3D |
|
Qtが起動した |
HepRep |
|
|
RayTracer |
|
- |
RayTracerX |
|
Xが起動した |
VRML |
|
|
DAWN |
|
|
gMocren |
|
|
ASCIITree |
|
- |
とりあえずデフォルトのOGL(=OpenGLStoredQt)を使っておけば大丈夫なことが確認できました。
OpenGLStoredX、
OpenGLImmediateX
はXが起動すると期待したのですが、illegal parameterという警告が表示されました。
HepRep、DAWN、VRML、gMocrenではQtインターフェイスが起動し、
ランを実行(/run/beamOn イベント数)するたびにファイルが生成されました。