BmnRoot 26.10.0-18-g4e3414f9
Software framework of the BM@N experiment
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
4void g4libs()
5{
6 /// Macro function for loading Geant4 granular libraries.
7 /// Change the comment if global libraries are used.
8
10 // g4libs_global();
11}
12
13Bool_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
26Bool_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
37void 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
51void 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
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
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
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 Bool_t
constexpr Bool_t kFALSE
constexpr Bool_t kTRUE
R__EXTERN TSystem * gSystem
void g4libs_global()
Definition g4libs.C:263
void vgmlibs()
Definition g4libs.C:37
Bool_t isSet(const char *variable)
Definition g4libs.C:13
void g4libs()
Definition g4libs.C:4
void g4libs_graphics(Bool_t granular=true)
Definition g4libs.C:51
void g4libs_granular()
Definition g4libs.C:116
Bool_t isLibrary(const char *libName)
Definition g4libs.C:26