Geant4 Cross Reference |
1 // 1 2 // ******************************************* 3 // * License and Disclaimer 4 // * 5 // * The Geant4 software is copyright of th 6 // * the Geant4 Collaboration. It is provided 7 // * conditions of the Geant4 Software License 8 // * LICENSE and available at http://cern.ch/ 9 // * include a list of copyright holders. 10 // * 11 // * Neither the authors of this software syst 12 // * institutes,nor the agencies providing fin 13 // * work make any representation or warran 14 // * regarding this software system or assum 15 // * use. Please see the license in the file 16 // * for the full disclaimer and the limitatio 17 // * 18 // * This code implementation is the result 19 // * technical work of the GEANT4 collaboratio 20 // * By using, copying, modifying or distri 21 // * any work based on the software) you ag 22 // * use in resulting scientific publicati 23 // * acceptance of all terms of the Geant4 Sof 24 // ******************************************* 25 // 26 // Gorad (Geant4 Open-source Radiation Analys 27 // 28 // Author : Makoto Asai (SLAC National Accele 29 // 30 // Development of Gorad is funded by NASA Joh 31 // under the contract NNJ15HK11B. 32 // 33 // ******************************************* 34 // 35 // GRInitialization.hh 36 // Defines the initialization procedure of G 37 // 38 // History 39 // September 8th, 2020 : first implementatio 40 // 41 // ******************************************* 42 43 #include "GRInitialization.hh" 44 45 #include "GRDetectorConstruction.hh" 46 #include "GRPhysicsList.hh" 47 #include "GRActionInitialization.hh" 48 #include "GRPrimGenActionMessenger.hh" 49 #include "G4GenericMessenger.hh" 50 #include "GRGeomBiasMessenger.hh" 51 #include "GRScoreWriter.hh" 52 53 #include "G4RunManager.hh" 54 #include "G4ScoringManager.hh" 55 #include "G4UIdirectory.hh" 56 #include "G4UnitsTable.hh" 57 58 #include <CLHEP/Units/SystemOfUnits.h> 59 60 GRInitialization::GRInitialization(G4int verbo 61 : verboseLevel(verboseLvl) 62 { 63 // adding unites 64 new G4UnitDefinition("milligray","mGy","Dose 65 new G4UnitDefinition("microgray","muGy","Dos 66 new G4UnitDefinition("nanogray","nGy","Dose" 67 68 G4ScoringManager::GetScoringManager()->SetSc 69 70 messenger = new G4GenericMessenger(this,"/go 71 auto& initCmd = messenger->DeclareMethod("in 72 &GRInitialization::Initialize,"Initia 73 initCmd.SetToBeBroadcasted(false); 74 initCmd.SetStates(G4State_PreInit); 75 76 detector = new GRDetectorConstruction(); 77 physics = new GRPhysicsList(); 78 actionInitialization = new GRActionInitializ 79 sourceMessenger = new GRPrimGenActionMesseng 80 geomBiasMessenger = new GRGeomBiasMessenger( 81 } 82 83 GRInitialization::~GRInitialization() 84 { 85 delete geomBiasMessenger; 86 delete sourceMessenger; 87 delete messenger; 88 } 89 90 void GRInitialization::Initialize() 91 { 92 auto runManager = G4RunManager::GetRunManage 93 runManager->SetUserInitialization(detector); 94 runManager->SetUserInitialization(physics); 95 runManager->SetUserInitialization(actionInit 96 if(verboseLevel>0) G4cout << "GORAD is initi 97 runManager->Initialize(); 98 sourceMessenger->UpdateParticleList(); 99 } 100 101 #include "G4UIExecutive.hh" 102 #ifdef G4UI_USE_QT 103 #include "G4UIQt.hh" 104 #endif 105 106 void GRInitialization::SetWindowText(G4UIExecu 107 { 108 // If the current GUI is not G4UIQt, do noth 109 if(!(ui->IsGUI())) return; 110 111 #ifdef G4UI_USE_QT 112 G4UIQt* qt = dynamic_cast<G4UIQt*>(ui->GetSe 113 if(!qt) return; 114 115 qt->SetStartPage(std::string("<table width=' 116 "style='color: rgb(140, 31, 31); font-s 117 "padding-bottom: 0px; font-weight: norm 118 "</div></td></td></tr></table>"+ 119 "<p> </p>"+ 120 "<div><dl>"+ 121 "<dd><b>Gorad (Geant4 Open-source Rad 122 "a turn-key application for radiation 123 "built on top of Geant4. Simulation g 124 "Gorad is developed under the NASA JS 125 "</dd></dl></div>"+ 126 "<p> </p>"+ 127 "<div style='background:#EEEEEE;'><b>To 128 "<li><b>Start an interactive run :</b 129 "/control/execute <i>run.mac</i><br / 130 "/run/beamOn <i>number_of_events</i>< 131 "<div style='background:#EEEEEE;'><b>Do 132 "<li><i>"+ 133 "<b>GORAD manual</b> and a sample Ori 134 "<a href='https://twiki.cern.ch/twiki 135 "https://twiki.cern.ch/twiki/bin/view 136 "</a></i></li>"+ 137 "</ul></div>" 138 ); 139 #endif 140 } 141 142