Changeset 1347 for trunk/source/processes/hadronic/models/de_excitation/fission/src/G4FissionProbability.cc
- Timestamp:
- Dec 22, 2010, 3:52:27 PM (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/source/processes/hadronic/models/de_excitation/fission/src/G4FissionProbability.cc
r1340 r1347 25 25 // 26 26 // 27 // $Id: G4FissionProbability.cc,v 1. 9 2009/02/15 17:03:25vnivanch Exp $28 // GEANT4 tag $Name: geant4-09-0 3-ref-09$27 // $Id: G4FissionProbability.cc,v 1.10 2010/11/17 20:22:46 vnivanch Exp $ 28 // GEANT4 tag $Name: geant4-09-04-ref-00 $ 29 29 // 30 30 // Hadronic Process: Nuclear De-excitations … … 38 38 #include "G4PairingCorrection.hh" 39 39 40 G4FissionProbability::G4FissionProbability() 41 {} 42 43 G4FissionProbability::~G4FissionProbability() 44 {} 40 45 41 46 42 G4FissionProbability::G4FissionProbability(const G4FissionProbability &) : G4VEmissionProbability() 47 G4double 48 G4FissionProbability::EmissionProbability(const G4Fragment & fragment, 49 G4double MaximalKineticEnergy) 50 // Compute integrated probability of fission channel 43 51 { 44 throw G4HadronicException(__FILE__, __LINE__, "G4FissionProbability::copy_constructor meant to not be accessable"); 52 if (MaximalKineticEnergy <= 0.0) return 0.0; 53 G4int A = fragment.GetA_asInt(); 54 G4int Z = fragment.GetZ_asInt(); 55 G4double U = fragment.GetExcitationEnergy(); 56 57 G4double Ucompound = U - 58 G4PairingCorrection::GetInstance()->GetPairingCorrection(A,Z); 59 60 G4double Ufission = U - 61 G4PairingCorrection::GetInstance()->GetFissionPairingCorrection(A,Z); 62 63 G4double SystemEntropy = 64 2.0*std::sqrt(theEvapLDP.LevelDensityParameter(A,Z,Ucompound)*Ucompound); 65 66 G4double afission = theFissLDP.LevelDensityParameter(A,Z,Ufission); 67 68 G4double Cf = 2.0*std::sqrt(afission*MaximalKineticEnergy); 69 70 // G4double Q1 = 1.0 + (Cf - 1.0)*std::exp(Cf); 71 // G4double Q2 = 4.0*pi*afission*std::exp(SystemEntropy); 72 73 // G4double probability = Q1/Q2; 74 75 G4double Exp1 = 0.0; 76 if (SystemEntropy <= 160.0) { Exp1 = std::exp(-SystemEntropy); } 77 // @@@@@@@@@@@@@@@@@ hpw changed max to min - cannot notify vicente now 78 G4double Exp2 = std::exp( std::min(700.0,Cf-SystemEntropy) ); 79 80 // JMQ 14/02/09 BUG fixed in fission probability (missing parenthesis 81 // at denominator) 82 //AH fix from Vincente: G4double probability = 83 // (Exp1 + (1.0-Cf)*Exp2) / 4.0*pi*afission; 84 // G4double probability = (Exp1 + (Cf-1.0)*Exp2) / 4.0*pi*afission; 85 G4double probability = (Exp1 + (Cf-1.0)*Exp2) / (4.0*pi*afission); 86 87 return probability; 45 88 } 46 89 47 48 49 50 const G4FissionProbability & G4FissionProbability::operator=(const G4FissionProbability &)51 {52 throw G4HadronicException(__FILE__, __LINE__, "G4FissionProbability::operator= meant to not be accessable");53 return *this;54 }55 56 57 G4bool G4FissionProbability::operator==(const G4FissionProbability &) const58 {59 return false;60 }61 62 G4bool G4FissionProbability::operator!=(const G4FissionProbability &) const63 {64 return true;65 }66 67 68 G4double G4FissionProbability::EmissionProbability(const G4Fragment & fragment, const G4double MaximalKineticEnergy)69 // Compute integrated probability of fission channel70 {71 if (MaximalKineticEnergy <= 0.0) return 0.0;72 G4double A = fragment.GetA();73 G4double Z = fragment.GetZ();74 G4double U = fragment.GetExcitationEnergy();75 76 G4double Ucompound = U - G4PairingCorrection::GetInstance()->GetPairingCorrection(static_cast<G4int>(A),77 static_cast<G4int>(Z));78 G4double Ufission = U - G4PairingCorrection::GetInstance()->GetFissionPairingCorrection(static_cast<G4int>(A),79 static_cast<G4int>(Z));80 81 G4double SystemEntropy = 2.0*std::sqrt(theEvapLDP.LevelDensityParameter(static_cast<G4int>(A),82 static_cast<G4int>(Z),83 Ucompound)*Ucompound);84 85 G4double afission = theFissLDP.LevelDensityParameter(static_cast<G4int>(A),86 static_cast<G4int>(Z),87 Ufission);88 89 G4double Cf = 2.0*std::sqrt(afission*MaximalKineticEnergy);90 91 // G4double Q1 = 1.0 + (Cf - 1.0)*std::exp(Cf);92 // G4double Q2 = 4.0*pi*afission*std::exp(SystemEntropy);93 94 // G4double probability = Q1/Q2;95 96 97 G4double Exp1 = 0.0;98 if (SystemEntropy <= 160.0) Exp1 = std::exp(-SystemEntropy);99 // @@@@@@@@@@@@@@@@@ hpw changed max to min - cannot notify vicente now100 G4double Exp2 = std::exp( std::min(700.0,Cf-SystemEntropy) );101 102 // JMQ 14/02/09 BUG fixed in fission probability (missing parenthesis at denominator)103 //AH fix from Vincente: G4double probability = (Exp1 + (1.0-Cf)*Exp2) / 4.0*pi*afission;104 // G4double probability = (Exp1 + (Cf-1.0)*Exp2) / 4.0*pi*afission;105 G4double probability = (Exp1 + (Cf-1.0)*Exp2) / (4.0*pi*afission);106 107 108 109 return probability;110 }111
Note: See TracChangeset
for help on using the changeset viewer.