83 : defName(
"FTFP_BERT"),verbose(ver),theMessenger(nullptr)
87 "FTFP_BERT",
"FTFP_BERT_TRV",
"FTFP_BERT_ATL",
"FTFP_BERT_HP",
"FTFQGSP_BERT",
88 "FTFP_INCLXX",
"FTFP_INCLXX_HP",
"FTF_BIC",
"LBE",
"QBBC",
89 "QGSP_BERT",
"QGSP_BERT_HP",
"QGSP_BIC",
"QGSP_BIC_HP",
"QGSP_BIC_AllHP",
90 "QGSP_FTFP_BERT",
"QGSP_INCLXX",
"QGSP_INCLXX_HP",
"QGS_BIC",
91 "Shielding",
"ShieldingLEND",
"ShieldingLIQMD",
"ShieldingM",
"NuBeam",
92 "Shielding_HP",
"ShieldingLIQMD_HP",
"ShieldingM_HP",
93 "FTFP_BERT_HPT",
"FTFP_INCLXX_HPT",
"QGSP_BERT_HPT",
"QGSP_BIC_HPT",
94 "QGSP_BIC_AllHPT",
"QGSP_INCLXX_HPT",
"Shielding_HPT",
"ShieldingLIQMD_HPT",
96 for (std::size_t i=0; i<nlists_hadr; ++i) {
97 listnames_hadr.push_back(ss[i]);
101 G4String s1[12] = {
"",
"_EMV",
"_EMX",
"_EMY",
"_EMZ",
"_LIV",
"_PEN",
102 "__GS",
"__SS",
"_EM0",
"_WVI",
"__LE"};
103 for (std::size_t i=0; i<nlists_em; ++i) {
104 listnames_em.push_back(s1[i]);
118 const char* path = std::getenv(
"PHYSLIST");
119 if (
nullptr != path) {
123 G4cout <<
"### G4PhysListFactory WARNING: "
124 <<
" environment variable PHYSLIST is not defined"
126 <<
" Default Physics Lists " << name
127 <<
" is instantiated"
137 std::size_t n = name.size();
140 std::size_t em_opt = 0;
145 G4String ss = name.substr(n - 4, 4);
146 for (std::size_t i=1; i<nlists_em; ++i) {
147 if (listnames_em[i] == ss) {
155 if (
"_EM0" == em_name) {
161 G4String had_name = name.substr(0, n);
164 G4cout <<
"G4PhysListFactory::GetReferencePhysList <" << had_name
165 << em_name <<
">" <<
G4endl;
168 if(had_name ==
"FTFP_BERT") {p =
new FTFP_BERT(verbose);}
169 else if(had_name ==
"FTFP_BERT_HP") {p =
new FTFP_BERT_HP(verbose);}
170 else if(had_name ==
"FTFP_BERT_TRV") {p =
new FTFP_BERT_TRV(verbose);}
171 else if(had_name ==
"FTFP_BERT_ATL") {p =
new FTFP_BERT_ATL(verbose);}
172 else if(had_name ==
"FTFQGSP_BERT") {p =
new FTFQGSP_BERT(verbose);}
173 else if(had_name ==
"FTFP_INCLXX") {p =
new FTFP_INCLXX(verbose);}
174 else if(had_name ==
"FTFP_INCLXX_HP") {p =
new FTFP_INCLXX_HP(verbose);}
175 else if(had_name ==
"FTF_BIC") {p =
new FTF_BIC(verbose);}
176 else if(had_name ==
"LBE") {p =
new LBE();}
177 else if(had_name ==
"QBBC") {p =
new QBBC(verbose);}
178 else if(had_name ==
"QGSP_BERT") {p =
new QGSP_BERT(verbose);}
179 else if(had_name ==
"QGSP_BERT_HP") {p =
new QGSP_BERT_HP(verbose);}
180 else if(had_name ==
"QGSP_BIC") {p =
new QGSP_BIC(verbose);}
181 else if(had_name ==
"QGSP_BIC_HP") {p =
new QGSP_BIC_HP(verbose);}
182 else if(had_name ==
"QGSP_BIC_AllHP") {p =
new QGSP_BIC_AllHP(verbose);}
183 else if(had_name ==
"QGSP_FTFP_BERT") {p =
new QGSP_FTFP_BERT(verbose);}
184 else if(had_name ==
"QGSP_INCLXX") {p =
new QGSP_INCLXX(verbose);}
185 else if(had_name ==
"QGSP_INCLXX_HP") {p =
new QGSP_INCLXX_HP(verbose);}
186 else if(had_name ==
"QGS_BIC") {p =
new QGS_BIC(verbose);}
187 else if(had_name ==
"Shielding") {p =
new Shielding(verbose);}
188 else if(had_name ==
"ShieldingLEND") {p =
new ShieldingLEND(verbose);}
189 else if(had_name ==
"ShieldingLIQMD") {p =
new Shielding(verbose,
"HP",
"",
true);}
190 else if(had_name ==
"ShieldingM") {p =
new Shielding(verbose,
"HP",
"M");}
191 else if(had_name ==
"NuBeam") {p =
new NuBeam(verbose);}
192 else if(had_name ==
"Shielding_HP") {p =
new Shielding(verbose);}
193 else if(had_name ==
"ShieldingLIQMD_HP") {p =
new Shielding(verbose,
"HP",
"",
true);}
194 else if(had_name ==
"ShieldingM_HP") {p =
new Shielding(verbose,
"HP",
"M");}
195 else if(had_name ==
"FTFP_BERT_HPT") {p =
new FTFP_BERT_HP(verbose);
197 else if(had_name ==
"FTFP_INCLXX_HPT") {p =
new FTFP_INCLXX_HP(verbose);
199 else if(had_name ==
"QGSP_BERT_HPT") {p =
new QGSP_BERT_HP(verbose);
201 else if(had_name ==
"QGSP_BIC_HPT") {p =
new QGSP_BIC_HPT(verbose);}
202 else if(had_name ==
"QGSP_BIC_AllHPT") {p =
new QGSP_BIC_AllHP(verbose);
204 else if(had_name ==
"QGSP_INCLXX_HPT") {p =
new QGSP_INCLXX_HP(verbose);
206 else if(had_name ==
"Shielding_HPT") {p =
new Shielding(verbose);
208 else if(had_name ==
"ShieldingLIQMD_HPT") {p =
new Shielding(verbose,
"HP",
"",
true);
210 else if(had_name ==
"ShieldingM_HPT") {p =
new Shielding(verbose,
"HP",
"M");
214 ed <<
"ERROR: The requested physics list " << had_name
215 <<
" is NOT available in the Physics List Factory.\n"
216 <<
"Please choose a valid physics list.\n";
222 if (had_name !=
"LBE") {
225 }
else if (2 == em_opt) {
227 }
else if (3 == em_opt) {
229 }
else if (4 == em_opt) {
231 }
else if (5 == em_opt) {
233 }
else if (6 == em_opt) {
235 }
else if (7 == em_opt) {
237 }
else if (8 == em_opt) {
239 }
else if (10 == em_opt) {
241 }
else if (11 == em_opt) {
254 std::size_t n = name.size();
256 G4String em_name = name.substr(n - 4, 4);
257 for (std::size_t i=1; i<nlists_em; ++i) {
258 if(listnames_em[i] == em_name) {
264 G4String had_name = name.substr(0, n);
265 for (std::size_t i=0; i<nlists_hadr; ++i) {
266 if(had_name == listnames_hadr[i]) {
274const std::vector<G4String>&
277 return listnames_hadr;
280const std::vector<G4String>&
TINCLXXPhysicsListHelper< G4VModularPhysicsList, false, true > FTFP_INCLXX
TINCLXXPhysicsListHelper< G4VModularPhysicsList, true, true > FTFP_INCLXX_HP
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *description)
std::ostringstream G4ExceptionDescription
G4GLOB_DLL std::ostream G4cout
TINCLXXPhysicsListHelper< G4VModularPhysicsList, true, false > QGSP_INCLXX_HP
TINCLXXPhysicsListHelper< G4VModularPhysicsList, false, false > QGSP_INCLXX
const std::vector< G4String > & AvailablePhysListsEM() const
G4bool IsReferencePhysList(const G4String &) const
G4PhysListFactory(G4int ver=1)
G4VModularPhysicsList * ReferencePhysList()
G4VModularPhysicsList * GetReferencePhysList(const G4String &)
const std::vector< G4String > & AvailablePhysLists() const
void RegisterPhysics(G4VPhysicsConstructor *)
void ReplacePhysics(G4VPhysicsConstructor *)