4 #include <gsl/gsl_integration.h> 5 #include <gsl/gsl_spline.h> 62 virtual std::string
name()
const = 0;
77 virtual std::pair<double, double>
freqRange() const noexcept
85 virtual double response(
double nu)
const;
91 virtual double ccf(
const Graybody &gray,
double T,
double Sigma = 1.0)
const;
98 static constexpr
int intKey = GSL_INTEG_GAUSS41;
101 using tableType = std::vector<std::pair<double, double>>;
119 gsl_integration_workspace *
integ_ =
nullptr;
std::pair< double, double > freqRange_
Response edge frequencies (Hz).
double center_
Effective band center (Hz).
virtual double response(double nu) const
Absolute spectral response function.
virtual void init()
Initializes detector characteristics.
gsl_integration_workspace * integ_
Integration workspace.
virtual double freqBand() const noexcept
Reference band center frequency (Hz).
virtual double freqWidth() const noexcept
Effective flux-conversion bandwidth (Hz).
std::vector< std::pair< double, double > > tableType
Detector response table type.
virtual std::string name() const =0
Official detector name.
virtual double ccf(const Graybody &gray, double T, double Sigma=1.0) const
Color correction factor.
static constexpr size_t subLimit
Integral subdivision limit.
The MathUtils miscellaneous utilities library.
virtual std::pair< double, double > freqRange() const noexcept
Frequency range containing significant response.
bool extend_
Default to extended (else point) source observation.
double width_
Effective (flux) bandwidth (Hz).
gsl_spline * spline_
Response interpolator.
bool isExtended() const noexcept
Whether extended source detection is enabled.
Detector(bool extend=true) noexcept
Default constructor.
tableType resp_
Spectral response table.
static constexpr int intKey
Integration rule key.
void calcWidth()
Calculates effective bandwidth using standard prescription.