Presentation is loading. Please wait.

Presentation is loading. Please wait.

Stack management, digitization and pile-up 浅井 慎 ( SLAC )

Similar presentations


Presentation on theme: "Stack management, digitization and pile-up 浅井 慎 ( SLAC )"— Presentation transcript:

1 Stack management, digitization and pile-up 浅井 慎 ( SLAC )

2 Stack management, digitization and pile-up - M.Asai (SLAC) 2 内容 Stack management Stack の仕組み G4UserStackingAction Digitization G4VDigitizerModule G4VDigit, G4TDigitsCollection Multi-event handling and Pile-up UI commands, Aliased variables, loop commands これらは naive な simulation には不要だが、これらの仕組み を活用すれば、より効率的で flexible な simulation application が作れる

3 Stack management, digitization and pile-up - M.Asai (SLAC) 3 Stack の仕組み デフォルトでは Geant4 は3つの track stack を持つ “ Urgent ”, “ Waiting ”, “ PostponeToNextEvent ” Track は Urgent stack のみから pop される Urgent stack が空になると、 Waiting stack 中の track がまとめて Urgent stack に移される UserStackingAction が新しい track をどの stack に入れるか ( あるいは kill するか ) を判断する デフォルトでは全ての track が Urgent stack へ 複数の stack を活用することにより、 “ highest priority scan ” せずに track の優先順位をコントロールできる 任意の数の stack を増やすことが出来る stack management による event や track の適切な selection/abortion によっ て、全体としてのシミュレーションの効率が向上する

4 Stack management, digitization and pile-up - M.Asai (SLAC) 4 Stack の仕組み Event Manager Tracking Manager Stacking Manager User Stacking Action Urgent Stack Waiting Stack Postpone To Next Event Stack Push Pop Push Pop Classify secondary or suspended tracks Process One Track primary tracks

5 Stack management, digitization and pile-up - M.Asai (SLAC) 5 G4UserStackingAction G4UserStackingAction は3つの method を持つ void NewStage() Urgent stack が空になった時に、 Waiting stack 中の全ての track が Urgent stack に移された後で呼ばれる stackManager->ReClassify() を呼べば、移された track が順次 ClassifyNewTrack() に渡されるので、改めて classify しなおす G4ClassificationOfNewTrack ClassifyNewTrack(const G4Track*) 新しい track が G4StackManager に push される毎に呼ばれる Classification fUrgent // pushed into Urgent stack fWaiting // pushed into Waiting stack fPostpone // pushed into PostponeToNextEevnt stack fKill // killed void PrepareNewEvent() 1event 開始時に呼ばれるので、 classification scheme をリセット

6 Stack management, digitization and pile-up - M.Asai (SLAC) 6 G4UserStackingAction の例 ExN04StackingAction この example は、簡略化した collider detector のジオメトリと Higgs 粒子が 4 muon に decay する event sample を持つ 1) Event の始めでは primary muon のみが Urgent stack に 入れられ、他の全ての primary particle は Waiting stack へ入れられる  Urgent stack が空にな ると muon counter 中の hit 数をチェック  充分な数の Hit がなけれ ば event を abort する

7 Stack management, digitization and pile-up - M.Asai (SLAC) 7 G4UserStackingAction の例 2) primary charged track のみを Urgent stack に移す 個々の primary charged track は、 tracker region 内だけ tracking され、 calorimeter に到達したら suspend されて Waiting Stack に戻される  Urgent stack が空になると Tracker 中の hit 数をチェック 充分な数の isolated muon がなけれ ば event を abort する 3) “ Region of Interest ” に含まれる粒子だけ が Urgent stack に移され、それ以外は kill される すなわち、 R.o.I. の中だけ shower を作る

8 Stack management, digitization and pile-up - M.Asai (SLAC) 8 Digitization Digit は測定器の出力を表す ( 例えば ADC/TDC count, trigger signal) Digit は、 hit や他の digit を基にして、 G4VDigitizerModule の継承クラスが 作る Digit は G4VDigit を継承してユーザーが用意するクラスで、 G4TDigitsCollection 、 G4DCofThisEvent により G4Event クラスに蓄えら れる Hit と同じ構造 Hit/sensitive detector と異なる点 sensitive detector は logical volume に割り付けられ、 hit は tracking 時 に自動的に作られる Digitizer module は特定の volume には割り付けられず、 Geant4- kernel は自発的に digit を作らない 例えば EndOfEventAction から、ユーザーが個々の digitizer module の Digitize() 関数を、必要な順序で呼ぶ

