#include "DetectorConstruction.hh" #include "PrimaryGeneratorAction.hh" #include "SteppingAction.hh" #include "StackingAction.hh" #include "EventAction.hh" #include "PhysicsList.hh" #include "RunAction.hh" #include "AnalysisManager.hh" #include "TrackingAction.hh" #include "G4RunManager.hh" #include "G4UImanager.hh" #include "G4UIterminal.hh" #include "G4UItcsh.hh" //#ifdef G4VIS_USE #include "G4VisExecutive.hh" //#endif int main(int argc, char** argv) { // Run manager G4RunManager * runManager = new G4RunManager; //#ifdef G4VIS_USE // Visualization, if you choose to have it! G4VisManager* visManager = new G4VisExecutive; visManager->Initialize(); //#endif AnalysisManager* analysismanager = new AnalysisManager(); // UserInitialization classes (mandatory) DetectorConstruction* detectorconstruction = new DetectorConstruction(); runManager->SetUserInitialization(detectorconstruction); runManager->SetUserInitialization(new PhysicsList); // UserAction classes PrimaryGeneratorAction* primarygeneratoraction = new PrimaryGeneratorAction(analysismanager,detectorconstruction); runManager->SetUserAction(primarygeneratoraction); EventAction* eventaction = new EventAction(analysismanager); runManager->SetUserAction(eventaction); SteppingAction* steppingaction = new SteppingAction(eventaction); runManager->SetUserAction(steppingaction); StackingAction* stackingaction = new StackingAction(); runManager->SetUserAction(stackingaction); TrackingAction* trackingaction = new TrackingAction(); runManager->SetUserAction(trackingaction); RunAction* runaction = new RunAction(analysismanager); runManager->SetUserAction(runaction); //get the pointer to the User Interface manager G4UImanager * UImanager = G4UImanager::GetUIpointer(); if (argc>=3) { for (int ia=2;iaApplyCommand(cmd); } } } if(argc>1) // execute an argument macro file if exist { G4String command = "/control/execute "; G4String fileName = argv[1]; UImanager->ApplyCommand(command+fileName); } //else //start interactive session //{ //G4UIsession* session = new G4UIterminal(new G4UItcsh); //session->SessionStart(); //delete session; // } //#ifdef G4VIS_USE delete visManager; //#endif delete runManager; return 0; }