106 G4bool G4EmDNAPhysicsActivator::IsVerbose()
const
129 genericIonsManager->
GetIon(
"alpha++");
130 genericIonsManager->
GetIon(
"alpha+");
131 genericIonsManager->
GetIon(
"helium");
132 genericIonsManager->
GetIon(
"hydrogen");
144 const std::vector<G4String>& regnamesDNA = theParameters->
RegionsDNA();
145 G4int nreg = regnamesDNA.size();
150 const std::vector<G4String>& typesDNA = theParameters->
TypesDNA();
154 G4cout <<
"### G4EmDNAPhysicsActivator::ConstructProcess for " << nreg
155 <<
" regions; DNA physics type " << typesDNA[0] <<
G4endl;
178 G4bool emsc = HasMsc(eman);
179 G4bool pmsc = HasMsc(pman);
180 G4bool a2msc = HasMsc(a2man);
181 G4bool a1msc = HasMsc(a1man);
182 G4bool imsc = HasMsc(iman);
371 for(
G4int i = 0; i < nreg; ++i)
375 G4cout <<
"### DNA models type " << typesDNA[i]
376 <<
" are activated for G4Region " << reg <<
G4endl;
383 AddElectronModels0(reg, ecap, emsc, elowest, elimel);
384 AddProtonModels0(reg, pmsc, elimel, pminbb, pmin, pmax);
385 AddHeliumModels0(reg, a1msc, a2msc, elimel, pminbb, pmin, pmax);
386 AddGenericIonModels0(reg, imsc, elimel, pminbb, pmin);
393 void G4EmDNAPhysicsActivator::AddElectronModels0(
const G4String&
reg,
409 G4cout <<
" Energy limits for e- elastic: "
410 << elowest/
eV <<
" eV - " << elimel/
MeV <<
" MeV" <<
G4endl
411 <<
" Energy limits for e- inelastic: "
412 << elowest/
eV <<
" eV - " << elimin/
MeV <<
" MeV" <<
G4endl;
432 mod, reg, 0.,elowest+1.*
eV);
438 mod, reg, 0.0, 7.4*
eV);
446 mod, reg, 0., elowest);
451 mod, reg, 7.4*
eV, elimel);
462 mod, reg, 0.0, elim1);
466 mod, reg, elim1, elimin);
471 mod, reg, 0.0, elim1);
475 mod, reg, elim1, elimin);
479 mod, reg, 0.0, elimvb);
483 mod, reg, 0.0, elimat);
489 void G4EmDNAPhysicsActivator::AddProtonModels0(
const G4String& reg,
505 G4cout <<
" Energy limits for protons: "
506 << pmin/
MeV <<
" MeV - " << pmax/
MeV <<
" MeV" <<
G4endl;
517 em_config->
SetExtraEmModel(
"proton",
"CoulombScat", mod, reg, 0.0, emax);
523 mod, reg, 0.0, pminbb,
529 mod, reg, pminbb, emax,
534 mod, reg, 0.0, gmmax);
538 mod, reg, gmmax, pmax);
542 mod, reg, 0.0, gmmax);
546 mod, reg, gmmax, pmax);
550 mod, reg, pminch, pmax);
554 mod, reg, 0.0, elimel);
559 mod, reg, 0.0, hmax);
563 mod, reg, 0.0, gmmax);
567 mod, reg, pminch, pmax);
571 mod, reg, 0.0, elimel);
577 void G4EmDNAPhysicsActivator::AddGenericIonModels0(
const G4String& reg,
590 G4cout <<
" Energy limits for GenericIon: "
591 << pmin/
MeV <<
" MeV/u - " << gionmax/
MeV <<
" MeV/u" <<
G4endl;
601 em_config->
SetExtraEmModel(
"proton",
"CoulombScat", mod, reg, 0.0, emax);
607 mod, reg, 0.0, pminbb,
613 mod, reg, pminbb, emax,
618 mod, reg, 0.0, gionmax);
624 void G4EmDNAPhysicsActivator::AddHeliumModels0(
const G4String& reg,
G4bool a1msc,
639 G4cout <<
" Energy limits for Helium ions: "
640 << pmin/
MeV <<
" MeV - " << hemax/
MeV <<
" MeV" <<
G4endl;
652 mod, reg, 0.0, pminbb,
658 mod, reg, pminbb, emax,
663 mod, reg, 0.0, pmax);
667 mod, reg, mgmin, pmax);
671 mod, reg, mgmin, hemax);
675 mod, reg, 0.0, elimel);
687 mod, reg, 0.0, pminbb,
693 mod, reg, pminbb, emax,
698 mod, reg, 0.0, pmax);
702 mod, reg, mgmin, pmax);
706 mod, reg, mgmin, hemax);
710 mod, reg, mgmin, hemax);
714 mod, reg, 0.0, elimel);
720 mod, reg, 0.0, pmax);
724 mod, reg, mgmin, pmax);
728 mod, reg, mgmin, hemax);
732 mod, reg, 0.0, elimel);
742 for(
G4int i = 0; i < nproc; ++i)
G4EmConfigurator * EmConfigurator()
static G4GenericIon * GenericIonDefinition()
#define G4DNABornIonisationModel
G4double MaxKinEnergy() const
static G4LossTableManager * Instance()
virtual void ConstructParticle()
G4int AddDiscreteProcess(G4VProcess *aProcess, G4int ord=ordDefault)
void SetExtraEmModel(const G4String &particleName, const G4String &processName, G4VEmModel *, const G4String ®ionName="", G4double emin=0.0, G4double emax=DBL_MAX, G4VEmFluctuationModel *fm=nullptr)
G4EmDNAPhysicsActivator(G4int ver=1)
const std::vector< G4String > & TypesDNA() const
G4DNABornExcitationModel1 G4DNABornExcitationModel
static const G4double reg
void SetHighEnergyLimit(G4double)
G4GLOB_DLL std::ostream G4cout
G4bool RegisterProcess(G4VProcess *process, G4ParticleDefinition *particle)
static G4Proton * Proton()
static constexpr double eV
static G4DNAGenericIonsManager * Instance(void)
static G4bool IsActivated()
void SetActivationLowEnergyLimit(G4double)
static const G4double emax
void AddEmModel(G4int, G4VEmModel *, const G4Region *region=nullptr)
void AddRegion(const G4String &)
G4TDNAOneStepThermalizationModel< DNA::Penetration::Meesungnoen2002 > G4DNAOneStepThermalizationModel
static G4Positron * Positron()
static G4GenericIon * GenericIon()
virtual ~G4EmDNAPhysicsActivator()
G4ProcessManager * GetProcessManager() const
static G4PhysicsListHelper * GetPhysicsListHelper()
static G4EmParameters * Instance()
static constexpr double GeV
const std::vector< G4String > & RegionsDNA() const
static G4Electron * Electron()
static constexpr double MeV
void SetLowEnergyLimit(G4double)
G4int GetProcessListLength() const
static constexpr double keV
virtual void ConstructProcess()
G4ProcessVector * GetProcessList() const
G4ParticleDefinition * GetIon(const G4String &name)