53 ed <<
" Data missing: set environment variable G4ABLADATA\n"
54 <<
" to point to the directory containing data files needed\n"
55 <<
" by the ABLA model" <<
G4endl;
60 G4String flAlphaFile(dataPath +
"/flalpha.dat");
61 G4String frldmFile(dataPath +
"/frldm.dat");
62 G4String vgsldFile(dataPath +
"/vgsld.dat");
63 G4String rmsFile(dataPath +
"/rms.dat");
64 G4String defoFile(dataPath +
"/defo.dat");
65 G4String massFile(dataPath +
"/mass2020.dat");
75 std::ifstream flalphain(flAlphaFile.c_str());
76 std::ifstream frldmin(frldmFile.c_str());
77 std::ifstream vgsldin(vgsldFile.c_str());
78 std::ifstream rmsin(rmsFile.c_str());
79 std::ifstream defoin(defoFile.c_str());
80 std::ifstream massin(massFile.c_str());
82 if (!massin.is_open())
84 massFile = dataPath +
"/mass2016.dat";
86 massin.open(massFile.c_str());
87 std::cout <<
"Mass evaluation file mass2020.dat not found, current file: " << massFile.c_str() << std::endl;
89 if (!massin.is_open())
91 massFile = dataPath +
"/mass2003.dat";
93 massin.open(massFile.c_str());
94 std::cout <<
"Mass evaluation file mass2016.dat not found, current file: " << massFile.c_str() << std::endl;
98 std::filebuf* buf1 = flalphain.rdbuf();
99 std::filebuf* buf2 = frldmin.rdbuf();
100 std::filebuf* buf3 = vgsldin.rdbuf();
101 std::filebuf* buf4 = rmsin.rdbuf();
102 std::filebuf* buf5 = defoin.rdbuf();
103 std::filebuf* buf6 = massin.rdbuf();
104 if (!((buf1->is_open()) && (buf2->is_open()) && (buf3->is_open()) && (buf4->is_open()) && (buf5->is_open()) &&
108 ed <<
"Data missing: could not find ABLA data file in " << dataPath
109 <<
"defined by environment variable G4ABLADATA" <<
G4endl;
113 G4double fflalpha, ffrldm, fvgsld, frms;
114 G4int fj = 0, fk = 0, a2, a3, a4;
117 const G4int rows = 99;
118 const G4int cols = 154;
119 const G4int rowsbeta = 137;
120 const G4int colsbeta = 251;
133 for (
G4int i = 0; i < rows; i++)
135 for (
G4int j = 0; j < cols; j++)
137 flalphain >> fflalpha;
148 for (
G4int i = 0; i < rowsbeta; i++)
150 for (
G4int j = 0; j < colsbeta; j++)
157 defoin >> fj >> fk >> fbeta2 >> fbeta4;
158 while (!defoin.eof())
162 defoin >> fj >> fk >> fbeta2 >> fbeta4;
173 massin >> a2 >> a3 >> a4 >> a7;
174 while (!massin.eof())
180 setMexp(a2, a3, 938.7829835 * a3 + 939.5653301 * a2 - 1. * a4 * a7 / 1000.);
182 massin >> a2 >> a3 >> a4 >> a7;