File indexing completed on 2025-01-18 09:58:12
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025
0026
0027
0028
0029
0030
0031
0032
0033
0034 #ifndef G4EmDNABuilder_h
0035 #define G4EmDNABuilder_h 1
0036
0037 #include "globals.hh"
0038
0039 #include "G4DNAElectronSolvation.hh"
0040 #include "G4DNAElastic.hh"
0041 #include "G4DNAIonisation.hh"
0042 #include "G4DNAExcitation.hh"
0043 #include "G4DNAVibExcitation.hh"
0044 #include "G4DNAAttachment.hh"
0045 #include "G4DNAChargeDecrease.hh"
0046 #include "G4DNAChargeIncrease.hh"
0047 #include "G4LowECapture.hh"
0048
0049 enum G4EmDNAMscModelType
0050 {
0051 dnaUrban = 0,
0052 dnaWVI,
0053 dnaGS
0054 };
0055
0056 class G4ParticleDefinition;
0057 class G4Region;
0058
0059 class G4EmDNABuilder
0060 {
0061 public:
0062
0063 static void ConstructDNAParticles();
0064
0065 static void ConstructStandardEmPhysics(const G4double emin_electron,
0066 const G4double emin_proton,
0067 const G4double emin_alpha,
0068 const G4double emin_ion,
0069 const G4EmDNAMscModelType mscType,
0070 const G4bool fast);
0071
0072 static void ConstructDNAElectronPhysics(const G4double emaxDNA,
0073 const G4int opt,
0074 const G4bool fast,
0075 const G4bool stationary,
0076 const G4Region* reg = nullptr);
0077
0078 static void ConstructDNAProtonPhysics(const G4double e1DNA,
0079 const G4double emaxDNA,
0080 const G4int opt,
0081 const G4bool fast,
0082 const G4bool stationary,
0083 const G4Region* reg = nullptr);
0084
0085 static void ConstructDNAIonPhysics(const G4double emax,
0086 const G4bool stationary,
0087 const G4Region* reg = nullptr);
0088
0089 static void ConstructDNALightIonPhysics(G4ParticleDefinition* part,
0090 const G4int charge,
0091 const G4int opt,
0092 const G4double emax,
0093 const G4bool fast,
0094 const G4bool stationary,
0095 const G4Region* reg = nullptr);
0096
0097 static G4DNAElectronSolvation* FindOrBuildElectronSolvation();
0098
0099 static G4DNAElastic*
0100 FindOrBuildElastic(G4ParticleDefinition* part, const G4String& name);
0101
0102 static G4DNAExcitation*
0103 FindOrBuildExcitation(G4ParticleDefinition* part, const G4String& name);
0104
0105 static G4DNAVibExcitation*
0106 FindOrBuildVibExcitation(G4ParticleDefinition* part, const G4String& name);
0107
0108 static G4DNAIonisation*
0109 FindOrBuildIonisation(G4ParticleDefinition* part, const G4String& name);
0110
0111 static G4DNAAttachment*
0112 FindOrBuildAttachment(G4ParticleDefinition* part, const G4String& name);
0113
0114 static G4DNAChargeDecrease*
0115 FindOrBuildChargeDecrease(G4ParticleDefinition* part, const G4String& name);
0116
0117 static G4DNAChargeIncrease*
0118 FindOrBuildChargeIncrease(G4ParticleDefinition* part, const G4String& name);
0119
0120 static G4LowECapture*
0121 FindOrBuildCapture(const G4double elim, G4ParticleDefinition* part);
0122
0123 private:
0124
0125 static void StandardHadronPhysics(G4ParticleDefinition*,
0126 const G4double lowELimitForMSC,
0127 const G4double lowELimitForIoni,
0128 const G4double maxEnergy,
0129 const G4EmDNAMscModelType mscType,
0130 const G4bool isIon);
0131 };
0132
0133 #endif