Geant4 Cross Reference

Cross-Referencing   Geant4
Geant4/processes/hadronic/models/particle_hp/src/G4ParticleHPMessenger.cc

Version: [ ReleaseNotes ] [ 1.0 ] [ 1.1 ] [ 2.0 ] [ 3.0 ] [ 3.1 ] [ 3.2 ] [ 4.0 ] [ 4.0.p1 ] [ 4.0.p2 ] [ 4.1 ] [ 4.1.p1 ] [ 5.0 ] [ 5.0.p1 ] [ 5.1 ] [ 5.1.p1 ] [ 5.2 ] [ 5.2.p1 ] [ 5.2.p2 ] [ 6.0 ] [ 6.0.p1 ] [ 6.1 ] [ 6.2 ] [ 6.2.p1 ] [ 6.2.p2 ] [ 7.0 ] [ 7.0.p1 ] [ 7.1 ] [ 7.1.p1 ] [ 8.0 ] [ 8.0.p1 ] [ 8.1 ] [ 8.1.p1 ] [ 8.1.p2 ] [ 8.2 ] [ 8.2.p1 ] [ 8.3 ] [ 8.3.p1 ] [ 8.3.p2 ] [ 9.0 ] [ 9.0.p1 ] [ 9.0.p2 ] [ 9.1 ] [ 9.1.p1 ] [ 9.1.p2 ] [ 9.1.p3 ] [ 9.2 ] [ 9.2.p1 ] [ 9.2.p2 ] [ 9.2.p3 ] [ 9.2.p4 ] [ 9.3 ] [ 9.3.p1 ] [ 9.3.p2 ] [ 9.4 ] [ 9.4.p1 ] [ 9.4.p2 ] [ 9.4.p3 ] [ 9.4.p4 ] [ 9.5 ] [ 9.5.p1 ] [ 9.5.p2 ] [ 9.6 ] [ 9.6.p1 ] [ 9.6.p2 ] [ 9.6.p3 ] [ 9.6.p4 ] [ 10.0 ] [ 10.0.p1 ] [ 10.0.p2 ] [ 10.0.p3 ] [ 10.0.p4 ] [ 10.1 ] [ 10.1.p1 ] [ 10.1.p2 ] [ 10.1.p3 ] [ 10.2 ] [ 10.2.p1 ] [ 10.2.p2 ] [ 10.2.p3 ] [ 10.3 ] [ 10.3.p1 ] [ 10.3.p2 ] [ 10.3.p3 ] [ 10.4 ] [ 10.4.p1 ] [ 10.4.p2 ] [ 10.4.p3 ] [ 10.5 ] [ 10.5.p1 ] [ 10.6 ] [ 10.6.p1 ] [ 10.6.p2 ] [ 10.6.p3 ] [ 10.7 ] [ 10.7.p1 ] [ 10.7.p2 ] [ 10.7.p3 ] [ 10.7.p4 ] [ 11.0 ] [ 11.0.p1 ] [ 11.0.p2 ] [ 11.0.p3, ] [ 11.0.p4 ] [ 11.1 ] [ 11.1.1 ] [ 11.1.2 ] [ 11.1.3 ] [ 11.2 ] [ 11.2.1 ] [ 11.2.2 ] [ 11.3.0 ]

Diff markup

