Geant4 Cross Reference

Cross-Referencing   Geant4
Geant4/processes/hadronic/models/de_excitation/management/src/G4NuclearLevelData.cc

Version: [ ReleaseNotes ] [ 1.0 ] [ 1.1 ] [ 2.0 ] [ 3.0 ] [ 3.1 ] [ 3.2 ] [ 4.0 ] [ 4.0.p1 ] [ 4.0.p2 ] [ 4.1 ] [ 4.1.p1 ] [ 5.0 ] [ 5.0.p1 ] [ 5.1 ] [ 5.1.p1 ] [ 5.2 ] [ 5.2.p1 ] [ 5.2.p2 ] [ 6.0 ] [ 6.0.p1 ] [ 6.1 ] [ 6.2 ] [ 6.2.p1 ] [ 6.2.p2 ] [ 7.0 ] [ 7.0.p1 ] [ 7.1 ] [ 7.1.p1 ] [ 8.0 ] [ 8.0.p1 ] [ 8.1 ] [ 8.1.p1 ] [ 8.1.p2 ] [ 8.2 ] [ 8.2.p1 ] [ 8.3 ] [ 8.3.p1 ] [ 8.3.p2 ] [ 9.0 ] [ 9.0.p1 ] [ 9.0.p2 ] [ 9.1 ] [ 9.1.p1 ] [ 9.1.p2 ] [ 9.1.p3 ] [ 9.2 ] [ 9.2.p1 ] [ 9.2.p2 ] [ 9.2.p3 ] [ 9.2.p4 ] [ 9.3 ] [ 9.3.p1 ] [ 9.3.p2 ] [ 9.4 ] [ 9.4.p1 ] [ 9.4.p2 ] [ 9.4.p3 ] [ 9.4.p4 ] [ 9.5 ] [ 9.5.p1 ] [ 9.5.p2 ] [ 9.6 ] [ 9.6.p1 ] [ 9.6.p2 ] [ 9.6.p3 ] [ 9.6.p4 ] [ 10.0 ] [ 10.0.p1 ] [ 10.0.p2 ] [ 10.0.p3 ] [ 10.0.p4 ] [ 10.1 ] [ 10.1.p1 ] [ 10.1.p2 ] [ 10.1.p3 ] [ 10.2 ] [ 10.2.p1 ] [ 10.2.p2 ] [ 10.2.p3 ] [ 10.3 ] [ 10.3.p1 ] [ 10.3.p2 ] [ 10.3.p3 ] [ 10.4 ] [ 10.4.p1 ] [ 10.4.p2 ] [ 10.4.p3 ] [ 10.5 ] [ 10.5.p1 ] [ 10.6 ] [ 10.6.p1 ] [ 10.6.p2 ] [ 10.6.p3 ] [ 10.7 ] [ 10.7.p1 ] [ 10.7.p2 ] [ 10.7.p3 ] [ 10.7.p4 ] [ 11.0 ] [ 11.0.p1 ] [ 11.0.p2 ] [ 11.0.p3, ] [ 11.0.p4 ] [ 11.1 ] [ 11.1.1 ] [ 11.1.2 ] [ 11.1.3 ] [ 11.2 ] [ 11.2.1 ] [ 11.2.2 ] [ 11.3.0 ]

Diff markup

