G4FissionStore Class Reference

#include <G4FissionStore.hh>


Public Member Functions

 G4FissionStore ()
void setVerboseLevel (G4int verbose=1)
void addConfig (G4double a, G4double z, G4double ez, G4double ek, G4double ev)
void clear ()
size_t size () const
G4FissionConfiguration generateConfiguration (G4double amax, G4double rand) const


Detailed Description

Definition at line 37 of file G4FissionStore.hh.


Constructor & Destructor Documentation

G4FissionStore::G4FissionStore (  ) 

Definition at line 36 of file G4FissionStore.cc.

References G4cout, and G4endl.

00036                                : verboseLevel(0) {
00037   if (verboseLevel > 1) 
00038     G4cout << " >>> G4FissionStore::G4FissionStore" << G4endl;
00039 }


Member Function Documentation

void G4FissionStore::addConfig ( G4double  a,
G4double  z,
G4double  ez,
G4double  ek,
G4double  ev 
)

Definition at line 41 of file G4FissionStore.cc.

References G4cout, and G4endl.

Referenced by G4Fissioner::collide().

00042                                                          {
00043   G4FissionConfiguration config(a, z, ez, ek, ev);
00044   configurations.push_back(config);
00045   if (verboseLevel > 2) G4cout << config << G4endl;
00046 }

void G4FissionStore::clear (  )  [inline]

Definition at line 45 of file G4FissionStore.hh.

Referenced by G4Fissioner::collide().

00045 { configurations.clear(); }

G4FissionConfiguration G4FissionStore::generateConfiguration ( G4double  amax,
G4double  rand 
) const

Definition at line 48 of file G4FissionStore.cc.

References G4cout, G4endl, and size().

Referenced by G4Fissioner::collide().

00049                                                                                   {
00050   if (verboseLevel > 1)
00051     G4cout << " >>> G4FissionStore::generateConfiguration" << G4endl;
00052   
00053   const G4double small = -30.0;
00054 
00055   G4double totProb = 0.0;
00056   configProbs.resize(size(),0.);
00057 
00058   if (verboseLevel > 3)
00059     G4cout << " amax " << amax << " ic " << size() << G4endl;
00060 
00061   for (size_t i = 0; i < size(); i++) {
00062     G4double ez = configurations[i].ezet;
00063     G4double pr = ez - amax;
00064 
00065     if (pr < small) pr = small;
00066     pr = std::exp(pr);
00067     if (verboseLevel > 2) {
00068       G4cout << configurations[i] << "\n probability " << pr << G4endl; 
00069     }
00070     totProb += pr;
00071     configProbs[i] = totProb;  
00072   };
00073 
00074   G4double st = totProb * rand;
00075 
00076   size_t igen = 0;
00077   while (configProbs[igen] <= st && igen < size()) igen++;
00078 
00079   if (verboseLevel > 3) G4cout << " igen " << igen << G4endl;
00080 
00081   return configurations[igen];
00082 }                   

void G4FissionStore::setVerboseLevel ( G4int  verbose = 1  )  [inline]

Definition at line 41 of file G4FissionStore.hh.

Referenced by G4Fissioner::collide().

00041 { verboseLevel = verbose; }

size_t G4FissionStore::size (  )  const [inline]

Definition at line 47 of file G4FissionStore.hh.

Referenced by G4Fissioner::collide(), and generateConfiguration().

00047 { return configurations.size(); }


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