106{
107 const std::vector<G4String>& regnamesDNA = theParameters->
RegionsDNA();
108 std::size_t nreg = regnamesDNA.size();
109 if(0 == nreg)
110 {
111 return;
112 }
113
114 const std::vector<G4String>& typesDNA = theParameters->
TypesDNA();
117
118 const G4double emaxDNA = 1.*CLHEP::MeV;
119 const G4double emaxIonDNA = 300.*CLHEP::MeV;
120 const G4double eminBorn = 500.*CLHEP::keV;
122
123 if(IsVerbose()) {
124 G4cout <<
"### G4EmDNAPhysicsActivator::ConstructProcess for " << nreg
125 <<
" regions; DNA physics type " <<
G4endl;
126 }
127
128
131
138
139
140 for(std::size_t i = 0; i < nreg; ++i)
141 {
142 if(IsVerbose())
143 {
144 G4cout <<
"### DNA models type " << typesDNA[i]
145 <<
" are activated for G4Region " << regnamesDNA[i] <<
G4endl;
146 }
148 if(nullptr == reg) { continue; }
150 if(typesDNA[i] == "DNA_Opt1") {
151 opt = 1;
152 } else if(typesDNA[i] == "DNA_Opt2") {
153 opt = 2;
154 } else if(typesDNA[i] == "DNA_Opt3") {
155 opt = 3;
156 } else if(typesDNA[i] == "DNA_Opt4") {
157 opt = 4;
158 } else if(typesDNA[i] == "DNA_Opt5") {
159 opt = 4;
160 } else if(typesDNA[i] == "DNA_Opt6") {
161 opt = 6;
162 } else if(typesDNA[i] == "DNA_Opt7") {
163 opt = 6;
164 } else if(typesDNA[i] == "DNA_Opt8") {
165 opt = 8;
166 }
167 DeactivateElectronProcesses(emaxDNA, emax, reg);
169 DeactivateHadronProcesses(prot, emaxDNA, emax, reg);
171 DeactivateIonProcesses(gion, emaxIonDNA, emax, reg);
173 DeactivateIonProcesses(
alpha2, emaxIonDNA, emax, reg);
175 DeactivateHadronProcesses(alpha1, emaxIonDNA, emax, reg);
179 }
180}
G4GLOB_DLL std::ostream G4cout
static G4DNAGenericIonsManager * Instance(void)
G4ParticleDefinition * GetIon(const G4String &name)
static void ConstructDNALightIonPhysics(G4ParticleDefinition *part, const G4int charge, const G4int opt, const G4double emax, const G4bool fast, const G4bool stationary, const G4Region *reg=nullptr)
static void ConstructDNAIonPhysics(const G4double emax, const G4bool stationary, const G4Region *reg=nullptr)
static void ConstructDNAProtonPhysics(const G4double e1DNA, const G4double emaxDNA, const G4int opt, const G4bool fast, const G4bool stationary, const G4Region *reg=nullptr)
static void ConstructDNAElectronPhysics(const G4double emaxDNA, const G4int opt, const G4bool fast, const G4bool stationary, const G4Region *reg=nullptr)
G4bool DNAStationary() const
const std::vector< G4String > & TypesDNA() const
const std::vector< G4String > & RegionsDNA() const
G4double MaxKinEnergy() const
static const G4Region * FindRegion(const G4String ®ionName, const G4int verbose=0)
static G4GenericIon * GenericIon()
static G4Proton * Proton()