9 Stack management, digitization and pile-up - M.Asai (SLAC) 9 Multi-events treatment and pile-up G4Eventmanager は、複数の event を同時に取り扱うことは 出来ない 当然 UserEventAction もだめ Run のレベルでのみ、複数 event を取り扱うことが出来る G4RunManager を継承して自分の RunManager を作る AnalyzeEvent() 関数を実装し、この関数内で複数 event に アクセスする G4Event* GetPreviousEvent(int) Run 開始前に SetNumberOfEventsToBeStored() で必要 な event 数を指定することを忘れずに 必要ならば DigitizerModule を呼ぶことも出来る

10 Stack management, digitization and pile-up - M.Asai (SLAC) 10 Geant4 UI command Geant4 の UI command は次の方法で実行できる (G)UI interactive command submission Macro file Hard-coded implementation 遅いが、 target class のポインタは不要 濫用してはいけない G4UImanager* UI = G4UImanager::GetUIpointer(); UI->ApplyCommand("/run/verbose 1"); コマンドは次の3つの部分から成る Command directory Command Parameter(s)

11 Stack management, digitization and pile-up - M.Asai (SLAC) 11 Available Commands 利用可能なコマンド ( ユーザー定義コマンドを含む ) /control/manual [directory] 画面 ( 標準出力 ) に表示 /control/createHTML [directory] HTML file(s) built-in commands のリストは User ‘ s Guide For Application Developers の section 7.1 にもある

12 Stack management, digitization and pile-up - M.Asai (SLAC) 12 Available commands 使用可能なコマンド、パラメータの有効範囲等はダイナ ミックに変化する 幾つかのコマンドは Geant4 の特定の状態でのみ有効 例えば /run/beamOn は PreInit と Idle 状態でのみ. 個々のパラメータは string, boolean, integer, double のいず れかの型 空白を含む文字列は double-quotes ( ” ” ) でかこむ 省略可能なパラメータもある。この場合にはデフォルト値 が使われる デフォルト値は、あらかじめ設定された値の場合と現 在値の場合がある 1つ目のパラメータをデフォルト値に、2つ目のパラ メータには値を与えたい場合には!を使う /dir/command ! second

13 Stack management, digitization and pile-up - M.Asai (SLAC) 13 Available commands コマンドは以下の場合には拒否される 適切でない状態で発行された パラメータの型がちがう パラメータの数が足りない パラメータが指定範囲に無い ineteger と double 型のパラメータの場合 パラメータが candidate list にない string 型のパラメータの場合 Alias のまちがい Command not found

14 Stack management, digitization and pile-up - M.Asai (SLAC) 14 Macro file 全てのコマンドは full-path で与える Use “ # ” for comment line. 始めの “ # ” から行末までがコメントになる /control/verbose を2にすればコメント行が標準出 力にエコーされる. Macro file の実行 /control/execute “file_name” /control/loop /control/foreach Macro file は再帰的に呼べる

15 Stack management, digitization and pile-up - M.Asai (SLAC) 15 Alias Alias の設定 /control/alias [name] [value] /control/loop や /control/foreach でも設定される Alias 値は 数字しか含まなくても文字列として取り扱われる Alias は他の UI command で使用できる, command name, directory path, parameter もしくはそれらの組み 合わせとして. 長い、よく使うコマンドを短く出来る Alias を使う特には curly brackets “ { ” and “ } ” で囲む. Alias は再帰的に 解釈される /control/alias file1 /diskA/run1 /control/alias file2 /diskB/run2 /control/alias run 1 /myCommand/getFile {file{run}}.dat

16 Stack management, digitization and pile-up - M.Asai (SLAC) 16 Repeating macro execution /control/loop [macroFile] [counterName] [initialValue] [finalValue] [stepSize] –counterName が alias 変数になる /control/foreach [macroFile] [counterName] [valueList] –counterName が alias 変数になる –valueList は double-quotes ( ” ” ) でかこむ

17 Stack management, digitization and pile-up - M.Asai (SLAC) 17 UI command and messenger (G)UI UImanager messenger command parameter Target class 1. register 2. apply 3. do it 4. invoke Messenger クラスを実装し、 command を定 義すれば自分の command を使える


Download ppt "Stack management, digitization and pile-up 浅井 慎 ( SLAC )"

Similar presentations


Ads by Google