G4LevelReader Class Reference

#include <G4LevelReader.hh>


Public Member Functions

 G4LevelReader ()
 ~G4LevelReader ()
void FillLevels (G4int Z, G4int A, std::vector< G4NucLevel * > *levels, const G4String &filename)
void SetVerbose (G4int val)


Detailed Description

Definition at line 54 of file G4LevelReader.hh.


Constructor & Destructor Documentation

G4LevelReader::G4LevelReader (  ) 

Definition at line 46 of file G4LevelReader.cc.

00047   : nLevels(0),nLevelMax(50),fVerbose(0),fMinProbability(1.e-10)
00048 {
00049   fLevelEnergy = fNewEnergy = fDeltaEnergy = fNewTime 
00050     = fHalfLifeTime = fProbability = fICC = fx = 0.0;
00051   eGamma.resize(nLevelMax,0.0);
00052   wGamma.resize(nLevelMax,0.0);
00053   kICC.resize(nLevelMax,0.0);
00054   for(G4int i=0; i<30; ++i) { buffer[i] = 0; }
00055 }

G4LevelReader::~G4LevelReader (  ) 

Definition at line 57 of file G4LevelReader.cc.

00058 {}


Member Function Documentation

void G4LevelReader::FillLevels ( G4int  Z,
G4int  A,
std::vector< G4NucLevel * > *  levels,
const G4String filename 
)

Definition at line 60 of file G4LevelReader.cc.

References G4cout, and G4endl.

Referenced by G4LevelManager::G4LevelManager().

00063 { 
00064   std::ifstream inFile(filename);
00065   if (!inFile.is_open()) {
00066     if (fVerbose > 0) {
00067       G4cout << " G4LevelReader: nuclide (" 
00068              << Z << "," << A 
00069              << ") does not have a gamma levels file" << G4endl;
00070     }
00071     return;
00072   }
00073 
00074   // Read file with gamma data and fill levels
00075   fLevelEnergy = 0.0;
00076   nLevels = 0;
00077      
00078   // read next line
00079   while(Read(inFile)) {
00080 
00081     // create new level and start fill the next
00082     if(fNewEnergy != fLevelEnergy) {
00083       if(0 < nLevels) { MakeNewLevel(levels); }
00084       fLevelEnergy = fNewEnergy;
00085       fHalfLifeTime = fNewTime;
00086       nLevels = 0;
00087     }
00088 
00089     // fill data on a new daughter level
00090     eGamma[nLevels] = fDeltaEnergy*keV;
00091     wGamma[nLevels] = std::max(fProbability*0.01,fMinProbability);
00092     kICC[nLevels]   = fICC;
00093     ++nLevels;
00094 
00095     // check buffer size - should never happen
00096     if(nLevels > nLevelMax) {
00097       nLevelMax += 10;
00098       eGamma.resize(nLevelMax);
00099       wGamma.resize(nLevelMax);
00100       kICC.resize(nLevelMax);
00101     }
00102   }
00103   // end of reading
00104   if(0 < nLevels) {
00105     MakeNewLevel(levels);
00106     inFile.close();
00107   }
00108 }

void G4LevelReader::SetVerbose ( G4int  val  )  [inline]

Definition at line 104 of file G4LevelReader.hh.

00105 {
00106   fVerbose = val;
00107 }


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