#include <G4QMDGroundStateNucleus.hh>
Inheritance diagram for G4QMDGroundStateNucleus:
Public Member Functions | |
G4QMDGroundStateNucleus () | |
G4QMDGroundStateNucleus (G4int z, G4int a) | |
~G4QMDGroundStateNucleus () |
Definition at line 45 of file G4QMDGroundStateNucleus.hh.
G4QMDGroundStateNucleus::G4QMDGroundStateNucleus | ( | ) |
Definition at line 38 of file G4QMDGroundStateNucleus.cc.
References G4QMDParameters::Get_c0p(), G4QMDParameters::Get_c3p(), G4QMDParameters::Get_cdp(), G4QMDParameters::Get_clp(), G4QMDParameters::Get_cpc(), G4QMDParameters::Get_cph(), G4QMDParameters::Get_cpw(), G4QMDParameters::Get_csp(), G4QMDParameters::Get_epsx(), G4QMDParameters::Get_gamm(), G4QMDParameters::Get_hbc(), G4QMDParameters::GetInstance(), G4QMDNucleus::GetMassNumber(), G4Neutron::Neutron(), G4Proton::Proton(), G4QMDSystem::SetParticipant(), and G4QMDMeanField::SetSystem().
00039 : r00 ( 1.124 ) // radius parameter for Woods-Saxon [fm] 00040 , r01 ( 0.5 ) // radius parameter for Woods-Saxon 00041 , saa ( 0.2 ) // diffuse parameter for initial Woods-Saxon shape 00042 , rada ( 0.9 ) // cutoff parameter 00043 , radb ( 0.3 ) // cutoff parameter 00044 , dsam ( 1.5 ) // minimum distance for same particle [fm] 00045 , ddif ( 1.0 ) // minimum distance for different particle 00046 , epse ( 0.000001 ) // torelance for energy in [GeV] 00047 { 00048 00049 //std::cout << " G4QMDGroundStateNucleus( G4int z , G4int a ) Begin " << z << " " << a << std::endl; 00050 00051 if ( z == 1 && a == 1 ) // Hydrogen Case or proton primary 00052 { 00053 SetParticipant( new G4QMDParticipant( G4Proton::Proton() , G4ThreeVector( 0.0 ) , G4ThreeVector( 0.0 ) ) ); 00054 return; 00055 } 00056 else if ( z == 0 && a == 1 ) // Neutron primary 00057 { 00058 SetParticipant( new G4QMDParticipant( G4Neutron::Neutron() , G4ThreeVector( 0.0 ) , G4ThreeVector( 0.0 ) ) ); 00059 return; 00060 } 00061 00062 dsam2 = dsam*dsam; 00063 ddif2 = ddif*ddif; 00064 00065 G4QMDParameters* parameters = G4QMDParameters::GetInstance(); 00066 00067 hbc = parameters->Get_hbc(); 00068 gamm = parameters->Get_gamm(); 00069 cpw = parameters->Get_cpw(); 00070 cph = parameters->Get_cph(); 00071 epsx = parameters->Get_epsx(); 00072 cpc = parameters->Get_cpc(); 00073 00074 cdp = parameters->Get_cdp(); 00075 c0p = parameters->Get_c0p(); 00076 c3p = parameters->Get_c3p(); 00077 csp = parameters->Get_csp(); 00078 clp = parameters->Get_clp(); 00079 00080 edepth = 0.0; 00081 00082 for ( int i = 0 ; i < a ; i++ ) 00083 { 00084 00085 G4ParticleDefinition* pd; 00086 00087 if ( i < z ) 00088 { 00089 pd = G4Proton::Proton(); 00090 } 00091 else 00092 { 00093 pd = G4Neutron::Neutron(); 00094 } 00095 00096 G4ThreeVector p( 0.0 ); 00097 G4ThreeVector r( 0.0 ); 00098 G4QMDParticipant* aParticipant = new G4QMDParticipant( pd , p , r ); 00099 SetParticipant( aParticipant ); 00100 00101 } 00102 00103 G4double radious = r00 * std::pow ( double ( GetMassNumber() ) , 1.0/3.0 ); 00104 00105 rt00 = radious - r01; 00106 radm = radious - rada * ( gamm - 1.0 ) + radb; 00107 rmax = 1.0 / ( 1.0 + std::exp ( -rt00/saa ) ); 00108 00109 maxTrial = 1000; 00110 meanfield = new G4QMDMeanField(); 00111 meanfield->SetSystem( this ); 00112 00113 //std::cout << "G4QMDGroundStateNucleus( G4int z , G4int a ) packNucleons Begin ( z , a ) ( " << z << ", " << a << " )" << std::endl; 00114 packNucleons(); 00115 //std::cout << "G4QMDGroundStateNucleus( G4int z , G4int a ) packNucleons End" << std::endl; 00116 00117 delete meanfield; 00118 00119 }
G4QMDGroundStateNucleus::~G4QMDGroundStateNucleus | ( | ) | [inline] |