[1371] | 1 | // Class for representing the main antenna lobe
|
---|
| 2 | // R. Ansari 1998-2000
|
---|
| 3 | // DAPNIA/SPP (Saclay) / CEA LAL - IN2P3/CNRS (Orsay)
|
---|
[228] | 4 |
|
---|
[1371] | 5 | #ifndef MLOBE_H_SEEN
|
---|
| 6 | #define MLOBE_H_SEEN
|
---|
| 7 |
|
---|
[228] | 8 | #include <math.h>
|
---|
[2322] | 9 | #include <iostream>
|
---|
[228] | 10 |
|
---|
| 11 | #include "sphericalmap.h"
|
---|
| 12 |
|
---|
| 13 |
|
---|
[1371] | 14 | namespace SOPHYA {
|
---|
[228] | 15 |
|
---|
| 16 | // Classe MainLobe
|
---|
| 17 | // Classe pour calcul du lobe principal
|
---|
| 18 | // Les valeurs du lobe sont calcules dans des pixels
|
---|
| 19 | // disposes sur "nc" couches avec pavage hexagonal autour de Teta=0, Phi=0
|
---|
| 20 | // Le lobe est gaussien, de sigma = "sig" - Les couches sont construites
|
---|
| 21 | // toutes les "dels" * sigma
|
---|
| 22 | // NPix() renvoie le nombre total de pixels du lobe
|
---|
| 23 | // SetDirection() permet d orienter le lobe dans la direction "teta, phi"
|
---|
| 24 | // Value() renvoie la valeur du lobe, ainsi que les teta,phi du pixel "kpx"
|
---|
| 25 | // Convol() renvoie la valeur lobe convolue avec le ciel (sphere) "sph"
|
---|
| 26 |
|
---|
| 27 | class MainLobe {
|
---|
| 28 | public:
|
---|
| 29 | MainLobe(float sig, float dels=0.5, int nc=3);
|
---|
| 30 | ~MainLobe();
|
---|
| 31 | inline int NPix() {return mNpix; }
|
---|
| 32 | inline float Sigma() {return mSigma; }
|
---|
| 33 | inline double Integral() {return mTotVal; }
|
---|
| 34 | void SetDirection(float teta, float phi);
|
---|
| 35 | double Value(int kpx, float& teta, float& phi);
|
---|
[470] | 36 | double Convol(SphericalMap<double>& sph);
|
---|
[2346] | 37 | void Print(ostream& os) const;
|
---|
[228] | 38 |
|
---|
| 39 | float mSigma, mDels;
|
---|
| 40 | int mNpix, mNC;
|
---|
| 41 | double mTotVal;
|
---|
| 42 | float mDirTet, mDirPhi;
|
---|
| 43 | float* mT0;
|
---|
| 44 | float* mP0;
|
---|
| 45 | float* mTC;
|
---|
| 46 | float* mPC;
|
---|
| 47 | float* mDx;
|
---|
| 48 | float* mDy;
|
---|
| 49 | float* mDr;
|
---|
| 50 | double* mVal;
|
---|
| 51 | };
|
---|
| 52 |
|
---|
[2346] | 53 | inline ostream& operator << (ostream& s, MainLobe const & ml)
|
---|
| 54 | { ml.Print(s); return(s); }
|
---|
| 55 |
|
---|
[1371] | 56 | } // namespace SOPHYA
|
---|
[228] | 57 |
|
---|
| 58 | #endif
|
---|