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