9#include <top/dbobjects/TOPNominalQE.h>
23 for (
size_t i = 0; i <
m_QE.size(); i++) {
25 m_QE[i] *=
filter.getBulkTransmittance(lambda);
35 if (i >
m_QE.size() - 2)
return m_QE.back();
42 for (
size_t i = 0; i <
m_QE.size(); i++) {
51 for (
size_t i =
m_QE.size() - 1; i <
m_QE.size(); i--) {
62 if (
m_CE <= 0)
return false;
63 if (
m_QE.empty())
return false;
73 cout <<
", CE: " <<
getCE() << endl;
75 for (
const auto& qe :
m_QE) cout << qe <<
", ";
double getLambdaStep() const
Returns wavelenght step.
std::vector< float > m_QE
QE data points.
const std::vector< float > & getQE() const
Returns quantum efficiency data points.
double getCE() const
Returns collection efficiency.
float m_lambdaStep
wavelength step [nm]
double getLambdaFirst() const
Returns wavelenght of the first data point.
double getLambdaLast() const
Returns wavelenght of the last data point.
float m_lambdaFirst
wavelength of the first data point [nm]
float m_CE
collection efficiency
Bulk transmittance of wavelength filter.
std::map< ExpRun, std::pair< double, double > > filter(const std::map< ExpRun, std::pair< double, double > > &runs, double cut, std::map< ExpRun, std::pair< double, double > > &runsRemoved)
filter events to remove runs shorter than cut, it stores removed runs in runsRemoved
bool isConsistent() const override
Check for consistency of data members.
void print(const std::string &title="Nominal quantum efficiency") const override
Print the content of the class.
void printUnderlined(const std::string &title) const
Print the content of the class.
double getMaxLambda() const
Returns wavelength of the last nonzero QE data point.
double getMinLambda() const
Returns wavelength of the first nonzero QE data point.
void applyFilterTransmission(const TOPWavelengthFilter &filter)
Multiplies quantum efficiency data points with filter transmission.
Abstract base class for different kinds of events.