Changeset 1055 for trunk/source/processes/hadronic/models/pre_equilibrium/exciton_model/src/G4PreCompoundDeuteron.cc
- Timestamp:
- May 28, 2009, 4:26:57 PM (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/source/processes/hadronic/models/pre_equilibrium/exciton_model/src/G4PreCompoundDeuteron.cc
r1007 r1055 24 24 // ******************************************************************** 25 25 // 26 //J.M.Quesada (August 08). New source file 27 // 28 // Modif (21 August 2008) by J. M. Quesada for external choice of inverse 29 // cross section option 26 // $Id: G4PreCompoundDeuteron.cc,v 1.5 2009/02/13 18:57:32 vnivanch Exp $ 27 // GEANT4 tag $Name: geant4-09-03-beta-cand-01 $ 28 // 29 // ------------------------------------------------------------------- 30 // 31 // GEANT4 Class file 32 // 33 // 34 // File name: G4PreCompoundDeuteron 35 // 36 // Author: V.Lara 37 // 38 // Modified: 39 // 21.08.2008 J. M. Quesada add choice of options 40 // 10.02.2009 J. M. Quesada set default opt1 41 // 30 42 31 43 #include "G4PreCompoundDeuteron.hh" 32 44 33 34 35 G4ReactionProduct * G4PreCompoundDeuteron::GetReactionProduct() const 36 { 37 G4ReactionProduct * theReactionProduct = 38 new G4ReactionProduct(G4Deuteron::DeuteronDefinition()); 39 theReactionProduct->SetMomentum(GetMomentum().vect()); 40 theReactionProduct->SetTotalEnergy(GetMomentum().e()); 45 G4ReactionProduct * G4PreCompoundDeuteron::GetReactionProduct() const 46 { 47 G4ReactionProduct * theReactionProduct = 48 new G4ReactionProduct(G4Deuteron::DeuteronDefinition()); 49 theReactionProduct->SetMomentum(GetMomentum().vect()); 50 theReactionProduct->SetTotalEnergy(GetMomentum().e()); 41 51 #ifdef PRECOMPOUND_TEST 42 52 theReactionProduct->SetCreatorModel("G4PrecompoundModel"); 43 53 #endif 44 return theReactionProduct; 45 } 46 47 48 G4double G4PreCompoundDeuteron::FactorialFactor(const G4double N, const G4double P) 49 { 50 return (N-1.0)*(N-2.0)*(P-1.0)*P/2.0; 54 return theReactionProduct; 55 } 56 57 58 G4double G4PreCompoundDeuteron::FactorialFactor(const G4double N, const G4double P) 59 { 60 return (N-1.0)*(N-2.0)*(P-1.0)*P/2.0; 61 } 62 63 G4double G4PreCompoundDeuteron::CoalescenceFactor(const G4double A) 64 { 65 return 16.0/A; 66 } 67 68 G4double G4PreCompoundDeuteron::GetRj(const G4int NumberParticles, const G4int NumberCharged) 69 { 70 G4double rj = 0.0; 71 G4double denominator = NumberParticles*(NumberParticles-1); 72 if(NumberCharged >=1 && (NumberParticles-NumberCharged) >=1) { 73 rj = 2.0*static_cast<G4double>(NumberCharged*(NumberParticles-NumberCharged)) 74 / static_cast<G4double>(denominator); 51 75 } 52 53 G4double G4PreCompoundDeuteron::CoalescenceFactor(const G4double A) 54 { 55 return 16.0/A; 56 } 57 58 G4double G4PreCompoundDeuteron::GetRj(const G4int NumberParticles, const G4int NumberCharged) 59 { 60 G4double rj = 0.0; 61 G4double denominator = NumberParticles*(NumberParticles-1); 62 if(NumberCharged >=1 && (NumberParticles-NumberCharged) >=1) rj = 2.0*static_cast<G4double>(NumberCharged*(NumberParticles-NumberCharged))/static_cast<G4double>(denominator); 63 64 return rj; 65 } 76 return rj; 77 } 66 78 67 79 //////////////////////////////////////////////////////////////////////////////////// … … 71 83 //OPT=3,4 Kalbach's parameterization 72 84 // 73 85 G4double G4PreCompoundDeuteron::CrossSection(const G4double K) 74 86 { 75 87 … … 106 118 //--------- 107 119 // 108 109 110 G4double C = 0.0;111 112 113 114 115 116 117 118 119 120 121 120 G4double G4PreCompoundDeuteron::GetAlpha() 121 { 122 G4double C = 0.0; 123 G4double aZ = GetZ() + GetRestZ(); 124 if (aZ >= 70) 125 { 126 C = 0.10; 127 } 128 else 129 { 130 C = ((((0.15417e-06*aZ) - 0.29875e-04)*aZ + 0.21071e-02)*aZ - 0.66612e-01)*aZ + 0.98375; 131 } 132 return 1.0 + C/2.0; 133 } 122 134 // 123 135 //--------- 124 136 // 125 126 127 128 137 G4double G4PreCompoundDeuteron::GetBeta() 138 { 139 return -GetCoulombBarrier(); 140 } 129 141 // 130 142 //********************* OPT=1,2 : Chatterjee's cross section ************************ … … 140 152 141 153 G4double landa ,mu ,nu ,p , Ec,q,r,ji,xs; 142 //G4double Eo(0),epsilon1(0),epsilon2(0),discri(0);154 //G4double Eo(0),epsilon1(0),epsilon2(0),discri(0); 143 155 144 156 … … 174 186 } 175 187 176 177 178 179 188 // *********** OPT=3,4 : Kalbach's cross sections (from PRECO code)************* 180 189 G4double G4PreCompoundDeuteron::GetOpt34(const G4double K) … … 205 214 G4double ra=0.80; 206 215 207 ec = 1.44 * theZ * ResidualZ / (1.5*ResidualAthrd+ra); 216 //JMQ 13/02/09 increase of reduced radius to lower the barrier 217 // ec = 1.44 * theZ * ResidualZ / (1.5*ResidualAthrd+ra); 218 ec = 1.44 * theZ * ResidualZ / (1.7*ResidualAthrd+ra); 208 219 ecsq = ec * ec; 209 220 p = p0 + p1/ec + p2/ecsq; … … 226 237 elab = K * FragmentA / ResidualA; 227 238 sig = 0.; 228 239 229 240 if (elab <= ec) { //start for E<Ec 230 if (elab > ecut2) sig = (p*elab*elab+a*elab+b) * signor; 241 if (elab > ecut2) sig = (p*elab*elab+a*elab+b) * signor; 231 242 } //end for E<Ec 232 243 else { //start for E>Ec
Note: See TracChangeset
for help on using the changeset viewer.