91G4bool G4EmDNAPhysicsActivator::IsVerbose()
const
107 const std::vector<G4String>& regnamesDNA = theParameters->
RegionsDNA();
108 std::size_t nreg = regnamesDNA.size();
114 const std::vector<G4String>& typesDNA = theParameters->
TypesDNA();
118 const G4double emaxDNA = 1.*CLHEP::MeV;
119 const G4double emaxIonDNA = 300.*CLHEP::MeV;
120 const G4double eminBorn = 500.*CLHEP::keV;
124 G4cout <<
"### G4EmDNAPhysicsActivator::ConstructProcess for " << nreg
125 <<
" regions; DNA physics type " <<
G4endl;
140 for(std::size_t i = 0; i < nreg; ++i)
144 G4cout <<
"### DNA models type " << typesDNA[i]
145 <<
" are activated for G4Region " << regnamesDNA[i] <<
G4endl;
148 if(
nullptr == reg) {
continue; }
150 if(typesDNA[i] ==
"DNA_Opt1") {
152 }
else if(typesDNA[i] ==
"DNA_Opt2") {
154 }
else if(typesDNA[i] ==
"DNA_Opt3") {
156 }
else if(typesDNA[i] ==
"DNA_Opt4") {
158 }
else if(typesDNA[i] ==
"DNA_Opt5") {
160 }
else if(typesDNA[i] ==
"DNA_Opt6") {
162 }
else if(typesDNA[i] ==
"DNA_Opt7") {
164 }
else if(typesDNA[i] ==
"DNA_Opt8") {
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);
184void G4EmDNAPhysicsActivator::DeactivateElectronProcesses(
const G4double emaxDNA,
188 if(emaxDNA >= emax) {
return; }
189 const G4double msclimit = 100.*CLHEP::MeV;
194 if(emaxDNA < msclimit) {
197 G4double elim = std::min(msclimit, emax);
203 mod->SetActivationLowEnergyLimit(emaxDNA);
204 mod->SetHighEnergyLimit(elim);
216 modi->SetActivationLowEnergyLimit(emaxDNA);
217 modi->SetHighEnergyLimit(emax);
229 modb->SetActivationLowEnergyLimit(emaxDNA);
230 modb->SetHighEnergyLimit(emax);
243 if(emaxDNA >= emax) {
return; }
256 const G4double braggmax = 2*CLHEP::MeV;
282 be->SetLowEnergyLimit(braggmax);
283 be->SetActivationLowEnergyLimit(braggmax);
284 be->SetHighEnergyLimit(emax);
287 DeactivateNuclearStopping(part, emaxDNA, reg);
298 if(emaxDNA >= emax) {
return; }
311 const G4double braggmax = 2*CLHEP::MeV;
326 be->SetLowEnergyLimit(braggmax);
327 be->SetActivationLowEnergyLimit(braggmax);
328 be->SetHighEnergyLimit(emax);
331 DeactivateNuclearStopping(part, emaxDNA, reg);
G4GLOB_DLL std::ostream G4cout
static G4DNAGenericIonsManager * Instance()
G4ParticleDefinition * GetIon(const G4String &name)
static G4Electron * Electron()
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 ConstructDNAParticles()
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)
void ConstructProcess() override
void ConstructParticle() override
G4EmDNAPhysicsActivator(G4int ver=1)
static G4EmParameters * Instance()
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 G4VProcess * FindProcess(const G4ParticleDefinition *, G4int subtype)
G4bool RegisterProcess(G4VProcess *process, G4ParticleDefinition *particle)
static G4PhysicsListHelper * GetPhysicsListHelper()
static G4Proton * Proton()
void SetHighEnergyLimit(G4double)
void SetActivationLowEnergyLimit(G4double)
void AddEmModel(G4int, G4VEmModel *, const G4Region *region=nullptr)
void AddEmModel(G4int, G4VEmModel *, G4VEmFluctuationModel *fluc=nullptr, const G4Region *region=nullptr)
void SetFluctModel(G4VEmFluctuationModel *)
void AddEmModel(G4int order, G4VMscModel *, const G4Region *region=nullptr)