52 potentialEnergy = 0.0;
53 excitationEnergy = 0.0;
77 c0sw = std::sqrt( c0w );
78 clw = 2.0 / std::sqrt ( 4.0 * pi * wl );
81 c0g = - c0 / ( 2.0 * wl );
82 c3g = - c3 / ( 4.0 * wl ) * gamm;
83 csg = - cs / ( 2.0 * wl );
86 cg0 = - g0 / ( 2.0 * wl );
87 cgtau0 = - gtau0 / ( 4.0 * wl ) * eta;
101 std::vector< G4QMDParticipant* >::iterator it;
103 p += (*it)->Get4Momentum();
114 std::vector< G4QMDParticipant* >::iterator it;
123 throw G4HadronicException(__FILE__, __LINE__,
"G4LightIonQMDNucleus has the mass number of 0!");
134 std::vector< G4QMDParticipant* >::iterator it;
167 - Asym * (
N - Z )* (
N - Z ) /
A;
193 for (
G4int i= 0; i < n ; i++ )
197 G4double trans = gamma / ( gamma + 1.0 ) * p_i * beta;
198 pcm[i] = p_i - trans*beta;
203 pcm0 = pcm0 / double ( n );
207 for (
G4int i= 0; i < n ; i++ )
220 for (
G4int i= 0; i < n ; i++ )
223 G4double trans = gamma / ( gamma + 1.0 ) * ri * beta;
224 G4double nucpote = GetNuclPotential( i );
228 rcm[i] = ri + trans*beta;
230 rcm0 += rcm[i]*es[i];
237 for (
G4int i= 0; i < n ; i++ )
246 for (
G4int i= 0; i < n ; i++ )
248 rl += rcm[i].cross ( pcm[i] );
254 jj = int (std::sqrt(rl*rl)/hbc + 0.5);
272 G4double bindingEnergy = ( std::accumulate ( es.begin() , es.end() , 0.0 ) );
282 if ( excitationEnergy < 0 ) excitationEnergy = 0.0;
310 for (
G4int j = 0 ; j < n ; j ++ )
330 G4double gammaij = ( p4i + p4j ).gamma();
340 rbrb = irelcr * rbrb;
341 G4double gamma2_ij = gammaij*gammaij;
343 G4double rr2 = rij2 + gamma2_ij * rbrb*rbrb;
345 G4double expa1 = - (rij2 + gamma2_ij * rbrb*rbrb) * c0w;
349 rh1 =
G4Exp( expa1 );
356 G4double rrs2 = (rij2 + gamma2_ij * rbrb*rbrb) + epscl;
361 if ( rrs*c0sw < 5.8 ) {
369 xerf = std::erf ( rrs*c0sw );
377 G4double fsij = 3.0/(2*wl) - rr2/(2*wl)/(2*wl);
379 rhoa += ibry*jbry*rh1*cef;
380 fsij_rhoa += fsij * ibry*jbry*rh1*cef;
381 rhoc += icharge*jcharge * erfij * cef;
382 rhos += ibry*jbry*rh1 * jnuc * inuc * cef
383 * ( 1 - 2 * std::abs ( jcharge - icharge ) )
384 * (1. - kappas * fsij);
G4double G4Exp(G4double initial_x)
Exponential Function double precision.
static double erf(double x)
void CalEnergyAndAngularMomentumInCM()
G4double GetNuclearMass()
G4LorentzVector Get4Momentum()
static G4LightIonQMDParameters * GetInstance()
static G4Neutron * Neutron()
static G4double GetBindingEnergy(const G4int A, const G4int Z)
static G4double GetNuclearMass(const G4double A, const G4double Z)
G4double GetPDGMass() const
static G4Pow * GetInstance()
G4double A13(G4double A) const
G4double powA(G4double A, G4double y) const
G4double A23(G4double A) const
static G4Proton * Proton()
G4ThreeVector GetPosition()
G4LorentzVector Get4Momentum()
G4int GetChargeInUnitOfEplus()
G4ThreeVector GetMomentum()
G4QMDParticipant * GetParticipant(G4int i)
std::vector< G4QMDParticipant * > participants
G4int GetTotalNumberOfParticipant()