| [3783] | 1 | //  Classes to compute simple quantities for radio / 21 cm | 
|---|
|  | 2 | //  R. Ansari - June 2010 | 
|---|
|  | 3 |  | 
|---|
|  | 4 | #ifndef RADUTIL_SEEN | 
|---|
|  | 5 | #define RADUTIL_SEEN | 
|---|
|  | 6 |  | 
|---|
|  | 7 | #include "machdefs.h"      // SOPHYA .h | 
|---|
|  | 8 | #include "sopnamsp.h"      // SOPHYA .h | 
|---|
|  | 9 |  | 
|---|
|  | 10 | #include "vector3d.h"      // conversion d'angle | 
|---|
|  | 11 |  | 
|---|
|  | 12 | class H21Conversions { | 
|---|
|  | 13 | public: | 
|---|
|  | 14 | // redshift nul, angle solide du pixel en steradian | 
|---|
|  | 15 | H21Conversions(double freq=0., double opix=1.e-5); | 
|---|
|  | 16 |  | 
|---|
|  | 17 | double toJansky(double temp);  // Conversion d'une temperature (Kelvin) en jansky | 
|---|
|  | 18 | double toKelvin(double jy);    // Conversion de Jansky en  temperature (Kelvin) | 
|---|
|  | 19 |  | 
|---|
| [3829] | 20 | double Mean21cmTemperature_mK();      // Temperature moyenne de l'emission a 21 cm en mK | 
|---|
|  | 21 | inline double T21cm_Kelvin() { return Mean21cmTemperature_mK()/1000.;  } | 
|---|
|  | 22 | inline double T21cm_mK() { return Mean21cmTemperature_mK();  } | 
|---|
|  | 23 |  | 
|---|
| [3783] | 24 | void setFrequency(double nu);  // on definit la frequence en MHz | 
|---|
|  | 25 | inline void setRedshift(double z)    // on definit le redshift | 
|---|
|  | 26 | { setFrequency(Freq021cm_Cst/(1+z)); } | 
|---|
|  | 27 | inline void setLambda(double lam)    // on definit la longueur d'onde en m | 
|---|
|  | 28 | { setFrequency(SpeedOfLight_Cst/lam); } | 
|---|
|  | 29 |  | 
|---|
|  | 30 | inline void setOmegaPix(double opix)   // angle solide en steradian | 
|---|
|  | 31 | { omegapix_ = opix; } | 
|---|
|  | 32 | inline void setOmegaPixDeg2(double opix)  // angle solide en Deg^2 | 
|---|
|  | 33 | { double cf=Angle(1.,Angle::Degree).ToRadian(); omegapix_ = opix*cf*cf; } | 
|---|
|  | 34 | inline void setOmegaPixArcmin2(double opix)  // angle solide en Arcmin^2 | 
|---|
|  | 35 | { double cf=Angle(1.,Angle::ArcMin).ToRadian(); omegapix_ = opix*cf*cf; } | 
|---|
|  | 36 |  | 
|---|
| [3829] | 37 | // Definition des parametres cosmologiques utiles pour le calcul de la temperature d'emission a 21 cm | 
|---|
|  | 38 | // retourne la valeur de OmegaLambda (univers plat) | 
|---|
|  | 39 | double setCosmoParam(double omegamatter=0.02581, double omegabaryon=0.0441, double h100=0.719, double fracHI=0.02); | 
|---|
|  | 40 | inline void setFracHI(double fracHI=0.02) { fracHI_=fracHI; } | 
|---|
|  | 41 |  | 
|---|
| [3783] | 42 | inline double getRedshift() { return z_; } | 
|---|
|  | 43 | inline double getFrequency() { return freq_; } | 
|---|
|  | 44 | inline double getLambda() { return lambda_; } | 
|---|
|  | 45 |  | 
|---|
|  | 46 | inline double getOmegaPix()   // angle solide en steradian | 
|---|
|  | 47 | { return omegapix_; } | 
|---|
|  | 48 | inline double getOmegaPixArcmin2()  // angle solide en Arcmin^2 | 
|---|
|  | 49 | { double cf=Angle(1.,Angle::ArcMin).ToRadian(); return omegapix_/cf/cf; } | 
|---|
|  | 50 | inline double getOmegaPixDeg2()  // angle solide en Deg^2 | 
|---|
|  | 51 | { double cf=Angle(1.,Angle::Degree).ToRadian(); return omegapix_/cf/cf; } | 
|---|
|  | 52 |  | 
|---|
| [3829] | 53 |  | 
|---|
| [3783] | 54 | static double SpeedOfLight_Cst;       // Speed of light  m/sec | 
|---|
|  | 55 | static double Freq021cm_Cst;       // Speed of light  m/sec | 
|---|
|  | 56 | static double k_Boltzman_Cst;         // Boltzmann constant  (SI Units) | 
|---|
|  | 57 |  | 
|---|
|  | 58 | double z_; | 
|---|
|  | 59 | double freq_; | 
|---|
|  | 60 | double lambda_; | 
|---|
|  | 61 | double omegapix_; | 
|---|
| [3829] | 62 |  | 
|---|
|  | 63 | // Parametres cosmologiques pour calcul du coefficient de conversion Mass to T21 | 
|---|
|  | 64 | double OmegaMatter_; | 
|---|
|  | 65 | double OmegaBaryons_; | 
|---|
|  | 66 | double OmegaLambda_; | 
|---|
|  | 67 | double h100_; | 
|---|
|  | 68 | double fracHI_; | 
|---|
| [3783] | 69 | }; | 
|---|
|  | 70 |  | 
|---|
|  | 71 | #endif | 
|---|