| 1 |                         // Dominique YVON, CEA/DAPNIA/SPP 02/2000
 | 
|---|
| 2 | 
 | 
|---|
| 3 | #ifndef SKYQUASIPTSOURCES_SEEN
 | 
|---|
| 4 | #define SKYQUASIPTSOURCES_SEEN
 | 
|---|
| 5 | 
 | 
|---|
| 6 | #include "lightsrcsep.h"
 | 
|---|
| 7 | #include "unitvector.h"
 | 
|---|
| 8 | 
 | 
|---|
| 9 | class QuasiPtSources:public LightSrcDiffBlackBody{
 | 
|---|
| 10 |  public:
 | 
|---|
| 11 |     QuasiPtSources(double tempe=T_CMBR,double angsiz=0.,double theta=0.,double phi=0.);
 | 
|---|
| 12 |     // Tempe en Kelvin, angsiz, theta et phi en radian
 | 
|---|
| 13 |     // angsiz, demi angle au sommet.
 | 
|---|
| 14 |     virtual ~QuasiPtSources();
 | 
|---|
| 15 |     void GetSourceCoor(double& theta,double& phi){
 | 
|---|
| 16 |         theta=MyTheta; phi=MyPhi; return;}
 | 
|---|
| 17 |         
 | 
|---|
| 18 |     void SetSourceCoor(double theta,double phi);
 | 
|---|
| 19 |     virtual UnitVector GetVSrcCenter(); 
 | 
|---|
| 20 |     // Retourne le vecteur unitaire pointant sur la source quasiponctuelle
 | 
|---|
| 21 |     double getAngSize() {return AngSize;}
 | 
|---|
| 22 |  protected:
 | 
|---|
| 23 |     double AngSize;             // Demie taille angulaire en Radian
 | 
|---|
| 24 |     double CosAngSize;          // Cosinus de la demi taille angulaire
 | 
|---|
| 25 |     double SurfaceTemperature;  // guess! Kelvin
 | 
|---|
| 26 |     double MyTheta;             // coordinates on the Sky Radian
 | 
|---|
| 27 |     double MyPhi;
 | 
|---|
| 28 |     UnitVector* pVSource;          // Direction de la source
 | 
|---|
| 29 |     
 | 
|---|
| 30 |  // Utilitaires de calcul
 | 
|---|
| 31 |  //     double h_kT;
 | 
|---|
| 32 |  //     double Prefac;          // 8*pi*h/c2 J m-2 s3
 | 
|---|
| 33 |         
 | 
|---|
| 34 |     virtual double spectre(double freq);
 | 
|---|
| 35 |     // Nous ne sommes plus dans la limite des petits carts de temperature
 | 
|---|
| 36 |     // Surcharge ncessaire
 | 
|---|
| 37 |     // GHz 3
 | 
|---|
| 38 | 
 | 
|---|
| 39 |     virtual double powerDensAmpli(double theta,double phi) {
 | 
|---|
| 40 |                 // Return power density Amplidude at coordinates
 | 
|---|
| 41 |         // W m-2 st-1 GHz-4, Vaut Prefac*DT(theta,phi)
 | 
|---|
| 42 |                 double PDens= Prefac*DeltaT(theta,phi);
 | 
|---|
| 43 |                 return PDens;
 | 
|---|
| 44 |         }
 | 
|---|
| 45 |     double DeltaT(double theta,double phi);
 | 
|---|
| 46 |     // Retourne 1. si l on pointe sur la source, 0. sinon
 | 
|---|
| 47 |     
 | 
|---|
| 48 |     //    virtual double powerInterne(float theta, float phi, DetFilter const& Fil); 
 | 
|---|
| 49 |     // return power (Watt/m2/steradian) in direction theta,phi
 | 
|---|
| 50 | };
 | 
|---|
| 51 | #endif
 | 
|---|