711 const G4int j = ionizationLevelIndex;
726 const G4double Bj[5] = { 12.60 *
eV, 14.70 *
eV, 18.40 *
eV, 32.20 *
eV, 540
760 const G4double Gj[5] = { 0.99, 1.11, 1.11, 0.52, 1. };
770 G4double w = wBig / Bj[ionizationLevelIndex];
779 G4bool isProtonOrHydrogen =
false;
783 || particleDefinition == instance->
GetIon(
"hydrogen"))
785 isProtonOrHydrogen =
true;
789 else if (particleDefinition == instance->
GetIon(
"helium")
790 || particleDefinition == instance->
GetIon(
"alpha+")
791 || particleDefinition == instance->
GetIon(
"alpha++"))
794 tau = (0.511 / 3728.) * k;
798 * std::pow((Ry / Bj[ionizationLevelIndex]), 2);
801 * std::pow((Ry /
waterStructure.IonisationEnergy(ionizationLevelIndex)),
804 G4double v2 = tau / Bj[ionizationLevelIndex];
809 G4double wc = 4. * v2 - 2. * v - (Ry / (4. * Bj[ionizationLevelIndex]));
811 wc = 4. * v2 - 2. *
v 812 - (Ry / (4. *
waterStructure.IonisationEnergy(ionizationLevelIndex)));
814 G4double L1 = (C1 * std::pow(
v, (D1))) / (1. + E1 * std::pow(
v, (D1 + 4.)));
816 G4double H1 = (A1 * std::log(1. + v2)) / (v2 + (B1 / v2));
817 G4double H2 = (A2 / v2) + (B2 / (v2 * v2));
820 G4double F2 = (L2 * H2) / (L2 + H2);
824 * (S / Bj[ionizationLevelIndex])
826 / (std::pow((1. + w), 3)
827 * (1. + std::exp(alphaConst * (w - wc) /
v))));
833 / (std::pow((1. + w), 3)
834 * (1. + std::exp(alphaConst * (w - wc) /
v))));
836 if ((particleDefinition == instance->
GetIon(
"hydrogen"))
837 && (ionizationLevelIndex == 4))
840 sigma = Gj[j] * (S /
waterStructure.IonisationEnergy(ionizationLevelIndex))
842 / (std::pow((1. + w), 3)
843 * (1. + std::exp(alphaConst * (w - wc) /
v))));
848 if (isProtonOrHydrogen)
853 if (particleDefinition == instance->
GetIon(
"alpha++"))
863 else if (particleDefinition == instance->
GetIon(
"alpha+"))
875 else if (particleDefinition == instance->
GetIon(
"helium"))
891 sigma = Gj[j] * (S / Bj[ionizationLevelIndex])
893 / (std::pow((1. + w), 3)
894 * (1. + std::exp(alphaConst * (w - wc) /
v))));
900 / (std::pow((1. + w), 3)
901 * (1. + std::exp(alphaConst * (w - wc) /
v))));
913 return zEff * zEff * sigma;
static G4Proton * ProtonDefinition()
G4double S_2s(G4double t, G4double energyTransferred, G4double slaterEffectiveChg, G4double shellNumber)
G4double slaterEffectiveCharge[3]
G4int GetLeptonNumber() const
static G4DNAGenericIonsManager * Instance(void)
G4double S_1s(G4double t, G4double energyTransferred, G4double slaterEffectiveChg, G4double shellNumber)
G4DNAWaterIonisationStructure waterStructure
G4double CorrectionFactor(G4ParticleDefinition *particleDefinition, G4double k)
static MCTruthManager * instance
static const double eplus
G4double S_2p(G4double t, G4double energyTransferred, G4double slaterEffectiveChg, G4double shellNumber)
G4double GetPDGCharge() const
G4ParticleDefinition * GetIon(const G4String &name)