ECCE @ EIC Software
Reference for
ECCE @ EIC
simulation and reconstruction software on GitHub
Home page
Related Pages
Modules
Namespaces
Classes
Files
External Links
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Groups
Pages
XrayTel.cc
Go to the documentation of this file.
Or view
the newest version in sPHENIX GitHub for file XrayTel.cc
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 "
G4Types.hh
"
79
80
#ifdef G4MULTITHREADED
81
#include "
G4MTRunManager.hh
"
82
#else
83
#include "
G4RunManager.hh
"
84
#endif
85
86
#include "
G4UImanager.hh
"
87
#include "
XrayTelDetectorConstruction.hh
"
88
#include "
XrayTelPhysicsList.hh
"
89
#include "
XrayTelActionInitializer.hh
"
90
#include "
G4VisExecutive.hh
"
91
#include "
G4UIExecutive.hh
"
92
93
int
main
(
int
argc,
char
** argv )
94
{
95
// Construct the default run manager
96
#ifdef G4MULTITHREADED
97
G4MTRunManager
* runManager =
new
G4MTRunManager
;
98
#else
99
G4RunManager
* runManager =
new
G4RunManager
;
100
#endif
101
102
// set mandatory initialization classes
103
runManager->
SetUserInitialization
(
new
XrayTelDetectorConstruction
) ;
104
runManager->
SetUserInitialization
(
new
XrayTelPhysicsList
);
105
runManager->
SetUserInitialization
(
new
XrayTelActionInitializer
());
106
107
// visualization manager
108
G4VisManager
* visManager =
new
G4VisExecutive
;
109
visManager->
Initialize
();
110
111
//Initialize G4 kernel
112
runManager->
Initialize
();
113
114
// get the pointer to the User Interface manager
115
G4UImanager
*UImanager =
G4UImanager::GetUIpointer
();
116
if
( argc==1 ){
117
G4UIExecutive
* ui =
new
G4UIExecutive
(argc, argv);
118
UImanager->
ApplyCommand
(
"/control/execute vis.mac"
);
119
ui->
SessionStart
();
120
delete
ui;
121
}
122
else
{
123
// Create a pointer to the User Interface manager
124
G4String
command =
"/control/execute "
;
125
for
(
int
i=2; i<=argc; i++) {
126
G4String
macroFileName = argv[i-1];
127
UImanager->
ApplyCommand
(command+macroFileName);
128
}
129
}
130
131
// job termination
132
delete
visManager;
133
delete
runManager;
134
return
0;
135
}
geant4
tree
geant4-10.6-release
examples
advanced
xray_telescope
XrayTel.cc
Built by
Jin Huang
. updated:
Wed Jun 29 2022 17:25:01
using
1.8.2 with
ECCE GitHub integration