00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031 #ifndef G4NeutronHPFissionERelease_h
00032 #define G4NeutronHPFissionERelease_h 1
00033
00034 #include <fstream>
00035 #include <CLHEP/Units/SystemOfUnits.h>
00036
00037 #include "globals.hh"
00038 #include "G4ios.hh"
00039
00040 class G4NeutronHPFissionERelease
00041 {
00042 public:
00043 G4NeutronHPFissionERelease()
00044 : totalEnergy( 0.0 )
00045 , fragmentKinetic( 0.0 )
00046 , promptNeutronKinetic( 0.0 )
00047 , delayedNeutronKinetic( 0.0 )
00048 , promptGammaEnergy( 0.0 )
00049 , delayedGammaEnergy( 0.0 )
00050 , neutrinoEnergy( 0.0 )
00051 , reducedTotalEnergy( 0.0 )
00052 {
00053 }
00054 ~G4NeutronHPFissionERelease(){}
00055
00056 inline void Init(std::ifstream & aDataFile)
00057 {
00058 G4double dummy;
00059
00060 aDataFile >>dummy
00061 >>fragmentKinetic
00062 >>promptNeutronKinetic
00063 >>delayedNeutronKinetic
00064 >>promptGammaEnergy
00065 >>delayedGammaEnergy
00066 >>delayedBetaEnergy
00067 >>neutrinoEnergy
00068 >>reducedTotalEnergy
00069 >>totalEnergy;
00070
00071 fragmentKinetic*=CLHEP::eV;
00072 promptNeutronKinetic*=CLHEP::eV;
00073 delayedNeutronKinetic*=CLHEP::eV;
00074 promptGammaEnergy*=CLHEP::eV;
00075 delayedGammaEnergy*=CLHEP::eV;
00076 delayedBetaEnergy*=CLHEP::eV;
00077 neutrinoEnergy*=CLHEP::eV;
00078 reducedTotalEnergy*=CLHEP::eV;
00079 totalEnergy*=CLHEP::eV;
00080 }
00081
00082 inline G4double GetTotalEnergy(G4double deltaNNeu, G4double anEnergy)
00083 {
00084 G4double result, delta, energy;
00085 energy = anEnergy/CLHEP::eV;
00086 delta = -(1.057*energy - 8.07*deltaNNeu);
00087 result = totalEnergy - delta*CLHEP::eV;
00088 return result;
00089 }
00090 inline G4double GetFragmentKinetic()
00091 {
00092 return fragmentKinetic;
00093 }
00094 inline G4double GetPromptNeutronKinetic(G4double deltaNNeu, G4double anEnergy)
00095 {
00096 G4double result, delta, energy;
00097 energy = anEnergy/CLHEP::eV;
00098 delta = -(1.307*energy - 8.07*deltaNNeu);
00099 result = totalEnergy - delta*CLHEP::eV;
00100 return result;
00101 }
00102 inline G4double GetDelayedNeutronKinetic()
00103 {
00104 return delayedNeutronKinetic;
00105 }
00106 inline G4double GetPromptGammaEnergy()
00107 {
00108 return promptGammaEnergy;
00109 }
00110 inline G4double GetDelayedGammaEnergy(G4double anEnergy)
00111 {
00112 G4double delta = 0.075*anEnergy;
00113 G4double result = delayedGammaEnergy-delta;
00114 return result;
00115 }
00116 inline G4double GetDelayedBetaEnergy(G4double anEnergy)
00117 {
00118 G4double delta = 0.075*anEnergy;
00119 G4double result = delayedBetaEnergy-delta;
00120 return result;
00121 }
00122 inline G4double GetNeutrinoEnergy(G4double anEnergy)
00123 {
00124 G4double delta = 0.1*anEnergy;
00125 G4double result = neutrinoEnergy-delta;
00126 return result;
00127 }
00128 inline G4double GetReducedTotal(G4double deltaNNeu, G4double anEnergy)
00129 {
00130 return GetTotalEnergy(deltaNNeu, anEnergy) - GetNeutrinoEnergy(anEnergy);
00131 }
00132 private:
00133
00134 G4double totalEnergy;
00135 G4double fragmentKinetic;
00136 G4double promptNeutronKinetic;
00137 G4double delayedNeutronKinetic;
00138 G4double promptGammaEnergy;
00139 G4double delayedGammaEnergy;
00140 G4double delayedBetaEnergy;
00141 G4double neutrinoEnergy;
00142 G4double reducedTotalEnergy;
00143 };
00144
00145 #endif