Geant4 11.1.1
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 // Following 10 lines should be here, right before the line 90.
73 // Otherwise, mass number cannot be conserved if the projectile or
74 // the target are nucleons.
75 //Nucleon primary or target case;
76 if ( z == 1 && a == 1 ) { // Hydrogen Case or proton primary
78 ebini = 0.0;
79 return;
80 }
81 else if ( z == 0 && a == 1 ) { // Neutron primary
83 ebini = 0.0;
84 return;
85 }
86
87
88 //edepth = 0.0;
89
90 for ( int i = 0 ; i < a ; i++ )
91 {
92
94
95 if ( i < z )
96 {
97 pd = G4Proton::Proton();
98 }
99 else
100 {
101 pd = G4Neutron::Neutron();
102 }
103
104 G4ThreeVector p( 0.0 );
105 G4ThreeVector r( 0.0 );
106 G4QMDParticipant* aParticipant = new G4QMDParticipant( pd , p , r );
107 SetParticipant( aParticipant );
108
109 }
110
111 G4double radious = r00 * G4Pow::GetInstance()->A13( double ( GetMassNumber() ) );
112
113 rt00 = radious - r01;
114 radm = radious - rada * ( gamm - 1.0 ) + radb;
115 rmax = 1.0 / ( 1.0 + G4Exp ( -rt00/saa ) );
116
117 //maxTrial = 1000;
118
119
120 meanfield = new G4QMDMeanField();
121 meanfield->SetSystem( this );
122
123 //std::cout << "G4QMDGroundStateNucleus( G4int z , G4int a ) packNucleons Begin ( z , a ) ( " << z << ", " << a << " )" << std::endl;
124 packNucleons();
125 //std::cout << "G4QMDGroundStateNucleus( G4int z , G4int a ) packNucleons End" << std::endl;
126
127 delete meanfield;
128
129}
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:103
static G4Pow * GetInstance()
Definition: G4Pow.cc:41
G4double A13(G4double A) const
Definition: G4Pow.cc:116
static G4Proton * Proton()
Definition: G4Proton.cc:92
void SetSystem(G4QMDSystem *aSystem)
G4int GetMassNumber()
Definition: G4QMDNucleus.cc:68
G4double Get_clp()
G4double Get_cpc()
G4double Get_cdp()
G4double Get_epsx()
static G4QMDParameters * GetInstance()
G4double Get_hbc()
G4double Get_c0p()
G4double Get_gamm()
G4double Get_cpw()
G4double Get_c3p()
G4double Get_cph()
G4double Get_csp()
void SetParticipant(G4QMDParticipant *particle)
Definition: G4QMDSystem.hh:52

◆ ~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: