Definition at line 37 of file bindingEnergy.cc.
References G4NucleiProperties::GetBindingEnergy().
Referenced by G4VAtomDeexcitation::AlongStepDeexcitation(), G4eIonisationSpectrum::AverageEnergy(), G4NonEquilibriumEvaporator::collide(), G4Fissioner::collide(), G4EquilibriumEvaporator::collide(), G4BigBanger::collide(), G4CascadeColliderBase::explosion(), G4AtomicTransitionManager::G4AtomicTransitionManager(), G4ProtonField::GetBarrier(), G4SigmaZeroField::GetField(), G4SigmaPlusField::GetField(), G4SigmaMinusField::GetField(), G4PionZeroField::GetField(), G4PionPlusField::GetField(), G4PionMinusField::GetField(), G4KaonZeroField::GetField(), G4KaonPlusField::GetField(), G4KaonMinusField::GetField(), G4AntiProtonField::GetField(), G4CascadeRecoilMaker::goodNucleus(), G4NucleiModel::initializeCascad(), G4hImpactIonisation::PostStepDoIt(), G4eIonisationSpectrum::Probability(), G4eIonisationSpectrum::SampleEnergy(), G4PenelopePhotoElectricModel::SampleSecondaries(), G4PenelopeIonisationModel::SampleSecondaries(), G4PenelopeComptonModel::SampleSecondaries(), G4PEEffectModel::SampleSecondaries(), G4PEEffectFluoModel::SampleSecondaries(), G4MuElecInelasticModel::SampleSecondaries(), G4LivermorePolarizedPhotoElectricModel::SampleSecondaries(), G4LivermorePhotoElectricModel::SampleSecondaries(), G4LivermoreIonisationModel::SampleSecondaries(), G4KleinNishinaModel::SampleSecondaries(), G4DNARuddIonisationModel::SampleSecondaries(), G4DNARuddIonisationExtendedModel::SampleSecondaries(), G4DNABornIonisationModel::SampleSecondaries(), and G4KM_OpticalEqRhs::SetFactor().
00037 { 00038 // NOTE: Test condition copied from G4NucleiProperties.cc; not encapsulated 00039 if (A < 1 || Z < 0 || Z > A) return 0.; 00040 00041 return G4NucleiProperties::GetBindingEnergy(A, Z); 00042 }
Definition at line 33 of file bindingEnergyAsymptotic.cc.
References G4cbrt().
Referenced by G4Fissioner::collide().
00033 { 00034 // calculates the nuclei binding energy 00035 // using smooth liquid high energy formula 00036 G4double X = (1.0 - 2.0*Z/A); X *= X; 00037 G4double X1 = G4cbrt(A); 00038 G4double X2 = X1 * X1; 00039 G4double X3 = 1.0 / X1; 00040 G4double X4 = 1.0 / X2; 00041 G4double X5 = (1.0 - 0.62025 * X4); X5 *= X5; 00042 00043 G4double DM = 17.035 * (1.0 - 1.846 * X) * A - 00044 25.8357 * (1.0 - 1.712 * X) * X2 * X5 - 00045 0.779 * Z * (Z - 1) * X3 * 00046 (1.0 - 1.5849 * X4 + 1.2273 / A + 1.5772 * X4 * X4) + 00047 0.4328 * G4cbrt(Z*Z*Z*Z) * X3 * 00048 (1.0 - 0.57811 * X3 - 0.14518 * X4 + 0.496 / A); 00049 00050 return DM; 00051 }
Definition at line 72 of file G4InuclSpecialFunctions.cc.
References G4cbrt().
Referenced by G4NonEquilibriumEvaporator::collide().
00072 { 00073 const G4double C = 55.4; 00074 G4double arg = (ntype==0) ? G4double(A-Z)/A : G4double(Z)/A; 00075 00076 return C * G4cbrt(arg*arg); // 2/3 power 00077 }
void G4InuclSpecialFunctions::paraMaker | ( | G4double | Z, | |
std::pair< std::vector< G4double >, std::vector< G4double > > & | parms | |||
) |
Definition at line 38 of file paraMaker.cc.
References G4cout, G4endl, and G4CascadeInterpolator< NBINS >::interpolate().
Referenced by G4EquilibriumEvaporator::collide().
00039 { 00040 G4int verboseLevel(0); 00041 00042 if (verboseLevel > 3) { 00043 G4cout << " >>> G4InuclSpecialFunctions::paraMaker" << G4endl; 00044 } 00045 00046 // calculates the coefficients for the phenomenological formulas for 00047 // coulumb barier, c.s. etc needed for evaporators 00048 00049 static const G4double Z1[5] = {10.0, 20.0, 30.0, 50.0, 70.0}; 00050 static const G4double AP[5] = {0.42, 0.58, 0.68, 0.77, 0.80}; 00051 static const G4double CP[5] = {0.50, 0.28, 0.20, 0.15, 0.10}; 00052 static const G4double AA[5] = {0.68, 0.82, 0.91, 0.97, 0.98}; 00053 static const G4double CA[5] = {0.10, 0.10, 0.10, 0.08, 0.06}; 00054 00055 // Set up input buffer for results 00056 std::vector<G4double>& AK = parms.first; 00057 AK.resize(6,0.); 00058 00059 std::vector<G4double>& CPA = parms.second; 00060 CPA.resize(6,0.); 00061 00062 AK[0] = 0.0; 00063 CPA[0] = 0.0; 00064 00065 static G4CascadeInterpolator<5> interp(Z1, false); // Do not extrapolate 00066 AK[1] = interp.interpolate(Z, AP); 00067 AK[5] = interp.interpolate(Z, AA); 00068 CPA[1] = interp.interpolate(Z, CP); 00069 CPA[5] = interp.interpolate(Z, CA); 00070 00071 AK[2] = AK[1] + 0.06; 00072 AK[3] = AK[1] + 0.12; 00073 AK[4] = AK[5] - 0.06; 00074 00075 CPA[2] = CPA[1] * 0.5; 00076 CPA[3] = CPA[1] / 3.0; 00077 CPA[4] = 4.0 * CPA[5] / 3.0; 00078 00079 return; // Buffer filled 00080 }
void G4InuclSpecialFunctions::paraMakerTruncated | ( | G4double | Z, | |
std::pair< G4double, G4double > & | parms | |||
) |
Definition at line 83 of file paraMaker.cc.
References G4cout, G4endl, and G4CascadeInterpolator< NBINS >::interpolate().
Referenced by G4NonEquilibriumEvaporator::collide().
00084 { 00085 G4int verboseLevel(0); 00086 00087 if (verboseLevel > 3) { 00088 G4cout << " >>> G4InuclSpecialFunctions::paraMakerTruncated" << G4endl; 00089 } 00090 00091 // truncated version of the previous one 00092 static const G4double Z1[5] = {10.0, 20.0, 30.0, 50.0, 70.0}; 00093 static const G4double AP[5] = {0.42, 0.58, 0.68, 0.77, 0.8}; 00094 static const G4double CP[5] = {0.5, 0.28, 0.2, 0.15, 0.1}; 00095 00096 // Set up buffers for output 00097 G4double& AK2=parms.first; 00098 G4double& CP2=parms.second; 00099 00100 static G4CascadeInterpolator<5> interp(Z1, false); // Do not extrapolate 00101 AK2 = interp.interpolate(Z, AP); 00102 CP2 = interp.interpolate(Z, CP); 00103 00104 return; // Buffer filled 00105 }
Definition at line 42 of file G4InuclSpecialFunctions.cc.
References G4cbrt().
Referenced by G4NonEquilibriumEvaporator::collide(), and G4EquilibriumEvaporator::collide().
00042 { 00043 return 0.76 + 2.2 / G4cbrt(A); 00044 }
Definition at line 46 of file G4InuclSpecialFunctions.cc.
Referenced by G4NonEquilibriumEvaporator::collide().
00046 { 00047 G4double snn; 00048 00049 if (e < 40.0) { 00050 snn = -1174.8 / (e * e) + 3088.5 / e + 5.3107; 00051 } else { 00052 snn = 93074.0 / (e * e) - 11.148 / e + 22.429; 00053 } 00054 00055 return snn; 00056 }
Definition at line 58 of file G4InuclSpecialFunctions.cc.
Referenced by G4NonEquilibriumEvaporator::collide().
00058 { 00059 G4double spn; 00060 00061 if (e < 40.0) { 00062 spn = -5057.4 / (e * e) + 9069.2 / e + 6.9466; 00063 } else { 00064 spn = 239380.0 / (e * e) + 1802.0 / e + 27.147; 00065 } 00066 00067 return spn; 00068 }
Definition at line 79 of file G4InuclSpecialFunctions.cc.
Referenced by bindingEnergyAsymptotic(), G4NonEquilibriumEvaporator::collide(), G4Fissioner::collide(), G4EquilibriumEvaporator::collide(), FermiEnergy(), G4RegionModel::G4RegionModel(), G4NucleiModel::generateModel(), G4NucleiModel::generateNucleonMomentum(), getAL(), G4CascadeColliderBase::inelasticInteractionPossible(), and G4IntraNucleiCascader::initialize().
G4double G4InuclSpecialFunctions::inuclRndm | ( | ) |
Definition at line 83 of file G4InuclSpecialFunctions.cc.
References G4UniformRand.
Referenced by G4NonEquilibriumEvaporator::collide(), G4Fissioner::collide(), G4EquilibriumEvaporator::collide(), G4NucleiModel::generateNucleonMomentum(), G4NucleiModel::initializeCascad(), randomCOS_SIN(), randomGauss(), randomPHI(), and G4IntraNucleiCascader::setupCascade().
00083 { 00084 return G4UniformRand(); 00085 }
Definition at line 87 of file G4InuclSpecialFunctions.cc.
References inuclRndm().
Referenced by G4Fissioner::collide().
00087 { 00088 const G4double eps = 1.0e-6; 00089 G4double r1 = inuclRndm(); 00090 r1 = r1 > eps ? r1 : eps; 00091 G4double r2 = inuclRndm(); 00092 r2 = r2 > eps ? r2 : eps; 00093 r2 = r2 < 1.0 - eps ? r2 : 1.0 - eps; 00094 00095 return sigma * std::sin(twopi * r1) * std::sqrt(-2.0 * std::log(r2)); 00096 }
G4double G4InuclSpecialFunctions::randomPHI | ( | ) |
Definition at line 98 of file G4InuclSpecialFunctions.cc.
References inuclRndm().
Referenced by generateWithFixedTheta(), generateWithRandomAngles(), and G4NucleiModel::initializeCascad().
00098 { 00099 return twopi * inuclRndm(); 00100 }
Definition at line 102 of file G4InuclSpecialFunctions.cc.
References inuclRndm().
Referenced by generateWithRandomAngles().
00102 { 00103 G4double CT = 1.0 - 2.0 * inuclRndm(); 00104 00105 return std::pair<G4double, G4double>(CT, std::sqrt(1.0 - CT*CT)); 00106 }
Definition at line 33 of file nucleiLevelDensity.cc.
Referenced by G4Fissioner::collide().
00033 { 00034 const G4double NLD[226] = { 00035 // 20 - 29 00036 3.94, 3.84, 3.74, 3.64, 3.55, 4.35, 4.26, 4.09, 3.96, 4.18, 00037 // 30 - 39 00038 4.39, 4.61, 4.82, 4.44, 4.44, 4.43, 4.42, 5.04, 5.66, 5.8, 00039 // 40 - 49 00040 5.95, 5.49, 6.18, 7.11, 6.96, 7.2, 7.73, 6.41, 6.85, 6.77, 00041 // 50 - 59 00042 6.91, 7.3, 7.2, 6.86, 8.06, 7.8, 7.82, 8.41, 8.13, 7.19, 00043 // 60 - 69 00044 8.35, 8.13, 8.02, 8.93, 8.9, 9.7, 9.65, 10.55, 9.38, 9.72, 00045 // 70 - 79 00046 10.66, 11.98, 12.76, 12.1, 12.86, 13.0, 12.81, 12.8, 12.65, 12.0, 00047 // 80 - 89 00048 12.69, 14.05, 13.33, 13.28, 13.22, 13.17, 8.66, 11.03, 10.4, 13.47, 00049 // 90 - 99 00050 10.17, 12.22, 11.62, 12.95, 13.15, 13.57, 12.87, 16.2, 14.71, 15.69, 00051 // 100 - 109 00052 14.1, 18.56, 16.22, 16.7, 17.13, 17.0, 16.86, 16.2, 15.61, 16.8, 00053 // 110 - 119 00054 17.93, 17.5, 16.97, 17.3, 17.6, 15.78, 16.8, 17.49, 16.03, 15.08, 00055 // 120 - 129 00056 16.74, 17.74, 17.43, 18.1, 17.1, 19.01, 17.02, 17.0, 17.02, 18.51, 00057 // 130 - 139 00058 17.2, 16.8, 16.97, 16.14, 16.91, 17.69, 15.5, 14.56, 14.35, 16.5, 00059 // 140 - 149 00060 18.29, 17.8, 17.05, 21.31, 19.15, 19.5, 19.78, 20.3, 20.9, 21.9, 00061 // 150 - 159 00062 22.89, 25.68, 24.6, 24.91, 23.24, 22.9, 22.46, 21.98, 21.64, 21.8, 00063 // 160 - 169 00064 21.85, 21.7, 21.69, 23.7, 21.35, 23.03, 20.66, 21.81, 20.77, 22.2, 00065 // 170 - 179 00066 22.58, 22.55, 21.45, 21.16, 21.02, 20.87, 22.09, 22.0, 21.28, 23.05, 00067 // 180 - 189 00068 21.7, 21.18, 22.28, 23.0, 22.11, 23.56, 22.83, 24.88, 22.6, 23.5, 00069 // 190 - 199 00070 23.89, 23.9, 23.94, 21.16, 22.3, 21.7, 21.19, 20.7, 20.29, 21.32, 00071 // 200 - 209 00072 19.0, 17.93, 17.85, 15.7, 13.54, 11.9, 10.02, 10.48, 10.28, 11.72, 00073 // 210 - 219 00074 13.81, 14.7, 15.5, 16.3, 17.2, 18.0, 18.9, 19.7, 20.6, 21.4, 00075 // 220 - 229 00076 22.3, 23.1, 24.0, 24.8, 25.6, 26.5, 27.3, 28.2, 29.0, 29.9, 00077 // 230 - 239 00078 30.71, 30.53, 31.45, 29.6, 30.2, 30.65, 30.27, 29.52, 30.08, 29.8, 00079 // 240 - 245 00080 29.87, 30.25, 30.5, 29.8, 29.17, 28.67}; 00081 00082 return (a>=20) ? NLD[a-20] : 0.1*a; 00083 }
G4LorentzVector G4InuclSpecialFunctions::generateWithFixedTheta | ( | G4double | ct, | |
G4double | p, | |||
G4double | mass = 0. | |||
) |
Definition at line 109 of file G4InuclSpecialFunctions.cc.
References randomPHI().
Referenced by G4NucleiModel::initializeCascad().
00110 { 00111 G4double phi = randomPHI(); 00112 G4double pt = p * std::sqrt(std::fabs(1.0 - ct * ct)); 00113 00114 static G4ThreeVector pvec; // Buffers to avoid memory thrashing 00115 static G4LorentzVector momr; 00116 00117 pvec.set(pt*std::cos(phi), pt*std::sin(phi), p*ct); 00118 momr.setVectM(pvec, mass); 00119 00120 return momr; 00121 }
G4LorentzVector G4InuclSpecialFunctions::generateWithRandomAngles | ( | G4double | p, | |
G4double | mass = 0. | |||
) |
Definition at line 124 of file G4InuclSpecialFunctions.cc.
References randomCOS_SIN(), and randomPHI().
Referenced by G4NonEquilibriumEvaporator::collide(), G4Fissioner::collide(), G4EquilibriumEvaporator::collide(), G4NucleiModel::generateNucleonMomentum(), and G4NucleiModel::initializeCascad().
00124 { 00125 std::pair<G4double, G4double> COS_SIN = randomCOS_SIN(); 00126 G4double phi = randomPHI(); 00127 G4double pt = p * COS_SIN.second; 00128 00129 static G4ThreeVector pvec; // Buffers to avoid memory thrashing 00130 static G4LorentzVector momr; 00131 00132 pvec.set(pt*std::cos(phi), pt*std::sin(phi), p*COS_SIN.first); 00133 momr.setVectM(pvec, mass); 00134 00135 return momr; 00136 }
Definition at line 37 of file bindingEnergy.cc.
References G4NucleiProperties::GetBindingEnergy().
Referenced by G4VAtomDeexcitation::AlongStepDeexcitation(), G4eIonisationSpectrum::AverageEnergy(), G4BigBanger::collide(), G4EquilibriumEvaporator::collide(), G4Fissioner::collide(), G4NonEquilibriumEvaporator::collide(), G4CascadeColliderBase::explosion(), G4AtomicTransitionManager::G4AtomicTransitionManager(), G4ProtonField::GetBarrier(), G4AntiProtonField::GetField(), G4KaonMinusField::GetField(), G4KaonPlusField::GetField(), G4KaonZeroField::GetField(), G4PionMinusField::GetField(), G4PionPlusField::GetField(), G4PionZeroField::GetField(), G4SigmaMinusField::GetField(), G4SigmaPlusField::GetField(), G4SigmaZeroField::GetField(), G4CascadeRecoilMaker::goodNucleus(), G4NucleiModel::initializeCascad(), G4hImpactIonisation::PostStepDoIt(), G4eIonisationSpectrum::Probability(), G4eIonisationSpectrum::SampleEnergy(), G4DNABornIonisationModel::SampleSecondaries(), G4DNARuddIonisationExtendedModel::SampleSecondaries(), G4DNARuddIonisationModel::SampleSecondaries(), G4KleinNishinaModel::SampleSecondaries(), G4LivermoreIonisationModel::SampleSecondaries(), G4LivermorePhotoElectricModel::SampleSecondaries(), G4LivermorePolarizedPhotoElectricModel::SampleSecondaries(), G4MuElecInelasticModel::SampleSecondaries(), G4PEEffectFluoModel::SampleSecondaries(), G4PEEffectModel::SampleSecondaries(), G4PenelopeComptonModel::SampleSecondaries(), G4PenelopeIonisationModel::SampleSecondaries(), G4PenelopePhotoElectricModel::SampleSecondaries(), and G4KM_OpticalEqRhs::SetFactor().
00037 { 00038 // NOTE: Test condition copied from G4NucleiProperties.cc; not encapsulated 00039 if (A < 1 || Z < 0 || Z > A) return 0.; 00040 00041 return G4NucleiProperties::GetBindingEnergy(A, Z); 00042 }
Definition at line 33 of file bindingEnergyAsymptotic.cc.
References G4cbrt().
Referenced by G4Fissioner::collide().
00033 { 00034 // calculates the nuclei binding energy 00035 // using smooth liquid high energy formula 00036 G4double X = (1.0 - 2.0*Z/A); X *= X; 00037 G4double X1 = G4cbrt(A); 00038 G4double X2 = X1 * X1; 00039 G4double X3 = 1.0 / X1; 00040 G4double X4 = 1.0 / X2; 00041 G4double X5 = (1.0 - 0.62025 * X4); X5 *= X5; 00042 00043 G4double DM = 17.035 * (1.0 - 1.846 * X) * A - 00044 25.8357 * (1.0 - 1.712 * X) * X2 * X5 - 00045 0.779 * Z * (Z - 1) * X3 * 00046 (1.0 - 1.5849 * X4 + 1.2273 / A + 1.5772 * X4 * X4) + 00047 0.4328 * G4cbrt(Z*Z*Z*Z) * X3 * 00048 (1.0 - 0.57811 * X3 - 0.14518 * X4 + 0.496 / A); 00049 00050 return DM; 00051 }
Definition at line 42 of file G4InuclSpecialFunctions.cc.
References G4cbrt().
Referenced by G4EquilibriumEvaporator::collide(), and G4NonEquilibriumEvaporator::collide().
00042 { 00043 return 0.76 + 2.2 / G4cbrt(A); 00044 }
Definition at line 46 of file G4InuclSpecialFunctions.cc.
Referenced by G4NonEquilibriumEvaporator::collide().
00046 { 00047 G4double snn; 00048 00049 if (e < 40.0) { 00050 snn = -1174.8 / (e * e) + 3088.5 / e + 5.3107; 00051 } else { 00052 snn = 93074.0 / (e * e) - 11.148 / e + 22.429; 00053 } 00054 00055 return snn; 00056 }
Definition at line 58 of file G4InuclSpecialFunctions.cc.
Referenced by G4NonEquilibriumEvaporator::collide().
00058 { 00059 G4double spn; 00060 00061 if (e < 40.0) { 00062 spn = -5057.4 / (e * e) + 9069.2 / e + 6.9466; 00063 } else { 00064 spn = 239380.0 / (e * e) + 1802.0 / e + 27.147; 00065 } 00066 00067 return spn; 00068 }
Definition at line 72 of file G4InuclSpecialFunctions.cc.
References G4cbrt().
Referenced by G4NonEquilibriumEvaporator::collide().
00072 { 00073 const G4double C = 55.4; 00074 G4double arg = (ntype==0) ? G4double(A-Z)/A : G4double(Z)/A; 00075 00076 return C * G4cbrt(arg*arg); // 2/3 power 00077 }
Definition at line 79 of file G4InuclSpecialFunctions.cc.
Referenced by bindingEnergyAsymptotic(), G4EquilibriumEvaporator::collide(), G4Fissioner::collide(), G4NonEquilibriumEvaporator::collide(), FermiEnergy(), G4RegionModel::G4RegionModel(), G4NucleiModel::generateModel(), G4NucleiModel::generateNucleonMomentum(), getAL(), G4CascadeColliderBase::inelasticInteractionPossible(), and G4IntraNucleiCascader::initialize().
G4double G4InuclSpecialFunctions::inuclRndm | ( | ) |
Definition at line 83 of file G4InuclSpecialFunctions.cc.
References G4UniformRand.
Referenced by G4EquilibriumEvaporator::collide(), G4Fissioner::collide(), G4NonEquilibriumEvaporator::collide(), G4NucleiModel::generateNucleonMomentum(), G4NucleiModel::initializeCascad(), randomCOS_SIN(), randomGauss(), randomPHI(), and G4IntraNucleiCascader::setupCascade().
00083 { 00084 return G4UniformRand(); 00085 }
Definition at line 87 of file G4InuclSpecialFunctions.cc.
References inuclRndm().
Referenced by G4Fissioner::collide().
00087 { 00088 const G4double eps = 1.0e-6; 00089 G4double r1 = inuclRndm(); 00090 r1 = r1 > eps ? r1 : eps; 00091 G4double r2 = inuclRndm(); 00092 r2 = r2 > eps ? r2 : eps; 00093 r2 = r2 < 1.0 - eps ? r2 : 1.0 - eps; 00094 00095 return sigma * std::sin(twopi * r1) * std::sqrt(-2.0 * std::log(r2)); 00096 }
G4double G4InuclSpecialFunctions::randomPHI | ( | ) |
Definition at line 98 of file G4InuclSpecialFunctions.cc.
References inuclRndm().
Referenced by generateWithFixedTheta(), generateWithRandomAngles(), and G4NucleiModel::initializeCascad().
00098 { 00099 return twopi * inuclRndm(); 00100 }
Definition at line 102 of file G4InuclSpecialFunctions.cc.
References inuclRndm().
Referenced by generateWithRandomAngles().
00102 { 00103 G4double CT = 1.0 - 2.0 * inuclRndm(); 00104 00105 return std::pair<G4double, G4double>(CT, std::sqrt(1.0 - CT*CT)); 00106 }
G4LorentzVector G4InuclSpecialFunctions::generateWithFixedTheta | ( | G4double | ct, | |
G4double | p, | |||
G4double | mass | |||
) |
Definition at line 109 of file G4InuclSpecialFunctions.cc.
References randomPHI().
Referenced by G4NucleiModel::initializeCascad().
00110 { 00111 G4double phi = randomPHI(); 00112 G4double pt = p * std::sqrt(std::fabs(1.0 - ct * ct)); 00113 00114 static G4ThreeVector pvec; // Buffers to avoid memory thrashing 00115 static G4LorentzVector momr; 00116 00117 pvec.set(pt*std::cos(phi), pt*std::sin(phi), p*ct); 00118 momr.setVectM(pvec, mass); 00119 00120 return momr; 00121 }
G4LorentzVector G4InuclSpecialFunctions::generateWithRandomAngles | ( | G4double | p, | |
G4double | mass | |||
) |
Definition at line 124 of file G4InuclSpecialFunctions.cc.
References randomCOS_SIN(), and randomPHI().
Referenced by G4EquilibriumEvaporator::collide(), G4Fissioner::collide(), G4NonEquilibriumEvaporator::collide(), G4NucleiModel::generateNucleonMomentum(), and G4NucleiModel::initializeCascad().
00124 { 00125 std::pair<G4double, G4double> COS_SIN = randomCOS_SIN(); 00126 G4double phi = randomPHI(); 00127 G4double pt = p * COS_SIN.second; 00128 00129 static G4ThreeVector pvec; // Buffers to avoid memory thrashing 00130 static G4LorentzVector momr; 00131 00132 pvec.set(pt*std::cos(phi), pt*std::sin(phi), p*COS_SIN.first); 00133 momr.setVectM(pvec, mass); 00134 00135 return momr; 00136 }
Definition at line 33 of file nucleiLevelDensity.cc.
Referenced by G4Fissioner::collide().
00033 { 00034 const G4double NLD[226] = { 00035 // 20 - 29 00036 3.94, 3.84, 3.74, 3.64, 3.55, 4.35, 4.26, 4.09, 3.96, 4.18, 00037 // 30 - 39 00038 4.39, 4.61, 4.82, 4.44, 4.44, 4.43, 4.42, 5.04, 5.66, 5.8, 00039 // 40 - 49 00040 5.95, 5.49, 6.18, 7.11, 6.96, 7.2, 7.73, 6.41, 6.85, 6.77, 00041 // 50 - 59 00042 6.91, 7.3, 7.2, 6.86, 8.06, 7.8, 7.82, 8.41, 8.13, 7.19, 00043 // 60 - 69 00044 8.35, 8.13, 8.02, 8.93, 8.9, 9.7, 9.65, 10.55, 9.38, 9.72, 00045 // 70 - 79 00046 10.66, 11.98, 12.76, 12.1, 12.86, 13.0, 12.81, 12.8, 12.65, 12.0, 00047 // 80 - 89 00048 12.69, 14.05, 13.33, 13.28, 13.22, 13.17, 8.66, 11.03, 10.4, 13.47, 00049 // 90 - 99 00050 10.17, 12.22, 11.62, 12.95, 13.15, 13.57, 12.87, 16.2, 14.71, 15.69, 00051 // 100 - 109 00052 14.1, 18.56, 16.22, 16.7, 17.13, 17.0, 16.86, 16.2, 15.61, 16.8, 00053 // 110 - 119 00054 17.93, 17.5, 16.97, 17.3, 17.6, 15.78, 16.8, 17.49, 16.03, 15.08, 00055 // 120 - 129 00056 16.74, 17.74, 17.43, 18.1, 17.1, 19.01, 17.02, 17.0, 17.02, 18.51, 00057 // 130 - 139 00058 17.2, 16.8, 16.97, 16.14, 16.91, 17.69, 15.5, 14.56, 14.35, 16.5, 00059 // 140 - 149 00060 18.29, 17.8, 17.05, 21.31, 19.15, 19.5, 19.78, 20.3, 20.9, 21.9, 00061 // 150 - 159 00062 22.89, 25.68, 24.6, 24.91, 23.24, 22.9, 22.46, 21.98, 21.64, 21.8, 00063 // 160 - 169 00064 21.85, 21.7, 21.69, 23.7, 21.35, 23.03, 20.66, 21.81, 20.77, 22.2, 00065 // 170 - 179 00066 22.58, 22.55, 21.45, 21.16, 21.02, 20.87, 22.09, 22.0, 21.28, 23.05, 00067 // 180 - 189 00068 21.7, 21.18, 22.28, 23.0, 22.11, 23.56, 22.83, 24.88, 22.6, 23.5, 00069 // 190 - 199 00070 23.89, 23.9, 23.94, 21.16, 22.3, 21.7, 21.19, 20.7, 20.29, 21.32, 00071 // 200 - 209 00072 19.0, 17.93, 17.85, 15.7, 13.54, 11.9, 10.02, 10.48, 10.28, 11.72, 00073 // 210 - 219 00074 13.81, 14.7, 15.5, 16.3, 17.2, 18.0, 18.9, 19.7, 20.6, 21.4, 00075 // 220 - 229 00076 22.3, 23.1, 24.0, 24.8, 25.6, 26.5, 27.3, 28.2, 29.0, 29.9, 00077 // 230 - 239 00078 30.71, 30.53, 31.45, 29.6, 30.2, 30.65, 30.27, 29.52, 30.08, 29.8, 00079 // 240 - 245 00080 29.87, 30.25, 30.5, 29.8, 29.17, 28.67}; 00081 00082 return (a>=20) ? NLD[a-20] : 0.1*a; 00083 }
void G4InuclSpecialFunctions::paraMaker | ( | G4double | Z, | |
std::pair< std::vector< G4double >, std::vector< G4double > > & | parms | |||
) |
Definition at line 38 of file paraMaker.cc.
References G4cout, G4endl, and G4CascadeInterpolator< NBINS >::interpolate().
Referenced by G4EquilibriumEvaporator::collide().
00039 { 00040 G4int verboseLevel(0); 00041 00042 if (verboseLevel > 3) { 00043 G4cout << " >>> G4InuclSpecialFunctions::paraMaker" << G4endl; 00044 } 00045 00046 // calculates the coefficients for the phenomenological formulas for 00047 // coulumb barier, c.s. etc needed for evaporators 00048 00049 static const G4double Z1[5] = {10.0, 20.0, 30.0, 50.0, 70.0}; 00050 static const G4double AP[5] = {0.42, 0.58, 0.68, 0.77, 0.80}; 00051 static const G4double CP[5] = {0.50, 0.28, 0.20, 0.15, 0.10}; 00052 static const G4double AA[5] = {0.68, 0.82, 0.91, 0.97, 0.98}; 00053 static const G4double CA[5] = {0.10, 0.10, 0.10, 0.08, 0.06}; 00054 00055 // Set up input buffer for results 00056 std::vector<G4double>& AK = parms.first; 00057 AK.resize(6,0.); 00058 00059 std::vector<G4double>& CPA = parms.second; 00060 CPA.resize(6,0.); 00061 00062 AK[0] = 0.0; 00063 CPA[0] = 0.0; 00064 00065 static G4CascadeInterpolator<5> interp(Z1, false); // Do not extrapolate 00066 AK[1] = interp.interpolate(Z, AP); 00067 AK[5] = interp.interpolate(Z, AA); 00068 CPA[1] = interp.interpolate(Z, CP); 00069 CPA[5] = interp.interpolate(Z, CA); 00070 00071 AK[2] = AK[1] + 0.06; 00072 AK[3] = AK[1] + 0.12; 00073 AK[4] = AK[5] - 0.06; 00074 00075 CPA[2] = CPA[1] * 0.5; 00076 CPA[3] = CPA[1] / 3.0; 00077 CPA[4] = 4.0 * CPA[5] / 3.0; 00078 00079 return; // Buffer filled 00080 }
void G4InuclSpecialFunctions::paraMakerTruncated | ( | G4double | Z, | |
std::pair< G4double, G4double > & | parms | |||
) |
Definition at line 83 of file paraMaker.cc.
References G4cout, G4endl, and G4CascadeInterpolator< NBINS >::interpolate().
Referenced by G4NonEquilibriumEvaporator::collide().
00084 { 00085 G4int verboseLevel(0); 00086 00087 if (verboseLevel > 3) { 00088 G4cout << " >>> G4InuclSpecialFunctions::paraMakerTruncated" << G4endl; 00089 } 00090 00091 // truncated version of the previous one 00092 static const G4double Z1[5] = {10.0, 20.0, 30.0, 50.0, 70.0}; 00093 static const G4double AP[5] = {0.42, 0.58, 0.68, 0.77, 0.8}; 00094 static const G4double CP[5] = {0.5, 0.28, 0.2, 0.15, 0.1}; 00095 00096 // Set up buffers for output 00097 G4double& AK2=parms.first; 00098 G4double& CP2=parms.second; 00099 00100 static G4CascadeInterpolator<5> interp(Z1, false); // Do not extrapolate 00101 AK2 = interp.interpolate(Z, AP); 00102 CP2 = interp.interpolate(Z, CP); 00103 00104 return; // Buffer filled 00105 }