Changeset 926 in Sophya for trunk/SophyaLib/NTools/fct2dfit.cc


Ignore:
Timestamp:
Apr 13, 2000, 8:39:39 PM (25 years ago)
Author:
ansari
Message:

documentation cmv 13/4/00

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/SophyaLib/NTools/fct2dfit.cc

    r514 r926  
    2222
    2323/////////////////////////////////////////////////////////////////
    24 //++
    25 // Class        GeneralPSF2D
    26 // Lib  Outils++
    27 // include      fct2dfit.h
    28 //
    29 //      Classe de definition d'une PSF 2D a nPar parametres
    30 //      Pour definir une PSF, il faut creer une classe qui herite
    31 //      de ``GeneralPSF2D'' (cf par exemple GauRho2D...).
    32 //      La disposition des parametres definissant la PSF est indifferente,
    33 //      toutefois il est conseille de suivre l'ordre:
    34 //--
    35 //++
    36 //  - PSF 2D a NPar parametres:
    37 //  p[0] = Volume (ou hauteur)
    38 //  p[1] = centre X0, p[2] = centre Y0
    39 //  p[3] = SigmaX   , p[4] = SigmaY,    p[5] = Rho
    40 //  p[6],p[7],... = autres parametres (eventuels) definissant la PSF.
    41 //                  (ex: pour la Moffat p[6] = exposant Beta et NPar=8).
    42 //  p[NPar-1] = Fond
    43 //--
    44 //++
    45 //      L'emploi de certaines classes comme par exemple ``GenMultiPSF2D''
    46 //      necessite de suivre rigoureusement l'ordre indique ci-dessus
    47 //      pour les parametres.
    48 //--
    49 
    50 //++
     24/*!
     25  \class SOPHYA::GeneralPSF2D
     26  \ingroup NTools
     27  \anchor GeneralPSF2D
     28   Classe de definition d'une PSF 2D a nPar parametres
     29   Pour definir une PSF, il faut creer une classe qui herite
     30   de ``GeneralPSF2D'' (cf par exemple GauRho2D...).
     31   La disposition des parametres definissant la PSF est indifferente,
     32   toutefois il est conseille de suivre l'ordre:
     33  \verbatim
     34   - PSF 2D a NPar parametres:
     35   p[0] = Volume (ou hauteur)
     36   p[1] = centre X0, p[2] = centre Y0
     37   p[3] = SigmaX   , p[4] = SigmaY,    p[5] = Rho
     38   p[6],p[7],... = autres parametres (eventuels) definissant la PSF.
     39                   (ex: pour la Moffat p[6] = exposant Beta et NPar=8).
     40   p[NPar-1] = Fond
     41  \endverbatim
     42   L'emploi de certaines classes comme par exemple ``GenMultiPSF2D''
     43   necessite de suivre rigoureusement l'ordre indique ci-dessus
     44   pour les parametres.
     45*/
     46
    5147GeneralPSF2D::GeneralPSF2D(unsigned int nPar)
    52 //
    53 //--
    5448: GeneralFunction(2,nPar), VolEps(1.e-4)
    5549{
     
    6155}
    6256
    63 //++
     57/*!
     58  \verbatim
     59    ValueH = hauteur*forme(x,y)+fond tq forme(0,0)=1.
     60        alors que Value = volume*forme(x,y)+fond tq volume(forme)=1.
     61    Dans notre convention le dernier parametre est le fond,
     62    le premier le volume et les 2 suivants le centrage x0,y0
     63    ---> Ici parm[0] = hauteur
     64  \endverbatim
     65 */
    6466double GeneralPSF2D::ValueH(double const xp[], double const* parm)
    65 //
    66 //| ValueH = hauteur*forme(x,y)+fond tq forme(0,0)=1.
    67 //|     alors que Value = volume*forme(x,y)+fond tq volume(forme)=1.
    68 //| Dans notre convention le dernier parametre est le fond,
    69 //| le premier le volume et les 2 suivants le centrage x0,y0
    70 //| ---> Ici parm[0] = hauteur
    71 //--
    7267{
    7368double x0[2];
     
    8277}
    8378
    84 //++
     79/*!
     80  \verbatim
     81    Cette fonction calcule le volume d'une PSF de hauteur=1
     82    avec une precision de "VolEps"
     83    dans le but de connaitre le coefficient permettant
     84    de convertir le volume d'une PSF en son amplitude
     85    ou vice-versa: " volume = VolPSF * hauteur "
     86     L'integration se fait 1/4 de pixel par 1/4 de pixel
     87     ATTENTION: Il s'agit de PSF donc x,y,x0,y0,Sigma.. sont en pixels
     88  \endverbatim
     89 */
    8590double GeneralPSF2D::VolPSF(double const* parm)
    86 //
    87 //| Cette fonction calcule le volume d'une PSF de hauteur=1
    88 //| avec une precision de "VolEps"
    89 //| dans le but de connaitre le coefficient permettant
    90 //| de convertir le volume d'une PSF en son amplitude
    91 //| ou vice-versa: " volume = VolPSF * hauteur "
    92 //|  L'integration se fait 1/4 de pixel par 1/4 de pixel
    93 //|  ATTENTION: Il s'agit de PSF donc x,y,x0,y0,Sigma.. sont en pixels
    94 //--
    9591{
    9692 double x[2],step;
     
    135131}
    136132
    137 //++
     133//! Definition des defauts des parametres
    138134void GeneralPSF2D::DefaultParam(double *parm)
    139 //
    140 //      Definition des defauts des parametres
    141 //--
    142135{
    143136  for (int i=0; i<mNPar; i++) parm[i] = 0.;
     
    145138}
    146139
    147 //++
     140//! Definition de la precision sur le calcul du volume
    148141void GeneralPSF2D::SetVolEps(double const prec)
    149 //
    150 //      Definition de la precision sur le calcul du volume
    151 //--
    152142{
    153143  VolEps = prec;
     
    159149
    160150/////////////////////////////////////////////////////////////////
    161 //++
    162 // Class        GenMultiPSF2D
    163 // Lib  Outils++
    164 // include      fct2dfit.h
    165 //
    166 //      Classe de definition d'un ensemble de PSF2D
    167 //      pour fiter simultanement plusieurs etoiles et un fond constant.
    168 //      Les parametres de forme de la PSF (Sx, Sy, Rho etc... et Fond)
    169 //      sont les memes pour toutes les etoiles, seuls le centre
    170 //      (X0,Y0) et le volume (ou la hauteur) V varient pour chaque etoile.
    171 //      La disposition des parametres definissant la PSF generique
    172 //      est obligatoirement la suivante:
    173 //--
    174 //++
    175 //|  - PSF 2D a NPar parametres:
    176 //|  p[0] = Volume (ou hauteur)
    177 //|  p[1] = centre X0, p[2] = centre Y0
    178 //|  p[3] = SigmaX   , p[4] = SigmaY,    p[5] = Rho
    179 //|  p[6],p[7],... = autres parametres (eventuels) definissant la PSF.
    180 //|                  (ex: pour la Moffat p[6] = exposant Beta et NPar=8).
    181 //|  p[NPar-1] = Fond
    182 //|
    183 //--
    184 //++
    185 //|  - La Multi-PSF a ses parametres arranges dans l'ordre suivant:
    186 //|    Soit NStar le nombre d'etoiles a fiter simultanement
    187 //|         NP = le nombre de parametres de la PSF 2D generique
    188 //|    On a NF = NP-7 parametres de forme supplementaires
    189 //|         (ex: nf=0 pour GauRho2D, nf=1 pour MofRho2D)
    190 //|  p[0],p[1],p[2] = V0,X0,Y0 pour la premiere etoile
    191 //|  p[3],p[4],p[5] = V1,X1,Y1 pour la deuxieme etoile
    192 //|  ...
    193 //|  p[3*i],p[3*i+1],p[3*i+2] = Vi,Xi,Yi pour la (i+1) ieme etoile
    194 //|  ...
    195 //|  p[m*i],p[m*i+1],p[m*i+2] = Vm,Xm,Ym   ;   m = NStar-1
    196 //|                       pour la NStar ieme et derniere etoile
    197 //|  p[3*NStar],p[3*NStar+1],p[3*NStar+2] = SigmaX, SigmaY et Rho
    198 //|  p[3*NStar+3],...,p[3*NStar+2+NF] = parametres de forme
    199 //|                        supplementaires pour definir la PSF 2D
    200 //|  p[3*NStar+2+NF+1] = Fond
    201 //--
    202 
    203 //++
     151/*!
     152  \class SOPHYA::GenMultiPSF2D
     153  \ingroup NTools
     154  \anchor GenMultiPSF2D
     155   Classe de definition d'un ensemble de PSF2D
     156   pour fiter simultanement plusieurs etoiles et un fond constant.
     157   Les parametres de forme de la PSF (Sx, Sy, Rho etc... et Fond)
     158   sont les memes pour toutes les etoiles, seuls le centre
     159   (X0,Y0) et le volume (ou la hauteur) V varient pour chaque etoile.
     160   La disposition des parametres definissant la PSF generique
     161   est obligatoirement la suivante:
     162  \verbatim
     163     - PSF 2D a NPar parametres:
     164     p[0] = Volume (ou hauteur)
     165     p[1] = centre X0, p[2] = centre Y0
     166     p[3] = SigmaX   , p[4] = SigmaY,    p[5] = Rho
     167     p[6],p[7],... = autres parametres (eventuels) definissant la PSF.
     168                     (ex: pour la Moffat p[6] = exposant Beta et NPar=8).
     169     p[NPar-1] = Fond
     170   
     171     - La Multi-PSF a ses parametres arranges dans l'ordre suivant:
     172       Soit NStar le nombre d'etoiles a fiter simultanement
     173            NP = le nombre de parametres de la PSF 2D generique
     174       On a NF = NP-7 parametres de forme supplementaires
     175            (ex: nf=0 pour GauRho2D, nf=1 pour MofRho2D)
     176     p[0],p[1],p[2] = V0,X0,Y0 pour la premiere etoile
     177     p[3],p[4],p[5] = V1,X1,Y1 pour la deuxieme etoile
     178     ...
     179     p[3*i],p[3*i+1],p[3*i+2] = Vi,Xi,Yi pour la (i+1) ieme etoile
     180     ...
     181     p[m*i],p[m*i+1],p[m*i+2] = Vm,Xm,Ym   ;   m = NStar-1
     182                          pour la NStar ieme et derniere etoile
     183     p[3*NStar],p[3*NStar+1],p[3*NStar+2] = SigmaX, SigmaY et Rho
     184     p[3*NStar+3],...,p[3*NStar+2+NF] = parametres de forme
     185                           supplementaires pour definir la PSF 2D
     186     p[3*NStar+2+NF+1] = Fond
     187  \endverbatim
     188*/
     189
     190/*!
     191  Createur. ``psf2d'' est le nom de la PSF generique a utiliser,
     192  et ``nstar'' est le nombre d'etoiles a fiter simultanement.
     193  */
    204194GenMultiPSF2D::GenMultiPSF2D(GeneralPSF2D* psf2d,unsigned int nstar)
    205 //
    206 //      Createur. ``psf2d'' est le nom de la PSF generique a utiliser,
    207 //      et ``nstar'' est le nombre d'etoiles a fiter simultanement.
    208 //--
    209195  : GeneralPSF2D((psf2d!=NULL) ? 3*nstar+4+psf2d->NPar()-7: 0)
    210196  , mPsf2D(psf2d), mNStar(nstar)
     
    299285
    300286/////////////////////////////////////////////////////////////////
    301 //++
    302 // Module       Classes de PSF 2D
    303 // Lib  Outils++
    304 // include      fct2dfit.h
    305 //--
    306 /////////////////////////////////////////////////////////////////
    307 
    308 /////////////////////////////////////////////////////////////////
    309 //++
    310 // Titre        GauRho2D
    311 // \index{GauRho2D}
    312 //
    313 //| gaussienne+fond 2D
    314 //| Par [0]=vol [1]=x0 [2]=y0 [3]=sigx [4]=sigy [5]=rho [6]=fond
    315 //|   sigx,sigy,rho = sigma et rho de la gaussienne
    316 //|   x0,y0 = centre de la gaussienne
    317 //|  PSF(x,y) = N * exp[ - 1/2 (X**2 + Y**2 -2*rho*X*Y) ]
    318 //|           avec X = (x-x0)/sigx et Y = (y-y0)/sigy
    319 //|                N = sqrt(1-rho**2)/(2*Pi*sigx*sigy)
    320 //|  le volume de cette gaussienne est V=1.
    321 //|  F(x,y) = Par[0]*PSF(x,y)+Par[6] (volume=Par[0],fond=Par[6])
    322 //--
    323 //++
    324 //| -*- Remarque: De la facon dont est ecrite la PSF gaussienne
    325 //| sigx,sigy representent les sigmas des gaussiennes 1D
    326 //| qui sont les coupes de la gaussienne 2D pour y=0 et x=0.
    327 //| Les moments centres d'ordre 2 sont
    328 //|   sx = sigx/sqrt(1-ro^2) et sy = sigy/sqrt(1-ro^2)
    329 //--
    330 /////////////////////////////////////////////////////////////////
    331 
    332 //++
     287/*!
     288  \class SOPHYA::GauRho2D
     289  \ingroup NTools
     290  \anchor GauRho2D
     291  \verbatim
     292    gaussienne+fond 2D
     293    Par [0]=vol [1]=x0 [2]=y0 [3]=sigx [4]=sigy [5]=rho [6]=fond
     294      sigx,sigy,rho = sigma et rho de la gaussienne
     295      x0,y0 = centre de la gaussienne
     296     PSF(x,y) = N * exp[ - 1/2 (X**2 + Y**2 -2*rho*X*Y) ]
     297              avec X = (x-x0)/sigx et Y = (y-y0)/sigy
     298                   N = sqrt(1-rho**2)/(2*Pi*sigx*sigy)
     299     le volume de cette gaussienne est V=1.
     300     F(x,y) = Par[0]*PSF(x,y)+Par[6] (volume=Par[0],fond=Par[6])
     301    -*- Remarque: De la facon dont est ecrite la PSF gaussienne
     302    sigx,sigy representent les sigmas des gaussiennes 1D
     303    qui sont les coupes de la gaussienne 2D pour y=0 et x=0.
     304    Les moments centres d'ordre 2 sont
     305      sx = sigx/sqrt(1-ro^2) et sy = sigy/sqrt(1-ro^2)
     306  \endverbatim
     307*/
     308/////////////////////////////////////////////////////////////////
     309
    333310GauRho2D::GauRho2D()
    334 //
    335 //      Createur
    336 //--
    337311: GeneralPSF2D(7)
    338312{
     
    409383
    410384/////////////////////////////////////////////////////////////////
    411 //++
    412 // Titre        GauRhInt2D
    413 // \index{GauRhInt2D}
    414 //
    415 //| Cette fonction calcule une approximation a l'integrale d'une
    416 //| gaussienne 2D sur un carre de longueur unite (x,y-05 -> x,y+0.5)
    417 //--
    418 /////////////////////////////////////////////////////////////////
    419 
    420 //++
     385/*!
     386  \class SOPHYA::GauRhInt2D
     387  \ingroup NTools
     388  \anchor GauRhInt2D
     389  \verbatim
     390    Cette fonction calcule une approximation a l'integrale d'une
     391    gaussienne 2D sur un carre de longueur unite (x,y-05 -> x,y+0.5)
     392  \endverbatim
     393  \sa GauRho2D
     394*/
     395/////////////////////////////////////////////////////////////////
     396
    421397GauRhInt2D::GauRhInt2D()
    422 //
    423 //      Createur
    424 //--
    425398: GeneralPSF2D(7)
    426399{
     
    519492
    520493/////////////////////////////////////////////////////////////////
    521 //++
    522 // Titre        GdlRho2D
    523 // \index{GdlRho2D}
    524 //
    525 //| Cette fonction calcule une gaussienne 2D de volume 1 approchee
    526 //|  par son developpement limite au 3ieme ordre (see dophot)
    527 //|  Meme commentaire que GauRho2D, cf plus haut sauf que:
    528 //|  Par [0]=vol [1]=x0 [2]=y0 [3]=sigx [4]=sigy [5]=rho [6]=fond
    529 //|    z**2 = 1/2 (X**2 + Y**2 -2*rho*X*Y)
    530 //|    PSF(x,y) = N / [ 1 + z**2 + B4/2 *z**4 + B6/6 *z**6 ]
    531 //|               N = KB4B6
    532 //|    le coefficient KB4B6 etant trop dur a calculer analytiquement
    533 //|    Il doit etre calcule numeriquement et entre dans ce programme
    534 //|  ATTENTION: dans cette routine B4 et B6 sont imposes et pas fites!
    535 //|  - DL de la gaussienne:  B4=1., B6=1., KB4B6=0.13688679
    536 //|  le volume de cette gaussienne est V=1.
    537 //|  F(x,y) = Par[0]*PSF(x,y)+Par[6] (volume=Par[0],fond=Par[6])
    538 //--
    539 /////////////////////////////////////////////////////////////////
    540 
    541 //++
     494/*!
     495  \class SOPHYA::GdlRho2D
     496  \ingroup NTools
     497  \anchor GdlRho2D
     498  \verbatim
     499    Cette fonction calcule une gaussienne 2D de volume 1 approchee
     500     par son developpement limite au 3ieme ordre (see dophot)
     501     Meme commentaire que GauRho2D, cf plus haut sauf que:
     502     Par [0]=vol [1]=x0 [2]=y0 [3]=sigx [4]=sigy [5]=rho [6]=fond
     503       z**2 = 1/2 (X**2 + Y**2 -2*rho*X*Y)
     504       PSF(x,y) = N / [ 1 + z**2 + B4/2 *z**4 + B6/6 *z**6 ]
     505                  N = KB4B6
     506       le coefficient KB4B6 etant trop dur a calculer analytiquement
     507       Il doit etre calcule numeriquement et entre dans ce programme
     508     ATTENTION: dans cette routine B4 et B6 sont imposes et pas fites!
     509     - DL de la gaussienne:  B4=1., B6=1., KB4B6=0.13688679
     510     le volume de cette gaussienne est V=1.
     511     F(x,y) = Par[0]*PSF(x,y)+Par[6] (volume=Par[0],fond=Par[6])
     512  \endverbatim
     513*/
     514/////////////////////////////////////////////////////////////////
     515
    542516GdlRho2D::GdlRho2D()
    543 //
    544 //      Createur
    545 //--
    546517: GeneralPSF2D(7)
    547518{
     
    617588
    618589/////////////////////////////////////////////////////////////////
    619 //++
    620 // Titre        GdlRhInt2D
    621 // \index{GdlRhInt2D}
    622 //
    623 //      fonction integree de GdlRho2d
    624 //--
    625 /////////////////////////////////////////////////////////////////
    626 
    627 //++
     590/*!
     591  \class SOPHYA::GdlRhInt2D
     592  \ingroup NTools
     593  \anchor GdlRhInt2D
     594  Fonction integree de GdlRho2d
     595  \sa GdlRho2D
     596*/
     597/////////////////////////////////////////////////////////////////
     598
    628599GdlRhInt2D::GdlRhInt2D()
    629 //
    630 //      Createur
    631 //--
    632600: GeneralPSF2D(7)
    633601{
     
    732700
    733701/////////////////////////////////////////////////////////////////
    734 //++
    735 // Titre        Gdl1Rho2D
    736 // \index{Gdl1Rho2D}
    737 //
    738 //| Cette fonction calcule une gaussienne 2D approchee
    739 //| par son developpement limite au 2sd ordre (see dophot)
    740 //| Meme commentaire que GauRho2D, cf plus haut sauf que:
    741 //|   z**2 = 1/2 (X**2 + Y**2 -2*rho*X*Y)
    742 //|   PSF(x,y) = N / [ 1 + z**2 + B4/2 *z**4 ]
    743 //|   Le coefficient B4 est fitte (6ieme parametres)
    744 //| ATTENTION: les normalisations N dependent de B4
    745 //|  1-/ B4 est suppose etre toujours positif pour que la PSF tendent
    746 //|      vers 0+ quand z2 tend vers l'infini
    747 //|  2-/ Il y a 3 cas de calcul de K(B4) = int(PSF(x,y)) de 0 a l'infini
    748 //|             0<B4<1/2, 1/2<B4, et B4=1/2
    749 //|      mais pour des raisons d'analyse
    750 //|      numerique j'ai pris 3 intervalles:
    751 //|             0.<B4<0.499, 0.501<B4, 0.499<=B4<=0.501
    752 //|      dans le 3ieme intervalle, comme K est continue est derivable
    753 //|      en B4=1/2, j'ai represente K par la droite tangeante
    754 //|      ce qui, apres verification dans paw est une tres bonne approx.
    755 //|      (je tiens les calculs a disposition.. me demander)
    756 //|  Par [0]=vol [1]=x0 [2]=y0 [3]=sigx [4]=sigy [5]=rho [6]=B4 [7]=fond
    757 //|  F(x,y) = Par[0]*PSF(x,y)+Par[7]
    758 //--
    759 /////////////////////////////////////////////////////////////////
    760 
    761 //++
     702/*!
     703  \class SOPHYA::Gdl1Rho2D
     704  \ingroup NTools
     705  \anchor Gdl1Rho2D
     706  \verbatim
     707    Cette fonction calcule une gaussienne 2D approchee
     708    par son developpement limite au 2sd ordre (see dophot)
     709    Meme commentaire que GauRho2D, cf plus haut sauf que:
     710      z**2 = 1/2 (X**2 + Y**2 -2*rho*X*Y)
     711      PSF(x,y) = N / [ 1 + z**2 + B4/2 *z**4 ]
     712      Le coefficient B4 est fitte (6ieme parametres)
     713    ATTENTION: les normalisations N dependent de B4
     714     1-/ B4 est suppose etre toujours positif pour que la PSF tendent
     715         vers 0+ quand z2 tend vers l'infini
     716     2-/ Il y a 3 cas de calcul de K(B4) = int(PSF(x,y)) de 0 a l'infini
     717                0<B4<1/2, 1/2<B4, et B4=1/2
     718         mais pour des raisons d'analyse
     719         numerique j'ai pris 3 intervalles:
     720                0.<B4<0.499, 0.501<B4, 0.499<=B4<=0.501
     721         dans le 3ieme intervalle, comme K est continue est derivable
     722         en B4=1/2, j'ai represente K par la droite tangeante
     723         ce qui, apres verification dans paw est une tres bonne approx.
     724         (je tiens les calculs a disposition.. me demander)
     725     Par [0]=vol [1]=x0 [2]=y0 [3]=sigx [4]=sigy [5]=rho [6]=B4 [7]=fond
     726     F(x,y) = Par[0]*PSF(x,y)+Par[7]
     727  \endverbatim
     728*/
     729/////////////////////////////////////////////////////////////////
     730
    762731Gdl1Rho2D::Gdl1Rho2D()
    763 //
    764 //      Createur
    765 //--
    766732: GeneralPSF2D(8)
    767733{
     
    894860
    895861/////////////////////////////////////////////////////////////////
    896 //++
    897 // Titre        Gdl1RhInt2D
    898 // \index{Gdl1RhInt2D}
    899 //
    900 //      fonction integree de Gdl1Rho2D
    901 //--
    902 /////////////////////////////////////////////////////////////////
    903 
    904 //++
     862/*!
     863  \class SOPHYA::Gdl1RhInt2D
     864  \ingroup NTools
     865  \anchor Gdl1RhInt2D
     866  Fonction integree de Gdl1Rho2D
     867  \sa Gdl1Rho2D
     868*/
     869/////////////////////////////////////////////////////////////////
     870
    905871Gdl1RhInt2D::Gdl1RhInt2D()
    906 //
    907 //      Createur
    908 //--
    909872: GeneralPSF2D(8)
    910873{
     
    10581021
    10591022/////////////////////////////////////////////////////////////////
    1060 //++
    1061 // Titre        Gdl2Rho2D
    1062 // \index{Gdl2Rho2D}
    1063 //
    1064 //| Cette fonction calcule une gaussienne 2D de hauteur 1 approchee
    1065 //| par son developpement limite ordre 3 (see dophot)
    1066 //| Meme commentaire que GauRho2D, cf plus haut sauf que:
    1067 //|   z**2 = 1/2 (X**2 + Y**2 -2*rho*X*Y)
    1068 //|   Z**2 = B2*z2
    1069 //|   PSF(x,y) = h / [ 1 + Z**2 + B4**2/2 *Z**4 + B6**2/6 *Z**6 ]
    1070 //|   B2,B4,B6 peuvent etre fittes
    1071 //| - DL de la gaussienne:  B2=B4=B6=1.
    1072 //|  Par [0]=hauteur [1]=x0 [2]=y0 [3]=sigx [4]=sigy [5]=rho
    1073 //|      [6]=B4 [7]=B6 [8]=B2 [9]= fond
    1074 //|  F(x,y) = Par[0]*PSF(x,y)+Par[9]
    1075 //--
    1076 /////////////////////////////////////////////////////////////////
    1077 
    1078 
    1079 //++
     1023/*!
     1024  \class SOPHYA::Gdl2Rho2D
     1025  \ingroup NTools
     1026  \anchor Gdl2Rho2D
     1027  \verbatim
     1028    Cette fonction calcule une gaussienne 2D de hauteur 1 approchee
     1029    par son developpement limite ordre 3 (see dophot)
     1030    Meme commentaire que GauRho2D, cf plus haut sauf que:
     1031      z**2 = 1/2 (X**2 + Y**2 -2*rho*X*Y)
     1032      Z**2 = B2*z2
     1033      PSF(x,y) = h / [ 1 + Z**2 + B4**2/2 *Z**4 + B6**2/6 *Z**6 ]
     1034      B2,B4,B6 peuvent etre fittes
     1035    - DL de la gaussienne:  B2=B4=B6=1.
     1036     Par [0]=hauteur [1]=x0 [2]=y0 [3]=sigx [4]=sigy [5]=rho
     1037         [6]=B4 [7]=B6 [8]=B2 [9]= fond
     1038     F(x,y) = Par[0]*PSF(x,y)+Par[9]
     1039  \endverbatim
     1040*/
     1041/////////////////////////////////////////////////////////////////
     1042
    10801043Gdl2Rho2D::Gdl2Rho2D()
    1081 //
    1082 //      Createur
    1083 //--
    10841044: GeneralPSF2D(10)
    10851045{
     
    11631123
    11641124/////////////////////////////////////////////////////////////////
    1165 //++
    1166 // Titre        Gdl2RhInt2D
    1167 // \index{Gdl2RhInt2D}
    1168 //
    1169 //      fonction integree de Gdl2Rho2d
    1170 //--
    1171 /////////////////////////////////////////////////////////////////
    1172 
    1173 //++
     1125/*!
     1126  \class SOPHYA::Gdl2RhInt2D
     1127  \ingroup NTools
     1128  \anchor Gdl2RhInt2D
     1129  Fonction integree de Gdl2Rho2d
     1130  \sa Gdl2Rho2D
     1131*/
     1132/////////////////////////////////////////////////////////////////
     1133
    11741134Gdl2RhInt2D::Gdl2RhInt2D()
    1175 //
    1176 //      Createur
    1177 //--
    11781135: GeneralPSF2D(10)
    11791136{
     
    12821239
    12831240/////////////////////////////////////////////////////////////////
    1284 //++
    1285 // Titre        MofRho2D
    1286 // \index{MofRho2D}
    1287 //
    1288 //| Cette fonction calcule une Moffat 2D
    1289 //|   Par [0]=hauteur [1]=x0 [2]=y0 [3]=sigx [4]=sigy [5]=rho
    1290 //|       [6]=Gm [7]= fond
    1291 //|  PSF(x,y)  = valeur de la Moffat normalisee a un volume = 1
    1292 //|  PSF(x,y) = N / [ 1. +  0.5*(X**2 + Y**2 -2*rho*X*Y) ]**Gm
    1293 //|           avec X = (x-x0)/sigx et Y = (y-y0)/sigy et Gm>1
    1294 //|                N = (1-Gm)*sqrt(1-rho**2)/(2*Pi*sigx*sigy)
    1295 //|  le volume de cette Moffat est V=1.
    1296 //|  F(x,y) = Par[0]*PSF(x,y)+Par[7]
    1297 //--
    1298 /////////////////////////////////////////////////////////////////
    1299 
    1300 //++
     1241/*!
     1242  \class SOPHYA::MofRho2D
     1243  \ingroup NTools
     1244  \anchor MofRho2D
     1245  \verbatim
     1246    Cette fonction calcule une Moffat 2D
     1247      Par [0]=hauteur [1]=x0 [2]=y0 [3]=sigx [4]=sigy [5]=rho
     1248          [6]=Gm [7]= fond
     1249     PSF(x,y)  = valeur de la Moffat normalisee a un volume = 1
     1250     PSF(x,y) = N / [ 1. +  0.5*(X**2 + Y**2 -2*rho*X*Y) ]**Gm
     1251              avec X = (x-x0)/sigx et Y = (y-y0)/sigy et Gm>1
     1252                   N = (1-Gm)*sqrt(1-rho**2)/(2*Pi*sigx*sigy)
     1253     le volume de cette Moffat est V=1.
     1254     F(x,y) = Par[0]*PSF(x,y)+Par[7]
     1255  \endverbatim
     1256*/
     1257/////////////////////////////////////////////////////////////////
     1258
    13011259MofRho2D::MofRho2D()
    1302 //
    1303 //      Createur
    1304 //--
    13051260: GeneralPSF2D(8)
    13061261{
     
    13811336
    13821337/////////////////////////////////////////////////////////////////
    1383 //++
    1384 // Titre        MofRhInt2D
    1385 // \index{MofRhInt2D}
    1386 //
    1387 //      fonction integree de MofRho2d
    1388 //--
    1389 /////////////////////////////////////////////////////////////////
    1390 
    1391 //++
     1338/*!
     1339  \class SOPHYA::MofRhInt2D
     1340  \ingroup NTools
     1341  \anchor MofRhInt2D
     1342  Fonction integree de MofRho2d
     1343  \sa MofRho2D
     1344*/
     1345/////////////////////////////////////////////////////////////////
     1346
    13921347MofRhInt2D::MofRhInt2D()
    1393 //
    1394 //      Createur
    1395 //--
    13961348: GeneralPSF2D(8)
    13971349{
     
    15121464
    15131465/////////////////////////////////////////////////////////////////
    1514 //++
    1515 // Titre        X2-GauRho2D
    1516 // \index{X2-GauRho2D}
    1517 //
    1518 //      Chi2 pour une Gaussienne+fond 2D (voir detail dans GauRho2D).
    1519 //--
    1520 /////////////////////////////////////////////////////////////////
    1521 
    1522 //++
    1523 // X2-GauRho2D::X2-GauRho2D()
    1524 //      Createur
    1525 //--
     1466/*!
     1467  \class SOPHYA::X2_GauRho2D
     1468  \ingroup NTools
     1469  \anchor X2_GauRho2D
     1470   Chi2 pour une Gaussienne+fond 2D (voir detail dans GauRho2D).
     1471*/
     1472/////////////////////////////////////////////////////////////////
     1473
    15261474X2_GauRho2D::X2_GauRho2D()
    15271475: GeneralXi2(7)
Note: See TracChangeset for help on using the changeset viewer.