84 _nucleusA(A), _nucleusZ(Z), _validity(false),
87 if (A <= 0 || Z <= 0 || Z > A ) {
89 "==== G4NuclearLevelManager ==== (Z,A) <0, or Z>A");
107 if (A <= 0 || Z <= 0 || Z > A ) {
109 "==== G4NuclearLevelManager ==== (Z,A) <0, or Z>A");
134 for (
unsigned int i=0; i<
_levels->size(); ++i)
137 G4double eDiff = std::fabs(e - energy);
218 for(
G4int i=0; i<30; ++i) { buffer[i] = 0; }
221 if(dataFile.fail()) { okay =
false; }
222 else { x = strtod(buffer, NULL); }
229 const G4double minProbability = 1e-8;
296 std::ifstream inFile(filename, std::ios::in);
299 #ifdef GAMMAFILEWARNING
302 <<
") does not have a gamma levels file" <<
G4endl;
315 while (
Read(inFile)) {
328 G4PtrSort<G4NuclearLevel>(
_levels);
368 if (!level || !
_levels)
return;
380 <<
") has " << nLevels <<
" levels" <<
G4endl
385 for (
G4int i=0; i<nLevels; ++i) {
398 <<
" " << nLevels <<
" levels"
399 <<
" Efermi(MeV)= " << efermi <<
G4endl;
401 for (
G4int i=0; i<nLevels; ++i) {
421 G4PtrSort<G4NuclearLevel>(
_levels);
std::vector< G4double > _m3CC
static G4double GetNuclearMass(const G4double A, const G4double Z)
std::vector< G4double > _m1CC
G4NuclearLevelManager(G4int Z, G4int A, const G4String &filename)
const G4NuclearLevel * HighestLevel() const
G4double MinLevelEnergy() const
std::vector< G4double > _l3CC
static G4double _gammaEnergy
G4NuclearLevel * UseLevelOrMakeNew(G4NuclearLevel *level)
static G4double _angularMomentum
std::vector< G4double > _weights
std::vector< G4double > _polarities
G4bool Read(std::ifstream &aDataFile)
static G4double _levelEnergy
G4bool ReadDataItem(std::istream &dataFile, G4double &x)
std::vector< G4NuclearLevel * > G4PtrLevelVector
std::vector< G4double > _m5CC
G4GLOB_DLL std::ostream G4cout
double A(double temperature)
std::vector< G4double > _l1CC
void SetNucleus(G4int Z, G4int A, const G4String &filename)
const G4NuclearLevel * LowestLevel() const
const G4NuclearLevel * GetLevel(G4int i) const
std::vector< G4double > _nPlusCC
std::vector< G4double > _energies
void MakeLevels(const G4String &filename)
std::vector< G4double > _m2CC
static const double second
G4bool ReadDataLine(std::ifstream &dataFile)
static G4double _halfLife
std::vector< G4double > _kCC
G4double energy(const ThreeVector &p, const G4double m)
const G4double x[NPOINTSGL]
void FinishLevel(G4NuclearLevel *level)
G4int NumberOfLevels() const
G4PtrLevelVector * _levels
static G4double _polarity
std::vector< G4double > _m4CC
static G4double _probability
void AddDataToLevel(G4NuclearLevel *level)
std::vector< G4double > _l2CC
G4double MaxLevelEnergy() const
const G4NuclearLevel * NearestLevel(G4double energy, G4double eDiffMax=1.e+8) const
std::vector< G4double > _totalCC