#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) |
Definition at line 54 of file G4LevelReader.hh.
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 | ( | ) |
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] |