Geant4 Cross Reference |
1 // 1 2 // ******************************************* 3 // * License and Disclaimer 4 // * 5 // * The Geant4 software is copyright of th 6 // * the Geant4 Collaboration. It is provided 7 // * conditions of the Geant4 Software License 8 // * LICENSE and available at http://cern.ch/ 9 // * include a list of copyright holders. 10 // * 11 // * Neither the authors of this software syst 12 // * institutes,nor the agencies providing fin 13 // * work make any representation or warran 14 // * regarding this software system or assum 15 // * use. Please see the license in the file 16 // * for the full disclaimer and the limitatio 17 // * 18 // * This code implementation is the result 19 // * technical work of the GEANT4 collaboratio 20 // * By using, copying, modifying or distri 21 // * any work based on the software) you ag 22 // * use in resulting scientific publicati 23 // * acceptance of all terms of the Geant4 Sof 24 // ******************************************* 25 // 26 // 27 // 28 // Hadronic Process: Nuclear De-excitations 29 // by V. Lara 30 // 31 // Modified: 32 // 25.07.08 I.Pshenichnov (in collaboration wi 33 // Mishustin (FIAS, Frankfurt, INR, M 34 // Moscow, pshenich@fias.uni-frankfur 35 // symmetry energy 36 37 #include "G4StatMFMacroMultiNucleon.hh" 38 #include "G4PhysicalConstants.hh" 39 #include "G4SystemOfUnits.hh" 40 #include "G4Log.hh" 41 #include "G4Exp.hh" 42 #include "G4Pow.hh" 43 44 // Default constructor 45 G4StatMFMacroMultiNucleon:: 46 G4StatMFMacroMultiNucleon() : 47 G4VStatMFMacroCluster(0) // Beacuse the d 48 { 49 throw G4HadronicException(__FILE__, __LINE 50 } 51 52 // Copy constructor 53 G4StatMFMacroMultiNucleon:: 54 G4StatMFMacroMultiNucleon(const G4StatMFMacroM 55 G4VStatMFMacroCluster(0) // Beacuse the d 56 { 57 throw G4HadronicException(__FILE__, __LINE 58 } 59 60 // Operators 61 62 G4StatMFMacroMultiNucleon & G4StatMFMacroMulti 63 operator=(const G4StatMFMacroMultiNucleon & ) 64 { 65 throw G4HadronicException(__FILE__, __LINE 66 return *this; 67 } 68 69 G4bool G4StatMFMacroMultiNucleon::operator==(c 70 { 71 throw G4HadronicException(__FILE__, __LINE 72 return false; 73 } 74 75 G4bool G4StatMFMacroMultiNucleon::operator!=(c 76 { 77 throw G4HadronicException(__FILE__, __LINE 78 return true; 79 } 80 81 G4double G4StatMFMacroMultiNucleon::CalcMeanMu 82 const G4double mu, 83 const G4double nu, 84 const G4double T) 85 { 86 G4double ThermalWaveLenght = 16.15*fermi/std 87 G4double lambda3 = ThermalWaveLenght*Thermal 88 G4Pow* g4calc = G4Pow::GetInstance(); 89 G4double A23 = g4calc->Z23(theA); 90 91 G4double exponent = (mu + nu*theZARatio+ G4S 92 + T*T/_InvLevelDensity 93 - G4StatMFParameters::GetGamma0()*( 94 (1.0 - 2.0*theZARatio))*theA 95 - G4StatMFParameters::Beta(T)*A23 96 - G4StatMFParameters::GetCoulomb()*theZARa 97 98 exponent /= T; 99 100 if (exponent > 30.0) exponent = 30.0; 101 102 _MeanMultiplicity = std::max((FreeVol * theA 103 G4Exp(exponent),1.0e-30); 104 return _MeanMultiplicity; 105 } 106 107 G4double G4StatMFMacroMultiNucleon::CalcZARati 108 { 109 G4double den = 8*G4StatMFParameters::GetGamm 110 + 2*G4StatMFParameters::GetCoulomb()*G4Pow 111 theZARatio = (4.0*G4StatMFParameters::GetGam 112 return theZARatio; 113 } 114 115 G4double G4StatMFMacroMultiNucleon::CalcEnergy 116 { 117 G4Pow* g4calc = G4Pow::GetInstance(); 118 G4double A23 = g4calc->Z23(theA); 119 120 // Volume term 121 G4double EVol = theA * (T*T/_InvLevelDensity 122 123 // Symmetry term 124 G4double ESym = theA * G4StatMFParameters::G 125 *(1. - 2.* theZARatio) * (1. - 2.* theZARa 126 127 // Surface term 128 G4double ESurf = A23*(G4StatMFParameters::Be 129 130 // Coulomb term 131 G4double ECoul = G4StatMFParameters::GetCoul 132 133 // Translational term 134 G4double ETrans = 1.5*T; 135 return _Energy = EVol + ESurf + ECoul + ETra 136 } 137 138 G4double G4StatMFMacroMultiNucleon::CalcEntrop 139 const G4double FreeVol) 140 { 141 G4double Entropy = 0.0; 142 if (_MeanMultiplicity > 0.0) { 143 144 G4double ThermalWaveLenght = 16.15*fermi/s 145 G4double lambda3 = ThermalWaveLenght*Therm 146 // Volume term 147 G4double SV = 2.0*theA*T/_InvLevelDensity; 148 149 // Surface term 150 G4double SS = -G4StatMFParameters::DBetaDT 151 152 // Translational term 153 G4double ST = 2.5 + G4Log(FreeVol * std::s 154 /(lambda3*_MeanMultiplicity)); 155 156 Entropy = _MeanMultiplicity*(SV + SS + ST) 157 } 158 return Entropy; 159 } 160