| Rev | Line |   | 
|---|
| [801] | 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.