void Engine::readData() { DataReader dr; dr.readFile(m_programSettings->getEngineSettings().datafile); if(!dr.good()) { throw Engine::Exception("File " + m_programSettings->getEngineSettings().datafile + " has not been read or has no a header"); } if(dr.columnExist("[intensity]")) { dr.getColumn(m_exp_intens_vals, "[intensity]"); } else { throw Engine::Exception("Column \"[intensity]\" has not been found in " + m_programSettings->getEngineSettings().datafile); } if (dr.columnExist("[qx]")) { //get points without any transformation dr.getColumn(m_qx_vals, "[qx]"); } else { throw Engine::Exception("Column \"[qx]\" has not been found in "+ m_programSettings->getEngineSettings().datafile); } if (dr.columnExist("[qz]")) { //get points without any transformation dr.getColumn(m_qz_vals, "[qz]"); } else { throw Engine::Exception("Column \"[qz]\" has not been found in "+ m_programSettings->getEngineSettings().datafile); } /*allocate arguments and residuals*/ for(size_t i = 0; i < m_exp_intens_vals.size(); ++i) { m_DataPoints.push_back( NonlinearFit::DataPoint(new ANACalculatorCoplanarTripleArgument(m_qx_vals[i], m_qz_vals[i]), m_exp_intens_vals[i])); } m_ini_intens_vals.resize(m_exp_intens_vals.size(), 0.0); m_fin_intens_vals.resize(m_exp_intens_vals.size(), 0.0); std::cout << "Nb data residuals:\t" << m_DataPoints.size() << std::endl; }