27 std::vector<std::vector<double>> vecVec;
28 std::map<double, double> QvsR;
29 std::map<double, double> QvsDR;
30 std::map<double, double> QvsDQ;
33 while (std::getline(inStream, line)) {
39 vecVec.push_back(rowVec);
46 size_t nrows = vecVec.size();
48 throw std::runtime_error(
"No numerical values found");
49 size_t ncols = vecVec[0].size();
51 throw std::runtime_error(
"Minimum 2 columns required");
54 for (
size_t row = 0; row < nrows; row++) {
55 if (vecVec[row].size() != ncols)
56 throw std::runtime_error(
"The number of columns varies among the rows");
57 double Q = vecVec[row][0];
62 QvsR[Q] = vecVec[row][1];
67 QvsR[Q] = vecVec[row][1];
68 QvsDR[Q] = vecVec[row][2];
72 QvsR[Q] = vecVec[row][1];
73 QvsDR[Q] = vecVec[row][2];
74 QvsDQ[Q] = vecVec[row][3];
79 std::vector<double> qVec;
80 std::vector<double> rVec;
81 for (
auto it = QvsR.begin(); it != QvsR.end(); ++it) {
84 qVec.push_back(it->first);
85 rVec.push_back(it->second);
Stores radiation power per bin.
Axis containing arbitrary (non-equidistant) coordinate values. Lower boundary of the first bin and up...
std::string trim(const std::string &str, const std::string &whitespace=" \t")
Cuts any of the chars given in whitespace from start and end of str.