53 std::vector< G4QMDParticipant* >::iterator it;
55 p += (*it)->Get4Momentum();
66 std::vector< G4QMDParticipant* >::iterator it;
82 std::vector< G4QMDParticipant* >::iterator it;
113 - As * std::pow (
G4double ( A ) , 2.0/3.0 )
114 - Ac * Z*Z/std::pow (
G4double ( A ) , 1.0/3.0 )
115 - Asym * ( N - Z )* ( N - Z ) / A;
141 for (
G4int i= 0; i < n ; i++ )
145 G4double trans = gamma / ( gamma + 1.0 ) * p_i * beta;
146 pcm[i] = p_i - trans*beta;
151 pcm0 = pcm0 / double ( n );
155 for (
G4int i= 0; i < n ; i++ )
167 for (
G4int i= 0; i < n ; i++ )
170 G4double trans = gamma / ( gamma + 1.0 ) * ri * beta;
172 es[i] = std::sqrt ( std::pow (
GetParticipant( i )->GetMass() , 2 ) + pcm[i]*pcm[i] );
174 rcm[i] = ri + trans*beta;
176 rcm0 += rcm[i]*es[i];
183 for (
G4int i= 0; i < n ; i++ )
192 for (
G4int i= 0; i < n ; i++ )
194 rl += rcm[i].cross ( pcm[i] );
197 jj = int ( std::sqrt ( rl*rl / hbc ) + 0.5 );
203 for (
G4int i= 0; i < n ; i++ )
210 kineticEnergyPerNucleon = ( std::accumulate ( es.begin() , es.end() , 0.0 ) - totalMass )/n;
213 bindingEnergy = ( std::accumulate ( es.begin() , es.end() , 0.0 ) -totalMass ) + potentialEnergy;
223 if ( excitationEnergy < 0 ) excitationEnergy = 0.0;
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 G4Proton * Proton()
void CalEnergyAndAngularMomentumInCM()
G4double GetNuclearMass()
G4LorentzVector Get4Momentum()
static G4QMDParameters * GetInstance()
G4ThreeVector GetPosition()
G4ThreeVector GetMomentum()
G4QMDParticipant * GetParticipant(G4int i)
std::vector< G4QMDParticipant * > participants
G4int GetTotalNumberOfParticipant()