Environment Set-up and Geant4 Installation - www

Download Report

Transcript Environment Set-up and Geant4 Installation - www

Environment Set-up and Geant4
Installation
Tue 7th Dec 2010
9:20 – 10:50 (90’)
http://wiki.kek.jp/x/owB8
安全について
• 緊急避難経路の確認
2010/12/7
Environment Set-up and Geant4 Installation
2
Networking
• WiFi
– IEEE 802.11b or 802.11g compliant adaptors should
be accepted
– SSID: tsukuba04
– WEP: Open (Not encrypted)
• Wired connection
– Limited number of sockets: ~16
– Supplied only in front area of this room
– If you need wired connection, please let us know
• Let us know if you have any difficulties or
questions
2010/12/7
Environment Set-up and Geant4 Installation
3
プログラム概要
午前
午後
2010/12/7
火曜
水曜
木曜
金曜
講習会を始め
るための準備
宿題の確認
物質とジオメト
リの定義
物理プロセス
の定義と登録
物理プロセス
の選択
フォローアップ
MC法について
座学
Geant4概要
スコアリングと 検出器の応答
ファイル入出力 とヒットの収集
演習
演習
Geant4利用に
あたって
Geant4コマンド
紹介
可視化モ
ジュールの設
計概念
高度なジオメト
リの定義
入射粒子の定
義
ハドロンプロセ
ス
高度な可視化
モジュールの
紹介
演習
演習
演習
Environment Set-up and Geant4 Installation
総合演習
4
期待される習得技能
• Geant4の構造に関する理解
• Geant4の環境セットアップ
• Geant4を用いたアプリケーション作成
• 他に何か期待していることがありますか?
2010/12/7
Environment Set-up and Geant4 Installation
5
今日の内容
内容
午前
Environment Set-up and GEANT4 Installation
ネットワーク設定
VM環境セットアップ
構成に関する解説
動作確認
UNIXに関する手引きを少々
Lecture I
放射線シミュレーションとMC法について
Geant4の設計概念について
午後
Lecture II
Geant4利用にあたって知っておくと良いポイントの解説
UIコマンドの紹介
可視化モジュールの設計概念
Working Session I
例題のコンパイルと実行
2010/12/7
夜
Environment Set-up and Geant4 Installation
Evening Session 
6
今日の目標
• 環境のセットアップ (超必須)
• 仮想マシンでのGeant4アプリケーション実行
• Geant4設計思想の理解
2010/12/7
Environment Set-up and Geant4 Installation
7
Who’s here!?
Please give us your…
• Name
• Where you work
• Your experience in Geant4
– Enough for rough estimation, e.g. 1day? 1week? 1year?
• Platform
– Today?
– In usual work?
• What you aim in this course
• What community/experiment you are involved in
– And role in your community/experiment
• Goal in your research or work
2010/12/7
Environment Set-up and Geant4 Installation
8
宿題の確認
2010/12/7
Environment Set-up and Geant4 Installation
9
VMware Player/Workstation/Fusion
• VMware Player (無償)
– http://www.vmware.com/products/player/
• VMware Workstation (有償)でも動作します
– http://www.vmware.com/products/workstation/
• Macの人はVMware Fusion (有償)
– http://www.vmware.com/products/fusion/
2010/12/7
Environment Set-up and Geant4 Installation
10
仮想マシンイメージ
• http://wiki.kek.jp/x/4CVj
– G4VM-10.11 を使用します
• OS : Scientific Linux 5.5
– 32bit / 64bit はお好みで
» Pentium等の32bit チップを使用し
ている場合は 32bit のイメージを使
用してください
• Geant4 9.3.p02
• CLHEP 2.0.4.6
• Analysis Package: ROOT 5.26.00b(c) /
CERNLIB 2005 (x86_64), 2006 (i386) /
OpenScientist 16.11.2 (ocs_batch)
• 7zipで圧縮されているので伸張する
ためには7zipユーティリティを使用し
てください
– http://www.7-zip.org/
2010/12/7
Environment Set-up and Geant4 Installation
11
仮想マシンダウンロード
• http://wiki.kek.jp/x/4CVj
• USBメモリとSDカードも用意しておりますので
お声がけください
2010/12/7
Environment Set-up and Geant4 Installation
12
VMware Player
2010/12/7
Environment Set-up and Geant4 Installation
13
Scientific Linux 5.5 .vmx
を指定して起動してください
2010/12/7
Environment Set-up and Geant4 Installation
14
重要
• 演習用のユーザー名は g4user
– パスワードも g4user
• 管理者(root)パスワードは g4vm2010
2010/12/7
Environment Set-up and Geant4 Installation
15
• キーボード配列は
英字で設定されて
います
• Layoutタブから日
本語キーボードを
設定してください
2010/12/7
Environment Set-up and Geant4 Installation
16
デスクトップ画面
ブラウザを開きます
2010/12/7
Environment Set-up and Geant4 Installation
17
VMからのネットワーク接続確認
2010/12/7
Environment Set-up and Geant4 Installation
18
日本語の表示
2010/12/7
Environment Set-up and Geant4 Installation
19
2010/12/7
Environment Set-up and Geant4 Installation
20
2010/12/7
Environment Set-up and Geant4 Installation
21
2010/12/7
Environment Set-up and Geant4 Installation
22
小休憩
2010/12/7
Environment Set-up and Geant4 Installation
23
仮想マシン構成
• インストールされているもの
– OS : Scientific Linux 5.5 (x86_64 / i386)
• 環境変数 G4SYSTEM で参照される
– E.g. $ echo $G4SYSTEM
– Geant4 9.3.p02
– CLHEP 2.0.4.6
– Analysis Package:
• ROOT 5.26.00b(c)
• CERNLIB 2005 (x86_64), 2006 (i386)
• OpenScientist 16.11.2 (ocs_batch)
2010/12/7
Environment Set-up and Geant4 Installation
24
• Geant4
– /opt/geant4 以下
• geant4.9.3.p02/: Geant4ソースコード
– コンパイル済み
– Geant4ツリーの頂上は環境変数 G4INSTALL で参照される
» E.g. $ echo $G4INSTALL
• data/: データファイル群が配置(実行時、動的に読み込ま
れる)
–
–
–
–
–
–
–
2010/12/7
G4ABLA.3.0/
G4NDL.3.13/
G4RadiativeDecay.3.2/
G4EMLOW.6.9/
G4PhotonEvaporation.2.0/
RealSurface.1.0/
場所は環境変数によって解決される
» E.g. $ echo $G4LEDATA
» /home/g4user/config/geant4.sh 内で定義しています
Environment Set-up and Geant4 Installation
25
• CLHEP
– Geant4が利用(ベクトルや乱数)
– /opt/clhep 以下にインストール済み
– 環境変数 CLHEP_BASE_DIR で参照される
• E.g. $ echo $CLHEP_BASE_DIR
• ROOT
– /opt/root/pro 以下にインストール済み
– 環境変数 ROOTSYS で参照される
– アプリケーション側で利用(することもある)
• CERNLIB
– /cern/pro 以下にインストール済み
– 本講習では使用しません
• OpenScientist
– /opt/osc_batch/16.11.2 以下にインストール済み
– 本講習では使用しません
2010/12/7
Environment Set-up and Geant4 Installation
26
• ホームディレクトリ (/home/g4user = $HOME) 以下
– $HOME/.bashrc
• 初期設定ファイル
• geant4.shを読み込んでいます
– $HOME/config/geant4.sh
• Geant4を利用するための環境変数が設定されています
• 利用する≠本体構築ではないことに注意してください
– $HOME/work/
• 環境変数G4WORKDIRで参照されています
– プログラムの実行ファイルは$HOME/work/$G4SYSTEM/bin
(=/home/g4user/work/Linux-g++/bin)以下に作成されます
• Geant4付属の例題が novice と electromagnetic 以下にコピーして
あります
– $HOME/Desktop/
• デスクトップに置いてあるショートカットなど
– $HOME/extra/
• python から利用するためのモジュールとそのサンプルプログラム
2010/12/7
Environment Set-up and Geant4 Installation
27
Geant4本体の構成
クリック
• http://geant4.org
クリック
2010/12/7
Environment Set-up and Geant4 Installation
28
$ tar zxvf geant4.9.3.p02.tar.gz
geant4.9.3.p02/
geant4.9.3.p02/ReleaseNotes/
geant4.9.3.p02/ReleaseNotes/Beta4.9.2-1.txt
... snip
geant4.9.3.p02/source/visualization/modeling/src/G4V
TrajectoryModel.cc
geant4.9.3.p02/source/visualization/modeling/src/G4V
isTrajContext.cc
$ cd geant4.9.3.p02
$ ls
Configure* LICENSE ReleaseNotes/
environments/ examples/ source/
2010/12/7
Environment Set-up and Geant4 Installation
config/
29
ちなみに
• 角の丸い四角い箱の中に
描いてある内容はターミナ
ル内の作業を意図してい
ます
• 先頭が $ の行は一般ユー
ザー(g4user)による作業
• 先頭が # の行は管理者
(root)による作業を意図
しています
• 紙面の都合上、一行に納
まりきらない場合、バックス
ラッシュ(\)で次行につな
げます
2010/12/7
$ su Password: g4vm2010
# whoami
root
$ tar zxvf \
geant4.9.3.p02.tar.gz
Environment Set-up and Geant4 Installation
30
•
RelaseNotes/ 以下
– 各バージョンの変更点等、記載がありま
す
– “Supported and Tested Platforms” と
“CLHEP and AIDA” の確認をするよう、心
がけてください
•
config/ 以下
– Makefile 中で繰り返し定義されるよう
な定義文はここに集約
•
アプリケーション用のMakefile作成工
数を節約
–
通常は10行程度
– プラットフォームの差分を吸収
•
•
G4SYSTEM=Linux-g++ の場合は
config/sys/Linux-g++.gmk ファイ
ルが読み込まれる
source/ 以下
– Geant4本体のソースコード
– 各カテゴリの解説については浅井さん
が解説してくださいます
•
1
2
3
4
5
6
7
8
9
10
11
G4TARGET := $(name)
G4EXLIB := true
ifndef G4INSTALL
G4INSTALL = ../../..
endif
.PHONY: all
all: lib bin
include $(G4INSTALL)/config/binmake.gmk
$G4INSTALL/examples/nobice/N01/GNUmakefile
examples/ 以下
– アプリケーションの例題
•
environments/ 以下
– Geant4開発環境
•
•
2010/12/7
g4py: Pythonからの呼び出し
MOMO: GUIによるプログラム作成支援
Environment Set-up and Geant4 Installation
31
アプリケーションの典型例
• 皆さんはGeant4を作るのではなく、Geant4が
提供するプログラム(Geant4本体)を利用して
アプリケーションを作ります
– そのための作法を学ぶことがこの講習会の目的
の一つです
• アプリケーションの典型例を少し見ていきま
す
2010/12/7
Environment Set-up and Geant4 Installation
32
$ cd $HOME/work/novice/N01
$ ls -R
.:
GNUmakefile README
exampleN01.out src/
History
exampleN01.cc
exampleN01.err
exampleN01.in
include/
./include:
ExN01DetectorConstruction.hh
ExN01PrimaryGeneratorAction.hh
ExN01PhysicsList.hh
./src:
ExN01DetectorConstruction.cc
ExN01PrimaryGeneratorAction.cc
ExN01PhysicsList.cc
2010/12/7
Environment Set-up and Geant4 Installation
33
Novice Example N01
• アルゴンガスで満たされた実験室中に
アルミニウムの板等を並べたセットアッ
プ
• geantino という相互作用をしない仮想
粒子を一個発射する
Pb
– これ(イベント)を3回繰り返す
Al
• 物理プロセスと粒子とカット値の定義
– ジアンティーノという仮想粒子
– 運ぶだけ(物質との相互作用は未定
義)
– デフォルトのカット値を使う
Al
Ar
• しばらくの間、プログラムの中身(実
装)はブラックボックスでよい
– 順に説明していきます
2004/09/10,17,27
C++/Geant4 tutorial course
34
3つのクラス
• G4VUserDetectorConstruction から派生した
ExN01DetectorConstruction
– 物体の配置
• G4VUserPrimaryGeneratorAction から派生した
ExN01PrimaryGeneratorAction
– geantino の発射
• G4VUserPhysicsList から派生した ExN01PhysicsList
– 物理プロセスや粒子の定義
2004/09/10,17,27
C++/Geant4 tutorial course
35
なぜか
• Geant4 (の開発者)はみなさんが
– どのような空間に
– なんの粒子を入れて
– どのような物理プロセスを使って
• シミュレーションしたいか知らない
– みなさんが定義して知らせて(登録)する必要があります
• Geant4 (の開発者)はみなさんがシミュレーションを
行うための枠組みや便利な部品を提供する
– ツールキット
2004/09/10,17,27
C++/Geant4 tutorial course
36
登録するために
• (通常は)exampleN01.cc 中の main() 関数内で
行います
// ランマネージャーの構築、最初に作って最後に消す
G4RunManager* runManager = new G4RunManager();
// 必須!ジオメトリを定義したクラスの登録
runManager->SetUserInitialization(new ExN01DetectorConstruction());
// 必須!使用する物理プロセスを定義したクラスの登録
runManager->SetUserInitialization(new ExN01PhysicsList());
// 必須!イベントの始まりを定義したクラスの登録
runManager->SetUserAction(new ExN01PrimaryGeneratorAction());
2004/09/10,17,27
C++/Geant4 tutorial course
37
Geant4が提案するフレームワーク
G4RunManager
Geant4 開発者の
責任箇所
void SetUserInitialization(G4VUserDetectorConstruction*)
void SetUserInitialization(G4VUserPhysicsList*)
void SetUserAction(G4VUserPrimaryGeneratorAction*)
G4VUserDetectorConstruction
virtual G4VPhysicalVolume* Construct() = 0
ExN01DetectorConstruction
G4VUserPhysicsList
virtual void ConstructParticle() = 0
virtual void ConstructProcess() = 0
virtual void SetCuts() = 0
ExN01PhysicsList
G4VUserPrimaryGeneratorAction
virtual void GeneratePrimaries(G4Event* anEvent) = 0
ExN01PrimaryGeneratorAction
シミュレーションを行う者(我々)の責任箇所
C++/Geant4 tutorial course
2004/09/10,17,27
38
登録後
// 一通り、登録が終わったら、初期化してやる
runManager->Initialize();
// ユーザーインターフェースへのポインタをとってくる
G4UImanager* UI = G4UImanager::GetUIpointer();
// コマンドを実行する、これは本来の使い方ではない
UI->ApplyCommand("/run/verbose 1");
UI->ApplyCommand("/event/verbose 1");
UI->ApplyCommand("/tracking/verbose 1");
UI->ApplyCommand("/run/beamOn 3");
対話処理については午
後に説明します
// 最後にランマネージャーを消してやる、このとき登録したクラスも消される
delete runManager;
2004/09/10,17,27
C++/Geant4 tutorial course
39
• GNUmakefile
– gmake 用の Makefile
– 文法が拡張されている
– いまどきの人間は gmake と make の違いを気にしなくてよい
• exampleN01.cc
– main() 関数作成
– RunManagerへのクラスオブジェクト登録
• include
–
–
–
–
クラスのヘッダファイルを置く
ExN01DetectorConstruction.hh
ExN01PrimaryGeneratorAction.hh
ExN01PhysicsList.hh
–
–
–
–
クラスの実装ファイルを置く
ExN01DetectorConstruction.cc
ExN01PrimaryGeneratorAction.cc
ExN01PhysicsList.cc
• src
2010/12/7
Environment Set-up and Geant4 Installation
40
GNUmakefile
# ライブラリ名は libexampleN01.a
# 実行ファイル名は exampleN01
# main分を含むファイルは exampleN01.cc
# 行の最後に余計なスペース等挿入しないこと
name := exampleN01
G4TARGET := $(name)
Note: 今回は既に環境変数
G4WORKDIR が
$HOME/config/geant4.sh 内で
$HOME/work に設定されているので、
$HOME/work 以下に実行ファイル等
が作成されます
# 自前のライブラリを使いますよという宣言
G4EXLIB := true
# 全ての成果物をこのディレクトリに納めるには以下のコメントを外す
# (オブジェクトファイル、ライブラリ、実行ファイル)
# G4WORKDIR = .
# all は常に新しい
.PHONY: all
# lib と bin の依存関係を解決せよ(作れ)
all: lib bin
# インクルードせよ(Geant4のお約束)
include $(G4INSTALL)/config/binmake.gmk
2004/09/10,17,27
C++/Geant4 tutorial course
41
演習
• http://wiki.kek.jp/x/owB8
• 基本的なUNIXコマンド
• Geant4例題の実行
2010/12/7
Environment Set-up and Geant4 Installation
42