I'm thinking about contributing a test which computes the measured detector signal for a single sample by brute force, according to the following recipe:
- given:
s_lm and b_lm (T,E,B,V components); M_{HWP} (4x4 real numbers); theta, phi, psi, alpha
- rotate
b_lm to the proper orientation using healpy.rotator.rotate_alm() (uses b_lm, theta, phi, psi)
- convert
s_lm to maps (probably Gauss-Legendre to avoid inaccuracies)
- apply the appropriate Mueller matrix to the sky maps (uses
M_{HWP}, alpha)
- convert rotated
b_lm to maps (probably Gauss-Legendre to avoid inaccuracies)
- multiply sky and beam maps point-wise
- integrate product maps over the sphere and return sum over components.
This is of course an extremely expensive way to compute a single sample, but it may be useful to verify the beamconv results for fully general Mueller matrices. The same sort of test (without HWP) is used in https://github.com/mreineck/ducc/blob/135ef6fb68b231cfbd862ab5351f0c9ef9afc44f/python/test/test_totalconvolve.py#L107-L134 and has served me well so far.
Do you think such a test would be a useful addition to beamconv?
I'm thinking about contributing a test which computes the measured detector signal for a single sample by brute force, according to the following recipe:
s_lmandb_lm(T,E,B,V components);M_{HWP}(4x4 real numbers);theta, phi, psi, alphab_lmto the proper orientation usinghealpy.rotator.rotate_alm()(usesb_lm, theta, phi, psi)s_lmto maps (probably Gauss-Legendre to avoid inaccuracies)M_{HWP}, alpha)b_lmto maps (probably Gauss-Legendre to avoid inaccuracies)This is of course an extremely expensive way to compute a single sample, but it may be useful to verify the beamconv results for fully general Mueller matrices. The same sort of test (without HWP) is used in https://github.com/mreineck/ducc/blob/135ef6fb68b231cfbd862ab5351f0c9ef9afc44f/python/test/test_totalconvolve.py#L107-L134 and has served me well so far.
Do you think such a test would be a useful addition to
beamconv?