SDManagerしたい(G4SDManager
)
1auto sm = G4SDManager::GetSDMpointer();
GetSDMpointer()
でG4SDManager
クラスを取得できます。
G4SDManager
クラスはスレッドローカルになっています。
また、シングルトンになっていて、どこからでもこの方法で参照できます。
有感検出器を登録したい(AddNewDetector
)
1// 有感検出器を作成
2auto sensor = new Sensor("検出器名");
3
4// SDManagerに追加
5auto sm = G4SDManager::GetSDMpointer();
6sm->AddNewDetector(sensor);
有感検出器を一覧したい(ListTree
)
1auto sm = G4SDManager::GetSDMpointer();
2sm->ListTree()
3
4// G4WT0 > /
5// G4WT0 > /TrackerSD *** Active
6// G4WT0 > /ShieldSD *** Active
ListTree
でSDManagerに登録されている有感検出器の名前と状態を確認できます。
G4VSensitiveDetector::Initialize
の中で、
デバッグ用に確認したいときに便利です。
HCtableしたい(GetHCtable
)
1auto sm = G4SDManager::GetSDMpointer();
2auto table = sm->GetHCtable();
3
4G4int n_tables = table->entries();
5G4debug << "HCtables= " << n_tables << G4endl;
6for (G4int i = 0; i < n_tables; i++) {
7 G4debug << "SDname= " << table->GetSDname(i) G4endl;
8 G4debug << "HCname= " << table->GetHCname(i) G4endl;
9}
GetHCtable
でSDManagerに登録されているHCtableを確認できます。
またGetSDName
で有感検出器の名前、
GetHCname
でヒット配列の名前を取得できます。
ヒット配列のIDをしりたい(GetCollectionID
)
1auto sm = G4SDManager::GetSDMpointer();
2G4int hcID = sm->GetCollectionID("ヒット配列名");
3G4ind hcID = sm->GetCollectionID(ヒット配列名オブジェクト);
GetCollectionID
でヒット配列のIDを取得できます。
IDをしりたいヒット配列の"名前"もしくはオブジェクトを引数に設定します。