Geant4  10.03.p03
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
G4QMDGroundStateNucleus Class Reference

#include <G4QMDGroundStateNucleus.hh>

Inheritance diagram for G4QMDGroundStateNucleus:
Collaboration 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::G4QMDGroundStateNucleus ( )
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  //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 * G4Pow::GetInstance()->A13( double ( GetMassNumber() ) );
96 
97  rt00 = radious - r01;
98  radm = radious - rada * ( gamm - 1.0 ) + radb;
99  rmax = 1.0 / ( 1.0 + G4Exp ( -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  ebini = 0.0;
107  return;
108  }
109  else if ( z == 0 && a == 1 ) { // Neutron primary
111  ebini = 0.0;
112  return;
113  }
114 
115 
116  meanfield = new G4QMDMeanField();
117  meanfield->SetSystem( this );
118 
119  //std::cout << "G4QMDGroundStateNucleus( G4int z , G4int a ) packNucleons Begin ( z , a ) ( " << z << ", " << a << " )" << std::endl;
120  packNucleons();
121  //std::cout << "G4QMDGroundStateNucleus( G4int z , G4int a ) packNucleons End" << std::endl;
122 
123  delete meanfield;
124 
125 }
static G4Pow * GetInstance()
Definition: G4Pow.cc:55
G4int GetMassNumber()
Definition: G4QMDNucleus.cc:68
void SetParticipant(G4QMDParticipant *particle)
Definition: G4QMDSystem.hh:51
CLHEP::Hep3Vector G4ThreeVector
std::vector< ExP01TrackerHit * > a
Definition: ExP01Classes.hh:33
G4double Get_hbc()
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 G4Exp(G4double initial_x)
Exponential Function double precision.
Definition: G4Exp.hh:183
G4double A13(G4double A) const
Definition: G4Pow.hh:132
G4double Get_clp()
void SetSystem(G4QMDSystem *aSystem)
G4double Get_c3p()
tuple z
Definition: test.py:28
G4double Get_cpw()
G4double Get_cph()
double G4double
Definition: G4Types.hh:76

Here is the call graph for this function:

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: