50{
51
52
53 auto level = new G4ParticleHPNucLevel(0.0);
54
59 constexpr G4double eps = 1 * CLHEP::eV;
60 for (;;) {
61 if (aDataFile >> elevel) {
62
63 aDataFile >> egamma >> prob;
64 egamma *= CLHEP::keV;
65 elevel *= CLHEP::keV;
66 prob = std::max(prob, 1.e-6);
67
68
69
70
71 if (std::abs(elevel - elevel0) > eps) {
72 level->Normalize();
73 theLevels.push_back(level);
74 ++nLevels;
75 level = new G4ParticleHPNucLevel(elevel);
76 elevel0 = elevel;
77
78 }
79
80
84 for (
G4int i = 0; i < nLevels; ++i) {
86 if (de < del) {
87 next = i;
88 del = de;
89 }
90 }
91
92 if (next >= 0) {
93 level->AddGamma(egamma, prob, next);
94
95
96 }
97 }
98 else {
99
100 level->Normalize();
101 theLevels.push_back(level);
102 ++nLevels;
103
104 break;
105 }
106 }
107}
G4double GetLevelEnergy(G4int idx) const