Import Geant4 9.4.0 source tree

This commit is contained in:
Gabriele Cosmo
2016-06-09 16:25:56 +02:00
parent 74cad5e589
commit 89a9605df1
4440 changed files with 379508 additions and 189225 deletions
@@ -391,12 +391,24 @@ void G4QMDMeanField::CalGraduate()
G4ThreeVector ri = system->GetParticipant( i )->GetPosition();
G4LorentzVector p4i = system->GetParticipant( i )->Get4Momentum();
G4ThreeVector betai = p4i.v()/p4i.e();
ffr[i] = betai;
// R-JQMD
G4double Vi = GetPotential( i );
G4double p_zero = std::sqrt( p4i.e()*p4i.e() + 2*p4i.m()*Vi);
G4ThreeVector betai_R = p4i.v()/p_zero;
G4double mi_R = p4i.m()/p_zero;
//
ffr[i] = betai_R;
ffp[i] = G4ThreeVector( 0.0 );
if ( false )
{
ffr[i] = betai;
mi_R = 1.0;
}
for ( G4int j = 0 ; j < system->GetTotalNumberOfParticipant() ; j ++ )
{
@@ -416,6 +428,7 @@ void G4QMDMeanField::CalGraduate()
+ csg * rha[j][i] * jnuc * inuc
* ( 1. - 2. * std::abs( jcharge - icharge ) )
+ cl * rhc[j][i];
ccpp *= mi_R;
/*
std::cout << c0g << " " << c3g << " " << csg << " " << cl << std::endl;
@@ -434,14 +447,14 @@ void G4QMDMeanField::CalGraduate()
*/
G4ThreeVector rij = ri - rj;
G4ThreeVector betaij = ( p4i + p4j ).v()/eij;
G4ThreeVector rij = ri - rj;
G4ThreeVector betaij = ( p4i + p4j ).v()/eij;
G4ThreeVector cij = betaij - betai;
G4ThreeVector cij = betaij - betai;
ffr[i] = ffr[i] + 2*ccrr* ( rij + grbb*cij );
ffr[i] = ffr[i] + 2*ccrr* ( rij + grbb*cij );
ffp[i] = ffp[i] - 2*ccpp* ( rij + grbb*betaij );
ffp[i] = ffp[i] - 2*ccpp* ( rij + grbb*betaij );
}
}
@@ -453,6 +466,42 @@ void G4QMDMeanField::CalGraduate()
G4double G4QMDMeanField::GetPotential( G4int i )
{
G4int n = system->GetTotalNumberOfParticipant();
G4double rhoa = 0.0;
G4double rho3 = 0.0;
G4double rhos = 0.0;
G4double rhoc = 0.0;
G4int icharge = system->GetParticipant(i)->GetChargeInUnitOfEplus();
G4int inuc = system->GetParticipant(i)->GetNuc();
for ( G4int j = 0 ; j < n ; j ++ )
{
G4int jcharge = system->GetParticipant(j)->GetChargeInUnitOfEplus();
G4int jnuc = system->GetParticipant(j)->GetNuc();
rhoa += rha[j][i];
rhoc += rhe[j][i];
rhos += rha[j][i] * jnuc * inuc
* ( 1 - 2 * std::abs ( jcharge - icharge ) );
}
rho3 = std::pow ( rhoa , gamm );
G4double potential = c0 * rhoa
+ c3 * rho3
+ cs * rhos
+ cl * rhoc;
return potential;
}
G4double G4QMDMeanField::GetTotalPotential()
{
@@ -42,8 +42,9 @@
G4QMDReaction::G4QMDReaction()
: system ( NULL )
, deltaT ( 1 ) // in fsec
, deltaT ( 1 ) // in fsec (c=1)
, maxTime ( 100 ) // will have maxTime-th time step
, envelopF ( 1.05 ) // 10% for Peripheral reactions
, gem ( true )
, frag ( false )
{
@@ -154,7 +155,8 @@ G4HadFinalState* G4QMDReaction::ApplyYourself( const G4HadProjectile & projectil
{
// impact parameter
G4double bmax = 1.05*(bmax_0/fermi); // 10% for Peripheral reactions
//G4double bmax = 1.05*(bmax_0/fermi); // 10% for Peripheral reactions
G4double bmax = envelopF*(bmax_0/fermi);
G4double b = bmax * std::sqrt ( G4UniformRand() );
//071112
//G4double b = 0;