Geant4.10
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Member Functions
G4QMDGroundStateNucleus Class Reference

#include <G4QMDGroundStateNucleus.hh>

Inheritance diagram for G4QMDGroundStateNucleus:
G4QMDNucleus G4QMDSystem

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::G4QMDGroundStateNucleus ( )
G4QMDGroundStateNucleus::G4QMDGroundStateNucleus ( G4int  z,
G4int  a 
)

Definition at line 38 of file G4QMDGroundStateNucleus.cc.

References test::a, 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().

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  //edepth = 0.0;
73 
74  for ( int i = 0 ; i < a ; i++ )
75  {
76 
78 
79  if ( i < z )
80  {
81  pd = G4Proton::Proton();
82  }
83  else
84  {
85  pd = G4Neutron::Neutron();
86  }
87 
88  G4ThreeVector p( 0.0 );
89  G4ThreeVector r( 0.0 );
90  G4QMDParticipant* aParticipant = new G4QMDParticipant( pd , p , r );
91  SetParticipant( aParticipant );
92 
93  }
94 
95  G4double radious = r00 * std::pow ( double ( GetMassNumber() ) , 1.0/3.0 );
96 
97  rt00 = radious - r01;
98  radm = radious - rada * ( gamm - 1.0 ) + radb;
99  rmax = 1.0 / ( 1.0 + std::exp ( -rt00/saa ) );
100 
101  //maxTrial = 1000;
102 
103  //Nucleon primary or target case;
104  if ( z == 1 && a == 1 ) { // Hydrogen Case or proton primary
106  return;
107  }
108  else if ( z == 0 && a == 1 ) { // Neutron primary
110  return;
111  }
112 
113 
114  meanfield = new G4QMDMeanField();
115  meanfield->SetSystem( this );
116 
117  //std::cout << "G4QMDGroundStateNucleus( G4int z , G4int a ) packNucleons Begin ( z , a ) ( " << z << ", " << a << " )" << std::endl;
118  packNucleons();
119  //std::cout << "G4QMDGroundStateNucleus( G4int z , G4int a ) packNucleons End" << std::endl;
120 
121  delete meanfield;
122 
123 }
G4int GetMassNumber()
Definition: G4QMDNucleus.cc:66
void SetParticipant(G4QMDParticipant *particle)
Definition: G4QMDSystem.hh:51
CLHEP::Hep3Vector G4ThreeVector
G4double Get_hbc()
G4double z
Definition: TRTMaterials.hh:39
const char * p
Definition: xmltok.h:285
G4double Get_c0p()
G4double Get_cpc()
static G4QMDParameters * GetInstance()
G4double Get_csp()
G4double Get_cdp()
static G4Proton * Proton()
Definition: G4Proton.cc:93
G4double Get_epsx()
static G4Neutron * Neutron()
Definition: G4Neutron.cc:104
G4double Get_gamm()
G4double Get_clp()
void SetSystem(G4QMDSystem *aSystem)
G4double Get_c3p()
G4double Get_cpw()
G4double Get_cph()
double G4double
Definition: G4Types.hh:76
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: