Loading...
Searching...
No Matches
exampleP01.cc
Go to the documentation of this file.
1//
2// ********************************************************************
3// * License and Disclaimer *
4// * *
5// * The Geant4 software is copyright of the Copyright Holders of *
6// * the Geant4 Collaboration. It is provided under the terms and *
7// * conditions of the Geant4 Software License, included in the file *
8// * LICENSE and available at http://cern.ch/geant4/license . These *
9// * include a list of copyright holders. *
10// * *
11// * Neither the authors of this software system, nor their employing *
12// * institutes,nor the agencies providing financial support for this *
13// * work make any representation or warranty, express or implied, *
14// * regarding this software system or assume any liability for its *
15// * use. Please see the license in the file LICENSE and URL above *
16// * for the full disclaimer and the limitation of liability. *
17// * *
18// * This code implementation is the result of the scientific and *
19// * technical work of the GEANT4 collaboration. *
20// * By using, copying, modifying or distributing the software (or *
21// * any work based on the software) you agree to acknowledge its *
22// * use in resulting scientific publications, and indicate your *
23// * acceptance of all terms of the Geant4 Software license. *
24// ********************************************************************
25//
26/// \file persistency/P01/exampleP01.cc
27/// \brief Main program of the persistency/P01 example
28//
29//
30//
31//
32//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
33//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
34
35#include "G4Types.hh"
36
39#include "ExP01RunAction.hh"
40#include "ExP01EventAction.hh"
43
44#include "FTFP_BERT.hh"
45
46#include "G4RunManagerFactory.hh"
47#include "G4UImanager.hh"
48
49#include "G4VisExecutive.hh"
50#include "G4UIExecutive.hh"
51
52//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
53
54int main(int argc,char** argv) {
55
56 // Instantiate G4UIExecutive if interactive mode
57 G4UIExecutive* ui = nullptr;
58 if ( argc == 1 ) {
59 ui = new G4UIExecutive(argc, argv);
60 }
61
62 //my Verbose output class
63 G4VSteppingVerbose::SetInstance(new ExP01SteppingVerbose);
64
65 // Run manager
66 auto* runManager = G4RunManagerFactory::CreateRunManager(G4RunManagerType::SerialOnly);
67
68 // UserInitialization classes (mandatory)
70 runManager->SetUserInitialization(ExP01detector);
71
72 G4VModularPhysicsList* physicsList = new FTFP_BERT;
73 runManager->SetUserInitialization(physicsList);
74
75 // Visualization
76 G4VisManager* visManager = new G4VisExecutive;
77 visManager->Initialize();
78
79 // UserAction classes
80 runManager->SetUserAction(new ExP01PrimaryGeneratorAction(ExP01detector));
81 runManager->SetUserAction(new ExP01RunAction);
82 runManager->SetUserAction(new ExP01EventAction);
83 runManager->SetUserAction(new ExP01SteppingAction);
84
85 //Initialize G4 kernel
86 runManager->Initialize();
87
88 //get the pointer to the User Interface manager
89 G4UImanager * UImanager = G4UImanager::GetUIpointer();
90
91 if(ui)
92 // Define (G)UI terminal for interactive mode
93 {
94 UImanager->ApplyCommand("/control/execute vis.mac");
95 ui->SessionStart();
96 delete ui;
97 }
98 else
99 // Batch mode
100 {
101 G4String command = "/control/execute ";
102 G4String fileName = argv[1];
103 UImanager->ApplyCommand(command+fileName);
104 }
105
106 delete visManager;
107
108 delete runManager;
109
110 return 0;
111}
112
113//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
114
Definition of the ExP01DetectorConstruction class.
Definition of the ExP01EventAction class.
Definition of the ExP01PrimaryGeneratorAction class.
Definition of the ExP01RunAction class.
Definition of the ExP01SteppingAction class.
Definition of the ExP01SteppingVerbose class.
Detector Construction for the persistency example.
Event action for the persistency example.
Primary generator action for the persistency example.
Run action for the persistency example.
Stepping action for the persistency example.
Stepping verbose for the persistency example.
int main()
Definition testCommon.cc:47

Applications | User Support | Publications | Collaboration