11 #include <top/dbobjects/TOPNominalQE.h>
22 double TOPNominalQE::getQE(
double lambda)
const
24 double dlam = lambda - m_lambdaFirst;
25 if (dlam < 0 or dlam > (m_QE.size() - 1) * m_lambdaStep)
return 0;
26 unsigned i = int(dlam / m_lambdaStep);
27 if (i > m_QE.size() - 2)
return m_QE.back();
28 return m_QE[i] + (m_QE[i + 1] - m_QE[i]) / m_lambdaStep * (dlam - i * m_lambdaStep);
32 bool TOPNominalQE::isConsistent()
const
34 if (m_lambdaFirst <= 0)
return false;
35 if (m_lambdaStep <= 0)
return false;
36 if (m_CE <= 0)
return false;
37 if (m_QE.empty())
return false;
42 void TOPNominalQE::print(
const std::string& title)
const
44 TOPGeoBase::printUnderlined(title);
45 cout <<
" first point: " << getLambdaFirst() <<
" nm";
46 cout <<
", step: " << getLambdaStep() <<
" nm";
47 cout <<
", CE: " << getCE() << endl;
49 for (
const auto& qe : m_QE) cout << qe <<
", ";