|
|
Line 1: |
Line 1: |
- | /// \modified file electromagnetic/TestEm7/TestEm7.cc
| |
| | | |
- | #include "G4RunManager.hh"
| |
- | #include "G4UImanager.hh"
| |
- | #include "Randomize.hh"
| |
- |
| |
- | #include "DetectorConstruction.hh"
| |
- | #include "PhysicsList.hh"
| |
- | #include "PrimaryGeneratorAction.hh"
| |
- |
| |
- | #include "RunAction.hh"
| |
- | #include "EventAction.hh"
| |
- | #include "SteppingAction.hh"
| |
- | #include "SteppingVerbose.hh"
| |
- |
| |
- | #ifdef G4VIS_USE
| |
- | #include "G4VisExecutive.hh"
| |
- | #endif
| |
- |
| |
- | #ifdef G4UI_USE
| |
- | #include "G4UIExecutive.hh"
| |
- | #endif
| |
- |
| |
- | int main(int argc,char** argv) {
| |
- |
| |
- | //choose the Random engine
| |
- | CLHEP::HepRandom::setTheEngine(new CLHEP::RanecuEngine);
| |
- |
| |
- | //my Verbose output class
| |
- | G4VSteppingVerbose::SetInstance(new SteppingVerbose);
| |
- |
| |
- | //Construct the default run manager
| |
- | G4RunManager * runManager = new G4RunManager;
| |
- |
| |
- | //set mandatory initialization classes
| |
- | DetectorConstruction* det = new DetectorConstruction();
| |
- | PhysicsList* phys = new PhysicsList();
| |
- |
| |
- | runManager->SetUserInitialization(det);
| |
- | runManager->SetUserInitialization(phys);
| |
- |
| |
- | //set user action classes
| |
- | PrimaryGeneratorAction* kin = new PrimaryGeneratorAction(det);
| |
- | RunAction* run = new RunAction(det,phys,kin);
| |
- | EventAction* event = new EventAction();
| |
- | SteppingAction* step = new SteppingAction(det,run);
| |
- |
| |
- | runManager->SetUserAction(kin);
| |
- | runManager->SetUserAction(run);
| |
- | runManager->SetUserAction(event);
| |
- | runManager->SetUserAction(step);
| |
- |
| |
- | //get the pointer to the User Interface manager
| |
- | G4UImanager* UI = G4UImanager::GetUIpointer();
| |
- |
| |
- | if (argc!=1) // batch mode
| |
- | {
| |
- | G4String command = "/control/execute ";
| |
- | G4String fileName = argv[1];
| |
- | UI->ApplyCommand(command+fileName);
| |
- | }
| |
- |
| |
- | else //define visualization and UI terminal for interactive mode
| |
- | {
| |
- | #ifdef G4VIS_USE
| |
- | G4VisManager* visManager = new G4VisExecutive;
| |
- | visManager->Initialize();
| |
- | #endif
| |
- |
| |
- | #ifdef G4UI_USE
| |
- | G4UIExecutive * ui = new G4UIExecutive(argc,argv);
| |
- | ui->SessionStart();
| |
- | delete ui;
| |
- | #endif
| |
- |
| |
- | #ifdef G4VIS_USE
| |
- | delete visManager;
| |
- | #endif
| |
- | }
| |
- |
| |
- | //job termination
| |
- | delete runManager;
| |
- |
| |
- | return 0;
| |
- | }
| |