Changeset 962 for trunk/source/processes/hadronic/models/pre_equilibrium/exciton_model/src/G4PreCompoundNucleon.cc
- Timestamp:
- Apr 6, 2009, 12:30:29 PM (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/source/processes/hadronic/models/pre_equilibrium/exciton_model/src/G4PreCompoundNucleon.cc
r819 r962 24 24 // ******************************************************************** 25 25 // 26 // by V. Lara 26 // 27 // $Id: G4PreCompoundNucleon.cc,v 1.13 2009/02/11 18:06:00 vnivanch Exp $ 28 // GEANT4 tag $Name: geant4-09-02-ref-02 $ 29 // 30 // ------------------------------------------------------------------- 31 // 32 // GEANT4 Class file 33 // 34 // 35 // File name: G4PreCompoundNucleon 36 // 37 // Author: V.Lara 38 // 39 // Modified: 40 // 10.02.2009 J. M. Quesada cleanup 41 // 27 42 28 43 #include "G4PreCompoundNucleon.hh" 29 44 #include "G4PreCompoundParameters.hh" 30 45 46 G4bool G4PreCompoundNucleon::IsItPossible(const G4Fragment& aFragment) 47 { 48 G4int pplus = aFragment.GetNumberOfCharged(); 49 G4int pneut = aFragment.GetNumberOfParticles()-pplus; 50 return (pneut >= (GetA()-GetZ()) && pplus >= GetZ()); 51 } 31 52 32 53 G4double G4PreCompoundNucleon:: … … 36 57 if ( !IsItPossible(aFragment) ) return 0.0; 37 58 38 const G4double r0 = G4PreCompoundParameters::GetAddress()->Getr0();39 40 59 G4double U = aFragment.GetExcitationEnergy(); 41 60 G4double P = aFragment.GetNumberOfParticles(); … … 43 62 G4double N = P + H; 44 63 45 // g = (6.0/pi2)*a*A46 // G4EvaporationLevelDensityParameter theLDP;47 64 G4double g0 = (6.0/pi2)*aFragment.GetA() * 48 65 G4PreCompoundParameters::GetAddress()->GetLevelDensity(); 49 // theLDP.LevelDensityParameter(static_cast<G4int>(aFragment.GetA()),static_cast<G4int>(aFragment.GetZ()),U);66 50 67 G4double g1 = (6.0/pi2)*GetRestA() * 51 68 G4PreCompoundParameters::GetAddress()->GetLevelDensity(); 52 // theLDP.LevelDensityParameter(static_cast<G4int>(GetRestA()),static_cast<G4int>(GetRestZ()),U);53 69 54 70 G4double A0 = ((P*P+H*H+P-H)/4.0 - H/2.0)/g0; 55 G4double A1 = (A0*g0 - P/2.0)/g1; 71 72 G4double A1 = (A0 - P/2.0)/g1; 56 73 57 74 G4double E0 = std::max(0.0,U - A0); … … 61 78 62 79 63 G4double Probability = 2.0/(hbarc*hbarc*hbarc) * GetReducedMass() * 64 GetRj(aFragment.GetNumberOfParticles(), aFragment.GetNumberOfCharged()) * r0 * r0 * std::pow(GetRestA(),2.0/3.0) * GetAlpha() * (eKin + GetBeta()) * 65 P*(N-1.0) * std::pow(g1*E1/(g0*E0),N-2.0)/E0 * 66 g1/(g0*g0); 80 G4double Probability = 1.0/pi2*2.0/(hbarc*hbarc*hbarc) * GetReducedMass() 81 * GetRj(aFragment.GetNumberOfParticles(), aFragment.GetNumberOfCharged()) 82 * eKin*CrossSection(eKin)*millibarn * P*(N-1.0) * std::pow(g1*E1/(g0*E0),N-2.0)/E0 * g1/(g0*g0); 83 84 if (GetRj(aFragment.GetNumberOfParticles(), aFragment.GetNumberOfCharged())<0.0 85 || CrossSection(eKin) <0) { 86 std::ostringstream errOs; 87 G4cout<<"WARNING: NEGATIVE VALUES "<<G4endl; 88 errOs << "Rj=" << GetRj(aFragment.GetNumberOfParticles(), aFragment.GetNumberOfCharged()) 89 <<G4endl; 90 errOs <<" xsec("<<eKin<<" MeV) ="<<CrossSection(eKin)<<G4endl; 91 errOs <<" A="<<GetA()<<" Z="<<GetZ()<<G4endl; 92 throw G4HadronicException(__FILE__, __LINE__, errOs.str()); 93 } 67 94 68 95 return Probability; 69 96 } 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112
Note: See TracChangeset
for help on using the changeset viewer.