#include <G4fissionEvent.hh>
Public Member Functions | |
G4fissionEvent (G4int isotope, G4double time, G4double nubar, G4double eng) | |
~G4fissionEvent () | |
G4int | getNeutronNu () |
G4int | getPhotonNu () |
G4double | getNeutronEnergy (G4int index) |
G4double | getNeutronVelocity (G4int index) |
G4double | getNeutronDircosu (G4int index) |
G4double | getNeutronDircosv (G4int index) |
G4double | getNeutronDircosw (G4int index) |
G4double | getPhotonEnergy (G4int index) |
G4double | getPhotonVelocity (G4int index) |
G4double | getPhotonDircosu (G4int index) |
G4double | getPhotonDircosv (G4int index) |
G4double | getPhotonDircosw (G4int index) |
G4double | getNeutronAge (G4int index) |
G4double | getPhotonAge (G4int index) |
Static Public Member Functions | |
static void | setDelayOption (G4int delay) |
static void | setCorrelationOption (G4int correlation) |
static void | setNudistOption (G4int nudist) |
static void | setCf252Option (G4int ndist, G4int neng) |
static void | setRNGf (float(*funcptr)(void)) |
static void | setRNGd (G4double(*funcptr)(void)) |
Definition at line 61 of file G4fissionEvent.hh.
Definition at line 66 of file G4fissionEvent.cc.
00068 :neutronNu(0), neutronEnergies(0), neutronVelocities(0), neutronDircosu(0), 00069 neutronDircosv(), neutronDircosw(), neutronAges(0), 00070 photonNu(0), photonEnergies(0), photonVelocities(0), photonDircosu(0), 00071 photonDircosv(0), photonDircosw(0), photonAges(0) 00072 { 00073 /* 00074 * Constructs a fission event with neutronNu neutrons and photonNu 00075 * photons. 00076 */ 00077 G4int i; 00078 00079 if (nubar == -1.) { 00080 /* spontaneous fission */ 00081 neutronNu = G4SmpSpNuDistData(isotope, Cf252ndistoption); 00082 photonNu = G4SmpSpNugDistData(isotope); 00083 } else { 00084 /* induced fission */ 00085 if (nudistoption == 0 || nudistoption == 1) { 00086 switch (isotope) { 00087 case 92235: 00088 neutronNu = G4SmpNuDistDataU235(eng,nudistoption); 00089 break; 00090 case 92238: 00091 neutronNu = G4SmpNuDistDataU238(eng); 00092 break; 00093 case 94239: 00094 neutronNu = G4SmpNuDistDataPu239(eng); 00095 break; 00096 default: 00097 neutronNu = (G4int) G4SmpTerrell(nubar); 00098 break; 00099 } 00100 } else if (nudistoption == 2) { 00101 switch (isotope) { 00102 case 92232: 00103 case 92234: 00104 case 92236: 00105 case 92238: 00106 neutronNu = G4SmpNuDistDataU232_234_236_238(nubar); 00107 break; 00108 case 92233: 00109 case 92235: 00110 neutronNu = (G4int) G4SmpNuDistDataU233_235(nubar); 00111 break; 00112 case 94239: 00113 case 94241: 00114 neutronNu = G4SmpNuDistDataPu239_241(nubar); 00115 break; 00116 default: 00117 neutronNu = (G4int) G4SmpTerrell(nubar); 00118 break; 00119 } 00120 } else if (nudistoption == 3) { 00121 switch (isotope) { 00122 case 92232: 00123 case 92234: 00124 case 92236: 00125 case 92238: 00126 neutronNu = G4SmpNuDistDataU232_234_236_238_MC(nubar); 00127 break; 00128 case 92233: 00129 case 92235: 00130 neutronNu = (G4int) G4SmpNuDistDataU233_235_MC(nubar); 00131 break; 00132 case 94239: 00133 case 94241: 00134 neutronNu = G4SmpNuDistDataPu239_241_MC(nubar); 00135 break; 00136 default: 00137 neutronNu = (G4int) G4SmpTerrell(nubar); 00138 break; 00139 } 00140 } 00141 photonNu = G4SmpNugDist(isotope, nubar); 00142 } 00143 if (neutronNu > 0) { 00144 neutronEnergies = new G4double[ neutronNu ]; 00145 neutronVelocities = new G4double[ neutronNu ]; 00146 neutronDircosu = new G4double[ neutronNu ]; 00147 neutronDircosv = new G4double[ neutronNu ]; 00148 neutronDircosw = new G4double[ neutronNu ]; 00149 neutronAges = new G4double[neutronNu]; 00150 for (i=0; i<neutronNu; i++) { 00151 if (isotope == 98252) neutronEnergies[i] = G4SmpNEngCf252(Cf252nengoption); 00152 else neutronEnergies[i] = G4SmpWatt(eng, isotope); 00153 neutronVelocities[i] = G4SmpNVel( 00154 neutronEnergies[i], 00155 &(neutronDircosu[i]), 00156 &(neutronDircosv[i]), 00157 &(neutronDircosw[i]) 00158 ); 00159 neutronAges[i] = time; 00160 } 00161 } 00162 if (photonNu > 0) { 00163 photonEnergies = new G4double[photonNu]; 00164 photonVelocities = new G4double[photonNu]; 00165 photonDircosu = new G4double[photonNu]; 00166 photonDircosv = new G4double[photonNu]; 00167 photonDircosw = new G4double[photonNu]; 00168 photonAges = new G4double[photonNu]; 00169 for (i=0; i<photonNu; i++) { 00170 photonEnergies[i] = G4SmpGEng(); 00171 photonVelocities[i] = G4SmpPVel( 00172 photonEnergies[i], 00173 &(photonDircosu[i]), 00174 &(photonDircosv[i]), 00175 &(photonDircosw[i]) 00176 ); 00177 photonAges[i] = time; 00178 } 00179 } 00180 }
G4fissionEvent::~G4fissionEvent | ( | ) |
Definition at line 182 of file G4fissionEvent.cc.
00182 { 00183 if (neutronNu > 0) { 00184 delete [] neutronEnergies; 00185 delete [] neutronVelocities; 00186 delete [] neutronDircosu; 00187 delete [] neutronDircosv; 00188 delete [] neutronDircosw; 00189 delete [] neutronAges; 00190 } 00191 00192 if (photonNu > 0) { 00193 delete [] photonEnergies; 00194 delete [] photonVelocities; 00195 delete [] photonDircosu; 00196 delete [] photonDircosv; 00197 delete [] photonDircosw; 00198 delete [] photonAges; 00199 } 00200 }
Definition at line 138 of file G4fissionEvent.hh.
00138 { 00139 if (index >= 0 && index < neutronNu) return neutronAges[index]; 00140 else return -1; 00141 }
Definition at line 106 of file G4fissionEvent.hh.
00106 { 00107 if (index >= 0 && index < neutronNu) return neutronDircosu[index]; 00108 else return -1; 00109 }
Definition at line 110 of file G4fissionEvent.hh.
00110 { 00111 if (index >= 0 && index < neutronNu) return neutronDircosv[index]; 00112 else return -1; 00113 }
Definition at line 114 of file G4fissionEvent.hh.
00114 { 00115 if (index >= 0 && index < neutronNu) return neutronDircosw[index]; 00116 else return -1; 00117 }
Definition at line 98 of file G4fissionEvent.hh.
00098 { 00099 if (index >= 0 && index < neutronNu) return neutronEnergies[index]; 00100 else return -1; 00101 }
G4int G4fissionEvent::getNeutronNu | ( | ) | [inline] |
Definition at line 102 of file G4fissionEvent.hh.
00102 { 00103 if (index >= 0 && index < neutronNu) return neutronVelocities[index]; 00104 else return -1; 00105 }
Definition at line 142 of file G4fissionEvent.hh.
00142 { 00143 if (index >= 0 && index < photonNu) return photonAges[index]; 00144 else return -1; 00145 }
Definition at line 126 of file G4fissionEvent.hh.
00126 { 00127 if (index >= 0 && index < photonNu) return photonDircosu[index]; 00128 else return -1; 00129 }
Definition at line 130 of file G4fissionEvent.hh.
00130 { 00131 if (index >= 0 && index < photonNu) return photonDircosv[index]; 00132 else return -1; 00133 }
Definition at line 134 of file G4fissionEvent.hh.
00134 { 00135 if (index >= 0 && index < photonNu) return photonDircosw[index]; 00136 else return -1; 00137 }
Definition at line 118 of file G4fissionEvent.hh.
00118 { 00119 if (index >= 0 && index < photonNu) return photonEnergies[index]; 00120 else return -1; 00121 }
G4int G4fissionEvent::getPhotonNu | ( | ) | [inline] |
Definition at line 122 of file G4fissionEvent.hh.
00122 { 00123 if (index >= 0 && index < photonNu) return photonVelocities[index]; 00124 else return -1; 00125 }
static void G4fissionEvent::setCorrelationOption | ( | G4int | correlation | ) | [inline, static] |
static void G4fissionEvent::setDelayOption | ( | G4int | delay | ) | [inline, static] |
static void G4fissionEvent::setNudistOption | ( | G4int | nudist | ) | [inline, static] |
static void G4fissionEvent::setRNGd | ( | G4double(*)(void) | funcptr | ) | [inline, static] |
static void G4fissionEvent::setRNGf | ( | float(*)(void) | funcptr | ) | [inline, static] |