61 : zMin(minZ), zMax(maxZ),
71 std::map<G4int,G4RDVEMDataSet*,std::less<G4int> >::iterator
pos;
94 G4int id = Z*100 + parameterIndex;
95 std::map<G4int,G4RDVEMDataSet*,std::less<G4int> >::const_iterator
pos;
98 if (pos!=
param.end()) {
102 if(shellIndex < nShells) {
108 G4cout <<
"WARNING: G4IonisationParameters::FindParameter "
109 <<
"has no parameters for shell= " << shellIndex
114 G4cout <<
"WARNING: G4IonisationParameters::Parameter "
115 <<
"did not find ID = "
125 std::map<G4int,G4RDVEMDataSet*,std::less<G4int> >::const_iterator
pos;
128 if (pos!=
excit.end()) {
135 G4cout <<
"WARNING: G4IonisationParameters::Excitation "
136 <<
"did not find ID = "
153 if (materialTable == 0)
154 G4Exception(
"G4RDeIonisationParameters::LoadData()",
"InvalidSetup",
165 for (
size_t iEl=0; iEl<nElements; iEl++) {
166 G4Element* element = (*elementVector)[iEl];
174 char* path = std::getenv(
"G4LEDATA");
177 G4String excep(
"G4LEDATA environment variable not set!");
178 G4Exception(
"G4RDeIonisationParameters::LoadData()",
"InvalidSetup",
190 for (
size_t i=0; i<nZ; i++) {
193 std::ostringstream ost;
194 ost << pathString << Z <<
".dat";
198 std::filebuf* lsdp = file.rdbuf();
200 if (! (lsdp->is_open()) ) {
202 +
name +
G4String(
" not found. The version 1.# of G4LEDATA should be used");
203 G4Exception(
"G4RDeIonisationParameters::LoadData()",
"DataNotFound",
218 std::vector<G4RDVEMDataSet*>
p;
223 p.push_back(composite);
227 std::vector<G4DataVector*>
a;
228 for (
size_t j=0; j<
length; j++)
236 file >> energy >>
sum;
237 if (energy == -2)
break;
241 a[0]->push_back(sum);
242 for (
size_t j=0; j<length-1; j++) {
245 a[j + 1]->push_back(qRead);
258 size_t eSize = e.size();
259 for (
size_t s=0;
s<eSize;
s++) {
260 eVector->push_back(e[
s]);
264 p[
k]->AddComponent(
set);
268 for (
size_t j2=0; j2<
length; j2++) {
274 }
while (energy > -2);
278 for (
size_t kk=0; kk<
length; kk++)
280 G4int id = Z*100 + kk;
287 std::ifstream file_a(name_a);
288 std::filebuf* lsdp_a = file_a.rdbuf();
289 G4String pathString_b(path);
290 G4String name_b = pathString_b + G4String(
"/ioni/ion-ex-sig.dat");
291 std::ifstream file_b(name_b);
292 std::filebuf* lsdp_b = file_b.rdbuf();
294 if (! (lsdp_a->is_open()) ) {
295 G4String excep = G4String(
"Cannot open file ")
297 G4Exception(
"G4RDeIonisationParameters::LoadData()",
"CannotOpenFile",
300 if (! (lsdp_b->is_open()) ) {
301 G4String excep = G4String(
"Cannot open file ")
303 G4Exception(
"G4RDeIonisationParameters::LoadData()",
"CannotOpenFile",
322 file_a >> ener >> sig;
323 file_b >> ener1 >> sig1;
326 G4cout <<
"G4RDeIonisationParameters: problem in excitation data "
328 <<
" ener1= " << ener1
337 }
else if (ener == -1) {
348 size_t eSize = e.size();
349 for (
size_t s=0;
s<eSize;
s++) {
350 eVector->push_back(e[
s]);
351 dVector->push_back(d[s]);
361 e.push_back(ener*
MeV);
362 d.push_back(sig1*sig*
barn*MeV);
364 }
while (ener != -2);
374 G4cout <<
"===== G4RDeIonisationParameters =====" <<
G4endl;
378 std::map<G4int,G4RDVEMDataSet*,std::less<G4int> >::const_iterator
pos;
380 for (
size_t i=0; i<nZ; i++) {
383 for (
size_t j=0; j<
length; j++) {
385 G4int index = Z*100 + j;
387 pos =
param.find(index);
388 if (pos!=
param.end()) {
392 for (
size_t k=0;
k<nShells;
k++) {
394 G4cout <<
"===== Z= " << Z <<
" shell= " <<
k
395 <<
" parameter[" << j <<
"] ====="
403 G4cout <<
"====================================" <<
G4endl;