64 return G4double((N-3)*(P-2)*(N-2)*(P-1)*(N-1)*P)/6.0;
75 if(nCharged >= 1 && (nParticles-nCharged) >= 2) {
77 G4double(nParticles*(nParticles-1)*(nParticles-2));
78 rj =
G4double(3*nCharged*(nParticles-nCharged)*(nParticles-nCharged-1))
104 std::ostringstream errOs;
105 errOs <<
"BAD TRITON CROSS SECTION OPTION !!" <<
G4endl;
121 C = ((((0.15417e-06*aZ) - 0.29875e-04)*aZ + 0.21071e-02)*aZ - 0.66612e-01)*aZ + 0.98375;
136 if (K > 50*
MeV) { Kc=50*
MeV; }
138 G4double landa ,mu ,nu ,p , Ec,q,r,ji,xs;
153 p = p0 + p1/Ec + p2/(Ec*Ec);
158 nu = resmu1*(nu0 + nu1*Ec + nu2*(Ec*Ec));
159 q = landa - nu/(Ec*Ec) - 2*p*Ec;
160 r = mu + 2*nu/Ec + p*(Ec*Ec);
163 if(Kc < Ec) { xs = p*Kc*Kc + q*Kc + r;}
164 else {xs = p*(Kc - ji)*(Kc - ji) + landa*Kc + mu + nu*(2 - Kc/ji)/ji ;}
166 if (xs <0.0) {xs=0.0;}
175 G4double landa, mu, nu, p , signor(1.),sig;
177 G4double b,ecut,cut,ecut2,geom,elab;
199 p = p0 + p1/ec + p2/ecsq;
203 nu = a* (nu0+nu1*ec+nu2*ecsq);
205 if (xnulam > spill) { xnulam=0.; }
206 if (xnulam >= flow) { etest = 1.2 *std::sqrt(xnulam); }
208 a = -2.*p*ec + landa - nu/ecsq;
209 b = p*ecsq + mu + 2.*nu/ec;
212 if (cut > 0.) { ecut = std::sqrt(cut); }
213 ecut = (ecut-
a) / (p+p);
219 if (cut < 0.) { ecut2 = ecut; }
224 if (elab > ecut2) { sig = (p*elab*elab+a*elab+b) * signor; }
227 sig = (landa*elab+mu+nu/elab) * signor;
229 if (xnulam < flow || elab < etest) {
return sig; }
230 geom = std::sqrt(
theA*K);
232 geom = 31.416 * geom * geom;
G4double GetOpt12(G4double K)
G4double ResidualA13() const
virtual G4double GetRj(G4int NumberParticles, G4int NumberCharged)
G4double GetOpt34(G4double K)
G4double GetOpt0(G4double ekin)
virtual G4double GetAlpha()
G4double Z13(G4int Z) const
virtual G4double CoalescenceFactor(G4int A)
static const G4double A[nN]
T max(const T t1, const T t2)
brief Return the largest of the two arguments
G4double powZ(G4int Z, G4double y) const
virtual ~G4PreCompoundTriton()
virtual G4double FactorialFactor(G4int N, G4int P)
virtual G4double CrossSection(G4double ekin)