- Timestamp:
- Dec 22, 2010, 3:52:27 PM (14 years ago)
- Location:
- trunk/source/processes/hadronic/models/de_excitation/gem_evaporation/include
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4AlphaGEMChannel.hh
r1340 r1347 25 25 // 26 26 // 27 // $Id: G4AlphaGEMChannel.hh,v 1. 4 2009/09/15 12:54:16vnivanch Exp $28 // GEANT4 tag $Name: geant4-09-0 3-ref-09$27 // $Id: G4AlphaGEMChannel.hh,v 1.5 2010/10/29 17:35:04 vnivanch Exp $ 28 // GEANT4 tag $Name: geant4-09-04-ref-00 $ 29 29 // 30 30 // Hadronic Process: Nuclear De-excitations … … 57 57 private: 58 58 const G4AlphaGEMChannel & operator=(const G4AlphaGEMChannel & right); 59 60 G4AlphaGEMChannel(const G4AlphaGEMChannel & right); 61 62 public: 59 G4AlphaGEMChannel(const G4AlphaGEMChannel & right); 63 60 G4bool operator==(const G4AlphaGEMChannel & right) const; 64 61 G4bool operator!=(const G4AlphaGEMChannel & right) const; 65 62 66 private:67 63 // JMQ 190709 68 64 // G4AlphaCoulombBarrier theCoulombBarrier; -
trunk/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4GEMChannel.hh
r1340 r1347 25 25 // 26 26 // 27 // $Id: G4GEMChannel.hh,v 1. 5 2009/09/15 12:54:16vnivanch Exp $28 // GEANT4 tag $Name: geant4-09-0 3-ref-09$27 // $Id: G4GEMChannel.hh,v 1.7 2010/11/18 16:21:17 vnivanch Exp $ 28 // GEANT4 tag $Name: geant4-09-04-ref-00 $ 29 29 // 30 30 // Hadronic Process: Nuclear De-excitations … … 48 48 //#define debug 49 49 50 class G4Pow; 51 50 52 class G4GEMChannel : public G4VEvaporationChannel 51 53 { 52 54 public: 53 // Available constructors 54 G4GEMChannel(const G4int theA, const G4int theZ, 55 G4GEMProbability * aEmissionStrategy, 56 G4VCoulombBarrier * aCoulombBarrier); 55 56 G4GEMChannel(const G4int theA, const G4int theZ, const G4String & aName, 57 G4GEMProbability * aEmissionStrategy, 58 G4VCoulombBarrier * aCoulombBarrier); 59 60 // destructor 61 virtual ~G4GEMChannel(); 57 62 58 G4GEMChannel(const G4int theA, const G4int theZ, const G4String & aName, 59 G4GEMProbability * aEmissionStrategy, 60 G4VCoulombBarrier * aCoulombBarrier); 63 void Initialize(const G4Fragment & fragment); 64 65 G4FragmentVector * BreakUp(const G4Fragment & theNucleus); 66 67 inline void SetLevelDensityParameter(G4VLevelDensityParameter * aLevelDensity) 68 { 69 if (MyOwnLevelDensity) { delete theLevelDensityPtr; } 70 theLevelDensityPtr = aLevelDensity; 71 MyOwnLevelDensity = false; 72 } 73 74 inline G4double GetEmissionProbability(void) const 75 { return EmissionProbability; } 76 77 inline G4double GetMaximalKineticEnergy(void) const 78 { return MaximalKineticEnergy; } 79 80 private: 61 81 62 G4GEMChannel(const G4int theA, const G4int theZ, const G4String * aName, 63 G4GEMProbability * aEmissionStrategy, 64 G4VCoulombBarrier * aCoulombBarrier); 65 66 public: 67 // destructor 68 ~G4GEMChannel(); 69 70 void SetEmissionStrategy(G4GEMProbability * aEmissionStrategy) 71 { 72 theEvaporationProbabilityPtr = aEmissionStrategy; 73 } 74 75 void SetCoulombBarrierStrategy(G4VCoulombBarrier * aCoulombBarrier) 76 { 77 theCoulombBarrierPtr = aCoulombBarrier; 78 } 82 // Calculate Binding Energy for separate fragment from nucleus 83 G4double CalcBindingEnergy(G4int anA, G4int aZ); 84 85 // Calculate maximal kinetic energy that can be carried by fragment (in MeV) 86 G4double CalcMaximalKineticEnergy(G4double U); 87 88 // Samples fragment kinetic energy. 89 G4double CalcKineticEnergy(const G4Fragment & fragment); 90 91 // This has to be removed and put in Random Generator 92 G4ThreeVector IsotropicVector(G4double Magnitude = 1.0); 93 94 G4GEMChannel(const G4GEMChannel & right); 95 const G4GEMChannel & operator=(const G4GEMChannel & right); 96 G4bool operator==(const G4GEMChannel & right) const; 97 G4bool operator!=(const G4GEMChannel & right) const; 79 98 80 99 protected: 81 // default constructor 82 G4GEMChannel() {}; 83 100 G4GEMChannel(); 101 102 // Data Members ************ 103 84 104 private: 85 // copy constructor86 G4GEMChannel(const G4GEMChannel & right);87 88 private:89 const G4GEMChannel & operator=(const G4GEMChannel & right);90 91 public:92 G4bool operator==(const G4GEMChannel & right) const;93 G4bool operator!=(const G4GEMChannel & right) const;94 105 95 public: 96 void Initialize(const G4Fragment & fragment); 106 // This data member define the channel. 107 // They are intializated at object creation (constructor) time. 108 109 // Atomic Number 110 G4int A; 111 112 // Charge 113 G4int Z; 97 114 98 G4FragmentVector * BreakUp(const G4Fragment & theNucleus); 115 G4double EvaporatedMass; 116 G4double ResidualMass; 99 117 100 inline void SetLevelDensityParameter(G4VLevelDensityParameter * aLevelDensity) 101 { 102 if (MyOwnLevelDensity) delete theLevelDensityPtr; 103 theLevelDensityPtr = aLevelDensity; 104 MyOwnLevelDensity = false; 105 } 106 107 public: 118 G4Pow* fG4pow; 119 120 // For evaporation probability calcualtion 121 G4GEMProbability * theEvaporationProbabilityPtr; 122 123 // For Level Density calculation 124 G4bool MyOwnLevelDensity; 125 G4VLevelDensityParameter * theLevelDensityPtr; 126 127 // For Coulomb Barrier calculation 128 G4VCoulombBarrier * theCoulombBarrierPtr; 129 G4double CoulombBarrier; 130 131 //--------------------------------------------------- 132 133 // These values depend on the nucleus that is being evaporated. 134 // They are calculated through the Initialize method which takes as parameters 135 // the atomic number, charge and excitation energy of nucleus. 136 137 // Residual Atomic Number 138 G4int ResidualA; 139 140 // Residual Charge 141 G4int ResidualZ; 142 143 // Emission Probability 144 G4double EmissionProbability; 145 146 // Maximal Kinetic Energy that can be carried by fragment 147 G4double MaximalKineticEnergy; 108 148 109 149 110 inline G4double GetEmissionProbability(void) const111 {112 return EmissionProbability;113 }114 115 116 inline G4double GetMaximalKineticEnergy(void) const117 {118 return MaximalKineticEnergy;119 }120 121 // ----------------------122 123 private:124 125 // Calculate Binding Energy for separate fragment from nucleus126 G4double CalcBindingEnergy(const G4int anA, const G4int aZ);127 128 // Calculate maximal kinetic energy that can be carried by fragment (in MeV)129 G4double CalcMaximalKineticEnergy(const G4double U);130 131 // Samples fragment kinetic energy.132 G4double CalcKineticEnergy(const G4Fragment & fragment);133 134 // This has to be removed and put in Random Generator135 G4ThreeVector IsotropicVector(const G4double Magnitude = 1.0);136 137 // Data Members138 // ************139 private:140 141 // This data member define the channel.142 // They are intializated at object creation (constructor) time.143 144 // Atomic Number145 G4int A;146 147 // Charge148 G4int Z;149 150 151 // For evaporation probability calcualtion152 G4GEMProbability * theEvaporationProbabilityPtr;153 154 // For Level Density calculation155 G4bool MyOwnLevelDensity;156 G4VLevelDensityParameter * theLevelDensityPtr;157 158 // For Coulomb Barrier calculation159 G4VCoulombBarrier * theCoulombBarrierPtr;160 G4double CoulombBarrier;161 162 //---------------------------------------------------163 164 // These values depend on the nucleus that is being evaporated.165 // They are calculated through the Initialize method which takes as parameters166 // the atomic number, charge and excitation energy of nucleus.167 168 // Residual Atomic Number169 G4int AResidual;170 171 // Residual Charge172 G4int ZResidual;173 174 // Emission Probability175 G4double EmissionProbability;176 177 178 // Maximal Kinetic Energy that can be carried by fragment179 G4double MaximalKineticEnergy;180 150 }; 181 151 -
trunk/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4GEMProbability.hh
r1340 r1347 24 24 // ******************************************************************** 25 25 // 26 // $Id: G4GEMProbability.hh,v 1. 4 2010/05/19 10:21:16vnivanch Exp $27 // GEANT4 tag $Name: geant4-09-0 3-ref-09$26 // $Id: G4GEMProbability.hh,v 1.6 2010/11/05 14:42:52 vnivanch Exp $ 27 // GEANT4 tag $Name: geant4-09-04-ref-00 $ 28 28 // 29 29 //--------------------------------------------------------------------- … … 43 43 #define G4GEMProbability_h 1 44 44 45 46 45 #include "G4VEmissionProbability.hh" 47 46 #include "G4VLevelDensityParameter.hh" … … 60 59 61 60 // Only available constructor 62 G4GEMProbability( const G4int anA, const G4int aZ, constG4double aSpin);61 G4GEMProbability(G4int anA, G4int aZ, G4double aSpin); 63 62 64 63 virtual ~G4GEMProbability(); … … 114 113 } 115 114 116 inline void SetCoulombBarrierStrategy(G4VCoulombBarrier * aCoulombBarrier)117 {118 theCoulombBarrierPtr = aCoulombBarrier;119 }120 121 115 private: 122 116 … … 130 124 public: 131 125 132 G4double EmissionProbability(const G4Fragment & fragment, constG4double anEnergy);126 G4double EmissionProbability(const G4Fragment & fragment, G4double anEnergy); 133 127 134 128 private: 135 129 136 G4double CalcProbability(const G4Fragment & fragment, constG4double MaximalKineticEnergy,137 constG4double V);130 G4double CalcProbability(const G4Fragment & fragment, G4double MaximalKineticEnergy, 131 G4double V); 138 132 139 virtual G4double CCoeficient( constG4double ) const;133 virtual G4double CCoeficient(G4double ) const; 140 134 141 inline G4double I0( constG4double t);142 inline G4double I1( const G4double t, constG4double tx);143 inline G4double I2( const G4double s, constG4double sx);144 G4double I3( const G4double s, constG4double sx);135 inline G4double I0(G4double t); 136 inline G4double I1(G4double t, G4double tx); 137 inline G4double I2(G4double s, G4double sx); 138 G4double I3(G4double s, G4double sx); 145 139 146 140 // Data Members … … 174 168 }; 175 169 176 inline G4double G4GEMProbability::I0( constG4double t)170 inline G4double G4GEMProbability::I0(G4double t) 177 171 { 178 172 return std::exp(t) - 1.0; 179 173 } 180 174 181 inline G4double G4GEMProbability::I1( const G4double t, constG4double tx)175 inline G4double G4GEMProbability::I1(G4double t, G4double tx) 182 176 { 183 177 return (t - tx + 1.0)*std::exp(tx) - t - 1.0; … … 185 179 186 180 187 inline G4double G4GEMProbability::I2( const G4double s, constG4double sx)181 inline G4double G4GEMProbability::I2(G4double s, G4double sx) 188 182 { 189 183 G4double S = 1.0/std::sqrt(s);
Note: See TracChangeset
for help on using the changeset viewer.