Geant4 11.2.2
Toolkit for the simulation of the passage of particles through matter
Loading...
Searching...
No Matches
G4QMDGroundStateNucleus Class Reference

#include <G4QMDGroundStateNucleus.hh>

+ Inheritance diagram for G4QMDGroundStateNucleus:

Public Member Functions

 G4QMDGroundStateNucleus ()
 
 G4QMDGroundStateNucleus (G4int z, G4int a)
 
 ~G4QMDGroundStateNucleus ()
 
- Public Member Functions inherited from G4QMDNucleus
 G4QMDNucleus ()
 
G4LorentzVector Get4Momentum ()
 
G4int GetMassNumber ()
 
G4int GetAtomicNumber ()
 
void CalEnergyAndAngularMomentumInCM ()
 
G4double GetNuclearMass ()
 
void SetTotalPotential (G4double x)
 
G4double GetExcitationEnergy ()
 
G4int GetAngularMomentum ()
 
- Public Member Functions inherited from G4QMDSystem
 G4QMDSystem ()
 
virtual ~G4QMDSystem ()
 
void SetParticipant (G4QMDParticipant *particle)
 
void SetSystem (G4QMDSystem *, G4ThreeVector, G4ThreeVector)
 
void SubtractSystem (G4QMDSystem *)
 
G4QMDParticipantEraseParticipant (G4int i)
 
void DeleteParticipant (G4int i)
 
void InsertParticipant (G4QMDParticipant *particle, G4int j)
 
G4int GetTotalNumberOfParticipant ()
 
G4QMDParticipantGetParticipant (G4int i)
 
void IncrementCollisionCounter ()
 
G4int GetNOCollision ()
 
void ShowParticipants ()
 
void Clear ()
 

Additional Inherited Members

- Protected Attributes inherited from G4QMDSystem
std::vector< G4QMDParticipant * > participants
 

Detailed Description

Definition at line 45 of file G4QMDGroundStateNucleus.hh.

Constructor & Destructor Documentation

◆ G4QMDGroundStateNucleus() [1/2]

G4QMDGroundStateNucleus::G4QMDGroundStateNucleus ( )

◆ G4QMDGroundStateNucleus() [2/2]

G4QMDGroundStateNucleus::G4QMDGroundStateNucleus ( G4int z,
G4int a )

Definition at line 38 of file G4QMDGroundStateNucleus.cc.

39: maxTrial ( 1000 )
40, r00 ( 1.124 ) // radius parameter for Woods-Saxon [fm]
41, r01 ( 0.5 ) // radius parameter for Woods-Saxon
42, saa ( 0.2 ) // diffuse parameter for initial Woods-Saxon shape
43, rada ( 0.9 ) // cutoff parameter
44, radb ( 0.3 ) // cutoff parameter
45, dsam ( 1.5 ) // minimum distance for same particle [fm]
46, ddif ( 1.0 ) // minimum distance for different particle
47, edepth ( 0.0 )
48, epse ( 0.000001 ) // torelance for energy in [GeV]
49, meanfield ( NULL )
50{
51
52 //std::cout << " G4QMDGroundStateNucleus( G4int z , G4int a ) Begin " << z << " " << a << std::endl;
53
54 dsam2 = dsam*dsam;
55 ddif2 = ddif*ddif;
56
58
59 hbc = parameters->Get_hbc();
60 gamm = parameters->Get_gamm();
61 cpw = parameters->Get_cpw();
62 cph = parameters->Get_cph();
63 epsx = parameters->Get_epsx();
64 cpc = parameters->Get_cpc();
65
66 cdp = parameters->Get_cdp();
67 c0p = parameters->Get_c0p();
68 c3p = parameters->Get_c3p();
69 csp = parameters->Get_csp();
70 clp = parameters->Get_clp();
71
72 ebini = 0.0;
73 // Following 10 lines should be here, right before the line 90.
74 // Otherwise, mass number cannot be conserved if the projectile or
75 // the target are nucleons.
76 //Nucleon primary or target case;
77 if ( z == 1 && a == 1 ) { // Hydrogen Case or proton primary
79// ebini = 0.0;
80 return;
81 }
82 else if ( z == 0 && a == 1 ) { // Neutron primary
84// ebini = 0.0;
85 return;
86 }
87
88
89 //edepth = 0.0;
90
91 for ( int i = 0 ; i < a ; i++ )
92 {
93
95
96 if ( i < z )
97 {
98 pd = G4Proton::Proton();
99 }
100 else
101 {
102 pd = G4Neutron::Neutron();
103 }
104
105 G4ThreeVector p( 0.0 );
106 G4ThreeVector r( 0.0 );
107 G4QMDParticipant* aParticipant = new G4QMDParticipant( pd , p , r );
108 SetParticipant( aParticipant );
109
110 }
111
112 G4double radious = r00 * G4Pow::GetInstance()->A13( double ( GetMassNumber() ) );
113
114 rt00 = radious - r01;
115 radm = radious - rada * ( gamm - 1.0 ) + radb;
116 rmax = 1.0 / ( 1.0 + G4Exp ( -rt00/saa ) );
117
118 //maxTrial = 1000;
119
120
121 meanfield = new G4QMDMeanField();
122 meanfield->SetSystem( this );
123
124 //std::cout << "G4QMDGroundStateNucleus( G4int z , G4int a ) packNucleons Begin ( z , a ) ( " << z << ", " << a << " )" << std::endl;
125 packNucleons();
126 //std::cout << "G4QMDGroundStateNucleus( G4int z , G4int a ) packNucleons End" << std::endl;
127
128 delete meanfield;
129
130}
G4double G4Exp(G4double initial_x)
Exponential Function double precision.
Definition G4Exp.hh:180
CLHEP::Hep3Vector G4ThreeVector
double G4double
Definition G4Types.hh:83
static G4Neutron * Neutron()
Definition G4Neutron.cc:101
static G4Pow * GetInstance()
Definition G4Pow.cc:41
G4double A13(G4double A) const
Definition G4Pow.cc:116
static G4Proton * Proton()
Definition G4Proton.cc:90
void SetSystem(G4QMDSystem *aSystem)
G4int GetMassNumber()
static G4QMDParameters * GetInstance()
void SetParticipant(G4QMDParticipant *particle)

◆ ~G4QMDGroundStateNucleus()

G4QMDGroundStateNucleus::~G4QMDGroundStateNucleus ( )
inline

Definition at line 50 of file G4QMDGroundStateNucleus.hh.

51 {
52 rho_l.clear();
53 d_pot.clear();
54 };

The documentation for this class was generated from the following files: