メイン関数したい(main()
)
1#include "Geometry.hh" // G4VUserDetectorConstructionを継承した自作クラス
2#include "ActionInitialization.hh" // G4VUserActionInitializationを継承した自作クラス
3
4#include "G4RunManagerFactory.hh"
5
6int main(int argc, char** argv)
7{
8 auto rm = G4RunManagerFactory::CreateRunManager();
9
10 auto geometry = new Geometry{};
11 rm->SetUserInitialization(detector);
12
13 auto physics = new FTFP_BERT{};
14 rm->SetUserInitialization(physics);
15
16 auto actions = new ActionInitialization{};
17 rm->SetUserInitialization(actions);
18
19 rm->Initialize();
20
21 G4int n_events = 100;
22 rm->BeamOn(n_events);
23
24 delete rm;
25 return 0;
26}
バッチモードで実行する場合の必要最低限のmain()
関数です。
G4RunManagerFactory
G4VisExecutive
G4UImanager
参考
クラスの呼ばれ方
1{
2G4RunManagerFactory::CreateRunManager();
3new Geometry{};
4new FTFP_BERT{};
5new ActionInitialization{};
6ActionInitialization::BuildForMaster();
7
8// G4RunManager::Initializeを実行すると、測定器がセットアップがされる
9G4RunManager::Initialize();
10Geometry::Construct() {
11 SetupVolumes()
12};
13Geometry::ConstructSDandField() {
14 new TrackerSD{"/TrackerSD", "TrackerHitsCollection"}
15 new TrackerSD{"/ShieldSD", "ShieldHitsCollection"}
16};
17
18// G4RunManager::BeamOn()を実行すると、入射粒子がセットアップされる
19G4RunManager::BeamOn()
20ActionInitialization::Build();
21new PrimaryGenerator{};
22PrimaryGenerator::GeneratePrimaries() {
23 SetupGunMuons();
24};
25// 有感検出器での処理
26TrackerSD::Initialize();
27TrackerSD::ProcessHits() {
28 TrackerHit::operator new
29 TrackerHit::TrackerHit()
30 TrackerHit::Fill()
31 TrackerHit::Print()
32}
33TrackerSD::ProcessHits() { ... }
34TrackerSD::ProcessHits() { ... }
35TrackerSD::EndOfEvent()
36{
37 "File opened: mc_data/kamaboko_00000_2024-07-30T13h05m.csv"
38 TrackerHit::ToCsvString();
39 TrackerHit::ToCsvString();
40 TrackerHit::ToCsvString();
41 "File closed: mc_data/kamaboko_00000_2024-07-30T13h05m.csv"
42 TrackerHit::operator delete
43}
44delete G4RunManager();
45delete Geometry();
46delete FTFP_BERT();
47delete ActionInitialization();
クラスが呼ばれる順番を確認しました。
G4RunManager::Initialize
すると測定器がセットアップされることを確認しました。
G4RunManager::BeamOn
すると入射粒子がセットアップされることを確認しました。
有感検出器(ここではTrackerSD
)のヒット処理の流れを確認しました。