42 potentialEnergy = 0.0;
43 excitationEnergy = 0.0;
57 std::vector< G4QMDParticipant* >::iterator it;
59 p += (*it)->Get4Momentum();
70 std::vector< G4QMDParticipant* >::iterator it;
86 std::vector< G4QMDParticipant* >::iterator it;
117 - As * std::pow (
G4double ( A ) , 2.0/3.0 )
118 - Ac * Z*Z/std::pow (
G4double ( A ) , 1.0/3.0 )
119 - Asym * ( N -
Z )* ( N - Z ) / A;
145 for (
G4int i= 0; i <
n ; i++ )
149 G4double trans = gamma / ( gamma + 1.0 ) * p_i * beta;
150 pcm[i] = p_i - trans*beta;
155 pcm0 = pcm0 / double ( n );
159 for (
G4int i= 0; i <
n ; i++ )
171 for (
G4int i= 0; i <
n ; i++ )
174 G4double trans = gamma / ( gamma + 1.0 ) * ri * beta;
176 es[i] = std::sqrt ( std::pow (
GetParticipant( i )->GetMass() , 2 ) + pcm[i]*pcm[i] );
178 rcm[i] = ri + trans*beta;
180 rcm0 += rcm[i]*es[i];
187 for (
G4int i= 0; i <
n ; i++ )
196 for (
G4int i= 0; i <
n ; i++ )
198 rl += rcm[i].cross ( pcm[i] );
201 jj =
int ( std::sqrt ( rl*rl / hbc ) + 0.5 );
207 for (
G4int i= 0; i <
n ; i++ )
217 G4double bindingEnergy = ( std::accumulate ( es.begin() , es.end() , 0.0 ) -totalMass ) + potentialEnergy;
227 if ( excitationEnergy < 0 ) excitationEnergy = 0.0;
G4ThreeVector GetPosition()
static G4double GetNuclearMass(const G4double A, const G4double Z)
typedef int(XMLCALL *XML_NotStandaloneHandler)(void *userData)
G4ThreeVector GetMomentum()
static G4QMDParameters * GetInstance()
G4LorentzVector Get4Momentum()
static G4Proton * Proton()
G4int GetTotalNumberOfParticipant()
static G4Neutron * Neutron()
std::vector< G4QMDParticipant * > participants
G4QMDParticipant * GetParticipant(G4int i)
G4double GetPDGMass() const
static G4double GetBindingEnergy(const G4int A, const G4int Z)
void CalEnergyAndAngularMomentumInCM()
G4double bindingEnergy(G4int A, G4int Z)
G4double GetNuclearMass()