| Line |   | 
|---|
| 1 |                         // Dominique YVON, CEA/DAPNIA/SPP 02/2000
 | 
|---|
| 2 | 
 | 
|---|
| 3 | #include <math.h>
 | 
|---|
| 4 | #ifdef __MWERKS__
 | 
|---|
| 5 |    #include "unixmac.h"
 | 
|---|
| 6 | #endif
 | 
|---|
| 7 | #include "meanlobe.h"
 | 
|---|
| 8 | 
 | 
|---|
| 9 | 
 | 
|---|
| 10 | 
 | 
|---|
| 11 | class Lobe4PiGaussien:public MeanFreqLobe 
 | 
|---|
| 12 | { 
 | 
|---|
| 13 |  public:
 | 
|---|
| 14 |     Lobe4PiGaussien(double FWHM_degre, double freqMin, double freqMax)
 | 
|---|
| 15 |       :MeanFreqLobe(freqMin,freqMax){
 | 
|---|
| 16 |                 sigma=minToRad(FWHM_degre/2.354*60.);
 | 
|---|
| 17 |                 angleMax=M_PI;
 | 
|---|
| 18 |                 cosanglemax=cos(angleMax);
 | 
|---|
| 19 |                 sprintf(Name, "Lobe 4Pi Gaussien");
 | 
|---|
| 20 |     }
 | 
|---|
| 21 |     virtual ~Lobe4PiGaussien(){ };
 | 
|---|
| 22 |         virtual double weigthAmpl(const UnitVector& VInteg, const UnitVector& VP, 
 | 
|---|
| 23 |           const UnitVector& VY) const {
 | 
|---|
| 24 |                 double ang= acos(VP*VInteg);
 | 
|---|
| 25 |                 return exp(-ang*ang/(2*sigma*sigma));
 | 
|---|
| 26 |         }
 | 
|---|
| 27 |         virtual double lobeResol() const{
 | 
|---|
| 28 |                 return sigma*2.354/3.; // On veut pixeliser/calculer  au moins FWHM/3.
 | 
|---|
| 29 |         } 
 | 
|---|
| 30 |         virtual double ResolutionCurve(double angleShift) const{
 | 
|---|
| 31 |                 return (double) (1.+(angleShift/sigma/7.));
 | 
|---|
| 32 |         }
 | 
|---|
| 33 |         
 | 
|---|
| 34 |  protected: 
 | 
|---|
| 35 |     double sigma;
 | 
|---|
| 36 | };
 | 
|---|
       
      
  Note:
 See   
TracBrowser
 for help on using the repository browser.