135{
136
137 std::size_t
n =
name.size();
138
139
140 size_t em_opt = 0;
141 G4String em_name = "";
142
143
144 if(n > 4) {
145 em_name =
name.substr(n - 4, 4);
146 for (std::size_t i=1; i<nlists_em; ++i) {
147 if(listnames_em[i] == em_name) {
148 em_opt = i;
150 break;
151 }
152 }
153 if(0 == em_opt) { em_name = ""; }
154 }
155
156
157 G4String had_name =
name.substr(0, n);
158
159 if(0 < verbose) {
160 G4cout <<
"G4PhysListFactory::GetReferencePhysList <" << had_name
161 << em_name <<
"> EMoption= " << em_opt <<
G4endl;
162 }
163 G4VModularPhysicsList* p = nullptr;
164 if(had_name == "FTFP_BERT") {p = new FTFP_BERT(verbose);}
165 else if(had_name == "FTFP_BERT_HP") {p = new FTFP_BERT_HP(verbose);}
166 else if(had_name == "FTFP_BERT_TRV") {p = new FTFP_BERT_TRV(verbose);}
167 else if(had_name == "FTFP_BERT_ATL") {p = new FTFP_BERT_ATL(verbose);}
168 else if(had_name == "FTFQGSP_BERT") {p = new FTFQGSP_BERT(verbose);}
169 else if(had_name ==
"FTFP_INCLXX") {p =
new FTFP_INCLXX(verbose);}
170 else if(had_name ==
"FTFP_INCLXX_HP") {p =
new FTFP_INCLXX_HP(verbose);}
171 else if(had_name == "FTF_BIC") {p = new FTF_BIC(verbose);}
172 else if(had_name == "LBE") {p = new LBE();}
173 else if(had_name == "QBBC") {p = new QBBC(verbose);}
174 else if(had_name == "QGSP_BERT") {p = new QGSP_BERT(verbose);}
175 else if(had_name == "QGSP_BERT_HP") {p = new QGSP_BERT_HP(verbose);}
176 else if(had_name == "QGSP_BIC") {p = new QGSP_BIC(verbose);}
177 else if(had_name == "QGSP_BIC_HP") {p = new QGSP_BIC_HP(verbose);}
178 else if(had_name == "QGSP_BIC_AllHP") {p = new QGSP_BIC_AllHP(verbose);}
179 else if(had_name == "QGSP_FTFP_BERT") {p = new QGSP_FTFP_BERT(verbose);}
180 else if(had_name ==
"QGSP_INCLXX") {p =
new QGSP_INCLXX(verbose);}
181 else if(had_name ==
"QGSP_INCLXX_HP") {p =
new QGSP_INCLXX_HP(verbose);}
182 else if(had_name == "QGS_BIC") {p = new QGS_BIC(verbose);}
183 else if(had_name == "Shielding") {p = new Shielding(verbose);}
184 else if(had_name == "ShieldingLEND") {p = new ShieldingLEND(verbose);}
185 else if(had_name == "ShieldingLIQMD") {p = new Shielding(verbose,"HP","",true);}
186 else if(had_name == "ShieldingM") {p = new Shielding(verbose,"HP","M");}
187 else if(had_name == "NuBeam") {p = new NuBeam(verbose);}
188 else if(had_name == "Shielding_HP") {p = new Shielding(verbose);}
189 else if(had_name == "ShieldingLIQMD_HP") {p = new Shielding(verbose,"HP","",true);}
190 else if(had_name == "ShieldingM_HP") {p = new Shielding(verbose,"HP","M");}
191 else if(had_name == "FTFP_BERT_HPT") {p = new FTFP_BERT_HP(verbose);
193 else if(had_name ==
"FTFP_INCLXX_HPT") {p =
new FTFP_INCLXX_HP(verbose);
195 else if(had_name == "QGSP_BERT_HPT") {p = new QGSP_BERT_HP(verbose);
197 else if(had_name == "QGSP_BIC_HPT") {p = new QGSP_BIC_HPT(verbose);}
198 else if(had_name == "QGSP_BIC_AllHPT") {p = new QGSP_BIC_AllHP(verbose);
200 else if(had_name ==
"QGSP_INCLXX_HPT") {p =
new QGSP_INCLXX_HP(verbose);
202 else if(had_name == "Shielding_HPT") {p = new Shielding(verbose);
204 else if(had_name == "ShieldingLIQMD_HPT") {p = new Shielding(verbose,"HP","",true);
206 else if(had_name == "ShieldingM_HPT") {p = new Shielding(verbose,"HP","M");
208 else {
209 p = new FTFP_BERT(verbose);
211 ed << "PhysicsList " << had_name << " is not known;"
212 << " the default FTFP_BERT is created";
214 }
215 if(nullptr != p) {
216 if(0 < em_opt && had_name != "LBE") {
217 if(1 == em_opt) {
219 } else if(2 == em_opt) {
221 } else if(3 == em_opt) {
223 } else if(4 == em_opt) {
225 } else if(5 == em_opt) {
227 } else if(6 == em_opt) {
229 } else if(7 == em_opt) {
231 } else if(8 == em_opt) {
233 } else if(9 == em_opt) {
235 } else if(10 == em_opt) {
237 } else if(11 == em_opt) {
239 }
240 }
241 theMessenger = new G4PhysListFactoryMessenger(p);
242 }
244 return p;
245}
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
void RegisterPhysics(G4VPhysicsConstructor *)
void ReplacePhysics(G4VPhysicsConstructor *)
const char * name(G4int ptype)