Geant4 Cross Reference |
1 // 1 2 // ******************************************* 3 // * License and Disclaimer 4 // * 5 // * The Geant4 software is copyright of th 6 // * the Geant4 Collaboration. It is provided 7 // * conditions of the Geant4 Software License 8 // * LICENSE and available at http://cern.ch/ 9 // * include a list of copyright holders. 10 // * 11 // * Neither the authors of this software syst 12 // * institutes,nor the agencies providing fin 13 // * work make any representation or warran 14 // * regarding this software system or assum 15 // * use. Please see the license in the file 16 // * for the full disclaimer and the limitatio 17 // * 18 // * This code implementation is the result 19 // * technical work of the GEANT4 collaboratio 20 // * By using, copying, modifying or distri 21 // * any work based on the software) you ag 22 // * use in resulting scientific publicati 23 // * acceptance of all terms of the Geant4 Sof 24 // ******************************************* 25 // 26 // 27 // ------------------------------------------- 28 // 29 // GEANT4 source file 30 // 31 // File name: G4NuclearLevelData 32 // 33 // Author: V.Ivanchenko 34 // 35 // Creation date: 10 February 2015 36 // 37 // Modifications: 38 // 39 // ------------------------------------------- 40 41 #include "G4NuclearLevelData.hh" 42 #include "G4LevelReader.hh" 43 #include "G4LevelManager.hh" 44 #include "G4Element.hh" 45 #include "G4ElementTable.hh" 46 #include "G4DeexPrecoParameters.hh" 47 #include "G4PairingCorrection.hh" 48 #include "G4ShellCorrection.hh" 49 #include "G4SystemOfUnits.hh" 50 #include "G4AutoLock.hh" 51 #include "G4Pow.hh" 52 #include <iomanip> 53 54 G4NuclearLevelData* G4NuclearLevelData::theIns 55 56 const G4int G4NuclearLevelData::AMIN[] = {1, 57 1,3,4,5,7,8,10,12,14,16, // 58 20,19,21,22,25,27,29,31,35,35, // 59 39,39,42,42,44,45,50,48,53,54, // 60 60,60,63,64,69,69,73,73,76,78, // 61 81,83,85,88,90,91,93,96,98,100, // 62 104,105,108,109,112,114,117,121,121,125, // 63 128,129,130,134,135,139,140,143,144,149, // 64 150,153,155,158,159,161,164,166,170,171, // 65 176,178,184,186,191,193,199,201,206,208, // 66 212,217,225,228,230,233,234,237,241,241, // 67 245,248,252,253,255,258,260,263,266,269, // 68 272,277,282,0,289,0,293}; // 69 const G4int G4NuclearLevelData::AMAX[] = {1, 70 6,10,11,14,17,22,24,26,30,30, // 71 37,40,42,44,46,48,51,53,56,58, // 72 61,63,66,68,71,74,76,79,82,85, // 73 87,90,92,95,98,101,103,107,109,112, // 74 114,117,120,124,126,128,129,133,135,138, // 75 140,143,145,148,151,152,153,155,155,161, // 76 163,165,167,169,171,173,175,177,179,181, // 77 184,189,192,194,198,202,204,205,210,216, // 78 217,220,224,227,229,229,233,234,235,238, // 79 239,242,244,247,248,252,253,256,257,259, // 80 260,262,266,265,270,269,274,277,278,277, // 81 282,281,286,0,290,0,294}; // 82 const G4int G4NuclearLevelData::LEVELIDX[] = { 83 0, 6, 14, 22, 32, 43 84 120, 138, 160, 182, 205, 227 85 341, 364, 389, 414, 441, 469 86 620, 648, 679, 709, 741, 771 87 939, 973, 1008, 1044, 1081, 1118 88 1308, 1345, 1384, 1422, 1462, 1502 89 1685, 1721, 1758, 1796, 1832, 1869 90 2044, 2079, 2116, 2154, 2191, 2231 91 2441, 2483, 2526, 2567, 2609, 2648 92 2815, 2843, 2869, 2889, 2909, 2928 93 3024, 3040, 3055, 3070, 3083, 3099 94 3163, 3174, 3179, 3184, 3184, 3186 95 96 // obtained from PhotonEvaporation5.2 97 static const G4float LEVELMAX[3188] = {0.0f, 98 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 99 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 100 0.0f, 0.0f, 0.0f,0.42908f, 27.494f, 101 0.0f, 0.0f, 2.32f, 17.076f, 8.895f, 102 0.0f, 0.0f, 0.0f, 0.0f, 3.3537f, 103 4.142f, 0.0f, 0.0f, 0.0f, 0.0f, 104 15.3f, 11.05f, 13.39f,0.39727f, 5.772f, 105 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 106 6.555f, 3.073f, 6.936f, 0.0f, 0.0f, 107 11.193f, 7.584f, 10.411f, 6.6475f, 4.584f, 108 1.281f, 0.0f, 0.0f, 0.0f, 0.0f, 109 11.533f, 4.4361f, 8.393f, 4.07f, 3.6913f, 110 4.4679f, 9.813f, 12.592f, 6.578f, 4.289f, 111 1.162f, 0.569f, 1.117f, 0.0f, 0.0f, 112 6.2542f, 9.596f, 15.15f, 13.332f, 12.479f, 113 5.203f, 1.2424f, 2.12f, 0.67f, 0.66f, 114 0.0f, 0.55f, 0.4258f, 7.97f, 6.695f, 115 3.202f, 4.7304f, 0.657f, 1.02f, 0.0f, 116 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 117 6.5874f, 6.705f, 4.931f, 6.0233f, 2.1682f, 118 0.0f, 0.77f, 0.0f, 0.0f, 0.0f, 119 13.879f, 7.9356f, 7.9666f, 7.9201f, 6.2205f, 120 1.56f, 0.0f, 0.184f, 0.0f, 0.0f, 121 10.146f, 12.048f, 10.779f, 16.649f, 6.9861f, 122 0.904f, 0.89f, 0.94f, 3.257f, 0.0f, 123 0.0f, 5.0463f, 5.5484f, 8.3055f, 12.572f, 124 2.451f, 3.0304f, 1.829f, 0.475f, 1.616f, 125 0.0f, 0.0f, 1.867f, 3.819f, 5.542f, 126 10.857f, 4.271f, 4.6339f, 4.2469f, 5.3515f, 127 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 128 9.7407f, 5.978f, 3.7142f, 2.5743f, 4.5691f, 129 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 130 7.75f, 22.06f, 7.146f, 10.45f, 6.2237f, 131 5.6802f, 6.8692f, 3.53f, 2.5631f, 2.2f, 132 0.0f, 0.0f, 6.148f, 6.2534f, 7.3549f, 133 15.662f, 1.8478f, 6.184f, 4.2657f, 3.382f, 134 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 135 13.169f, 8.0051f, 9.977f, 8.8816f, 10.939f, 136 4.2098f, 0.0f, 2.881f, 0.0f, 0.0f, 137 0.0f, 7.1595f, 13.631f, 15.258f, 13.282f, 138 2.2979f, 2.1528f, 0.0f, 2.4756f, 0.114f, 139 0.081f, 0.0f, 0.0f, 0.0f, 0.0f, 140 10.7f, 17.958f, 9.2616f, 12.795f, 11.291f, 141 0.503f, 4.6814f, 1.027f, 1.175f, 0.0f, 142 0.0f, 0.0f, 0.0f, 0.0f, 6.2931f, 143 4.9981f, 10.559f, 7.4078f, 4.7103f, 9.8311f, 144 0.188f, 0.0f, 0.0f, 0.0f, 0.0f, 145 0.0f, 0.0f, 0.153f, 6.9944f, 12.65f, 146 8.323f, 12.813f, 4.9852f, 17.956f, 0.861f, 147 0.387f, 1.389f, 0.0f, 0.0f, 0.0f, 148 0.0f, 4.1151f, 10.507f, 14.882f, 18.6f, 149 2.3097f, 4.1671f, 1.561f, 3.2712f, 0.642f, 150 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 151 1.4534f, 6.4574f, 4.4831f, 22.459f, 8.3457f, 152 4.461f, 8.24f, 4.0111f, 6.5798f, 2.155f, 153 0.0f, 1.763f, 0.0f, 2.42f, 0.0f, 154 0.0f, 2.398f, 22.747f, 31.964f, 8.1327f, 155 5.0772f, 3.4636f, 0.9563f, 3.828f, 1.9801f, 156 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 157 0.0f, 3.378f, 3.3862f, 33.899f, 32.617f, 158 4.684f, 18.016f, 2.378f, 6.1158f, 2.377f, 159 4.6053f, 3.106f, 3.304f, 1.492f, 0.0f, 160 2.903f, 6.8423f, 14.465f, 5.6291f, 15.981f, 161 4.1652f,0.74133f, 2.9895f, 1.0857f, 4.1479f, 162 1.6216f, 0.0f, 0.0f, 0.0f, 0.0f, 163 0.0f, 9.2999f, 8.1524f, 18.08f, 4.848f, 164 2.3614f, 8.3611f, 6.5056f, 6.0652f, 6.0714f, 165 1.9415f, 1.6704f, 2.3482f, 0.527f, 0.0f, 166 0.0f, 9.7929f, 7.7913f, 8.4997f, 18.181f, 167 9.399f, 1.0645f, 4.4563f, 2.024f, 1.9648f, 168 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 169 0.929f, 0.0f, 21.201f, 13.363f, 20.245f, 170 5.4325f, 7.4197f, 5.7838f, 3.6768f, 7.8185f, 171 3.302f, 0.0f, 0.0f, 0.0f, 0.0f, 172 0.0f, 21.412f, 14.959f, 18.968f, 25.968f, 173 8.8115f, 4.4501f, 3.7987f, 2.2433f, 5.635f, 174 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 175 0.0f, 0.0f, 0.0f, 23.62f, 23.237f, 176 11.822f, 11.484f, 5.7594f, 6.0117f, 6.3734f, 177 4.7073f, 5.7301f, 4.4529f, 5.0788f, 3.1999f, 178 0.0f, 0.0f, 0.0f, 0.0f, 21.612f, 179 13.176f, 10.027f, 6.0137f, 9.342f, 7.3827f, 180 3.8813f, 6.2389f, 4.7881f, 6.7256f, 3.9442f, 181 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 182 8.1749f, 21.818f, 24.46f, 18.674f, 19.803f, 183 7.9844f, 5.8279f, 5.742f, 7.363f, 6.7074f, 184 2.3208f, 3.3456f, 1.3629f, 0.126f, 0.0f, 185 0.0f, 0.787f, 5.702f, 12.46f, 17.67f, 186 7.0166f, 9.6184f, 11.991f, 4.8351f, 6.8961f, 187 3.5226f, 1.897f, 3.3895f, 1.7f, 2.6959f, 188 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 189 11.141f, 20.532f, 10.092f, 11.2f, 9.6011f, 190 6.5618f, 6.8213f, 7.2959f, 6.5436f, 6.567f, 191 0.0f, 0.607f, 0.0f, 0.5216f, 0.0f, 192 1.723f, 9.093f, 15.145f, 20.786f, 18.374f, 193 10.955f, 6.496f, 8.6952f, 1.6147f, 2.2475f, 194 3.6071f, 0.5143f, 1.0456f, 0.0f, 0.0f, 195 0.0f, 0.0f, 0.0f, 4.2764f, 5.5996f, 196 10.749f, 11.215f, 9.67f, 11.588f, 10.509f, 197 5.031f, 6.2005f, 6.308f, 7.2832f, 6.0757f, 198 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 199 4.9129f, 20.291f, 11.246f, 20.862f, 7.8331f, 200 3.1294f, 4.1779f, 4.3581f, 4.231f,0.35986f, 201 2.359f, 4.2009f, 3.6771f, 3.9519f, 0.35f, 202 0.0f, 0.0f, 0.0f, 3.4808f, 6.2392f, 203 12.161f, 11.601f, 17.292f, 17.237f, 19.254f, 204 3.6412f, 4.4457f, 3.7652f, 5.1544f, 2.7331f, 205 0.0617f, 2.1664f, 0.0f, 1.4156f, 0.0f, 206 0.0f, 7.0196f, 9.744f, 6.9245f, 10.426f, 207 14.519f, 17.234f, 15.978f, 7.9989f, 4.4759f, 208 1.7662f, 4.2482f, 2.7694f, 4.006f, 2.0203f, 209 0.1572f, 0.0f, 0.271f, 0.0f, 0.0f, 210 7.7002f, 10.418f, 7.04f, 7.523f, 10.863f, 211 12.707f, 16.909f, 5.895f, 10.676f, 6.8279f, 212 5.2557f, 4.0712f, 7.8188f, 3.886f, 3.3024f, 213 1.3f, 0.0f, 2.1097f, 0.0f, 2.151f, 214 4.4757f, 7.7702f, 8.699f, 10.706f, 6.1075f, 215 4.3106f, 5.4145f, 2.6661f, 2.3527f, 1.8189f,0 216 0.72042f, 0.326f, 0.8058f, 0.0f, 0.0f, 217 0.0f, 0.0f, 0.0f, 0.0f, 2.4275f, 218 18.243f, 10.851f, 15.863f, 11.852f, 20.979f, 219 4.6052f, 3.8328f, 4.9689f, 4.5389f, 4.367f, 220 3.6636f, 3.6065f, 3.151f, 3.2399f, 1.429f, 221 0.0f, 0.0f, 2.721f, 6.0742f, 9.0586f, 222 8.7931f, 6.3857f, 12.745f, 13.503f, 8.328f, 223 0.2f, 4.0259f, 0.0f, 3.89f, 0.0f, 224 1.1729f, 4.5789f, 5.3908f, 0.0f, 0.0f, 225 1.969f, 1.7846f, 9.998f, 10.288f, 19.932f, 226 12.965f, 18.22f, 17.871f, 9.0696f, 9.3219f, 227 4.2838f, 3.306f, 8.4335f, 2.6235f, 4.9902f, 228 7.2441f, 2.0046f, 2.5089f, 0.0f, 1.295f, 229 14.217f, 7.2145f, 25.458f, 27.548f, 23.013f, 230 8.1846f, 2.9184f, 6.1139f, 2.8847f, 3.9728f,0 231 5.3543f, 0.833f, 3.2807f, 2.9831f, 3.5687f, 232 0.0f, 0.0f, 0.0f, 0.0f, 0.15f, 233 9.9578f, 28.646f, 8.7643f, 32.926f, 14.783f, 234 8.5832f, 6.9141f, 8.0304f, 5.7514f, 3.5642f, 235 5.1722f, 4.8903f, 6.1635f, 7.7224f, 6.6692f, 236 0.0f, 0.0f, 0.0f, 0.0f, 4.6208f, 237 19.449f, 11.403f, 21.128f, 2.8059f, 11.823f, 238 3.8679f, 1.1022f, 3.3503f, 4.1498f, 3.408f, 239 5.8492f, 4.0745f, 3.8528f, 0.0f, 3.3323f, 240 0.0f, 0.0f, 1.8897f, 0.0f, 4.4691f, 241 15.399f, 20.542f, 12.15f, 13.651f, 13.473f, 242 5.5734f, 3.8291f, 6.9713f, 3.1859f, 4.1884f, 243 5.814f, 5.0965f, 5.5036f, 3.3657f, 4.5112f, 244 0.0f, 2.1434f, 8.29f, 6.1544f, 0.0f, 245 12.184f, 7.873f, 11.233f, 6.127f, 11.31f, 246 5.7351f, 5.6965f, 2.8342f, 2.2537f, 1.6329f, 247 4.3457f, 4.0013f, 3.1181f, 1.426f, 1.5108f, 248 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 249 13.551f, 25.371f, 11.179f, 16.895f, 13.477f, 250 8.052f, 5.2309f, 5.8502f, 4.1374f, 4.7644f, 251 3.9443f, 5.0276f, 4.623f, 4.0718f, 2.3652f, 252 0.0f, 0.0f, 0.0f, 0.0f, 7.718f, 253 21.268f, 9.255f, 16.478f, 9.7134f, 17.252f, 254 5.9853f, 1.7885f, 8.5821f, 3.0101f, 2.7443f, 255 3.677f, 2.226f, 0.8939f, 0.0f, 0.0f, 256 11.735f, 15.066f, 16.603f, 9.8191f, 17.839f, 257 17.039f, 8.0346f, 8.6258f, 7.6612f, 8.8731f, 258 3.9736f, 4.5905f, 4.69f, 3.47f, 5.3112f, 259 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 260 7.858f, 12.411f, 12.757f, 15.734f, 16.356f, 261 4.8626f, 4.718f, 8.8805f, 1.1757f, 1.3974f,0 262 3.1859f, 0.897f, 2.5919f, 3.0022f, 0.0f, 263 2.6538f, 15.765f, 13.081f, 16.107f, 21.847f, 264 21.439f, 6.508f, 26.69f, 9.3653f, 12.159f, 265 3.8609f, 1.1665f, 3.2796f, 3.2208f, 4.001f, 266 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 267 7.4389f, 6.8243f, 12.955f, 6.2838f, 6.8641f, 268 8.5958f, 7.2168f, 6.8764f, 7.9774f, 0.8006f, 269 1.69f, 2.7706f, 0.6187f, 0.0f, 0.0f, 270 0.0f, 0.122f, 0.0f, 4.245f, 7.0015f, 271 11.115f, 8.1008f, 11.238f, 23.37f, 12.248f, 272 5.802f, 9.7369f, 4.574f, 4.7496f, 3.4675f, 273 3.142f, 2.2584f, 0.0f, 0.0f, 0.0f, 274 0.0f, 0.0f, 0.0f, 0.0f, 4.645f, 275 26.393f, 18.711f, 11.234f, 3.4709f, 21.43f, 276 4.9286f, 0.952f, 2.1987f,0.51329f, 1.4631f, 277 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 278 10.498f, 6.4229f, 13.32f, 14.58f, 14.532f, 279 35.996f, 23.397f, 24.919f, 18.722f, 7.0352f, 280 1.5209f, 3.55f, 1.49f, 2.8571f, 0.0f, 281 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 282 5.3799f, 14.119f, 2.1568f, 14.344f, 14.091f, 283 7.45f, 17.07f, 15.907f, 6.5819f, 0.3884f, 284 0.0f, 0.0f, 1.0155f, 0.0f, 0.0f, 285 0.0f, 3.2412f, 8.4975f, 4.6021f, 2.7442f, 286 21.825f, 34.66f, 21.565f, 22.435f, 18.45f, 287 5.799f, 7.276f, 5.0034f, 4.2123f, 3.9791f, 288 0.0f, 0.0f, 0.0f, 0.0f, 4.0846f, 289 8.6613f, 3.7894f, 5.0987f, 10.753f, 9.9587f, 290 15.876f, 13.422f, 5.331f, 5.77f, 5.949f, 291 1.919f,0.63041f, 1.5782f, 0.0f, 0.0f, 292 0.33f, 0.0f, 0.0f, 5.008f, 9.5907f, 293 16.03f, 17.086f, 16.583f, 19.505f, 24.115f, 294 11.549f, 1.6218f, 3.498f, 3.7561f, 3.921f, 295 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 296 0.6713f, 6.9085f, 2.555f, 9.1688f, 6.1412f, 297 8.635f, 11.582f, 15.865f, 14.882f, 5.8891f, 298 3.8641f, 1.4006f,0.79742f, 1.2129f, 0.7729f, 299 0.0f, 0.0f, 2.448f, 2.7445f, 2.5782f, 300 11.971f, 15.403f, 15.709f, 12.392f, 6.081f, 301 10.961f, 5.0848f, 4.8797f, 3.863f, 2.018f, 302 0.0f, 0.0f, 0.0f, 0.0f, 3.9984f, 303 8.5435f, 0.0f, 6.4758f, 5.1397f, 15.943f, 304 16.821f, 6.293f, 6.9628f, 8.3751f, 10.907f, 305 2.4978f, 0.3908f, 1.5862f, 0.9816f, 0.0f, 306 0.0f, 5.0193f, 6.4994f, 9.1066f, 7.0098f, 307 9.9276f, 16.006f, 11.941f, 19.176f, 15.295f, 308 26.178f, 4.8635f, 5.0647f, 5.3886f, 4.2047f, 309 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 310 0.0f, 6.764f, 0.0f, 7.2134f, 3.3507f, 311 4.9183f, 9.817f, 4.7857f, 4.7272f, 7.5245f, 312 4.1868f, 6.4177f, 6.0629f, 1.7843f, 0.6172f, 313 0.175f, 0.0f, 0.0f, 0.0f, 0.0f, 314 7.4704f, 10.076f, 9.662f, 11.128f, 7.224f, 315 4.0387f, 6.9217f, 7.2047f, 13.394f, 6.7925f, 316 3.2769f, 6.417f, 3.3438f, 1.5382f, 0.0f, 317 0.0f, 0.0f, 4.4008f, 0.0f, 0.0f, 318 4.7279f, 0.3701f, 7.3785f, 0.9063f, 7.566f, 319 5.408f, 4.8181f, 7.5907f, 5.858f, 2.3926f, 320 0.4824f, 0.3197f, 0.0f, 0.267f, 0.0f, 321 0.0f, 2.1895f, 0.0f, 2.8393f, 2.6094f, 322 6.2602f, 8.6901f, 7.541f, 10.545f, 7.0075f, 323 12.741f, 13.482f, 4.1802f, 10.671f, 7.3585f, 324 2.64f, 4.1138f, 1.4595f, 2.541f, 1.4647f, 325 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 326 0.1684f, 6.254f, 0.0f, 6.076f, 7.14f, 327 3.8694f, 6.987f, 3.1382f, 5.0544f, 4.7856f, 328 6.1981f, 2.404f,0.54259f,0.94375f,0.52237f, 329 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 330 4.085f, 3.449f, 4.231f, 6.8786f, 4.6838f, 331 5.2578f, 7.7332f, 4.9136f, 7.4078f, 5.5103f, 332 3.1292f, 4.5298f, 2.5926f, 3.4243f,0.74782f, 333 0.0f, 3.153f, 0.0f, 0.0f, 0.0f, 334 6.1583f, 0.0f, 7.1722f, 0.0f, 5.7177f, 335 7.22f, 5.3252f, 9.5804f, 5.3789f, 10.935f, 336 1.242f, 1.5604f, 1.7705f,0.46871f, 1.76f, 337 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 338 1.7955f, 5.5345f, 5.2669f, 5.8034f, 2.9527f, 339 4.8702f, 7.9412f, 6.8197f, 10.031f, 8.7932f, 340 4.0612f, 5.2842f, 3.0684f, 6.1621f, 1.1878f, 341 0.0f, 1.2969f, 0.0f, 1.366f, 0.0f, 342 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 343 0.9716f, 5.608f, 0.8768f, 6.3331f, 1.8545f, 344 3.6298f, 3.9657f, 4.0664f, 2.6432f, 2.5481f, 345 2.6431f, 4.418f, 1.728f, 0.8683f, 0.2536f, 346 0.0f, 0.0f, 0.0f, 0.0f, 2.138f, 347 3.3139f, 1.723f, 4.1665f, 3.1024f, 5.3303f, 348 13.516f, 10.406f, 12.699f, 10.66f, 8.6305f, 349 8.7056f, 7.306f, 13.675f, 4.142f, 4.133f, 350 1.459f, 0.0f, 0.0f, 0.0f, 0.0f, 351 2.973f, 0.273f, 1.7366f, 0.0f, 3.401f, 352 4.2969f, 3.5777f, 5.2835f, 7.2753f, 5.8247f, 353 7.632f, 5.996f, 6.191f, 0.4945f, 0.7589f,0 354 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 355 3.0402f, 1.671f, 2.2946f, 1.1297f, 3.3265f, 356 5.2269f, 3.7108f, 5.5289f, 4.3583f, 5.9111f, 357 10.084f, 4.911f, 2.922f, 1.3282f, 3.2624f, 358 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 359 0.0f, 0.0f, 1.636f, 0.1579f, 0.324f, 360 2.7011f, 2.3462f, 4.546f, 2.9023f, 2.1495f, 361 2.926f, 0.7284f, 0.517f, 0.4793f, 0.8919f, 362 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 363 0.0f, 0.0f, 2.3838f, 0.0f, 2.7762f, 364 4.1298f, 3.013f, 5.9306f, 7.3077f, 12.026f, 365 4.2997f, 0.6189f, 5.1678f, 0.7328f, 3.9615f, 366 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 367 0.0f, 0.531f, 1.8852f, 0.827f, 0.0f, 368 3.4623f, 1.973f, 3.0023f, 3.0451f, 0.778f, 369 1.7498f, 0.0f,0.95506f, 0.0f, 0.0f, 370 0.0f, 0.0f, 0.0f, 0.0f, 2.0101f, 371 3.9294f, 1.77f, 7.87f, 6.2832f, 6.2661f, 372 3.2877f, 1.0289f, 2.3687f, 0.7241f, 2.382f, 373 1.05f, 0.0f, 0.0f, 0.0f, 0.0f, 374 1.884f, 0.0918f, 2.438f, 0.322f, 2.013f, 375 0.1675f, 0.452f,0.25704f, 0.0f, 0.8747f,0 376 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 377 1.4213f, 3.6814f, 0.6738f, 2.104f, 2.322f, 378 2.4944f, 3.0971f, 2.1663f, 3.2834f,0.77929f, 379 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 380 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 381 0.0f, 0.8408f, 0.0f, 2.14f, 0.0f, 382 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 383 0.0f, 1.847f, 0.0f, 0.0f, 0.0f, 384 4.0407f, 5.077f, 4.835f, 5.513f, 3.107f, 385 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 386 4.6146f,0.64676f, 1.1971f, 0.2998f, 0.0f, 387 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 388 6.0963f, 1.3577f, 4.172f, 5.0342f, 6.123f, 389 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 390 2.2f, 0.5324f, 0.8789f, 1.1856f,0.29937f, 391 0.0f, 0.0f, 0.0f, 0.0f, 0.038f, 392 4.0332f, 0.5817f, 5.6807f, 4.7135f, 0.0f, 393 0.0f, 0.0f, 0.0f, 0.24f, 0.0f, 394 0.4894f, 0.59f, 1.2275f, 0.471f, 0.9784f, 395 0.0f, 0.0f, 0.0f, 0.315f, 0.0f, 396 1.6952f, 1.25f, 0.9698f, 0.417f, 0.0f, 397 0.0f, 0.2532f, 0.0f, 0.0f, 0.0f, 398 0.4692f, 0.0f, 0.0f, 0.0f, 0.0f, 399 0.0f, 2.372f, 0.669f, 0.0f,0.55843f, 400 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 401 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 402 0.0f, 0.0f, 1.6997f, 2.8792f, 3.465f, 403 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 404 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 405 0.0f, 0.656f, 2.868f, 1.157f, 0.0f, 406 0.0f, 0.0f, 0.0f, 0.0f, 0.6f, 407 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 408 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 409 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 410 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 411 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 412 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 413 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 414 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 415 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 416 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 417 418 namespace 419 { 420 G4Mutex nuclearLevelDataMutex = G4MUTEX_INIT 421 } 422 423 G4NuclearLevelData* G4NuclearLevelData::GetIns 424 { 425 if (nullptr == theInstance) { 426 G4AutoLock l(&nuclearLevelDataMutex); 427 if (nullptr == theInstance) { 428 static G4NuclearLevelData theData; 429 theInstance = &theData; 430 } 431 l.unlock(); 432 } 433 return theInstance; 434 } 435 436 G4NuclearLevelData::G4NuclearLevelData() 437 { 438 fDeexPrecoParameters = new G4DeexPrecoParame 439 fLevelReader = new G4LevelReader(this); 440 for(G4int Z=0; Z<ZMAX; ++Z) { 441 (fLevelManagers[Z]).resize(AMAX[Z]-AMIN[Z] 442 (fLevelManagerFlags[Z]).resize(AMAX[Z]-AMI 443 } 444 fShellCorrection = new G4ShellCorrection(); 445 fPairingCorrection = new G4PairingCorrection 446 fG4calc = G4Pow::GetInstance(); 447 } 448 449 G4NuclearLevelData::~G4NuclearLevelData() 450 { 451 delete fLevelReader; 452 delete fDeexPrecoParameters; 453 delete fShellCorrection; 454 delete fPairingCorrection; 455 for(G4int Z=1; Z<ZMAX; ++Z) { 456 size_t nn = (fLevelManagers[Z]).size(); 457 for(size_t j=0; j<nn; ++j) { 458 delete (fLevelManagers[Z])[j]; 459 } 460 } 461 } 462 463 const G4LevelManager* 464 G4NuclearLevelData::GetLevelManager(G4int Z, G 465 { 466 if(Z < 1 || Z >= ZMAX || A < AMIN[Z] || A > 467 const G4int idx = A - AMIN[Z]; 468 if( !(fLevelManagerFlags[Z])[idx] ) { 469 G4AutoLock l(&nuclearLevelDataMutex); 470 if( !(fLevelManagerFlags[Z])[idx] ) { 471 (fLevelManagers[Z])[idx] = fLevelReader- 472 (fLevelManagerFlags[Z])[idx] = true; 473 } 474 l.unlock(); 475 } 476 return (fLevelManagers[Z])[idx]; 477 } 478 479 G4bool 480 G4NuclearLevelData::AddPrivateData(G4int Z, G4 481 { 482 G4bool res = false; 483 if(Z > 0 && Z < ZMAX && A >= AMIN[Z] && A <= 484 G4AutoLock l(&nuclearLevelDataMutex); 485 const G4LevelManager* newman = fLevelReade 486 // if file is corrupted G4LevelReader shou 487 if(newman != nullptr) { 488 res = true; 489 if(0 < fDeexPrecoParameters->GetVerbose( 490 G4cout << "G4NuclearLevelData::AddPrivateDat 491 << " A= " << A << " from <" << fname 492 << "> is done" << G4endl; 493 } 494 const G4int idx = A - AMIN[Z]; 495 delete (fLevelManagers[Z])[idx]; 496 (fLevelManagers[Z])[idx] = newman; 497 (fLevelManagerFlags[Z])[idx] = true; 498 } 499 l.unlock(); 500 } else { 501 G4ExceptionDescription ed; 502 ed << "private nuclear level data for Z= " 503 << " outside allowed limits "; 504 G4Exception("G4NuclearLevelData::AddPrivat 505 ed,"Stop execution"); 506 } 507 return res; 508 } 509 510 G4int G4NuclearLevelData::GetMinA(G4int Z) con 511 { 512 return (Z >= 0 && Z < ZMAX) ? AMIN[Z] : 0; 513 } 514 515 G4int G4NuclearLevelData::GetMaxA(G4int Z) con 516 { 517 return (Z >= 0 && Z < ZMAX) ? AMAX[Z] : 0; 518 } 519 520 void G4NuclearLevelData::UploadNuclearLevelDat 521 { 522 if(fInitialized) return; 523 G4AutoLock l(&nuclearLevelDataMutex); 524 if(!fInitialized) { 525 fInitialized = true; 526 G4int mZ = Zlim + 1; 527 if(mZ > ZMAX) { mZ = ZMAX; } 528 for(G4int Z=1; Z<mZ; ++Z) { 529 for(G4int A=AMIN[Z]; A<=AMAX[Z]; ++A) { 530 G4int idx = A - AMIN[Z]; 531 if( !(fLevelManagerFlags[Z])[idx] ) { 532 (fLevelManagers[Z])[idx] = fLevelReader->C 533 (fLevelManagerFlags[Z])[idx] = true; 534 } 535 } 536 } 537 } 538 l.unlock(); 539 } 540 541 G4double G4NuclearLevelData::GetMaxLevelEnergy 542 { 543 return (0 < Z && Z < ZMAX && A >= AMIN[Z] && 544 (G4double)(LEVELMAX[LEVELIDX[Z] + A - AMIN 545 } 546 547 G4float G4NuclearLevelData::MaxLevelEnergy(G4i 548 { 549 return (0 < Z && Z < ZMAX && A >= AMIN[Z] && 550 (LEVELMAX[LEVELIDX[Z] + A - AMIN[Z]]) : 0. 551 } 552 553 G4double G4NuclearLevelData::GetLevelEnergy(G4 554 { 555 G4double e = energy; 556 if(e <= GetMaxLevelEnergy(Z, A)) { 557 const G4LevelManager* man = GetLevelManage 558 if(man != nullptr) { 559 e = (G4double)man->NearestLevelEnergy(e, 560 } 561 } 562 return e; 563 } 564 565 G4double 566 G4NuclearLevelData::GetLowEdgeLevelEnergy(G4in 567 { 568 G4double e = GetMaxLevelEnergy(Z, A); 569 if(energy < e) { 570 const G4LevelManager* man = GetLevelManage 571 if(man != nullptr) { 572 e = (G4double)man->NearestLowEdgeLevelEn 573 } 574 } 575 return e; 576 } 577 578 G4double 579 G4NuclearLevelData::FindLevel(G4int Z, G4int A 580 G4double Mass, G 581 { 582 G4double T = ekin; 583 G4double E2 = (Mass - partMass)*(Mass - part 584 G4double Eex = std::sqrt(E2 - 2.0*Mass*T) - 585 if(Eex <= GetMaxLevelEnergy(Z, A)) { 586 if(Eex <= 0.0) { 587 Eex = 0.0; 588 T = (E2 - resMass*resMass)*0.5/Mass; 589 } else { 590 const G4LevelManager* man = GetLevelMana 591 if(man != nullptr) { 592 size_t idx = man->NearestLevelIndex(Ee 593 for(;;) { 594 Eex = (G4double)man->LevelEnergy(idx 595 T = (E2 - (resMass+Eex)*(resMass+Eex 596 if(T >= 0.0 || 0 == idx) { break; } 597 --idx; 598 } 599 } 600 } 601 T = std::max(T, 0.0); 602 } 603 return T; 604 } 605 606 G4DeexPrecoParameters* G4NuclearLevelData::Get 607 { 608 return fDeexPrecoParameters; 609 } 610 611 G4PairingCorrection* G4NuclearLevelData::GetPa 612 { 613 return fPairingCorrection; 614 } 615 616 G4ShellCorrection* G4NuclearLevelData::GetShel 617 { 618 return fShellCorrection; 619 } 620 621 G4double G4NuclearLevelData::GetLevelDensity(G 622 { 623 if (fDeexPrecoParameters->GetLevelDensityFla 624 return A*fDeexPrecoParameters->GetLevelDen 625 } 626 const G4LevelManager* man = GetLevelManager( 627 return (nullptr != man) ? man->LevelDensity( 628 : 0.058025*A*(1.0 + 5.9059/fG4calc->Z13(A) 629 } 630 631 G4double G4NuclearLevelData::GetPairingCorrect 632 { 633 return fPairingCorrection->GetPairingCorrect 634 } 635 636 void G4NuclearLevelData::StreamLevels(std::ost 637 G4int Z, 638 { 639 const G4LevelManager* man = GetLevelManager( 640 if (man) { 641 os << "Level data for Z= " << Z << " A= " 642 << man->NumberOfTransitions() + 1 << " 643 man->StreamInfo(os); 644 } 645 } 646