#include <G4NeutronHPWattSpectrum.hh>
Inheritance diagram for G4NeutronHPWattSpectrum:
Public Member Functions | |
G4NeutronHPWattSpectrum () | |
~G4NeutronHPWattSpectrum () | |
void | Init (std::ifstream &aDataFile) |
G4double | GetFractionalProbability (G4double anEnergy) |
G4double | Sample (G4double anEnergy) |
Definition at line 43 of file G4NeutronHPWattSpectrum.hh.
G4NeutronHPWattSpectrum::G4NeutronHPWattSpectrum | ( | ) | [inline] |
G4NeutronHPWattSpectrum::~G4NeutronHPWattSpectrum | ( | ) | [inline] |
Implements G4VNeutronHPEDis.
Definition at line 61 of file G4NeutronHPWattSpectrum.hh.
References G4NeutronHPVector::GetY().
00062 { 00063 return theFractionalProb.GetY(anEnergy); 00064 }
void G4NeutronHPWattSpectrum::Init | ( | std::ifstream & | aDataFile | ) | [inline, virtual] |
Implements G4VNeutronHPEDis.
Definition at line 54 of file G4NeutronHPWattSpectrum.hh.
References G4NeutronHPVector::Init().
00055 { 00056 theFractionalProb.Init(aDataFile, CLHEP::eV); 00057 theApar.Init(aDataFile, CLHEP::eV); 00058 theBpar.Init(aDataFile, CLHEP::eV); 00059 }
Implements G4VNeutronHPEDis.
Definition at line 33 of file G4NeutronHPWattSpectrum.cc.
References G4UniformRand, and G4NeutronHPVector::GetY().
00034 { 00035 G4double a = theApar.GetY(anEnergy)*eV; 00036 G4double b = theBpar.GetY(anEnergy)/eV; 00037 G4double result; 00038 G4double random, cut, max; 00039 max = std::sinh(std::sqrt(b*15.*a)); 00040 do 00041 { 00042 random = G4UniformRand(); 00043 result = -a*std::log(random); 00044 cut = G4UniformRand(); 00045 } 00046 while(cut>std::sinh(std::sqrt(b*result))/max); 00047 return result; 00048 }