43 ParticleHPDir =
new G4UIdirectory(
"/process/had/particle_hp/");
44 ParticleHPDir->SetGuidance(
"UI commands of ParticleHP");
46 PhotoEvaCmd =
new G4UIcmdWithAString(
"/process/had/particle_hp/use_photo_evaporation",
this);
47 PhotoEvaCmd->SetGuidance(
48 " Force the use of the Photon Evaporation model, instead of the neutron capture final state "
50 PhotoEvaCmd->SetParameterName(
"choice",
false);
51 PhotoEvaCmd->SetCandidates(
"true false");
54 SkipMissingCmd =
new G4UIcmdWithAString(
"/process/had/particle_hp/skip_missing_isotopes",
this);
55 SkipMissingCmd->SetGuidance(
56 "Use only exact isotope data files, instead of allowing nearby isotope files to be used.");
57 SkipMissingCmd->SetGuidance(
58 "In this case if the exact file is not available, the cross section will be set to zero.");
59 SkipMissingCmd->SetParameterName(
"choice",
false);
60 SkipMissingCmd->SetCandidates(
"true false");
65 NeglectDopplerCmd->SetGuidance(
66 "Switch off the Doppler broadening due to the thermal motion of the target nucleus.");
67 NeglectDopplerCmd->SetGuidance(
"This option provides a significant CPU performance advantage.");
68 NeglectDopplerCmd->SetParameterName(
"choice",
false);
69 NeglectDopplerCmd->SetCandidates(
"true false");
74 DoNotAdjustFSCmd->SetGuidance(
"Disable to adjust final state for getting better conservation.");
75 DoNotAdjustFSCmd->SetParameterName(
"choice",
false);
76 DoNotAdjustFSCmd->SetCandidates(
"true false");
79 ProduceFissionFragementCmd =
81 ProduceFissionFragementCmd->SetGuidance(
"Enable to generate fission fragments.");
82 ProduceFissionFragementCmd->SetParameterName(
"choice",
false);
83 ProduceFissionFragementCmd->SetCandidates(
"true false");
86 WendtFissionModelCmd =
88 WendtFissionModelCmd->SetGuidance(
"Enable use of Wendt fission model.");
89 WendtFissionModelCmd->SetParameterName(
"choice",
false);
90 WendtFissionModelCmd->SetCandidates(
"true false");
93 NRESP71Cmd =
new G4UIcmdWithAString(
"/process/had/particle_hp/use_NRESP71_model",
this);
94 NRESP71Cmd->SetGuidance(
"Enable to use NRESP71 model for n on C reaction");
95 NRESP71Cmd->SetParameterName(
"choice",
false);
96 NRESP71Cmd->SetCandidates(
"true false");
100 VerboseCmd->SetGuidance(
"Set Verbose level of ParticleHP package");
101 VerboseCmd->SetParameterName(
"verbose_level",
true);
102 VerboseCmd->SetDefaultValue(1);
103 VerboseCmd->SetRange(
"verbose_level >=0");
106 UseDBRCCmd =
new G4UIcmdWithABool(
"/process/had/particle_hp/use_DBRC",
this);
107 UseDBRCCmd->SetGuidance(
"Enable use of Doppler Broadening Rejection Correction algorithm.");
108 UseDBRCCmd->SetDefaultValue(
false);
112 MaxEnergySVTCmd->SetGuidance(
"Energy threshold under which the SVT method is applied.");
113 MaxEnergySVTCmd->SetGuidance(
"The default is 400. kT.");
114 MaxEnergySVTCmd->SetParameterName(
"MaxEnergySVT",
false);
115 MaxEnergySVTCmd->SetRange(
"MaxEnergySVT>=0.");
116 MaxEnergySVTCmd->SetUnitCategory(
"Energy");
120 MinADBRCCmd->SetGuidance(
"Atomic mass in neutron mass above which the DBRC is applied.");
121 MinADBRCCmd->SetGuidance(
"The default is A=200.");
122 MinADBRCCmd->SetParameterName(
"MinASVT",
false);
123 MinADBRCCmd->SetRange(
"MinASVT>=0.");
124 MinADBRCCmd->SetDefaultValue(200);
128 MinEnergyDBRCCmd->SetGuidance(
129 "Energy threshold under which the DBRC method is not applied and only the SVT is used.");
130 MinEnergyDBRCCmd->SetGuidance(
"The default value is 0.1 eV.");
131 MinEnergyDBRCCmd->SetParameterName(
"MinEnergyDBRC",
false);
132 MinEnergyDBRCCmd->SetRange(
"MinEnergyDBRC>0.");
133 MinEnergyDBRCCmd->SetUnitCategory(
"Energy");
134 MinEnergyDBRCCmd->SetDefaultValue(0.1 * CLHEP::eV);
138 MaxEnergyDBRCCmd->SetGuidance(
"Energy threshold under which the DBRC method is applied.");
139 MaxEnergyDBRCCmd->SetGuidance(
"The default value is 210. eV.");
140 MaxEnergyDBRCCmd->SetParameterName(
"MaxEnergyDBRC",
false);
141 MaxEnergyDBRCCmd->SetRange(
"MaxEnergyDBRC>0.");
142 MaxEnergyDBRCCmd->SetUnitCategory(
"Energy");
143 MaxEnergyDBRCCmd->SetDefaultValue(210. * CLHEP::eV);
168 if (newValue ==
"true") bValue =
true;
170 if (command == PhotoEvaCmd) {
171 if (manager->GetUseOnlyPhotoEvaporation() != bValue) {
172 manager->SetUseOnlyPhotoEvaporation(bValue);
176 <<
"=== G4ParticleHPMessenger CHANGED PARAMETER UseOnlyPhotoEvaporation TO "
177 << bValue <<
" ===" <<
G4endl;
180 G4cout <<
" -> Forced the use of the Photon Evaporation model (instead of the neutron "
181 "capture final state data)"
185 G4cout <<
" -> Go back to use the default neutron capture final state data !" <<
G4endl;
191 if (command == SkipMissingCmd) {
192 if (manager->GetSkipMissingIsotopes() != bValue) {
193 manager->SetSkipMissingIsotopes(bValue);
196 G4cout <<
G4endl <<
"=== G4ParticleHPMessenger CHANGED PARAMETER SkipMissingIsotopes TO "
197 << bValue <<
" ===" <<
G4endl;
201 <<
" -> Use only exact isotope data files, instead of allowing nearby isotope files "
203 <<
" if the exact file is not available, the cross section will be set to zero !"
207 G4cout <<
" -> Go back to the default, i.e. use nearby isotope files when the exact "
208 "isotope data files are not found !"
215 if (command == NeglectDopplerCmd) {
216 if (manager->GetNeglectDoppler() != bValue) {
217 manager->SetNeglectDoppler(bValue);
220 G4cout <<
G4endl <<
"=== G4ParticleHPMessenger CHANGED PARAMETER NeglectDoppler TO "
221 << bValue <<
" ===" <<
G4endl;
224 G4cout <<
" -> Switched off the Doppler broadening due to the thermal motion of the "
226 <<
" on-the-fly Doppler broadening will be neglected in the cross section "
228 <<
" capture, elastic, fission and inelastic reactions/scatterings of "
229 "neutrons below 20 MeV.\n"
230 <<
" This option provides a significant CPU performance advantage !" <<
G4endl;
234 <<
" -> Go back to the default, i.e. switch on the Doppler broadening on-the-fly !"
241 if (command == DoNotAdjustFSCmd) {
242 if (manager->GetDoNotAdjustFinalState() != bValue) {
243 manager->SetDoNotAdjustFinalState(bValue);
246 G4cout <<
G4endl <<
"=== G4ParticleHPMessenger CHANGED PARAMETER DoNotAdjustFinalState TO "
247 << bValue <<
" ===" <<
G4endl;
251 <<
" -> Disabled the adjustment of the final state for getting better conservation !"
255 G4cout <<
" -> Go back to the default, i.e. adjust the final state to get better "
263 if (command == ProduceFissionFragementCmd) {
264 if (manager->GetProduceFissionFragments() != bValue) {
265 manager->SetProduceFissionFragments(bValue);
269 <<
"=== G4ParticleHPMessenger CHANGED PARAMETER ProduceFissionFragments TO "
270 << bValue <<
" ===" <<
G4endl;
273 G4cout <<
" -> Enabled the generation of fission fragments !" <<
G4endl;
276 G4cout <<
" -> Go back to the default, i.e. do not generate fission fragments !"
283 if (command == WendtFissionModelCmd) {
284 if (manager->GetUseWendtFissionModel() != bValue) {
285 manager->SetUseWendtFissionModel(bValue);
287 if (bValue) manager->SetProduceFissionFragments(
false);
290 G4cout <<
G4endl <<
"=== G4ParticleHPMessenger CHANGED PARAMETER UseWendtFissionModel TO "
291 << bValue <<
" ===" <<
G4endl;
294 G4cout <<
" -> Enabled the use of Wendt fission model !" <<
G4endl;
297 G4cout <<
" -> Go back to the default, i.e. do not use the Wendt fission model !"
304 if (command == NRESP71Cmd) {
305 if (manager->GetUseNRESP71Model() != bValue) {
306 manager->SetUseNRESP71Model(bValue);
309 G4cout <<
G4endl <<
"=== G4ParticleHPMessenger CHANGED PARAMETER UseNRESP71Model TO "
310 << bValue <<
" ===" <<
G4endl;
313 G4cout <<
" -> Enabled the use of NRESP71 model for n on C reaction !" <<
G4endl;
316 G4cout <<
" -> Go back to the default, i.e. do not use the NRESP71 model !" <<
G4endl;
322 if (command == VerboseCmd) {
323 G4int verboseLevel = VerboseCmd->ConvertToInt(newValue);
324 if (manager->GetVerboseLevel() != verboseLevel) {
325 manager->SetVerboseLevel(verboseLevel);
328 G4cout <<
G4endl <<
"=== G4ParticleHPMessenger CHANGED PARAMETER VerboseLevel TO "
329 << verboseLevel <<
" ===" <<
G4endl;
335 if (command == UseDBRCCmd) {
336 bValue = UseDBRCCmd->GetNewBoolValue(newValue);
337 if (manager->GetUseDBRC() != bValue) {
338 manager->SetUseDBRC(bValue);
341 G4cout <<
G4endl <<
"=== G4ParticleHPMessenger CHANGED PARAMETER UseDBRC TO " << bValue
348 G4cout <<
" -> Do not use the DBRC algorithm!" <<
G4endl;
354 if (command == MaxEnergySVTCmd) {
355 G4double energymax = MaxEnergySVTCmd->GetNewDoubleValue(newValue);
361 <<
"=== G4ParticleHPMessenger CHANGED PARAMETER for SVT algorithm ===" <<
G4endl;
368 if (command == MinADBRCCmd) {
369 G4double Amin = MinADBRCCmd->GetNewDoubleValue(newValue);
370 if (manager->GetMinADBRC() != Amin) {
371 manager->SetMinADBRC(Amin);
375 <<
"=== G4ParticleHPMessenger CHANGED PARAMETER for DBRC algorithm ===" <<
G4endl;
382 if (command == MinEnergyDBRCCmd) {
383 G4double energymin = MinEnergyDBRCCmd->GetNewDoubleValue(newValue);
384 if (manager->GetMinEnergyDBRC() != energymin) {
385 manager->SetMinEnergyDBRC(energymin);
389 <<
"=== G4ParticleHPMessenger CHANGED PARAMETER for DBRC algorithm ===" <<
G4endl;
396 if (command == MaxEnergyDBRCCmd) {
397 G4double energymax = MaxEnergyDBRCCmd->GetNewDoubleValue(newValue);
398 if (manager->GetMaxEnergyDBRC() != energymax) {
399 manager->SetMaxEnergyDBRC(energymax);
403 <<
"=== G4ParticleHPMessenger CHANGED PARAMETER for SVT algorithm ===" <<
G4endl;
void SetNewValue(G4UIcommand *, G4String) override
G4ParticleHPMessenger(G4ParticleHPManager *)