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 10.5.p1)


  1 //                                                  1 //
  2 // *******************************************      2 // ********************************************************************
  3 // * License and Disclaimer                         3 // * License and Disclaimer                                           *
  4 // *                                                4 // *                                                                  *
  5 // * The  Geant4 software  is  copyright of th      5 // * The  Geant4 software  is  copyright of the Copyright Holders  of *
  6 // * the Geant4 Collaboration.  It is provided      6 // * the Geant4 Collaboration.  It is provided  under  the terms  and *
  7 // * conditions of the Geant4 Software License      7 // * conditions of the Geant4 Software License,  included in the file *
  8 // * LICENSE and available at  http://cern.ch/      8 // * LICENSE and available at  http://cern.ch/geant4/license .  These *
  9 // * include a list of copyright holders.           9 // * include a list of copyright holders.                             *
 10 // *                                               10 // *                                                                  *
 11 // * Neither the authors of this software syst     11 // * Neither the authors of this software system, nor their employing *
 12 // * institutes,nor the agencies providing fin     12 // * institutes,nor the agencies providing financial support for this *
 13 // * work  make  any representation or  warran     13 // * work  make  any representation or  warranty, express or implied, *
 14 // * regarding  this  software system or assum     14 // * regarding  this  software system or assume any liability for its *
 15 // * use.  Please see the license in the file      15 // * use.  Please see the license in the file  LICENSE  and URL above *
 16 // * for the full disclaimer and the limitatio     16 // * for the full disclaimer and the limitation of liability.         *
 17 // *                                               17 // *                                                                  *
 18 // * This  code  implementation is the result      18 // * This  code  implementation is the result of  the  scientific and *
 19 // * technical work of the GEANT4 collaboratio     19 // * technical work of the GEANT4 collaboration.                      *
 20 // * By using,  copying,  modifying or  distri     20 // * By using,  copying,  modifying or  distributing the software (or *
 21 // * any work based  on the software)  you  ag     21 // * any work based  on the software)  you  agree  to acknowledge its *
 22 // * use  in  resulting  scientific  publicati     22 // * use  in  resulting  scientific  publications,  and indicate your *
 23 // * acceptance of all terms of the Geant4 Sof     23 // * acceptance of all terms of the Geant4 Software license.          *
 24 // *******************************************     24 // ********************************************************************
 25 //                                                 25 //
                                                   >>  26 //
 26 // -------------------------------------------     27 // -------------------------------------------------------------------
 27 //                                                 28 //
 28 // GEANT4 Class header file                        29 // GEANT4 Class header file
 29 //                                                 30 //
                                                   >>  31 //
 30 // File name:     G4EmParameters                   32 // File name:     G4EmParameters
 31 //                                                 33 //
 32 // Author:        Vladimir Ivanchenko for migr     34 // Author:        Vladimir Ivanchenko for migration to MT
 33 //                                                 35 //                  
 34 //                                                 36 //
 35 // Creation date: 17.05.2013                       37 // Creation date: 17.05.2013
 36 //                                                 38 //
 37 // Modifications:                                  39 // Modifications:
 38 //                                                 40 //
 39 //                                                 41 //
 40 // Class Description:                              42 // Class Description:
 41 //                                                 43 //
 42 // A utility static class, responsable for kee     44 // A utility static class, responsable for keeping parameters
 43 // for all EM physics processes and models.        45 // for all EM physics processes and models.
 44 //                                                 46 //
 45 // It is initialized by the master thread but      47 // It is initialized by the master thread but can be updated 
 46 // at any moment. Parameters may be used in ru     48 // at any moment. Parameters may be used in run time or at 
 47 // initialisation                                  49 // initialisation
 48 //                                                 50 //
 49 // -------------------------------------------     51 // -------------------------------------------------------------------
 50 //                                                 52 //
 51                                                    53 
 52 #ifndef G4EmParameters_h                           54 #ifndef G4EmParameters_h
 53 #define G4EmParameters_h 1                         55 #define G4EmParameters_h 1
 54                                                    56 
 55 #include "globals.hh"                              57 #include "globals.hh"
 56 #include "G4ios.hh"                                58 #include "G4ios.hh"
 57 #include "G4MscStepLimitType.hh"                   59 #include "G4MscStepLimitType.hh"
 58 #include "G4NuclearFormfactorType.hh"              60 #include "G4NuclearFormfactorType.hh"
 59 #include "G4DNAModelSubType.hh"                    61 #include "G4DNAModelSubType.hh"
 60 #include "G4EmFluoDirectory.hh"                << 
 61 #include "G4EmSaturation.hh"                       62 #include "G4EmSaturation.hh"
 62 #include "G4ThreeVector.hh"                    <<  63 #include "G4Threading.hh"
 63 #include "G4ChemTimeStepModel.hh"              << 
 64 #include <vector>                                  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                                                    65 
 95 class G4EmParametersMessenger;                     66 class G4EmParametersMessenger;
 96 class G4EmExtraParameters;                     << 
 97 class G4EmLowEParameters;                      << 
 98 class G4VAtomDeexcitation;                     << 
 99 class G4VEnergyLossProcess;                        67 class G4VEnergyLossProcess;
