Thanks to the hard work by @martamonelli, I now have a very compact code that allows direct comparison between the beamconv and MuellerConvolver HWP simulators.
My current setup is:
- polarised Gaussian beam (TEB)
- totally random sky a_lm (up to given
lmax)
- totally random vectors of theta, phi, psi, alpha
- totally random Mueller matrix
I can get very good agreement between the output of beamconv and MuellerConvolver, if
- I flip the sign of the
psi angle for MuellerConvolver (This seems to be a convention issue only.)
- I multiply
blm_E and blm_B by -np.sqrt(2) for MuellerConvolver (I have no idea where this factor comes from)
- I make sure that
mueller[0,2] = -mueller[2,0]
The last point seems to indicate some asymmetry within beamconv. If I run beamconv with a Mueller matrix that is zero except for entry [2,0], I always get a result that is exactly zero, independent of pointing,beam or sky. The same is not true for entry [0,2].
Once we understand the remaining differences, I'd like to extend the tests by
- going to non-Gaussian beams. For that I'd need a way to supply beam a_lm directly to
beamconv, I think.
- adding the V component.
test.tar.gz
Thanks to the hard work by @martamonelli, I now have a very compact code that allows direct comparison between the
beamconvandMuellerConvolverHWP simulators.My current setup is:
lmax)I can get very good agreement between the output of
beamconvandMuellerConvolver, ifpsiangle forMuellerConvolver(This seems to be a convention issue only.)blm_Eandblm_Bby-np.sqrt(2)forMuellerConvolver(I have no idea where this factor comes from)mueller[0,2] = -mueller[2,0]The last point seems to indicate some asymmetry within
beamconv. If I runbeamconvwith a Mueller matrix that is zero except for entry[2,0], I always get a result that is exactly zero, independent of pointing,beam or sky. The same is not true for entry[0,2].Once we understand the remaining differences, I'd like to extend the tests by
beamconv, I think.test.tar.gz