Changeset 962 for trunk/source/processes/hadronic/models/pre_equilibrium/exciton_model/include/G4PreCompoundAlpha.hh
- 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/include/G4PreCompoundAlpha.hh
r819 r962 24 24 // ******************************************************************** 25 25 // 26 // by V. Lara 26 27 // 27 // $Id: G4PreCompoundAlpha.hh,v 1.6 2007/10/01 10:41:59 ahoward Exp $ 28 // GEANT4 tag $Name: $ 29 // 30 // by V. Lara 28 //J. M. Quesada (July 08) 29 31 30 32 31 #ifndef G4PreCompoundAlpha_h … … 36 35 #include "G4ReactionProduct.hh" 37 36 #include "G4Alpha.hh" 38 39 37 #include "G4AlphaCoulombBarrier.hh" 40 38 #include "G4PreCompoundParameters.hh" 41 39 42 40 class G4PreCompoundAlpha : public G4PreCompoundIon … … 47 45 48 46 // copy constructor 49 G4PreCompoundAlpha(const G4PreCompoundAlpha &right): G4PreCompoundIon(right) 47 G4PreCompoundAlpha(const G4PreCompoundAlpha &right): G4PreCompoundIon(right){} 50 48 51 49 // destructor … … 66 64 67 65 68 G4ReactionProduct * GetReactionProduct() const 69 { 70 G4ReactionProduct * theReactionProduct = 71 new G4ReactionProduct(G4Alpha::AlphaDefinition()); 72 theReactionProduct->SetMomentum(GetMomentum().vect()); 73 theReactionProduct->SetTotalEnergy(GetMomentum().e()); 74 #ifdef PRECOMPOUND_TEST 75 theReactionProduct->SetCreatorModel("G4PrecompoundModel"); 76 #endif 77 return theReactionProduct; 78 } 79 66 G4ReactionProduct * GetReactionProduct() const; 67 80 68 private: 81 69 82 // added Rj method according to literature and JMQ 83 virtual G4double GetRj(const G4int NumberParticles, const G4int NumberCharged) 84 { 85 G4double rj = 1.0; 86 G4double denominator = NumberParticles*(NumberParticles-1)*(NumberParticles-2)*(NumberParticles-3); 87 if(denominator !=0) rj = 6.0*static_cast<G4double>(NumberCharged*(NumberCharged-1)*(NumberParticles-NumberCharged)*(NumberParticles-NumberCharged-1))/static_cast<G4double>(denominator); //JMQ 23/8/07 70 virtual G4double GetRj(const G4int NumberParticles, const G4int NumberCharged); 88 71 89 return rj; 90 } 72 virtual G4double CrossSection(const G4double K) ; 73 74 virtual G4double FactorialFactor(const G4double N, const G4double P); 75 76 virtual G4double CoalescenceFactor(const G4double A); 77 78 G4double GetOpt0(const G4double K); 79 G4double GetOpt12(const G4double K); 80 G4double GetOpt34(const G4double K); 81 82 G4double GetAlpha(); 83 84 G4double GetBeta(); 85 86 //data members 87 88 G4AlphaCoulombBarrier theAlphaCoulombBarrier; 89 G4double ResidualA; 90 G4double ResidualZ; 91 G4double theA; 92 G4double theZ; 93 G4double ResidualAthrd; 94 G4double FragmentA; 95 G4double FragmentAthrd; 96 97 }; 98 #endif 91 99 92 100 93 virtual G4double GetAlpha()94 {95 G4double C = 0.0;96 G4double aZ = GetZ() + GetRestZ();97 if (aZ <= 30)98 {99 C = 0.10;100 }101 else if (aZ <= 50)102 {103 C = 0.1 + -((aZ-50.)/20.)*0.02;104 }105 else if (aZ < 70)106 {107 C = 0.08 + -((aZ-70.)/20.)*0.02;108 }109 else110 {111 C = 0.06;112 }113 return 1.0+C;114 }115 101 116 virtual G4double GetBeta()117 {118 return -GetCoulombBarrier();119 }120 102 121 virtual G4double FactorialFactor(const G4double N, const G4double P)122 {123 return124 (N-4.0)*(P-3.0)*(125 (((N-3.0)*(P-2.0))/2.0) *(126 (((N-2.0)*(P-1.0))/3.0) *(127 (((N-1.0)*P)/2.0)128 )129 )130 );131 }132 103 133 virtual G4double CoalescenceFactor(const G4double A)134 {135 return 4096.0/(A*A*A);136 }137 private:138 139 G4AlphaCoulombBarrier theAlphaCoulombBarrier;140 141 };142 143 #endif144 104 145 105 106 107
Note: See TracChangeset
for help on using the changeset viewer.