28 enum {c_NumPmtPixels = 16};
45 float lambdaFirst,
float lambdaStep,
float CE0,
float CE):
55 void setQE(
unsigned pmtPixel,
const std::vector<float>& qe)
58 if (pmtPixel < c_NumPmtPixels)
m_QE[pmtPixel] = qe;
72 const std::vector<float>&
getQE(
unsigned pmtPixel)
const;
81 double getQE(
unsigned pmtPixel,
double lambda)
const;
105 double getEfficiency(
unsigned pmtPixel,
double lambda,
bool BfieldOn)
const;
137 double getCE(
bool BfieldOn)
const;
153 double interpolate(
double lambda,
const std::vector<float>& QE)
const;
156 std::vector<float>
m_QE[c_NumPmtPixels];
Nagoya measurements of quantum efficiency.
double getLambdaStep() const
Returns wavelenght step.
float m_CE_withB
relative collection efficiency, with B field
float m_CE_noB
relative collection efficiency, without B field
std::string m_serialNumber
serial number, e.g.
TOPPmtQE(const std::string &serialNumber, float lambdaFirst, float lambdaStep, float CE0, float CE)
Useful constructor.
float m_lambdaStep
wavelength step [nm]
double getLambdaFirst() const
Returns wavelenght of the first data point.
std::vector< float > m_envelopeQE
cache for envelope QE
TOPPmtQE()
Default constructor.
float m_lambdaFirst
wavelength of the first data point [nm]
ClassDef(TOPPmtQE, 3)
don't write out
std::vector< float > m_QE[c_NumPmtPixels]
QE data points.
const std::string & getSerialNumber() const
Returns PMT serial number.
void setQE(unsigned pmtPixel, const std::vector< float > &qe)
Set quantum efficiency data points for a given pmtPixel.
double getEfficiency(unsigned pmtPixel, double lambda, bool BfieldOn) const
Returns quantum times collection efficiency for a given pixel and wavelength, using linear interpolat...
const std::vector< float > & getEnvelopeQE() const
Returns envelope quantum efficiency data points (maximum over pixels)
const std::vector< float > & getQE(unsigned pmtPixel) const
Returns quantum efficiency data points for a given pixel.
double getCE(bool BfieldOn) const
Returns collection efficiency.
double getLambdaLast() const
Returns wavelenght of the last data point (maximal of pixels)
double interpolate(double lambda, const std::vector< float > &QE) const
Interpolate between QE datapoints (linear interpolation).
void setEnvelopeQE() const
Sets envelope quantum efficiency.
Abstract base class for different kinds of events.