420 likes | 629 Views
Environment Set-up and Geant4 Installation. Tue 7 th Dec 2010 9:20 – 10:50 (90’). http://wiki.kek.jp/x/owB8. 安全について. 緊急避難経路の確認. Networking. WiFi IEEE 802.11b or 802.11g compliant adaptors should be accepted SSID: tsukuba04 WEP: Open (Not encrypted) Wired connection
E N D
Environment Set-up and Geant4 Installation Tue 7th Dec 2010 9:20 – 10:50 (90’) http://wiki.kek.jp/x/owB8
安全について • 緊急避難経路の確認 Environment Set-up and Geant4 Installation
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 Environment Set-up and Geant4 Installation
プログラム概要 Environment Set-up and Geant4 Installation
期待される習得技能 • Geant4の構造に関する理解 • Geant4の環境セットアップ • Geant4を用いたアプリケーション作成 • 他に何か期待していることがありますか? Environment Set-up and Geant4 Installation
今日の内容 Environment Set-up and Geant4 Installation
今日の目標 • 環境のセットアップ (超必須) • 仮想マシンでのGeant4アプリケーション実行 • Geant4設計思想の理解 Environment Set-up and Geant4 Installation
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 Environment Set-up and Geant4 Installation
宿題の確認 Environment Set-up and Geant4 Installation
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/ Environment Set-up and Geant4 Installation
仮想マシンイメージ • 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/ Environment Set-up and Geant4 Installation
仮想マシンダウンロード • http://wiki.kek.jp/x/4CVj • USBメモリとSDカードも用意しておりますのでお声がけください Environment Set-up and Geant4 Installation
VMware Player Environment Set-up and Geant4 Installation
Scientific Linux 5.5 .vmxを指定して起動してください Environment Set-up and Geant4 Installation
重要 • 演習用のユーザー名は g4user • パスワードも g4user • 管理者(root)パスワードは g4vm2010 Environment Set-up and Geant4 Installation
キーボード配列は英字で設定されています • Layoutタブから日本語キーボードを設定してください Environment Set-up and Geant4 Installation
デスクトップ画面 ブラウザを開きます Environment Set-up and Geant4 Installation
VMからのネットワーク接続確認 Environment Set-up and Geant4 Installation
日本語の表示 Environment Set-up and Geant4 Installation
小休憩 Environment Set-up and Geant4 Installation
仮想マシン構成 • インストールされているもの • OS : Scientific Linux 5.5 (x86_64 / i386) • 環境変数 G4SYSTEM で参照される • E.g. $ echo $G4SYSTEM • Geant49.3.p02 • CLHEP2.0.4.6 • Analysis Package: • ROOT 5.26.00b(c) • CERNLIB2005 (x86_64), 2006 (i386) • OpenScientist16.11.2 (ocs_batch) Environment Set-up and Geant4 Installation
Geant4 • /opt/geant4 以下 • geant4.9.3.p02/: Geant4ソースコード • コンパイル済み • Geant4ツリーの頂上は環境変数 G4INSTALL で参照される • E.g. $ echo $G4INSTALL • data/: データファイル群が配置(実行時、動的に読み込まれる) • 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
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 以下にインストール済み • 本講習では使用しません Environment Set-up and Geant4 Installation
ホームディレクトリ (/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 から利用するためのモジュールとそのサンプルプログラム Environment Set-up and Geant4 Installation
Geant4本体の構成 クリック • http://geant4.org クリック Environment Set-up and Geant4 Installation
$ 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/G4VTrajectoryModel.cc geant4.9.3.p02/source/visualization/modeling/src/G4VisTrajContext.cc $ cd geant4.9.3.p02 $ ls Configure* LICENSE ReleaseNotes/ config/ environments/ examples/ source/ Environment Set-up and Geant4 Installation
ちなみに • 角の丸い四角い箱の中に描いてある内容はターミナル内の作業を意図しています • 先頭が $の行は一般ユーザー(g4user)による作業 • 先頭が #の行は管理者(root)による作業を意図しています • 紙面の都合上、一行に納まりきらない場合、バックスラッシュ(\)で次行につなげます $ su - Password: g4vm2010 # whoami root $ tar zxvf \ geant4.9.3.p02.tar.gz Environment Set-up and Geant4 Installation
1 G4TARGET := $(name) 2 G4EXLIB := true 3 4 ifndef G4INSTALL 5 G4INSTALL = ../../.. 6 endif 7 8 .PHONY: all 9 all: lib bin 10 11 include $(G4INSTALL)/config/binmake.gmk • RelaseNotes/ 以下 • 各バージョンの変更点等、記載があります • “Supported and Tested Platforms” と “CLHEP and AIDA” の確認をするよう、心がけてください • config/ 以下 • Makefile中で繰り返し定義されるような定義文はここに集約 • アプリケーション用のMakefile作成工数を節約 • 通常は10行程度 • プラットフォームの差分を吸収 • G4SYSTEM=Linux-g++ の場合は config/sys/Linux-g++.gmkファイルが読み込まれる • source/ 以下 • Geant4本体のソースコード • 各カテゴリの解説については浅井さんが解説してくださいます • examples/ 以下 • アプリケーションの例題 • environments/ 以下 • Geant4開発環境 • g4py: Pythonからの呼び出し • MOMO: GUIによるプログラム作成支援 $G4INSTALL/examples/nobice/N01/GNUmakefile Environment Set-up and Geant4 Installation
アプリケーションの典型例 • 皆さんはGeant4を作るのではなく、Geant4が提供するプログラム(Geant4本体)を利用してアプリケーションを作ります • そのための作法を学ぶことがこの講習会の目的の一つです • アプリケーションの典型例を少し見ていきます Environment Set-up and Geant4 Installation
$ cd $HOME/work/novice/N01 $ ls-R .: GNUmakefile README exampleN01.err exampleN01.out src/ History exampleN01.cc exampleN01.in include/ ./include: ExN01DetectorConstruction.hh ExN01PrimaryGeneratorAction.hh ExN01PhysicsList.hh ./src: ExN01DetectorConstruction.cc ExN01PrimaryGeneratorAction.cc ExN01PhysicsList.cc Environment Set-up and Geant4 Installation
Novice Example N01 • アルゴンガスで満たされた実験室中にアルミニウムの板等を並べたセットアップ • geantinoという相互作用をしない仮想粒子を一個発射する • これ(イベント)を3回繰り返す • 物理プロセスと粒子とカット値の定義 • ジアンティーノという仮想粒子 • 運ぶだけ(物質との相互作用は未定義) • デフォルトのカット値を使う • しばらくの間、プログラムの中身(実装)はブラックボックスでよい • 順に説明していきます Pb Al Al Ar C++/Geant4 tutorial course
3つのクラス • G4VUserDetectorConstruction から派生した ExN01DetectorConstruction • 物体の配置 • G4VUserPrimaryGeneratorAction から派生した ExN01PrimaryGeneratorAction • geantinoの発射 • G4VUserPhysicsList から派生した ExN01PhysicsList • 物理プロセスや粒子の定義 C++/Geant4 tutorial course
なぜか • Geant4 (の開発者)はみなさんが • どのような空間に • なんの粒子を入れて • どのような物理プロセスを使って • シミュレーションしたいか知らない • みなさんが定義して知らせて(登録)する必要があります • Geant4 (の開発者)はみなさんがシミュレーションを行うための枠組みや便利な部品を提供する • ツールキット C++/Geant4 tutorial course
登録するために • (通常は)exampleN01.cc 中の main() 関数内で行います // ランマネージャーの構築、最初に作って最後に消す G4RunManager* runManager = new G4RunManager(); // 必須!ジオメトリを定義したクラスの登録 runManager->SetUserInitialization(new ExN01DetectorConstruction()); // 必須!使用する物理プロセスを定義したクラスの登録 runManager->SetUserInitialization(new ExN01PhysicsList()); // 必須!イベントの始まりを定義したクラスの登録 runManager->SetUserAction(new ExN01PrimaryGeneratorAction()); C++/Geant4 tutorial course
G4VUserPrimaryGeneratorAction virtual void GeneratePrimaries(G4Event* anEvent) = 0 G4VUserDetectorConstruction virtual G4VPhysicalVolume* Construct() = 0 G4VUserPhysicsList virtual void ConstructParticle() = 0 virtual void ConstructProcess() = 0 virtual void SetCuts() = 0 ExN01PhysicsList ExN01DetectorConstruction ExN01PrimaryGeneratorAction G4RunManager void SetUserInitialization(G4VUserDetectorConstruction*) void SetUserInitialization(G4VUserPhysicsList*) void SetUserAction(G4VUserPrimaryGeneratorAction*) Geant4が提案するフレームワーク Geant4 開発者の責任箇所 シミュレーションを行う者(我々)の責任箇所 C++/Geant4 tutorial course
登録後 // 一通り、登録が終わったら、初期化してやる runManager->Initialize(); // ユーザーインターフェースへのポインタをとってくる G4UImanager* UI = G4UImanager::GetUIpointer(); // コマンドを実行する、これは本来の使い方ではない UI->ApplyCommand("/run/verbose 1"); UI->ApplyCommand("/event/verbose 1"); UI->ApplyCommand("/tracking/verbose 1"); UI->ApplyCommand("/run/beamOn3"); // 最後にランマネージャーを消してやる、このとき登録したクラスも消される delete runManager; 対話処理については午後に説明します C++/Geant4 tutorial course
GNUmakefile • gmake用の Makefile • 文法が拡張されている • いまどきの人間は gmakeと make の違いを気にしなくてよい • exampleN01.cc • main() 関数作成 • RunManagerへのクラスオブジェクト登録 • include • クラスのヘッダファイルを置く • ExN01DetectorConstruction.hh • ExN01PrimaryGeneratorAction.hh • ExN01PhysicsList.hh • src • クラスの実装ファイルを置く • ExN01DetectorConstruction.cc • ExN01PrimaryGeneratorAction.cc • ExN01PhysicsList.cc Environment Set-up and Geant4 Installation
GNUmakefile # ライブラリ名は libexampleN01.a # 実行ファイル名は exampleN01 # main分を含むファイルは exampleN01.cc # 行の最後に余計なスペース等挿入しないこと name := exampleN01 G4TARGET := $(name) # 自前のライブラリを使いますよという宣言 G4EXLIB := true # 全ての成果物をこのディレクトリに納めるには以下のコメントを外す # (オブジェクトファイル、ライブラリ、実行ファイル) # G4WORKDIR = . # all は常に新しい .PHONY: all # lib と bin の依存関係を解決せよ(作れ) all: lib bin # インクルードせよ(Geant4のお約束) include $(G4INSTALL)/config/binmake.gmk Note: 今回は既に環境変数 G4WORKDIR が $HOME/config/geant4.sh 内で $HOME/work に設定されているので、$HOME/work 以下に実行ファイル等が作成されます C++/Geant4 tutorial course
演習 • http://wiki.kek.jp/x/owB8 • 基本的なUNIXコマンド • Geant4例題の実行 Environment Set-up and Geant4 Installation