G4NeutronHPSimpleEvapSpectrum Class Reference

#include <G4NeutronHPSimpleEvapSpectrum.hh>

Inheritance diagram for G4NeutronHPSimpleEvapSpectrum:

G4VNeutronHPEDis

Public Member Functions

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

Detailed Description

Definition at line 43 of file G4NeutronHPSimpleEvapSpectrum.hh.


Constructor & Destructor Documentation

G4NeutronHPSimpleEvapSpectrum::G4NeutronHPSimpleEvapSpectrum (  )  [inline]

Definition at line 46 of file G4NeutronHPSimpleEvapSpectrum.hh.

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

G4NeutronHPSimpleEvapSpectrum::~G4NeutronHPSimpleEvapSpectrum (  )  [inline]

Definition at line 50 of file G4NeutronHPSimpleEvapSpectrum.hh.

00051   {
00052   }


Member Function Documentation

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

Implements G4VNeutronHPEDis.

Definition at line 60 of file G4NeutronHPSimpleEvapSpectrum.hh.

References G4NeutronHPVector::GetY().

00061   {
00062     return theFractionalProb.GetY(anEnergy);
00063   }

void G4NeutronHPSimpleEvapSpectrum::Init ( std::ifstream &  aDataFile  )  [inline, virtual]

Implements G4VNeutronHPEDis.

Definition at line 54 of file G4NeutronHPSimpleEvapSpectrum.hh.

References G4NeutronHPVector::Init().

00055   {
00056     theFractionalProb.Init(aDataFile, CLHEP::eV);
00057     theThetaDist.Init(aDataFile, CLHEP::eV);
00058   }

G4double G4NeutronHPSimpleEvapSpectrum::Sample ( G4double  anEnergy  )  [inline, virtual]

Implements G4VNeutronHPEDis.

Definition at line 65 of file G4NeutronHPSimpleEvapSpectrum.hh.

References G4UniformRand, and G4NeutronHPVector::GetY().

00066   {
00067     G4double theta = theThetaDist.GetY(anEnergy)*CLHEP::eV;
00068     G4double random, cut, max, result;
00069     max = 10.*theta;
00070     do
00071     {
00072       random = G4UniformRand();
00073       result = -theta*std::log(random); 
00074       cut = G4UniformRand();
00075     }
00076     while(cut>result/max); 
00077     return result;
00078   }


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