52 ResidualA = ResidualZ = 0;
53 ResidualAthrd = FragmentAthrd = 0.0;
62 return G4double((N-1)*(N-2)*(P-1)*P)/2.0;
73 if(nCharged >=1 && (nParticles-nCharged) >=1) {
75 rj = 2*nCharged*(nParticles-nCharged)/denominator;
93 FragmentA = theA + ResidualA;
94 FragmentAthrd =
g4pow->
Z13(FragmentA);
100 std::ostringstream errOs;
101 errOs <<
"BAD DEUTERON CROSS SECTION OPTION !!" <<
G4endl;
110 G4int aZ = theZ + ResidualZ;
117 C = ((((0.15417e-06*aZ) - 0.29875e-04)*aZ + 0.21071e-02)*aZ - 0.66612e-01)*aZ + 0.98375;
130 if (K > 50*MeV) { Kc = 50*MeV; }
132 G4double landa ,mu ,nu ,p , Ec,q,r,ji,xs;
146 Ec = 1.44*theZ*ResidualZ/(1.5*ResidualAthrd+delta);
147 p = p0 + p1/Ec + p2/(Ec*Ec);
148 landa = landa0*ResidualA + landa1;
151 nu = resmu1*(nu0 + nu1*Ec + nu2*(Ec*Ec));
152 q = landa - nu/(Ec*Ec) - 2*p*Ec;
153 r = mu + 2*nu/Ec + p*(Ec*Ec);
156 if(Kc < Ec) { xs = p*Kc*Kc + q*Kc + r;}
157 else {xs = p*(Kc - ji)*(Kc - ji) + landa*Kc + mu + nu*(2 - Kc/ji)/ji ;}
159 if (xs <0.0) {xs=0.0;}
169 G4double landa, mu, nu, p ,signor(1.),sig;
170 G4double ec,ecsq,xnulam,etest(0.),a;
171 G4double b,ecut,cut,ecut2,geom,elab;
191 ec = 1.44 * theZ * ResidualZ / (1.7*ResidualAthrd+ra);
193 p = p0 + p1/ec + p2/ecsq;
194 landa = landa0*ResidualA + landa1;
197 nu = a* (nu0+nu1*ec+nu2*ecsq);
199 if (xnulam > spill) { xnulam=0.; }
200 if (xnulam >= flow) { etest = 1.2 *std::sqrt(xnulam); }
202 a = -2.*p*ec + landa - nu/ecsq;
203 b = p*ecsq + mu + 2.*nu/ec;
206 if (cut > 0.) { ecut = std::sqrt(cut); }
207 ecut = (ecut-a) / (p+p);
213 if (cut < 0.) { ecut2 = ecut; }
214 elab = K * FragmentA /
G4double(ResidualA);
218 if (elab > ecut2) { sig = (p*elab*elab+a*elab+b) * signor; }
221 sig = (landa*elab+mu+nu/elab) * signor;
223 if (xnulam < flow || elab < etest) {
return sig; }
224 geom = std::sqrt(theA*K);
225 geom = 1.23*ResidualAthrd + ra + 4.573/geom;
226 geom = 31.416 * geom * geom;
227 sig = std::max(geom,sig);
G4double powZ(G4int Z, G4double y)
virtual G4double CrossSection(G4double ekin)
virtual G4double CoalescenceFactor(G4int A)
G4double GetOpt34(G4double K)
virtual G4double GetRj(G4int NumberParticles, G4int NumberCharged)
virtual G4double FactorialFactor(G4int N, G4int P)
G4double GetOpt12(G4double K)
virtual G4double GetAlpha()
G4double GetOpt0(G4double ekin)
G4double ResidualA13() const