source: trunk/examples/advanced/purging_magnet/PurgMag.cc@ 1218

Last change on this file since 1218 was 807, checked in by garnier, 17 years ago

update

File size: 4.6 KB
RevLine 
[807]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// Code developed by:
27// S.Larsson
28//
29// *********************
30// * *
31// * PurgMag.cc *
32// * *
33// *********************
34//
35// $Id: PurgMag.cc,v 1.5 2006/06/29 16:05:47 gunter Exp $
36// GEANT4 tag $Name: $
37//
38// Comments: Main program for the Purgin Magnet example.
39//
40
41#include "G4RunManager.hh"
42#include "G4UImanager.hh"
43#include "G4UIterminal.hh"
44#include "Randomize.hh"
45
46#ifdef G4VIS_USE
47#include "G4VisExecutive.hh"
48#endif
49
50#include "PurgMagDetectorConstruction.hh"
51#include "PurgMagPhysicsList.hh"
52#include "PurgMagPrimaryGeneratorAction.hh"
53#include "PurgMagRunAction.hh"
54#include "PurgMagEventAction.hh"
55#include "PurgMagTrackingAction.hh"
56#include "PurgMagSteppingAction.hh"
57#include "PurgMagSteppingVerbose.hh"
58
59int main(int argc,char** argv) {
60
61 //choose the Random engine
62 CLHEP::HepRandom::setTheEngine(new CLHEP::RanecuEngine);
63
64 //PurgMag Verbose output class
65 G4VSteppingVerbose::SetInstance(new PurgMagSteppingVerbose);
66
67 // Construct the default run manager
68 G4RunManager * runManager = new G4RunManager;
69
70 // set mandatory initialization classes
71 PurgMagDetectorConstruction* detector = new PurgMagDetectorConstruction;
72 runManager->SetUserInitialization(detector);
73 runManager->SetUserInitialization(new PurgMagPhysicsList);
74
75 runManager->SetUserAction(new PurgMagPrimaryGeneratorAction(detector));
76
77#ifdef G4VIS_USE
78 // visualization manager
79 G4VisManager* visManager = new G4VisExecutive;
80 visManager->Initialize();
81#endif
82
83// output environment variables:
84#ifdef G4ANALYSIS_USE
85 G4cout << G4endl << G4endl << G4endl
86 << " User Environment " << G4endl
87 << " Using AIDA 3.0 analysis " << G4endl;
88# else
89 G4cout << G4endl << G4endl << G4endl
90 << " User Environment " << G4endl
91 << " G4ANALYSIS_USE environment variable not set, NO ANALYSIS "
92 << G4endl;
93#endif
94
95 // set user action classes
96 PurgMagRunAction* RunAct = new PurgMagRunAction(detector);
97 runManager->SetUserAction(RunAct);
98 runManager->SetUserAction(new PurgMagEventAction(RunAct));
99 runManager->SetUserAction(new PurgMagTrackingAction(RunAct));
100 runManager->SetUserAction(new PurgMagSteppingAction(RunAct,detector));
101
102 //Initialize G4 kernel
103 runManager->Initialize();
104
105 // get the pointer to the User Interface manager
106 G4UImanager* UI = G4UImanager::GetUIpointer();
107
108
109 if (argc==1) // Define UI session for interactive mode.
110 {
111 // G4UIterminal is a (dumb) terminal.
112 G4UIsession * session = new G4UIterminal;
113 UI->ApplyCommand("/control/execute vis.mac");
114 session->SessionStart();
115 delete session;
116 }
117 else // Batch mode
118 {
119 G4String command = "/control/execute ";
120 G4String fileName = argv[1];
121 UI->ApplyCommand(command+fileName);
122 }
123
124
125 // For bg jobs with 100000 events.
126 /*
127 int numberOfEvent = 100000;
128 runManager->BeamOn(numberOfEvent);
129 */
130
131
132 // job termination
133#ifdef G4VIS_USE
134 delete visManager;
135#endif
136 delete runManager;
137
138 return 0;
139}
140
Note: See TracBrowser for help on using the repository browser.