Geant4 Cross Reference

Cross-Referencing   Geant4
Geant4/processes/hadronic/models/de_excitation/management/src/G4DeexPrecoParameters.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/de_excitation/management/src/G4DeexPrecoParameters.cc (Version 11.3.0) and /processes/hadronic/models/de_excitation/management/src/G4DeexPrecoParameters.cc (Version 9.6.p2)


  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 // 15.03.2016 V.Ivanchenko                        
 27 //                                                
 28 // List of parameters of the pre-compound mode    
 29 // and the deexcitation module                    
 30 //                                                
 31                                                   
 32 #include "G4DeexPrecoParameters.hh"               
 33 #include "G4ApplicationState.hh"                  
 34 #include "G4StateManager.hh"                      
 35 #include "G4SystemOfUnits.hh"                     
 36 #include "G4UnitsTable.hh"                        
 37 #include "G4PhysicsModelCatalog.hh"               
 38 #include "G4DeexParametersMessenger.hh"           
 39 #include "G4HadronicParameters.hh"                
 40 #include "G4Threading.hh"                         
 41                                                   
 42 G4DeexPrecoParameters::G4DeexPrecoParameters()    
 43 {                                                 
 44   fStateManager = G4StateManager::GetStateMana    
 45   theMessenger = new G4DeexParametersMessenger    
 46   Initialise();                                   
 47 }                                                 
 48                                                   
 49 G4DeexPrecoParameters::~G4DeexPrecoParameters(    
 50 {                                                 
 51   delete theMessenger;                            
 52 }                                                 
 53                                                   
 54 void G4DeexPrecoParameters::SetDefaults()         
 55 {                                                 
 56   if(!IsLocked()) { Initialise(); }               
 57 }                                                 
 58                                                   
 59 void G4DeexPrecoParameters::Initialise()          
 60 {                                                 
 61   // common parameters                            
 62   fVerbose = 1;                                   
 63   fLevelDensity = 0.075/CLHEP::MeV;               
 64   fR0 = 1.5*CLHEP::fermi;                         
 65   fTransitionsR0 = 0.6*CLHEP::fermi;              
 66                                                   
 67   // preco parameters                             
 68   fPrecoLowEnergy = 0.1*CLHEP::MeV;               
 69   fPrecoHighEnergy = 30*CLHEP::MeV;               
 70   fPhenoFactor = 1.0;                             
 71                                                   
 72   fPrecoType = 1;                                 
 73   fMinZForPreco = 3;                              
 74   fMinAForPreco = 5;                              
 75                                                   
 76   fNeverGoBack = false;                           
 77   fUseSoftCutoff = false;                         
 78   fUseCEM = true;                                 
 79   fUseGNASH = false;                              
 80   fUseHETC = false;                               
 81   fUseAngularGen = true;                          
 82   fPrecoDummy = false;                            
 83                                                   
 84   // de-exitation parameters                      
 85   fMinExcitation = 10*CLHEP::eV;                  
 86   fNuclearLevelWidth = 0.2*CLHEP::MeV;            
 87   fFBUEnergyLimit = 20.0*CLHEP::MeV;              
 88   fFermiEnergy = 35.0*CLHEP::MeV;                 
 89   fMaxLifeTime = 1*CLHEP::nanosecond;             
 90   fMinExPerNucleounForMF = 200*CLHEP::GeV;        
 91                                                   
 92   fDeexChannelType = fCombined;                   
 93   fDeexType = 3;                                  
 94   fTwoJMAX = 10;                                  
 95                                                   
 96   fCorrelatedGamma = false;                       
 97   fStoreAllLevels = true;                         
 98   fInternalConversion = true;                     
 99   fLD = true;  // use simple level density mod    
100   fFD = false; // use transition to discrete l    
101   fIsomerFlag = true; // enable isomere produc    
102 }                                                 
103                                                   
104 void G4DeexPrecoParameters::SetLevelDensity(G4    
105 {                                                 
106   if(IsLocked() || val <= 0.0) { return; }        
107   fLevelDensity = val/CLHEP::MeV;                 
108 }                                                 
109                                                   
110 void G4DeexPrecoParameters::SetR0(G4double val    
111 {                                                 
112   if(IsLocked() || val <= 0.0) { return; }        
113   fR0 = val;                                      
114 }                                                 
115                                                   
116 void G4DeexPrecoParameters::SetTransitionsR0(G    
117 {                                                 
118   if(IsLocked() || val <= 0.0) { return; }        
119   fTransitionsR0 = val;                           
120 }                                                 
121                                                   
122 void G4DeexPrecoParameters::SetFBUEnergyLimit(    
123 {                                                 
124   if(IsLocked() || val <= 0.0) { return; }        
125   fFBUEnergyLimit = val;                          
126 }                                                 
127                                                   
128 void G4DeexPrecoParameters::SetFermiEnergy(G4d    
129 {                                                 
130   if(IsLocked() || val <= 0.0) { return; }        
131   fFermiEnergy = val;                             
132 }                                                 
133                                                   
134 void G4DeexPrecoParameters::SetPrecoLowEnergy(    
135 {                                                 
136   if(IsLocked() || val < 0.0) { return; }         
137   fPrecoLowEnergy = val;                          
138 }                                                 
139                                                   
140 void G4DeexPrecoParameters::SetPrecoHighEnergy    
141 {                                                 
142   if(IsLocked() || val < 0.0) { return; }         
143   fPrecoHighEnergy = val;                         
144 }                                                 
145                                                   
146 void G4DeexPrecoParameters::SetPhenoFactor(G4d    
147 {                                                 
148   if(IsLocked() || val <= 0.0) { return; }        
149   fPhenoFactor = val;                             
150 }                                                 
151                                                   
152 void G4DeexPrecoParameters::SetMinExcitation(G    
153 {                                                 
154   if(IsLocked() || val < 0.0) { return; }         
155   fMinExcitation = val;                           
156 }                                                 
157                                                   
158 void G4DeexPrecoParameters::SetNuclearLevelWid    
159 {                                                 
160   if(IsLocked() || val < 0.0) { return; }         
161   fNuclearLevelWidth = val;                       
162 }                                                 
163                                                   
164 void G4DeexPrecoParameters::SetMaxLifeTime(G4d    
165 {                                                 
166   if(IsLocked() || val < 0.0) { return; }         
167   fMaxLifeTime = val;                             
168 }                                                 
169                                                   
170 void G4DeexPrecoParameters::SetMinExPerNucleou    
171 {                                                 
172   if(IsLocked() || val < 0.0) { return; }         
173   fMinExPerNucleounForMF = val;                   
174 }                                                 
175                                                   
176 void G4DeexPrecoParameters::SetMinZForPreco(G4    
177 {                                                 
178   if(IsLocked() || n < 2) { return; }             
179   fMinZForPreco = n;                              
180 }                                                 
181                                                   
182 void G4DeexPrecoParameters::SetMinAForPreco(G4    
183 {                                                 
184   if(IsLocked() || n < 0) { return; }             
185   fMinAForPreco = n;                              
186 }                                                 
187                                                   
188 void G4DeexPrecoParameters::SetPrecoModelType(    
189 {                                                 
190   if(IsLocked() || n < 0 || n > 3) { return; }    
191   fPrecoType = n;                                 
192 }                                                 
193                                                   
194 void G4DeexPrecoParameters::SetDeexModelType(G    
195 {                                                 
196   if(IsLocked() || n < 0 || n > 3) { return; }    
197   fDeexType = n;                                  
198 }                                                 
199                                                   
200 void G4DeexPrecoParameters::SetTwoJMAX(G4int n    
201 {                                                 
202   if(IsLocked() || n < 0) { return; }             
203   fTwoJMAX = n;                                   
204 }                                                 
205                                                   
206 void G4DeexPrecoParameters::SetVerbose(G4int n    
207 {                                                 
208   if(IsLocked()) { return; }                      
209   fVerbose = n;                                   
210 }                                                 
211                                                   
212 void G4DeexPrecoParameters::SetNeverGoBack(G4b    
213 {                                                 
214   if(IsLocked()) { return; }                      
215   fNeverGoBack = val;                             
216 }                                                 
217                                                   
218 void G4DeexPrecoParameters::SetUseSoftCutoff(G    
219 {                                                 
220   if(IsLocked()) { return; }                      
221   fUseSoftCutoff = val;                           
222 }                                                 
223                                                   
224 void G4DeexPrecoParameters::SetUseCEM(G4bool v    
225 {                                                 
226   if(IsLocked()) { return; }                      
227   fUseCEM = val;                                  
228 }                                                 
229                                                   
230 void G4DeexPrecoParameters::SetUseGNASH(G4bool    
231 {                                                 
232   if(IsLocked()) { return; }                      
233   fUseGNASH = val;                                
234 }                                                 
235                                                   
236 void G4DeexPrecoParameters::SetUseHETC(G4bool     
237 {                                                 
238   if(IsLocked()) { return; }                      
239   fUseHETC = val;                                 
240 }                                                 
241                                                   
242 void G4DeexPrecoParameters::SetUseAngularGen(G    
243 {                                                 
244   if(IsLocked()) { return; }                      
245   fUseAngularGen = val;                           
246 }                                                 
247                                                   
248 void G4DeexPrecoParameters::SetPrecoDummy(G4bo    
249 {                                                 
250   if(IsLocked()) { return; }                      
251   fPrecoDummy = val;                              
252   fDeexChannelType = fDummy;                      
253 }                                                 
254                                                   
255 void G4DeexPrecoParameters::SetCorrelatedGamma    
256 {                                                 
257   if(IsLocked()) { return; }                      
258   fCorrelatedGamma = val;                         
259 }                                                 
260                                                   
261 void G4DeexPrecoParameters::SetStoreICLevelDat    
262 {                                                 
263   if(IsLocked()) { return; }                      
264   fStoreAllLevels = val;                          
265 }                                                 
266                                                   
267 void G4DeexPrecoParameters::SetStoreAllLevels(    
268 {                                                 
269   SetStoreICLevelData(val);                       
270 }                                                 
271                                                   
272 void G4DeexPrecoParameters::SetInternalConvers    
273 {                                                 
274   if(IsLocked()) { return; }                      
275   fInternalConversion = val;                      
276 }                                                 
277                                                   
278 void G4DeexPrecoParameters::SetLevelDensityFla    
279 {                                                 
280   if(IsLocked()) { return; }                      
281   fLD = val;                                      
282 }                                                 
283                                                   
284 void G4DeexPrecoParameters::SetDiscreteExcitat    
285 {                                                 
286   if(IsLocked()) { return; }                      
287   fFD = val;                                      
288 }                                                 
289                                                   
290 void G4DeexPrecoParameters::SetIsomerProductio    
291 {                                                 
292   if(IsLocked()) { return; }                      
293   fIsomerFlag = val;                              
294 }                                                 
295                                                   
296 void G4DeexPrecoParameters::SetDeexChannelsTyp    
297 {                                                 
298   if(IsLocked()) { return; }                      
299   fDeexChannelType = val;                         
300 }                                                 
301                                                   
302 std::ostream& G4DeexPrecoParameters::StreamInf    
303 {                                                 
304   static const G4String namm[5] = {"Evaporatio    
305   static const G4int nmm[5] = {8, 68, 68, 31,     
306   G4int idx = fDeexChannelType;                   
307                                                   
308   G4long prec = os.precision(5);                  
309   os << "=====================================    
310   os << "======       Geant4 Native Pre-compou    
311   os << "=====================================    
312   os << "Type of pre-compound inverse x-sectio    
313   os << "Pre-compound model active                
314   os << "Pre-compound excitation low energy       
315      << G4BestUnit(fPrecoLowEnergy, "Energy")     
316   os << "Pre-compound excitation high energy      
317      << G4BestUnit(fPrecoHighEnergy, "Energy")    
318   os << "Angular generator for pre-compound mo    
319   os << "Use NeverGoBack option for pre-compou    
320   os << "Use SoftCutOff option for pre-compoun    
321   os << "Use CEM transitions for pre-compound     
322   os << "Use GNASH transitions for pre-compoun    
323   os << "Use HETC submodel for pre-compound mo    
324   os << "=====================================    
325   os << "======       Nuclear De-excitation Mo    
326   os << "=====================================    
327   os << "Type of de-excitation inverse x-secti    
328   os << "Type of de-excitation factory            
329   os << "Number of de-excitation channels         
330   os << "Min excitation energy                    
331      << G4BestUnit(fMinExcitation, "Energy") <    
332   os << "Min energy per nucleon for multifragm    
333      << G4BestUnit(fMinExPerNucleounForMF, "En    
334   os << "Limit excitation energy for Fermi Bre    
335      << G4BestUnit(fFBUEnergyLimit, "Energy")     
336   os << "Level density (1/MeV)                    
337      << fLevelDensity*CLHEP::MeV << "\n";         
338   os << "Use simple level density model           
339   os << "Use discrete excitation energy of the    
340   os << "Time limit for long lived isomeres       
341      << G4BestUnit(fMaxLifeTime, "Time") << "\    
342   os << "Isomer production flag                   
343   os << "Internal e- conversion flag              
344      << fInternalConversion << "\n";              
345   os << "Store e- internal conversion data        
346   os << "Correlated gamma emission flag           
347   os << "Max 2J for sampling of angular correl    
348   os << "=====================================    
349   os.precision(prec);                             
350   return os;                                      
351 }                                                 
352                                                   
353 G4int G4DeexPrecoParameters::GetVerbose() cons    
354 {                                                 
355   G4int verb = G4HadronicParameters::Instance(    
356   return (verb > 0) ? std::max(fVerbose, verb)    
357 }                                                 
358                                                   
359 void G4DeexPrecoParameters::Dump()                
360 {                                                 
361   if(!fIsPrinted && GetVerbose() > 0 && G4Thre    
362     StreamInfo(G4cout);                           
363     fIsPrinted = true;                            
364   }                                               
365 }                                                 
366                                                   
367 std::ostream& operator<< (std::ostream& os, co    
368 {                                                 
369   return par.StreamInfo(os);                      
370 }                                                 
371                                                   
372 G4bool G4DeexPrecoParameters::IsLocked() const    
373 {                                                 
374   return (!G4Threading::IsMasterThread() ||       
375     (fStateManager->GetCurrentState() != G4Sta    
376 }                                                 
377