Geant4-11
Public Member Functions | Private Attributes
G4ParticleHPEnergyDistribution Class Reference

#include <G4ParticleHPEnergyDistribution.hh>

Public Member Functions

 G4ParticleHPEnergyDistribution ()
 
void Init (std::istream &theData)
 
G4double Sample (G4double anEnergy, G4int &it)
 
 ~G4ParticleHPEnergyDistribution ()
 

Private Attributes

G4VParticleHPEDis ** theEnergyDistribution
 
G4int theNumberOfPartials
 
G4int theRepresentationType
 

Detailed Description

Definition at line 47 of file G4ParticleHPEnergyDistribution.hh.

Constructor & Destructor Documentation

◆ G4ParticleHPEnergyDistribution()

G4ParticleHPEnergyDistribution::G4ParticleHPEnergyDistribution ( )
inline

◆ ~G4ParticleHPEnergyDistribution()

G4ParticleHPEnergyDistribution::~G4ParticleHPEnergyDistribution ( )
inline

Definition at line 56 of file G4ParticleHPEnergyDistribution.hh.

57 {
59 {
60 for(G4int i=0; i<theNumberOfPartials; i++)
61 {
62 delete theEnergyDistribution[i];
63 }
64 delete [] theEnergyDistribution;
65 }
66 }
int G4int
Definition: G4Types.hh:85

References theEnergyDistribution, and theNumberOfPartials.

Member Function Documentation

◆ Init()

void G4ParticleHPEnergyDistribution::Init ( std::istream &  theData)
inline

Definition at line 68 of file G4ParticleHPEnergyDistribution.hh.

References G4VParticleHPEDis::Init(), theEnergyDistribution, theNumberOfPartials, and theRepresentationType.

Referenced by G4FissionLibrary::Init(), G4ParticleHPFSFissionFS::Init(), G4ParticleHPInelasticCompFS::Init(), G4ParticleHPFissionBaseFS::Init(), and G4ParticleHPInelasticBaseFS::Init().

◆ Sample()

G4double G4ParticleHPEnergyDistribution::Sample ( G4double  anEnergy,
G4int it 
)
inline

Definition at line 101 of file G4ParticleHPEnergyDistribution.hh.

102 {
103 G4double result = 0;
104 it = 0;
105 if (theNumberOfPartials != 0)
106 {
107 G4double sum=0;
108 G4double * running = new G4double[theNumberOfPartials];
109 running[0] = 0;
110 G4int i;
111 for (i=0; i<theNumberOfPartials; i++)
112 {
113 if (i!=0) running[i]=running[i-1];
114 running[i]+=theEnergyDistribution[i]->GetFractionalProbability(anEnergy);
115 }
116 sum = running[theNumberOfPartials-1];
117 G4double random = G4UniformRand();
118 for(i=0; i<theNumberOfPartials; i++)
119 {
120 it = i;
121 if(running[i]/sum>random) break;
122 }
123 delete [] running;
124 if(it==theNumberOfPartials) it--;
125 result = theEnergyDistribution[it]->Sample(anEnergy);
126 }
127 return result;
128 }
#define G4UniformRand()
Definition: Randomize.hh:52
virtual G4double GetFractionalProbability(G4double anEnergy)=0
virtual G4double Sample(G4double anEnergy)=0

References G4UniformRand, G4VParticleHPEDis::GetFractionalProbability(), G4VParticleHPEDis::Sample(), theEnergyDistribution, and theNumberOfPartials.

Referenced by G4ParticleHPFissionBaseFS::ApplyYourself(), G4ParticleHPFSFissionFS::ApplyYourself(), G4ParticleHPInelasticBaseFS::BaseApply(), and G4ParticleHPInelasticCompFS::CompositeApply().

Field Documentation

◆ theEnergyDistribution

G4VParticleHPEDis** G4ParticleHPEnergyDistribution::theEnergyDistribution
private

◆ theNumberOfPartials

G4int G4ParticleHPEnergyDistribution::theNumberOfPartials
private

◆ theRepresentationType

G4int G4ParticleHPEnergyDistribution::theRepresentationType
private

Definition at line 133 of file G4ParticleHPEnergyDistribution.hh.

Referenced by G4ParticleHPEnergyDistribution(), and Init().


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