Changeset 926 in Sophya for trunk/SophyaLib/NTools/fct2dfit.cc
- Timestamp:
- Apr 13, 2000, 8:39:39 PM (25 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/SophyaLib/NTools/fct2dfit.cc
r514 r926 22 22 23 23 ///////////////////////////////////////////////////////////////// 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 51 47 GeneralPSF2D::GeneralPSF2D(unsigned int nPar) 52 //53 //--54 48 : GeneralFunction(2,nPar), VolEps(1.e-4) 55 49 { … … 61 55 } 62 56 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 */ 64 66 double 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,y070 //| ---> Ici parm[0] = hauteur71 //--72 67 { 73 68 double x0[2]; … … 82 77 } 83 78 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 */ 85 90 double GeneralPSF2D::VolPSF(double const* parm) 86 //87 //| Cette fonction calcule le volume d'une PSF de hauteur=188 //| avec une precision de "VolEps"89 //| dans le but de connaitre le coefficient permettant90 //| de convertir le volume d'une PSF en son amplitude91 //| ou vice-versa: " volume = VolPSF * hauteur "92 //| L'integration se fait 1/4 de pixel par 1/4 de pixel93 //| ATTENTION: Il s'agit de PSF donc x,y,x0,y0,Sigma.. sont en pixels94 //--95 91 { 96 92 double x[2],step; … … 135 131 } 136 132 137 // ++133 //! Definition des defauts des parametres 138 134 void GeneralPSF2D::DefaultParam(double *parm) 139 //140 // Definition des defauts des parametres141 //--142 135 { 143 136 for (int i=0; i<mNPar; i++) parm[i] = 0.; … … 145 138 } 146 139 147 // ++140 //! Definition de la precision sur le calcul du volume 148 141 void GeneralPSF2D::SetVolEps(double const prec) 149 //150 // Definition de la precision sur le calcul du volume151 //--152 142 { 153 143 VolEps = prec; … … 159 149 160 150 ///////////////////////////////////////////////////////////////// 161 / /++162 // ClassGenMultiPSF2D163 // 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 generique188 //| 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] = Fond201 //-- 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 */ 204 194 GenMultiPSF2D::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 //--209 195 : GeneralPSF2D((psf2d!=NULL) ? 3*nstar+4+psf2d->NPar()-7: 0) 210 196 , mPsf2D(psf2d), mNStar(nstar) … … 299 285 300 286 ///////////////////////////////////////////////////////////////// 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 333 310 GauRho2D::GauRho2D() 334 //335 // Createur336 //--337 311 : GeneralPSF2D(7) 338 312 { … … 409 383 410 384 ///////////////////////////////////////////////////////////////// 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 421 397 GauRhInt2D::GauRhInt2D() 422 //423 // Createur424 //--425 398 : GeneralPSF2D(7) 426 399 { … … 519 492 520 493 ///////////////////////////////////////////////////////////////// 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 542 516 GdlRho2D::GdlRho2D() 543 //544 // Createur545 //--546 517 : GeneralPSF2D(7) 547 518 { … … 617 588 618 589 ///////////////////////////////////////////////////////////////// 619 / /++620 // TitreGdlRhInt2D621 // \index{GdlRhInt2D} 622 // 623 // fonction integree deGdlRho2d624 //-- 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 628 599 GdlRhInt2D::GdlRhInt2D() 629 //630 // Createur631 //--632 600 : GeneralPSF2D(7) 633 601 { … … 732 700 733 701 ///////////////////////////////////////////////////////////////// 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 762 731 Gdl1Rho2D::Gdl1Rho2D() 763 //764 // Createur765 //--766 732 : GeneralPSF2D(8) 767 733 { … … 894 860 895 861 ///////////////////////////////////////////////////////////////// 896 / /++897 // TitreGdl1RhInt2D898 // \index{Gdl1RhInt2D} 899 // 900 // fonction integree de Gdl1Rho2D901 //-- 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 905 871 Gdl1RhInt2D::Gdl1RhInt2D() 906 //907 // Createur908 //--909 872 : GeneralPSF2D(8) 910 873 { … … 1058 1021 1059 1022 ///////////////////////////////////////////////////////////////// 1060 / /++1061 // TitreGdl2Rho2D1062 // \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 1080 1043 Gdl2Rho2D::Gdl2Rho2D() 1081 //1082 // Createur1083 //--1084 1044 : GeneralPSF2D(10) 1085 1045 { … … 1163 1123 1164 1124 ///////////////////////////////////////////////////////////////// 1165 / /++1166 // TitreGdl2RhInt2D1167 // \index{Gdl2RhInt2D} 1168 // 1169 // fonction integree de Gdl2Rho2d1170 //-- 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 1174 1134 Gdl2RhInt2D::Gdl2RhInt2D() 1175 //1176 // Createur1177 //--1178 1135 : GeneralPSF2D(10) 1179 1136 { … … 1282 1239 1283 1240 ///////////////////////////////////////////////////////////////// 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 1301 1259 MofRho2D::MofRho2D() 1302 //1303 // Createur1304 //--1305 1260 : GeneralPSF2D(8) 1306 1261 { … … 1381 1336 1382 1337 ///////////////////////////////////////////////////////////////// 1383 / /++1384 // TitreMofRhInt2D1385 // \index{MofRhInt2D} 1386 // 1387 // fonction integree de MofRho2d1388 //-- 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 1392 1347 MofRhInt2D::MofRhInt2D() 1393 //1394 // Createur1395 //--1396 1348 : GeneralPSF2D(8) 1397 1349 { … … 1512 1464 1513 1465 ///////////////////////////////////////////////////////////////// 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 1526 1474 X2_GauRho2D::X2_GauRho2D() 1527 1475 : GeneralXi2(7)
Note:
See TracChangeset
for help on using the changeset viewer.