G4NeutronHPWattSpectrum Class Reference

#include <G4NeutronHPWattSpectrum.hh>

Inheritance diagram for G4NeutronHPWattSpectrum:

G4VNeutronHPEDis

Public Member Functions

 G4NeutronHPWattSpectrum ()
 ~G4NeutronHPWattSpectrum ()
void Init (std::ifstream &aDataFile)
G4double GetFractionalProbability (G4double anEnergy)
G4double Sample (G4double anEnergy)

Detailed Description

Definition at line 43 of file G4NeutronHPWattSpectrum.hh.


Constructor & Destructor Documentation

G4NeutronHPWattSpectrum::G4NeutronHPWattSpectrum (  )  [inline]

Definition at line 46 of file G4NeutronHPWattSpectrum.hh.

00047   {
00048     expm1 = std::exp(-1.);
00049   }

G4NeutronHPWattSpectrum::~G4NeutronHPWattSpectrum (  )  [inline]

Definition at line 50 of file G4NeutronHPWattSpectrum.hh.

00051   {
00052   }


Member Function Documentation

G4double G4NeutronHPWattSpectrum::GetFractionalProbability ( G4double  anEnergy  )  [inline, virtual]

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   }

G4double G4NeutronHPWattSpectrum::Sample ( G4double  anEnergy  )  [virtual]

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   }


The documentation for this class was generated from the following files:
Generated on Mon May 27 17:52:43 2013 for Geant4 by  doxygen 1.4.7