Class flt

Class Documentation

class flt

Class to store filter information. A filter class instance is in essence a vector of oneElLambda elements.

Public Functions

void clean()

Sort the filter in lambda, remove the values with a low transmission on the edge, be sure that the extreme points are ending with 0

inline flt()
inline flt(const int k, string cname, const int transt, const int calibt)

generic constructor, with all internals set to unphysical defaults

Parameters:
  • k – index of the filter in the list of filters

  • cname – filter filename

  • transt – configuration keyword TRANS_TYPE

  • calibt – configuration keyword FILTER_CALIB

inline flt(const int k, ifstream &cname, const int transt, const int calibt)

generic constructor, with all internals set to unphysical defaults

Parameters:
  • k – index of the filter in the list of filters

  • cname – filter file stream

  • transt – configuration keyword TRANS_TYPE

  • calibt – configuration keyword FILTER_CALIB

inline flt(const double lmin, const double lmax, const int nsteps)

constructor for a heavyside filter.

The filter transmission is 1 between lmin and lmax, and 0 outside (a value of O is added at lmin-1 and lmax+1 to enforce it).

Parameters:
  • lmin – lower bound of the Heaviside function

  • lmax – upper bound of the Heaviside function

  • nsteps – number of steps in \(\lambda\) from lmin to lmax

inline ~flt()
void read(const string &fltFile)

read a filter ascii file and store its content as a vector of oneElLambda elements

void read(ifstream &sfiltIn)

build the vector of oneElLambda elements out of a filter stream directly

double lambdaMean()

Mean wavelength of the filter: \(\lambda_{mean} = \frac{\int T(\lambda)\lambda d\lambda}{\int T(\lambda) d\lambda}\).

double width()

full width at half maximum

double peak()

maximum transmission value of the filter

double lambdaEff()

effective wavelength based on the Vega spectrum as calibration SED.

The Vega spectrum \(V(\lambda)\) is included in LePhare ($LEPHAREDIR/vega/VegaLCB.sed). Then \(\lambda_{eff} = \frac{\int V(\lambda)\, T(\lambda)\, \lambda\, d\lambda}{\int V(\lambda)\, T(\lambda)\, d\lambda}\).

double lambdaEff2()

effective wavelength based on a specific calibration SED.

If \(C(\lambda)\) is a specific calibration SED defined by keyword FILTER_CALIB (see SED::generateCalib), then \(\lambda_{eff2} = \frac{\int C(\lambda)\, T(\lambda)\, \lambda\, d\lambda}{\int C(\lambda)\, T(\lambda)\, d\lambda}\).

double magsun()

absolute magnitude of the Sun

double vega()

Vega magnitude in this filter: \(mag(Vega) = 2.5\cdot\log10\left(\frac{\int Vega(\lambda)\, T(\lambda)\, d\lambda}{\int T(\lambda)\, d\lambda}\right)\) where \(Vega(\lambda)\) is the Vega SED.

double fcorrec()

compute the flux correction based on keyword FILTER_CALIB

\(fcorrec = B_0\cdot\lambda_{eff2}^2\cdot\frac{\int T(\lambda)\,\lambda^{-2}\, d\lambda}{\int C(\lambda)\, T(\lambda)\, d\lambda}\), where \(C(\lambda)\) is a calibration function defined through the value of FILTER_CALIB (see SED::generateCalib), \(\lambda_{eff2}\) is the alternative effective wavelength using \(C(\lambda)\) (see flt::lambdaEff2), and

  • FILTER_CALIB=0 \(B_0 = \lambda_{eff}^{-2}\)

  • FILTER_CALIB=1 \(B_0 = \lambda_{eff}^{-1}\)

  • FILTER_CALIB=2 \(B_0 = \lambda_{eff}^{-3}\)

  • FILTER_CALIB=3 \(B_0 = Blackbody(10000K,\lambda_{eff})\)

  • FILTER_CALIB=4 \(B_0 = Blackbody(10000K,\lambda_{eff})\)

  • FILTER_CALIB=5 \(B_0 = \lambda_{eff}^{-3}\)

Pour les cas 4 et 5, \(\lambda_{eff2}\) est évaluée en utilisant le calibrator \(C(\lambda)\) sélectionné par FILTER_CALIB=1.

double abcorr()

AB-Vega correction \( = -2.5\,\log10\left(\frac{\int F(Vega)\,T(\lambda)\,d\lambda}{\int T(\lambda)\, c\lambda^{-2}\,d\lambda}\right)\)

double tgcorr()

Thuan Gunn correction \( = 2.5\,\log10\left(\frac{\int F(BD+17o4708)\,T(\lambda)\,d\lambda}{\int Vega(\lambda)\, T(\lambda)\, d\lambda}\right) + 9.5 - 0.03\)

inline double lmin() const

lowest stored lambda value

inline double lmax() const

highest stored lambda value

void compute_all()

Compute and cache fcorr (fcorrec()) and ab (abcorr())

Public Members

vector<oneElLambda> lamb_trans

tabulated (lambda, transmission) curve

int id

index of this filter in the filter set

string name

filter name (typically its file name)

int transtyp

TRANS_TYPE keyword: 0=energy units, 1=photon units (converted to energy units at read time, see #trans)

int calibtyp

FILTER_CALIB keyword: reference spectrum used by fcorrec() (0=flat fnu, 1=flat flambda, 2=Bnu=nu, 3/4/5=other reference spectra, see SED::generateCalib)

double leff

effective wavelength for a flat-fnu source (lambdaEff())

double lmean

mean wavelength of the transmission curve (lambdaMean())

double dwidth

effective width of the filter (width())

double ab

AB-to-Vega magnitude offset for this filter (abcorr())

double tg

Thuan-Gunn magnitude correction for this filter (tgcorr())

double veg

Vega magnitude of a flat-fnu source (vega())

double msun

absolute magnitude of the Sun in this filter (magsun())

double fcorr

flux calibration correction factor (fcorrec())

double tpeak

peak transmission value of the filter