Geant4 Cross Reference

Cross-Referencing   Geant4
Geant4/processes/electromagnetic/utils/include/G4EmParameters.hh

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/electromagnetic/utils/include/G4EmParameters.hh (Version 11.3.0) and /processes/electromagnetic/utils/include/G4EmParameters.hh (Version 9.3.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 // -------------------------------------------    
 27 //                                                
 28 // GEANT4 Class header file                       
 29 //                                                
 30 // File name:     G4EmParameters                  
 31 //                                                
 32 // Author:        Vladimir Ivanchenko for migr    
 33 //                                                
 34 //                                                
 35 // Creation date: 17.05.2013                      
 36 //                                                
 37 // Modifications:                                 
 38 //                                                
 39 //                                                
 40 // Class Description:                             
 41 //                                                
 42 // A utility static class, responsable for kee    
 43 // for all EM physics processes and models.       
 44 //                                                
 45 // It is initialized by the master thread but     
 46 // at any moment. Parameters may be used in ru    
 47 // initialisation                                 
 48 //                                                
 49 // -------------------------------------------    
 50 //                                                
 51                                                   
 52 #ifndef G4EmParameters_h                          
 53 #define G4EmParameters_h 1                        
 54                                                   
 55 #include "globals.hh"                             
 56 #include "G4ios.hh"                               
 57 #include "G4MscStepLimitType.hh"                  
 58 #include "G4NuclearFormfactorType.hh"             
 59 #include "G4DNAModelSubType.hh"                   
 60 #include "G4EmFluoDirectory.hh"                   
 61 #include "G4EmSaturation.hh"                      
 62 #include "G4ThreeVector.hh"                       
 63 #include "G4ChemTimeStepModel.hh"                 
 64 #include <vector>                                 
 65 #include <map>                                    
 66 enum G4eSingleScatteringType                      
 67 {                                                 
 68   fWVI = 0,                                       
 69   fMott,                                          
 70   fDPWA                                           
 71 };                                                
 72                                                   
 73 enum class G4TransportationWithMscType            
 74 {                                                 
 75   fDisabled = 0,                                  
 76   fEnabled,                                       
 77   fMultipleSteps,                                 
 78 };                                                
 79                                                   
 80 enum G4EmFluctuationType                          
 81 {                                                 
 82   fDummyFluctuation = 0,                          
 83   fUniversalFluctuation,                          
 84   fUrbanFluctuation                               
 85 };                                                
 86                                                   
 87 enum G4PositronAtRestModelType                    
 88 {                                                 
 89   fSimplePositronium = 0,                         
 90   fAllisonPositronium,                            
 91   fOrePowell,                                     
 92   fOrePowellPolar                                 
 93 };                                                
 94                                                   
 95 class G4EmParametersMessenger;                    
 96 class G4EmExtraParameters;                        
 97 class G4EmLowEParameters;                         
 98 class G4VAtomDeexcitation;                        
 99 class G4VEnergyLossProcess;                       
100 class G4VEmProcess;                               
101 class G4StateManager;                             
102                                                   
103 class G4EmParameters                              
104 {                                                 
105 public:                                           
106                                                   
107   static G4EmParameters* Instance();              
108                                                   
109   ~G4EmParameters();                              
110                                                   
111   void SetDefaults();                             
112                                                   
113   // printing                                     
114   void StreamInfo(std::ostream& os) const;        
115   void Dump();                                    
116   friend std::ostream& operator<< (std::ostrea    
117                                                   
118   // boolean flags                                
119   void SetLossFluctuations(G4bool val);           
120   G4bool LossFluctuation() const;                 
121                                                   
122   void SetBuildCSDARange(G4bool val);             
123   G4bool BuildCSDARange() const;                  
124                                                   
125   void SetLPM(G4bool val);                        
126   G4bool LPM() const;                             
127                                                   
128   void SetUseCutAsFinalRange(G4bool val);         
129   G4bool UseCutAsFinalRange() const;              
130                                                   
131   void SetApplyCuts(G4bool val);                  
132   G4bool ApplyCuts() const;                       
133                                                   
134   void SetFluo(G4bool val);                       
135   G4bool Fluo() const;                            
136                                                   
137   G4EmFluoDirectory FluoDirectory() const;        
138                                                   
139   void SetFluoDirectory(G4EmFluoDirectory);       
140   void SetBeardenFluoDir(G4bool val);             
141   void SetANSTOFluoDir(G4bool val);               
142   void SetXDB_EADLFluoDir(G4bool val);            
143                                                   
144   G4bool BeardenFluoDir();                        
145   G4bool ANSTOFluoDir();                          
146                                                   
147   void SetAuger(G4bool val);                      
148   void SetAugerCascade(G4bool val) { SetAuger(    
149   G4bool Auger() const;                           
150   G4bool AugerCascade() const { return Auger()    
151                                                   
152   void SetPixe(G4bool val);                       
153   G4bool Pixe() const;                            
154                                                   
155   void SetDeexcitationIgnoreCut(G4bool val);      
156   G4bool DeexcitationIgnoreCut() const;           
157                                                   
158   void SetLateralDisplacement(G4bool val);        
159   G4bool LateralDisplacement() const;             
160                                                   
161   void SetLateralDisplacementAlg96(G4bool val)    
162   G4bool LateralDisplacementAlg96() const;        
163                                                   
164   void SetMuHadLateralDisplacement(G4bool val)    
165   G4bool MuHadLateralDisplacement() const;        
166                                                   
167   void ActivateAngularGeneratorForIonisation(G    
168   G4bool UseAngularGeneratorForIonisation() co    
169                                                   
170   void SetUseMottCorrection(G4bool val);          
171   G4bool UseMottCorrection() const;               
172                                                   
173   void SetIntegral(G4bool val);                   
174   G4bool Integral() const;                        
175                                                   
176   void SetBirksActive(G4bool val);                
177   G4bool BirksActive() const;                     
178                                                   
179   void SetUseICRU90Data(G4bool val);              
180   G4bool UseICRU90Data() const;                   
181                                                   
182   void SetFluctuationType(G4EmFluctuationType     
183   G4EmFluctuationType FluctuationType() const;    
184                                                   
185   void SetPositronAtRestModelType(G4PositronAt    
186   G4PositronAtRestModelType PositronAtRestMode    
187                                                   
188   void SetDNAFast(G4bool val);                    
189   G4bool DNAFast() const;                         
190                                                   
191   void SetDNAStationary(G4bool val);              
192   G4bool DNAStationary() const;                   
193                                                   
194   void SetDNAElectronMsc(G4bool val);             
195   G4bool DNAElectronMsc() const;                  
196                                                   
197   // if general interaction is enabled then       
198   // force interaction options should be disab    
199   void SetGeneralProcessActive(G4bool val);       
200   G4bool GeneralProcessActive() const;            
201                                                   
202   void SetEnableSamplingTable(G4bool val);        
203   G4bool EnableSamplingTable() const;             
204                                                   
205   void SetEnablePolarisation(G4bool val);         
206   G4bool EnablePolarisation() const;              
207                                                   
208   G4bool GetDirectionalSplitting() const;         
209   void SetDirectionalSplitting(G4bool v);         
210                                                   
211   G4bool QuantumEntanglement() const;             
212   void SetQuantumEntanglement(G4bool v);          
213                                                   
214   G4bool RetrieveMuDataFromFile() const;          
215   void SetRetrieveMuDataFromFile(G4bool v);       
216                                                   
217   G4bool PhotoeffectBelowKShell() const;          
218   void SetPhotoeffectBelowKShell(G4bool v);       
219                                                   
220   G4bool MscPositronCorrection() const;           
221   void SetMscPositronCorrection(G4bool v);        
222                                                   
223   G4bool UseEPICS2017XS() const;                  
224   void SetUseEPICS2017XS(G4bool v);               
225                                                   
226   G4bool Use3GammaAnnihilationOnFly() const;      
227   void Set3GammaAnnihilationOnFly(G4bool v);      
228                                                   
229   G4bool UseRiGePairProductionModel() const;      
230   void SetUseRiGePairProductionModel(G4bool v)    
231                                                   
232   // 5d                                           
233   void SetOnIsolated(G4bool val);                 
234   G4bool OnIsolated() const;                      
235                                                   
236   void ActivateDNA();                             
237   void SetIsPrintedFlag(G4bool val);              
238   G4bool IsPrintLocked() const;                   
239                                                   
240   // double parameters with values                
241   void SetMinEnergy(G4double val);                
242   G4double MinKinEnergy() const;                  
243                                                   
244   void SetMaxEnergy(G4double val);                
245   G4double MaxKinEnergy() const;                  
246                                                   
247   void SetMaxEnergyForCSDARange(G4double val);    
248   G4double MaxEnergyForCSDARange() const;         
249                                                   
250   void SetLowestElectronEnergy(G4double val);     
251   G4double LowestElectronEnergy() const;          
252                                                   
253   void SetLowestMuHadEnergy(G4double val);        
254   G4double LowestMuHadEnergy() const;             
255                                                   
256   void SetLowestTripletEnergy(G4double val);      
257   G4double LowestTripletEnergy() const;           
258                                                   
259   void SetLinearLossLimit(G4double val);          
260   G4double LinearLossLimit() const;               
261                                                   
262   void SetBremsstrahlungTh(G4double val);         
263   G4double BremsstrahlungTh() const;              
264   void SetMuHadBremsstrahlungTh(G4double val);    
265   G4double MuHadBremsstrahlungTh() const;         
266                                                   
267   void SetLambdaFactor(G4double val);             
268   G4double LambdaFactor() const;                  
269                                                   
270   void SetFactorForAngleLimit(G4double val);      
271   G4double FactorForAngleLimit() const;           
272                                                   
273   void SetMscThetaLimit(G4double val);            
274   G4double MscThetaLimit() const;                 
275                                                   
276   void SetMscEnergyLimit(G4double val);           
277   G4double MscEnergyLimit() const;                
278                                                   
279   void SetMscRangeFactor(G4double val);           
280   G4double MscRangeFactor() const;                
281                                                   
282   void SetMscMuHadRangeFactor(G4double val);      
283   G4double MscMuHadRangeFactor() const;           
284                                                   
285   void SetMscGeomFactor(G4double val);            
286   G4double MscGeomFactor() const;                 
287                                                   
288   void SetMscSafetyFactor(G4double val);          
289   G4double MscSafetyFactor() const;               
290                                                   
291   void SetMscLambdaLimit(G4double val);           
292   G4double MscLambdaLimit() const;                
293                                                   
294   void SetMscSkin(G4double val);                  
295   G4double MscSkin() const;                       
296                                                   
297   void SetScreeningFactor(G4double val);          
298   G4double ScreeningFactor() const;               
299                                                   
300   void SetMaxNIELEnergy(G4double val);            
301   G4double MaxNIELEnergy() const;                 
302                                                   
303   void SetMaxEnergyFor5DMuPair(G4double val);     
304   G4double MaxEnergyFor5DMuPair() const;          
305                                                   
306   void SetStepFunction(G4double v1, G4double v    
307   void SetStepFunctionMuHad(G4double v1, G4dou    
308   void SetStepFunctionLightIons(G4double v1, G    
309   void SetStepFunctionIons(G4double v1, G4doub    
310   void FillStepFunction(const G4ParticleDefini    
311                                                   
312   void SetDirectionalSplittingRadius(G4double     
313   G4double GetDirectionalSplittingRadius();       
314                                                   
315   void SetDirectionalSplittingTarget(const G4T    
316   G4ThreeVector GetDirectionalSplittingTarget(    
317                                                   
318   // integer parameters                           
319                                                   
320   void SetNumberOfBinsPerDecade(G4int val);       
321   G4int NumberOfBinsPerDecade() const;            
322   G4int NumberOfBins() const;                     
323                                                   
324   void SetVerbose(G4int val);                     
325   G4int Verbose() const;                          
326                                                   
327   void SetWorkerVerbose(G4int val);               
328   G4int WorkerVerbose() const;                    
329                                                   
330   void SetNumberForFreeVector(G4int val);         
331   G4int NumberForFreeVector() const;              
332                                                   
333   void SetTransportationWithMsc(G4Transportati    
334   G4TransportationWithMscType TransportationWi    
335                                                   
336   void SetMscStepLimitType(G4MscStepLimitType     
337   G4MscStepLimitType MscStepLimitType() const;    
338                                                   
339   void SetMscMuHadStepLimitType(G4MscStepLimit    
340   G4MscStepLimitType MscMuHadStepLimitType() c    
341                                                   
342   void SetSingleScatteringType(G4eSingleScatte    
343   G4eSingleScatteringType SingleScatteringType    
344                                                   
345   void SetNuclearFormfactorType(G4NuclearFormf    
346   G4NuclearFormfactorType NuclearFormfactorTyp    
347                                                   
348   void SetDNAeSolvationSubType(G4DNAModelSubTy    
349   G4DNAModelSubType DNAeSolvationSubType() con    
350                                                   
351   //DNA chemistry model                           
352   void SetTimeStepModel(const G4ChemTimeStepMo    
353   G4ChemTimeStepModel GetTimeStepModel() const    
354   //5d                                            
355   void  SetConversionType(G4int val);             
356   G4int GetConversionType() const;                
357                                                   
358   // string parameters                            
359   void SetPIXECrossSectionModel(const G4String    
360   const G4String& PIXECrossSectionModel();        
361                                                   
362   void SetPIXEElectronCrossSectionModel(const     
363   const G4String& PIXEElectronCrossSectionMode    
364                                                   
365   void SetLivermoreDataDir(const G4String&);      
366   const G4String& LivermoreDataDir();             
367                                                   
368   // parameters per region or per process         
369   void AddPAIModel(const G4String& particle,      
370                    const G4String& region,        
371                    const G4String& type);         
372   const std::vector<G4String>& ParticlesPAI()     
373   const std::vector<G4String>& RegionsPAI() co    
374   const std::vector<G4String>& TypesPAI() cons    
375                                                   
376   void AddMicroElec(const G4String& region);      
377   const std::vector<G4String>& RegionsMicroEle    
378                                                   
379   void AddDNA(const G4String& region, const G4    
380   const std::vector<G4String>& RegionsDNA() co    
381   const std::vector<G4String>& TypesDNA() cons    
382                                                   
383   void AddPhysics(const G4String& region, cons    
384   const std::vector<G4String>& RegionsPhysics(    
385   const std::vector<G4String>& TypesPhysics()     
386                                                   
387   void SetSubCutRegion(const G4String& region     
388                                                   
389   void SetDeexActiveRegion(const G4String& reg    
390          G4bool fauger, G4bool fpixe);            
391                                                   
392   void SetProcessBiasingFactor(const G4String&    
393                                G4double val, G    
394                                                   
395   void ActivateForcedInteraction(const G4Strin    
396                                  const G4Strin    
397                                  G4double leng    
398                                  G4bool wflag)    
399                                                   
400   void ActivateSecondaryBiasing(const G4String    
401         const G4String& region,                   
402         G4double factor,                          
403         G4double energyLimit);                    
404                                                   
405   // define external saturation class             
406   void SetEmSaturation(G4EmSaturation*);          
407   // create and access saturation class           
408   G4EmSaturation* GetEmSaturation();              
409                                                   
410   // initialisation methods                       
411   void DefineRegParamForLoss(G4VEnergyLossProc    
412   void DefineRegParamForEM(G4VEmProcess*) cons    
413   void DefineRegParamForDeex(G4VAtomDeexcitati    
414                                                   
415   const G4String& GetDirLEDATA() const;           
416                                                   
417   G4EmParameters(G4EmParameters &) = delete;      
418   G4EmParameters & operator=(const G4EmParamet    
419                                                   
420 private:                                          
421                                                   
422   G4EmParameters();                               
423                                                   
424   void Initialise();                              
425                                                   
426   G4bool IsLocked() const;                        
427                                                   
428   void PrintWarning(G4ExceptionDescription& ed    
429                                                   
430   static G4EmParameters* theInstance;             
431                                                   
432   G4EmParametersMessenger* theMessenger;          
433   G4EmExtraParameters* fBParameters;              
434   G4EmLowEParameters* fCParameters;               
435   G4StateManager*  fStateManager;                 
436   G4EmSaturation*  emSaturation;                  
437                                                   
438   G4bool lossFluctuation;                         
439   G4bool buildCSDARange;                          
440   G4bool flagLPM;                                 
441   G4bool cutAsFinalRange;                         
442   G4bool applyCuts;                               
443   G4bool lateralDisplacement;                     
444   G4bool lateralDisplacementAlg96;                
445   G4bool muhadLateralDisplacement;                
446   G4bool useAngGeneratorForIonisation;            
447   G4bool useMottCorrection;                       
448   G4bool integral;                                
449   G4bool birks;                                   
450   G4bool fICRU90;                                 
451   G4bool gener;                                   
452   G4bool fSamplingTable;                          
453   G4bool fPolarisation;                           
454   G4bool fMuDataFromFile;                         
455   G4bool fPEKShell;                               
456   G4bool fMscPosiCorr;                            
457   G4bool fUseEPICS2017XS;                         
458   G4bool f3GammaAnnihilationOnFly;                
459   G4bool fUseRiGePairProductionModel;             
460   G4bool onIsolated; // 5d model conversion on    
461   G4bool fDNA;                                    
462   G4bool fIsPrinted;                              
463                                                   
464   G4double minKinEnergy;                          
465   G4double maxKinEnergy;                          
466   G4double maxKinEnergyCSDA;                      
467   G4double max5DEnergyForMuPair;                  
468   G4double lowestElectronEnergy;                  
469   G4double lowestMuHadEnergy;                     
470   G4double lowestTripletEnergy;                   
471   G4double linLossLimit;                          
472   G4double bremsTh;                               
473   G4double bremsMuHadTh;                          
474   G4double lambdaFactor;                          
475   G4double factorForAngleLimit;                   
476   G4double thetaLimit;                            
477   G4double energyLimit;                           
478   G4double maxNIELEnergy;                         
479   G4double rangeFactor;                           
480   G4double rangeFactorMuHad;                      
481   G4double geomFactor;                            
482   G4double safetyFactor;                          
483   G4double lambdaLimit;                           
484   G4double skin;                                  
485   G4double factorScreen;                          
486                                                   
487   G4int nbinsPerDecade;                           
488   G4int verbose;                                  
489   G4int workerVerbose;                            
490   G4int nForFreeVector;                           
491   G4int tripletConv;  // 5d model triplet gene    
492                                                   
493   G4TransportationWithMscType fTransportationW    
494   G4MscStepLimitType mscStepLimit;                
495   G4MscStepLimitType mscStepLimitMuHad;           
496   G4NuclearFormfactorType nucFormfactor;          
497   G4eSingleScatteringType fSStype;                
498   G4EmFluctuationType fFluct;                     
499   G4PositronAtRestModelType fPositronium;         
500                                                   
501   G4String fDirLEDATA;                            
502 };                                                
503                                                   
504 //....oooOO0OOooo........oooOO0OOooo........oo    
505                                                   
506 #endif                                            
507                                                   
508