Differences between /processes/hadronic/models/de_excitation/management/src/G4NuclearLevelData.cc (Version 11.3.0) and /processes/hadronic/models/de_excitation/management/src/G4NuclearLevelData.cc (Version 10.2.p2)


  1 //                                                  1 //
  2 // *******************************************      2 // ********************************************************************
  3 // * License and Disclaimer                         3 // * License and Disclaimer                                           *
  4 // *                                                4 // *                                                                  *
  5 // * The  Geant4 software  is  copyright of th      5 // * The  Geant4 software  is  copyright of the Copyright Holders  of *
  6 // * the Geant4 Collaboration.  It is provided      6 // * the Geant4 Collaboration.  It is provided  under  the terms  and *
  7 // * conditions of the Geant4 Software License      7 // * conditions of the Geant4 Software License,  included in the file *
  8 // * LICENSE and available at  http://cern.ch/      8 // * LICENSE and available at  http://cern.ch/geant4/license .  These *
  9 // * include a list of copyright holders.           9 // * include a list of copyright holders.                             *
 10 // *                                               10 // *                                                                  *
 11 // * Neither the authors of this software syst     11 // * Neither the authors of this software system, nor their employing *
 12 // * institutes,nor the agencies providing fin     12 // * institutes,nor the agencies providing financial support for this *
 13 // * work  make  any representation or  warran     13 // * work  make  any representation or  warranty, express or implied, *
 14 // * regarding  this  software system or assum     14 // * regarding  this  software system or assume any liability for its *
 15 // * use.  Please see the license in the file      15 // * use.  Please see the license in the file  LICENSE  and URL above *
 16 // * for the full disclaimer and the limitatio     16 // * for the full disclaimer and the limitation of liability.         *
 17 // *                                               17 // *                                                                  *
 18 // * This  code  implementation is the result      18 // * This  code  implementation is the result of  the  scientific and *
 19 // * technical work of the GEANT4 collaboratio     19 // * technical work of the GEANT4 collaboration.                      *
 20 // * By using,  copying,  modifying or  distri     20 // * By using,  copying,  modifying or  distributing the software (or *
 21 // * any work based  on the software)  you  ag     21 // * any work based  on the software)  you  agree  to acknowledge its *
 22 // * use  in  resulting  scientific  publicati     22 // * use  in  resulting  scientific  publications,  and indicate your *
 23 // * acceptance of all terms of the Geant4 Sof     23 // * acceptance of all terms of the Geant4 Software license.          *
 24 // *******************************************     24 // ********************************************************************
 25 //                                                 25 //
                                                   >>  26 // $Id: G4NuclearLevelData.cc 86536 2014-11-13 19:05:21Z vnivanch $
 26 //                                                 27 //
 27 // -------------------------------------------     28 // -------------------------------------------------------------------
 28 //                                                 29 //
 29 //      GEANT4 source file                         30 //      GEANT4 source file 
 30 //                                                 31 //
 31 //      File name:     G4NuclearLevelData          32 //      File name:     G4NuclearLevelData
 32 //                                                 33 //
 33 //      Author:        V.Ivanchenko                34 //      Author:        V.Ivanchenko
 34 //                                                 35 // 
 35 //      Creation date: 10 February 2015            36 //      Creation date: 10 February 2015
 36 //                                                 37 //
 37 //      Modifications:                             38 //      Modifications:
 38 //                                                 39 //      
 39 // -------------------------------------------     40 // -------------------------------------------------------------------
 40                                                    41 
 41 #include "G4NuclearLevelData.hh"                   42 #include "G4NuclearLevelData.hh"
 42 #include "G4LevelReader.hh"                        43 #include "G4LevelReader.hh"
 43 #include "G4LevelManager.hh"                       44 #include "G4LevelManager.hh"
 44 #include "G4Element.hh"                            45 #include "G4Element.hh"
 45 #include "G4ElementTable.hh"                       46 #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                                                    47 
 54 G4NuclearLevelData* G4NuclearLevelData::theIns <<  48 G4NuclearLevelData* G4NuclearLevelData::theInstance = 0;
 55                                                    49 
 56 const G4int G4NuclearLevelData::AMIN[] = {1,   <<  50 const G4int G4NuclearLevelData::AMIN[] = {0,
 57     1,3,4,5,7,8,10,12,14,16,                // <<  51     1,3,6,7,8,10,12,14,17,18,               // Z= 1-10
 58    20,19,21,22,25,27,29,31,35,35,           // <<  52    21,22,23,26,27,28,32,32,36,36,           // Z= 11-20
 59    39,39,42,42,44,45,50,48,53,54,           // <<  53    41,42,45,45,48,49,53,54,57,59,           // Z= 21-30
 60    60,60,63,64,69,69,73,73,76,78,           // <<  54    61,62,66,68,70,72,74,76,78,80,           // Z= 31-40
 61    81,83,85,88,90,91,93,96,98,100,          // <<  55    82,84,86,88,92,93,95,98,101,101,         // Z= 41-50
 62   104,105,108,109,112,114,117,121,121,125,  // <<  56   105,105,109,110,114,118,121,122,125,128,  // Z= 51-60
 63   128,129,130,134,135,139,140,143,144,149,  // <<  57   131,130,137,138,140,140,141,144,145,151,  // Z= 61-70
 64   150,153,155,158,159,161,164,166,170,171,  // <<  58   151,154,159,160,161,162,168,168,172,172,  // Z= 71-80
 65   176,178,184,186,191,193,199,201,206,208,  // <<  59   181,180,187,189,196,196,206,206,212,214,  // Z= 81-90
 66   212,217,225,228,230,233,234,237,241,241,  // <<  60   229,230,233,236,241,240,240,245,243,249,  // Z= 91-100
 67   245,248,252,253,255,258,260,263,266,269,  // <<  61   251,251};
 68   272,277,282,0,289,0,293};                 // <<  62 const G4int G4NuclearLevelData::AMAX[] = {0,
 69 const G4int G4NuclearLevelData::AMAX[] = {1,   <<  63     3,8,9,12,13,16,21,22,27,32,             // Z= 1-10
 70     6,10,11,14,17,22,24,26,30,30,           // <<  64    32,36,35,42,43,46,45,48,50,53,           // Z= 11-20
 71    37,40,42,44,46,48,51,53,56,58,           // <<  65    56,58,60,64,64,68,68,76,73,78,           // Z= 21-30
 72    61,63,66,68,71,74,76,79,82,85,           // <<  66    81,84,84,88,88,96,96,102,102,108,        // Z= 31-40
 73    87,90,92,95,98,101,103,107,109,112,      // <<  67   105,110,111,114,115,121,120,130,130,134,  // Z= 41-50
 74   114,117,120,124,126,128,129,133,135,138,  // <<  68   135,139,139,144,145,148,149,152,151,156,  // Z= 51-60
 75   140,143,145,148,151,152,153,155,155,161,  // <<  69   155,160,159,164,166,170,169,172,175,178,  // Z= 61-70
 76   163,165,167,169,171,173,175,177,179,181,  // <<  70   180,184,190,190,190,198,198,204,201,208,  // Z= 71-80,
 77   184,189,192,194,198,202,204,205,210,216,  // <<  71   210,212,215,218,217,222,227,232,232,234,  // Z= 81-90,
 78   217,220,224,227,229,229,233,234,235,238,  // <<  72   236,240,242,246,246,249,251,253,254,256,  // Z= 91-100
 79   239,242,244,247,248,252,253,256,257,259,  // <<  73   251,254};
 80   260,262,266,265,270,269,274,277,278,277,  // <<  74 
 81   282,281,286,0,290,0,294};                 // <<  75 #ifdef G4MULTITHREADED
 82 const G4int G4NuclearLevelData::LEVELIDX[] = { <<  76 G4Mutex G4NuclearLevelData::nuclearLevelDataMutex = G4MUTEX_INITIALIZER;
 83      0,      6,     14,     22,     32,     43 <<  77 #endif
 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                                                    78 
423 G4NuclearLevelData* G4NuclearLevelData::GetIns     79 G4NuclearLevelData* G4NuclearLevelData::GetInstance()
424 {                                                  80 {
425   if (nullptr == theInstance)  {               <<  81   if (!theInstance)  { 
426     G4AutoLock l(&nuclearLevelDataMutex);      <<  82     static G4NuclearLevelData theData;
427     if (nullptr == theInstance)  {             <<  83     theInstance = &theData; 
428       static G4NuclearLevelData theData;       << 
429       theInstance = &theData;                  << 
430     }                                          << 
431     l.unlock();                                << 
432   }                                                84   }
433   return theInstance;                              85   return theInstance;
434 }                                                  86 }   
435                                                    87 
436 G4NuclearLevelData::G4NuclearLevelData()           88 G4NuclearLevelData::G4NuclearLevelData()
437 {                                                  89 {
438   fDeexPrecoParameters = new G4DeexPrecoParame <<  90   fLevelReader = new G4LevelReader();
439   fLevelReader = new G4LevelReader(this);      << 
440   for(G4int Z=0; Z<ZMAX; ++Z) {                    91   for(G4int Z=0; Z<ZMAX; ++Z) {
441     (fLevelManagers[Z]).resize(AMAX[Z]-AMIN[Z]     92     (fLevelManagers[Z]).resize(AMAX[Z]-AMIN[Z]+1,nullptr);
442     (fLevelManagerFlags[Z]).resize(AMAX[Z]-AMI     93     (fLevelManagerFlags[Z]).resize(AMAX[Z]-AMIN[Z]+1,false);
443   }                                                94   }
444   fShellCorrection = new G4ShellCorrection();  << 
445   fPairingCorrection = new G4PairingCorrection << 
446   fG4calc = G4Pow::GetInstance();              << 
447 }                                                  95 }
448                                                    96 
449 G4NuclearLevelData::~G4NuclearLevelData()          97 G4NuclearLevelData::~G4NuclearLevelData()
450 {                                                  98 {
451   delete fLevelReader;                             99   delete fLevelReader;
452   delete fDeexPrecoParameters;                 << 
453   delete fShellCorrection;                     << 
454   delete fPairingCorrection;                   << 
455   for(G4int Z=1; Z<ZMAX; ++Z) {                   100   for(G4int Z=1; Z<ZMAX; ++Z) {
456     size_t nn = (fLevelManagers[Z]).size();       101     size_t nn = (fLevelManagers[Z]).size();
457     for(size_t j=0; j<nn; ++j) {                  102     for(size_t j=0; j<nn; ++j) { 
                                                   >> 103       //G4cout << " G4NuclearLevelData delete Z= " << Z 
                                                   >> 104       //       << " A= " << AMIN[Z]+j << G4endl;
458       delete (fLevelManagers[Z])[j];              105       delete (fLevelManagers[Z])[j]; 
459     }                                             106     }
460   }                                               107   }
461 }                                                 108 }
462                                                   109 
463 const G4LevelManager*                             110 const G4LevelManager* 
464 G4NuclearLevelData::GetLevelManager(G4int Z, G    111 G4NuclearLevelData::GetLevelManager(G4int Z, G4int A)
465 {                                                 112 {
466   if(Z < 1 || Z >= ZMAX || A < AMIN[Z] || A >  << 113   const G4LevelManager* man = nullptr;
467   const G4int idx = A - AMIN[Z];               << 114   //G4cout << "G4NuclearLevelData: Z= " << Z << " A= " << A << G4endl;  
468   if( !(fLevelManagerFlags[Z])[idx] ) {        << 115   if(0 < Z && Z < ZMAX && A >= AMIN[Z] && A <= AMAX[Z]) {
469     G4AutoLock l(&nuclearLevelDataMutex);      << 116     if(!(fLevelManagerFlags[Z])[A - AMIN[Z]]) {
470     if( !(fLevelManagerFlags[Z])[idx] ) {      << 117       InitialiseForIsotope(Z, A);
471       (fLevelManagers[Z])[idx] = fLevelReader- << 
472       (fLevelManagerFlags[Z])[idx] = true;     << 
473     }                                             118     }
474     l.unlock();                                << 119     man = (fLevelManagers[Z])[A - AMIN[Z]];
475   }                                               120   }
476   return (fLevelManagers[Z])[idx];             << 121   //G4cout << man << G4endl;
                                                   >> 122   return man;
477 }                                                 123 }
478                                                   124 
479 G4bool                                         << 125 G4bool 
480 G4NuclearLevelData::AddPrivateData(G4int Z, G4 << 126 G4NuclearLevelData::AddPrivateData(G4int Z, G4int A, const G4String& filename)
481 {                                                 127 {
482   G4bool res = false;                             128   G4bool res = false; 
483   if(Z > 0 && Z < ZMAX && A >= AMIN[Z] && A <= << 129   if(A >= AMIN[Z] && A <= AMAX[Z]) { 
484     G4AutoLock l(&nuclearLevelDataMutex);      << 130     const G4LevelManager* newman = 
485     const G4LevelManager* newman = fLevelReade << 131       fLevelReader->MakeLevelManager(Z, A, filename);
486     // if file is corrupted G4LevelReader shou << 132     if(newman) { 
487     if(newman != nullptr) {                    << 133       delete (fLevelManagers[Z])[A - AMIN[Z]]; 
                                                   >> 134       (fLevelManagers[Z])[A - AMIN[Z]] = newman;
                                                   >> 135       (fLevelManagerFlags[Z])[A - AMIN[Z]] = true;
488       res = true;                                 136       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     }                                             137     }
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   }                                               138   }
507   return res;                                     139   return res;
508 }                                                 140 }
509                                                   141 
510 G4int G4NuclearLevelData::GetMinA(G4int Z) con << 142 void G4NuclearLevelData::InitialiseForIsotope(G4int Z, G4int A)
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 {                                                 143 {
568   G4double e = GetMaxLevelEnergy(Z, A);        << 144 #ifdef G4MULTITHREADED
569   if(energy < e) {                             << 145   G4MUTEXLOCK(&G4NuclearLevelData::nuclearLevelDataMutex);
570     const G4LevelManager* man = GetLevelManage << 146 #endif
571     if(man != nullptr) {                       << 147   if(!(fLevelManagerFlags[Z])[A - AMIN[Z]]) {
572       e = (G4double)man->NearestLowEdgeLevelEn << 148     (fLevelManagers[Z])[A - AMIN[Z]] = 
573     }                                          << 149       fLevelReader->CreateLevelManager(Z, A);
574   }                                            << 150     (fLevelManagerFlags[Z])[A - AMIN[Z]] = true;
575   return e;                                    << 151   }
576 }                                              << 152 #ifdef G4MULTITHREADED
577                                                << 153   G4MUTEXUNLOCK(&G4NuclearLevelData::nuclearLevelDataMutex);
578 G4double                                       << 154 #endif
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 }                                                 155 }
646                                                   156