Geant4.10
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Member Functions
G4NeutronHPWattSpectrum Class Reference

#include <G4NeutronHPWattSpectrum.hh>

Inheritance diagram for G4NeutronHPWattSpectrum:
G4VNeutronHPEDis

Public Member Functions

 G4NeutronHPWattSpectrum ()
 
 ~G4NeutronHPWattSpectrum ()
 
void Init (std::istream &aDataFile)
 
G4double GetFractionalProbability (G4double anEnergy)
 
G4double Sample (G4double anEnergy)
 
- Public Member Functions inherited from G4VNeutronHPEDis
 G4VNeutronHPEDis ()
 
virtual ~G4VNeutronHPEDis ()
 

Detailed Description

Definition at line 42 of file G4NeutronHPWattSpectrum.hh.

Constructor & Destructor Documentation

G4NeutronHPWattSpectrum::G4NeutronHPWattSpectrum ( )
inline

Definition at line 45 of file G4NeutronHPWattSpectrum.hh.

46  {
47  expm1 = std::exp(-1.);
48  }
G4NeutronHPWattSpectrum::~G4NeutronHPWattSpectrum ( )
inline

Definition at line 49 of file G4NeutronHPWattSpectrum.hh.

50  {
51  }

Member Function Documentation

G4double G4NeutronHPWattSpectrum::GetFractionalProbability ( G4double  anEnergy)
inlinevirtual

Implements G4VNeutronHPEDis.

Definition at line 60 of file G4NeutronHPWattSpectrum.hh.

References G4NeutronHPVector::GetY().

61  {
62  return theFractionalProb.GetY(anEnergy);
63  }
G4double GetY(G4double x)
void G4NeutronHPWattSpectrum::Init ( std::istream &  aDataFile)
inlinevirtual

Implements G4VNeutronHPEDis.

Definition at line 53 of file G4NeutronHPWattSpectrum.hh.

References G4NeutronHPVector::Init().

54  {
55  theFractionalProb.Init(aDataFile, CLHEP::eV);
56  theApar.Init(aDataFile, CLHEP::eV);
57  theBpar.Init(aDataFile, CLHEP::eV);
58  }
void Init(std::istream &aDataFile, G4int total, G4double ux=1., G4double uy=1.)
G4double G4NeutronHPWattSpectrum::Sample ( G4double  anEnergy)
virtual

Implements G4VNeutronHPEDis.

Definition at line 33 of file G4NeutronHPWattSpectrum.cc.

References test::a, test::b, python.hepunit::eV, G4UniformRand, G4NeutronHPVector::GetY(), and G4INCL::Math::max().

34  {
35  G4double a = theApar.GetY(anEnergy)*eV;
36  G4double b = theBpar.GetY(anEnergy)/eV;
37  G4double result;
38  G4double random, cut, max;
39  max = std::sinh(std::sqrt(b*15.*a));
40  do
41  {
42  random = G4UniformRand();
43  result = -a*std::log(random);
44  cut = G4UniformRand();
45  }
46  while(cut>std::sinh(std::sqrt(b*result))/max);
47  return result;
48  }
G4double GetY(G4double x)
#define G4UniformRand()
Definition: Randomize.hh:87
T max(const T t1, const T t2)
brief Return the largest of the two arguments
double G4double
Definition: G4Types.hh:76

The documentation for this class was generated from the following files: