#include "sopnamsp.h" #include "machdefs.h" #include #include #include #include #include #include #include "constcosmo.h" #include "cosmocalc.h" #include "geneutils.h" #include "schechter.h" #include "planckspectra.h" /* --- Check Peterson at al. astro-ph/0606104 v1 (pb facteur sqrt(2) sur S/N !) cmvdefsurv -U 0.75,0.3,0.7,-1,1 -V 300 -z 0.0025,0.2,Z -x 1,90,A -O 400000,6000 -N 75 -M 6.156e9 -F 3 -2 1.5 --- */ inline double rad2deg(double trad) {return trad/M_PI*180.;} inline double rad2min(double trad) {return trad/M_PI*180.*60.;} inline double rad2sec(double trad) {return trad/M_PI*180.*3600.;} inline double deg2rad(double tdeg) {return tdeg*M_PI/180.;} inline double min2rad(double tmin) {return tmin*M_PI/(180.*60.);} inline double sec2rad(double tsec) {return tsec*M_PI/(180.*3600.);} void usage(void); void usage(void) { cout<<"cmvdefsurv [-r] -x adtx,atxlarg[,unit_x] -y adty,atylarg[,unit_y] -z dred,redlarg[,unit_z] redshift"< : moyenne du flux AGN en Jy dans le pixel"<=narg) {usage(); return-1;} sscanf(arg[optind],"%lf",&redshift); if(redshift<=0.) {cout<<"Redshift "<0"<>>>\n>>>> Cosmologie generale\n>>>>"< "< "< "< "< dz = "<<1./dlosdz< "<>>>\n>>>> Geometrie\n>>>>"<0"< "<>>>\n>>>> Cosmologie & Geometrie transverse\n>>>>"<>>>\n>>>> Cosmologie & Geometrie ligne de visee\n>>>>"<>>>\n>>>> Angles solides et Volumes\n>>>>"<>>>\n>>>> Geometrie dans l'espace de Fourier\n>>>>"<>>>\n>>>> Mass HI\n>>>>"<>>>\n>>>> Observations\n>>>>"<0.) { double lobewidth = lobewidth0; // ArcMin if(lobefreq0<=0.) lobefreq0 = nuhiz*1.e3; // MHz // La taille angulaire du lobe change avec la frequence donc avec le redshift lobewidth *= lobefreq0/(nuhiz*1.e3); cout<<"\n--- Lobe: width="< sigma = "< " <<" Dcyl = "< area = "< "< Flux en -0.7 dans l'approximation Rayleigh) double tsynch = Tsynch408; if(fabs(indnu)>1.e-50) tsynch *= pow(nuhiz/nuhaslam,indnu); planck.SetTemperature(tsynch); double psynch_2polar = planck(nuhiz*1.e+9) * surfeff * angsol * (dnuhiz*1e9); double ssynch_2polar = psynch_2polar / surfeff / (dnuhiz*1e9) / Jansky2Watt_cst; double psynch = facpolar * psynch_2polar; double ssynch = facpolar * ssynch_2polar; cout<<"\nSynchrotron: T="< P="< S_agn=" < "< "< log10 = "< 2 * k * Tsys / [ Atot * Sqrt(dnu*Tobs) ] // C'est aussi la formule pour un telescope unique // --- On ne mesure qu'une seule polarisation // Ces formules sont valables si on mesure 1 polarisation: // Slim est la densite de flux total "St" (2 polars) d'une source (non-polarisee) // qui donne la meme puissance que le bruit dans un detecteur qui ne // mesure qu'une seule polarisation: // Le rapport S/N pour une source de densite de flux St (totale 2 polars): // S/N = St / Slim // La puissance de bruit est, par definition: // Pb = 1/2 *Slim*Atot*dNu // = k*Tsys*sqrt(2*dNu/Tobs) pour N=2 // = k*Tsys*sqrt(dNu/Tobs) pour N>>grand // La densite de flux d'une source a S/N=1 est: // St = Slim // La puissance d'une source a S/N=1 mesuree par un detecteur // qui ne mesure qu'une polar est: // P1_lim = 1/2 *Slim*Atot*dNu // --- On mesure les 2 polarisations avec deux voies d'electronique distinctes // la puissance du signal mesure est multipliee par 2 // la puissance du bruit est multipliee par sqrt(2) // on a donc un gain d'un facteur sqrt(2) sur le rapport S/N // (cela revient d'ailleur a doubler le temps de pose: Tobs -> 2*Tobs) // En notant arbitrairement: Slim' = Slim / sqrt(2) // ou Slim est defini par les formules ci-dessus // Le rapport S/N pour une source de densite de flux St (totale 2 polars): // (S/N)_2 = (S/N)_1 * sqrt(2) = (St / Slim) * sqrt(2) = St / Slim' // La densite de flux d'une source a S/N=1 est: // St = Slim' = Slim / sqrt(2) // La puissance d'une source a S/N=1 cumulee par les 2 detecteurs est: // P_lim = St*Atot*dNu = Slim'*Atot*dNu = 1/sqrt(2) *Slim*Atot*dNu // = P1_lim * sqrt(2) // La puissance de bruit cumulee par les 2 detecteurs est, par definition: // Pb = P_lim = Slim'*Atot*dNu = P1_lim * sqrt(2) // = 2*k*Tsys*sqrt(dNu/Tobs) pour N=2 // = k*Tsys*sqrt(2*dNu/Tobs) pour N>>grand // ===================================================================== cout<<"\n---\n--- Noise analysis \n---"<> telescopes fac = 1.; cout<<"\n...Observation limits for a N (large) telescope interferometer (with complex correlator)"<