BmnRoot
26.10.0-18-g4e3414f9
Software framework of the BM@N experiment
Toggle main menu visibility
Loading...
Searching...
No Matches
g4libs.C
Go to the documentation of this file.
1
/// \file g4libs.C
2
/// \brief Macro for loading Geant4 and Geant4 VMC libraries
3
4
void
g4libs
()
5
{
6
/// Macro function for loading Geant4 granular libraries.
7
/// Change the comment if global libraries are used.
8
9
g4libs_granular
();
10
// g4libs_global();
11
}
12
13
Bool_t
isSet
(
const
char
* variable)
14
{
15
/// Helper function which checks if the specified environment variable
16
/// is set.
17
/// \param variable The environment variable name
18
19
TString
value =
gSystem
->Getenv(variable);
20
if
(value !=
""
)
21
return
true
;
22
23
return
false
;
24
}
25
26
Bool_t
isLibrary
(
const
char
* libName)
27
{
28
/// Helper function which testes the existence of the given library
29
/// \param libName The library name
30
31
if
(
TString
(
gSystem
->DynamicPathName(libName,
kTRUE
)) !=
TString
(
""
))
32
return
kTRUE
;
33
else
34
return
kFALSE
;
35
}
36
37
void
vgmlibs
()
38
{
39
/// Macro function for loading VGM libraries.
40
41
if
(
isSet
(
"USE_VGM"
)) {
42
cout <<
"Loading VGM libraries ... "
<< endl;
43
gSystem
->Load(
"libClhepVGM"
);
44
gSystem
->Load(
"libBaseVGM"
);
45
gSystem
->Load(
"libGeant4GM"
);
46
gSystem
->Load(
"libRootGM"
);
47
gSystem
->Load(
"libXmlVGM"
);
48
}
49
}
50
51
void
g4libs_graphics
(
Bool_t
granular =
true
)
52
{
53
/// Macro function for loading Geant4 graphics libraries,
54
/// external packages: graphics drivers, .. used by Geant4.
55
56
// Graphics configuration
57
Bool_t
isXt =
isSet
(
"G4VIS_BUILD_OPACS_DRIVER"
) ||
isSet
(
"G4VIS_BUILD_OPENGLXM_DRIVER"
)
58
||
isSet
(
"G4VIS_BUILD_OIX_DRIVER"
) ||
isSet
(
"G4UI_BUILD_XM_SESSION"
)
59
||
isSet
(
"G4UI_BUILD_XAW_SESSION"
) ||
isSet
(
"G4UI_BUILD_WO_SESSION"
);
60
Bool_t
isXm =
isSet
(
"G4VIS_BUILD_OPENGLXM_DRIVER"
) ||
isSet
(
"G4UI_BUILD_XM_SESSION"
);
61
Bool_t
isXaw =
isSet
(
"G4UI_BUILD_XAW_SESSION"
);
62
Bool_t
isGAG = !
isSet
(
"G4UI_NONE"
) &&
isSet
(
"G4UI_USE_GAG"
);
63
Bool_t
isDAWN = !
isSet
(
"G4VIS_NONE"
);
64
Bool_t
isOpenGL =
65
!
isSet
(
"G4VIS_NONE"
) && (
isSet
(
"G4VIS_BUILD_OPENGLX_DRIVER"
) ||
isSet
(
"G4VIS_BUILD_OPENGLXM_DRIVER"
));
66
Bool_t
isOIX = !
isSet
(
"G4VIS_NONE"
) && (
isSet
(
"G4VIS_BUILD_OIX_DRIVER"
) ||
isSet
(
"G4VIS_BUILD_OI_DRIVER"
));
67
Bool_t
isVRML = !
isSet
(
"G4VIS_NONE"
);
68
Bool_t
isRayTracer = !
isSet
(
"G4VIS_NONE"
);
69
70
// Geant4 interfaces
71
//
72
if
(isXt) {
73
gSystem
->Load(
"libXt"
);
74
}
75
if
(isXm) {
76
gSystem
->Load(
"libXm"
);
77
}
78
if
(isXaw) {
79
gSystem
->Load(
"libXaw"
);
80
}
81
82
if
(granular) {
83
gSystem
->Load(
"libG4UIcommon"
);
84
gSystem
->Load(
"libG4UIbasic"
);
85
}
else
86
gSystem
->Load(
"libG4interfaces"
);
87
88
if
(isGAG)
89
gSystem
->Load(
"libG4UIGAG"
);
90
91
// Geant4 visualization
92
//
93
gSystem
->Load(
"libG4modeling"
);
94
gSystem
->Load(
"libG4vis_management"
);
95
gSystem
->Load(
"libG4Tree"
);
96
gSystem
->Load(
"libG4visHepRep"
);
97
gSystem
->Load(
"libG4visXXX"
);
98
if
(isDAWN)
99
gSystem
->Load(
"libG4FR"
);
100
if
(isOpenGL) {
101
gSystem
->Load(
"libGLU"
);
102
gSystem
->Load(
"libGL"
);
103
gSystem
->Load(
"libG4OpenGL"
);
104
}
105
if
(isOIX) {
106
cout <<
"loading OpenInventor"
<< endl;
107
gSystem
->Load(
"libInventor"
);
108
gSystem
->Load(
"libG4OpenInventor"
);
109
}
110
if
(isVRML)
111
gSystem
->Load(
"libG4VRML"
);
112
if
(isRayTracer)
113
gSystem
->Load(
"libG4RayTracer"
);
114
}
115
116
void
g4libs_granular
()
117
{
118
/// Macro function for loading Geant4 granular libraries, Geant4 VMC library
119
/// and external packages: CLHEP, graphics drivers, .. used by Geant4.
120
121
cout <<
"Loading Geant4 granular libraries ..."
<< endl;
122
123
// CLHEP
124
gSystem
->Load(
"libCLHEP"
);
125
126
// G4 categories
127
128
// global
129
gSystem
->Load(
"libG4globman"
);
130
gSystem
->Load(
"libG4hepnumerics"
);
131
132
// graphics_reps
133
gSystem
->Load(
"libG4graphics_reps"
);
134
135
// intercoms
136
gSystem
->Load(
"libG4intercoms"
);
137
138
// materials
139
gSystem
->Load(
"libG4materials"
);
140
141
// geometry
142
gSystem
->Load(
"libG4geometrymng"
);
143
gSystem
->Load(
"libG4magneticfield"
);
144
gSystem
->Load(
"libG4volumes"
);
145
gSystem
->Load(
"libG4navigation"
);
146
gSystem
->Load(
"libG4geomBoolean"
);
147
gSystem
->Load(
"libG4csg"
);
148
gSystem
->Load(
"libG4brep"
);
149
gSystem
->Load(
"libG4specsolids"
);
150
gSystem
->Load(
"libG4geombias"
);
151
gSystem
->Load(
"libG4geomdivision"
);
152
153
// particles
154
gSystem
->Load(
"libG4partman"
);
155
gSystem
->Load(
"libG4partutils"
);
156
gSystem
->Load(
"libG4bosons"
);
157
gSystem
->Load(
"libG4baryons"
);
158
gSystem
->Load(
"libG4ions"
);
159
gSystem
->Load(
"libG4mesons"
);
160
gSystem
->Load(
"libG4leptons"
);
161
gSystem
->Load(
"libG4shortlived"
);
162
163
// track
164
gSystem
->Load(
"libG4track"
);
165
166
// processes
167
gSystem
->Load(
"libG4procman"
);
168
gSystem
->Load(
"libG4parameterisation"
);
169
gSystem
->Load(
"libG4transportation"
);
170
gSystem
->Load(
"libG4cuts"
);
171
gSystem
->Load(
"libG4decay"
);
172
173
gSystem
->Load(
"libG4emutils"
);
174
gSystem
->Load(
"libG4emstandard"
);
175
gSystem
->Load(
"libG4emlowenergy"
);
176
gSystem
->Load(
"libG4muons"
);
177
gSystem
->Load(
"libG4xrays"
);
178
gSystem
->Load(
"libG4optical"
);
179
180
gSystem
->Load(
"libG4hadronic_util"
);
181
gSystem
->Load(
"libG4hadronic_xsect"
);
182
gSystem
->Load(
"libG4hadronic_stop"
);
183
gSystem
->Load(
"libG4hadronic_mgt"
);
184
gSystem
->Load(
"libG4hadronic_proc"
);
185
gSystem
->Load(
"libG4had_mod_man.so"
);
186
gSystem
->Load(
"libG4had_im_r_matrix.so"
);
187
gSystem
->Load(
"libG4had_string_man.so"
);
188
gSystem
->Load(
"libG4had_string_diff.so"
);
189
gSystem
->Load(
"libG4had_string_frag.so"
);
190
gSystem
->Load(
"libG4had_mod_util.so"
);
191
gSystem
->Load(
"libG4hadronic_qgstring"
);
192
gSystem
->Load(
"libG4hadronic_HE"
);
193
gSystem
->Load(
"libG4hadronic_LE"
);
194
gSystem
->Load(
"libG4hadronic_deex_util"
);
195
gSystem
->Load(
"libG4hadronic_bert_cascade.so"
);
196
gSystem
->Load(
"libG4had_muon_nuclear.so"
);
197
gSystem
->Load(
"libG4had_neu_hp.so"
);
198
gSystem
->Load(
"libG4had_preequ_exciton.so"
);
199
gSystem
->Load(
"libG4had_theo_max.so"
);
200
gSystem
->Load(
"libG4hadronic_binary.so"
);
201
gSystem
->Load(
"libG4hadronic_body_ci.so"
);
202
gSystem
->Load(
"libG4hadronic_coherent_elastic.so"
);
203
gSystem
->Load(
"libG4hadronic_deex_management.so"
);
204
gSystem
->Load(
"libG4hadronic_deex_gem_evaporation.so"
);
205
gSystem
->Load(
"libG4hadronic_deex_evaporation.so"
);
206
gSystem
->Load(
"libG4hadronic_deex_fermi_breakup.so"
);
207
gSystem
->Load(
"libG4hadronic_deex_fission.so"
);
208
gSystem
->Load(
"libG4hadronic_deex_handler.so"
);
209
gSystem
->Load(
"libG4hadronic_deex_multifragmentation.so"
);
210
gSystem
->Load(
"libG4hadronic_deex_photon_evaporation.so"
);
211
gSystem
->Load(
"libG4hadronic_hetcpp_evaporation.so"
);
212
gSystem
->Load(
"libG4hadronic_hetcpp_utils.so"
);
213
gSystem
->Load(
"libG4hadronic_interface_ci.so"
);
214
gSystem
->Load(
"libG4hadronic_iso.so"
);
215
gSystem
->Load(
"libG4hadronic_leading_particle.so"
);
216
gSystem
->Load(
"libG4hadronic_radioactivedecay.so"
);
217
218
// tracking
219
gSystem
->Load(
"libG4tracking"
);
220
221
// digits_hits
222
gSystem
->Load(
"libG4hits"
);
223
gSystem
->Load(
"libG4digits"
);
224
gSystem
->Load(
"libG4detutils"
);
225
gSystem
->Load(
"libG4detector"
);
226
227
// parameterisation
228
gSystem
->Load(
"libG4gflash"
);
229
// gSystem->Load("libG4trdmodels");
230
231
// event
232
gSystem
->Load(
"libG4event"
);
233
234
// readout
235
gSystem
->Load(
"libG4readout"
);
236
237
// run
238
gSystem
->Load(
"libG4run"
);
239
240
// g3tog4
241
gSystem
->Load(
"libG3toG4"
);
242
243
// interfaces and graphics
244
g4libs_graphics
();
245
246
// physics lists
247
gSystem
->Load(
"libG4phys_builders"
);
248
gSystem
->Load(
"libG4phys_lists"
);
249
250
// VGM libraries
251
vgmlibs
();
252
253
// G4Root library (if available)
254
if
(
isLibrary
(
"libG4root"
))
255
gSystem
->Load(
"libG4root"
);
256
257
// Geant4 VMC library
258
gSystem
->Load(
"libgeant4vmc"
);
259
260
cout <<
"Loading libraries ... finished"
<< endl;
261
}
262
263
void
g4libs_global
()
264
{
265
/// Macro function for loading Geant4 global libraries, Geant4 VMC library
266
/// and external packages: CLHEP, graphics drivers, .. used by Geant4
267
268
cout <<
"Loading Geant4 global libraries ..."
<< endl;
269
270
// CLHEP
271
gSystem
->Load(
"$(CLHEP_BASE_DIR)/lib/libCLHEP"
);
272
273
// Geant4
274
gSystem
->Load(
"libG4global"
);
275
gSystem
->Load(
"libG4graphics_reps"
);
276
gSystem
->Load(
"libG4intercoms"
);
277
gSystem
->Load(
"libG4materials"
);
278
gSystem
->Load(
"libG4geometry"
);
279
gSystem
->Load(
"libG4particles"
);
280
gSystem
->Load(
"libG4track"
);
281
gSystem
->Load(
"libG4processes"
);
282
gSystem
->Load(
"libG4tracking"
);
283
gSystem
->Load(
"libG4digits_hits"
);
284
gSystem
->Load(
"libG4event"
);
285
gSystem
->Load(
"libG4readout"
);
286
gSystem
->Load(
"libG4run"
);
287
gSystem
->Load(
"libG3toG4"
);
288
289
// interfaces and graphics
290
g4libs_graphics
(
false
);
291
292
// VGM libraries
293
vgmlibs
();
294
295
// geant4 VMC
296
gSystem
->Load(
"libgeant4vmc"
);
297
298
cout <<
"Loading libraries ... finished"
<< endl;
299
}
Bool_t
bool Bool_t
kFALSE
constexpr Bool_t kFALSE
kTRUE
constexpr Bool_t kTRUE
gSystem
R__EXTERN TSystem * gSystem
TString
g4libs_global
void g4libs_global()
Definition
g4libs.C:263
vgmlibs
void vgmlibs()
Definition
g4libs.C:37
isSet
Bool_t isSet(const char *variable)
Definition
g4libs.C:13
g4libs
void g4libs()
Definition
g4libs.C:4
g4libs_graphics
void g4libs_graphics(Bool_t granular=true)
Definition
g4libs.C:51
g4libs_granular
void g4libs_granular()
Definition
g4libs.C:116
isLibrary
Bool_t isLibrary(const char *libName)
Definition
g4libs.C:26
install
gconfig
g4libs.C
Generated on
for BmnRoot by
1.17.0