source: trunk/examples/advanced/xray_telescope/XrayTel.cc @ 1319

Last change on this file since 1319 was 1313, checked in by garnier, 14 years ago

geant4.9.4 beta rc0

File size: 5.4 KB
Line 
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//
27// **********************************************************************
28// *                                                                    *
29// *                    GEANT 4 xray_telescope advanced example         *
30// *                                                                    *
31// * MODULE:            XrayTel.cc                            main file *     
32// * -------                                                            *
33// *                                                                    *
34// * Version:           0.4                                             *
35// * Date:              06/11/00                                        *
36// * Author:            R Nartallo                                      *
37// * Organisation:      ESA/ESTEC, Noordwijk, THe Netherlands           *
38// *                                                                    *
39// **********************************************************************
40//
41// HISTORY
42// -------
43//
44// The development of this advanced example is based on earlier work
45// carried out by a team of Geant4 collaborators  to simulate the Chandra
46// and XMM X-ray observatories. The authors involved in those models are
47// J Apostolakis, P Arce, S Giani, F Lei, R Nartallo, S Magni,
48// P Truscott, L Urban
49//
50// **********************************************************************
51//
52// CHANGE HISTORY
53// --------------
54//
55// 05.12.2001 R. Nartallo
56// -Removed XM vis option
57//
58// 07.11.2001 M.G. Pia
59// - Modified the analysis management
60// - Small design iteration
61//
62// 30.11.2000 R. Nartallo, A. Pfeiffer
63// - Implementation of analysis manager code for histograming
64//
65// 15.11.2000 R. Nartallo
66// - Minor changes proposed by F. Lei to implement the GPS module now
67//   replacing the standard particle gun
68// - Remove commented lines related to old histograming code
69//
70// 06.11.2000 R.Nartallo
71// - First implementation of X-ray Telescope advanced example.
72// - Based on Chandra and XMM models
73// - Lines for using GAG and the histogram manager are commented out.
74//
75//
76// **********************************************************************
77
78#include "G4RunManager.hh"
79#include "G4UImanager.hh"
80#include "G4UIGAG.hh"
81#include "G4UIterminal.hh"
82#include "G4UItcsh.hh"
83#include "XrayTelDetectorConstruction.hh"
84#include "XrayTelPhysicsList.hh"
85#include "G4VisExecutive.hh"
86#include "XrayTelRunAction.hh"
87#include "XrayTelSteppingAction.hh"
88#include "XrayTelPrimaryGeneratorAction.hh"
89//#include <iostream.h>
90#include <vector>
91
92int main( int argc, char** argv )
93{
94  // Construct the default run manager
95  G4RunManager * runManager = new G4RunManager;
96
97  // set mandatory initialization classes
98  runManager->SetUserInitialization(new XrayTelDetectorConstruction ) ;
99  runManager->SetUserInitialization(new XrayTelPhysicsList);
100
101  // set mandatory user action class
102  runManager->SetUserAction(new XrayTelPrimaryGeneratorAction);
103  runManager->SetUserAction(new XrayTelRunAction);
104  runManager->SetUserAction(new XrayTelSteppingAction);
105
106  // visualization manager
107  G4VisManager* visManager = new G4VisExecutive;
108  visManager->Initialize();   
109
110  //Initialize G4 kernel
111  runManager->Initialize();
112   
113  // get the pointer to the User Interface manager
114  G4UImanager *UI = G4UImanager::GetUIpointer(); 
115  G4UIsession * session;
116  if ( argc==1 ){
117#ifdef G4UI_USE_TCSH
118    session = new G4UIterminal(new G4UItcsh);
119#else
120    session = new G4UIGAG;
121#endif
122    //G4UIsession * session = new G4UIterminal;
123    session->SessionStart();
124    delete session;
125  }
126  else {
127    // Create a pointer to the User Interface manager
128    G4String command = "/control/execute ";
129    for (int i=2; i<=argc; i++) {
130      G4String macroFileName = argv[i-1];
131      UI->ApplyCommand(command+macroFileName);
132    }
133  }                                 
134
135  // job termination
136  delete visManager;
137  delete runManager;
138  return 0;
139}
Note: See TracBrowser for help on using the repository browser.