74    for ( 
int i = 0 ; i < a ; i++ )
 
   98    radm = radious - rada * ( gamm - 1.0 ) + radb;
 
   99    rmax = 1.0 / ( 1.0 + 
G4Exp ( -rt00/saa ) );
 
  104    if ( z == 1 && a == 1 ) {  
 
  109    else if ( z == 0 && a == 1 ) { 
 
  129 void G4QMDGroundStateNucleus::packNucleons()
 
  143       ebin0 = ( ebini - 0.5 ) * 0.001;
 
  144       ebin1 = ( ebini + 0.5 ) * 0.001;
 
  148       ebin0 = ( ebini - 1.5 ) * 0.001;
 
  149       ebin1 = ( ebini + 1.5 ) * 0.001;
 
  154    while ( n0Try < maxTrial ) 
 
  163       G4bool areThesePsOK = 
false;
 
  165       while ( npTry < maxTrial ) 
 
  170          if ( samplingPosition( i ) ) 
 
  176                if ( !( samplingPosition( i ) ) ) 
 
  190       if ( areThesePsOK == 
false ) 
continue;
 
  209             rho_a[ i ] += meanfield->
GetRHA( j , i ); 
 
  216             rho_s[ i ] += meanfield->
GetRHA( j , i )*( 1.0 - 2.0 * k ); 
 
  218             rho_c[ i ] += meanfield->
GetRHE( j , i ); 
 
  225          rho_l[i] = cdp * ( rho_a[i] + 1.0 );     
 
  226          d_pot[i] = c0p * rho_a[i]
 
  243       G4bool isThis1stMOK = 
false;
 
  245       while ( nmTry < maxTrial ) 
 
  249          if ( samplingMomentum( i ) ) 
 
  255       if ( isThis1stMOK == 
false ) 
continue;
 
  259       G4bool areTheseMsOK = 
true;
 
  261       while ( nmTry < maxTrial ) 
 
  268                if ( !( samplingMomentum( i ) ) ) 
 
  271                   areTheseMsOK = 
false;
 
  282       if ( areTheseMsOK == 
false ) 
continue;
 
  288       killCMMotionAndAngularM();    
 
  310       if ( ebinal < ebin0 || ebinal > ebin1 ) 
 
  344       G4bool isThisEAOK = 
false;
 
  345       while ( neaTry < maxTrial )  
 
  352          if ( std::abs ( edif ) < epse )
 
  376          if ( jfrc == ifrc && std::abs( edif0 ) < std::abs( edif ) )
 
  392             ri += dtc * ( meanfield->
GetFFr(i) - cfrc * ( meanfield->
GetFFp(i) ) );
 
  393             p_i += dtc * ( meanfield->
GetFFp(i) + cfrc * ( meanfield->
GetFFr(i) ) );
 
  409          ebinal = ( totalPotentialE + ekinal ) / 
double ( 
GetMassNumber() );
 
  413       if ( isThisEAOK == 
false ) 
continue;
 
  421    if ( isThisOK == 
false )
 
  423       G4cout << 
"GroundStateNucleus state cannot be created. Try again with another parameters." << 
G4endl;
 
  431 G4bool G4QMDGroundStateNucleus::samplingPosition( 
G4int i )
 
  438    while ( nTry < maxTrial )  
 
  451       G4int icounter_max = 1024;
 
  455          if ( icounter > icounter_max ) {
 
  456         G4cout << 
"Loop-counter exceeded the threshold value at " << __LINE__ << 
"th line of " << __FILE__ << 
"." << 
G4endl;
 
  462          G4int jcounter_max = 1024;
 
  466             if ( jcounter > jcounter_max ) {
 
  467            G4cout << 
"Loop-counter exceeded the threshold value at " << __LINE__ << 
"th line of " << __FILE__ << 
"." << 
G4endl;
 
  473             rsqr = rx*rx + ry*ry + rz*rz; 
 
  475          rrr = radm * std::sqrt ( rsqr );
 
  476          rwod = 1.0 / ( 1.0 + 
G4Exp ( ( rrr - rt00 ) / saa ) );
 
  492       for ( 
G4int j = 0 ; j < i ; j++ )
 
  516       if ( isThisOK == 
true )
 
  532 G4bool G4QMDGroundStateNucleus::samplingMomentum( 
G4int i )
 
  543       pfm = pfm * ( 1.0 + 0.2 * std::sqrt( std::abs( 8.0 + ebini ) / 8.0 ) );
 
  548    std::vector< G4double > phase; 
 
  553    while ( ntry < maxTrial )  
 
  564       G4int icounter_max = 1024;
 
  565       while ( ke + d_pot [i] > edepth ) 
 
  568          if ( icounter > icounter_max ) {
 
  569         G4cout << 
"Loop-counter exceeded the threshold value at " << __LINE__ << 
"th line of " << __FILE__ << 
"." << 
G4endl;
 
  579          G4int jcounter_max = 1024;
 
  583             if ( jcounter > jcounter_max ) {
 
  584            G4cout << 
"Loop-counter exceeded the threshold value at " << __LINE__ << 
"th line of " << __FILE__ << 
"." << 
G4endl;
 
  591             psqr = px*px + py*py + pz*pz;
 
  603          if ( tkdb_i > maxTrial ) 
return result; 
 
  624       for ( 
G4int j = 0 ; j < i ; j++ )
 
  632             expa = - meanfield->
GetRR2(i,j) * cpw;
 
  640                dist2_p = dist2_p*cph;
 
  641                expa = expa - dist2_p; 
 
  646                   phase[j] = 
G4Exp ( expa );
 
  648                   if ( phase[j] * cpc > 0.2 ) 
 
  658                   if ( ( phase_g[j] + phase[j] ) * cpc > 0.5 ) 
 
  670                   phase[i] += phase[j];
 
  671                   if ( phase[i] * cpc > 0.3 ) 
 
  704       if ( isThisOK == 
true )
 
  707          phase_g[i] = phase[i];
 
  709          for ( 
int j = 0 ; j < i ; j++ )
 
  711             phase_g[j] += phase[j]; 
 
  726 void G4QMDGroundStateNucleus::killCMMotionAndAngularM()
 
  748    rcm_tmp = rcm_tmp/sumMass;
 
  766    for ( 
G4int i = 0 ; i < 3 ; i++ )
 
  768       for ( 
G4int j = 0 ; j < 3 ; j++ )
 
  786       rr[0][0] += r.
y() * r.
y() + r.
z() * r.
z(); 
 
  787       rr[1][0] += - r.
y() * r.
x();
 
  788       rr[2][0] += - r.
z() * r.
x();
 
  789       rr[0][1] += - r.
x() * r.
y();
 
  790       rr[1][1] += r.
z() * r.
z() + r.
x() * r.
x(); 
 
  791       rr[2][1] += - r.
z() * r.
y();
 
  792       rr[2][0] += - r.
x() * r.
z();
 
  793       rr[2][1] += - r.
y() * r.
z();
 
  794       rr[2][2] += r.
x() * r.
x() + r.
y() * r.
y(); 
 
  797    for ( 
G4int i = 0 ; i < 3 ; i++ )
 
  800       for ( 
G4int j = 0 ; j < 3 ; j++ )
 
  802          rr[i][j] = rr[i][j] / x;
 
  803          ss[i][j] = ss[i][j] / x;
 
  805       for ( 
G4int j = 0 ; j < 3 ; j++ )
 
  810             for ( 
G4int k = 0 ; k < 3 ; k++ )
 
  812                rr[j][k] += -y * rr[i][k];
 
  813                ss[j][k] += -y * ss[i][k];
 
  826    for ( 
G4int i = 0 ; i < 3 ; i++ )
 
  830       for ( 
G4int j = 0 ; j < 3 ; j++ )
 
  832      opl[i] += ss[i][j]*rll[j];
 
  842       p_i += ri.
cross(opl_v);
 
G4double G4ParticleHPJENDLHEData::G4double result
 
static G4Pow * GetInstance()
 
G4double GetRHA(G4int i, G4int j)
 
G4double powA(G4double A, G4double y) const 
 
void SetParticipant(G4QMDParticipant *particle)
 
CLHEP::Hep3Vector G4ThreeVector
 
G4ThreeVector GetFFr(G4int i)
 
void Cal2BodyQuantities()
 
double diff2(const Hep3Vector &v) const 
 
G4GLOB_DLL std::ostream G4cout
 
static G4QMDParameters * GetInstance()
 
static G4Proton * Proton()
 
static G4Neutron * Neutron()
 
G4double GetTotalPotential()
 
std::vector< G4QMDParticipant * > participants
 
G4double G4Exp(G4double initial_x)
Exponential Function double precision. 
 
G4double GetRHE(G4int i, G4int j)
 
G4double A13(G4double A) const 
 
static G4double GetBindingEnergy(const G4int A, const G4int Z)
 
G4double GetRR2(G4int i, G4int j)
 
void SetSystem(G4QMDSystem *aSystem)
 
G4ThreeVector GetFFp(G4int i)
 
static constexpr double pi
 
Hep3Vector cross(const Hep3Vector &) const 
 
G4QMDGroundStateNucleus()