| [801] | 1 |                         // Dominique YVON, CEA/DAPNIA/SPP 02/2000
 | 
|---|
 | 2 | 
 | 
|---|
 | 3 | #ifndef CARTELOBE_SEEN
 | 
|---|
 | 4 | #define CARTELOBE_SEEN
 | 
|---|
 | 5 | 
 | 
|---|
 | 6 | #include "abslobenopolar.h"
 | 
|---|
 | 7 | 
 | 
|---|
 | 8 | #define NRANSI
 | 
|---|
 | 9 | #include "numrecipes.h"
 | 
|---|
 | 10 | /* Les lobes cartographies ne presentant aucune symetrie spatialle, il est necessaire 
 | 
|---|
 | 11 | de connaitre l orientation du repere Ticra pour pouvoir calculer dans les lobes. 
 | 
|---|
 | 12 | Ceci est incompatible avec l'etablissement a priori de carte du ciel mesures. 
 | 
|---|
 | 13 | Il faut connaitre la strategie de scanning et alors reconstruire les cartes, bref 
 | 
|---|
 | 14 | faire tout le boulot.
 | 
|---|
 | 15 | */
 | 
|---|
 | 16 | 
 | 
|---|
 | 17 | class CarteLobe {
 | 
|---|
 | 18 |     /* les cartes de lobe centraux sont stockees selon les variables 
 | 
|---|
 | 19 |        U=sin(alpha)cos(beta)
 | 
|---|
 | 20 |        V=sin(alpha)sin(beta)  ou alpha et beta sont les angle en coordonnees 
 | 
|---|
 | 21 |        polaires dans le repere du logiciel TICRA
 | 
|---|
 | 22 |        Ce sont ces variables qu'il faut passer a la fonction Value pour obtenir
 | 
|---|
 | 23 |        une reponse coherente
 | 
|---|
 | 24 |     */
 | 
|---|
 | 25 |     // On utilise les Numerical Recepies:gestions de tableau particulieres
 | 
|---|
 | 26 |  public:
 | 
|---|
 | 27 |     CarteLobe(char fileRoot[]="cartelobevide",double frequence=100.E9,int_4 NbPixelX=100,
 | 
|---|
 | 28 |     int_4 NbPixelY=100);
 | 
|---|
 | 29 |     virtual ~CarteLobe();
 | 
|---|
 | 30 |     void FitsVisu(char FitsFile[],long NbX=300,long NbY=300);
 | 
|---|
 | 31 |     double Value(double UValue,double VValue) const ;
 | 
|---|
 | 32 |     // Retourne la valeur de la carte interpole en UValue (X) et en VValue(Y)
 | 
|---|
 | 33 |     // Echelle lineaire.
 | 
|---|
 | 34 |     double getFreq() const  { return freq;}
 | 
|---|
 | 35 |     void UVToAng(double U, double V, double& alpha, double& beta) const;
 | 
|---|
 | 36 |        //fonction ecrite dans la limite des petits angles
 | 
|---|
 | 37 |     double UCentre(){return (XMin+XMax)/2.;}
 | 
|---|
 | 38 |     double VCentre(){return (YMin+YMax)/2.;}
 | 
|---|
 | 39 |     void UBornes(double& UMin, double& UMax) const { 
 | 
|---|
 | 40 |         UMin=(double)XMin; UMax=(double)XMax; return;}
 | 
|---|
 | 41 |     void VBornes(double& VMin, double& VMax) const {
 | 
|---|
 | 42 |         VMin=(double)YMin; VMax=(double)YMax; return;}
 | 
|---|
 | 43 |     double halfAngAperture();
 | 
|---|
 | 44 |         inline double resol() {return resolution;}
 | 
|---|
 | 45 |  protected:
 | 
|---|
 | 46 |     //NumRecipes NR;  // pour avoir acces au librairies NR
 | 
|---|
 | 47 |     long NbPixX;
 | 
|---|
 | 48 |     long NbPixY;
 | 
|---|
 | 49 |     float *pAxeX;
 | 
|---|
 | 50 |     float *pAxeY;
 | 
|---|
 | 51 | 
 | 
|---|
 | 52 |     float XMin, XMax;
 | 
|---|
 | 53 |     float YMin, YMax;
 | 
|---|
 | 54 |     float** pCarte;  // Pointeur sur la carte du lobe,facon NR
 | 
|---|
 | 55 |                      // Les valeurs sont stockees en decibel
 | 
|---|
 | 56 |     double freq;     // Frequence a laquelle la carte du lobe a ete etablie
 | 
|---|
 | 57 |     double resolution; //Resolution angulaire de la carte de base
 | 
|---|
 | 58 | 
 | 
|---|
 | 59 |     double CalcResol();
 | 
|---|
 | 60 | };
 | 
|---|
 | 61 | 
 | 
|---|
 | 62 | #endif
 | 
|---|