137 genericIonsManager->
GetIon(
"alpha+");
138 genericIonsManager->
GetIon(
"helium");
139 genericIonsManager->
GetIon(
"hydrogen");
152 G4int nreg = regnamesDNA.size();
160 G4cout <<
"### G4EmDNAPhysicsActivator::ConstructProcess for " << nreg
161 <<
" regions; DNA physics type " << typesDNA[0] <<
G4endl;
370 for(
G4int i = 0; i < nreg; ++i)
375 G4cout <<
"### DNA models type " << typesDNA[i]
376 <<
" are activated for G4Region " <<
reg <<
G4endl;
379 if(typesDNA[i] ==
"DNA_Opt0") {
382 else if(typesDNA[i] ==
"DNA_Opt2"){
385 else if(typesDNA[i] ==
"DNA_Opt4"){
388 else if(typesDNA[i] ==
"DNA_Opt4a"){
391 else if(typesDNA[i] ==
"DNA_Opt6"){
394 else if(typesDNA[i] ==
"DNA_Opt6a"){
397 else if(typesDNA[i] ==
"DNA_Opt7") {
411 ltman->EmConfigurator()->AddModels();
447 mod,
reg, 0., elowest);
452 mod,
reg, 0.0, elimel);
462 mod,
reg, elim1, elimin);
466 mod,
reg, 0.0, elim1);
471 mod,
reg, 0.0, elim1);
475 mod,
reg, elim1, elimin);
479 mod,
reg, 0.0, elimvb);
483 mod,
reg, 0.0, elimat);
520 mod,
reg, 0., elowest);
525 mod,
reg, 0.0, elimel);
537 mod,
reg, elowest, elimin);
542 mod,
reg, 0., elimin);
547 mod,
reg, 0.0, elimvb);
552 mod,
reg, 0.0, elimat);
590 mod,
reg, 0., elowest);
595 mod,
reg, 0.0, elimel);
606 mod,
reg, elowest, elimin);
611 mod,
reg, 0., elimin);
663 mod,
reg, 0., elowest);
668 mod,
reg, 0.0, elimel);
679 mod,
reg, elowest, elimin);
684 mod,
reg, 0., elimin);
694 mod,
reg, 0.0, elimvb);
699 mod,
reg, 0.0, elimat);
735 mod,
reg, 0., elowest);
740 mod,
reg, 0.0, elimel);
751 mod,
reg, elowest, elimin);
756 mod,
reg, 0., elimin);
807 mod,
reg, 0., elowest);
812 mod,
reg, 0.0, elimel);
823 mod,
reg, elowest, elimin);
828 mod,
reg, 0., elimin);
837 mod,
reg, 0.0, elimvb);
842 mod,
reg, 0.0, elimat);
879 mod,
reg, 0., elowest);
884 mod,
reg, 0.0, elimel);
899 mod,
reg, elim1, elimin);
903 mod,
reg, elowest, elim1);
909 mod,
reg, 8 *
eV, elim1);
913 mod,
reg, elim1, elimin);
918 mod,
reg, 0.0, elimvb);
923 mod,
reg, 0.0, elimat);
961 mod,
reg, 0.0, pminbb,
972 mod,
reg, 0.0, gmmax);
976 mod,
reg, gmmax, pmax);
980 mod,
reg, 0.0, gmmax);
984 mod,
reg, gmmax, pmax);
988 mod,
reg, 0.0, pmax);
992 mod,
reg, 0.0, elimel);
997 mod,
reg, 0.0, pmax);
1001 mod,
reg, 0.0, gmmax);
1004 em_config->
SetExtraEmModel(
"hydrogen",
"hydrogen_G4DNAChargeIncrease",
1005 mod,
reg, 0.0, pmax);
1009 mod,
reg, 0.0, elimel);
1029 mod,
reg, 0.0, pminbb,
1039 em_config->
SetExtraEmModel(
"GenericIon",
"GenericIon_G4DNAIonisation",
1040 mod,
reg, 0.0, iemax);
1059 G4double pminbba = massRatio*pminbb;
1061 G4cout <<
"AddHeliumModels0 for <" <<
reg <<
"> a1msc: " << a1msc <<
" a2msc: " << a2msc
1062 <<
" elimel= " << elimel <<
" pminbba= " << pminbba <<
G4endl;
1080 mod,
reg, 0.0, pminbba,
1091 mod,
reg, 0.0, hemax);
1095 mod,
reg, 0.0, hemax);
1099 mod,
reg, 0.0, hemax);
1103 mod,
reg, 0.0, elimel);
1122 mod,
reg, 0.0, pminbba,
1133 mod,
reg, 0.0, hemax);
1137 mod,
reg, 0.0, hemax);
1141 mod,
reg, 0.0, hemax);
1145 mod,
reg, 0.0, hemax);
1149 mod,
reg, 0.0, elimel);
1155 mod,
reg, 0.0, hemax);
1159 mod,
reg, 0.0, hemax);
1163 mod,
reg, 0.0, hemax);
1167 mod,
reg, 0.0, elimel);
1177 for(
G4int i = 0; i < nproc; ++i) {
1197 for(
G4int i = 0; i < nproc; ++i)
static const G4double emax
G4DNABornExcitationModel1 G4DNABornExcitationModel
#define G4DNABornIonisationModel
G4TDNAOneStepThermalizationModel< DNA::Penetration::Meesungnoen2002 > G4DNAOneStepThermalizationModel
static const G4double reg
static constexpr double keV
static constexpr double eV
static constexpr double MeV
G4GLOB_DLL std::ostream G4cout
static G4DNAGenericIonsManager * Instance(void)
G4ParticleDefinition * GetIon(const G4String &name)
static G4VEmModel * GetMacroDefinedModel()
One step thermalization model can be chosen via macro using /process/dna/e-SolvationSubType Ritchie19...
static G4Electron * Electron()
void SetExtraEmModel(const G4String &particleName, const G4String &processName, G4VEmModel *, const G4String ®ionName="", G4double emin=0.0, G4double emax=DBL_MAX, G4VEmFluctuationModel *fm=nullptr)
void ConstructProcess() override
void AddElectronModels2(const G4String ®ion, G4bool emsc, G4double elimel)
G4bool HasMsc(G4ProcessManager *) const
void AddHeliumModels0(const G4String ®ion, G4bool a1msc, G4bool a2msc, G4double elimel, G4double pminbb, G4double pmax)
void ConstructParticle() override
~G4EmDNAPhysicsActivator() override
G4EmParameters * theParameters
void AddProtonModels0(const G4String ®ion, G4bool pmsc, G4double elimel, G4double pminbb, G4double pmax)
void AddElectronModels4a(const G4String ®ion, G4bool emsc, G4double elimel)
void AddElectronModels4(const G4String ®ion, G4bool emsc, G4double elimel)
G4EmDNAPhysicsActivator(G4int ver=1)
void AddElectronModels7(const G4String ®ion, G4bool emsc, G4double elimel)
void DeactivateNuclearStopping(G4ProcessManager *, G4double elimel)
void AddGenericIonModels0(const G4String ®ion, G4double pminbb)
void AddElectronModels6a(const G4String ®ion, G4bool emsc, G4double elimel)
void AddElectronModels0(const G4String ®ion, G4bool emsc, G4double elimel)
void AddElectronModels6(const G4String ®ion, G4bool emsc, G4double elimel)
static G4EmParameters * Instance()
const std::vector< G4String > & TypesDNA() const
const std::vector< G4String > & RegionsDNA() const
G4double MaxKinEnergy() const
static G4GenericIon * GenericIonDefinition()
static G4GenericIon * GenericIon()
static G4LossTableManager * Instance()
G4EmConfigurator * EmConfigurator()
G4ProcessManager * GetProcessManager() const
G4double GetPDGMass() const
G4bool RegisterProcess(G4VProcess *process, G4ParticleDefinition *particle)
static G4PhysicsListHelper * GetPhysicsListHelper()
static G4Positron * Positron()
G4int AddDiscreteProcess(G4VProcess *aProcess, G4int ord=ordDefault)
G4int GetProcessListLength() const
G4ProcessVector * GetProcessList() const
static G4Proton * Proton()
void SetActivationLowEnergyLimit(G4double)
void SetEmModel(G4VEmModel *, G4int index=0)
static constexpr double proton_mass_c2
T min(const T t1, const T t2)
brief Return the smallest of the two arguments