100 class G4VEmProcess;                                68 class G4VEmProcess;
                                                   >>  69 class G4VAtomDeexcitation;
101 class G4StateManager;                              70 class G4StateManager;
102                                                    71 
103 class G4EmParameters                               72 class G4EmParameters
104 {                                                  73 {
105 public:                                            74 public:
106                                                    75 
107   static G4EmParameters* Instance();               76   static G4EmParameters* Instance();
108                                                    77 
109   ~G4EmParameters();                               78   ~G4EmParameters();
110                                                    79 
111   void SetDefaults();                              80   void SetDefaults();
112                                                    81 
113   // printing                                      82   // printing
114   void StreamInfo(std::ostream& os) const;     <<  83   std::ostream& StreamInfo(std::ostream& os) const;
115   void Dump();                                 <<  84   void Dump() const;
116   friend std::ostream& operator<< (std::ostrea     85   friend std::ostream& operator<< (std::ostream& os, const G4EmParameters&);
117                                                    86 
118   // boolean flags                                 87   // boolean flags
119   void SetLossFluctuations(G4bool val);            88   void SetLossFluctuations(G4bool val);
120   G4bool LossFluctuation() const;                  89   G4bool LossFluctuation() const;
121                                                    90 
122   void SetBuildCSDARange(G4bool val);              91   void SetBuildCSDARange(G4bool val);
123   G4bool BuildCSDARange() const;                   92   G4bool BuildCSDARange() const;
124                                                    93 
125   void SetLPM(G4bool val);                         94   void SetLPM(G4bool val);
126   G4bool LPM() const;                              95   G4bool LPM() const;
127                                                    96 
                                                   >>  97   void SetSpline(G4bool val);
                                                   >>  98   G4bool Spline() const;
                                                   >>  99 
128   void SetUseCutAsFinalRange(G4bool val);         100   void SetUseCutAsFinalRange(G4bool val);
129   G4bool UseCutAsFinalRange() const;              101   G4bool UseCutAsFinalRange() const;
130                                                   102 
131   void SetApplyCuts(G4bool val);                  103   void SetApplyCuts(G4bool val);
132   G4bool ApplyCuts() const;                       104   G4bool ApplyCuts() const;
133                                                   105 
134   void SetFluo(G4bool val);                       106   void SetFluo(G4bool val);
135   G4bool Fluo() const;                            107   G4bool Fluo() const;
136                                                   108 
137   G4EmFluoDirectory FluoDirectory() const;     << 
138                                                << 
139   void SetFluoDirectory(G4EmFluoDirectory);    << 
140   void SetBeardenFluoDir(G4bool val);             109   void SetBeardenFluoDir(G4bool val);
141   void SetANSTOFluoDir(G4bool val);            << 110   G4bool BeardenFluoDir() const;
142   void SetXDB_EADLFluoDir(G4bool val);         << 
143                                                << 
144   G4bool BeardenFluoDir();                     << 
145   G4bool ANSTOFluoDir();                       << 
146                                                   111 
147   void SetAuger(G4bool val);                      112   void SetAuger(G4bool val);
148   void SetAugerCascade(G4bool val) { SetAuger( << 
149   G4bool Auger() const;                           113   G4bool Auger() const;
150   G4bool AugerCascade() const { return Auger() << 114 
                                                   >> 115   // obsolete methods
                                                   >> 116   void SetAugerCascade(G4bool val);
                                                   >> 117   G4bool AugerCascade() const;
151                                                   118 
152   void SetPixe(G4bool val);                       119   void SetPixe(G4bool val);
153   G4bool Pixe() const;                            120   G4bool Pixe() const;
154                                                   121 
155   void SetDeexcitationIgnoreCut(G4bool val);      122   void SetDeexcitationIgnoreCut(G4bool val);
156   G4bool DeexcitationIgnoreCut() const;           123   G4bool DeexcitationIgnoreCut() const;
157                                                   124 
158   void SetLateralDisplacement(G4bool val);        125   void SetLateralDisplacement(G4bool val);
159   G4bool LateralDisplacement() const;             126   G4bool LateralDisplacement() const;
160                                                   127 
161   void SetLateralDisplacementAlg96(G4bool val)    128   void SetLateralDisplacementAlg96(G4bool val);
162   G4bool LateralDisplacementAlg96() const;        129   G4bool LateralDisplacementAlg96() const;
163                                                   130 
164   void SetMuHadLateralDisplacement(G4bool val)    131   void SetMuHadLateralDisplacement(G4bool val);
165   G4bool MuHadLateralDisplacement() const;        132   G4bool MuHadLateralDisplacement() const;
166                                                   133 
                                                   >> 134   void SetLatDisplacementBeyondSafety(G4bool val);
                                                   >> 135   G4bool LatDisplacementBeyondSafety() const;
                                                   >> 136 
167   void ActivateAngularGeneratorForIonisation(G    137   void ActivateAngularGeneratorForIonisation(G4bool val);
168   G4bool UseAngularGeneratorForIonisation() co    138   G4bool UseAngularGeneratorForIonisation() const;
169                                                   139 
170   void SetUseMottCorrection(G4bool val);          140   void SetUseMottCorrection(G4bool val);
171   G4bool UseMottCorrection() const;               141   G4bool UseMottCorrection() const;
172                                                   142 
173   void SetIntegral(G4bool val);                   143   void SetIntegral(G4bool val);
174   G4bool Integral() const;                        144   G4bool Integral() const;
175                                                   145 
176   void SetBirksActive(G4bool val);                146   void SetBirksActive(G4bool val);
177   G4bool BirksActive() const;                     147   G4bool BirksActive() const;
178                                                   148 
179   void SetUseICRU90Data(G4bool val);              149   void SetUseICRU90Data(G4bool val);
180   G4bool UseICRU90Data() const;                   150   G4bool UseICRU90Data() const;
181                                                   151 
182   void SetFluctuationType(G4EmFluctuationType  << 
183   G4EmFluctuationType FluctuationType() const; << 
184                                                << 
185   void SetPositronAtRestModelType(G4PositronAt << 
186   G4PositronAtRestModelType PositronAtRestMode << 
187                                                << 
188   void SetDNAFast(G4bool val);                    152   void SetDNAFast(G4bool val);
189   G4bool DNAFast() const;                         153   G4bool DNAFast() const;
190                                                   154 
191   void SetDNAStationary(G4bool val);              155   void SetDNAStationary(G4bool val);
192   G4bool DNAStationary() const;                   156   G4bool DNAStationary() const;
193                                                   157 
194   void SetDNAElectronMsc(G4bool val);             158   void SetDNAElectronMsc(G4bool val);
195   G4bool DNAElectronMsc() const;                  159   G4bool DNAElectronMsc() const;
196                                                   160 
197   // if general interaction is enabled then    << 
198   // force interaction options should be disab << 
199   void SetGeneralProcessActive(G4bool val);       161   void SetGeneralProcessActive(G4bool val);
200   G4bool GeneralProcessActive() const;            162   G4bool GeneralProcessActive() const;
201                                                   163 
202   void SetEnableSamplingTable(G4bool val);        164   void SetEnableSamplingTable(G4bool val);
203   G4bool EnableSamplingTable() const;             165   G4bool EnableSamplingTable() const;
204                                                   166 
205   void SetEnablePolarisation(G4bool val);      << 167   void SetEmSaturation(G4EmSaturation*);
206   G4bool EnablePolarisation() const;           << 168   G4EmSaturation* GetEmSaturation();
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                                                   169 
232   // 5d                                           170   // 5d
233   void SetOnIsolated(G4bool val);              << 171   void  SetOnIsolated(G4bool val);
234   G4bool OnIsolated() const;                   << 172   bool  OnIsolated() const;
235                                                << 
236   void ActivateDNA();                          << 
237   void SetIsPrintedFlag(G4bool val);           << 
238   G4bool IsPrintLocked() const;                << 
239                                                   173 
240   // double parameters with values                174   // double parameters with values
                                                   >> 175   void SetMinSubRange(G4double val);
                                                   >> 176   G4double MinSubRange() const;
                                                   >> 177 
241   void SetMinEnergy(G4double val);                178   void SetMinEnergy(G4double val);
242   G4double MinKinEnergy() const;                  179   G4double MinKinEnergy() const;
243                                                   180 
244   void SetMaxEnergy(G4double val);                181   void SetMaxEnergy(G4double val);
245   G4double MaxKinEnergy() const;                  182   G4double MaxKinEnergy() const;
246                                                   183 
247   void SetMaxEnergyForCSDARange(G4double val);    184   void SetMaxEnergyForCSDARange(G4double val);
248   G4double MaxEnergyForCSDARange() const;         185   G4double MaxEnergyForCSDARange() const;
249                                                   186 
250   void SetLowestElectronEnergy(G4double val);     187   void SetLowestElectronEnergy(G4double val);
251   G4double LowestElectronEnergy() const;          188   G4double LowestElectronEnergy() const;
252                                                   189 
253   void SetLowestMuHadEnergy(G4double val);        190   void SetLowestMuHadEnergy(G4double val);
254   G4double LowestMuHadEnergy() const;             191   G4double LowestMuHadEnergy() const;
255                                                   192 
256   void SetLowestTripletEnergy(G4double val);      193   void SetLowestTripletEnergy(G4double val);
257   G4double LowestTripletEnergy() const;           194   G4double LowestTripletEnergy() const;
258                                                   195 
259   void SetLinearLossLimit(G4double val);          196   void SetLinearLossLimit(G4double val);
260   G4double LinearLossLimit() const;               197   G4double LinearLossLimit() const;
261                                                   198 
262   void SetBremsstrahlungTh(G4double val);         199   void SetBremsstrahlungTh(G4double val);
263   G4double BremsstrahlungTh() const;              200   G4double BremsstrahlungTh() const;
264   void SetMuHadBremsstrahlungTh(G4double val); << 
265   G4double MuHadBremsstrahlungTh() const;      << 
266                                                   201 
267   void SetLambdaFactor(G4double val);             202   void SetLambdaFactor(G4double val);
268   G4double LambdaFactor() const;                  203   G4double LambdaFactor() const;
269                                                   204 
270   void SetFactorForAngleLimit(G4double val);      205   void SetFactorForAngleLimit(G4double val);
271   G4double FactorForAngleLimit() const;           206   G4double FactorForAngleLimit() const;
272                                                   207 
273   void SetMscThetaLimit(G4double val);            208   void SetMscThetaLimit(G4double val);
274   G4double MscThetaLimit() const;                 209   G4double MscThetaLimit() const;
275                                                   210 
276   void SetMscEnergyLimit(G4double val);           211   void SetMscEnergyLimit(G4double val);
277   G4double MscEnergyLimit() const;                212   G4double MscEnergyLimit() const;
278                                                   213 
279   void SetMscRangeFactor(G4double val);           214   void SetMscRangeFactor(G4double val);
280   G4double MscRangeFactor() const;                215   G4double MscRangeFactor() const;
281                                                   216 
282   void SetMscMuHadRangeFactor(G4double val);      217   void SetMscMuHadRangeFactor(G4double val);
283   G4double MscMuHadRangeFactor() const;           218   G4double MscMuHadRangeFactor() const;
284                                                   219 
285   void SetMscGeomFactor(G4double val);            220   void SetMscGeomFactor(G4double val);
286   G4double MscGeomFactor() const;                 221   G4double MscGeomFactor() const;
287                                                   222 
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);                  223   void SetMscSkin(G4double val);
295   G4double MscSkin() const;                       224   G4double MscSkin() const;
296                                                   225 
297   void SetScreeningFactor(G4double val);          226   void SetScreeningFactor(G4double val);
298   G4double ScreeningFactor() const;               227   G4double ScreeningFactor() const;
299                                                   228 
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    229   void SetStepFunction(G4double v1, G4double v2);
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                                                   230 
315   void SetDirectionalSplittingTarget(const G4T << 231   void SetStepFunctionMuHad(G4double v1, G4double v2);
316   G4ThreeVector GetDirectionalSplittingTarget( << 
317                                                   232 
318   // integer parameters                           233   // integer parameters 
319                                                << 234   void SetNumberOfBins(G4int val);
                                                   >> 235   G4int NumberOfBins() const;
                                                   >> 236 
320   void SetNumberOfBinsPerDecade(G4int val);       237   void SetNumberOfBinsPerDecade(G4int val);
321   G4int NumberOfBinsPerDecade() const;            238   G4int NumberOfBinsPerDecade() const;
322   G4int NumberOfBins() const;                  << 
323                                                   239 
324   void SetVerbose(G4int val);                     240   void SetVerbose(G4int val);
325   G4int Verbose() const;                          241   G4int Verbose() const;
326                                                   242 
327   void SetWorkerVerbose(G4int val);               243   void SetWorkerVerbose(G4int val);
328   G4int WorkerVerbose() const;                    244   G4int WorkerVerbose() const;
329                                                   245 
330   void SetNumberForFreeVector(G4int val);      << 
331   G4int NumberForFreeVector() const;           << 
332                                                << 
333   void SetTransportationWithMsc(G4Transportati << 
334   G4TransportationWithMscType TransportationWi << 
335                                                << 
336   void SetMscStepLimitType(G4MscStepLimitType     246   void SetMscStepLimitType(G4MscStepLimitType val);
337   G4MscStepLimitType MscStepLimitType() const;    247   G4MscStepLimitType MscStepLimitType() const;
338                                                   248 
339   void SetMscMuHadStepLimitType(G4MscStepLimit    249   void SetMscMuHadStepLimitType(G4MscStepLimitType val);
340   G4MscStepLimitType MscMuHadStepLimitType() c    250   G4MscStepLimitType MscMuHadStepLimitType() const;
341                                                   251 
342   void SetSingleScatteringType(G4eSingleScatte << 
343   G4eSingleScatteringType SingleScatteringType << 
344                                                << 
345   void SetNuclearFormfactorType(G4NuclearFormf    252   void SetNuclearFormfactorType(G4NuclearFormfactorType val);
346   G4NuclearFormfactorType NuclearFormfactorTyp    253   G4NuclearFormfactorType NuclearFormfactorType() const;
347                                                   254 
348   void SetDNAeSolvationSubType(G4DNAModelSubTy    255   void SetDNAeSolvationSubType(G4DNAModelSubType val);
349   G4DNAModelSubType DNAeSolvationSubType() con    256   G4DNAModelSubType DNAeSolvationSubType() const;
350                                                   257 
351   //DNA chemistry model                        << 
352   void SetTimeStepModel(const G4ChemTimeStepMo << 
353   G4ChemTimeStepModel GetTimeStepModel() const << 
354   //5d                                            258   //5d
355   void  SetConversionType(G4int val);             259   void  SetConversionType(G4int val);
356   G4int GetConversionType() const;                260   G4int GetConversionType() const;
357                                                   261 
358   // string parameters                            262   // string parameters 
359   void SetPIXECrossSectionModel(const G4String    263   void SetPIXECrossSectionModel(const G4String&);
360   const G4String& PIXECrossSectionModel();        264   const G4String& PIXECrossSectionModel();
361                                                   265 
362   void SetPIXEElectronCrossSectionModel(const     266   void SetPIXEElectronCrossSectionModel(const G4String&);
363   const G4String& PIXEElectronCrossSectionMode    267   const G4String& PIXEElectronCrossSectionModel();
364                                                   268 
365   void SetLivermoreDataDir(const G4String&);   << 
366   const G4String& LivermoreDataDir();          << 
367                                                << 
368   // parameters per region or per process         269   // parameters per region or per process 
369   void AddPAIModel(const G4String& particle,      270   void AddPAIModel(const G4String& particle,
370                    const G4String& region,        271                    const G4String& region,
371                    const G4String& type);         272                    const G4String& type);
372   const std::vector<G4String>& ParticlesPAI()     273   const std::vector<G4String>& ParticlesPAI() const;
373   const std::vector<G4String>& RegionsPAI() co    274   const std::vector<G4String>& RegionsPAI() const;
374   const std::vector<G4String>& TypesPAI() cons    275   const std::vector<G4String>& TypesPAI() const;
375                                                   276 
376   void AddMicroElec(const G4String& region);      277   void AddMicroElec(const G4String& region);
377   const std::vector<G4String>& RegionsMicroEle    278   const std::vector<G4String>& RegionsMicroElec() const;
378                                                   279 
379   void AddDNA(const G4String& region, const G4    280   void AddDNA(const G4String& region, const G4String& type);
380   const std::vector<G4String>& RegionsDNA() co    281   const std::vector<G4String>& RegionsDNA() const;
381   const std::vector<G4String>& TypesDNA() cons    282   const std::vector<G4String>& TypesDNA() const;
382                                                   283 
                                                   >> 284   // obsolete methods
                                                   >> 285   void AddMsc(const G4String& region, const G4String& type);
                                                   >> 286   const std::vector<G4String>& RegionsMsc() const;
                                                   >> 287   const std::vector<G4String>& TypesMsc() const;
                                                   >> 288 
383   void AddPhysics(const G4String& region, cons    289   void AddPhysics(const G4String& region, const G4String& type);
384   const std::vector<G4String>& RegionsPhysics(    290   const std::vector<G4String>& RegionsPhysics() const;
385   const std::vector<G4String>& TypesPhysics()     291   const std::vector<G4String>& TypesPhysics() const;
386                                                   292 
387   void SetSubCutRegion(const G4String& region  << 293   void SetSubCutoff(G4bool val, const G4String& region = "");
388                                                   294 
389   void SetDeexActiveRegion(const G4String& reg    295   void SetDeexActiveRegion(const G4String& region, G4bool fdeex,
390          G4bool fauger, G4bool fpixe);            296          G4bool fauger, G4bool fpixe);
391                                                   297 
392   void SetProcessBiasingFactor(const G4String&    298   void SetProcessBiasingFactor(const G4String& procname, 
393                                G4double val, G    299                                G4double val, G4bool wflag);
394                                                   300 
395   void ActivateForcedInteraction(const G4Strin    301   void ActivateForcedInteraction(const G4String& procname, 
396                                  const G4Strin    302                                  const G4String& region,
397                                  G4double leng    303                                  G4double length, 
398                                  G4bool wflag)    304                                  G4bool wflag);
399                                                   305 
400   void ActivateSecondaryBiasing(const G4String    306   void ActivateSecondaryBiasing(const G4String& name,
401         const G4String& region,                   307         const G4String& region, 
402         G4double factor,                          308         G4double factor,
403         G4double energyLimit);                    309         G4double energyLimit);
404                                                   310 
405   // define external saturation class          << 311   G4bool GetDirectionalSplitting() { return directionalSplitting; }
406   void SetEmSaturation(G4EmSaturation*);       << 312   void   SetDirectionalSplitting(G4int v) { directionalSplitting = v; }
407   // create and access saturation class        << 313 
408   G4EmSaturation* GetEmSaturation();           << 314   void  SetDirectionalSplittingTarget(G4ThreeVector v)
                                                   >> 315     { directionalSplittingTarget = v; }
                                                   >> 316   G4ThreeVector  GetDirectionalSplittingTarget()
                                                   >> 317     { return directionalSplittingTarget; }
                                                   >> 318   void  SetDirectionalSplittingRadius(G4double r)
                                                   >> 319     { directionalSplittingRadius = r; }
                                                   >> 320   G4double  GetDirectionalSplittingRadius()
                                                   >> 321     { return directionalSplittingRadius; }
409                                                   322 
410   // initialisation methods                       323   // initialisation methods
411   void DefineRegParamForLoss(G4VEnergyLossProc << 324   void DefineRegParamForLoss(G4VEnergyLossProcess*, 
                                                   >> 325                              G4bool isElectron) const;
412   void DefineRegParamForEM(G4VEmProcess*) cons    326   void DefineRegParamForEM(G4VEmProcess*) const;
413   void DefineRegParamForDeex(G4VAtomDeexcitati    327   void DefineRegParamForDeex(G4VAtomDeexcitation*) const;
414                                                   328 
415   const G4String& GetDirLEDATA() const;        << 
416                                                << 
417   G4EmParameters(G4EmParameters &) = delete;      329   G4EmParameters(G4EmParameters &) = delete;
418   G4EmParameters & operator=(const G4EmParamet    330   G4EmParameters & operator=(const G4EmParameters &right) = delete;  
419                                                   331 
420 private:                                          332 private:
421                                                   333 
422   G4EmParameters();                               334   G4EmParameters();
423                                                   335 
424   void Initialise();                              336   void Initialise();
425                                                   337 
426   G4bool IsLocked() const;                        338   G4bool IsLocked() const;
427                                                   339 
428   void PrintWarning(G4ExceptionDescription& ed << 340   G4String CheckRegion(const G4String&) const;
                                                   >> 341 
                                                   >> 342   void PrintWarning(G4ExceptionDescription& ed) const;
429                                                   343 
430   static G4EmParameters* theInstance;             344   static G4EmParameters* theInstance;
431                                                   345 
432   G4EmParametersMessenger* theMessenger;          346   G4EmParametersMessenger* theMessenger;
433   G4EmExtraParameters* fBParameters;           << 347 
434   G4EmLowEParameters* fCParameters;            << 348   G4StateManager* fStateManager;
435   G4StateManager*  fStateManager;              << 349 
436   G4EmSaturation*  emSaturation;               << 350   G4EmSaturation* emSaturation;
437                                                   351 
438   G4bool lossFluctuation;                         352   G4bool lossFluctuation;
439   G4bool buildCSDARange;                          353   G4bool buildCSDARange;
440   G4bool flagLPM;                                 354   G4bool flagLPM;
                                                   >> 355   G4bool spline;
441   G4bool cutAsFinalRange;                         356   G4bool cutAsFinalRange;
442   G4bool applyCuts;                               357   G4bool applyCuts;
                                                   >> 358   G4bool fluo;
                                                   >> 359   G4bool beardenFluoDir;
                                                   >> 360   G4bool auger;
                                                   >> 361   G4bool augerCascade;
                                                   >> 362   G4bool pixe;
                                                   >> 363   G4bool deexIgnoreCut;
443   G4bool lateralDisplacement;                     364   G4bool lateralDisplacement;
444   G4bool lateralDisplacementAlg96;                365   G4bool lateralDisplacementAlg96;
445   G4bool muhadLateralDisplacement;                366   G4bool muhadLateralDisplacement;
                                                   >> 367   G4bool latDisplacementBeyondSafety;
446   G4bool useAngGeneratorForIonisation;            368   G4bool useAngGeneratorForIonisation;
447   G4bool useMottCorrection;                       369   G4bool useMottCorrection;
448   G4bool integral;                                370   G4bool integral;
449   G4bool birks;                                   371   G4bool birks;
450   G4bool fICRU90;                                 372   G4bool fICRU90;
                                                   >> 373   G4bool dnaFast;
                                                   >> 374   G4bool dnaStationary;
                                                   >> 375   G4bool dnaMsc;
451   G4bool gener;                                   376   G4bool gener;
452   G4bool fSamplingTable;                       << 377   G4bool enableSamplingTable;
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    378   G4bool onIsolated; // 5d model conversion on free ions
461   G4bool fDNA;                                 << 379   G4bool directionalSplitting;
462   G4bool fIsPrinted;                           << 
463                                                   380   
                                                   >> 381   G4double minSubRange;
464   G4double minKinEnergy;                          382   G4double minKinEnergy;
465   G4double maxKinEnergy;                          383   G4double maxKinEnergy;
466   G4double maxKinEnergyCSDA;                      384   G4double maxKinEnergyCSDA;
467   G4double max5DEnergyForMuPair;               << 
468   G4double lowestElectronEnergy;                  385   G4double lowestElectronEnergy;
469   G4double lowestMuHadEnergy;                     386   G4double lowestMuHadEnergy;
470   G4double lowestTripletEnergy;                   387   G4double lowestTripletEnergy;
471   G4double linLossLimit;                          388   G4double linLossLimit;
472   G4double bremsTh;                               389   G4double bremsTh;
473   G4double bremsMuHadTh;                       << 
474   G4double lambdaFactor;                          390   G4double lambdaFactor;
475   G4double factorForAngleLimit;                   391   G4double factorForAngleLimit;
476   G4double thetaLimit;                            392   G4double thetaLimit;
477   G4double energyLimit;                           393   G4double energyLimit;
478   G4double maxNIELEnergy;                      << 
479   G4double rangeFactor;                           394   G4double rangeFactor;
480   G4double rangeFactorMuHad;                      395   G4double rangeFactorMuHad;
481   G4double geomFactor;                            396   G4double geomFactor;
482   G4double safetyFactor;                       << 
483   G4double lambdaLimit;                        << 
484   G4double skin;                                  397   G4double skin;
                                                   >> 398   G4double dRoverRange;
                                                   >> 399   G4double finalRange;
                                                   >> 400   G4double dRoverRangeMuHad;
                                                   >> 401   G4double finalRangeMuHad;
485   G4double factorScreen;                          402   G4double factorScreen;
                                                   >> 403   G4double directionalSplittingRadius;
486                                                   404 
                                                   >> 405   G4int nbins;
487   G4int nbinsPerDecade;                           406   G4int nbinsPerDecade;
488   G4int verbose;                                  407   G4int verbose;
489   G4int workerVerbose;                            408   G4int workerVerbose;
490   G4int nForFreeVector;                        << 
491   G4int tripletConv;  // 5d model triplet gene    409   G4int tripletConv;  // 5d model triplet generation type
492                                                   410 
493   G4TransportationWithMscType fTransportationW << 411   G4ThreeVector directionalSplittingTarget;
                                                   >> 412 
494   G4MscStepLimitType mscStepLimit;                413   G4MscStepLimitType mscStepLimit;
495   G4MscStepLimitType mscStepLimitMuHad;           414   G4MscStepLimitType mscStepLimitMuHad;
496   G4NuclearFormfactorType nucFormfactor;          415   G4NuclearFormfactorType nucFormfactor;
497   G4eSingleScatteringType fSStype;             << 416   G4DNAModelSubType  dnaElectronSolvation;
498   G4EmFluctuationType fFluct;                  << 417 
499   G4PositronAtRestModelType fPositronium;      << 418   G4String namePIXE;
                                                   >> 419   G4String nameElectronPIXE;
                                                   >> 420 
                                                   >> 421   std::vector<G4String>  m_particlesPAI;
                                                   >> 422   std::vector<G4String>  m_regnamesPAI;
                                                   >> 423   std::vector<G4String>  m_typesPAI;
                                                   >> 424 
                                                   >> 425   std::vector<G4String>  m_regnamesME;
                                                   >> 426 
                                                   >> 427   std::vector<G4String>  m_regnamesDNA;
                                                   >> 428   std::vector<G4String>  m_typesDNA;
                                                   >> 429 
                                                   >> 430   std::vector<G4String>  m_regnamesPhys;
                                                   >> 431   std::vector<G4String>  m_typesPhys;
                                                   >> 432 
                                                   >> 433   std::vector<G4String>  m_regnamesSubCut;
                                                   >> 434   std::vector<G4bool>    m_subCuts;
                                                   >> 435 
                                                   >> 436   std::vector<G4String>  m_regnamesDeex;
                                                   >> 437   std::vector<G4bool>    m_fluo;
                                                   >> 438   std::vector<G4bool>    m_auger;
                                                   >> 439   std::vector<G4bool>    m_pixe;
                                                   >> 440 
                                                   >> 441   std::vector<G4String>  m_procBiasedXS;
                                                   >> 442   std::vector<G4double>  m_factBiasedXS;
                                                   >> 443   std::vector<G4bool>    m_weightBiasedXS;
                                                   >> 444 
                                                   >> 445   std::vector<G4String>  m_procForced;
                                                   >> 446   std::vector<G4String>  m_regnamesForced;
                                                   >> 447   std::vector<G4double>  m_lengthForced;
                                                   >> 448   std::vector<G4bool>    m_weightForced;
                                                   >> 449 
                                                   >> 450   std::vector<G4String>  m_procBiasedSec;
                                                   >> 451   std::vector<G4String>  m_regnamesBiasedSec;
                                                   >> 452   std::vector<G4double>  m_factBiasedSec;
                                                   >> 453   std::vector<G4double>  m_elimBiasedSec;
500                                                   454 
501   G4String fDirLEDATA;                         << 455 #ifdef G4MULTITHREADED
                                                   >> 456   static G4Mutex emParametersMutex;
                                                   >> 457 #endif
502 };                                                458 };
503                                                   459 
504 //....oooOO0OOooo........oooOO0OOooo........oo    460 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
505                                                   461 
506 #endif                                            462 #endif
507                                                   463 
508                                                   464