#include "G4Types.hh" #ifdef G4MULTITHREADED #include "G4MTRunManager.hh" #else #include "G4RunManager.hh" #endif #include "G4UImanager.hh" #include "G4VisExecutive.hh" #include "G4UIExecutive.hh" #include "G4TScoreNtupleWriter.hh" #include "Randomize.hh" #include "G4String.hh" #include "G4UImanager.hh" #include "ActionInitialization.hh" #include "DetectorConstruction.hh" #include "QGSP_BIC_HP.hh" #include "G4ThermalNeutrons.hh" #include "G4RadioactiveDecayPhysics.hh" #include "G4GDMLParser.hh" #include "G4ScoringManager.hh" int main(int argc,char** argv) { // Detect interactive mode (if no arguments) and define UI session G4Random::setTheEngine(new CLHEP::MixMaxRng()); G4Random::setTheSeed(10000); std::cout << "Application starting..." << std::endl; G4UIExecutive* ui = 0; if ( argc == 1 ) { ui = new G4UIExecutive(argc, argv); } #ifdef G4MULTITHREADED G4MTRunManager* runManager = new G4MTRunManager; #else G4RunManager* runManager = new G4RunManager; #endif // Set mandatory initialization classes G4GDMLParser parser; parser.Read("/homes/sanchitsharma/Geant4/CNEC/Improved_NaI/source/src/tool.gdml"); G4VModularPhysicsList* phys = new QGSP_BIC_HP(1); phys->RegisterPhysics(new G4ThermalNeutrons(1)); runManager->SetUserInitialization(phys); runManager->SetUserInitialization(new DetectorConstruction()); runManager->SetUserInitialization(new ActionInitialization()); // Initialize visualization G4VisManager* visManager = new G4VisExecutive; visManager->Initialize(); G4UImanager* UImanager = G4UImanager::GetUIpointer(); if ( ! ui ) { // batch mode G4String command = "/run/initialize"; G4String fileName = argv[1]; UImanager->ApplyCommand(command+fileName); } else { // interactive mode UImanager->ApplyCommand("/control/execute /home/g4_linux/Desktop/NaI_Structure/source/macros/neutrons_g.mac"); ui->SessionStart(); delete ui; } delete visManager; delete runManager; }