65 return G4double((N-3)*(P-2)*(N-2)*(P-1)*(N-1)*P)/12.0;
76 if(nCharged >= 1 && (nParticles-nCharged) >= 2) {
78 G4double(nParticles*(nParticles-1)*(nParticles-2));
79 rj =
G4double(3*nCharged*(nParticles-nCharged)*(nParticles-nCharged-1))
105 std::ostringstream errOs;
106 errOs <<
"BAD TRITON CROSS SECTION OPTION !!" <<
G4endl;
122 C = ((((0.15417e-06*aZ) - 0.29875e-04)*aZ + 0.21071e-02)*aZ - 0.66612e-01)*aZ + 0.98375;
137 if (K > 50*
MeV) { Kc=50*
MeV; }
139 G4double landa ,mu ,nu ,p , Ec,q,r,ji,xs;
154 p = p0 + p1/Ec + p2/(Ec*Ec);
159 nu = resmu1*(nu0 + nu1*Ec + nu2*(Ec*Ec));
160 q = landa - nu/(Ec*Ec) - 2*p*Ec;
161 r = mu + 2*nu/Ec + p*(Ec*Ec);
164 if(Kc < Ec) { xs = p*Kc*Kc + q*Kc + r;}
165 else {xs = p*(Kc - ji)*(Kc - ji) + landa*Kc + mu + nu*(2 - Kc/ji)/ji ;}
167 if (xs <0.0) {xs=0.0;}
176 G4double landa, mu, nu, p , signor(1.),sig;
178 G4double b,ecut,cut,ecut2,geom,elab;
200 p = p0 + p1/ec + p2/ecsq;
204 nu = a* (nu0+nu1*ec+nu2*ecsq);
206 if (xnulam > spill) { xnulam=0.; }
207 if (xnulam >= flow) { etest = 1.2 *std::sqrt(xnulam); }
209 a = -2.*p*ec + landa - nu/ecsq;
210 b = p*ecsq + mu + 2.*nu/ec;
213 if (cut > 0.) { ecut = std::sqrt(cut); }
214 ecut = (ecut-
a) / (p+p);
220 if (cut < 0.) { ecut2 = ecut; }
225 if (elab > ecut2) { sig = (p*elab*elab+a*elab+b) * signor; }
228 sig = (landa*elab+mu+nu/elab) * signor;
230 if (xnulam < flow || elab < etest) {
return sig; }
231 geom = std::sqrt(
theA*K);
233 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)