[801] | 1 | // Dominique YVON, CEA/DAPNIA/SPP 02/2000
|
---|
| 2 |
|
---|
| 3 | #ifndef LightSrcSep_H
|
---|
| 4 | #define LightSrcSep_H
|
---|
| 5 |
|
---|
| 6 | #include "abslightsource.h"
|
---|
| 7 |
|
---|
| 8 | class LightSrcSep:public AbsLightSource {
|
---|
| 9 | friend class LSrcRadSpecSep;
|
---|
| 10 | public:
|
---|
| 11 | LightSrcSep(){LScrFSep=true; QPtSource=false;}
|
---|
| 12 | ~LightSrcSep() { }
|
---|
| 13 | virtual double powSpecDens(double theta,double phi,double freq){
|
---|
| 14 | // Return power density at coordinates (W/m2/Hz/St)
|
---|
| 15 | return spectre(freq)*powerDensAmpli(theta,phi);
|
---|
| 16 | }
|
---|
| 17 |
|
---|
| 18 | virtual double spectre(double frequence)=0;
|
---|
| 19 | // Return the frequency spectrum independent of coordinates
|
---|
| 20 | // should have no dimension
|
---|
| 21 | virtual double powerDensAmpli(double theta,double phi)=0;
|
---|
| 22 | // Return power density Amplidude at coordinates
|
---|
| 23 | // (W/m2/Hz/St)
|
---|
| 24 | protected:
|
---|
| 25 | };
|
---|
| 26 |
|
---|
| 27 | class LightSrcDiffBlackBody:public LightSrcSep {
|
---|
| 28 | // Classe mettant en oeuvre les sources parametrees
|
---|
| 29 | // Comme des ecarts de temperature a la tempe du CMB
|
---|
| 30 | // valable dans la limite des petits ecarts de tempe de TCMB
|
---|
| 31 | // DeltaT retourne la DTCMB apparente au point theta, phi.
|
---|
| 32 | public:
|
---|
| 33 | LightSrcDiffBlackBody() {
|
---|
| 34 | h_kT=6.626e-34/T_CMBR/1.38e-23; // Hz-1
|
---|
| 35 | Prefac=2*6.626e-34*6.626e-34/(9.e16*1.38e-23*T_CMBR*T_CMBR);
|
---|
| 36 | // 2*h2/(c2*k*TCMB2) ( W/m2/st/Hz^3/K) ou (J/m2/st/Hz^4/K)
|
---|
| 37 | }
|
---|
| 38 | virtual ~LightSrcDiffBlackBody() { };
|
---|
| 39 | protected:
|
---|
| 40 | double h_kT; // nanosecondes
|
---|
| 41 | double Prefac;
|
---|
| 42 | virtual double DeltaT(double theta,double phi)=0; // en Kelvin
|
---|
| 43 | virtual double spectre(double freq){ // Frequence en Hz
|
---|
| 44 | return pow(freq,4)*exp(h_kT*freq)/pow((exp(h_kT*freq)-1),2);
|
---|
| 45 | // Hz^4
|
---|
| 46 | }
|
---|
| 47 | virtual double powerDensAmpli(double theta,double phi){
|
---|
| 48 | // Return power density Amplidude at coordinates
|
---|
| 49 | // J/m2/st/Hz^4 ou W/m2/St/Hz^5
|
---|
| 50 | double PDens= Prefac*DeltaT(theta,phi);
|
---|
| 51 | return PDens;
|
---|
| 52 | }
|
---|
| 53 |
|
---|
| 54 | };
|
---|
| 55 |
|
---|
| 56 |
|
---|
[798] | 57 | #endif |
---|