Point source sensitivity from uK-arcmin/beam

From CMB-S4 wiki
Jump to navigationJump to search

It can be clunky to go back and forth from uK-arcmin to mJy for point sources. This note is just to have in one place the conversion factors.

The main workhorse is flux S=(dBν/dT)ΔT Ω for a pixel area Ω. To turn this into point source flux errors, we need to say something more specific about the beam and then use a matched filter with that beam profile to calculate the point source flux uncertainty. For a Gaussian beam, this gives exactly a factor of sqrt(2) if the pixel area is taken to be the beam area. The noise level in a beam area adds in quadrature within the beam, so to scale from uk-arcmin to uk-beam we need to multiply by the sqrt(beam area in arcmin). In what is below we assume Gaussian beams and purely white noise. Adding some 1/ell noise will slightly increase these noise levels by an amount that is likely small, but that needs to be calculated.

Using the same noise levels but assuming it is spread uniformly over 7 years, this gives a daily flux noise level that is higher by sqrt(7*365) [sig figs are wrong, only good to ~3 sig figs]. These are only noise levels from detector noise, they don't include confusion noise from the sky. For the full coadd, the confusion noise will dominate over detector noise for stationary sources in at least some channels, but for transient or moving objects the confusion noise can be removed with difference imaging.

27 GHz 39 GHz 93 GHz 145 GHz 225 GHz 278 GHz
beam fwhm (arcm) 7.4 5.1 2.2 1.4 1.0 0.9
1 uK-arcmin to mJy 0.02065187 mJy 0.02909744 mJy 0.05963462 mJy 0.06847525 mJy 0.0612282 mJy 0.04931695 mJy
STM full depth uK-arcmin 22.28 12.18 1.97 2.18 7.2 17.62
STM full coadd flux error (mJy) 0.46012359 0.35440684 0.1174802 0.14927604 0.44084305 0.86896468
STM daily flux error (mJy) 23.25787081 17.91420519 5.93827243 7.54545698 22.28329731 43.9235646


Here is some python code that calculates this (to increase precision, add more sig figs to constants, and use 2pi/(8 ln(2)) instead of 1.13):

# calculates rms flux in mJy for given cmb white noise level 
#       freqs in Hz
#       uk_arcmin is noise level in cmb uK-arcmin
#       Gaussian beam of fwhm "beams" in arcm [Gaussian is why sqrt(2) at end]
import numpy as np
def uk_to_mjy(freqs, uk_arcmin, beams):
       c = 3.e10
       hplanck = 6.6261e-27
       kb = 1.38e-16
       tcmb = 2.7255
       sq_arcmin_to_sr = (np.pi/180)**2/3600.
       xx= hplanck*freqs/(kb*tcmb)
       k_to_jy = 2.*hplanck*freqs**3/c**2/(np.exp(xx)-1.)*np.exp(xx)/(np.exp(xx)-1.)*xx/tcmb*1e23
       flux = uk_arcmin*1e-6 * k_to_jy * 1e3 * np.sqrt(1.13*beams**2) * sq_arcmin_to_sr * np.sqrt(2.)
       return flux