56 bool validFile = file.rdbuf()->is_open();
58 bool validFile = file.is_open();
61 {
throw BDSException(__METHOD_NAME__,
"Invalid file name or no such file named \"" + fileName +
"\"");}
63 {G4cout <<
"Scorer conversion factors - loading \"" << fileName <<
"\"" << G4endl;}
69 G4DataVector conversionFactor;
71 while (std::getline(file, line))
75 std::regex comment(
"^\\#.*");
78 if (std::all_of(line.begin(), line.end(), isspace))
80 else if (std::regex_search(line, comment))
83 std::stringstream liness(line);
84 std::vector<G4double> numbers;
86 while (liness >> number)
87 {numbers.push_back(number);}
89 if (numbers.size() != 2)
92 throw BDSException(__METHOD_NAME__,
"Incomplete line " + std::to_string(lineNumber));
95 energy.emplace_back(numbers[0]);
96 conversionFactor.emplace_back(numbers[1]);
103 G4PhysicsFreeVector* results =
new G4PhysicsFreeVector(energy, conversionFactor);