Differences between /processes/hadronic/models/particle_hp/src/G4ParticleHPMessenger.cc (Version 11.3.0) and /processes/hadronic/models/particle_hp/src/G4ParticleHPMessenger.cc (Version 3.0)


  1 //                                                  1 
  2 // *******************************************    
  3 // * License and Disclaimer                       
  4 // *                                              
  5 // * The  Geant4 software  is  copyright of th    
  6 // * the Geant4 Collaboration.  It is provided    
  7 // * conditions of the Geant4 Software License    
  8 // * LICENSE and available at  http://cern.ch/    
  9 // * include a list of copyright holders.         
 10 // *                                              
 11 // * Neither the authors of this software syst    
 12 // * institutes,nor the agencies providing fin    
 13 // * work  make  any representation or  warran    
 14 // * regarding  this  software system or assum    
 15 // * use.  Please see the license in the file     
 16 // * for the full disclaimer and the limitatio    
 17 // *                                              
 18 // * This  code  implementation is the result     
 19 // * technical work of the GEANT4 collaboratio    
 20 // * By using,  copying,  modifying or  distri    
 21 // * any work based  on the software)  you  ag    
 22 // * use  in  resulting  scientific  publicati    
 23 // * acceptance of all terms of the Geant4 Sof    
 24 // *******************************************    
 25 //                                                
 26 #include "G4ParticleHPMessenger.hh"               
 27                                                   
 28 #include "G4HadronicParameters.hh"                
 29 #include "G4ParticleHPManager.hh"                 
 30 #include "G4SystemOfUnits.hh"                     
 31 #include "G4UIcmdWithABool.hh"                    
 32 #include "G4UIcmdWithADouble.hh"                  
 33 #include "G4UIcmdWithADoubleAndUnit.hh"           
 34 #include "G4UIcmdWithAString.hh"                  
 35 #include "G4UIcmdWithAnInteger.hh"                
 36 #include "G4UIcommand.hh"                         
 37 #include "G4UIdirectory.hh"                       
 38 #include "G4UIparameter.hh"                       
 39 #include "G4UnitsTable.hh"                        
 40                                                   
 41 G4ParticleHPMessenger::G4ParticleHPMessenger(G    
 42 {                                                 
 43   ParticleHPDir = new G4UIdirectory("/process/    
 44   ParticleHPDir->SetGuidance("UI commands of P    
 45                                                   
 46   PhotoEvaCmd = new G4UIcmdWithAString("/proce    
 47   PhotoEvaCmd->SetGuidance(                       
 48     " Force the use of the Photon Evaporation     
 49     "data.");                                     
 50   PhotoEvaCmd->SetParameterName("choice", fals    
 51   PhotoEvaCmd->SetCandidates("true false");       
 52   PhotoEvaCmd->AvailableForStates(G4State_PreI    
 53                                                   
 54   SkipMissingCmd = new G4UIcmdWithAString("/pr    
 55   SkipMissingCmd->SetGuidance(                    
 56     "Use only exact isotope data files, instea    
 57   SkipMissingCmd->SetGuidance(                    
 58     "In this case if the exact file is not ava    
 59   SkipMissingCmd->SetParameterName("choice", f    
 60   SkipMissingCmd->SetCandidates("true false");    
 61   SkipMissingCmd->AvailableForStates(G4State_P    
 62                                                   
 63   NeglectDopplerCmd =                             
 64     new G4UIcmdWithAString("/process/had/parti    
 65   NeglectDopplerCmd->SetGuidance(                 
 66     "Switch off the Doppler broadening due to     
 67   NeglectDopplerCmd->SetGuidance("This option     
 68   NeglectDopplerCmd->SetParameterName("choice"    
 69   NeglectDopplerCmd->SetCandidates("true false    
 70   NeglectDopplerCmd->AvailableForStates(G4Stat    
 71                                                   
 72   DoNotAdjustFSCmd =                              
 73     new G4UIcmdWithAString("/process/had/parti    
 74   DoNotAdjustFSCmd->SetGuidance("Disable to ad    
 75   DoNotAdjustFSCmd->SetParameterName("choice",    
 76   DoNotAdjustFSCmd->SetCandidates("true false"    
 77   DoNotAdjustFSCmd->AvailableForStates(G4State    
 78                                                   
 79   ProduceFissionFragementCmd =                    
 80     new G4UIcmdWithAString("/process/had/parti    
 81   ProduceFissionFragementCmd->SetGuidance("Ena    
 82   ProduceFissionFragementCmd->SetParameterName    
 83   ProduceFissionFragementCmd->SetCandidates("t    
 84   ProduceFissionFragementCmd->AvailableForStat    
 85                                                   
 86   WendtFissionModelCmd =                          
 87     new G4UIcmdWithAString("/process/had/parti    
 88   WendtFissionModelCmd->SetGuidance("Enable us    
 89   WendtFissionModelCmd->SetParameterName("choi    
 90   WendtFissionModelCmd->SetCandidates("true fa    
 91   WendtFissionModelCmd->AvailableForStates(G4S    
 92                                                   
 93   NRESP71Cmd = new G4UIcmdWithAString("/proces    
 94   NRESP71Cmd->SetGuidance("Enable to use NRESP    
 95   NRESP71Cmd->SetParameterName("choice", false    
 96   NRESP71Cmd->SetCandidates("true false");        
 97   NRESP71Cmd->AvailableForStates(G4State_PreIn    
 98                                                   
 99   VerboseCmd = new G4UIcmdWithAnInteger("/proc    
100   VerboseCmd->SetGuidance("Set Verbose level o    
101   VerboseCmd->SetParameterName("verbose_level"    
102   VerboseCmd->SetDefaultValue(1);                 
103   VerboseCmd->SetRange("verbose_level >=0");      
104   VerboseCmd->AvailableForStates(G4State_PreIn    
105                                                   
106   UseDBRCCmd = new G4UIcmdWithABool("/process/    
107   UseDBRCCmd->SetGuidance("Enable use of Doppl    
108   UseDBRCCmd->SetDefaultValue(false);             
109   UseDBRCCmd->AvailableForStates(G4State_PreIn    
110                                                   
111   MaxEnergySVTCmd = new G4UIcmdWithADoubleAndU    
112   MaxEnergySVTCmd->SetGuidance("Energy thresho    
113   MaxEnergySVTCmd->SetGuidance("The default is    
114   MaxEnergySVTCmd->SetParameterName("MaxEnergy    
115   MaxEnergySVTCmd->SetRange("MaxEnergySVT>=0."    
116   MaxEnergySVTCmd->SetUnitCategory("Energy");     
117   MaxEnergySVTCmd->AvailableForStates(G4State_    
118                                                   
119   MinADBRCCmd = new G4UIcmdWithADouble("/proce    
120   MinADBRCCmd->SetGuidance("Atomic mass in neu    
121   MinADBRCCmd->SetGuidance("The default is A=2    
122   MinADBRCCmd->SetParameterName("MinASVT", fal    
123   MinADBRCCmd->SetRange("MinASVT>=0.");           
124   MinADBRCCmd->SetDefaultValue(200);              
125   MinADBRCCmd->AvailableForStates(G4State_PreI    
126                                                   
127   MinEnergyDBRCCmd = new G4UIcmdWithADoubleAnd    
128   MinEnergyDBRCCmd->SetGuidance(                  
129     "Energy threshold under which the DBRC met    
130   MinEnergyDBRCCmd->SetGuidance("The default v    
131   MinEnergyDBRCCmd->SetParameterName("MinEnerg    
132   MinEnergyDBRCCmd->SetRange("MinEnergyDBRC>0.    
133   MinEnergyDBRCCmd->SetUnitCategory("Energy");    
134   MinEnergyDBRCCmd->SetDefaultValue(0.1 * CLHE    
135   MinEnergyDBRCCmd->AvailableForStates(G4State    
136                                                   
137   MaxEnergyDBRCCmd = new G4UIcmdWithADoubleAnd    
138   MaxEnergyDBRCCmd->SetGuidance("Energy thresh    
139   MaxEnergyDBRCCmd->SetGuidance("The default v    
140   MaxEnergyDBRCCmd->SetParameterName("MaxEnerg    
141   MaxEnergyDBRCCmd->SetRange("MaxEnergyDBRC>0.    
142   MaxEnergyDBRCCmd->SetUnitCategory("Energy");    
143   MaxEnergyDBRCCmd->SetDefaultValue(210. * CLH    
144   MaxEnergyDBRCCmd->AvailableForStates(G4State    
145 }                                                 
146                                                   
147 G4ParticleHPMessenger::~G4ParticleHPMessenger(    
148 {                                                 
149   delete ParticleHPDir;                           
150   delete PhotoEvaCmd;                             
151   delete SkipMissingCmd;                          
152   delete NeglectDopplerCmd;                       
153   delete DoNotAdjustFSCmd;                        
154   delete ProduceFissionFragementCmd;              
155   delete WendtFissionModelCmd;                    
156   delete NRESP71Cmd;                              
157   delete VerboseCmd;                              
158   delete UseDBRCCmd;                              
159   delete MaxEnergySVTCmd;                         
160   delete MinADBRCCmd;                             
161   delete MinEnergyDBRCCmd;                        
162   delete MaxEnergyDBRCCmd;                        
163 }                                                 
164                                                   
165 void G4ParticleHPMessenger::SetNewValue(G4UIco    
166 {                                                 
167   G4bool bValue = false;                          
168   if (newValue == "true") bValue = true;          
169                                                   
170   if (command == PhotoEvaCmd) {                   
171     if (manager->GetUseOnlyPhotoEvaporation()     
172       manager->SetUseOnlyPhotoEvaporation(bVal    
173 #ifdef G4VERBOSE                                  
174       if (G4HadronicParameters::Instance()->Ge    
175         G4cout << G4endl                          
176                << "=== G4ParticleHPMessenger C    
177                << bValue << " ===" << G4endl;     
178       }                                           
179       if (bValue) {                               
180         G4cout << "    -> Forced the use of th    
181                   "capture final state data)"     
182                << G4endl;                         
183       }                                           
184       else {                                      
185         G4cout << "    -> Go back to use the d    
186       }                                           
187 #endif                                            
188     }                                             
189   }                                               
190                                                   
191   if (command == SkipMissingCmd) {                
192     if (manager->GetSkipMissingIsotopes() != b    
193       manager->SetSkipMissingIsotopes(bValue);    
194 #ifdef G4VERBOSE                                  
195       if (G4HadronicParameters::Instance()->Ge    
196         G4cout << G4endl << "=== G4ParticleHPM    
197                << bValue << " ===" << G4endl;     
198       }                                           
199       if (bValue) {                               
200         G4cout                                    
201           << "    -> Use only exact isotope da    
202              "to be used: \n"                     
203           << "       if the exact file is not     
204           << G4endl;                              
205       }                                           
206       else {                                      
207         G4cout << "    -> Go back to the defau    
208                   "isotope data files are not     
209                << G4endl;                         
210       }                                           
211 #endif                                            
212     }                                             
213   }                                               
214                                                   
215   if (command == NeglectDopplerCmd) {             
216     if (manager->GetNeglectDoppler() != bValue    
217       manager->SetNeglectDoppler(bValue);         
218 #ifdef G4VERBOSE                                  
219       if (G4HadronicParameters::Instance()->Ge    
220         G4cout << G4endl << "=== G4ParticleHPM    
221                << bValue << " ===" << G4endl;     
222       }                                           
223       if (bValue) {                               
224         G4cout << "    -> Switched off the Dop    
225                   "target nucleus: \n"            
226                << "       on-the-fly Doppler b    
227                   "calculations of \n"            
228                << "       capture, elastic, fi    
229                   "neutrons below 20 MeV.\n"      
230                << "       This option provides    
231       }                                           
232       else {                                      
233         G4cout                                    
234           << "    -> Go back to the default, i    
235           << G4endl;                              
236       }                                           
237 #endif                                            
238     }                                             
239   }                                               
240                                                   
241   if (command == DoNotAdjustFSCmd) {              
242     if (manager->GetDoNotAdjustFinalState() !=    
243       manager->SetDoNotAdjustFinalState(bValue    
244 #ifdef G4VERBOSE                                  
245       if (G4HadronicParameters::Instance()->Ge    
246         G4cout << G4endl << "=== G4ParticleHPM    
247                << bValue << " ===" << G4endl;     
248       }                                           
249       if (bValue) {                               
250         G4cout                                    
251           << "    -> Disabled the adjustment o    
252           << G4endl;                              
253       }                                           
254       else {                                      
255         G4cout << "    -> Go back to the defau    
256                   "conservation !"                
257                << G4endl;                         
258       }                                           
259 #endif                                            
260     }                                             
261   }                                               
262                                                   
263   if (command == ProduceFissionFragementCmd) {    
264     if (manager->GetProduceFissionFragments()     
265       manager->SetProduceFissionFragments(bVal    
266 #ifdef G4VERBOSE                                  
267       if (G4HadronicParameters::Instance()->Ge    
268         G4cout << G4endl                          
269                << "=== G4ParticleHPMessenger C    
270                << bValue << " ===" << G4endl;     
271       }                                           
272       if (bValue) {                               
273         G4cout << "    -> Enabled the generati    
274       }                                           
275       else {                                      
276         G4cout << "    -> Go back to the defau    
277                << G4endl;                         
278       }                                           
279 #endif                                            
280     }                                             
281   }                                               
282                                                   
283   if (command == WendtFissionModelCmd) {          
284     if (manager->GetUseWendtFissionModel() !=     
285       manager->SetUseWendtFissionModel(bValue)    
286       // Make sure both fission fragment model    
287       if (bValue) manager->SetProduceFissionFr    
288 #ifdef G4VERBOSE                                  
289       if (G4HadronicParameters::Instance()->Ge    
290         G4cout << G4endl << "=== G4ParticleHPM    
291                << bValue << " ===" << G4endl;     
292       }                                           
293       if (bValue) {                               
294         G4cout << "    -> Enabled the use of W    
295       }                                           
296       else {                                      
297         G4cout << "    -> Go back to the defau    
298                << G4endl;                         
299       }                                           
300 #endif                                            
301     }                                             
302   }                                               
303                                                   
304   if (command == NRESP71Cmd) {                    
305     if (manager->GetUseNRESP71Model() != bValu    
306       manager->SetUseNRESP71Model(bValue);        
307 #ifdef G4VERBOSE                                  
308       if (G4HadronicParameters::Instance()->Ge    
309         G4cout << G4endl << "=== G4ParticleHPM    
310                << bValue << " ===" << G4endl;     
311       }                                           
312       if (bValue) {                               
313         G4cout << "    -> Enabled the use of N    
314       }                                           
315       else {                                      
316         G4cout << "    -> Go back to the defau    
317       }                                           
318 #endif                                            
319     }                                             
320   }                                               
321                                                   
322   if (command == VerboseCmd) {                    
323     G4int verboseLevel = VerboseCmd->ConvertTo    
324     if (manager->GetVerboseLevel() != verboseL    
325       manager->SetVerboseLevel(verboseLevel);     
326 #ifdef G4VERBOSE                                  
327       if (G4HadronicParameters::Instance()->Ge    
328         G4cout << G4endl << "=== G4ParticleHPM    
329                << verboseLevel << " ===" << G4    
330       }                                           
331 #endif                                            
332     }                                             
333   }                                               
334                                                   
335   if (command == UseDBRCCmd) {                    
336     bValue = UseDBRCCmd->GetNewBoolValue(newVa    
337     if (manager->GetUseDBRC() != bValue) {        
338       manager->SetUseDBRC(bValue);                
339 #ifdef G4VERBOSE                                  
340       if (G4HadronicParameters::Instance()->Ge    
341         G4cout << G4endl << "=== G4ParticleHPM    
342                << " ===" << G4endl;               
343       }                                           
344       if (bValue) {                               
345         G4cout << "    -> Using the DBRC algor    
346       }                                           
347       else {                                      
348         G4cout << "    -> Do not use the DBRC     
349       }                                           
350 #endif                                            
351     }                                             
352   }                                               
353                                                   
354   if (command == MaxEnergySVTCmd) {               
355     G4double energymax = MaxEnergySVTCmd->GetN    
356     if (G4HadronicParameters::Instance()->GetN    
357       G4HadronicParameters::Instance()->SetNeu    
358 #ifdef G4VERBOSE                                  
359       if (G4HadronicParameters::Instance()->Ge    
360         G4cout << G4endl                          
361                << "=== G4ParticleHPMessenger C    
362         G4cout << "max energy: " << G4BestUnit    
363       }                                           
364 #endif                                            
365     }                                             
366   }                                               
367                                                   
368   if (command == MinADBRCCmd) {                   
369     G4double Amin = MinADBRCCmd->GetNewDoubleV    
370     if (manager->GetMinADBRC() != Amin) {         
371       manager->SetMinADBRC(Amin);                 
372 #ifdef G4VERBOSE                                  
373       if (G4HadronicParameters::Instance()->Ge    
374         G4cout << G4endl                          
375                << "=== G4ParticleHPMessenger C    
376         G4cout << "min A: " << Amin << G4endl;    
377       }                                           
378 #endif                                            
379     }                                             
380   }                                               
381                                                   
382   if (command == MinEnergyDBRCCmd) {              
383     G4double energymin = MinEnergyDBRCCmd->Get    
384     if (manager->GetMinEnergyDBRC() != energym    
385       manager->SetMinEnergyDBRC(energymin);       
386 #ifdef G4VERBOSE                                  
387       if (G4HadronicParameters::Instance()->Ge    
388         G4cout << G4endl                          
389                << "=== G4ParticleHPMessenger C    
390         G4cout << "min energy: " << G4BestUnit    
391       }                                           
392 #endif                                            
393     }                                             
394   }                                               
395                                                   
396   if (command == MaxEnergyDBRCCmd) {              
397     G4double energymax = MaxEnergyDBRCCmd->Get    
398     if (manager->GetMaxEnergyDBRC() != energym    
399       manager->SetMaxEnergyDBRC(energymax);       
400 #ifdef G4VERBOSE                                  
401       if (G4HadronicParameters::Instance()->Ge    
402         G4cout << G4endl                          
403                << "=== G4ParticleHPMessenger C    
404         G4cout << "max energy: " << G4BestUnit    
405       }                                           
406 #endif                                            
407     }                                             
408   }                                               
409                                                   
410 }                                                 
411