Manticore
Version 1.0
Physics of Molecular Clouds
|
Detector base class. More...
#include <Detector.h>
Public Member Functions | |
Detector (bool extend=true) noexcept | |
Default constructor. More... | |
~Detector () | |
Destructor. More... | |
virtual double | ccf (const Graybody &gray, double T, double Sigma=1.0) const |
Color correction factor. More... | |
virtual double | freqBand () const noexcept |
Reference band center frequency (Hz). More... | |
virtual std::pair< double, double > | freqRange () const noexcept |
Frequency range containing significant response. More... | |
virtual double | freqWidth () const noexcept |
Effective flux-conversion bandwidth \(\Delta\nu\) (Hz). More... | |
virtual void | init () |
Initializes detector characteristics. More... | |
bool | isExtended () const noexcept |
Whether extended source detection is enabled. More... | |
virtual std::string | name () const =0 |
Official detector name. More... | |
virtual double | response (double nu) const |
Absolute spectral response function. More... | |
Protected Types | |
using | tableType = std::vector< std::pair< double, double > > |
Detector response table type. More... | |
Protected Member Functions | |
void | calcWidth () |
Calculates effective bandwidth using standard prescription. More... | |
Protected Attributes | |
double | center_ = 0.0 |
Effective band center (Hz). More... | |
bool | extend_ |
Default to extended (else point) source observation. More... | |
std::pair< double, double > | freqRange_ |
Response edge frequencies (Hz). More... | |
gsl_integration_workspace * | integ_ = nullptr |
Integration workspace. More... | |
tableType | resp_ |
Spectral response table. More... | |
gsl_spline * | spline_ = nullptr |
Response interpolator. More... | |
double | width_ = 0.0 |
Effective (flux) bandwidth (Hz). More... | |
Static Protected Attributes | |
static constexpr int | intKey = GSL_INTEG_GAUSS41 |
Integration rule key. More... | |
static constexpr size_t | subLimit = 512 |
Integral subdivision limit. More... | |
Detector base class.
Concrete detector instances are characterized by the following:
By default this class will compute the reference bandwidth and color correction factor automatically from the response curve using the equations
\[ {\Delta\lambda\over \lambda_0} = {\Delta\nu\over \nu_0} = \int R(\nu){d\nu\over\nu} \]
and
\[ CCF = {\int F_\nu R(\nu)d\nu\over \Delta\nu F_{\nu_0}}, \]
where \(\lambda_0\) and \(\nu_0\) are the reference wavelength and frequency, respectively, and \(F_\nu\) is the model flux density under consideration. If the color correction prescription is inappropriate, concrete detector classes can override the calculation.
Definition at line 50 of file Detector.h.
|
protected |
Detector response table type.
Definition at line 101 of file Detector.h.
|
inlinenoexcept |
Default constructor.
Definition at line 53 of file Detector.h.
|
inline |
|
protected |
Calculates effective bandwidth using standard prescription.
Uses the response() function to compute the reference bandwidth (see detailed description).
Definition at line 76 of file Detector.cc.
References manticore::c_light, center_, freqRange_, manticore::detector::fWidth(), integ_, intKey, MU_DEBUG, name(), subLimit, and width_.
Referenced by init().
|
virtual |
Color correction factor.
[in] | gray | Graybody model. |
[in] | T | Temperature (K). |
[in] | Sigma | Mass surface density (g/cm^2). |
Definition at line 96 of file Detector.cc.
References center_, manticore::Graybody::F(), manticore::Graybody::Inu(), and width_.
Referenced by manticore::ccfCheck().
|
inlinevirtualnoexcept |
|
inlinevirtualnoexcept |
Frequency range containing significant response.
Definition at line 77 of file Detector.h.
References freqRange_.
Referenced by manticore::Graybody::Itot().
|
inlinevirtualnoexcept |
Effective flux-conversion bandwidth \(\Delta\nu\) (Hz).
The band-weighted total flux \(F\) is related to the reported flux density \(f_\nu\) by \(F = \Delta\nu\cdotf_\nu\).
Definition at line 74 of file Detector.h.
References width_.
|
virtual |
Initializes detector characteristics.
Reimplemented in manticore::PACS, and manticore::SPIRE.
Definition at line 31 of file Detector.cc.
References manticore::c_light, calcWidth(), freqRange_, manticore::initSpline(), integ_, MU_DEBUG, name(), resp_, spline_, and subLimit.
Referenced by manticore::SPIRE::init(), and manticore::PACS::init().
|
inlinenoexcept |
Whether extended source detection is enabled.
Definition at line 81 of file Detector.h.
References extend_.
|
pure virtual |
Official detector name.
Implemented in manticore::PACS, and manticore::SPIRE.
Referenced by calcWidth(), and init().
|
virtual |
Absolute spectral response function.
[in] | nu | Frequency (Hz). |
Definition at line 58 of file Detector.cc.
References freqRange_, and spline_.
|
protected |
Effective band center (Hz).
Definition at line 115 of file Detector.h.
Referenced by calcWidth(), ccf(), freqBand(), manticore::SPIRE::init(), and manticore::PACS::init().
|
protected |
Default to extended (else point) source observation.
Definition at line 113 of file Detector.h.
Referenced by manticore::SPIRE::init(), and isExtended().
|
protected |
Response edge frequencies (Hz).
Definition at line 107 of file Detector.h.
Referenced by calcWidth(), freqRange(), init(), and response().
|
protected |
Integration workspace.
Definition at line 119 of file Detector.h.
Referenced by calcWidth(), init(), and ~Detector().
|
staticprotected |
|
protected |
Spectral response table.
Definition at line 110 of file Detector.h.
Referenced by manticore::SPIRE::init(), manticore::PACS::init(), and init().
|
protected |
Response interpolator.
Definition at line 122 of file Detector.h.
Referenced by init(), response(), and ~Detector().
|
staticprotected |
Integral subdivision limit.
Definition at line 95 of file Detector.h.
Referenced by calcWidth(), and init().
|
protected |
Effective (flux) bandwidth (Hz).
Definition at line 116 of file Detector.h.
Referenced by calcWidth(), ccf(), and freqWidth().