source: Sophya/trunk/Cosmo/RadioBeam/radutil.cc@ 4008

Last change on this file since 4008 was 3947, checked in by ansari, 15 years ago

Amelioration et modifs diverses lors de la redaction du papier, Reza 13/02/2011

File size: 1.2 KB
Line 
1#include "radutil.h"
2
3double H21Conversions::SpeedOfLight_Cst = 2.99792458e8; // metres/sec
4double H21Conversions::Freq021cm_Cst = 1420.4; // MHz
5double H21Conversions::k_Boltzman_Cst = 1.3806503e-23; // Boltzman constant SI (J K^-1)
6
7H21Conversions::H21Conversions(double freq, double opix)
8{
9 if (freq<1.e-6) freq=Freq021cm_Cst;
10 setFrequency(freq);
11 setOmegaPix(opix);
12 setCosmoParam();
13}
14
15void H21Conversions::setFrequency(double nu)
16{
17 freq_=nu;
18 z_=Freq021cm_Cst/freq_-1.;
19 lambda_=SpeedOfLight_Cst/freq_/1.e6;
20}
21
22double H21Conversions::toJansky(double temp)
23{
24 return 2.*k_Boltzman_Cst*temp/lambda_/lambda_ * omegapix_ * 1.e26;
25}
26
27double H21Conversions::toKelvin(double jy)
28{
29 return jy*1e-26 / omegapix_ * lambda_ * lambda_ / 2. / k_Boltzman_Cst ;
30}
31
32
33double H21Conversions::setCosmoParam(double omegamatter, double omegabaryon, double h100, double fracHI)
34{
35 OmegaMatter_=omegamatter;
36 OmegaBaryons_=omegabaryon;
37 h100_=h100;
38 fracHI_=fracHI;
39 OmegaLambda_=1.-OmegaMatter_; // Je neglige OmegaRadiation
40 return OmegaLambda_;
41}
42
43double H21Conversions::Mean21cmTemperature_mK()
44{
45 double zz = 1.+z_;
46 double cc=zz*zz/sqrt(OmegaMatter_*zz*zz*zz+OmegaLambda_);
47 cc *= ((h100_/0.7)*(OmegaBaryons_/0.044)*(fracHI_/0.01));
48 return (cc*0.054);
49}
Note: See TracBrowser for help on using the repository browser.