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

#include <G4LightIonQMDGroundStateNucleus.hh>

+ Inheritance diagram for G4LightIonQMDGroundStateNucleus:

Public Member Functions

 G4LightIonQMDGroundStateNucleus ()
 
 G4LightIonQMDGroundStateNucleus (G4int z, G4int a)
 
 ~G4LightIonQMDGroundStateNucleus ()
 
- Public Member Functions inherited from G4LightIonQMDNucleus
 G4LightIonQMDNucleus ()
 
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 47 of file G4LightIonQMDGroundStateNucleus.hh.

Constructor & Destructor Documentation

◆ G4LightIonQMDGroundStateNucleus() [1/2]

G4LightIonQMDGroundStateNucleus::G4LightIonQMDGroundStateNucleus ( )

◆ G4LightIonQMDGroundStateNucleus() [2/2]

G4LightIonQMDGroundStateNucleus::G4LightIonQMDGroundStateNucleus ( G4int z,
G4int a )

Definition at line 43 of file G4LightIonQMDGroundStateNucleus.cc.

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

◆ ~G4LightIonQMDGroundStateNucleus()

G4LightIonQMDGroundStateNucleus::~G4LightIonQMDGroundStateNucleus ( )
inline

Definition at line 52 of file G4LightIonQMDGroundStateNucleus.hh.

53 {
54 rho_l.clear();
55 d_pot.clear();
56 };

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