25 LOG(warning) <<
"FairGenericVMCConfig::Setup() Using gConfig.C macro DEPRACATED.";
26 LOG(warning) <<
"Check FairRoot/examples/common/gconfig/ for current YAML implementation.";
31 TString work = getenv(
"VMCWORKDIR");
32 TString work_config = work +
"/gconfig/";
33 work_config.ReplaceAll(
"//",
"/");
35 TString Lib_config = getenv(
"GEANT4VMC_MACRO_DIR");
36 Lib_config.ReplaceAll(
"//",
"/");
37 if (!Lib_config.EndsWith(
"/") && !Lib_config.IsNull()) {
41 TString config_dir = getenv(
"CONFIG_DIR");
42 config_dir.ReplaceAll(
"//",
"/");
44 Bool_t AbsPath = kFALSE;
49 TString cuts = lUserCuts;
51 if (strcmp(mcEngine,
"TGeant4") == 0) {
52 TString g4LibMacro =
"g4libs.C";
54 if (lUserConfig.IsNull()) {
55 g4Macro =
"g4Config.C";
56 lUserConfig = g4Macro;
58 if (lUserConfig.Contains(
"/")) {
61 g4Macro = lUserConfig;
62 LOG(info) <<
"---------------User config is used: " << g4Macro.Data();
64 if (TString(gSystem->FindFile(config_dir.Data(), g4LibMacro))
66 LOG(info) <<
"---User path for Configuration (g4libs.C) is used: " << config_dir.Data();
67 LibMacro = g4LibMacro;
68 }
else if (gSystem->AccessPathName((Lib_config +
"g4libs.C").Data()) ==
false) {
70 LOG(info) <<
"---G4VMC macro path for Configuration (g4libs.C) is used: " << Lib_config.Data();
71 LibMacro = Lib_config +
"g4libs.C";
73 LibFunction =
"g4libs()";
74 if (!AbsPath && TString(gSystem->FindFile(config_dir.Data(), g4Macro)) != TString(
"")) {
75 LOG(info) <<
"---User path for Configuration (g4Config.C) is used: " << config_dir.Data();
76 ConfigMacro = g4Macro;
79 ConfigMacro = lUserConfig;
81 ConfigMacro = work_config + lUserConfig;
85 }
else if (strcmp(mcEngine,
"TGeant3") == 0) {
86 TString g3LibMacro =
"g3libs.C";
87 TString g3Macro =
"g3Config.C";
88 if (lUserConfig.IsNull()) {
89 g3Macro =
"g3Config.C";
90 lUserConfig = g3Macro;
91 LOG(info) <<
"-------------- Standard Config is called ------------------------------------";
93 if (lUserConfig.Contains(
"/")) {
96 g3Macro = lUserConfig;
97 LOG(info) <<
"---------------User config is used: " << g3Macro.Data();
99 if (TString(gSystem->FindFile(config_dir.Data(), g3LibMacro)) != TString(
"")) {
100 LOG(info) <<
"---User path for Configuration (g3libs.C) is used: " << config_dir.Data();
101 LibMacro = g3LibMacro;
102 }
else if (gSystem->AccessPathName((work_config +
"g3libs.C").Data()) ==
false) {
104 LOG(info) <<
"---VMCWORKDIR path for Configuration (g3libs.C) is used: " << work_config.Data();
105 LibMacro = work_config +
"g3libs.C";
107 LibFunction =
"g3libs()";
108 if (!AbsPath && TString(gSystem->FindFile(config_dir.Data(), g3Macro)) != TString(
"")) {
109 LOG(info) <<
"---User path for Configuration (g3Config.C) is used: " << config_dir.Data();
110 ConfigMacro = g3Macro;
113 ConfigMacro = lUserConfig;
115 ConfigMacro = work_config + lUserConfig;
119 }
else if (strcmp(mcEngine,
"TFluka") == 0) {
120 TString flLibMacro =
"fllibs.C";
121 TString flMacro =
"flConfig.C";
122 if (lUserConfig.IsNull()) {
123 flMacro =
"flConfig.C";
124 lUserConfig = flMacro;
126 if (lUserConfig.Contains(
"/")) {
129 flMacro = lUserConfig;
130 LOG(info) <<
"---------------User config is used: " << flMacro.Data();
132 if (TString(gSystem->FindFile(config_dir.Data(), flLibMacro)) != TString(
"")) {
133 LOG(info) <<
"---User path for Configuration (fllibs.C) is used: " << config_dir.Data();
135 flLibMacro = work_config +
"fllibs.C";
137 LibMacro = flLibMacro;
138 LibFunction =
"fllibs()";
139 if (!AbsPath && TString(gSystem->FindFile(config_dir.Data(), flMacro)) != TString(
"")) {
140 LOG(info) <<
"---User path for Configuration (flConfig.C) is used: " << config_dir.Data();
141 ConfigMacro = flMacro;
144 ConfigMacro = lUserConfig;
146 ConfigMacro = work_config + lUserConfig;
151 if (TString(gSystem->FindFile(config_dir.Data(), cuts)) != TString(
"")) {
152 LOG(info) <<
"---User path for Cuts and Processes (SetCuts.C) is used: " << config_dir.Data();
154 cuts = work_config + lUserCuts;
157 if (!LibMacro.IsNull()) {
158 gROOT->LoadMacro(LibMacro.Data());
159 gROOT->ProcessLine(LibFunction.Data());
162 gROOT->LoadMacro(ConfigMacro.Data());
163 gROOT->ProcessLine(
"Config()");
165 gROOT->LoadMacro(cuts);
166 gROOT->ProcessLine(
"SetCuts()");