File indexing completed on 2025-11-03 09:02:38
0001 
0002 
0003 
0004 
0005 
0006 
0007 
0008 
0009 
0010 
0011 
0012 
0013 
0014 
0015 
0016 
0017 
0018 
0019 
0020 
0021 
0022 
0023 
0024 
0025 
0026 
0027 
0028 
0029 
0030 
0031 
0032 
0033 
0034 
0035 
0036 
0037 
0038 
0039 
0040 
0041 #include "G4Types.hh"
0042 #include "G4RunManagerFactory.hh"
0043 #include "G4UImanager.hh"
0044 #include "G4UIExecutive.hh"
0045 #include "BrachyActionInitialization.hh"
0046 #include "G4VisExecutive.hh"
0047 #include "BrachyDetectorConstruction.hh"
0048 #include "BrachyPhysicsList.hh"
0049 #include "BrachyPrimaryGeneratorAction.hh"
0050 #include "G4SDManager.hh"
0051 #include "Randomize.hh"
0052 #include "G4RunManager.hh"
0053 #include "G4SDManager.hh"
0054 #include "G4UImanager.hh"
0055 #include "G4UImessenger.hh"
0056 
0057 #include "G4ScoringManager.hh"
0058 #include "G4UIExecutive.hh"
0059 
0060 #include "G4ScoringManager.hh"
0061 #include "BrachyUserScoreWriter.hh"
0062 
0063 int main(int argc ,char ** argv)
0064 
0065 {
0066  
0067  
0068   auto* pRunManager = G4RunManagerFactory::CreateRunManager();
0069   G4int nThreads = 4;
0070   pRunManager->SetNumberOfThreads(nThreads);
0071  
0072   G4cout << "***********************" << G4endl;
0073   G4cout << "*** Seed: " << G4Random::getTheSeed() << " ***" << G4endl;
0074   G4cout << "***********************" << G4endl;
0075  
0076   
0077 
0078   G4ScoringManager* scoringManager = G4ScoringManager::GetScoringManager();
0079 
0080   
0081   scoringManager->SetScoreWriter(new BrachyUserScoreWriter());
0082 
0083   
0084   pRunManager -> SetUserInitialization(new BrachyPhysicsList);
0085 
0086   
0087   auto pDetectorConstruction = new  BrachyDetectorConstruction();
0088   pRunManager -> SetUserInitialization(pDetectorConstruction);
0089 
0090   
0091 
0092  auto actions = new BrachyActionInitialization();
0093   pRunManager->SetUserInitialization(actions);
0094 
0095   
0096  
0097 
0098   
0099   G4VisManager* visManager = new G4VisExecutive;
0100   visManager->Initialize();
0101 
0102   
0103   G4UImanager* UImanager = G4UImanager::GetUIpointer();
0104   if (argc == 1)   
0105     {
0106       auto ui = new G4UIExecutive(argc, argv);
0107       G4cout << " UI session starts ..." << G4endl;
0108       UImanager -> ApplyCommand("/control/execute VisualisationMacro.mac");
0109       ui -> SessionStart();
0110       delete ui;
0111     }
0112   else           
0113     {
0114       G4String command = "/control/execute ";
0115       G4String fileName = argv[1];
0116       UImanager -> ApplyCommand(command+fileName);
0117     }
0118 
0119   
0120  
0121 
0122   delete visManager;
0123   delete pRunManager;
0124 
0125   return 0;
0126 }