9#include <arich/dbobjects/ARICHSimulationPar.h>
11#include <framework/logging/Logger.h>
19 if (e < 0.001)
return 0;
20 if (
m_qe.size() == 0) B2ERROR(
"ARICHSimulationPar: QE curve not initialized!");
25 if (i >
int(
m_qe.size()) - 2)
return 0;
42 cout <<
"ARICH simulation parameters" << endl;
44 cout <<
" QE curve (peak should be above QE of highest QE HAPD!)" << endl;
46 cout <<
" wl [nm] QE" << endl;
47 for (
auto qe :
m_qe) {
49 cout <<
" " << lambda <<
" " << qe*
m_peakQE << endl;
54 cout <<
" HAPD simulation parameters" << endl;
55 cout <<
" QE scaling for photons internally reflected in HAPD window: " <<
getQEScaling() << endl;
56 cout <<
" absorbtion probablity for internally reflected photons: " <<
getWindowAbsorbtion() << endl;
58 cout <<
" collection efficiency: " <<
m_colEff << endl;
double getWindowAbsorbtion() const
Get absorbtion probability for photons internally reflected in HAPD window.
void setQECurve(float lambdaFirst, float lambdaStep, const std::vector< float > &qe)
Set QE curve.
float m_peakQE
maximal peak QE of all HAPDs
float m_colEff
collection efficiency
std::vector< float > m_qe
quantum efficiency curve
float m_lambdaStep
wavelength [nm]: step
double getQE(double e) const
Get QE at given energy.
void print() const
print class content
double getChipNegativeCrosstalk() const
Get factor to suppress p.e.
double getQEScaling() const
Get QE scaling factor for photons internally reflected in HAPD window.
float m_lambdaFirst
wavelength [nm]: first QE data point
Abstract base class for different kinds of events.